devexpress-reporting-react 24.2.2-beta → 24.2.5

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.
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { IAIPanelViewModel } from 'devexpress-reporting/scopes/reporting-viewer-internal';
2
+ import { ITabPanelItemViewModel } from '@devexpress/analytics-core/core/widgets/tabInfo';
3
3
  declare const AIPanel: React.FC<{
4
- data: IAIPanelViewModel;
4
+ data: ITabPanelItemViewModel;
5
5
  }>;
6
6
  export default AIPanel;
@@ -2,30 +2,23 @@ import React, { useMemo } from 'react';
2
2
  import { Button, CheckBox, LoadIndicator, SelectBox, TextArea, Popup } from 'devextreme-react';
3
3
  import Template from '../../core/Template';
4
4
  import { Position } from 'devextreme-react/cjs/popup';
5
- import useDxForceRerender from '../../../hooks/dxForceRerender';
5
+ import { ViewModelChangedEvent } from '@devexpress/analytics-core/serializer/native/viewModels/viewModelGenerator';
6
6
  const AIPanel = ({ data }) => {
7
- const GetVisible = () => {
8
- return data.model?.tabInfo?.visible && data.model?.tabInfo?.active;
9
- };
10
- const getCopyTemplate = () => {
11
- return data.model?.copyButtonTemplate;
12
- };
13
- const aiPanelHeaderLabel = data.model.getViewModel().aiPanelHeaderLabel;
14
- const viewModel = data.model?.getViewModel();
7
+ const viewModel = data.model.getViewModel();
8
+ React.useEffect(() => {
9
+ const parentEventManagerHolder = data;
10
+ return viewModel._viewModelEvents?.on(ViewModelChangedEvent, (args) => parentEventManagerHolder._viewModelEvents.call(ViewModelChangedEvent, args));
11
+ }, [viewModel]);
15
12
  const popupAttributes = useMemo(() => {
16
13
  return {
17
14
  class: 'dxrd-preview-ai-panel-warning-popup'
18
15
  };
19
16
  }, []);
20
- const forceRerender = useDxForceRerender();
21
- React.useEffect(() => {
22
- forceRerender();
23
- }, [Object.values(data.model.getViewModel())]);
24
- return (React.createElement("div", { id: "dxrd-preview-ai-panel-id", className: "dxrd-preview-ai-panel", hidden: !(GetVisible()) },
17
+ return (React.createElement("div", { id: "dxrd-preview-ai-panel-id", className: "dxrd-preview-ai-panel", hidden: !(data.visible && data.active) },
25
18
  React.createElement("div", { className: "dxrd-right-panel-header dxd-text-primary" },
26
19
  React.createElement("span", null,
27
20
  " ",
28
- aiPanelHeaderLabel,
21
+ viewModel?.aiPanelHeaderLabel,
29
22
  " ")),
30
23
  !!viewModel && (React.createElement("div", null,
31
24
  React.createElement("div", { className: "dxrd-preview-ai-panel-wrapper dx-editors" },
@@ -34,18 +27,18 @@ const AIPanel = ({ data }) => {
34
27
  React.createElement("label", { className: "dxrd-preview-ai-form-label", htmlFor: "dxrv-ai-target-select" },
35
28
  " ",
36
29
  viewModel.targetContentText),
37
- React.createElement(SelectBox, { id: "dxrv-ai-target-select", className: "dxrd-preview-ai-form-input", dataSource: viewModel.targetSelecBoxOptions.dataSource, onValueChanged: viewModel.targetSelecBoxOptions.onValueChanged, value: viewModel.targetSelecBoxOptions.value, displayExpr: viewModel.targetSelecBoxOptions.displayExpr, valueExpr: viewModel.targetSelecBoxOptions.valueExpr, inputAttr: viewModel.targetSelecBoxOptions.inputAttr })),
30
+ React.createElement(SelectBox, { id: "dxrv-ai-target-select", className: "dxrd-preview-ai-form-input", dataSource: viewModel.targetSelectBoxOptions.dataSource, onValueChanged: viewModel.targetSelectBoxOptions.onValueChanged, value: viewModel.targetSelectBoxOptions.value, displayExpr: viewModel.targetSelectBoxOptions.displayExpr, valueExpr: viewModel.targetSelectBoxOptions.valueExpr, inputAttr: viewModel.targetSelectBoxOptions.inputAttr })),
38
31
  React.createElement("div", { className: "dx-field dxrd-preview-ai-select-box" },
39
32
  React.createElement("label", { className: "dxrd-preview-ai-form-label", htmlFor: "dxrv-ai-language-select" },
40
33
  " ",
41
34
  viewModel.targetLanguageText,
42
35
  " "),
43
- React.createElement(SelectBox, { id: "dxrv-ai-language-select", className: "dxrd-preview-ai-form-input", dataSource: viewModel.languageSelecBoxOptions.dataSource, onValueChanged: viewModel.languageSelecBoxOptions.onValueChanged, value: viewModel.languageSelecBoxOptions.value, displayExpr: viewModel.languageSelecBoxOptions.displayExpr, valueExpr: viewModel.languageSelecBoxOptions.valueExpr, showClearButton: viewModel.languageSelecBoxOptions.showClearButton, inputAttr: viewModel.languageSelecBoxOptions.inputAttr })),
44
- viewModel.pageSelecBoxVisible && (React.createElement("div", { className: "dx-field dxrd-preview-ai-select-box" },
36
+ React.createElement(SelectBox, { id: "dxrv-ai-language-select", className: "dxrd-preview-ai-form-input", dataSource: viewModel.languageSelectBoxOptions.dataSource, onValueChanged: viewModel.languageSelectBoxOptions.onValueChanged, value: viewModel.languageSelectBoxOptions.value, displayExpr: viewModel.languageSelectBoxOptions.displayExpr, valueExpr: viewModel.languageSelectBoxOptions.valueExpr, showClearButton: viewModel.languageSelectBoxOptions.showClearButton, inputAttr: viewModel.languageSelectBoxOptions.inputAttr })),
37
+ viewModel.pageSelectBoxVisible && (React.createElement("div", { className: "dx-field dxrd-preview-ai-select-box" },
45
38
  React.createElement("label", { className: "dxrd-preview-ai-form-label", htmlFor: "dxrv-ai-page-select" },
46
39
  " ",
47
40
  viewModel.pageSelectText),
48
- React.createElement(SelectBox, { className: "dxrd-preview-ai-form-input", id: "dxrv-ai-page-select", dataSource: viewModel.pageSelecBoxOptions.dataSource, onValueChanged: viewModel.pageSelecBoxOptions.onValueChanged, value: viewModel.pageSelecBoxOptions.value, displayExpr: viewModel.pageSelecBoxOptions.displayExpr, valueExpr: viewModel.pageSelecBoxOptions.valueExpr, searchExpr: viewModel.pageSelecBoxOptions.searchExpr, searchEnabled: viewModel.pageSelecBoxOptions.searchEnabled, visible: viewModel.pageSelecBoxOptions.visible, inputAttr: viewModel.pageSelecBoxOptions.inputAttr }))),
41
+ React.createElement(SelectBox, { className: "dxrd-preview-ai-form-input", id: "dxrv-ai-page-select", dataSource: viewModel.pageSelectBoxOptions.dataSource, onValueChanged: viewModel.pageSelectBoxOptions.onValueChanged, value: viewModel.pageSelectBoxOptions.value, displayExpr: viewModel.pageSelectBoxOptions.displayExpr, valueExpr: viewModel.pageSelectBoxOptions.valueExpr, searchExpr: viewModel.pageSelectBoxOptions.searchExpr, searchEnabled: viewModel.pageSelectBoxOptions.searchEnabled, visible: viewModel.pageSelectBoxOptions.visible, inputAttr: viewModel.pageSelectBoxOptions.inputAttr }))),
49
42
  React.createElement("div", { className: "dx-field" },
50
43
  React.createElement("div", { className: "dxrd-preview-ai-buttons-wrapper" },
51
44
  React.createElement(LoadIndicator, { className: "dxrd-preview-ai-buttons", visible: data.model.loading, height: 24, width: 24 }),
@@ -54,10 +47,10 @@ const AIPanel = ({ data }) => {
54
47
  viewModel.resultVisible && (React.createElement("div", { className: "dxrd-right-panel-header dxd-text-primary dxd-border-primary dxrd-ai-result-text" },
55
48
  React.createElement("span", { className: "dxrd-right-panel-result-text" },
56
49
  " ",
57
- viewModel.textProcessingResultHeaderTest,
50
+ viewModel.textProcessingResultHeaderText,
58
51
  " "),
59
52
  React.createElement("div", { role: "button", className: "dxrd-right-panel-copy-button dx-accessibility-focus-border-accented", tabIndex: 0, onKeyDown: (e) => viewModel.copyText(data, e) },
60
- React.createElement(Template, { template: getCopyTemplate(), className: "dxd-icon-highlighted", onClick: (e) => viewModel.buttons.copyResultButton.onClick(e) })))),
53
+ React.createElement(Template, { template: data.model?.copyButtonTemplate, className: "dxd-icon-highlighted", onClick: (e) => viewModel.buttons.copyResultButton.onClick(e) })))),
61
54
  React.createElement(TextArea, { id: "dxrd-ai-panel-text-area-id", tabIndex: 0, className: "dx-accessibility-focus-border-accented dxrd-preview-ai-panel-textarea dxd-back-primary2", value: viewModel.aiProcessingResultText, onInput: (e) => e.event.preventDefault(), onPaste: (e) => e.event.preventDefault(), onKeyDown: (e) => e.event.key !== 'Tab' && e.event.preventDefault(), hoverStateEnabled: false })),
62
55
  React.createElement(Popup, { width: 350, height: 200, shading: false, focusStateEnabled: false, visible: viewModel.warningTextLimitPopupVisible, container: '#dxrd-preview-ai-panel-id', showCloseButton: false, showTitle: false, wrapperAttr: popupAttributes },
63
56
  React.createElement(Position, { at: "top", my: "top", of: "#dxrd-preview-ai-panel-id", collision: "fit" }),
@@ -38,7 +38,7 @@ const Page = ({ data }) => {
38
38
  React.createElement("div", { className: "dxrd-report-preview-content-loading-panel dxrd-text-align-center", style: { paddingTop: data.height / 2.3 + 'px' } },
39
39
  React.createElement("div", { className: "dxrd-report-preview-content-loading-panel-text" }, data.loadingText))),
40
40
  React.createElement(Image, { data: data }),
41
- data.activeBricks.length > 0 && (React.createElement("div", { style: { position: 'absolute', top: data.smartTagAIMenuPosition.topP, left: data.smartTagAIMenuPosition.leftP, right: data.smartTagAIMenuPosition.rightP, height: data.smartTagAIMenuPosition.heightP, width: data.smartTagAIMenuPosition.widthP } },
41
+ data.aiServicesEnabled && data.activeBricks.length > 0 && (React.createElement("div", { style: { position: 'absolute', top: data.smartTagAIMenuPosition.topP, left: data.smartTagAIMenuPosition.leftP, right: data.smartTagAIMenuPosition.rightP, height: data.smartTagAIMenuPosition.heightP, width: data.smartTagAIMenuPosition.widthP } },
42
42
  React.createElement(Menu, { dataSource: data.smartTagAIMenu.dataSource, hideSubmenuOnMouseLeave: data.smartTagAIMenu.hideSubmenuOnMouseLeave, elementAttr: menuAttributes, visible: data.smartTagAIMenu.visible, itemRender: renderMenuItemTemplate, showFirstSubmenuMode: 'onHover', onItemClick: (e) => typeof data.smartTagAIMenu.onItemClick === 'function' && data.smartTagAIMenu.onItemClick(e) })))));
43
43
  };
44
44
  export default Page;
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ import { JSReportParametersPanel } from 'devexpress-reporting/viewer/binding/jsReportParametersPanel';
3
+ import { TemplateEngine } from '../core/template-engine';
4
+ import '@devexpress/analytics-core/dx-analytics-core-svg-templates';
5
+ import 'devexpress-reporting/dx-reporting-svg-templates';
6
+ export type DxParametersPanelProps = {
7
+ height?: string;
8
+ width?: string;
9
+ cssClass?: string;
10
+ templateEngine?: TemplateEngine;
11
+ accessibilityCompliant?: boolean;
12
+ keepReportOnComponentDisposal?: boolean;
13
+ reportUrl?: string;
14
+ rtl?: boolean;
15
+ developmentMode?: boolean;
16
+ children?: React.ReactNode;
17
+ };
18
+ export type DxParametersPanelRef = {
19
+ instance: () => JSReportParametersPanel;
20
+ };
21
+ declare const DxParametersPanel: React.ForwardRefExoticComponent<DxParametersPanelProps & React.RefAttributes<DxParametersPanelRef>>;
22
+ export default DxParametersPanel;
@@ -0,0 +1,87 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import Callbacks from './options/ParametersPanelCallbacks';
4
+ import RequestOptions from './options/ParametersPanelRequestOptions';
5
+ import OptionsManager from '../../core/options-manager';
6
+ import { TemplateEngine } from '../core/template-engine';
7
+ import { JSReportParametersPanelBinding } from 'devexpress-reporting/viewer/binding/jsReportParametersPanelBinding';
8
+ import AccessibilitySettingsProvider from '../components/core/AccessibilitySettingsProvider';
9
+ import TemplateEngineProvider from '../components/core/TemplateEngineProvider';
10
+ import Template from '../components/core/Template';
11
+ import { ViewModelChangedEvent, viewModelGeneratorSettings } from '@devexpress/analytics-core/serializer/native/viewModels/viewModelGenerator';
12
+ import '@devexpress/analytics-core/dx-analytics-core-svg-templates';
13
+ import 'devexpress-reporting/dx-reporting-svg-templates';
14
+ const validChildComponents = {
15
+ 'callbacks': { component: Callbacks },
16
+ 'requestOptions': { component: RequestOptions },
17
+ };
18
+ const DxParametersPanel = React.forwardRef(({ reportUrl, ...props }, ref) => {
19
+ const parametersPanelRef = React.useRef(null);
20
+ const [viewModel, setViewModel] = React.useState(null);
21
+ const [parametersPanelBinding, setParametersPanelBinding] = React.useState(null);
22
+ React.useImperativeHandle(ref, () => ({
23
+ instance() {
24
+ return parametersPanelBinding?.sender;
25
+ }
26
+ }), [parametersPanelBinding]);
27
+ viewModelGeneratorSettings.ensureChangesImmutable = false;
28
+ React.useEffect(() => {
29
+ if (parametersPanelBinding && viewModel) {
30
+ parametersPanelBinding.sender.OpenReport(reportUrl);
31
+ setViewModel({ ...viewModel });
32
+ }
33
+ }, [reportUrl]);
34
+ React.useEffect(() => {
35
+ let disposeViewModelSubscription;
36
+ const updateViewModel = (model) => {
37
+ const viewModel = model.GetPreviewModel()?.getViewModel();
38
+ setViewModel({ ...viewModel });
39
+ disposeViewModelSubscription && disposeViewModelSubscription();
40
+ disposeViewModelSubscription = viewModel?._viewModelEvents?.on(ViewModelChangedEvent, () => setViewModel({ ...viewModel }));
41
+ };
42
+ const controlOptions = OptionsManager.getControlOptions({ ...props, reportUrl }, DxParametersPanel.propTypes, DxParametersPanelProps, validChildComponents);
43
+ let binding;
44
+ binding = new JSReportParametersPanelBinding({ ...controlOptions, callbacks: {} }, OptionsManager.getEventRaiser(controlOptions.callbacks, () => binding?.sender), false);
45
+ binding.applyBindings(parametersPanelRef.current);
46
+ setParametersPanelBinding(binding);
47
+ const model = binding.sender;
48
+ updateViewModel(model);
49
+ const disposeModelSubscription = model.events.on('propertyChanged', (args) => {
50
+ if (args.propertyName === 'previewModel') {
51
+ updateViewModel(model);
52
+ }
53
+ });
54
+ return () => {
55
+ disposeModelSubscription && disposeModelSubscription();
56
+ disposeViewModelSubscription && disposeViewModelSubscription();
57
+ setViewModel(null);
58
+ setParametersPanelBinding(null);
59
+ setTimeout(() => {
60
+ binding && binding.dispose();
61
+ });
62
+ };
63
+ }, []);
64
+ return (React.createElement(TemplateEngineProvider, { templateEngine: props.templateEngine ?? new TemplateEngine() },
65
+ React.createElement(AccessibilitySettingsProvider, { value: { accessibilityCompliant: !!viewModel?.accessibilityCompliant } },
66
+ React.createElement("div", { ref: parametersPanelRef, className: props.cssClass, style: { width: props.width || DxParametersPanelProps.width, height: props.height || DxParametersPanelProps.height } },
67
+ React.createElement("div", { className: "dx-designer" }, !!viewModel && React.createElement(Template, { template: "dx-designer", data: viewModel }))))));
68
+ });
69
+ DxParametersPanel.displayName = 'DxParametersPanel';
70
+ DxParametersPanel.propTypes = {
71
+ height: PropTypes.string,
72
+ width: PropTypes.string,
73
+ cssClass: PropTypes.string,
74
+ templateEngine: PropTypes.instanceOf(TemplateEngine),
75
+ accessibilityCompliant: PropTypes.bool,
76
+ keepReportOnComponentDisposal: PropTypes.bool,
77
+ reportUrl: PropTypes.string,
78
+ rtl: PropTypes.bool,
79
+ developmentMode: PropTypes.bool,
80
+ children: PropTypes.node,
81
+ };
82
+ const DxParametersPanelProps = {
83
+ height: '100%',
84
+ width: '100%',
85
+ cssClass: '',
86
+ };
87
+ export default DxParametersPanel;
@@ -0,0 +1,6 @@
1
+ import DxParametersPanel, { DxParametersPanelProps, DxParametersPanelRef } from './DxParametersPanel';
2
+ import Callbacks from './options/ParametersPanelCallbacks';
3
+ import RequestOptions from './options/ParametersPanelRequestOptions';
4
+ export { Callbacks, RequestOptions, DxParametersPanel as DxReportViewer, };
5
+ export type { DxParametersPanelProps as DxReportViewerProps, DxParametersPanelRef as DxReportViewerRef };
6
+ export default DxParametersPanel;
@@ -0,0 +1,5 @@
1
+ import DxParametersPanel from './DxParametersPanel';
2
+ import Callbacks from './options/ParametersPanelCallbacks';
3
+ import RequestOptions from './options/ParametersPanelRequestOptions';
4
+ export { Callbacks, RequestOptions, DxParametersPanel as DxReportViewer, };
5
+ export default DxParametersPanel;
@@ -0,0 +1,5 @@
1
+ import { FunctionComponent } from 'react';
2
+ import { BaseCallbacksPropsType } from '../../options/_baseCallbacks';
3
+ type ParametersPanelCallbacksPropsType = BaseCallbacksPropsType & {};
4
+ declare const ParametersPanelCallbacks: FunctionComponent<ParametersPanelCallbacksPropsType>;
5
+ export default ParametersPanelCallbacks;
@@ -0,0 +1,7 @@
1
+ import BaseCallbacks from '../../options/_baseCallbacks';
2
+ const ParametersPanelCallbacks = () => null;
3
+ ParametersPanelCallbacks.displayName = 'DxParametersPanelCallbacks';
4
+ ParametersPanelCallbacks.propTypes = {
5
+ ...BaseCallbacks.propTypes
6
+ };
7
+ export default ParametersPanelCallbacks;
@@ -0,0 +1,5 @@
1
+ import { FunctionComponent } from 'react';
2
+ import { BaseRequestOptionsPropsType } from '../../options/_baseRequestOptions';
3
+ type ParametersPanelRequestOptionsPropsType = BaseRequestOptionsPropsType & {};
4
+ declare const ParametersPanelRequestOptions: FunctionComponent<ParametersPanelRequestOptionsPropsType>;
5
+ export default ParametersPanelRequestOptions;
@@ -0,0 +1,7 @@
1
+ import BaseRequestOptions from '../../options/_baseRequestOptions';
2
+ const ParametersPanelRequestOptions = () => null;
3
+ ParametersPanelRequestOptions.displayName = 'DxParametersPanelRequestOptions';
4
+ ParametersPanelRequestOptions.propTypes = {
5
+ ...BaseRequestOptions.propTypes
6
+ };
7
+ export default ParametersPanelRequestOptions;
@@ -1,21 +1,13 @@
1
1
  import { FunctionComponent } from 'react';
2
- type CallbacksPropsType = {
2
+ import { BaseCallbacksPropsType } from './_baseCallbacks';
3
+ export type ReportViewerCallbacksPropsType = BaseCallbacksPropsType & {
3
4
  CustomizeElements?: (args: any) => void;
4
5
  PreviewClick?: (args: any) => void;
5
6
  EditingFieldChanged?: (args: any) => void;
6
7
  DocumentReady?: (args: any) => void;
7
8
  CustomizeExportOptions?: (args: any) => void;
8
- CustomizeParameterEditors?: (args: any) => void;
9
- CustomizeParameterLookUpSource?: (args: any) => void;
10
- ParametersReset?: (args: any) => void;
11
- ParametersSubmitted?: (args: any) => void;
12
- ParametersInitialized?: (args: any) => void;
13
9
  CustomizeMenuActions?: (args: any) => void;
14
- CustomizeLocalization?: (args: any) => void;
15
- OnInitializing?: (args: any) => void;
16
- BeforeRender?: (args: any) => void;
17
- OnServerError?: (args: any) => void;
18
10
  OnExport?: (args: any) => void;
19
11
  };
20
- declare const Callbacks: FunctionComponent<CallbacksPropsType>;
21
- export default Callbacks;
12
+ declare const ReportViewerCallbacks: FunctionComponent<ReportViewerCallbacksPropsType>;
13
+ export default ReportViewerCallbacks;
@@ -1,22 +1,15 @@
1
1
  import PropTypes from 'prop-types';
2
- const Callbacks = () => null;
3
- Callbacks.displayName = 'DxReportViewerCallbacks';
4
- Callbacks.propTypes = {
2
+ import BaseCallbacks from './_baseCallbacks';
3
+ const ReportViewerCallbacks = () => null;
4
+ ReportViewerCallbacks.displayName = 'DxReportViewerCallbacks';
5
+ ReportViewerCallbacks.propTypes = {
6
+ ...BaseCallbacks.propTypes,
5
7
  CustomizeElements: PropTypes.func,
6
8
  PreviewClick: PropTypes.func,
7
9
  EditingFieldChanged: PropTypes.func,
8
10
  DocumentReady: PropTypes.func,
9
11
  CustomizeExportOptions: PropTypes.func,
10
- CustomizeParameterEditors: PropTypes.func,
11
- CustomizeParameterLookUpSource: PropTypes.func,
12
- ParametersReset: PropTypes.func,
13
- ParametersSubmitted: PropTypes.func,
14
- ParametersInitialized: PropTypes.func,
15
12
  CustomizeMenuActions: PropTypes.func,
16
- CustomizeLocalization: PropTypes.func,
17
- OnInitializing: PropTypes.func,
18
- BeforeRender: PropTypes.func,
19
- OnServerError: PropTypes.func,
20
13
  OnExport: PropTypes.func,
21
14
  };
22
- export default Callbacks;
15
+ export default ReportViewerCallbacks;
@@ -1,8 +1,5 @@
1
1
  import { FunctionComponent } from 'react';
2
- type RequestOptionsPropsType = {
3
- invokeAction: string;
4
- getLocalizationAction?: string;
5
- host: string;
6
- };
7
- declare const RequestOptions: FunctionComponent<RequestOptionsPropsType>;
8
- export default RequestOptions;
2
+ import { BaseRequestOptionsPropsType } from './_baseRequestOptions';
3
+ export type ReportViewerRequestOptionsPropsType = BaseRequestOptionsPropsType & {};
4
+ declare const ReportViewerRequestOptions: FunctionComponent<ReportViewerRequestOptionsPropsType>;
5
+ export default ReportViewerRequestOptions;
@@ -1,12 +1,7 @@
1
- import PropTypes from 'prop-types';
2
- const RequestOptions = () => null;
3
- RequestOptions.displayName = 'DxReportViewerRequestOptions';
4
- RequestOptions.propTypes = {
5
- invokeAction: PropTypes.string.isRequired,
6
- getLocalizationAction: PropTypes.string,
7
- host: PropTypes.string.isRequired,
1
+ import BaseRequestOptions from './_baseRequestOptions';
2
+ const ReportViewerRequestOptions = () => null;
3
+ ReportViewerRequestOptions.displayName = 'DxReportViewerRequestOptions';
4
+ ReportViewerRequestOptions.propTypes = {
5
+ ...BaseRequestOptions.propTypes
8
6
  };
9
- RequestOptions.defaultProps = {
10
- invokeAction: '/DXXRDV',
11
- };
12
- export default RequestOptions;
7
+ export default ReportViewerRequestOptions;
@@ -0,0 +1,14 @@
1
+ import { FunctionComponent } from 'react';
2
+ export type BaseCallbacksPropsType = {
3
+ CustomizeParameterEditors?: (args: any) => void;
4
+ CustomizeParameterLookUpSource?: (args: any) => void;
5
+ ParametersReset?: (args: any) => void;
6
+ ParametersSubmitted?: (args: any) => void;
7
+ ParametersInitialized?: (args: any) => void;
8
+ CustomizeLocalization?: (args: any) => void;
9
+ OnInitializing?: (args: any) => void;
10
+ BeforeRender?: (args: any) => void;
11
+ OnServerError?: (args: any) => void;
12
+ };
13
+ declare const Callbacks: FunctionComponent<BaseCallbacksPropsType>;
14
+ export default Callbacks;
@@ -0,0 +1,15 @@
1
+ import PropTypes from 'prop-types';
2
+ const Callbacks = () => null;
3
+ Callbacks.displayName = 'DxReportViewerBaseCallbacks';
4
+ Callbacks.propTypes = {
5
+ CustomizeParameterEditors: PropTypes.func,
6
+ CustomizeParameterLookUpSource: PropTypes.func,
7
+ ParametersReset: PropTypes.func,
8
+ ParametersSubmitted: PropTypes.func,
9
+ ParametersInitialized: PropTypes.func,
10
+ CustomizeLocalization: PropTypes.func,
11
+ OnInitializing: PropTypes.func,
12
+ BeforeRender: PropTypes.func,
13
+ OnServerError: PropTypes.func,
14
+ };
15
+ export default Callbacks;
@@ -0,0 +1,8 @@
1
+ import { FunctionComponent } from 'react';
2
+ export type BaseRequestOptionsPropsType = {
3
+ invokeAction: string;
4
+ getLocalizationAction?: string;
5
+ host: string;
6
+ };
7
+ declare const BaseRequestOptions: FunctionComponent<BaseRequestOptionsPropsType>;
8
+ export default BaseRequestOptions;
@@ -0,0 +1,12 @@
1
+ import PropTypes from 'prop-types';
2
+ const BaseRequestOptions = () => null;
3
+ BaseRequestOptions.displayName = 'DxReportViewerBaseRequestOptions';
4
+ BaseRequestOptions.propTypes = {
5
+ invokeAction: PropTypes.string.isRequired,
6
+ getLocalizationAction: PropTypes.string,
7
+ host: PropTypes.string.isRequired,
8
+ };
9
+ BaseRequestOptions.defaultProps = {
10
+ invokeAction: '/DXXRDV',
11
+ };
12
+ export default BaseRequestOptions;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devexpress-reporting-react",
3
- "version": "24.2.2-beta",
3
+ "version": "24.2.5",
4
4
  "homepage": "https://www.devexpress.com/",
5
5
  "bugs": "https://www.devexpress.com/support/",
6
6
  "author": "Developer Express Inc.",
@@ -15,18 +15,19 @@
15
15
  "license": "SEE LICENSE IN README.md",
16
16
  "main": "./index.js",
17
17
  "dependencies": {
18
- "devexpress-reporting": "24.2.2-beta",
18
+ "devexpress-reporting": "24.2.5",
19
19
  "prop-types": "^15.8.1"
20
20
  },
21
21
  "peerDependencies": {
22
+ "@types/prop-types": "15.7.13",
22
23
  "@types/react": "^18.0.28",
23
24
  "@types/react-dom": "^18.0.28",
24
- "devextreme-react": "24.2.2-beta",
25
+ "devextreme-react": "24.2.5",
25
26
  "react": "^18.0.28",
26
27
  "react-dom": "^18.0.28"
27
28
  },
28
29
  "devDependencies": {
29
- "@devexpress/analytics-core": "24.2.2-beta",
30
+ "@devexpress/analytics-core": "24.2.5",
30
31
  "shx": "^0.3.4",
31
32
  "typescript": "<5.3.0"
32
33
  },
@@ -34,5 +35,5 @@
34
35
  "prebuild": "npx shx rm -rf dist && npx shx mkdir dist && npx shx cp README.md dist/ && npx shx cp package.json dist/",
35
36
  "build": "npx tsc --project tsconfig.lib.json"
36
37
  },
37
- "commitSHA": "cc41462435ed6449af1ecfedef0f3bc179dea83c"
38
+ "commitSHA": "eadbde5419c7c681a9b7959ed350211c84633c06"
38
39
  }