devexpress-reporting-react 24.2.7 → 24.2.9
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/components/analytics/Properties/CollectionEditor/CollectionEditor.js +1 -1
- package/dx-report-viewer/components/analytics/Properties/Editors/EditorBase/EditorBase.js +1 -1
- package/dx-report-viewer/components/reporting/AIPanel/AIPanel.js +6 -1
- 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/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/Editor/Editor/Editor.js +1 -0
- package/dx-report-viewer/components/reporting/ReportPreview/Surface/Surface.js +4 -1
- package/dx-report-viewer/components/reporting/Search/Search.js +5 -1
- 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/package.json +5 -5
package/dx-report-viewer/components/analytics/Properties/CollectionEditor/CollectionEditor.js
CHANGED
|
@@ -53,7 +53,7 @@ const CollectionEditor = ({ viewModel, contentTemplate }) => {
|
|
|
53
53
|
React.createElement("div", { ref: ref },
|
|
54
54
|
React.createElement("div", { className: "dx-collectioneditor-header dx-accordion-header" },
|
|
55
55
|
React.createElement("div", { className: "dx-editor-header" },
|
|
56
|
-
React.createElement("div", { role: "treeitem", className: "dx-field dx-accessibility-focus-border-accented dxrd-accessibility-accordion-trigger", "aria-expanded": viewModel.alwaysShow || !viewModel.collapsed ? 'true' : 'false', "aria-owns": viewModel.contentId, id: viewModel.headerId },
|
|
56
|
+
React.createElement("div", { role: "treeitem", className: "dx-field dxrd-complex-editor dx-accessibility-focus-border-accented dxrd-accessibility-accordion-trigger", "aria-expanded": viewModel.alwaysShow || !viewModel.collapsed ? 'true' : 'false', "aria-owns": viewModel.contentId, id: viewModel.headerId },
|
|
57
57
|
React.createElement(CollectionEditorActions, { data: viewModel }),
|
|
58
58
|
!!viewModel.displayName && React.createElement("div", { className: "dx-collectioneditor-header-text dxd-text-primary", style: { paddingLeft: viewModel.padding + 'px' } },
|
|
59
59
|
React.createElement(Template, { className: `dx-collapsing-image dxrd-display-inline-block ${!viewModel.collapsed ? 'dx-image-expanded' : ''}`, template: "dxrd-svg-collapsed" }),
|
|
@@ -22,7 +22,7 @@ const EditorBase = ({ data }) => {
|
|
|
22
22
|
return (React.createElement("div", { className: "dx-editor", hidden: !data.visible },
|
|
23
23
|
React.createElement("div", { className: "dx-group", ref: accordionRef },
|
|
24
24
|
React.createElement("div", { className: "dx-editor-header" },
|
|
25
|
-
React.createElement("div", { className: `dx-field ${data.isComplexEditor ? 'dxrd-accessibility-accordion-trigger dx-accessibility-focus-border-accented' : ''}`, role: "treeitem", id: data.isComplexEditor ? data.headerId : undefined, "aria-owns": data.isComplexEditor ? data.contentId : undefined, "aria-expanded": data.isComplexEditor ? (data.alwaysShow || !data.collapsed ? 'true' : 'false') : undefined },
|
|
25
|
+
React.createElement("div", { className: `dx-field ${data.isComplexEditor ? 'dxrd-complex-editor dxrd-accessibility-accordion-trigger dx-accessibility-focus-border-accented' : ''}`, role: "treeitem", id: data.isComplexEditor ? data.headerId : undefined, "aria-owns": data.isComplexEditor ? data.contentId : undefined, "aria-expanded": data.isComplexEditor ? (data.alwaysShow || !data.collapsed ? 'true' : 'false') : undefined },
|
|
26
26
|
React.createElement("div", { className: `dx-field-label dx-accordion-header dxd-text-primary ${data.templateName === 'dx-emptyHeader' ? 'dx-accordion-empty' : ''}`, style: { paddingLeft: data.padding['padding-left'] + 'px' } }, data.isComplexEditor ? React.createElement(GroupHeader, { data: data }) : React.createElement(EditorLabel, { data: data })),
|
|
27
27
|
React.createElement("div", { className: `dx-field-value ${data.isPropertyHighlighted ? 'dxd-border-accented' : ''}` }, data.templateName !== 'dx-emptyHeader' && React.createElement(LazyTemplate, { isResolved: isResolved, template: data.templateName, data: data })))),
|
|
28
28
|
data.isComplexEditor && (React.createElement("div", { className: "dx-editor-content dx-accordion-content", role: "group", "aria-labelledby": data.headerId, id: data.contentId, "aria-hidden": !data.alwaysShow && data.collapsed ? 'true' : 'false' }, data.editorCreated && React.createElement(Template, { template: data.contentTemplateName, data: data }))))));
|
|
@@ -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';
|
|
@@ -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),
|
|
@@ -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
|
});
|
|
@@ -21,6 +21,7 @@ const PropertyEditor = ({ data }) => {
|
|
|
21
21
|
const treeItemCssClasses = ['dx-field'];
|
|
22
22
|
data.isComplexEditor && treeItemCssClasses.push('dxrd-accessibility-accordion-trigger');
|
|
23
23
|
data.isComplexEditor && treeItemCssClasses.push('dx-accessibility-focus-border-accented');
|
|
24
|
+
data.isComplexEditor && treeItemCssClasses.push('dxrd-complex-editor');
|
|
24
25
|
data.editorOptions?.hasVerticalLabel && treeItemCssClasses.push('dxrd-vertical-label');
|
|
25
26
|
const isResolved = (newVal) => data.setIsRendered(newVal);
|
|
26
27
|
return (React.createElement("div", { className: "dx-editor", hidden: !data.visible },
|
|
@@ -5,6 +5,7 @@ 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 useDxTextCopier from '../../../../hooks/dxTextCopier';
|
|
8
9
|
const MultiPageHolder = ({ lazyImagesOptions, pages }) => {
|
|
9
10
|
const lazyImagesRef = React.useRef();
|
|
10
11
|
useDxLazyImages(lazyImagesRef, lazyImagesOptions);
|
|
@@ -23,10 +24,12 @@ const Surface = ({ data }) => {
|
|
|
23
24
|
const clipboardMessage = getLocalization('Clipboard', 'ASPxReportsStringId.WebDocumentViewer_AriaClipboard');
|
|
24
25
|
const autoFitRef = React.useRef();
|
|
25
26
|
useDxAutoFit(autoFitRef, data.currentPage?.autoFitOptions);
|
|
27
|
+
const textCopier = React.useRef();
|
|
28
|
+
useDxTextCopier(textCopier, { viewModel: data });
|
|
26
29
|
const dxMutationObserverRef = React.useRef();
|
|
27
30
|
useDxMutationObserver(dxMutationObserverRef, data.previewBrickKeyboardHelper);
|
|
28
31
|
return (React.createElement(React.Fragment, null,
|
|
29
|
-
React.createElement("div", { className: `dxrd-preview-wrapper ${data.rtlReport ? 'dx-rtl' : ''} ${data.editingFieldsHighlighted ? 'dxrp-editing-fields-hightlighted' : ''}`, "data-bind": "textCopier" },
|
|
32
|
+
React.createElement("div", { ref: textCopier, className: `dxrd-preview-wrapper ${data.rtlReport ? 'dx-rtl' : ''} ${data.editingFieldsHighlighted ? 'dxrp-editing-fields-hightlighted' : ''}`, "data-bind": "textCopier" },
|
|
30
33
|
React.createElement(Template, { template: "dxrd-preview-progress-bar", data: data.progressBar }),
|
|
31
34
|
React.createElement("div", { className: "dxrd-preview-surface", ref: dxMutationObserverRef },
|
|
32
35
|
!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' } },
|
|
@@ -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 }) => {
|
|
@@ -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;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devexpress-reporting-react",
|
|
3
|
-
"version": "24.2.
|
|
3
|
+
"version": "24.2.9",
|
|
4
4
|
"homepage": "https://www.devexpress.com/",
|
|
5
5
|
"bugs": "https://www.devexpress.com/support/",
|
|
6
6
|
"author": "Developer Express Inc.",
|
|
@@ -15,16 +15,16 @@
|
|
|
15
15
|
"license": "SEE LICENSE IN README.md",
|
|
16
16
|
"main": "./index.js",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"devexpress-reporting": "24.2.
|
|
18
|
+
"devexpress-reporting": "24.2.9",
|
|
19
19
|
"prop-types": "^15.8.1"
|
|
20
20
|
},
|
|
21
21
|
"peerDependencies": {
|
|
22
|
-
"devextreme-react": "24.2.
|
|
22
|
+
"devextreme-react": "24.2.9",
|
|
23
23
|
"react": "^18.0.0 || ^19.0.0",
|
|
24
24
|
"react-dom": "^18.0.0 || ^19.0.0"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@devexpress/analytics-core": "24.2.
|
|
27
|
+
"@devexpress/analytics-core": "24.2.9",
|
|
28
28
|
"@types/prop-types": "15.7.13",
|
|
29
29
|
"@types/react": "^18.0.28",
|
|
30
30
|
"@types/react-dom": "^18.0.28",
|
|
@@ -35,5 +35,5 @@
|
|
|
35
35
|
"prebuild": "npx shx rm -rf dist && npx shx mkdir dist && npx shx cp README.md dist/ && npx shx cp package.json dist/",
|
|
36
36
|
"build": "npx tsc --project tsconfig.lib.json"
|
|
37
37
|
},
|
|
38
|
-
"commitSHA": "
|
|
38
|
+
"commitSHA": "bd83b4568ea0fa4733768902415e873d18e708af"
|
|
39
39
|
}
|