devexpress-reporting-react 24.2.7 → 25.1.2-beta

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.
Files changed (42) hide show
  1. package/dx-report-viewer/DxReportViewer.d.ts +2 -2
  2. package/dx-report-viewer/DxReportViewer.js +5 -4
  3. package/dx-report-viewer/components/reporting/AIPanel/AIPanel.js +4 -4
  4. package/dx-report-viewer/components/reporting/Editing/PopupImageEditingField/PopupImageEditingField.js +1 -1
  5. package/dx-report-viewer/components/reporting/ReportPreview/Page/Page.js +13 -7
  6. package/dx-report-viewer/components/reporting/ReportPreview/Surface/Surface.js +9 -1
  7. package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/Painter → Painter}/Painter.js +1 -1
  8. package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/SizeOptions → SizeOptions}/PictureEditingSizeOptions.js +1 -1
  9. package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ToolbarPopup → ToolbarPopup}/PictureEditorToolbarPopup.js +1 -1
  10. package/dx-report-viewer/components/reporting/_templates.js +5 -5
  11. package/dx-report-viewer/dx-parameters-panel/DxParametersPanel.d.ts +2 -2
  12. package/dx-report-viewer/dx-parameters-panel/DxParametersPanel.js +2 -2
  13. package/dx-report-viewer/index.d.ts +4 -1
  14. package/dx-report-viewer/index.js +4 -1
  15. package/dx-report-viewer/options/aiSettings/AISettings.d.ts +20 -0
  16. package/dx-report-viewer/options/aiSettings/AISettings.js +13 -0
  17. package/dx-report-viewer/options/aiSettings/SummarizationSettings.d.ts +6 -0
  18. package/dx-report-viewer/options/aiSettings/SummarizationSettings.js +7 -0
  19. package/dx-report-viewer/options/aiSettings/TranslationSettings.d.ts +9 -0
  20. package/dx-report-viewer/options/aiSettings/TranslationSettings.js +9 -0
  21. package/package.json +10 -15
  22. /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/BrushOptions → BrushOptions}/PictureEditingBrushOptions.d.ts +0 -0
  23. /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/BrushOptions → BrushOptions}/PictureEditingBrushOptions.js +0 -0
  24. /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/BrushOptions → BrushOptions}/index.d.ts +0 -0
  25. /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/BrushOptions → BrushOptions}/index.js +0 -0
  26. /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ImagesPicker → ImagesPicker}/PictureEditingImagesPicker.d.ts +0 -0
  27. /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ImagesPicker → ImagesPicker}/PictureEditingImagesPicker.js +0 -0
  28. /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ImagesPicker → ImagesPicker}/index.d.ts +0 -0
  29. /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ImagesPicker → ImagesPicker}/index.js +0 -0
  30. /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ImagesPickerWithFilter → ImagesPickerWithFilter}/PictureEditingImagesPickerWithFilter.d.ts +0 -0
  31. /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ImagesPickerWithFilter → ImagesPickerWithFilter}/PictureEditingImagesPickerWithFilter.js +0 -0
  32. /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ImagesPickerWithFilter → ImagesPickerWithFilter}/index.d.ts +0 -0
  33. /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ImagesPickerWithFilter → ImagesPickerWithFilter}/index.js +0 -0
  34. /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/Painter → Painter}/Painter.d.ts +0 -0
  35. /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/Painter → Painter}/index.d.ts +0 -0
  36. /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/Painter → Painter}/index.js +0 -0
  37. /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/SizeOptions → SizeOptions}/PictureEditingSizeOptions.d.ts +0 -0
  38. /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/SizeOptions → SizeOptions}/index.d.ts +0 -0
  39. /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/SizeOptions → SizeOptions}/index.js +0 -0
  40. /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ToolbarPopup → ToolbarPopup}/PictureEditorToolbarPopup.d.ts +0 -0
  41. /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ToolbarPopup → ToolbarPopup}/index.d.ts +0 -0
  42. /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ToolbarPopup → ToolbarPopup}/index.js +0 -0
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import { JSReportViewer } from 'devexpress-reporting/viewer/binding/jsReportViewer';
3
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';
4
+ import '@devexpress/analytics-core/dx-dev-analytics-core-svg-templates.generated';
5
+ import 'devexpress-reporting/dx-dev-reporting-svg-templates.generated';
6
6
  export type DxReportViewerProps = {
7
7
  height?: string;
8
8
  width?: string;
@@ -15,8 +15,9 @@ import AccessibilitySettingsProvider from './components/core/AccessibilitySettin
15
15
  import TemplateEngineProvider from './components/core/TemplateEngineProvider';
16
16
  import Template from './components/core/Template';
17
17
  import { ViewModelChangedEvent, viewModelGeneratorSettings } from '@devexpress/analytics-core/serializer/native/viewModels/viewModelGenerator';
18
- import '@devexpress/analytics-core/dx-analytics-core-svg-templates';
19
- import 'devexpress-reporting/dx-reporting-svg-templates';
18
+ import '@devexpress/analytics-core/dx-dev-analytics-core-svg-templates.generated';
19
+ import 'devexpress-reporting/dx-dev-reporting-svg-templates.generated';
20
+ import AISettings, { validChildComponents as aiValidChildComponents } from './options/aiSettings/AISettings';
20
21
  const validChildComponents = {
21
22
  'callbacks': { component: Callbacks },
22
23
  'exportSettings': { component: ExportSettings },
@@ -26,6 +27,7 @@ const validChildComponents = {
26
27
  'requestOptions': { component: RequestOptions },
27
28
  'searchSettings': { component: SearchSettings },
28
29
  'tabPanelSettings': { component: TabPanelSettings },
30
+ 'aiSettings': { component: AISettings, children: aiValidChildComponents }
29
31
  };
30
32
  const DxReportViewer = React.forwardRef(({ reportUrl, ...props }, ref) => {
31
33
  const viewerRef = React.useRef(null);
@@ -52,8 +54,7 @@ const DxReportViewer = React.forwardRef(({ reportUrl, ...props }, ref) => {
52
54
  disposeViewModelSubscription = viewModel?._viewModelEvents?.on(ViewModelChangedEvent, () => setViewModel({ ...viewModel }));
53
55
  };
54
56
  const controlOptions = OptionsManager.getControlOptions({ ...props, reportUrl }, DxReportViewer.propTypes, DxReportViewerDefaultProps, validChildComponents);
55
- let binding;
56
- binding = new JSReportViewerBinding({ ...controlOptions, callbacks: {} }, OptionsManager.getEventRaiser(controlOptions.callbacks, () => binding?.sender), false);
57
+ const binding = new JSReportViewerBinding({ ...controlOptions, callbacks: {} }, OptionsManager.getEventRaiser(controlOptions.callbacks, () => binding?.sender), false);
57
58
  binding.applyBindings(viewerRef.current);
58
59
  setViewerBinding(binding);
59
60
  const model = binding.sender;
@@ -28,12 +28,12 @@ const AIPanel = ({ data }) => {
28
28
  " ",
29
29
  viewModel.targetContentText),
30
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 })),
31
- React.createElement("div", { className: "dx-field dxrd-preview-ai-select-box" },
31
+ viewModel.languageSelectBoxOptions.visible && (React.createElement("div", { className: "dx-field dxrd-preview-ai-select-box" },
32
32
  React.createElement("label", { className: "dxrd-preview-ai-form-label", htmlFor: "dxrv-ai-language-select" },
33
33
  " ",
34
34
  viewModel.targetLanguageText,
35
35
  " "),
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 })),
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
37
  viewModel.pageSelectBoxVisible && (React.createElement("div", { className: "dx-field dxrd-preview-ai-select-box" },
38
38
  React.createElement("label", { className: "dxrd-preview-ai-form-label", htmlFor: "dxrv-ai-page-select" },
39
39
  " ",
@@ -42,8 +42,8 @@ const AIPanel = ({ data }) => {
42
42
  React.createElement("div", { className: "dx-field" },
43
43
  React.createElement("div", { className: "dxrd-preview-ai-buttons-wrapper" },
44
44
  React.createElement(LoadIndicator, { className: "dxrd-preview-ai-buttons", visible: data.model.loading, height: 24, width: 24 }),
45
- React.createElement(Button, { className: "dxrd-preview-ai-buttons dx-accessibility-focus-border-accented", text: viewModel.buttons.translateTextButton.text, disabled: viewModel.buttons.translateTextButton.disabled, onClick: viewModel.buttons.translateTextButton.onClick, width: viewModel.buttons.translateTextButton.width }),
46
- React.createElement(Button, { className: "dxrd-preview-ai-buttons dx-accessibility-focus-border-accented", text: viewModel.buttons.summarizeTextButton.text, disabled: viewModel.buttons.summarizeTextButton.disabled, onClick: viewModel.buttons.summarizeTextButton.onClick, width: viewModel.buttons.summarizeTextButton.width })))),
45
+ React.createElement(Button, { className: "dxrd-preview-ai-buttons dx-accessibility-focus-border-accented", text: viewModel.buttons.translateTextButton.text, disabled: viewModel.buttons.translateTextButton.disabled, onClick: viewModel.buttons.translateTextButton.onClick, width: viewModel.buttons.translateTextButton.width, visible: viewModel.buttons.translateTextButton.visible }),
46
+ React.createElement(Button, { className: "dxrd-preview-ai-buttons dx-accessibility-focus-border-accented", text: viewModel.buttons.summarizeTextButton.text, disabled: viewModel.buttons.summarizeTextButton.disabled, onClick: viewModel.buttons.summarizeTextButton.onClick, width: viewModel.buttons.summarizeTextButton.width, visible: viewModel.buttons.summarizeTextButton.visible })))),
47
47
  viewModel.resultVisible && (React.createElement("div", { className: "dxrd-right-panel-header dxd-text-primary dxd-border-primary dxrd-ai-result-text" },
48
48
  React.createElement("span", { className: "dxrd-right-panel-result-text" },
49
49
  " ",
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import Template from '../../../core/Template';
3
- import Painter from '../../Widgets/PictureEditor/Painter';
3
+ import Painter from '../../Widgets/Painter';
4
4
  import { Popup } from 'devextreme-react/popup';
5
5
  const PopupImageEditingField = ({ data }) => {
6
6
  const elementRef = React.useRef();
@@ -4,6 +4,7 @@ import useDxMutationObserver from '../../../../hooks/dxMutationObserver';
4
4
  import useDxBrickSelection from '../../../../hooks/dxBrickSelection';
5
5
  import useDxPreviewPageRenderer from '../../../../hooks/dxPreviewPageRenderer';
6
6
  import Menu from 'devextreme-react/menu';
7
+ import { LoadPanel } from 'devextreme-react';
7
8
  const EditingFieldsHolder = ({ editingFields, editingFieldsKeyboardHelper }) => {
8
9
  const mutationObserverRef = React.useRef();
9
10
  useDxMutationObserver(mutationObserverRef, editingFieldsKeyboardHelper);
@@ -23,6 +24,7 @@ const Page = ({ data }) => {
23
24
  const brickSelectionRef = React.useRef();
24
25
  useDxBrickSelection(brickSelectionRef, data.brickSelectionProg);
25
26
  useDxPreviewPageRenderer(brickSelectionRef, data.imageOptions);
27
+ const position = { of: '#' + data.page_id };
26
28
  const renderMenuItemTemplate = (item) => {
27
29
  return (React.createElement("div", { className: "dxrd-ai-floating-smart-tag-container" },
28
30
  item.text && (React.createElement("div", { className: "dxrd-ai-floating-smart-tag-text" }, item.text)),
@@ -33,12 +35,16 @@ const Page = ({ data }) => {
33
35
  const menuAttributes = {
34
36
  class: 'dxrd-control-ai-smart-tag dxd-icon-accented'
35
37
  };
36
- return (React.createElement("div", { role: "img", className: "dxrd-report-preview-content dxrd-position-relative dxrd-width-100 dxrd-height-100", "aria-label": data.currentPageAriaLabelImgAlt, onClick: e => data.clickToBrick(data, e), ref: brickSelectionRef },
37
- React.createElement("div", { className: "dxrd-report-preview-content-loading-wrapper dxrd-background-white", style: { width: data.width + 2 + 'px', height: data.height + 2 + 'px' }, hidden: !data.pageLoading },
38
- React.createElement("div", { className: "dxrd-report-preview-content-loading-panel dxrd-text-align-center", style: { paddingTop: data.height / 2.3 + 'px' } },
39
- React.createElement("div", { className: "dxrd-report-preview-content-loading-panel-text" }, data.loadingText))),
40
- React.createElement(Image, { data: data }),
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
- 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) })))));
38
+ return (React.createElement("div", null,
39
+ React.createElement(LoadPanel, { position: position, visible: data.loading }),
40
+ React.createElement("div", { role: "img", id: data.page_id, className: "dxrd-report-preview-content dxrd-position-relative dxrd-width-100 dxrd-height-100", "aria-label": data.currentPageAriaLabelImgAlt, onClick: e => data.clickToBrick(data, e), ref: brickSelectionRef },
41
+ React.createElement("div", { className: "dxrd-report-preview-content-loading-wrapper dxrd-background-white", style: { width: data.width + 2 + 'px', height: data.height + 2 + 'px' }, hidden: !data.pageLoading },
42
+ React.createElement("div", { className: "dxrd-report-preview-content-loading-panel dxrd-text-align-center", style: { paddingTop: data.height / 2.3 + 'px' } },
43
+ React.createElement("div", { className: "dxrd-report-preview-content-loading-panel-text" }, data.loadingText))),
44
+ React.createElement(Image, { data: data }),
45
+ data.aiServicesEnabled && data.active && (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 } },
46
+ 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), onSubmenuShowing: (e) => typeof data.smartTagAIMenu.onSubmenuShowing === 'function' && data.smartTagAIMenu.onSubmenuShowing(e) }))),
47
+ data.aiServicesEnabled && data.aiCustomDocumentStorageId && (React.createElement("div", { className: "dxrd-report-preview-page-modified" },
48
+ React.createElement("span", { className: "dxrd-report-preview-page-modified-text" }, data.translatedPageBadgeText))))));
43
49
  };
