@gravity-ui/dashkit 9.3.1 → 10.0.0-beta.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.
- package/README.md +1 -1
- package/build/cjs/components/DashKit/DashKit.d.ts +2 -2
- package/build/cjs/components/DashKit/DashKit.js +2 -2
- package/build/cjs/components/DashKit/DashKit.js.map +1 -1
- package/build/cjs/components/DashKitView/DashKitView.d.ts +3 -5
- package/build/cjs/components/DashKitView/DashKitView.js.map +1 -1
- package/build/cjs/components/GridItem/GridItem.d.ts +32 -2
- package/build/cjs/components/GridItem/GridItem.js +9 -42
- package/build/cjs/components/GridItem/GridItem.js.map +1 -1
- package/build/cjs/components/GridLayout/GridLayout.d.ts +55 -65
- package/build/cjs/components/GridLayout/GridLayout.js +39 -17
- package/build/cjs/components/GridLayout/GridLayout.js.map +1 -1
- package/build/cjs/components/GridLayout/ReactGridLayout.d.ts +13 -2
- package/build/cjs/components/GridLayout/ReactGridLayout.js +27 -6
- package/build/cjs/components/GridLayout/ReactGridLayout.js.map +1 -1
- package/build/cjs/components/GridLayout/types.d.ts +59 -0
- package/build/cjs/components/GridLayout/types.js +3 -0
- package/build/cjs/components/GridLayout/types.js.map +1 -0
- package/build/cjs/components/Item/Item.d.ts +17 -72
- package/build/cjs/components/Item/Item.js +3 -12
- package/build/cjs/components/Item/Item.js.map +1 -1
- package/build/cjs/components/Item/types.d.ts +14 -0
- package/build/cjs/components/Item/types.js +3 -0
- package/build/cjs/components/Item/types.js.map +1 -0
- package/build/cjs/components/MobileLayout/MobileLayout.d.ts +7 -7
- package/build/cjs/components/MobileLayout/MobileLayout.js.map +1 -1
- package/build/cjs/components/OverlayControls/OverlayControls.d.ts +1 -1
- package/build/cjs/components/OverlayControls/OverlayControls.js.map +1 -1
- package/build/cjs/context/DashKitContext.d.ts +24 -14
- package/build/cjs/context/DashKitContext.js.map +1 -1
- package/build/cjs/hocs/prepareItem.d.ts +21 -71
- package/build/cjs/hocs/prepareItem.js +8 -29
- package/build/cjs/hocs/prepareItem.js.map +1 -1
- package/build/cjs/hocs/withContext.d.ts +12 -2
- package/build/cjs/hocs/withContext.js +35 -14
- package/build/cjs/hocs/withContext.js.map +1 -1
- package/build/cjs/package.json +1 -1
- package/build/cjs/typings/common.d.ts +6 -4
- package/build/cjs/typings/common.js.map +1 -1
- package/build/cjs/typings/config.d.ts +3 -7
- package/build/cjs/typings/config.js.map +1 -1
- package/build/cjs/typings/plugin.d.ts +7 -7
- package/build/cjs/typings/plugin.js.map +1 -1
- package/build/cjs/utils/register-manager.d.ts +2 -3
- package/build/cjs/utils/register-manager.js.map +1 -1
- package/build/cjs/utils/update-manager.d.ts +2 -2
- package/build/cjs/utils/update-manager.js.map +1 -1
- package/build/esm/components/DashKit/DashKit.d.ts +2 -2
- package/build/esm/components/DashKit/DashKit.js +2 -2
- package/build/esm/components/DashKit/DashKit.js.map +1 -1
- package/build/esm/components/DashKitView/DashKitView.d.ts +3 -5
- package/build/esm/components/DashKitView/DashKitView.js.map +1 -1
- package/build/esm/components/GridItem/GridItem.d.ts +32 -2
- package/build/esm/components/GridItem/GridItem.js +9 -42
- package/build/esm/components/GridItem/GridItem.js.map +1 -1
- package/build/esm/components/GridLayout/GridLayout.d.ts +55 -65
- package/build/esm/components/GridLayout/GridLayout.js +39 -17
- package/build/esm/components/GridLayout/GridLayout.js.map +1 -1
- package/build/esm/components/GridLayout/ReactGridLayout.d.ts +13 -2
- package/build/esm/components/GridLayout/ReactGridLayout.js +27 -6
- package/build/esm/components/GridLayout/ReactGridLayout.js.map +1 -1
- package/build/esm/components/GridLayout/types.d.ts +59 -0
- package/build/esm/components/GridLayout/types.js +2 -0
- package/build/esm/components/GridLayout/types.js.map +1 -0
- package/build/esm/components/Item/Item.d.ts +17 -72
- package/build/esm/components/Item/Item.js +3 -12
- package/build/esm/components/Item/Item.js.map +1 -1
- package/build/esm/components/Item/types.d.ts +14 -0
- package/build/esm/components/Item/types.js +2 -0
- package/build/esm/components/Item/types.js.map +1 -0
- package/build/esm/components/MobileLayout/MobileLayout.d.ts +7 -7
- package/build/esm/components/MobileLayout/MobileLayout.js.map +1 -1
- package/build/esm/components/OverlayControls/OverlayControls.d.ts +1 -1
- package/build/esm/components/OverlayControls/OverlayControls.js.map +1 -1
- package/build/esm/context/DashKitContext.d.ts +24 -14
- package/build/esm/context/DashKitContext.js.map +1 -1
- package/build/esm/hocs/prepareItem.d.ts +21 -71
- package/build/esm/hocs/prepareItem.js +8 -29
- package/build/esm/hocs/prepareItem.js.map +1 -1
- package/build/esm/hocs/withContext.d.ts +12 -2
- package/build/esm/hocs/withContext.js +35 -14
- package/build/esm/hocs/withContext.js.map +1 -1
- package/build/esm/package.json +1 -1
- package/build/esm/typings/common.d.ts +6 -4
- package/build/esm/typings/common.js.map +1 -1
- package/build/esm/typings/config.d.ts +3 -7
- package/build/esm/typings/config.js.map +1 -1
- package/build/esm/typings/plugin.d.ts +7 -7
- package/build/esm/typings/plugin.js.map +1 -1
- package/build/esm/utils/register-manager.d.ts +2 -3
- package/build/esm/utils/register-manager.js.map +1 -1
- package/build/esm/utils/update-manager.d.ts +2 -2
- package/build/esm/utils/update-manager.js.map +1 -1
- package/package.json +17 -7
|
@@ -1,72 +1,22 @@
|
|
|
1
|
-
export function prepareItem(Component: any): {
|
|
2
|
-
new (props: any): {
|
|
3
|
-
shouldComponentUpdate(nextProps: any): boolean;
|
|
4
|
-
_onStateAndParamsChange: (stateAndParams: any, options: any) => void;
|
|
5
|
-
_currentRenderProps: {};
|
|
6
|
-
getRenderProps: () => {};
|
|
7
|
-
render(): JSX.Element;
|
|
8
|
-
context: unknown;
|
|
9
|
-
setState<K extends string | number | symbol>(state: any, callback?: (() => void) | undefined): void;
|
|
10
|
-
forceUpdate(callback?: (() => void) | undefined): void;
|
|
11
|
-
readonly props: Readonly<any>;
|
|
12
|
-
state: Readonly<any>;
|
|
13
|
-
refs: {
|
|
14
|
-
[key: string]: React.ReactInstance;
|
|
15
|
-
};
|
|
16
|
-
componentDidMount?(): void;
|
|
17
|
-
componentWillUnmount?(): void;
|
|
18
|
-
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
|
|
19
|
-
getSnapshotBeforeUpdate?(prevProps: Readonly<any>, prevState: Readonly<any>): any;
|
|
20
|
-
componentDidUpdate?(prevProps: Readonly<any>, prevState: Readonly<any>, snapshot?: any): void;
|
|
21
|
-
componentWillMount?(): void;
|
|
22
|
-
UNSAFE_componentWillMount?(): void;
|
|
23
|
-
componentWillReceiveProps?(nextProps: Readonly<any>, nextContext: any): void;
|
|
24
|
-
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<any>, nextContext: any): void;
|
|
25
|
-
componentWillUpdate?(nextProps: Readonly<any>, nextState: Readonly<any>, nextContext: any): void;
|
|
26
|
-
UNSAFE_componentWillUpdate?(nextProps: Readonly<any>, nextState: Readonly<any>, nextContext: any): void;
|
|
27
|
-
};
|
|
28
|
-
new (props: any, context: any): {
|
|
29
|
-
shouldComponentUpdate(nextProps: any): boolean;
|
|
30
|
-
_onStateAndParamsChange: (stateAndParams: any, options: any) => void;
|
|
31
|
-
_currentRenderProps: {};
|
|
32
|
-
getRenderProps: () => {};
|
|
33
|
-
render(): JSX.Element;
|
|
34
|
-
context: unknown;
|
|
35
|
-
setState<K extends string | number | symbol>(state: any, callback?: (() => void) | undefined): void;
|
|
36
|
-
forceUpdate(callback?: (() => void) | undefined): void;
|
|
37
|
-
readonly props: Readonly<any>;
|
|
38
|
-
state: Readonly<any>;
|
|
39
|
-
refs: {
|
|
40
|
-
[key: string]: React.ReactInstance;
|
|
41
|
-
};
|
|
42
|
-
componentDidMount?(): void;
|
|
43
|
-
componentWillUnmount?(): void;
|
|
44
|
-
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
|
|
45
|
-
getSnapshotBeforeUpdate?(prevProps: Readonly<any>, prevState: Readonly<any>): any;
|
|
46
|
-
componentDidUpdate?(prevProps: Readonly<any>, prevState: Readonly<any>, snapshot?: any): void;
|
|
47
|
-
componentWillMount?(): void;
|
|
48
|
-
UNSAFE_componentWillMount?(): void;
|
|
49
|
-
componentWillReceiveProps?(nextProps: Readonly<any>, nextContext: any): void;
|
|
50
|
-
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<any>, nextContext: any): void;
|
|
51
|
-
componentWillUpdate?(nextProps: Readonly<any>, nextState: Readonly<any>, nextContext: any): void;
|
|
52
|
-
UNSAFE_componentWillUpdate?(nextProps: Readonly<any>, nextState: Readonly<any>, nextContext: any): void;
|
|
53
|
-
};
|
|
54
|
-
propTypes: {
|
|
55
|
-
gridLayout: PropTypes.Requireable<object>;
|
|
56
|
-
adjustWidgetLayout: PropTypes.Validator<(...args: any[]) => any>;
|
|
57
|
-
layout: PropTypes.Requireable<any[]>;
|
|
58
|
-
id: PropTypes.Requireable<string>;
|
|
59
|
-
item: PropTypes.Requireable<object>;
|
|
60
|
-
shouldItemUpdate: PropTypes.Requireable<boolean>;
|
|
61
|
-
width: PropTypes.Requireable<number>;
|
|
62
|
-
height: PropTypes.Requireable<number>;
|
|
63
|
-
transform: PropTypes.Requireable<string>;
|
|
64
|
-
isPlaceholder: PropTypes.Requireable<boolean>;
|
|
65
|
-
onItemRender: PropTypes.Requireable<(...args: any[]) => any>;
|
|
66
|
-
onItemMountChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
67
|
-
forwardedPluginRef: PropTypes.Requireable<any>;
|
|
68
|
-
};
|
|
69
|
-
contextType: React.Context<import("../context/index.js").DashKitCtxShape>;
|
|
70
|
-
};
|
|
71
1
|
import React from 'react';
|
|
72
|
-
import
|
|
2
|
+
import type { DashKitProps } from "../components/DashKit/index.js";
|
|
3
|
+
import type { ItemProps } from "../components/Item/types.js";
|
|
4
|
+
import type { ConfigItem, ConfigLayout } from "../shared/index.js";
|
|
5
|
+
import type { PluginRef, PluginWidgetProps, ReactGridLayoutProps } from "../typings/index.js";
|
|
6
|
+
type PrepareItemProps = {
|
|
7
|
+
gridLayout?: ReactGridLayoutProps;
|
|
8
|
+
adjustWidgetLayout: PluginWidgetProps['adjustWidgetLayout'];
|
|
9
|
+
layout: ConfigLayout[];
|
|
10
|
+
id: string;
|
|
11
|
+
item: ConfigItem;
|
|
12
|
+
shouldItemUpdate?: boolean;
|
|
13
|
+
width?: number;
|
|
14
|
+
height?: number;
|
|
15
|
+
transform?: string;
|
|
16
|
+
isPlaceholder?: boolean;
|
|
17
|
+
onItemRender?: DashKitProps['onItemRender'];
|
|
18
|
+
onItemMountChange?: DashKitProps['onItemMountChange'];
|
|
19
|
+
forwardedPluginRef?: (ref: PluginRef) => void;
|
|
20
|
+
};
|
|
21
|
+
export declare function prepareItem(WrappedComponent: React.ComponentType<ItemProps>): React.ComponentClass<PrepareItemProps>;
|
|
22
|
+
export {};
|
|
@@ -4,19 +4,18 @@ exports.prepareItem = prepareItem;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
6
|
const isEqual_1 = tslib_1.__importDefault(require("lodash/isEqual.js"));
|
|
7
|
-
const prop_types_1 = tslib_1.__importDefault(require("prop-types"));
|
|
8
7
|
const context_1 = require("../context/index.js");
|
|
9
|
-
function prepareItem(
|
|
8
|
+
function prepareItem(WrappedComponent) {
|
|
10
9
|
var _a;
|
|
11
10
|
return _a = class PrepareItem extends react_1.default.Component {
|
|
12
11
|
constructor() {
|
|
13
12
|
super(...arguments);
|
|
13
|
+
this._currentRenderProps = {};
|
|
14
14
|
this._onStateAndParamsChange = (stateAndParams, options) => {
|
|
15
15
|
this.context.onItemStateAndParamsChange(this.props.id, stateAndParams, options);
|
|
16
16
|
};
|
|
17
|
-
this._currentRenderProps = {};
|
|
18
17
|
this.getRenderProps = () => {
|
|
19
|
-
const { id, width, height, item, adjustWidgetLayout, layout,
|
|
18
|
+
const { id, width, height, item, adjustWidgetLayout, layout, gridLayout } = this.props;
|
|
20
19
|
const { itemsState, itemsParams, registerManager, settings, context, editMode } = this.context;
|
|
21
20
|
const { data, defaults, namespace } = item;
|
|
22
21
|
const rendererProps = {
|
|
@@ -35,7 +34,6 @@ function prepareItem(Component) {
|
|
|
35
34
|
layout,
|
|
36
35
|
gridLayout: gridLayout || registerManager.gridLayout,
|
|
37
36
|
adjustWidgetLayout,
|
|
38
|
-
isPlaceholder,
|
|
39
37
|
};
|
|
40
38
|
const changedProp = Object.entries(rendererProps).find(([key, value]) => {
|
|
41
39
|
// Checking gridLayoout deep as groups gridProperties method has tendancy to creat new objects
|
|
@@ -53,36 +51,17 @@ function prepareItem(Component) {
|
|
|
53
51
|
shouldComponentUpdate(nextProps) {
|
|
54
52
|
const { width, height, transform } = this.props;
|
|
55
53
|
const { width: widthNext, height: heightNext, transform: transformNext } = nextProps;
|
|
56
|
-
|
|
57
|
-
width
|
|
58
|
-
height
|
|
59
|
-
transform
|
|
60
|
-
return false;
|
|
61
|
-
}
|
|
62
|
-
return true;
|
|
54
|
+
return (nextProps.shouldItemUpdate ||
|
|
55
|
+
width !== widthNext ||
|
|
56
|
+
height !== heightNext ||
|
|
57
|
+
transform !== transformNext);
|
|
63
58
|
}
|
|
64
59
|
render() {
|
|
65
60
|
const { item, isPlaceholder, forwardedPluginRef, onItemMountChange, onItemRender } = this.props;
|
|
66
61
|
const { registerManager } = this.context;
|
|
67
|
-
|
|
68
|
-
return (react_1.default.createElement(Component, { forwardedPluginRef: forwardedPluginRef, rendererProps: this.getRenderProps(), registerManager: registerManager, type: type, isPlaceholder: isPlaceholder, onItemMountChange: onItemMountChange, onItemRender: onItemRender, item: item }));
|
|
62
|
+
return (react_1.default.createElement(WrappedComponent, { forwardedPluginRef: forwardedPluginRef, rendererProps: this.getRenderProps(), registerManager: registerManager, isPlaceholder: isPlaceholder, onItemMountChange: onItemMountChange, onItemRender: onItemRender, item: item }));
|
|
69
63
|
}
|
|
70
64
|
},
|
|
71
|
-
_a.propTypes = {
|
|
72
|
-
gridLayout: prop_types_1.default.object,
|
|
73
|
-
adjustWidgetLayout: prop_types_1.default.func.isRequired,
|
|
74
|
-
layout: prop_types_1.default.array,
|
|
75
|
-
id: prop_types_1.default.string,
|
|
76
|
-
item: prop_types_1.default.object,
|
|
77
|
-
shouldItemUpdate: prop_types_1.default.bool,
|
|
78
|
-
width: prop_types_1.default.number,
|
|
79
|
-
height: prop_types_1.default.number,
|
|
80
|
-
transform: prop_types_1.default.string,
|
|
81
|
-
isPlaceholder: prop_types_1.default.bool,
|
|
82
|
-
onItemRender: prop_types_1.default.func,
|
|
83
|
-
onItemMountChange: prop_types_1.default.func,
|
|
84
|
-
forwardedPluginRef: prop_types_1.default.any,
|
|
85
|
-
},
|
|
86
65
|
_a.contextType = context_1.DashKitContext,
|
|
87
66
|
_a;
|
|
88
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareItem.js","sourceRoot":"../../../src","sources":["hocs/prepareItem.
|
|
1
|
+
{"version":3,"file":"prepareItem.js","sourceRoot":"../../../src","sources":["hocs/prepareItem.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport isEqual from 'lodash/isEqual';\n\nimport type {DashKitProps} from '../components/DashKit';\nimport type {ItemProps, RendererProps} from '../components/Item/types';\nimport {DashKitContext} from '../context';\nimport type {ConfigItem, ConfigLayout} from '../shared';\nimport type {PluginRef, PluginWidgetProps, ReactGridLayoutProps} from '../typings';\n\ntype PrepareItemProps = {\n gridLayout?: ReactGridLayoutProps;\n adjustWidgetLayout: PluginWidgetProps['adjustWidgetLayout'];\n layout: ConfigLayout[];\n id: string;\n item: ConfigItem;\n shouldItemUpdate?: boolean;\n width?: number;\n height?: number;\n transform?: string;\n isPlaceholder?: boolean;\n\n onItemRender?: DashKitProps['onItemRender'];\n onItemMountChange?: DashKitProps['onItemMountChange'];\n\n forwardedPluginRef?: (ref: PluginRef) => void;\n};\n\nexport function prepareItem(\n WrappedComponent: React.ComponentType<ItemProps>,\n): React.ComponentClass<PrepareItemProps> {\n return class PrepareItem extends React.Component<PrepareItemProps> {\n static contextType = DashKitContext;\n context!: React.ContextType<typeof DashKitContext>;\n\n _currentRenderProps: RendererProps = {} as RendererProps;\n\n shouldComponentUpdate(nextProps: PrepareItemProps) {\n const {width, height, transform} = this.props;\n const {width: widthNext, height: heightNext, transform: transformNext} = nextProps;\n\n return (\n nextProps.shouldItemUpdate ||\n width !== widthNext ||\n height !== heightNext ||\n transform !== transformNext\n );\n }\n\n _onStateAndParamsChange: PluginWidgetProps['onStateAndParamsChange'] = (\n stateAndParams,\n options,\n ) => {\n this.context.onItemStateAndParamsChange(this.props.id, stateAndParams, options);\n };\n\n getRenderProps = (): RendererProps => {\n const {id, width, height, item, adjustWidgetLayout, layout, gridLayout} = this.props;\n const {itemsState, itemsParams, registerManager, settings, context, editMode} =\n this.context;\n const {data, defaults, namespace} = item;\n\n const rendererProps: RendererProps = {\n data,\n editMode,\n params: itemsParams[id],\n state: itemsState[id],\n onStateAndParamsChange: this._onStateAndParamsChange,\n width,\n height,\n id,\n defaults,\n namespace,\n settings,\n context,\n layout,\n gridLayout: gridLayout || registerManager.gridLayout,\n adjustWidgetLayout,\n };\n\n const changedProp = Object.entries(rendererProps).find(([key, value]) => {\n // Checking gridLayoout deep as groups gridProperties method has tendancy to creat new objects\n if (key === 'gridLayout') {\n return !isEqual(this._currentRenderProps[key as keyof RendererProps], value);\n }\n\n return this._currentRenderProps[key as keyof RendererProps] !== value;\n });\n\n if (changedProp) {\n this._currentRenderProps = rendererProps;\n }\n\n return this._currentRenderProps;\n };\n\n render() {\n const {item, isPlaceholder, forwardedPluginRef, onItemMountChange, onItemRender} =\n this.props;\n const {registerManager} = this.context;\n\n return (\n <WrappedComponent\n forwardedPluginRef={forwardedPluginRef}\n rendererProps={this.getRenderProps()}\n registerManager={registerManager}\n isPlaceholder={isPlaceholder}\n onItemMountChange={onItemMountChange}\n onItemRender={onItemRender}\n item={item}\n />\n );\n }\n };\n}\n"]}
|
|
@@ -1,4 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { DashKitProps } from "../components/DashKit/index.js";
|
|
3
|
+
import type { DashkitPropsPassedToCtx } from "../context/index.js";
|
|
4
|
+
import type { ConfigLayout } from "../shared/index.js";
|
|
5
|
+
import type { RegisterManager } from "../utils/index.js";
|
|
6
|
+
export type DashKitWithContextProps = DashkitPropsPassedToCtx & Pick<DashKitProps, 'overlayControls' | 'overlayMenuItems' | 'getPreparedCopyItemOptions' | 'onCopyFulfill'> & Required<Pick<DashKitProps, 'itemsStateAndParams' | 'defaultGlobalParams' | 'globalParams' | 'context' | 'settings' | 'onItemEdit' | 'onChange' | 'onDrop'>> & {
|
|
7
|
+
layout: ConfigLayout[];
|
|
8
|
+
registerManager: RegisterManager;
|
|
9
|
+
forwardedMetaRef: React.ForwardedRef<any>;
|
|
10
|
+
};
|
|
11
|
+
export declare function withContext(Component: React.ComponentType): {
|
|
12
|
+
(props: DashKitWithContextProps): JSX.Element;
|
|
3
13
|
displayName: string;
|
|
4
14
|
};
|
|
@@ -11,6 +11,18 @@ const useDeepEqualMemo_1 = require("../hooks/useDeepEqualMemo.js");
|
|
|
11
11
|
const shared_1 = require("../shared/index.js");
|
|
12
12
|
const utils_1 = require("../utils/index.js");
|
|
13
13
|
const ITEM_PROPS = ['i', 'h', 'w', 'x', 'y', 'parent'];
|
|
14
|
+
const hasGetMeta = (value) => {
|
|
15
|
+
return (typeof value === 'object' &&
|
|
16
|
+
value !== null &&
|
|
17
|
+
'getMeta' in value &&
|
|
18
|
+
typeof value.getMeta === 'function');
|
|
19
|
+
};
|
|
20
|
+
const hasReload = (value) => {
|
|
21
|
+
return (typeof value === 'object' &&
|
|
22
|
+
value !== null &&
|
|
23
|
+
'reload' in value &&
|
|
24
|
+
typeof value.reload === 'function');
|
|
25
|
+
};
|
|
14
26
|
function useMemoStateContext(props) {
|
|
15
27
|
// так как мы не хотим хранить параметры виджета с активированной автовысотой в сторе и на сервере, актуальный
|
|
16
28
|
// (видимый юзером в конкретный момент времени) лэйаут (массив объектов с данными о ширине, высоте,
|
|
@@ -41,7 +53,7 @@ function useMemoStateContext(props) {
|
|
|
41
53
|
const currentInnerLayout = layout.map((item) => {
|
|
42
54
|
if (item.i in originalLayouts.current) {
|
|
43
55
|
// eslint-disable-next-line no-unused-vars
|
|
44
|
-
const _a = originalLayouts.current[item.i], { parent } = _a, originalCopy = tslib_1.__rest(_a, ["parent"]);
|
|
56
|
+
const _a = originalLayouts.current[item.i], { parent: _parent } = _a, originalCopy = tslib_1.__rest(_a, ["parent"]);
|
|
45
57
|
// Updating original if parent has changed and saving copy as original
|
|
46
58
|
// or leaving default
|
|
47
59
|
if (item.parent) {
|
|
@@ -133,7 +145,8 @@ function useMemoStateContext(props) {
|
|
|
133
145
|
const defaultProps = props.registerManager.gridLayout || {};
|
|
134
146
|
const nowrapGroups = {};
|
|
135
147
|
let hasNowrapGroups = false;
|
|
136
|
-
if (defaultProps.compactType === common_1.COMPACT_TYPE_HORIZONTAL_NOWRAP
|
|
148
|
+
if (defaultProps.compactType === common_1.COMPACT_TYPE_HORIZONTAL_NOWRAP &&
|
|
149
|
+
defaultProps.cols !== undefined) {
|
|
137
150
|
nowrapGroups[common_1.DEFAULT_GROUP] = {
|
|
138
151
|
items: [],
|
|
139
152
|
leftSpace: defaultProps.cols,
|
|
@@ -144,7 +157,9 @@ function useMemoStateContext(props) {
|
|
|
144
157
|
groups.forEach((group) => {
|
|
145
158
|
var _a;
|
|
146
159
|
const resultProps = ((_a = group.gridProperties) === null || _a === void 0 ? void 0 : _a.call(group, defaultProps)) || {};
|
|
147
|
-
if (resultProps.compactType === common_1.COMPACT_TYPE_HORIZONTAL_NOWRAP
|
|
160
|
+
if (resultProps.compactType === common_1.COMPACT_TYPE_HORIZONTAL_NOWRAP &&
|
|
161
|
+
resultProps.cols !== undefined &&
|
|
162
|
+
group.id) {
|
|
148
163
|
nowrapGroups[group.id] = {
|
|
149
164
|
items: [],
|
|
150
165
|
leftSpace: resultProps.cols,
|
|
@@ -195,12 +210,12 @@ function useMemoStateContext(props) {
|
|
|
195
210
|
const getItemsMeta = react_1.default.useCallback((pluginsRefs) => {
|
|
196
211
|
return pluginsRefs
|
|
197
212
|
.map((ref) => {
|
|
198
|
-
if (!(ref &&
|
|
213
|
+
if (!(ref && hasGetMeta(ref))) {
|
|
199
214
|
return undefined;
|
|
200
215
|
}
|
|
201
216
|
return ref.getMeta();
|
|
202
217
|
})
|
|
203
|
-
.filter(
|
|
218
|
+
.filter((item) => item !== undefined);
|
|
204
219
|
}, []);
|
|
205
220
|
const resultLayout = react_1.default.useMemo(() => {
|
|
206
221
|
const adjusted = adjustedLayouts.current;
|
|
@@ -211,7 +226,7 @@ function useMemoStateContext(props) {
|
|
|
211
226
|
if (widgetId in adjusted || widgetId in nowrapAdjust) {
|
|
212
227
|
original[widgetId] = item;
|
|
213
228
|
// eslint-disable-next-line no-unused-vars
|
|
214
|
-
const _a = adjusted[widgetId] || item, { parent } = _a, adjustedItem = tslib_1.__rest(_a, ["parent"]);
|
|
229
|
+
const _a = adjusted[widgetId] || item, { parent: _parent2 } = _a, adjustedItem = tslib_1.__rest(_a, ["parent"]);
|
|
215
230
|
adjustedItem.w = item.w;
|
|
216
231
|
adjustedItem.x = item.x;
|
|
217
232
|
adjustedItem.y = item.y;
|
|
@@ -232,7 +247,7 @@ function useMemoStateContext(props) {
|
|
|
232
247
|
});
|
|
233
248
|
}, [props.layout, layoutUpdateCounter]);
|
|
234
249
|
const reloadItems = react_1.default.useCallback((pluginsRefs, data) => {
|
|
235
|
-
pluginsRefs.forEach((ref) => ref && ref
|
|
250
|
+
pluginsRefs.forEach((ref) => ref && hasReload(ref) && ref.reload(data));
|
|
236
251
|
}, []);
|
|
237
252
|
const dragPropsContext = dndContext === null || dndContext === void 0 ? void 0 : dndContext.dragProps;
|
|
238
253
|
const onDropDragOverContext = dndContext === null || dndContext === void 0 ? void 0 : dndContext.onDropDragOver;
|
|
@@ -255,27 +270,33 @@ function useMemoStateContext(props) {
|
|
|
255
270
|
resetTemporaryLayout();
|
|
256
271
|
return false;
|
|
257
272
|
}
|
|
273
|
+
let dragItemType;
|
|
258
274
|
let defaultLayout;
|
|
259
275
|
if (sharedItem) {
|
|
260
276
|
const { type, h, w } = sharedItem;
|
|
277
|
+
dragItemType = type;
|
|
261
278
|
const _defaults = props.registerManager.getItem(type);
|
|
262
279
|
defaultLayout = _defaults ? Object.assign(Object.assign({}, _defaults.defaultLayout), { h, w }) : { h, w };
|
|
263
280
|
}
|
|
264
281
|
else if (dragOverPlugin) {
|
|
282
|
+
dragItemType = dragOverPlugin.type;
|
|
265
283
|
defaultLayout = dragOverPlugin.defaultLayout;
|
|
266
284
|
}
|
|
267
285
|
else {
|
|
268
286
|
return false;
|
|
269
287
|
}
|
|
270
288
|
let maxW = gridProps.cols;
|
|
271
|
-
const maxH = Math.min(gridProps.maxRows || Infinity, defaultLayout.maxH
|
|
272
|
-
if (gridProps.compactType === common_1.COMPACT_TYPE_HORIZONTAL_NOWRAP) {
|
|
289
|
+
const maxH = Math.min(gridProps.maxRows || Infinity, 'maxH' in defaultLayout && defaultLayout.maxH ? defaultLayout.maxH : Infinity);
|
|
290
|
+
if (gridProps.compactType === common_1.COMPACT_TYPE_HORIZONTAL_NOWRAP && gridProps.cols) {
|
|
273
291
|
maxW = groupLayout.reduce((memo, item) => memo - item.w, gridProps.cols);
|
|
274
292
|
}
|
|
275
293
|
if (maxW === 0 ||
|
|
276
294
|
maxH === 0 ||
|
|
277
|
-
|
|
278
|
-
|
|
295
|
+
('minW' in defaultLayout &&
|
|
296
|
+
defaultLayout.minW &&
|
|
297
|
+
maxW &&
|
|
298
|
+
maxW < defaultLayout.minW) ||
|
|
299
|
+
('minH' in defaultLayout && defaultLayout.minH && maxH < defaultLayout.minH)) {
|
|
279
300
|
return false;
|
|
280
301
|
}
|
|
281
302
|
const { h = (defaultLayout === null || defaultLayout === void 0 ? void 0 : defaultLayout.h) || common_1.DEFAULT_WIDGET_HEIGHT, w = (defaultLayout === null || defaultLayout === void 0 ? void 0 : defaultLayout.w) || common_1.DEFAULT_WIDGET_WIDTH, } = (dragPropsContext === null || dragPropsContext === void 0 ? void 0 : dragPropsContext.layout) || {};
|
|
@@ -283,7 +304,7 @@ function useMemoStateContext(props) {
|
|
|
283
304
|
h: maxH ? Math.min(h, maxH) : h,
|
|
284
305
|
w: maxW ? Math.min(w, maxW) : w,
|
|
285
306
|
};
|
|
286
|
-
if ((onDropDragOverContext === null || onDropDragOverContext === void 0 ? void 0 : onDropDragOverContext(Object.assign(Object.assign(Object.assign({}, sharedItem), itemLayout), { parent: group, type:
|
|
307
|
+
if ((onDropDragOverContext === null || onDropDragOverContext === void 0 ? void 0 : onDropDragOverContext(Object.assign(Object.assign(Object.assign({}, sharedItem), itemLayout), { parent: group, type: dragItemType }), sharedItem !== null && sharedItem !== void 0 ? sharedItem : null)) === false) {
|
|
287
308
|
return false;
|
|
288
309
|
}
|
|
289
310
|
return itemLayout;
|
|
@@ -304,7 +325,7 @@ function useMemoStateContext(props) {
|
|
|
304
325
|
data: [...newLayout, item],
|
|
305
326
|
dragProps: dragPropsContext,
|
|
306
327
|
});
|
|
307
|
-
onDropProp({
|
|
328
|
+
onDropProp === null || onDropProp === void 0 ? void 0 : onDropProp({
|
|
308
329
|
newLayout: newLayout.reduce((memo, l) => {
|
|
309
330
|
if (l.i !== item.i) {
|
|
310
331
|
memo.push((0, pick_1.default)(l, ITEM_PROPS));
|
|
@@ -428,7 +449,7 @@ function withContext(Component) {
|
|
|
428
449
|
react_1.default.createElement(context_1.DashkitOvelayControlsContext.Provider, { value: controlsContextValue },
|
|
429
450
|
react_1.default.createElement(Component, null))));
|
|
430
451
|
};
|
|
431
|
-
WithContext.displayName = `withContext(${Component.displayName || Component.name || 'Component'}`;
|
|
452
|
+
WithContext.displayName = `withContext(${Component.displayName || Component.name || 'Component'})`;
|
|
432
453
|
return WithContext;
|
|
433
454
|
}
|
|
434
455
|
//# sourceMappingURL=withContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withContext.js","sourceRoot":"../../../src","sources":["hocs/withContext.js"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport isEqual from 'lodash/isEqual';\nimport pick from 'lodash/pick';\n\nimport {\n COMPACT_TYPE_HORIZONTAL_NOWRAP,\n DEFAULT_GROUP,\n DEFAULT_WIDGET_HEIGHT,\n DEFAULT_WIDGET_WIDTH,\n TEMPORARY_ITEM_ID,\n} from '../constants/common';\nimport {DashKitContext, DashKitDnDContext, DashkitOvelayControlsContext} from '../context';\nimport {useDeepEqualMemo} from '../hooks/useDeepEqualMemo';\nimport {getAllConfigItems, getItemsParams, getItemsState} from '../shared';\nimport {UpdateManager, resolveLayoutGroup} from '../utils';\n\nconst ITEM_PROPS = ['i', 'h', 'w', 'x', 'y', 'parent'];\n\nfunction useMemoStateContext(props) {\n // так как мы не хотим хранить параметры виджета с активированной автовысотой в сторе и на сервере, актуальный\n // (видимый юзером в конкретный момент времени) лэйаут (массив объектов с данными о ширине, высоте,\n // расположении конкретного виджета на сетке) будет храниться в стейте, но, для того, чтобы в стор попадал\n // лэйаут без учета вижетов с активированной автовысотой, в момент \"подстройки\" высоты виджета значение h\n // (высота) из конфига будет запоминаться в originalLayouts, новое значение высоты в adjustedLayouts\n\n const originalLayouts = React.useRef({});\n const adjustedLayouts = React.useRef({});\n const nowrapAdjustedLayouts = React.useRef({});\n\n const [temporaryLayout, setTemporaryLayout] = React.useState(null);\n const resetTemporaryLayout = React.useCallback(\n () => setTemporaryLayout(null),\n [setTemporaryLayout],\n );\n\n const dndContext = React.useContext(DashKitDnDContext);\n const outerDnDEnable = Boolean(dndContext);\n\n // TODO: need move originalLayouts, adjustedLayouts to state\n const [layoutUpdateCounter, forceUpdateLayout] = React.useState(0);\n\n const onChange = React.useCallback(\n ({\n config = props.config,\n itemsStateAndParams = props.itemsStateAndParams,\n groups = props.groups,\n }) => {\n if (\n !(\n isEqual(config, props.config) &&\n isEqual(itemsStateAndParams, props.itemsStateAndParams) &&\n isEqual(groups, props.groups)\n )\n ) {\n props.onChange({config, itemsStateAndParams, groups});\n }\n },\n [props.config, props.groups, props.itemsStateAndParams, props.onChange],\n );\n\n // каллбэк вызывающийся при изменение лэйаута сетки, первым аргументом приходит актуальный конфиг лэйаута,\n // т.е. если на текущей сетке есть виджеты, с активированной опцией автовысоты, их параметр \"h\" будет\n // \"подстроенный\"; чтобы, для сохранения в сторе \"ушли\" значения без учёта подстройки (как если бы у этих\n // виджетов автовысота была деактивирована) корректируем их используя this.originalLayouts\n const onLayoutChange = React.useCallback(\n (layout) => {\n const currentInnerLayout = layout.map((item) => {\n if (item.i in originalLayouts.current) {\n // eslint-disable-next-line no-unused-vars\n const {parent, ...originalCopy} = originalLayouts.current[item.i];\n\n // Updating original if parent has changed and saving copy as original\n // or leaving default\n if (item.parent) {\n originalCopy.parent = item.parent;\n }\n originalCopy.w = item.w;\n originalCopy.x = item.x;\n originalCopy.y = item.y;\n\n return originalCopy;\n } else {\n return {...item};\n }\n });\n\n const newConfig = UpdateManager.updateLayout({\n layout: currentInnerLayout,\n config: props.config,\n });\n\n if (!isEqual(newConfig.layout, props.config.layout)) {\n onChange({config: newConfig});\n }\n },\n [props.config, onChange],\n );\n\n const getLayoutItem = React.useCallback(\n (id) => {\n return props.config.layout.find(({i}) => i === id);\n },\n [props.config.layout],\n );\n\n // to calculate items, only memorization of items and globalItems is important\n const configItems = React.useMemo(\n () => getAllConfigItems(props.config),\n [props.config.items, props.config.globalItems],\n );\n\n const onItemRemove = React.useCallback(\n (id) => {\n delete nowrapAdjustedLayouts.current[id];\n delete adjustedLayouts.current[id];\n delete originalLayouts.current[id];\n\n if (id === TEMPORARY_ITEM_ID) {\n resetTemporaryLayout();\n } else {\n if (temporaryLayout) {\n setTemporaryLayout({\n ...temporaryLayout,\n data: temporaryLayout.data.filter(({i}) => i !== id),\n });\n }\n\n onChange(\n UpdateManager.removeItem({\n id,\n config: props.config,\n itemsStateAndParams: props.itemsStateAndParams,\n }),\n );\n }\n },\n [\n resetTemporaryLayout,\n temporaryLayout,\n onChange,\n props.config,\n props.itemsStateAndParams,\n setTemporaryLayout,\n ],\n );\n\n const onItemStateAndParamsChange = React.useCallback(\n (id, stateAndParams, options) => {\n onChange({\n itemsStateAndParams: UpdateManager.changeStateAndParams({\n id,\n config: props.config,\n stateAndParams,\n itemsStateAndParams: props.itemsStateAndParams,\n options,\n }),\n });\n },\n [props.config, props.itemsStateAndParams, onChange],\n );\n\n const memorizeOriginalLayout = React.useCallback(\n (widgetId, preAutoHeightLayout, postAutoHeightLayout) => {\n let needUpdateLayout = false;\n if (!(widgetId in originalLayouts.current)) {\n originalLayouts.current[widgetId] = preAutoHeightLayout;\n needUpdateLayout = true;\n }\n if (adjustedLayouts.current[widgetId] !== postAutoHeightLayout) {\n adjustedLayouts.current[widgetId] = postAutoHeightLayout;\n needUpdateLayout = true;\n }\n\n if (needUpdateLayout) {\n forceUpdateLayout((prev) => prev + 1);\n }\n },\n [],\n );\n\n const revertToOriginalLayout = React.useCallback((widgetId) => {\n const needUpdateLayout =\n widgetId in adjustedLayouts.current || widgetId in originalLayouts.current;\n delete adjustedLayouts.current[widgetId];\n delete originalLayouts.current[widgetId];\n if (needUpdateLayout) {\n forceUpdateLayout((prev) => prev + 1);\n }\n }, []);\n\n React.useMemo(() => {\n const groups = props.groups;\n const layout = props.layout;\n const defaultProps = props.registerManager.gridLayout || {};\n const nowrapGroups = {};\n let hasNowrapGroups = false;\n\n if (defaultProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP) {\n nowrapGroups[DEFAULT_GROUP] = {\n items: [],\n leftSpace: defaultProps.cols,\n };\n hasNowrapGroups = true;\n }\n\n if (groups) {\n groups.forEach((group) => {\n const resultProps = group.gridProperties?.(defaultProps) || {};\n\n if (resultProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP) {\n nowrapGroups[group.id] = {\n items: [],\n leftSpace: resultProps.cols,\n };\n hasNowrapGroups = true;\n }\n });\n }\n\n if (hasNowrapGroups) {\n layout.forEach((item) => {\n const widgetId = item.i;\n const parentId = resolveLayoutGroup(item);\n\n if (nowrapGroups[parentId]) {\n // Collecting nowrap elements\n nowrapGroups[parentId].items.push(item);\n nowrapGroups[parentId].leftSpace -= item.w;\n } else if (nowrapAdjustedLayouts.current[widgetId]) {\n // If element is not in horizontal-nowrap cleaning up and reverting adjustLayout values\n delete nowrapAdjustedLayouts.current[widgetId];\n }\n });\n\n Object.entries(nowrapGroups).forEach(([, {items, leftSpace}]) => {\n items.forEach((item) => {\n // setting maxW with adjustLayout fields and saving previous\n nowrapAdjustedLayouts.current[item.i] = item.w + leftSpace;\n });\n });\n }\n }, [props.registerManager, props.groups, props.layout]);\n\n const itemsParams = useDeepEqualMemo(\n () =>\n getItemsParams({\n defaultGlobalParams: props.defaultGlobalParams,\n globalParams: props.globalParams,\n config: props.config,\n itemsStateAndParams: props.itemsStateAndParams,\n plugins: props.registerManager.getPlugins(),\n }),\n [\n props.defaultGlobalParams,\n props.globalParams,\n props.config,\n props.itemsStateAndParams,\n props.registerManager,\n ],\n );\n\n const itemsState = useDeepEqualMemo(\n () =>\n getItemsState({\n config: props.config,\n itemsStateAndParams: props.itemsStateAndParams,\n }),\n [props.config, props.itemsStateAndParams],\n );\n\n const getItemsMeta = React.useCallback((pluginsRefs) => {\n return pluginsRefs\n .map((ref) => {\n if (!(ref && typeof ref.getMeta === 'function')) {\n return undefined;\n }\n return ref.getMeta();\n })\n .filter(Boolean);\n }, []);\n\n const resultLayout = React.useMemo(() => {\n const adjusted = adjustedLayouts.current;\n const original = originalLayouts.current;\n const nowrapAdjust = nowrapAdjustedLayouts.current;\n\n return props.layout.map((item) => {\n const widgetId = item.i;\n\n if (widgetId in adjusted || widgetId in nowrapAdjust) {\n original[widgetId] = item;\n // eslint-disable-next-line no-unused-vars\n const {parent, ...adjustedItem} = adjusted[widgetId] || item;\n\n adjustedItem.w = item.w;\n adjustedItem.x = item.x;\n adjustedItem.y = item.y;\n\n if (item.parent) {\n adjustedItem.parent = item.parent;\n }\n\n if (widgetId in nowrapAdjust) {\n adjustedItem.maxW = nowrapAdjust[widgetId];\n }\n\n return adjustedItem;\n } else {\n if (widgetId in original) {\n delete original[widgetId];\n }\n return item;\n }\n });\n }, [props.layout, layoutUpdateCounter]);\n\n const reloadItems = React.useCallback((pluginsRefs, data) => {\n pluginsRefs.forEach((ref) => ref && ref.reload && ref.reload(data));\n }, []);\n\n const dragPropsContext = dndContext?.dragProps;\n const onDropDragOverContext = dndContext?.onDropDragOver;\n\n const dragOverPlugin = React.useMemo(() => {\n if (!dragPropsContext) {\n return null;\n }\n\n const pluginType = dragPropsContext.type;\n\n if (props.registerManager.check(pluginType)) {\n return props.registerManager.getItem(pluginType);\n } else {\n // eslint-disable-next-line no-console\n console.error(`Uknown pluginType: ${pluginType}`);\n return null;\n }\n }, [dragPropsContext, props.registerManager]);\n\n const onDropDragOver = React.useCallback(\n (_e, group, gridProps, groupLayout, sharedItem) => {\n if (temporaryLayout) {\n resetTemporaryLayout();\n return false;\n }\n\n let defaultLayout;\n if (sharedItem) {\n const {type, h, w} = sharedItem;\n const _defaults = props.registerManager.getItem(type);\n defaultLayout = _defaults ? {..._defaults.defaultLayout, h, w} : {h, w};\n } else if (dragOverPlugin) {\n defaultLayout = dragOverPlugin.defaultLayout;\n } else {\n return false;\n }\n\n let maxW = gridProps.cols;\n const maxH = Math.min(gridProps.maxRows || Infinity, defaultLayout.maxH || Infinity);\n\n if (gridProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP) {\n maxW = groupLayout.reduce((memo, item) => memo - item.w, gridProps.cols);\n }\n\n if (\n maxW === 0 ||\n maxH === 0 ||\n maxW < defaultLayout.minW ||\n maxH < defaultLayout.minH\n ) {\n return false;\n }\n\n const {\n h = defaultLayout?.h || DEFAULT_WIDGET_HEIGHT,\n w = defaultLayout?.w || DEFAULT_WIDGET_WIDTH,\n } = dragPropsContext?.layout || {};\n\n const itemLayout = {\n h: maxH ? Math.min(h, maxH) : h,\n w: maxW ? Math.min(w, maxW) : w,\n };\n\n if (\n onDropDragOverContext?.(\n {\n ...sharedItem,\n ...itemLayout,\n parent: group,\n type: sharedItem?.type || dragOverPlugin?.type,\n },\n sharedItem ?? null,\n ) === false\n ) {\n return false;\n }\n\n return itemLayout;\n },\n [\n props.registerManager,\n resetTemporaryLayout,\n temporaryLayout,\n dragOverPlugin,\n dragPropsContext,\n onDropDragOverContext,\n ],\n );\n\n const onDropProp = props.onDrop;\n const onDrop = React.useCallback(\n (newLayout, item) => {\n if (!dragPropsContext) {\n return;\n }\n\n setTemporaryLayout({\n data: [...newLayout, item],\n dragProps: dragPropsContext,\n });\n\n onDropProp({\n newLayout: newLayout.reduce((memo, l) => {\n if (l.i !== item.i) {\n memo.push(pick(l, ITEM_PROPS));\n }\n\n return memo;\n }, []),\n itemLayout: pick(item, ITEM_PROPS),\n commit: resetTemporaryLayout,\n dragProps: dragPropsContext,\n });\n },\n [dragPropsContext, onDropProp, setTemporaryLayout, resetTemporaryLayout],\n );\n\n const dashkitContextValue = React.useMemo(\n () => ({\n config: props.config,\n configItems,\n groups: props.groups,\n context: props.context,\n noOverlay: props.noOverlay,\n focusable: props.focusable,\n defaultGlobalParams: props.globalParams,\n globalParams: props.globalParams,\n editMode: props.editMode,\n settings: props.settings,\n onItemMountChange: props.onItemMountChange,\n onItemRender: props.onItemRender,\n draggableHandleClassName: props.draggableHandleClassName,\n\n registerManager: props.registerManager,\n forwardedMetaRef: props.forwardedMetaRef,\n\n layout: resultLayout,\n temporaryLayout,\n layoutChange: onLayoutChange,\n memorizeOriginalLayout,\n revertToOriginalLayout,\n\n itemsState,\n itemsParams,\n onItemStateAndParamsChange,\n\n getItemsMeta,\n reloadItems,\n\n onDrop,\n onDropDragOver,\n outerDnDEnable,\n dragOverPlugin,\n\n onItemFocus: props.onItemFocus,\n onItemBlur: props.onItemBlur,\n\n /* default handlers bypass */\n onDragStart: props.onDragStart,\n onDrag: props.onDrag,\n onDragStop: props.onDragStop,\n onResizeStart: props.onResizeStart,\n onResize: props.onResize,\n onResizeStop: props.onResizeStop,\n }),\n [\n resultLayout,\n temporaryLayout,\n props.config,\n configItems,\n props.groups,\n props.context,\n props.noOverlay,\n props.focusable,\n props.globalParams,\n props.editMode,\n props.settings,\n itemsState,\n itemsParams,\n props.registerManager,\n onItemStateAndParamsChange,\n onDrop,\n onDropDragOver,\n onLayoutChange,\n props.onItemMountChange,\n props.onItemRender,\n getItemsMeta,\n reloadItems,\n memorizeOriginalLayout,\n revertToOriginalLayout,\n props.forwardedMetaRef,\n props.draggableHandleClassName,\n outerDnDEnable,\n dragOverPlugin,\n\n props.onItemFocus,\n props.onItemBlur,\n\n props.onDragStart,\n props.onDrag,\n props.onDragStop,\n props.onResizeStart,\n props.onResize,\n props.onResizeStop,\n ],\n );\n\n const overlayMenuItems = props.overlayMenuItems || props.registerManager.settings.menu;\n const controlsContextValue = React.useMemo(\n () => ({\n overlayControls: props.overlayControls,\n context: props.context,\n\n itemsStateAndParams: props.itemsStateAndParams,\n itemsState,\n itemsParams,\n\n getPreparedCopyItemOptions: props.getPreparedCopyItemOptions,\n onCopyFulfill: props.onCopyFulfill,\n\n menu: overlayMenuItems,\n\n editItem: props.onItemEdit,\n removeItem: onItemRemove,\n getLayoutItem: getLayoutItem,\n }),\n [\n props.overlayControls,\n props.context,\n props.itemsStateAndParams,\n props.onItemEdit,\n props.getPreparedCopyItemOptions,\n props.onCopyFulfill,\n overlayMenuItems,\n itemsState,\n itemsParams,\n onItemRemove,\n getLayoutItem,\n ],\n );\n\n return {controlsContextValue, dashkitContextValue};\n}\n\nexport function withContext(Component) {\n const WithContext = (props) => {\n const {dashkitContextValue, controlsContextValue} = useMemoStateContext(props);\n\n return (\n <DashKitContext.Provider value={dashkitContextValue}>\n <DashkitOvelayControlsContext.Provider value={controlsContextValue}>\n <Component />\n </DashkitOvelayControlsContext.Provider>\n </DashKitContext.Provider>\n );\n };\n\n WithContext.displayName = `withContext(${\n Component.displayName || Component.name || 'Component'\n }`;\n\n return WithContext;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"withContext.js","sourceRoot":"../../../src","sources":["hocs/withContext.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport isEqual from 'lodash/isEqual';\nimport pick from 'lodash/pick';\n\nimport type {DashKitProps} from '../components/DashKit';\nimport {\n COMPACT_TYPE_HORIZONTAL_NOWRAP,\n DEFAULT_GROUP,\n DEFAULT_WIDGET_HEIGHT,\n DEFAULT_WIDGET_WIDTH,\n TEMPORARY_ITEM_ID,\n} from '../constants/common';\nimport {DashKitContext, DashKitDnDContext, DashkitOvelayControlsContext} from '../context';\nimport type {\n DashKitCtxShape,\n DashkitPropsPassedToCtx,\n OverlayControlsCtxShape,\n TemporaryLayout,\n} from '../context';\nimport {useDeepEqualMemo} from '../hooks/useDeepEqualMemo';\nimport type {ConfigLayout} from '../shared';\nimport {getAllConfigItems, getItemsParams, getItemsState} from '../shared';\nimport type {PluginRef} from '../typings';\nimport type {RegisterManager, RegisterManagerPlugin} from '../utils';\nimport {UpdateManager, resolveLayoutGroup} from '../utils';\n\nconst ITEM_PROPS = ['i', 'h', 'w', 'x', 'y', 'parent'] as const;\n\nexport type DashKitWithContextProps = DashkitPropsPassedToCtx &\n Pick<\n DashKitProps,\n 'overlayControls' | 'overlayMenuItems' | 'getPreparedCopyItemOptions' | 'onCopyFulfill'\n > &\n Required<\n Pick<\n DashKitProps,\n | 'itemsStateAndParams'\n | 'defaultGlobalParams'\n | 'globalParams'\n | 'context'\n | 'settings'\n | 'onItemEdit'\n | 'onChange'\n | 'onDrop'\n >\n > & {\n layout: ConfigLayout[];\n registerManager: RegisterManager;\n forwardedMetaRef: React.ForwardedRef<any>;\n };\n\ntype OriginalLayouts = Record<string, ConfigLayout>;\n\ntype AdjustedLayouts = Record<string, ConfigLayout>;\n\ntype NowrapAdjustedLayouts = Record<string, number>;\n\ntype UseMemoStateContextResult = {\n dashkitContextValue: DashKitCtxShape;\n controlsContextValue: OverlayControlsCtxShape;\n};\n\nconst hasGetMeta = (value: PluginRef): value is {getMeta: () => Promise<any>} => {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'getMeta' in value &&\n typeof value.getMeta === 'function'\n );\n};\n\nconst hasReload = (\n value: PluginRef,\n): value is {reload: (data: {silentLoading: boolean; noVeil: boolean}) => void} => {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'reload' in value &&\n typeof value.reload === 'function'\n );\n};\n\nfunction useMemoStateContext(props: DashKitWithContextProps): UseMemoStateContextResult {\n // так как мы не хотим хранить параметры виджета с активированной автовысотой в сторе и на сервере, актуальный\n // (видимый юзером в конкретный момент времени) лэйаут (массив объектов с данными о ширине, высоте,\n // расположении конкретного виджета на сетке) будет храниться в стейте, но, для того, чтобы в стор попадал\n // лэйаут без учета вижетов с активированной автовысотой, в момент \"подстройки\" высоты виджета значение h\n // (высота) из конфига будет запоминаться в originalLayouts, новое значение высоты в adjustedLayouts\n\n const originalLayouts = React.useRef<OriginalLayouts>({});\n const adjustedLayouts = React.useRef<AdjustedLayouts>({});\n const nowrapAdjustedLayouts = React.useRef<NowrapAdjustedLayouts>({});\n\n const [temporaryLayout, setTemporaryLayout] = React.useState<TemporaryLayout | null>(null);\n const resetTemporaryLayout = React.useCallback(\n () => setTemporaryLayout(null),\n [setTemporaryLayout],\n );\n\n const dndContext = React.useContext(DashKitDnDContext);\n const outerDnDEnable = Boolean(dndContext);\n\n // TODO: need move originalLayouts, adjustedLayouts to state\n const [layoutUpdateCounter, forceUpdateLayout] = React.useState(0);\n\n const onChange = React.useCallback(\n ({\n config = props.config,\n itemsStateAndParams = props.itemsStateAndParams,\n groups = props.groups,\n }) => {\n if (\n !(\n isEqual(config, props.config) &&\n isEqual(itemsStateAndParams, props.itemsStateAndParams) &&\n isEqual(groups, props.groups)\n )\n ) {\n props.onChange({config, itemsStateAndParams, groups});\n }\n },\n [props.config, props.groups, props.itemsStateAndParams, props.onChange],\n );\n\n // каллбэк вызывающийся при изменение лэйаута сетки, первым аргументом приходит актуальный конфиг лэйаута,\n // т.е. если на текущей сетке есть виджеты, с активированной опцией автовысоты, их параметр \"h\" будет\n // \"подстроенный\"; чтобы, для сохранения в сторе \"ушли\" значения без учёта подстройки (как если бы у этих\n // виджетов автовысота была деактивирована) корректируем их используя this.originalLayouts\n const onLayoutChange = React.useCallback(\n (layout: ConfigLayout[]) => {\n const currentInnerLayout = layout.map((item) => {\n if (item.i in originalLayouts.current) {\n // eslint-disable-next-line no-unused-vars\n const {parent: _parent, ...originalCopy} = originalLayouts.current[item.i];\n\n // Updating original if parent has changed and saving copy as original\n // or leaving default\n if (item.parent) {\n (originalCopy as ConfigLayout).parent = item.parent;\n }\n originalCopy.w = item.w;\n originalCopy.x = item.x;\n originalCopy.y = item.y;\n\n return originalCopy satisfies ConfigLayout;\n } else {\n return {...item};\n }\n });\n\n const newConfig = UpdateManager.updateLayout({\n layout: currentInnerLayout,\n config: props.config,\n });\n\n if (!isEqual(newConfig.layout, props.config.layout)) {\n onChange({config: newConfig});\n }\n },\n [props.config, onChange],\n );\n\n const getLayoutItem = React.useCallback(\n (id: string) => {\n return props.config.layout.find(({i}) => i === id);\n },\n [props.config.layout],\n );\n\n // to calculate items, only memorization of items and globalItems is important\n const configItems = React.useMemo(\n () => getAllConfigItems(props.config),\n [props.config.items, props.config.globalItems],\n );\n\n const onItemRemove = React.useCallback(\n (id: string) => {\n delete nowrapAdjustedLayouts.current[id];\n delete adjustedLayouts.current[id];\n delete originalLayouts.current[id];\n\n if (id === TEMPORARY_ITEM_ID) {\n resetTemporaryLayout();\n } else {\n if (temporaryLayout) {\n setTemporaryLayout({\n ...temporaryLayout,\n data: temporaryLayout.data.filter(({i}) => i !== id),\n });\n }\n\n onChange(\n UpdateManager.removeItem({\n id,\n config: props.config,\n itemsStateAndParams: props.itemsStateAndParams,\n }),\n );\n }\n },\n [\n resetTemporaryLayout,\n temporaryLayout,\n onChange,\n props.config,\n props.itemsStateAndParams,\n setTemporaryLayout,\n ],\n );\n\n const onItemStateAndParamsChange = React.useCallback<\n DashKitCtxShape['onItemStateAndParamsChange']\n >(\n (id, stateAndParams, options) => {\n onChange({\n itemsStateAndParams: UpdateManager.changeStateAndParams({\n id,\n config: props.config,\n stateAndParams,\n itemsStateAndParams: props.itemsStateAndParams,\n options,\n }),\n });\n },\n [props.config, props.itemsStateAndParams, onChange],\n );\n\n const memorizeOriginalLayout = React.useCallback<DashKitCtxShape['memorizeOriginalLayout']>(\n (widgetId, preAutoHeightLayout, postAutoHeightLayout) => {\n let needUpdateLayout = false;\n if (!(widgetId in originalLayouts.current)) {\n originalLayouts.current[widgetId] = preAutoHeightLayout;\n needUpdateLayout = true;\n }\n if (adjustedLayouts.current[widgetId] !== postAutoHeightLayout) {\n adjustedLayouts.current[widgetId] = postAutoHeightLayout;\n needUpdateLayout = true;\n }\n\n if (needUpdateLayout) {\n forceUpdateLayout((prev) => prev + 1);\n }\n },\n [],\n );\n\n const revertToOriginalLayout = React.useCallback((widgetId: string) => {\n const needUpdateLayout =\n widgetId in adjustedLayouts.current || widgetId in originalLayouts.current;\n delete adjustedLayouts.current[widgetId];\n delete originalLayouts.current[widgetId];\n if (needUpdateLayout) {\n forceUpdateLayout((prev) => prev + 1);\n }\n }, []);\n\n React.useMemo(() => {\n const groups = props.groups;\n const layout = props.layout;\n const defaultProps = props.registerManager.gridLayout || {};\n const nowrapGroups: Record<string, {items: ConfigLayout[]; leftSpace: number}> = {};\n let hasNowrapGroups = false;\n\n if (\n defaultProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP &&\n defaultProps.cols !== undefined\n ) {\n nowrapGroups[DEFAULT_GROUP] = {\n items: [],\n leftSpace: defaultProps.cols,\n };\n hasNowrapGroups = true;\n }\n\n if (groups) {\n groups.forEach((group) => {\n const resultProps = group.gridProperties?.(defaultProps) || {};\n\n if (\n resultProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP &&\n resultProps.cols !== undefined &&\n group.id\n ) {\n nowrapGroups[group.id] = {\n items: [],\n leftSpace: resultProps.cols,\n };\n hasNowrapGroups = true;\n }\n });\n }\n\n if (hasNowrapGroups) {\n layout.forEach((item) => {\n const widgetId = item.i;\n const parentId = resolveLayoutGroup(item);\n\n if (nowrapGroups[parentId]) {\n // Collecting nowrap elements\n nowrapGroups[parentId].items.push(item);\n nowrapGroups[parentId].leftSpace -= item.w;\n } else if (nowrapAdjustedLayouts.current[widgetId]) {\n // If element is not in horizontal-nowrap cleaning up and reverting adjustLayout values\n delete nowrapAdjustedLayouts.current[widgetId];\n }\n });\n\n Object.entries(nowrapGroups).forEach(([, {items, leftSpace}]) => {\n items.forEach((item) => {\n // setting maxW with adjustLayout fields and saving previous\n nowrapAdjustedLayouts.current[item.i] = item.w + leftSpace;\n });\n });\n }\n }, [props.registerManager, props.groups, props.layout]);\n\n const itemsParams = useDeepEqualMemo(\n () =>\n getItemsParams({\n defaultGlobalParams: props.defaultGlobalParams,\n globalParams: props.globalParams,\n config: props.config,\n itemsStateAndParams: props.itemsStateAndParams,\n plugins: props.registerManager.getPlugins(),\n }),\n [\n props.defaultGlobalParams,\n props.globalParams,\n props.config,\n props.itemsStateAndParams,\n props.registerManager,\n ],\n );\n\n const itemsState = useDeepEqualMemo(\n () =>\n getItemsState({\n config: props.config,\n itemsStateAndParams: props.itemsStateAndParams,\n }),\n [props.config, props.itemsStateAndParams],\n );\n\n const getItemsMeta = React.useCallback<DashKitCtxShape['getItemsMeta']>((pluginsRefs) => {\n return pluginsRefs\n .map((ref) => {\n if (!(ref && hasGetMeta(ref))) {\n return undefined;\n }\n return ref.getMeta();\n })\n .filter((item): item is Promise<any> => item !== undefined);\n }, []);\n\n const resultLayout = React.useMemo(() => {\n const adjusted = adjustedLayouts.current;\n const original = originalLayouts.current;\n const nowrapAdjust = nowrapAdjustedLayouts.current;\n\n return props.layout.map((item) => {\n const widgetId = item.i;\n\n if (widgetId in adjusted || widgetId in nowrapAdjust) {\n original[widgetId] = item;\n // eslint-disable-next-line no-unused-vars\n const {parent: _parent2, ...adjustedItem} = adjusted[widgetId] || item;\n\n adjustedItem.w = item.w;\n adjustedItem.x = item.x;\n adjustedItem.y = item.y;\n\n if (item.parent) {\n (adjustedItem as ConfigLayout).parent = item.parent;\n }\n\n if (widgetId in nowrapAdjust) {\n (adjustedItem as ConfigLayout & {maxW?: number}).maxW = nowrapAdjust[widgetId];\n }\n\n return adjustedItem satisfies ConfigLayout;\n } else {\n if (widgetId in original) {\n delete original[widgetId];\n }\n return item;\n }\n });\n }, [props.layout, layoutUpdateCounter]);\n\n const reloadItems = React.useCallback<DashKitCtxShape['reloadItems']>((pluginsRefs, data) => {\n pluginsRefs.forEach((ref) => ref && hasReload(ref) && ref.reload(data));\n }, []);\n\n const dragPropsContext = dndContext?.dragProps;\n const onDropDragOverContext = dndContext?.onDropDragOver;\n\n const dragOverPlugin = React.useMemo(() => {\n if (!dragPropsContext) {\n return null;\n }\n\n const pluginType = dragPropsContext.type;\n\n if (props.registerManager.check(pluginType)) {\n return props.registerManager.getItem(pluginType);\n } else {\n // eslint-disable-next-line no-console\n console.error(`Uknown pluginType: ${pluginType}`);\n return null;\n }\n }, [dragPropsContext, props.registerManager]);\n\n const onDropDragOver = React.useCallback<DashKitCtxShape['onDropDragOver']>(\n (_e, group, gridProps, groupLayout, sharedItem) => {\n if (temporaryLayout) {\n resetTemporaryLayout();\n return false;\n }\n\n let dragItemType: string;\n let defaultLayout: RegisterManagerPlugin['defaultLayout'] | {h: number; w: number};\n if (sharedItem) {\n const {type, h, w} = sharedItem;\n dragItemType = type;\n const _defaults = props.registerManager.getItem(type);\n defaultLayout = _defaults ? {..._defaults.defaultLayout, h, w} : {h, w};\n } else if (dragOverPlugin) {\n dragItemType = dragOverPlugin.type;\n defaultLayout = dragOverPlugin.defaultLayout;\n } else {\n return false;\n }\n\n let maxW = gridProps.cols;\n const maxH = Math.min(\n gridProps.maxRows || Infinity,\n 'maxH' in defaultLayout && defaultLayout.maxH ? defaultLayout.maxH : Infinity,\n );\n\n if (gridProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP && gridProps.cols) {\n maxW = groupLayout.reduce((memo, item) => memo - item.w, gridProps.cols);\n }\n\n if (\n maxW === 0 ||\n maxH === 0 ||\n ('minW' in defaultLayout &&\n defaultLayout.minW &&\n maxW &&\n maxW < defaultLayout.minW) ||\n ('minH' in defaultLayout && defaultLayout.minH && maxH < defaultLayout.minH)\n ) {\n return false;\n }\n\n const {\n h = defaultLayout?.h || DEFAULT_WIDGET_HEIGHT,\n w = defaultLayout?.w || DEFAULT_WIDGET_WIDTH,\n } = dragPropsContext?.layout || {};\n\n const itemLayout = {\n h: maxH ? Math.min(h, maxH) : h,\n w: maxW ? Math.min(w, maxW) : w,\n };\n\n if (\n onDropDragOverContext?.(\n {\n ...sharedItem,\n ...itemLayout,\n parent: group,\n type: dragItemType,\n },\n sharedItem ?? null,\n ) === false\n ) {\n return false;\n }\n\n return itemLayout;\n },\n [\n props.registerManager,\n resetTemporaryLayout,\n temporaryLayout,\n dragOverPlugin,\n dragPropsContext,\n onDropDragOverContext,\n ],\n );\n\n const onDropProp = props.onDrop;\n const onDrop = React.useCallback<DashKitCtxShape['onDrop']>(\n (newLayout, item) => {\n if (!dragPropsContext) {\n return;\n }\n\n setTemporaryLayout({\n data: [...newLayout, item],\n dragProps: dragPropsContext,\n });\n\n onDropProp?.({\n newLayout: newLayout.reduce<ConfigLayout[]>((memo, l) => {\n if (l.i !== item.i) {\n memo.push(pick(l, ITEM_PROPS));\n }\n\n return memo;\n }, []),\n itemLayout: pick(item, ITEM_PROPS),\n commit: resetTemporaryLayout,\n dragProps: dragPropsContext,\n });\n },\n [dragPropsContext, onDropProp, setTemporaryLayout, resetTemporaryLayout],\n );\n\n const dashkitContextValue = React.useMemo(\n () => ({\n config: props.config,\n configItems,\n groups: props.groups,\n context: props.context,\n noOverlay: props.noOverlay,\n focusable: props.focusable,\n defaultGlobalParams: props.globalParams,\n globalParams: props.globalParams,\n editMode: props.editMode,\n settings: props.settings,\n onItemMountChange: props.onItemMountChange,\n onItemRender: props.onItemRender,\n draggableHandleClassName: props.draggableHandleClassName,\n\n registerManager: props.registerManager,\n forwardedMetaRef: props.forwardedMetaRef,\n\n layout: resultLayout,\n temporaryLayout,\n layoutChange: onLayoutChange,\n memorizeOriginalLayout,\n revertToOriginalLayout,\n\n itemsState,\n itemsParams,\n onItemStateAndParamsChange,\n\n getItemsMeta,\n reloadItems,\n\n onDrop,\n onDropDragOver,\n outerDnDEnable,\n dragOverPlugin,\n\n onItemFocus: props.onItemFocus,\n onItemBlur: props.onItemBlur,\n\n /* default handlers bypass */\n onDragStart: props.onDragStart,\n onDrag: props.onDrag,\n onDragStop: props.onDragStop,\n onResizeStart: props.onResizeStart,\n onResize: props.onResize,\n onResizeStop: props.onResizeStop,\n }),\n [\n resultLayout,\n temporaryLayout,\n props.config,\n configItems,\n props.groups,\n props.context,\n props.noOverlay,\n props.focusable,\n props.globalParams,\n props.editMode,\n props.settings,\n itemsState,\n itemsParams,\n props.registerManager,\n onItemStateAndParamsChange,\n onDrop,\n onDropDragOver,\n onLayoutChange,\n props.onItemMountChange,\n props.onItemRender,\n getItemsMeta,\n reloadItems,\n memorizeOriginalLayout,\n revertToOriginalLayout,\n props.forwardedMetaRef,\n props.draggableHandleClassName,\n outerDnDEnable,\n dragOverPlugin,\n\n props.onItemFocus,\n props.onItemBlur,\n\n props.onDragStart,\n props.onDrag,\n props.onDragStop,\n props.onResizeStart,\n props.onResize,\n props.onResizeStop,\n ],\n );\n\n const overlayMenuItems = props.overlayMenuItems || props.registerManager.settings.menu;\n const controlsContextValue = React.useMemo(\n () => ({\n overlayControls: props.overlayControls,\n context: props.context,\n\n itemsStateAndParams: props.itemsStateAndParams,\n itemsState,\n itemsParams,\n\n getPreparedCopyItemOptions: props.getPreparedCopyItemOptions,\n onCopyFulfill: props.onCopyFulfill,\n\n menu: overlayMenuItems,\n\n editItem: props.onItemEdit,\n removeItem: onItemRemove,\n getLayoutItem: getLayoutItem,\n }),\n [\n props.overlayControls,\n props.context,\n props.itemsStateAndParams,\n props.onItemEdit,\n props.getPreparedCopyItemOptions,\n props.onCopyFulfill,\n overlayMenuItems,\n itemsState,\n itemsParams,\n onItemRemove,\n getLayoutItem,\n ],\n );\n\n return {controlsContextValue, dashkitContextValue};\n}\n\nexport function withContext(Component: React.ComponentType) {\n const WithContext = (props: DashKitWithContextProps) => {\n const {dashkitContextValue, controlsContextValue} = useMemoStateContext(props);\n\n return (\n <DashKitContext.Provider value={dashkitContextValue}>\n <DashkitOvelayControlsContext.Provider value={controlsContextValue}>\n <Component />\n </DashkitOvelayControlsContext.Provider>\n </DashKitContext.Provider>\n );\n };\n\n WithContext.displayName = `withContext(${\n Component.displayName || Component.name || 'Component'\n })`;\n\n return WithContext;\n}\n"]}
|
package/build/cjs/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"type":"commonjs"}
|
|
1
|
+
{"version":"10.0.0-beta.0","type":"commonjs","sideEffects":["*.scss","*.css"]}
|
|
@@ -2,11 +2,13 @@ import type ReactGridLayout from 'react-grid-layout';
|
|
|
2
2
|
import type { OverlayCustomControlItem } from "../components/OverlayControls/OverlayControls.js";
|
|
3
3
|
import { MenuItems } from "../constants/index.js";
|
|
4
4
|
import { AdditionalWidgetLayout } from "../shared/index.js";
|
|
5
|
-
export type
|
|
5
|
+
export type CompactType = ReactGridLayout.ReactGridLayoutProps['compactType'] | 'horizontal-nowrap';
|
|
6
|
+
export type ReactGridLayoutProps = Omit<ReactGridLayout.ReactGridLayoutProps, 'children' | 'compactType' | 'innerRef' | 'key' | 'layout' | 'onDragStart' | 'onDragStop' | 'onResizeStart' | 'onResizeStop' | 'draggableHandle' | 'isDroppable' | 'onDropDragOver' | 'onDrop' | 'draggableCancel'> & {
|
|
7
|
+
compactType?: CompactType;
|
|
6
8
|
noOverlay?: boolean;
|
|
7
9
|
};
|
|
8
10
|
export interface Settings {
|
|
9
|
-
gridLayout?:
|
|
11
|
+
gridLayout?: ReactGridLayoutProps;
|
|
10
12
|
theme?: string;
|
|
11
13
|
isMobile?: boolean;
|
|
12
14
|
menu?: Array<MenuItem>;
|
|
@@ -25,8 +27,8 @@ export interface WidgetLayout extends AdditionalWidgetLayout {
|
|
|
25
27
|
h: number;
|
|
26
28
|
x: number;
|
|
27
29
|
y: number;
|
|
28
|
-
minW
|
|
29
|
-
minH
|
|
30
|
+
minW?: number;
|
|
31
|
+
minH?: number;
|
|
30
32
|
maxW?: number;
|
|
31
33
|
maxH?: number;
|
|
32
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"../../../src","sources":["typings/common.ts"],"names":[],"mappings":"","sourcesContent":["import type ReactGridLayout from 'react-grid-layout';\n\nimport type {OverlayCustomControlItem} from '../components/OverlayControls/OverlayControls';\nimport {MenuItems} from '../constants';\nimport {AdditionalWidgetLayout} from '../shared';\n\nexport type
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"../../../src","sources":["typings/common.ts"],"names":[],"mappings":"","sourcesContent":["import type ReactGridLayout from 'react-grid-layout';\n\nimport type {OverlayCustomControlItem} from '../components/OverlayControls/OverlayControls';\nimport {MenuItems} from '../constants';\nimport {AdditionalWidgetLayout} from '../shared';\n\nexport type CompactType = ReactGridLayout.ReactGridLayoutProps['compactType'] | 'horizontal-nowrap';\n\nexport type ReactGridLayoutProps = Omit<\n ReactGridLayout.ReactGridLayoutProps,\n | 'children'\n | 'compactType'\n | 'innerRef'\n | 'key'\n | 'layout'\n | 'onDragStart'\n | 'onDragStop'\n | 'onResizeStart'\n | 'onResizeStop'\n | 'draggableHandle'\n | 'isDroppable'\n | 'onDropDragOver'\n | 'onDrop'\n | 'draggableCancel'\n> & {\n compactType?: CompactType;\n noOverlay?: boolean;\n};\n\nexport interface Settings {\n gridLayout?: ReactGridLayoutProps;\n theme?: string;\n isMobile?: boolean;\n // @deprecated as it's possibly mutable property use Dashkit overlayMenuItems property instead\n menu?: Array<MenuItem>;\n}\n\nexport type MenuItem = (typeof MenuItems)[keyof typeof MenuItems] | OverlayCustomControlItem;\n\nexport interface SettingsProps {\n autoupdateInterval: number;\n silentLoading: boolean;\n}\n\nexport interface ContextProps {\n [key: string]: any;\n}\n\nexport interface WidgetLayout extends AdditionalWidgetLayout {\n i: string;\n w: number;\n h: number;\n x: number;\n y: number;\n minW?: number;\n minH?: number;\n maxW?: number;\n maxH?: number;\n}\n"]}
|