devexpress-reporting-react 25.1.1-alpha → 25.1.3
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.
- package/dx-report-viewer/DxReportViewer.js +3 -2
- package/dx-report-viewer/components/reporting/AIPanel/AIPanel.js +10 -5
- package/dx-report-viewer/components/reporting/Editing/CharacterComb/CharacterComb.js +1 -1
- package/dx-report-viewer/components/reporting/Editing/ExportTool/ExportTool.js +1 -1
- package/dx-report-viewer/components/reporting/Editing/PopupImageEditingField/PopupImageEditingField.js +1 -1
- package/dx-report-viewer/components/reporting/Editing/TextField/Text/EditingFieldText.js +1 -1
- package/dx-report-viewer/components/reporting/ParametersPanel/DateRange/DateRange/DateRange.js +2 -0
- package/dx-report-viewer/components/reporting/ParametersPanel/ParametersPanel.js +1 -1
- package/dx-report-viewer/components/reporting/ReportPreview/Page/Page.js +2 -2
- package/dx-report-viewer/components/reporting/ReportPreview/Surface/Surface.js +10 -6
- package/dx-report-viewer/components/reporting/Search/Search.js +5 -1
- package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/Painter → Painter}/Painter.js +1 -1
- package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/SizeOptions → SizeOptions}/PictureEditingSizeOptions.js +1 -1
- package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ToolbarPopup → ToolbarPopup}/PictureEditorToolbarPopup.js +1 -1
- package/dx-report-viewer/components/reporting/_templates.js +5 -5
- package/dx-report-viewer/hooks/dxEllipsisEditor.js +1 -3
- package/dx-report-viewer/hooks/dxTextCopier.d.ts +4 -0
- package/dx-report-viewer/hooks/dxTextCopier.js +6 -0
- package/dx-report-viewer/index.d.ts +4 -1
- package/dx-report-viewer/index.js +4 -1
- package/dx-report-viewer/options/aiSettings/AISettings.d.ts +20 -0
- package/dx-report-viewer/options/aiSettings/AISettings.js +13 -0
- package/dx-report-viewer/options/aiSettings/SummarizationSettings.d.ts +6 -0
- package/dx-report-viewer/options/aiSettings/SummarizationSettings.js +7 -0
- package/dx-report-viewer/options/aiSettings/TranslationSettings.d.ts +9 -0
- package/dx-report-viewer/options/aiSettings/TranslationSettings.js +9 -0
- package/package.json +5 -5
- /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/BrushOptions → BrushOptions}/PictureEditingBrushOptions.d.ts +0 -0
- /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/BrushOptions → BrushOptions}/PictureEditingBrushOptions.js +0 -0
- /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/BrushOptions → BrushOptions}/index.d.ts +0 -0
- /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/BrushOptions → BrushOptions}/index.js +0 -0
- /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ImagesPicker → ImagesPicker}/PictureEditingImagesPicker.d.ts +0 -0
- /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ImagesPicker → ImagesPicker}/PictureEditingImagesPicker.js +0 -0
- /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ImagesPicker → ImagesPicker}/index.d.ts +0 -0
- /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ImagesPicker → ImagesPicker}/index.js +0 -0
- /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ImagesPickerWithFilter → ImagesPickerWithFilter}/PictureEditingImagesPickerWithFilter.d.ts +0 -0
- /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ImagesPickerWithFilter → ImagesPickerWithFilter}/PictureEditingImagesPickerWithFilter.js +0 -0
- /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ImagesPickerWithFilter → ImagesPickerWithFilter}/index.d.ts +0 -0
- /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ImagesPickerWithFilter → ImagesPickerWithFilter}/index.js +0 -0
- /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/Painter → Painter}/Painter.d.ts +0 -0
- /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/Painter → Painter}/index.d.ts +0 -0
- /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/Painter → Painter}/index.js +0 -0
- /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/SizeOptions → SizeOptions}/PictureEditingSizeOptions.d.ts +0 -0
- /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/SizeOptions → SizeOptions}/index.d.ts +0 -0
- /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/SizeOptions → SizeOptions}/index.js +0 -0
- /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ToolbarPopup → ToolbarPopup}/PictureEditorToolbarPopup.d.ts +0 -0
- /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ToolbarPopup → ToolbarPopup}/index.d.ts +0 -0
- /package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/ToolbarPopup → ToolbarPopup}/index.js +0 -0
|
@@ -17,6 +17,7 @@ import Template from './components/core/Template';
|
|
|
17
17
|
import { ViewModelChangedEvent, viewModelGeneratorSettings } from '@devexpress/analytics-core/serializer/native/viewModels/viewModelGenerator';
|
|
18
18
|
import '@devexpress/analytics-core/dx-dev-analytics-core-svg-templates.generated';
|
|
19
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
|
-
|
|
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;
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import React, { useMemo } from 'react';
|
|
2
|
-
import
|
|
2
|
+
import Button from 'devextreme-react/button';
|
|
3
|
+
import CheckBox from 'devextreme-react/check-box';
|
|
4
|
+
import LoadIndicator from 'devextreme-react/load-indicator';
|
|
5
|
+
import SelectBox from 'devextreme-react/select-box';
|
|
6
|
+
import TextArea from 'devextreme-react/text-area';
|
|
7
|
+
import Popup from 'devextreme-react/popup';
|
|
3
8
|
import Template from '../../core/Template';
|
|
4
9
|
import { Position } from 'devextreme-react/cjs/popup';
|
|
5
10
|
import { ViewModelChangedEvent } from '@devexpress/analytics-core/serializer/native/viewModels/viewModelGenerator';
|
|
@@ -28,12 +33,12 @@ const AIPanel = ({ data }) => {
|
|
|
28
33
|
" ",
|
|
29
34
|
viewModel.targetContentText),
|
|
30
35
|
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" },
|
|
36
|
+
viewModel.languageSelectBoxOptions.visible && (React.createElement("div", { className: "dx-field dxrd-preview-ai-select-box" },
|
|
32
37
|
React.createElement("label", { className: "dxrd-preview-ai-form-label", htmlFor: "dxrv-ai-language-select" },
|
|
33
38
|
" ",
|
|
34
39
|
viewModel.targetLanguageText,
|
|
35
40
|
" "),
|
|
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 })),
|
|
41
|
+
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
42
|
viewModel.pageSelectBoxVisible && (React.createElement("div", { className: "dx-field dxrd-preview-ai-select-box" },
|
|
38
43
|
React.createElement("label", { className: "dxrd-preview-ai-form-label", htmlFor: "dxrv-ai-page-select" },
|
|
39
44
|
" ",
|
|
@@ -42,8 +47,8 @@ const AIPanel = ({ data }) => {
|
|
|
42
47
|
React.createElement("div", { className: "dx-field" },
|
|
43
48
|
React.createElement("div", { className: "dxrd-preview-ai-buttons-wrapper" },
|
|
44
49
|
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 })))),
|
|
50
|
+
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 }),
|
|
51
|
+
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
52
|
viewModel.resultVisible && (React.createElement("div", { className: "dxrd-right-panel-header dxd-text-primary dxd-border-primary dxrd-ai-result-text" },
|
|
48
53
|
React.createElement("span", { className: "dxrd-right-panel-result-text" },
|
|
49
54
|
" ",
|
|
@@ -13,6 +13,6 @@ const CharacterComb = ({ data }) => {
|
|
|
13
13
|
(!data.active || data.field.readOnly) &&
|
|
14
14
|
data.cells.map((cell, index) => (React.createElement("div", { key: index, className: "dxrp-editing-field-charactercomb-cell", style: processStyles(cell.style) }, cell.text))),
|
|
15
15
|
data.active && !data.field.readOnly &&
|
|
16
|
-
React.createElement("textarea", { className: "dxrp-editing-field-text dxrd-background-white", value: value, onChange: handleValueChanged, style: processStyles(data.textStyle), onBlur: () => data.hideEditor(true), onKeyUp: event => data.keypressAction(data, event.nativeEvent) })));
|
|
16
|
+
React.createElement("textarea", { className: "dxrp-editing-field-text dxrd-background-white", value: value, onChange: handleValueChanged, style: processStyles(data.textStyle), onBlur: () => data.hideEditor(true), onKeyUp: event => data.keypressAction(data, event.nativeEvent), onInput: event => data.onInput(data, event.nativeEvent) })));
|
|
17
17
|
};
|
|
18
18
|
export default CharacterComb;
|
|
@@ -14,7 +14,7 @@ const ExportTool = ({ data }) => {
|
|
|
14
14
|
}, [data]);
|
|
15
15
|
return (React.createElement("div", { ref: elementRef },
|
|
16
16
|
React.createElement("div", { className: "dxrd-visually-hidden" },
|
|
17
|
-
React.createElement("form", {
|
|
17
|
+
React.createElement("form", { method: "post" })),
|
|
18
18
|
React.createElement(Popup, { width: data.popupOptions.width, height: data.popupOptions.height, title: data.popupOptions.title, visible: data.popupOptions.visible, showCloseButton: true, onHidden: () => data.popupOptions.onHidden(), toolbarItems: data.popupOptions.toolbarItems, wrapperAttr: data.popupOptions.wrapperAttr, container: popupOptions?.container, position: popupOptions?.position },
|
|
19
19
|
React.createElement("div", { className: "dxrd-print-dialog-content" },
|
|
20
20
|
React.createElement("div", null, data.printingTexts.caption),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import Template from '../../../core/Template';
|
|
3
|
-
import Painter from '../../Widgets/
|
|
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();
|
|
@@ -5,6 +5,6 @@ const TextEditingField = ({ data }) => {
|
|
|
5
5
|
setValue(value);
|
|
6
6
|
data.value = value;
|
|
7
7
|
};
|
|
8
|
-
return (React.createElement("textarea", { className: "dxrp-editing-field-text", value: value, onChange: e => handleValueChanged(e.target.value), style: data.textStyle, onBlur: () => data.hideEditor(true), onKeyUp: event => data.keypressAction(data, event.nativeEvent) }));
|
|
8
|
+
return (React.createElement("textarea", { className: "dxrp-editing-field-text", value: value, onChange: e => handleValueChanged(e.target.value), style: data.textStyle, onBlur: () => data.hideEditor(true), onKeyUp: event => data.keypressAction(data, event.nativeEvent), onInput: event => data.onInput(data, event.nativeEvent) }));
|
|
9
9
|
};
|
|
10
10
|
export default TextEditingField;
|
package/dx-report-viewer/components/reporting/ParametersPanel/DateRange/DateRange/DateRange.js
CHANGED
|
@@ -32,6 +32,8 @@ const DateRange = ({ viewModel }) => {
|
|
|
32
32
|
buttonAction: processClickEvent,
|
|
33
33
|
value: viewModel.displayValue,
|
|
34
34
|
readOnly: true,
|
|
35
|
+
disabled: viewModel.disabled,
|
|
36
|
+
visible: viewModel.visible,
|
|
35
37
|
openOnFieldClick: true,
|
|
36
38
|
inputAttr: { 'aria-label': viewModel._displayName, id: viewModel._editorInputId }
|
|
37
39
|
});
|
|
@@ -23,6 +23,6 @@ const ParametersPanel = React.forwardRef(({ data }, ref) => {
|
|
|
23
23
|
React.createElement(Template, { template: "dx-propertieseditor", data: data.propertyGrid })),
|
|
24
24
|
React.createElement("div", { className: "dxrd-preview-parameter-actions-container", hidden: !data.model.showButtons },
|
|
25
25
|
React.createElement(LoadIndicator, { className: "dxrd-preview-parameter-action dxrd-preview-loading", visible: data.model.parametersLoading }),
|
|
26
|
-
data.model.buttons.map((button, index) => (React.createElement(Button, { key: index, className: "dxrd-preview-parameter-action
|
|
26
|
+
data.model.buttons.map((button, index) => (React.createElement(Button, { key: index, className: "dxrd-preview-parameter-action dx-accessibility-focus-border-accented", elementAttr: button.elementAttr, text: button.text, onClick: button.onClick }))))))));
|
|
27
27
|
});
|
|
28
28
|
export default ParametersPanel;
|
|
@@ -4,7 +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
|
|
7
|
+
import LoadPanel from 'devextreme-react/load-panel';
|
|
8
8
|
const EditingFieldsHolder = ({ editingFields, editingFieldsKeyboardHelper }) => {
|
|
9
9
|
const mutationObserverRef = React.useRef();
|
|
10
10
|
useDxMutationObserver(mutationObserverRef, editingFieldsKeyboardHelper);
|
|
@@ -43,7 +43,7 @@ const Page = ({ data }) => {
|
|
|
43
43
|
React.createElement("div", { className: "dxrd-report-preview-content-loading-panel-text" }, data.loadingText))),
|
|
44
44
|
React.createElement(Image, { data: data }),
|
|
45
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) }))),
|
|
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
47
|
data.aiServicesEnabled && data.aiCustomDocumentStorageId && (React.createElement("div", { className: "dxrd-report-preview-page-modified" },
|
|
48
48
|
React.createElement("span", { className: "dxrd-report-preview-page-modified-text" }, data.translatedPageBadgeText))))));
|
|
49
49
|
};
|
|
@@ -5,7 +5,9 @@ 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
|
|
8
|
+
import useDxTextCopier from '../../../../hooks/dxTextCopier';
|
|
9
|
+
import Button from 'devextreme-react/button';
|
|
10
|
+
import Popup from 'devextreme-react/popup';
|
|
9
11
|
import { Position } from 'devextreme-react/cjs/popup';
|
|
10
12
|
const MultiPageHolder = ({ lazyImagesOptions, pages }) => {
|
|
11
13
|
const lazyImagesRef = React.useRef();
|
|
@@ -25,10 +27,12 @@ const Surface = ({ data }) => {
|
|
|
25
27
|
const clipboardMessage = getLocalization('Clipboard', 'ASPxReportsStringId.WebDocumentViewer_AriaClipboard');
|
|
26
28
|
const autoFitRef = React.useRef();
|
|
27
29
|
useDxAutoFit(autoFitRef, data.currentPage?.autoFitOptions);
|
|
30
|
+
const textCopier = React.useRef();
|
|
31
|
+
useDxTextCopier(textCopier, { viewModel: data });
|
|
28
32
|
const dxMutationObserverRef = React.useRef();
|
|
29
33
|
useDxMutationObserver(dxMutationObserverRef, data.previewBrickKeyboardHelper);
|
|
30
34
|
return (React.createElement(React.Fragment, null,
|
|
31
|
-
React.createElement("div", { className: `dxrd-preview-wrapper ${data.rtlReport ? 'dx-rtl' : ''} ${data.editingFieldsHighlighted ? 'dxrp-editing-fields-hightlighted' : ''}`, "data-bind": "textCopier" },
|
|
35
|
+
React.createElement("div", { ref: textCopier, className: `dxrd-preview-wrapper ${data.rtlReport ? 'dx-rtl' : ''} ${data.editingFieldsHighlighted ? 'dxrp-editing-fields-hightlighted' : ''}`, "data-bind": "textCopier" },
|
|
32
36
|
React.createElement(Template, { template: "dxrd-preview-progress-bar", data: data.progressBar }),
|
|
33
37
|
React.createElement("div", { className: "dxrd-preview-surface", ref: dxMutationObserverRef },
|
|
34
38
|
!data.showMultipagePreview && (React.createElement("div", { className: "dxrd-report-preview-holder", role: "list" }, (!!data.currentPage && (data.currentPage.pageLoading || (!data.currentPage.pageLoading && data.currentPage.pageLoaded))) && (React.createElement("div", { role: "listitem", className: "dxrd-report-preview dx-accessibility-page-item dx-accessibility-border-accented", ref: autoFitRef, style: { width: data.currentPage.width + 'px', height: data.currentPage.height + 'px' } },
|
|
@@ -36,12 +40,12 @@ const Surface = ({ data }) => {
|
|
|
36
40
|
data.showMultipagePreview && !!data.currentPage && React.createElement(MultiPageHolder, { pages: data.pages, lazyImagesOptions: data.lazyImagesOptions }),
|
|
37
41
|
React.createElement("div", { className: `dxrd-report-preview-placeholder ${!!data.currentPage ? 'dxrd-visually-hidden' : ''}` },
|
|
38
42
|
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.
|
|
43
|
+
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
44
|
React.createElement(Position, { at: "top", my: "top", of: "#dxrd-preview-ai-panel-id", collision: "fit" }),
|
|
41
|
-
React.createElement("span", { "data-bind": "text:
|
|
45
|
+
React.createElement("span", { "data-bind": "text: _exportTranslatedDodumentWarningMsg", className: "dxrd-preview-export-warning-popup-text" }, data._exportTranslatedDodumentWarningMsg),
|
|
42
46
|
React.createElement("div", { className: "dxrd-preview-export-warning-popup-button-group" },
|
|
43
|
-
React.createElement(Button, { text: data.
|
|
44
|
-
React.createElement(Button, { text: data.
|
|
47
|
+
React.createElement(Button, { text: data._exportTranslatedDocumentButtonText, onClick: () => data._exportTranslatedHandler(), className: "dxrd-preview-export-warning-popup-button dx-button-default" }),
|
|
48
|
+
React.createElement(Button, { text: data._exportOriginalDocumentButtonText, onClick: () => data._exportTranslatedCancel(), className: "dxrd-preview-export-warning-popup-button" })))),
|
|
45
49
|
React.createElement("div", { id: "dxrd-preview-bricks-live-region", className: "dxrd-visually-hidden", "aria-live": "polite", "aria-atomic": "true" }),
|
|
46
50
|
React.createElement("div", { id: "clipboard-container", className: "dxrd-position-absolute dxrd-top--100px" },
|
|
47
51
|
React.createElement("textarea", { disabled: true, "aria-label": clipboardMessage, id: "clipboard" }))));
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import useDxAction from '../../../hooks/dxAction';
|
|
3
|
-
import
|
|
3
|
+
import TextBox from 'devextreme-react/text-box';
|
|
4
|
+
import Button from 'devextreme-react/button';
|
|
5
|
+
import CheckBox from 'devextreme-react/check-box';
|
|
6
|
+
import LoadIndicator from 'devextreme-react/load-indicator';
|
|
7
|
+
import List from 'devextreme-react/list';
|
|
4
8
|
import useDxMutationObserver from '../../../hooks/dxMutationObserver';
|
|
5
9
|
import { ViewModelChangedEvent } from '@devexpress/analytics-core/serializer/native/viewModels/viewModelGenerator';
|
|
6
10
|
const SearchResultItem = ({ item }) => {
|
package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/Painter → Painter}/Painter.js
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import dxZoom from '
|
|
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 '
|
|
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 '
|
|
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/
|
|
41
|
-
import PictureEditingBrushOptions from './Widgets/
|
|
42
|
-
import PictureEditingImagePicker from './Widgets/
|
|
43
|
-
import PictureEditingSizeOptions from './Widgets/
|
|
44
|
-
import PictureEditingImagePickerWithFilter from './Widgets/
|
|
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';
|
|
@@ -12,9 +12,7 @@ const useDxEllipsisEditor = (options) => {
|
|
|
12
12
|
};
|
|
13
13
|
}, []);
|
|
14
14
|
React.useEffect(() => {
|
|
15
|
-
|
|
16
|
-
editor.option('value', options.value);
|
|
17
|
-
}
|
|
15
|
+
editor?._updateOptions(options);
|
|
18
16
|
});
|
|
19
17
|
return ref;
|
|
20
18
|
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { initializeTextCopierBinding } from 'devexpress-reporting/viewer/internal/_bindings';
|
|
3
|
+
const useDxTextCopier = (ref, options) => {
|
|
4
|
+
React.useEffect(() => options && ref.current && initializeTextCopierBinding(ref.current, options), []);
|
|
5
|
+
};
|
|
6
|
+
export default useDxTextCopier;
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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,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": "25.1.
|
|
3
|
+
"version": "25.1.3",
|
|
4
4
|
"homepage": "https://www.devexpress.com/",
|
|
5
5
|
"bugs": "https://www.devexpress.com/support/",
|
|
6
6
|
"author": "Developer Express Inc.",
|
|
@@ -21,13 +21,13 @@
|
|
|
21
21
|
"@types/prop-types": "15.7.13",
|
|
22
22
|
"@types/react": "^18.0.28",
|
|
23
23
|
"@types/react-dom": "^18.0.28",
|
|
24
|
-
"devextreme-react": "25.1.
|
|
24
|
+
"devextreme-react": "25.1.3",
|
|
25
25
|
"react": "^18.0.0 || ^19.0.0",
|
|
26
26
|
"react-dom": "^18.0.0 || ^19.0.0",
|
|
27
|
-
"@devexpress/analytics-core": "25.1.
|
|
28
|
-
"devexpress-reporting": "25.1.
|
|
27
|
+
"@devexpress/analytics-core": "25.1.3",
|
|
28
|
+
"devexpress-reporting": "25.1.3"
|
|
29
29
|
},
|
|
30
|
-
"commitSHA": "
|
|
30
|
+
"commitSHA": "cd7edad9a4fdce2520bf01f522873ea949882b89",
|
|
31
31
|
"scripts": {
|
|
32
32
|
"build": "echo done"
|
|
33
33
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/Painter → Painter}/index.d.ts
RENAMED
|
File without changes
|
/package/dx-report-viewer/components/reporting/Widgets/{PictureEditor/Painter → Painter}/index.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|