44
50
  export default Page;
@@ -5,6 +5,8 @@ import useDxMutationObserver from '../../../../hooks/dxMutationObserver';
5
5
  import useDxAutoFit from '../../../../hooks/dxAutoFit';
6
6
  import useDxLazyImages from '../../../../hooks/dxLazyImages';
7
7
  import useDxToView from '../../../../hooks/dxToView';
8
+ import { Button, Popup } from 'devextreme-react';
9
+ import { Position } from 'devextreme-react/cjs/popup';
8
10
  const MultiPageHolder = ({ lazyImagesOptions, pages }) => {
9
11
  const lazyImagesRef = React.useRef();
10
12
  useDxLazyImages(lazyImagesRef, lazyImagesOptions);
@@ -33,7 +35,13 @@ const Surface = ({ data }) => {
33
35
  React.createElement(Template, { template: "dxrd-preview-page", data: data.currentPage }))))),
34
36
  data.showMultipagePreview && !!data.currentPage && React.createElement(MultiPageHolder, { pages: data.pages, lazyImagesOptions: data.lazyImagesOptions }),
35
37
  React.createElement("div", { className: `dxrd-report-preview-placeholder ${!!data.currentPage ? 'dxrd-visually-hidden' : ''}` },
36
- React.createElement("div", { "aria-live": "assertive", "aria-atomic": "true", className: "dxd-empty-area-placeholder-text-color dxd-text-info" }, data.emptyDocumentCaption)))),
38
+ React.createElement("div", { "aria-live": "assertive", "aria-atomic": "true", className: "dxd-empty-area-placeholder-text-color dxd-text-info" }, data.emptyDocumentCaption))),
39
+ React.createElement(Popup, { width: 450, height: 150, visible: data.exportTranslatedDocPopupVisible, container: '.dxrd-preview-surface', dragEnabled: false, hideOnOutsideClick: true, showCloseButton: false, showTitle: false, onHidden: () => data.onExportPopupHiding() },
40
+ React.createElement(Position, { at: "top", my: "top", of: "#dxrd-preview-ai-panel-id", collision: "fit" }),
41
+ React.createElement("span", { "data-bind": "text: exportTranslatedDodumentWarningMsg", className: "dxrd-preview-export-warning-popup-text" }, data.exportTranslatedDodumentWarningMsg),
42
+ React.createElement("div", { className: "dxrd-preview-export-warning-popup-button-group" },
43
+ React.createElement(Button, { text: data.exportTranslatedDocumentButtonText, onClick: () => data.exportTranslatedHandler(), className: "dxrd-preview-export-warning-popup-button dx-button-default" }),
44
+ React.createElement(Button, { text: data.exportOriginalDocumentButtonText, onClick: () => data.exportTranslatedCancel(), className: "dxrd-preview-export-warning-popup-button" })))),
37
45
  React.createElement("div", { id: "dxrd-preview-bricks-live-region", className: "dxrd-visually-hidden", "aria-live": "polite", "aria-atomic": "true" }),
