@gravity-ui/dashkit 8.0.2-beta.2 → 8.0.2-beta.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/README.md +1 -0
- package/build/cjs/components/DashKit/DashKit.d.ts +1 -0
- package/build/cjs/components/DashKit/DashKit.js +1 -0
- package/build/cjs/components/GridItem/GridItem.js +9 -2
- package/build/cjs/components/GridLayout/GridLayout.js +2 -2
- package/build/cjs/hocs/withContext.js +2 -0
- package/build/esm/components/DashKit/DashKit.d.ts +1 -0
- package/build/esm/components/DashKit/DashKit.js +1 -0
- package/build/esm/components/GridItem/GridItem.js +9 -2
- package/build/esm/components/GridLayout/GridLayout.js +2 -2
- package/build/esm/hocs/withContext.js +2 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -49,6 +49,7 @@ interface DashKitProps {
|
|
|
49
49
|
- **context**: Object that will be propped up on all widgets.
|
|
50
50
|
- **overlayControls**: Object that overrides widget controls at the time of editing. If not transmitted, basic controls will be displayed.
|
|
51
51
|
- **noOverlay**: If `true`, overlay and controls are not displayed while editing.
|
|
52
|
+
- **focusable**: If `true`, grid items will be focusable.
|
|
52
53
|
- **draggableHandleClassName** : СSS class name of the element that makes the widget draggable.
|
|
53
54
|
|
|
54
55
|
## Usage
|
|
@@ -72,7 +72,7 @@ class GridItem extends react_1.default.PureComponent {
|
|
|
72
72
|
render() {
|
|
73
73
|
// из-за бага, что Grid Items unmounts при изменении static, isDraggable, isResaizable
|
|
74
74
|
// https://github.com/STRML/react-grid-layout/issues/721
|
|
75
|
-
const { style, onMouseDown, onMouseUp, onTouchEnd, onTouchStart, children, className, isDragging, noOverlay, withCustomHandle, } = this.props;
|
|
75
|
+
const { style, onMouseDown, onMouseUp, onTouchEnd, onTouchStart, children, className, isDragging, noOverlay, focusable, withCustomHandle, } = this.props;
|
|
76
76
|
const { editMode } = this.context;
|
|
77
77
|
const width = Number.parseInt(style.width, 10);
|
|
78
78
|
const height = Number.parseInt(style.height, 10);
|
|
@@ -89,7 +89,13 @@ class GridItem extends react_1.default.PureComponent {
|
|
|
89
89
|
'is-dragging': isDragging,
|
|
90
90
|
'is-focused': this.state.isFocused,
|
|
91
91
|
'with-custom-handle': withCustomHandle,
|
|
92
|
-
}, preparedClassName), "data-qa": "dashkit-grid-item", style: style, ref: this.props.forwardedRef }, reactGridLayoutProps,
|
|
92
|
+
}, preparedClassName), "data-qa": "dashkit-grid-item", style: style, ref: this.props.forwardedRef }, reactGridLayoutProps, (focusable
|
|
93
|
+
? {
|
|
94
|
+
onFocus: this.onFocusHandler,
|
|
95
|
+
onBlur: this.onBlurHandler,
|
|
96
|
+
tabIndex: -1,
|
|
97
|
+
}
|
|
98
|
+
: {})),
|
|
93
99
|
react_1.default.createElement("div", { className: b('item', { editMode: editMode && !_editActive && !noOverlay }) },
|
|
94
100
|
react_1.default.createElement(Item_1.default, { id: this.props.id, item: this.props.item, shouldItemUpdate: !isDragging, width: width, height: height, transform: transform, adjustWidgetLayout: this.props.adjustWidgetLayout, layout: this.props.layout, forwardedPluginRef: this.props.forwardedPluginRef })),
|
|
95
101
|
!noOverlay && this.renderOverlay(),
|
|
@@ -110,6 +116,7 @@ GridItem.propTypes = {
|
|
|
110
116
|
className: prop_types_1.default.string,
|
|
111
117
|
style: prop_types_1.default.object,
|
|
112
118
|
noOverlay: prop_types_1.default.bool,
|
|
119
|
+
focusable: prop_types_1.default.bool,
|
|
113
120
|
withCustomHandle: prop_types_1.default.bool,
|
|
114
121
|
onMouseDown: prop_types_1.default.func,
|
|
115
122
|
onMouseUp: prop_types_1.default.func,
|
|
@@ -72,14 +72,14 @@ class GridLayout extends react_1.default.PureComponent {
|
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
render() {
|
|
75
|
-
const { layout, config, registerManager, editMode, noOverlay, draggableHandleClassName } = this.context;
|
|
75
|
+
const { layout, config, registerManager, editMode, noOverlay, focusable, draggableHandleClassName, } = this.context;
|
|
76
76
|
this.pluginsRefs.length = config.items.length;
|
|
77
77
|
return (react_1.default.createElement(Layout, Object.assign({}, registerManager.gridLayout, { layout: layout, isDraggable: editMode, isResizable: editMode, onDragStart: this._onStart, onDragStop: this._onStop, onResizeStart: this._onStart, onResizeStop: this._onStop }, (draggableHandleClassName
|
|
78
78
|
? { draggableHandle: `.${draggableHandleClassName}` }
|
|
79
79
|
: null), { draggableCancel: `.${constants_1.OVERLAY_CONTROLS_CLASS_NAME}` }), config.items.map((item, i) => {
|
|
80
80
|
return (react_1.default.createElement(GridItem_1.default, { forwardedPluginRef: (pluginRef) => {
|
|
81
81
|
this.pluginsRefs[i] = pluginRef;
|
|
82
|
-
}, key: item.id, id: item.id, item: item, layout: layout, adjustWidgetLayout: this.adjustWidgetLayout, isDragging: this.state.isDragging, noOverlay: noOverlay, withCustomHandle: Boolean(draggableHandleClassName), overlayControls: this.props.overlayControls }));
|
|
82
|
+
}, key: item.id, id: item.id, item: item, layout: layout, adjustWidgetLayout: this.adjustWidgetLayout, isDragging: this.state.isDragging, noOverlay: noOverlay, focusable: focusable, withCustomHandle: Boolean(draggableHandleClassName), overlayControls: this.props.overlayControls }));
|
|
83
83
|
})));
|
|
84
84
|
}
|
|
85
85
|
}
|
|
@@ -129,6 +129,7 @@ function useMemoStateContext(props) {
|
|
|
129
129
|
config: props.config,
|
|
130
130
|
context: props.context,
|
|
131
131
|
noOverlay: props.noOverlay,
|
|
132
|
+
focusable: props.focusable,
|
|
132
133
|
defaultGlobalParams: props.globalParams,
|
|
133
134
|
globalParams: props.globalParams,
|
|
134
135
|
editMode: props.editMode,
|
|
@@ -151,6 +152,7 @@ function useMemoStateContext(props) {
|
|
|
151
152
|
props.config,
|
|
152
153
|
props.context,
|
|
153
154
|
props.noOverlay,
|
|
155
|
+
props.focusable,
|
|
154
156
|
props.globalParams,
|
|
155
157
|
props.editMode,
|
|
156
158
|
props.settings,
|
|
@@ -70,7 +70,7 @@ class GridItem extends React.PureComponent {
|
|
|
70
70
|
render() {
|
|
71
71
|
// из-за бага, что Grid Items unmounts при изменении static, isDraggable, isResaizable
|
|
72
72
|
// https://github.com/STRML/react-grid-layout/issues/721
|
|
73
|
-
const { style, onMouseDown, onMouseUp, onTouchEnd, onTouchStart, children, className, isDragging, noOverlay, withCustomHandle, } = this.props;
|
|
73
|
+
const { style, onMouseDown, onMouseUp, onTouchEnd, onTouchStart, children, className, isDragging, noOverlay, focusable, withCustomHandle, } = this.props;
|
|
74
74
|
const { editMode } = this.context;
|
|
75
75
|
const width = Number.parseInt(style.width, 10);
|
|
76
76
|
const height = Number.parseInt(style.height, 10);
|
|
@@ -87,7 +87,13 @@ class GridItem extends React.PureComponent {
|
|
|
87
87
|
'is-dragging': isDragging,
|
|
88
88
|
'is-focused': this.state.isFocused,
|
|
89
89
|
'with-custom-handle': withCustomHandle,
|
|
90
|
-
}, preparedClassName), "data-qa": "dashkit-grid-item", style: style, ref: this.props.forwardedRef }, reactGridLayoutProps,
|
|
90
|
+
}, preparedClassName), "data-qa": "dashkit-grid-item", style: style, ref: this.props.forwardedRef }, reactGridLayoutProps, (focusable
|
|
91
|
+
? {
|
|
92
|
+
onFocus: this.onFocusHandler,
|
|
93
|
+
onBlur: this.onBlurHandler,
|
|
94
|
+
tabIndex: -1,
|
|
95
|
+
}
|
|
96
|
+
: {})),
|
|
91
97
|
React.createElement("div", { className: b('item', { editMode: editMode && !_editActive && !noOverlay }) },
|
|
92
98
|
React.createElement(Item, { id: this.props.id, item: this.props.item, shouldItemUpdate: !isDragging, width: width, height: height, transform: transform, adjustWidgetLayout: this.props.adjustWidgetLayout, layout: this.props.layout, forwardedPluginRef: this.props.forwardedPluginRef })),
|
|
93
99
|
!noOverlay && this.renderOverlay(),
|
|
@@ -108,6 +114,7 @@ GridItem.propTypes = {
|
|
|
108
114
|
className: PropTypes.string,
|
|
109
115
|
style: PropTypes.object,
|
|
110
116
|
noOverlay: PropTypes.bool,
|
|
117
|
+
focusable: PropTypes.bool,
|
|
111
118
|
withCustomHandle: PropTypes.bool,
|
|
112
119
|
onMouseDown: PropTypes.func,
|
|
113
120
|
onMouseUp: PropTypes.func,
|
|
@@ -69,14 +69,14 @@ class GridLayout extends React.PureComponent {
|
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
render() {
|
|
72
|
-
const { layout, config, registerManager, editMode, noOverlay, draggableHandleClassName } = this.context;
|
|
72
|
+
const { layout, config, registerManager, editMode, noOverlay, focusable, draggableHandleClassName, } = this.context;
|
|
73
73
|
this.pluginsRefs.length = config.items.length;
|
|
74
74
|
return (React.createElement(Layout, Object.assign({}, registerManager.gridLayout, { layout: layout, isDraggable: editMode, isResizable: editMode, onDragStart: this._onStart, onDragStop: this._onStop, onResizeStart: this._onStart, onResizeStop: this._onStop }, (draggableHandleClassName
|
|
75
75
|
? { draggableHandle: `.${draggableHandleClassName}` }
|
|
76
76
|
: null), { draggableCancel: `.${OVERLAY_CONTROLS_CLASS_NAME}` }), config.items.map((item, i) => {
|
|
77
77
|
return (React.createElement(GridItem, { forwardedPluginRef: (pluginRef) => {
|
|
78
78
|
this.pluginsRefs[i] = pluginRef;
|
|
79
|
-
}, key: item.id, id: item.id, item: item, layout: layout, adjustWidgetLayout: this.adjustWidgetLayout, isDragging: this.state.isDragging, noOverlay: noOverlay, withCustomHandle: Boolean(draggableHandleClassName), overlayControls: this.props.overlayControls }));
|
|
79
|
+
}, key: item.id, id: item.id, item: item, layout: layout, adjustWidgetLayout: this.adjustWidgetLayout, isDragging: this.state.isDragging, noOverlay: noOverlay, focusable: focusable, withCustomHandle: Boolean(draggableHandleClassName), overlayControls: this.props.overlayControls }));
|
|
80
80
|
})));
|
|
81
81
|
}
|
|
82
82
|
}
|
|
@@ -125,6 +125,7 @@ function useMemoStateContext(props) {
|
|
|
125
125
|
config: props.config,
|
|
126
126
|
context: props.context,
|
|
127
127
|
noOverlay: props.noOverlay,
|
|
128
|
+
focusable: props.focusable,
|
|
128
129
|
defaultGlobalParams: props.globalParams,
|
|
129
130
|
globalParams: props.globalParams,
|
|
130
131
|
editMode: props.editMode,
|
|
@@ -147,6 +148,7 @@ function useMemoStateContext(props) {
|
|
|
147
148
|
props.config,
|
|
148
149
|
props.context,
|
|
149
150
|
props.noOverlay,
|
|
151
|
+
props.focusable,
|
|
150
152
|
props.globalParams,
|
|
151
153
|
props.editMode,
|
|
152
154
|
props.settings,
|