@gravity-ui/dashkit 8.4.0 → 8.5.0

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.
@@ -26,7 +26,7 @@ export default class GridLayout extends React.PureComponent<any, any, any> {
26
26
  _onDropDragOver: (e: any) => any;
27
27
  _onDrop: (group: any, newLayout: any, item: any, e: any) => false | undefined;
28
28
  renderTemporaryPlaceholder(): JSX.Element | null;
29
- renderGroup(group: any, renderLayout: any, renderItems: any, offset?: number): JSX.Element;
29
+ renderGroup(group: any, renderLayout: any, renderItems: any, offset: number | undefined, groupGridProperties: any): JSX.Element;
30
30
  render(): any;
31
31
  }
32
32
  import React from 'react';
@@ -131,9 +131,12 @@ class GridLayout extends react_1.default.PureComponent {
131
131
  const { type } = temporaryLayout.dragProps;
132
132
  return (react_1.default.createElement(GridItem_1.default, { key: id, id: id, item: { id, type, data: {} }, layout: temporaryLayout.data, adjustWidgetLayout: this.adjustWidgetLayout, isDragging: this.state.isDragging, isPlaceholder: true, noOverlay: noOverlay, withCustomHandle: Boolean(draggableHandleClassName), overlayControls: this.props.overlayControls }));
133
133
  }