38
46
  React.createElement("div", { id: "clipboard-container", className: "dxrd-position-absolute dxrd-top--100px" },
39
47
  React.createElement("textarea", { disabled: true, "aria-label": clipboardMessage, id: "clipboard" }))));
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import dxZoom from '../../../../../hooks/dxZoom';
2
+ import dxZoom from '../../../../hooks/dxZoom';
3
3
  import { Painter } from 'devexpress-reporting/viewer/widgets/pictureEditor/_painter';
4
4
  const PainterComponent = ({ options, className, ...delegatedProps }) => {
5
5
  const ref = React.useRef();
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import Template from '../../../../core/Template';
2
+ import Template from '../../../core/Template';
3
3
  const PictureEditingSizeOptions = ({ data }) => {
4
4
  return (React.createElement("div", { className: "dx-picture-editing-sizemode-alignment" },
5
5
  React.createElement("div", { className: "dx-picture-editing-sizemode" },
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import Template from '../../../../core/Template';
2
+ import Template from '../../../core/Template';
3
3
  import { Popover } from 'devextreme-react/popover';
4
4
  import { getParentContainer } from '@devexpress/analytics-core/widgets/_utils';
5
5
  const PictureEditingToolbarOptions = ({ data }) => {
@@ -37,11 +37,11 @@ import DateRangeMobile from './ParametersPanel/DateRange/Mobile';
37
37
  import SignatureEditor from './Widgets/SignatureEditor';
38
38
  import MultiValue from './ParametersPanel/MultiValue/MultiValue';
39
39
  import MultiValueEditable from './ParametersPanel/MultiValue/MultiValueEditable';
40
- import PictureEditingToolbarOptions from './Widgets/PictureEditor/ToolbarPopup/PictureEditorToolbarPopup';
41
- import PictureEditingBrushOptions from './Widgets/PictureEditor/BrushOptions/PictureEditingBrushOptions';
42
- import PictureEditingImagePicker from './Widgets/PictureEditor/ImagesPicker/PictureEditingImagesPicker';
43
- import PictureEditingSizeOptions from './Widgets/PictureEditor/SizeOptions/PictureEditingSizeOptions';
44
- import PictureEditingImagePickerWithFilter from './Widgets/PictureEditor/ImagesPickerWithFilter/PictureEditingImagesPickerWithFilter';
40
+ import PictureEditingToolbarOptions from './Widgets/ToolbarPopup/PictureEditorToolbarPopup';
41
+ import PictureEditingBrushOptions from './Widgets/BrushOptions/PictureEditingBrushOptions';
42
+ import PictureEditingImagePicker from './Widgets/ImagesPicker/PictureEditingImagesPicker';
43
+ import PictureEditingSizeOptions from './Widgets/SizeOptions/PictureEditingSizeOptions';
44
+ import PictureEditingImagePickerWithFilter from './Widgets/ImagesPickerWithFilter/PictureEditingImagesPickerWithFilter';
45
45
  import MobileSearch from './Mobile/Search';
46
46
  import MobileSurface from './Mobile/Surface';
47
47
  import MobilePaginator from './Mobile/Pages';
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import { JSReportParametersPanel } from 'devexpress-reporting/viewer/binding/jsReportParametersPanel';
3
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';
4
+ import '@devexpress/analytics-core/dx-dev-analytics-core-svg-templates.generated';
5
+ import 'devexpress-reporting/dx-dev-reporting-svg-templates.generated';
6
6
  export type DxParametersPanelProps = {
7
7
  height?: string;
8
8
  width?: string;
@@ -9,8 +9,8 @@ import AccessibilitySettingsProvider from '../components/core/AccessibilitySetti
9
9
  import TemplateEngineProvider from '../components/core/TemplateEngineProvider';
10
10
  import Template from '../components/core/Template';
11
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';
12
+ import '@devexpress/analytics-core/dx-dev-analytics-core-svg-templates.generated';
13
+ import 'devexpress-reporting/dx-dev-reporting-svg-templates.generated';
14
14
  const validChildComponents = {
15
15
  'callbacks': { component: Callbacks },
16
16
  'requestOptions': { component: RequestOptions },
@@ -8,6 +8,9 @@ import RequestOptions from './options/RequestOptions';
8
8
  import SearchSettings from './options/SearchSettings';
9
9
  import TabPanelSettings from './options/TabPanelSettings';
10
10
  import { TemplateEngine } from './core/template-engine';
11
- export { Callbacks, ExportSettings, MobileModeSettings, ProgressBarSettings, RemoteSettings, RequestOptions, SearchSettings, TabPanelSettings, DxReportViewer, TemplateEngine };
11
+ import AISettings from './options/aiSettings/AISettings';
12
+ import SummarizationSettings from './options/aiSettings/SummarizationSettings';
13
+ import TranslationSettings from './options/aiSettings/TranslationSettings';
14
+ export { Callbacks, ExportSettings, MobileModeSettings, ProgressBarSettings, RemoteSettings, RequestOptions, SearchSettings, TabPanelSettings, DxReportViewer, AISettings, SummarizationSettings, TranslationSettings, TemplateEngine };
12
15
  export type { DxReportViewerProps, DxReportViewerRef };
13
16
  export default DxReportViewer;
@@ -8,5 +8,8 @@ import RequestOptions from './options/RequestOptions';
8
8
  import SearchSettings from './options/SearchSettings';
9
9
  import TabPanelSettings from './options/TabPanelSettings';
10
10
  import { TemplateEngine } from './core/template-engine';
11
- export { Callbacks, ExportSettings, MobileModeSettings, ProgressBarSettings, RemoteSettings, RequestOptions, SearchSettings, TabPanelSettings, DxReportViewer, TemplateEngine };
11
+ import AISettings from './options/aiSettings/AISettings';
12
+ import SummarizationSettings from './options/aiSettings/SummarizationSettings';
13
+ import TranslationSettings from './options/aiSettings/TranslationSettings';
14
+ export { Callbacks, ExportSettings, MobileModeSettings, ProgressBarSettings, RemoteSettings, RequestOptions, SearchSettings, TabPanelSettings, DxReportViewer, AISettings, SummarizationSettings, TranslationSettings, TemplateEngine };
12
15
  export default DxReportViewer;
@@ -0,0 +1,20 @@
1
+ import { FunctionComponent } from 'react';
2
+ export declare const validChildComponents: {
3
+ translationSettings: {
4
+ component: FunctionComponent<{
5
+ translationEnabled?: boolean;
6
+ inlineTranslationEnabled?: boolean;
7
+ languages?: import("devexpress-reporting/dx-webdocumentviewer").AILanguageInfo[];
8
+ }>;
9
+ };
10
+ summarizationSettings: {
11
+ component: FunctionComponent<{
12
+ summarizationEnabled?: boolean;
13
+ }>;
14
+ };
15
+ };
16
+ type AISettingsPropsType = {
17
+ children: React.ReactNode | React.ReactNode[];
18
+ };
19
+ declare const AISettings: FunctionComponent<AISettingsPropsType>;
20
+ export default AISettings;
@@ -0,0 +1,13 @@
1
+ import PropTypes from 'prop-types';
2
+ import TranslationSettings from './TranslationSettings';
3
+ import SummarizationSettings from './SummarizationSettings';
4
+ export const validChildComponents = {
5
+ 'translationSettings': { component: TranslationSettings },
6
+ 'summarizationSettings': { component: SummarizationSettings }
7
+ };
8
+ const AISettings = () => null;
9
+ AISettings.displayName = 'DxReportViewerAISettings';
10
+ AISettings.propTypes = {
11
+ children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])
12
+ };
13
+ export default AISettings;
@@ -0,0 +1,6 @@
1
+ import { FunctionComponent } from 'react';
2
+ type SummarizationSettingsPropsType = {
3
+ summarizationEnabled?: boolean;
4
+ };
5
+ declare const SummarizationSettings: FunctionComponent<SummarizationSettingsPropsType>;
6
+ export default SummarizationSettings;
@@ -0,0 +1,7 @@
1
+ import PropTypes from 'prop-types';
2
+ const SummarizationSettings = () => null;
3
+ SummarizationSettings.displayName = 'DxReportViewerAISummarizationSettings';
4
+ SummarizationSettings.propTypes = {
5
+ summarizationEnabled: PropTypes.bool,
6
+ };
7
+ export default SummarizationSettings;
@@ -0,0 +1,9 @@
1
+ import { AILanguageInfo } from 'devexpress-reporting/dx-webdocumentviewer';
2
+ import { FunctionComponent } from 'react';
3
+ type TranslationSettingsPropsType = {
4
+ translationEnabled?: boolean;
5
+ inlineTranslationEnabled?: boolean;
6
+ languages?: AILanguageInfo[];
7
+ };
8
+ declare const TranslationSettings: FunctionComponent<TranslationSettingsPropsType>;
9
+ export default TranslationSettings;
@@ -0,0 +1,9 @@
1
+ import PropTypes from 'prop-types';
2
+ const TranslationSettings = () => null;
3
+ TranslationSettings.displayName = 'DxReportViewerAITranslationSettings';
4
+ TranslationSettings.propTypes = {
5
+ translationEnabled: PropTypes.bool,
6
+ inlineTranslationEnabled: PropTypes.bool,
7
+ languages: PropTypes.array,
8
+ };
9
+ export default TranslationSettings;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devexpress-reporting-react",
3
- "version": "24.2.7",
3
+ "version": "25.1.2-beta",
4
4
  "homepage": "https://www.devexpress.com/",
5
5
  "bugs": "https://www.devexpress.com/support/",
6
6
  "author": "Developer Express Inc.",
@@ -15,25 +15,20 @@
15
15
  "license": "SEE LICENSE IN README.md",
16
16
  "main": "./index.js",
17
17
  "dependencies": {
18
- "devexpress-reporting": "24.2.7",
19
18
  "prop-types": "^15.8.1"
20
19
  },
21
20
  "peerDependencies": {
22
- "devextreme-react": "24.2.7",
23
- "react": "^18.0.0 || ^19.0.0",
24
- "react-dom": "^18.0.0 || ^19.0.0"
25
- },
26
- "devDependencies": {
27
- "@devexpress/analytics-core": "24.2.7",
28
21
  "@types/prop-types": "15.7.13",
29
22
  "@types/react": "^18.0.28",
30
23
  "@types/react-dom": "^18.0.28",
31
- "shx": "^0.3.4",
32
- "typescript": "<5.3.0"
24
+ "devextreme-react": "25.1.2-beta",
25
+ "react": "^18.0.0 || ^19.0.0",
26
+ "react-dom": "^18.0.0 || ^19.0.0",
27
+ "@devexpress/analytics-core": "25.1.2-beta",
28
+ "devexpress-reporting": "25.1.2-beta"
33
29
  },
30
+ "commitSHA": "f353221847f38d0e899a6ae012045638c3e0346e",
34
31
  "scripts": {
35
- "prebuild": "npx shx rm -rf dist && npx shx mkdir dist && npx shx cp README.md dist/ && npx shx cp package.json dist/",
36
- "build": "npx tsc --project tsconfig.lib.json"
37
- },
38
- "commitSHA": "7177001bda75ba8df025b355d4ed681719ac7f77"
39
- }
32
+ "build": "echo done"
33
+ }
34
+ }