134
- renderGroup(group, renderLayout, renderItems, offset = 0) {
134
+ renderGroup(group, renderLayout, renderItems, offset = 0, groupGridProperties) {
135
135
  const { registerManager, editMode, noOverlay, focusable, draggableHandleClassName, outerDnDEnable, } = this.context;
136
- return (react_1.default.createElement(ReactGridLayout_1.Layout, Object.assign({}, registerManager.gridLayout, { key: `group_${group}`, layout: renderLayout, isDraggable: editMode, isResizable: editMode, onDragStart: this._onStart, onDragStop: (...args) => this._onStop(group, ...args), onResizeStart: this._onStart, onResizeStop: (...args) => this._onStop(group, ...args) }, (draggableHandleClassName
136
+ const properties = groupGridProperties
137
+ ? groupGridProperties(Object.assign({}, registerManager.gridLayout))
138
+ : registerManager.gridLayout;
139
+ return (react_1.default.createElement(ReactGridLayout_1.Layout, Object.assign({}, properties, { layout: renderLayout, key: `group_${group}`, isDraggable: editMode, isResizable: editMode, onDragStart: this._onStart, onDragStop: (...args) => this._onStop(group, ...args), onResizeStart: this._onStart, onResizeStop: (...args) => this._onStop(group, ...args) }, (draggableHandleClassName
137
140
  ? { draggableHandle: `.${draggableHandleClassName}` }
138
141
  : null), (outerDnDEnable
139
142
  ? {
@@ -194,7 +197,7 @@ class GridLayout extends react_1.default.PureComponent {
194
197
  layout = groupedLayout[id] || [];
195
198
  items = itemsByGroup[id] || [];
196
199
  }
197
- const element = this.renderGroup(id, layout, items, offset);
200
+ const element = this.renderGroup(id, layout, items, offset, group.gridProperties);
198
201
  offset += items.length;
199
202
  if (group.render) {
200
203
  return group.render(id, element, {
@@ -1,3 +1,4 @@
1
+ /// <reference types="react-grid-layout" />
1
2
  /// <reference types="react" />
2
3
  import type { Config, ConfigItem, ConfigLayout } from '../shared';
3
4
  export interface AddConfigItem extends Omit<ConfigItem, 'id' | 'namespace'> {
@@ -18,7 +19,9 @@ export interface DashkitGroupRenderProps {
18
19
  items: ConfigItem[];
19
20
  layout: ConfigLayout[];
20
21
  }
22
+ export type ReactGridLayoutProps = Omit<ReactGridLayout.ReactGridLayoutProps, 'children' | 'innerRef' | 'key' | 'layout' | 'isDraggable' | 'isResizable' | 'onDragStart' | 'onDragStop' | 'onResizeStart' | 'onResizeStop' | 'draggableHandle' | 'isDroppable' | 'onDropDragOver' | 'onDrop' | 'draggableCancel'>;
21
23
  export interface DashKitGroup {
22
24
  id?: string;
23
25
  render?: (id: string, children: React.ReactNode, props: DashkitGroupRenderProps) => React.ReactNode;
26
+ gridProperties?: (props: ReactGridLayoutProps) => ReactGridLayoutProps;
24
27
  }
@@ -26,7 +26,7 @@ export default class GridLayout extends React.PureComponent<any, any, any> {
26
26
  _onDropDragOver: (e: any) => any;
27
27
  _onDrop: (group: any, newLayout: any, item: any, e: any) => false | undefined;
28
28
  renderTemporaryPlaceholder(): JSX.Element | null;
29
- renderGroup(group: any, renderLayout: any, renderItems: any, offset?: number): JSX.Element;
29
+ renderGroup(group: any, renderLayout: any, renderItems: any, offset: number | undefined, groupGridProperties: any): JSX.Element;
30
30
  render(): any;
31
31
  }
32
32
  import React from 'react';
@@ -128,9 +128,12 @@ class GridLayout extends React.PureComponent {
128
128
  const { type } = temporaryLayout.dragProps;
129
129
  return (React.createElement(GridItem, { key: id, id: id, item: { id, type, data: {} }, layout: temporaryLayout.data, adjustWidgetLayout: this.adjustWidgetLayout, isDragging: this.state.isDragging, isPlaceholder: true, noOverlay: noOverlay, withCustomHandle: Boolean(draggableHandleClassName), overlayControls: this.props.overlayControls }));
130
130
  }
131
- renderGroup(group, renderLayout, renderItems, offset = 0) {
131
+ renderGroup(group, renderLayout, renderItems, offset = 0, groupGridProperties) {
132
132
  const { registerManager, editMode, noOverlay, focusable, draggableHandleClassName, outerDnDEnable, } = this.context;
133
- return (React.createElement(Layout, Object.assign({}, registerManager.gridLayout, { key: `group_${group}`, layout: renderLayout, isDraggable: editMode, isResizable: editMode, onDragStart: this._onStart, onDragStop: (...args) => this._onStop(group, ...args), onResizeStart: this._onStart, onResizeStop: (...args) => this._onStop(group, ...args) }, (draggableHandleClassName
133
+ const properties = groupGridProperties
134
+ ? groupGridProperties(Object.assign({}, registerManager.gridLayout))
135
+ : registerManager.gridLayout;
136
+ return (React.createElement(Layout, Object.assign({}, properties, { layout: renderLayout, key: `group_${group}`, isDraggable: editMode, isResizable: editMode, onDragStart: this._onStart, onDragStop: (...args) => this._onStop(group, ...args), onResizeStart: this._onStart, onResizeStop: (...args) => this._onStop(group, ...args) }, (draggableHandleClassName
134
137
  ? { draggableHandle: `.${draggableHandleClassName}` }
135
138
  : null), (outerDnDEnable
136
139
  ? {
@@ -191,7 +194,7 @@ class GridLayout extends React.PureComponent {
191
194
  layout = groupedLayout[id] || [];
192
195
  items = itemsByGroup[id] || [];
193
196
  }
194
- const element = this.renderGroup(id, layout, items, offset);
197
+ const element = this.renderGroup(id, layout, items, offset, group.gridProperties);
195
198
  offset += items.length;
196
199
  if (group.render) {
197
200
  return group.render(id, element, {
@@ -1,3 +1,4 @@
1
+ /// <reference types="react-grid-layout" />
1
2
  /// <reference types="react" />
2
3
  import type { Config, ConfigItem, ConfigLayout } from '../shared';
3
4
  export interface AddConfigItem extends Omit<ConfigItem, 'id' | 'namespace'> {
@@ -18,7 +19,9 @@ export interface DashkitGroupRenderProps {
18
19
  items: ConfigItem[];
19
20
  layout: ConfigLayout[];
20
21
  }
22
+ export type ReactGridLayoutProps = Omit<ReactGridLayout.ReactGridLayoutProps, 'children' | 'innerRef' | 'key' | 'layout' | 'isDraggable' | 'isResizable' | 'onDragStart' | 'onDragStop' | 'onResizeStart' | 'onResizeStop' | 'draggableHandle' | 'isDroppable' | 'onDropDragOver' | 'onDrop' | 'draggableCancel'>;
21
23
  export interface DashKitGroup {
22
24
  id?: string;
23
25
  render?: (id: string, children: React.ReactNode, props: DashkitGroupRenderProps) => React.ReactNode;
26
+ gridProperties?: (props: ReactGridLayoutProps) => ReactGridLayoutProps;
24
27
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravity-ui/dashkit",
3
- "version": "8.4.0",
3
+ "version": "8.5.0",
4
4
  "description": "Library for rendering dashboard grid layout",
5
5
  "license": "MIT",
6
6
  "repository": {