@gravity-ui/dashkit 3.0.1
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/CHANGELOG.md +58 -0
- package/LICENSE +21 -0
- package/README.md +364 -0
- package/build/cjs/components/DashKit/DashKit.d.ts +50 -0
- package/build/cjs/components/DashKit/DashKit.js +70 -0
- package/build/cjs/components/DashKit/index.d.ts +1 -0
- package/build/cjs/components/DashKit/index.js +4 -0
- package/build/cjs/components/DashKitView/DashKitView.css +4 -0
- package/build/cjs/components/DashKitView/DashKitView.d.ts +3 -0
- package/build/cjs/components/DashKitView/DashKitView.js +23 -0
- package/build/cjs/components/GridItem/GridItem.css +83 -0
- package/build/cjs/components/GridItem/GridItem.d.ts +3 -0
- package/build/cjs/components/GridItem/GridItem.js +70 -0
- package/build/cjs/components/GridLayout/GridLayout.d.ts +25 -0
- package/build/cjs/components/GridLayout/GridLayout.js +89 -0
- package/build/cjs/components/Item/Item.css +19 -0
- package/build/cjs/components/Item/Item.d.ts +67 -0
- package/build/cjs/components/Item/Item.js +23 -0
- package/build/cjs/components/MobileLayout/MobileLayout.css +10 -0
- package/build/cjs/components/MobileLayout/MobileLayout.d.ts +16 -0
- package/build/cjs/components/MobileLayout/MobileLayout.js +54 -0
- package/build/cjs/components/MobileLayout/helpers.d.ts +3 -0
- package/build/cjs/components/MobileLayout/helpers.js +32 -0
- package/build/cjs/components/OverlayControls/OverlayControls.css +28 -0
- package/build/cjs/components/OverlayControls/OverlayControls.d.ts +54 -0
- package/build/cjs/components/OverlayControls/OverlayControls.js +212 -0
- package/build/cjs/components/index.d.ts +1 -0
- package/build/cjs/components/index.js +4 -0
- package/build/cjs/constants/common.d.ts +7 -0
- package/build/cjs/constants/common.js +10 -0
- package/build/cjs/constants/index.d.ts +1 -0
- package/build/cjs/constants/index.js +4 -0
- package/build/cjs/context/DashKitContext.d.ts +2 -0
- package/build/cjs/context/DashKitContext.js +7 -0
- package/build/cjs/hocs/prepareItem.d.ts +66 -0
- package/build/cjs/hocs/prepareItem.js +66 -0
- package/build/cjs/hocs/withContext.d.ts +165 -0
- package/build/cjs/hocs/withContext.js +203 -0
- package/build/cjs/hooks/useCalcLayout.d.ts +13 -0
- package/build/cjs/hooks/useCalcLayout.js +31 -0
- package/build/cjs/i18n/en.json +8 -0
- package/build/cjs/i18n/index.d.ts +4 -0
- package/build/cjs/i18n/index.js +19 -0
- package/build/cjs/i18n/ru.json +8 -0
- package/build/cjs/icons/CloseIcon.d.ts +2 -0
- package/build/cjs/icons/CloseIcon.js +10 -0
- package/build/cjs/icons/CogIcon.d.ts +2 -0
- package/build/cjs/icons/CogIcon.js +10 -0
- package/build/cjs/icons/CopyIcon.d.ts +2 -0
- package/build/cjs/icons/CopyIcon.js +10 -0
- package/build/cjs/icons/DeleteIcon.d.ts +2 -0
- package/build/cjs/icons/DeleteIcon.js +12 -0
- package/build/cjs/icons/DotsIcon.d.ts +2 -0
- package/build/cjs/icons/DotsIcon.js +10 -0
- package/build/cjs/icons/TickIcon.d.ts +2 -0
- package/build/cjs/icons/TickIcon.js +10 -0
- package/build/cjs/icons/WarningIcon.d.ts +2 -0
- package/build/cjs/icons/WarningIcon.js +10 -0
- package/build/cjs/index.d.ts +5 -0
- package/build/cjs/index.js +8 -0
- package/build/cjs/plugins/Text/Text.css +34 -0
- package/build/cjs/plugins/Text/Text.d.ts +52 -0
- package/build/cjs/plugins/Text/Text.js +119 -0
- package/build/cjs/plugins/Title/Title.css +24 -0
- package/build/cjs/plugins/Title/Title.d.ts +14 -0
- package/build/cjs/plugins/Title/Title.js +25 -0
- package/build/cjs/shared/constants/common.d.ts +2 -0
- package/build/cjs/shared/constants/common.js +5 -0
- package/build/cjs/shared/constants/index.d.ts +1 -0
- package/build/cjs/shared/constants/index.js +4 -0
- package/build/cjs/shared/index.d.ts +4 -0
- package/build/cjs/shared/index.js +7 -0
- package/build/cjs/shared/modules/__tests__/helpers.test.d.ts +1 -0
- package/build/cjs/shared/modules/__tests__/helpers.test.js +217 -0
- package/build/cjs/shared/modules/helpers.d.ts +42 -0
- package/build/cjs/shared/modules/helpers.js +172 -0
- package/build/cjs/shared/modules/index.d.ts +2 -0
- package/build/cjs/shared/modules/index.js +5 -0
- package/build/cjs/shared/modules/state-and-params.d.ts +16 -0
- package/build/cjs/shared/modules/state-and-params.js +94 -0
- package/build/cjs/shared/types/common.d.ts +5 -0
- package/build/cjs/shared/types/common.js +2 -0
- package/build/cjs/shared/types/config.d.ts +49 -0
- package/build/cjs/shared/types/config.js +2 -0
- package/build/cjs/shared/types/index.d.ts +4 -0
- package/build/cjs/shared/types/index.js +7 -0
- package/build/cjs/shared/types/plugin.d.ts +8 -0
- package/build/cjs/shared/types/plugin.js +2 -0
- package/build/cjs/shared/types/state-and-params.d.ts +22 -0
- package/build/cjs/shared/types/state-and-params.js +3 -0
- package/build/cjs/shared/units/__tests__/state-and-params.test.d.ts +241 -0
- package/build/cjs/shared/units/__tests__/state-and-params.test.js +299 -0
- package/build/cjs/shared/units/datalens/index.d.ts +5 -0
- package/build/cjs/shared/units/datalens/index.js +25 -0
- package/build/cjs/shared/units/index.d.ts +1 -0
- package/build/cjs/shared/units/index.js +4 -0
- package/build/cjs/typings/common.d.ts +32 -0
- package/build/cjs/typings/common.js +2 -0
- package/build/cjs/typings/config.d.ts +7 -0
- package/build/cjs/typings/config.js +2 -0
- package/build/cjs/typings/global.d.ts +7 -0
- package/build/cjs/typings/index.d.ts +3 -0
- package/build/cjs/typings/index.js +6 -0
- package/build/cjs/typings/plugin.d.ts +39 -0
- package/build/cjs/typings/plugin.js +2 -0
- package/build/cjs/utils/__tests__/mock.test.d.ts +1 -0
- package/build/cjs/utils/__tests__/mock.test.js +8 -0
- package/build/cjs/utils/configure.d.ts +9 -0
- package/build/cjs/utils/configure.js +21 -0
- package/build/cjs/utils/i18n.d.ts +7 -0
- package/build/cjs/utils/i18n.js +13 -0
- package/build/cjs/utils/index.d.ts +3 -0
- package/build/cjs/utils/index.js +6 -0
- package/build/cjs/utils/register-manager.d.ts +46 -0
- package/build/cjs/utils/register-manager.js +58 -0
- package/build/cjs/utils/update-manager.d.ts +37 -0
- package/build/cjs/utils/update-manager.js +274 -0
- package/build/esm/components/DashKit/DashKit.d.ts +50 -0
- package/build/esm/components/DashKit/DashKit.js +65 -0
- package/build/esm/components/DashKit/index.d.ts +1 -0
- package/build/esm/components/DashKit/index.js +1 -0
- package/build/esm/components/DashKitView/DashKitView.css +4 -0
- package/build/esm/components/DashKitView/DashKitView.d.ts +3 -0
- package/build/esm/components/DashKitView/DashKitView.js +21 -0
- package/build/esm/components/GridItem/GridItem.css +83 -0
- package/build/esm/components/GridItem/GridItem.d.ts +3 -0
- package/build/esm/components/GridItem/GridItem.js +68 -0
- package/build/esm/components/GridLayout/GridLayout.d.ts +25 -0
- package/build/esm/components/GridLayout/GridLayout.js +85 -0
- package/build/esm/components/Item/Item.css +19 -0
- package/build/esm/components/Item/Item.d.ts +67 -0
- package/build/esm/components/Item/Item.js +21 -0
- package/build/esm/components/MobileLayout/MobileLayout.css +10 -0
- package/build/esm/components/MobileLayout/MobileLayout.d.ts +16 -0
- package/build/esm/components/MobileLayout/MobileLayout.js +51 -0
- package/build/esm/components/MobileLayout/helpers.d.ts +3 -0
- package/build/esm/components/MobileLayout/helpers.js +28 -0
- package/build/esm/components/OverlayControls/OverlayControls.css +28 -0
- package/build/esm/components/OverlayControls/OverlayControls.d.ts +55 -0
- package/build/esm/components/OverlayControls/OverlayControls.js +209 -0
- package/build/esm/components/index.d.ts +1 -0
- package/build/esm/components/index.js +1 -0
- package/build/esm/constants/common.d.ts +7 -0
- package/build/esm/constants/common.js +7 -0
- package/build/esm/constants/index.d.ts +1 -0
- package/build/esm/constants/index.js +1 -0
- package/build/esm/context/DashKitContext.d.ts +2 -0
- package/build/esm/context/DashKitContext.js +3 -0
- package/build/esm/hocs/prepareItem.d.ts +66 -0
- package/build/esm/hocs/prepareItem.js +61 -0
- package/build/esm/hocs/withContext.d.ts +165 -0
- package/build/esm/hocs/withContext.js +198 -0
- package/build/esm/hooks/useCalcLayout.d.ts +13 -0
- package/build/esm/hooks/useCalcLayout.js +26 -0
- package/build/esm/i18n/en.json +8 -0
- package/build/esm/i18n/index.d.ts +4 -0
- package/build/esm/i18n/index.js +15 -0
- package/build/esm/i18n/ru.json +8 -0
- package/build/esm/icons/CloseIcon.d.ts +2 -0
- package/build/esm/icons/CloseIcon.js +5 -0
- package/build/esm/icons/CogIcon.d.ts +2 -0
- package/build/esm/icons/CogIcon.js +5 -0
- package/build/esm/icons/CopyIcon.d.ts +2 -0
- package/build/esm/icons/CopyIcon.js +5 -0
- package/build/esm/icons/DeleteIcon.d.ts +2 -0
- package/build/esm/icons/DeleteIcon.js +7 -0
- package/build/esm/icons/DotsIcon.d.ts +2 -0
- package/build/esm/icons/DotsIcon.js +5 -0
- package/build/esm/icons/TickIcon.d.ts +2 -0
- package/build/esm/icons/TickIcon.js +5 -0
- package/build/esm/icons/WarningIcon.d.ts +2 -0
- package/build/esm/icons/WarningIcon.js +5 -0
- package/build/esm/index.d.ts +5 -0
- package/build/esm/index.js +5 -0
- package/build/esm/plugins/Text/Text.css +34 -0
- package/build/esm/plugins/Text/Text.d.ts +53 -0
- package/build/esm/plugins/Text/Text.js +115 -0
- package/build/esm/plugins/Title/Title.css +24 -0
- package/build/esm/plugins/Title/Title.d.ts +15 -0
- package/build/esm/plugins/Title/Title.js +21 -0
- package/build/esm/shared/constants/common.d.ts +2 -0
- package/build/esm/shared/constants/common.js +2 -0
- package/build/esm/shared/constants/index.d.ts +1 -0
- package/build/esm/shared/constants/index.js +1 -0
- package/build/esm/shared/index.d.ts +4 -0
- package/build/esm/shared/index.js +4 -0
- package/build/esm/shared/modules/__tests__/helpers.test.d.ts +1 -0
- package/build/esm/shared/modules/__tests__/helpers.test.js +215 -0
- package/build/esm/shared/modules/helpers.d.ts +42 -0
- package/build/esm/shared/modules/helpers.js +157 -0
- package/build/esm/shared/modules/index.d.ts +2 -0
- package/build/esm/shared/modules/index.js +2 -0
- package/build/esm/shared/modules/state-and-params.d.ts +16 -0
- package/build/esm/shared/modules/state-and-params.js +87 -0
- package/build/esm/shared/types/common.d.ts +5 -0
- package/build/esm/shared/types/common.js +1 -0
- package/build/esm/shared/types/config.d.ts +49 -0
- package/build/esm/shared/types/config.js +1 -0
- package/build/esm/shared/types/index.d.ts +4 -0
- package/build/esm/shared/types/index.js +4 -0
- package/build/esm/shared/types/plugin.d.ts +8 -0
- package/build/esm/shared/types/plugin.js +1 -0
- package/build/esm/shared/types/state-and-params.d.ts +22 -0
- package/build/esm/shared/types/state-and-params.js +1 -0
- package/build/esm/shared/units/__tests__/state-and-params.test.d.ts +241 -0
- package/build/esm/shared/units/__tests__/state-and-params.test.js +295 -0
- package/build/esm/shared/units/datalens/index.d.ts +5 -0
- package/build/esm/shared/units/datalens/index.js +20 -0
- package/build/esm/shared/units/index.d.ts +1 -0
- package/build/esm/shared/units/index.js +1 -0
- package/build/esm/typings/common.d.ts +32 -0
- package/build/esm/typings/common.js +1 -0
- package/build/esm/typings/config.d.ts +7 -0
- package/build/esm/typings/config.js +1 -0
- package/build/esm/typings/global.d.ts +7 -0
- package/build/esm/typings/index.d.ts +3 -0
- package/build/esm/typings/index.js +3 -0
- package/build/esm/typings/plugin.d.ts +39 -0
- package/build/esm/typings/plugin.js +1 -0
- package/build/esm/utils/__tests__/mock.test.d.ts +1 -0
- package/build/esm/utils/__tests__/mock.test.js +8 -0
- package/build/esm/utils/configure.d.ts +9 -0
- package/build/esm/utils/configure.js +15 -0
- package/build/esm/utils/i18n.d.ts +7 -0
- package/build/esm/utils/i18n.js +9 -0
- package/build/esm/utils/index.d.ts +3 -0
- package/build/esm/utils/index.js +3 -0
- package/build/esm/utils/register-manager.d.ts +46 -0
- package/build/esm/utils/register-manager.js +54 -0
- package/build/esm/utils/update-manager.d.ts +37 -0
- package/build/esm/utils/update-manager.js +269 -0
- package/package.json +107 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { OverlayCustomControlItem } from '../components/OverlayControls/OverlayControls';
|
|
2
|
+
import { MenuItems } from '../constants';
|
|
3
|
+
export interface Settings {
|
|
4
|
+
gridLayout?: {
|
|
5
|
+
margin?: [number, number];
|
|
6
|
+
rowHeight?: number;
|
|
7
|
+
cols?: number;
|
|
8
|
+
containerPadding?: [number, number];
|
|
9
|
+
};
|
|
10
|
+
theme?: string;
|
|
11
|
+
isMobile?: boolean;
|
|
12
|
+
menu?: Array<MenuItem>;
|
|
13
|
+
}
|
|
14
|
+
export declare type MenuItem = typeof MenuItems[keyof typeof MenuItems] | OverlayCustomControlItem;
|
|
15
|
+
export interface SettingsProps {
|
|
16
|
+
autoupdateInterval: number;
|
|
17
|
+
silentLoading: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface ContextProps {
|
|
20
|
+
[key: string]: any;
|
|
21
|
+
}
|
|
22
|
+
export interface WidgetLayout {
|
|
23
|
+
i: string;
|
|
24
|
+
w: number;
|
|
25
|
+
h: number;
|
|
26
|
+
x: number;
|
|
27
|
+
y: number;
|
|
28
|
+
minW: number;
|
|
29
|
+
minH: number;
|
|
30
|
+
maxW?: number;
|
|
31
|
+
maxH?: number;
|
|
32
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./common"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./plugin"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./config"), exports);
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ContextProps, SettingsProps, WidgetLayout } from './common';
|
|
3
|
+
import { StringParams, ConfigItem, ItemState, ItemStateAndParams, PluginBase } from '../shared';
|
|
4
|
+
import { RegisterManagerGridLayout } from '../utils/register-manager';
|
|
5
|
+
export interface PluginWidgetProps {
|
|
6
|
+
id: string;
|
|
7
|
+
editMode: boolean;
|
|
8
|
+
params: StringParams;
|
|
9
|
+
state: ItemState;
|
|
10
|
+
onStateAndParamsChange: (stateAndParams: ItemStateAndParams) => void;
|
|
11
|
+
width: number;
|
|
12
|
+
height: number;
|
|
13
|
+
data: ConfigItem['data'];
|
|
14
|
+
defaults: ConfigItem['defaults'];
|
|
15
|
+
namespace: ConfigItem['namespace'];
|
|
16
|
+
settings: SettingsProps;
|
|
17
|
+
context: ContextProps;
|
|
18
|
+
layout: WidgetLayout[];
|
|
19
|
+
gridLayout: RegisterManagerGridLayout;
|
|
20
|
+
adjustWidgetLayout: (data: {
|
|
21
|
+
widgetId: string;
|
|
22
|
+
needSetDefault?: boolean;
|
|
23
|
+
adjustedWidgetLayout?: WidgetLayout;
|
|
24
|
+
}) => void;
|
|
25
|
+
}
|
|
26
|
+
export interface PluginDefaultLayout {
|
|
27
|
+
w?: number;
|
|
28
|
+
h?: number;
|
|
29
|
+
x?: number;
|
|
30
|
+
y?: number;
|
|
31
|
+
minW?: number;
|
|
32
|
+
maxW?: number;
|
|
33
|
+
minH?: number;
|
|
34
|
+
maxH?: number;
|
|
35
|
+
}
|
|
36
|
+
export interface Plugin<P extends PluginWidgetProps = any> extends PluginBase {
|
|
37
|
+
defaultLayout?: PluginDefaultLayout;
|
|
38
|
+
renderer: (props: P, forwardedRef: React.RefObject<any>) => React.ReactNode;
|
|
39
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare type Lang = 'ru' | 'en';
|
|
2
|
+
interface Config {
|
|
3
|
+
lang?: Lang;
|
|
4
|
+
}
|
|
5
|
+
declare type Subscriber = (config: Config) => void;
|
|
6
|
+
export declare const configure: (newConfig: Config) => void;
|
|
7
|
+
export declare const subscribeConfigure: (sub: Subscriber) => () => void;
|
|
8
|
+
export declare const getConfig: () => Config;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getConfig = exports.subscribeConfigure = exports.configure = void 0;
|
|
4
|
+
let subs = [];
|
|
5
|
+
const config = {};
|
|
6
|
+
const configure = (newConfig) => {
|
|
7
|
+
Object.assign(config, newConfig);
|
|
8
|
+
subs.forEach((sub) => {
|
|
9
|
+
sub(config);
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
exports.configure = configure;
|
|
13
|
+
const subscribeConfigure = (sub) => {
|
|
14
|
+
subs.push(sub);
|
|
15
|
+
return () => {
|
|
16
|
+
subs = subs.filter((item) => item !== sub);
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
exports.subscribeConfigure = subscribeConfigure;
|
|
20
|
+
const getConfig = () => config;
|
|
21
|
+
exports.getConfig = getConfig;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setLang = void 0;
|
|
4
|
+
const configure_1 = require("./configure");
|
|
5
|
+
/**
|
|
6
|
+
* Preferred method to set language.
|
|
7
|
+
* @param lang
|
|
8
|
+
* @return {void}
|
|
9
|
+
*/
|
|
10
|
+
const setLang = (lang) => {
|
|
11
|
+
(0, configure_1.configure)({ lang: lang });
|
|
12
|
+
};
|
|
13
|
+
exports.setLang = setLang;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./i18n"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./register-manager"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./update-manager"), exports);
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Plugin, PluginDefaultLayout, Settings } from '../typings';
|
|
2
|
+
interface RegisterManagerDefaultLayout {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
w: number;
|
|
6
|
+
h: number;
|
|
7
|
+
minW: number;
|
|
8
|
+
minH: number;
|
|
9
|
+
}
|
|
10
|
+
export declare type RegisterManagerPluginLayout = RegisterManagerDefaultLayout & PluginDefaultLayout;
|
|
11
|
+
export interface RegisterManagerPlugin extends Omit<Plugin, 'defaultLayout'> {
|
|
12
|
+
defaultLayout: RegisterManagerDefaultLayout & Plugin['defaultLayout'];
|
|
13
|
+
}
|
|
14
|
+
export declare type RegisterManagerGridLayout = {
|
|
15
|
+
margin: [number, number];
|
|
16
|
+
rowHeight: number;
|
|
17
|
+
cols: number;
|
|
18
|
+
containerPadding: [number, number];
|
|
19
|
+
} & Settings['gridLayout'];
|
|
20
|
+
export declare type RegisterManagerSettings = {
|
|
21
|
+
theme: string;
|
|
22
|
+
} & Settings;
|
|
23
|
+
export declare class RegisterManager {
|
|
24
|
+
private _items;
|
|
25
|
+
private _defaultLayout;
|
|
26
|
+
private _gridLayout;
|
|
27
|
+
private _settings;
|
|
28
|
+
registerPlugin(plugin: Plugin): void;
|
|
29
|
+
setSettings(settings?: Settings): void;
|
|
30
|
+
get settings(): RegisterManagerSettings;
|
|
31
|
+
get gridLayout(): {
|
|
32
|
+
margin: [number, number];
|
|
33
|
+
rowHeight: number;
|
|
34
|
+
cols: number;
|
|
35
|
+
containerPadding: [number, number];
|
|
36
|
+
} & {
|
|
37
|
+
margin?: [number, number] | undefined;
|
|
38
|
+
rowHeight?: number | undefined;
|
|
39
|
+
cols?: number | undefined;
|
|
40
|
+
containerPadding?: [number, number] | undefined;
|
|
41
|
+
};
|
|
42
|
+
getPlugins(): RegisterManagerPlugin[];
|
|
43
|
+
getItem(type: string): RegisterManagerPlugin;
|
|
44
|
+
check(type: string): boolean;
|
|
45
|
+
}
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RegisterManager = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
class RegisterManager {
|
|
6
|
+
constructor() {
|
|
7
|
+
this._items = {};
|
|
8
|
+
this._defaultLayout = {
|
|
9
|
+
x: 0,
|
|
10
|
+
y: Infinity,
|
|
11
|
+
w: Infinity,
|
|
12
|
+
h: 4,
|
|
13
|
+
minW: 4,
|
|
14
|
+
minH: 2,
|
|
15
|
+
};
|
|
16
|
+
this._gridLayout = {
|
|
17
|
+
rowHeight: 18,
|
|
18
|
+
cols: 36,
|
|
19
|
+
margin: [2, 2],
|
|
20
|
+
containerPadding: [0, 0],
|
|
21
|
+
};
|
|
22
|
+
this._settings = {
|
|
23
|
+
theme: 'default',
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
registerPlugin(plugin) {
|
|
27
|
+
const { type, defaultLayout = {} } = plugin, item = tslib_1.__rest(plugin, ["type", "defaultLayout"]);
|
|
28
|
+
if (type in this._items) {
|
|
29
|
+
throw new Error(`DashKit.registerPlugins: type ${type} уже был зарегистрирован`);
|
|
30
|
+
}
|
|
31
|
+
if (typeof plugin.renderer !== 'function') {
|
|
32
|
+
throw new Error('DashKit.registerPlugins: renderer должна быть функцией');
|
|
33
|
+
}
|
|
34
|
+
this._items[type] = Object.assign(Object.assign({}, item), { type, defaultLayout: Object.assign(Object.assign({}, this._defaultLayout), defaultLayout) });
|
|
35
|
+
}
|
|
36
|
+
setSettings(settings = {}) {
|
|
37
|
+
Object.assign(this._settings, settings);
|
|
38
|
+
if (settings.gridLayout) {
|
|
39
|
+
this._gridLayout = Object.assign(Object.assign({}, this._gridLayout), settings.gridLayout);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
get settings() {
|
|
43
|
+
return this._settings;
|
|
44
|
+
}
|
|
45
|
+
get gridLayout() {
|
|
46
|
+
return this._gridLayout;
|
|
47
|
+
}
|
|
48
|
+
getPlugins() {
|
|
49
|
+
return Object.values(this._items);
|
|
50
|
+
}
|
|
51
|
+
getItem(type) {
|
|
52
|
+
return this._items[type];
|
|
53
|
+
}
|
|
54
|
+
check(type) {
|
|
55
|
+
return type in this._items;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.RegisterManager = RegisterManager;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Config, ConfigItem, ItemsStateAndParams, ItemStateAndParams } from '../shared';
|
|
2
|
+
import { AddConfigItem, WidgetLayout } from '../typings';
|
|
3
|
+
import { RegisterManagerPluginLayout } from './register-manager';
|
|
4
|
+
interface RemoveItemArg {
|
|
5
|
+
id: string;
|
|
6
|
+
config: Config;
|
|
7
|
+
itemsStateAndParams: ItemsStateAndParams;
|
|
8
|
+
}
|
|
9
|
+
interface ChangeStateAndParamsArg {
|
|
10
|
+
id: string;
|
|
11
|
+
config: Config;
|
|
12
|
+
itemsStateAndParams: ItemsStateAndParams;
|
|
13
|
+
stateAndParams: ItemStateAndParams;
|
|
14
|
+
}
|
|
15
|
+
export declare class UpdateManager {
|
|
16
|
+
static addItem({ item, namespace, layout, config, }: {
|
|
17
|
+
item: AddConfigItem;
|
|
18
|
+
namespace: string;
|
|
19
|
+
layout: RegisterManagerPluginLayout;
|
|
20
|
+
config: Config;
|
|
21
|
+
}): Config;
|
|
22
|
+
static editItem({ item, namespace, config, }: {
|
|
23
|
+
item: ConfigItem;
|
|
24
|
+
namespace: string;
|
|
25
|
+
config: Config;
|
|
26
|
+
}): Config;
|
|
27
|
+
static removeItem({ id, config, itemsStateAndParams }: RemoveItemArg): {
|
|
28
|
+
config: Config;
|
|
29
|
+
itemsStateAndParams: ItemsStateAndParams;
|
|
30
|
+
};
|
|
31
|
+
static updateLayout({ layout, config }: {
|
|
32
|
+
layout: WidgetLayout[];
|
|
33
|
+
config: Config;
|
|
34
|
+
}): Config;
|
|
35
|
+
static changeStateAndParams({ id: initiatorId, config, stateAndParams, itemsStateAndParams, }: ChangeStateAndParamsArg): ItemsStateAndParams;
|
|
36
|
+
}
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdateManager = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const immutability_helper_1 = tslib_1.__importStar(require("immutability-helper"));
|
|
6
|
+
const hashids_1 = tslib_1.__importDefault(require("hashids"));
|
|
7
|
+
const omit_1 = tslib_1.__importDefault(require("lodash/omit"));
|
|
8
|
+
const pick_1 = tslib_1.__importDefault(require("lodash/pick"));
|
|
9
|
+
const shared_1 = require("../shared");
|
|
10
|
+
const constants_1 = require("../constants");
|
|
11
|
+
(0, immutability_helper_1.extend)('$auto', (value, object) => (object ? (0, immutability_helper_1.default)(object, value) : (0, immutability_helper_1.default)({}, value)));
|
|
12
|
+
function removeItemVersion1({ id, config, itemsStateAndParams }) {
|
|
13
|
+
const itemIndex = config.items.findIndex((item) => item.id === id);
|
|
14
|
+
const removeItem = config.items[itemIndex];
|
|
15
|
+
const { defaults = {} } = removeItem;
|
|
16
|
+
const itemParamsKeys = Object.keys(defaults);
|
|
17
|
+
const getParams = (excludeId, items) => {
|
|
18
|
+
return Object.keys(items.reduce((acc, item) => {
|
|
19
|
+
if (item.id !== excludeId) {
|
|
20
|
+
Object.assign(acc, item.defaults);
|
|
21
|
+
}
|
|
22
|
+
return acc;
|
|
23
|
+
}, {}));
|
|
24
|
+
};
|
|
25
|
+
const allParamsKeys = getParams(id, config.items);
|
|
26
|
+
const allNamespaceParamsKeys = getParams(id, config.items.filter((item) => item.namespace === removeItem.namespace));
|
|
27
|
+
const uniqParamsKeys = itemParamsKeys.filter((key) => !allParamsKeys.includes(key));
|
|
28
|
+
const uniqNamespaceParamsKeys = itemParamsKeys.filter((key) => !allNamespaceParamsKeys.includes(key));
|
|
29
|
+
const withoutUniqItemsParams = Object.keys(itemsStateAndParams)
|
|
30
|
+
.filter((key) => key !== id)
|
|
31
|
+
.reduce((acc, key) => {
|
|
32
|
+
const { params } = itemsStateAndParams[key];
|
|
33
|
+
// в state из урла могут быть элементы, которых нет в config.items
|
|
34
|
+
const item = config.items.find((configItem) => configItem.id === key);
|
|
35
|
+
if (params && item) {
|
|
36
|
+
const { namespace } = item;
|
|
37
|
+
const currentUniqParamsKeys = namespace === removeItem.namespace ? uniqNamespaceParamsKeys : uniqParamsKeys;
|
|
38
|
+
const resultParams = (0, omit_1.default)(params, currentUniqParamsKeys);
|
|
39
|
+
if (Object.keys(params).length !== Object.keys(resultParams).length) {
|
|
40
|
+
acc[key] = {
|
|
41
|
+
params: {
|
|
42
|
+
$set: resultParams,
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return acc;
|
|
48
|
+
}, {});
|
|
49
|
+
const newItemsStateAndParams = (0, immutability_helper_1.default)(itemsStateAndParams, Object.assign({ $unset: [id] }, withoutUniqItemsParams));
|
|
50
|
+
const connections = config.connections.filter(({ from, to }) => id !== from && id !== to);
|
|
51
|
+
const newConfig = (0, immutability_helper_1.default)(config, {
|
|
52
|
+
items: {
|
|
53
|
+
$splice: [[itemIndex, 1]],
|
|
54
|
+
},
|
|
55
|
+
layout: {
|
|
56
|
+
$splice: [[itemIndex, 1]],
|
|
57
|
+
},
|
|
58
|
+
connections: {
|
|
59
|
+
$set: connections,
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
return {
|
|
63
|
+
config: newConfig,
|
|
64
|
+
itemsStateAndParams: newItemsStateAndParams,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
function getAllowableChangedParams(item, stateAndParams, itemsStateAndParams) {
|
|
68
|
+
var _a;
|
|
69
|
+
let allowedParams = {};
|
|
70
|
+
if ((0, shared_1.isItemWithTabs)(item)) {
|
|
71
|
+
let tab;
|
|
72
|
+
if ('state' in stateAndParams && ((_a = stateAndParams.state) === null || _a === void 0 ? void 0 : _a.tabId)) {
|
|
73
|
+
tab = item.data.tabs.find(({ id }) => { var _a; return id === ((_a = stateAndParams.state) === null || _a === void 0 ? void 0 : _a.tabId); });
|
|
74
|
+
}
|
|
75
|
+
if (!tab) {
|
|
76
|
+
const tabId = (0, shared_1.resolveItemInnerId)({ item, itemsStateAndParams });
|
|
77
|
+
tab = item.data.tabs.find(({ id }) => id === tabId);
|
|
78
|
+
}
|
|
79
|
+
allowedParams = (0, pick_1.default)(stateAndParams.params, Object.keys((tab === null || tab === void 0 ? void 0 : tab.params) || {}));
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
allowedParams = (0, pick_1.default)(stateAndParams.params, Object.keys(item.defaults || {}));
|
|
83
|
+
}
|
|
84
|
+
if (Object.keys(allowedParams).length !== Object.keys(stateAndParams.params || {}).length) {
|
|
85
|
+
console.warn('Параметры, которых нет в defaults, будут проигнорированы!');
|
|
86
|
+
}
|
|
87
|
+
return allowedParams;
|
|
88
|
+
}
|
|
89
|
+
function changeStateAndParamsVersion1({ id: initiatorId, config, stateAndParams, itemsStateAndParams, }) {
|
|
90
|
+
const hasState = 'state' in stateAndParams;
|
|
91
|
+
const { aliases } = config;
|
|
92
|
+
if ('params' in stateAndParams) {
|
|
93
|
+
const initiatorItem = config.items.find(({ id }) => id === initiatorId);
|
|
94
|
+
const allowableParams = getAllowableChangedParams(initiatorItem, stateAndParams, itemsStateAndParams);
|
|
95
|
+
const allowableParamsWithAliases = (0, shared_1.mergeParamsWithAliases)({
|
|
96
|
+
aliases,
|
|
97
|
+
namespace: initiatorItem.namespace,
|
|
98
|
+
params: allowableParams,
|
|
99
|
+
});
|
|
100
|
+
const ignoresInitiatorIds = config.connections
|
|
101
|
+
.filter(({ to }) => to === initiatorId)
|
|
102
|
+
.map(({ from }) => from);
|
|
103
|
+
const updateIds = config.items
|
|
104
|
+
.filter((item) => item.namespace === initiatorItem.namespace &&
|
|
105
|
+
!ignoresInitiatorIds.includes(item.id) &&
|
|
106
|
+
(!(0, shared_1.isItemWithTabs)(item) ||
|
|
107
|
+
((0, shared_1.isItemWithTabs)(item) &&
|
|
108
|
+
item.data.tabs.every(({ id }) => !ignoresInitiatorIds.includes(id)))))
|
|
109
|
+
.map(({ id }) => id);
|
|
110
|
+
return (0, immutability_helper_1.default)(itemsStateAndParams, updateIds.reduce((acc, currentId) => {
|
|
111
|
+
var _a;
|
|
112
|
+
acc[currentId] = {
|
|
113
|
+
$auto: Object.assign({ params: {
|
|
114
|
+
[((_a = itemsStateAndParams[currentId]) === null || _a === void 0 ? void 0 : _a.params)
|
|
115
|
+
? '$merge'
|
|
116
|
+
: '$set']: allowableParamsWithAliases,
|
|
117
|
+
} }, (hasState && currentId === initiatorId
|
|
118
|
+
? { state: { $set: stateAndParams.state } }
|
|
119
|
+
: {})),
|
|
120
|
+
};
|
|
121
|
+
return acc;
|
|
122
|
+
}, {}));
|
|
123
|
+
}
|
|
124
|
+
else if (hasState) {
|
|
125
|
+
return (0, immutability_helper_1.default)(itemsStateAndParams, {
|
|
126
|
+
[initiatorId]: {
|
|
127
|
+
$auto: {
|
|
128
|
+
state: { $set: stateAndParams.state },
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
return itemsStateAndParams;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
class UpdateManager {
|
|
138
|
+
// TODO: проверять, что id нового элемента уникальный
|
|
139
|
+
static addItem({ item, namespace = constants_1.DEFAULT_NAMESPACE, layout, config, }) {
|
|
140
|
+
const layoutY = Math.max(0, ...config.layout.map(({ h, y }) => h + y));
|
|
141
|
+
const saveDefaultLayout = (0, pick_1.default)(layout, ['h', 'w', 'x', 'y']);
|
|
142
|
+
const hashids = new hashids_1.default(config.salt);
|
|
143
|
+
let counter = config.counter;
|
|
144
|
+
const resultData = (0, shared_1.isItemWithTabs)(item)
|
|
145
|
+
? Object.assign(Object.assign({}, item.data), { tabs: item.data.tabs.map((tab) => tab.id ? tab : Object.assign(Object.assign({}, tab), { id: hashids.encode(++counter) })) }) : item.data;
|
|
146
|
+
const newItem = Object.assign(Object.assign({}, item), { id: hashids.encode(++counter), data: resultData, namespace });
|
|
147
|
+
return (0, immutability_helper_1.default)(config, {
|
|
148
|
+
items: { $push: [newItem] },
|
|
149
|
+
layout: { $push: [Object.assign(Object.assign({}, saveDefaultLayout), { y: layoutY, i: newItem.id })] },
|
|
150
|
+
counter: { $set: counter },
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
static editItem({ item, namespace = constants_1.DEFAULT_NAMESPACE, config, }) {
|
|
154
|
+
const hashids = new hashids_1.default(config.salt);
|
|
155
|
+
let counter = config.counter;
|
|
156
|
+
const itemIndex = config.items.findIndex(({ id }) => item.id === id);
|
|
157
|
+
const resultData = (0, shared_1.isItemWithTabs)(item)
|
|
158
|
+
? Object.assign(Object.assign({}, item.data), { tabs: item.data.tabs.map((tab) => tab.id ? tab : Object.assign(Object.assign({}, tab), { id: hashids.encode(++counter) })) }) : item.data;
|
|
159
|
+
return (0, immutability_helper_1.default)(config, {
|
|
160
|
+
items: { [itemIndex]: { $set: Object.assign(Object.assign({}, item), { data: resultData, namespace }) } },
|
|
161
|
+
counter: { $set: counter },
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
static removeItem({ id, config, itemsStateAndParams = {} }) {
|
|
165
|
+
if ((0, shared_1.getCurrentVersion)(itemsStateAndParams) === 1) {
|
|
166
|
+
return removeItemVersion1({ id, config, itemsStateAndParams });
|
|
167
|
+
}
|
|
168
|
+
const itemIndex = config.items.findIndex((item) => item.id === id);
|
|
169
|
+
const item = config.items[itemIndex];
|
|
170
|
+
const itemIds = (0, shared_1.isItemWithTabs)(item)
|
|
171
|
+
? [id].concat(item.data.tabs.map((tab) => tab.id))
|
|
172
|
+
: [id];
|
|
173
|
+
const connections = config.connections.filter(({ from, to }) => !itemIds.includes(from) && !itemIds.includes(to));
|
|
174
|
+
return {
|
|
175
|
+
config: (0, immutability_helper_1.default)(config, {
|
|
176
|
+
items: {
|
|
177
|
+
$splice: [[itemIndex, 1]],
|
|
178
|
+
},
|
|
179
|
+
layout: {
|
|
180
|
+
$splice: [[itemIndex, 1]],
|
|
181
|
+
},
|
|
182
|
+
connections: {
|
|
183
|
+
$set: connections,
|
|
184
|
+
},
|
|
185
|
+
}),
|
|
186
|
+
itemsStateAndParams: (0, immutability_helper_1.default)(itemsStateAndParams, {
|
|
187
|
+
$unset: [id],
|
|
188
|
+
[shared_1.META_KEY]: {
|
|
189
|
+
$set: (0, shared_1.deleteFromQueue)({
|
|
190
|
+
id,
|
|
191
|
+
itemsStateAndParams,
|
|
192
|
+
config,
|
|
193
|
+
}),
|
|
194
|
+
},
|
|
195
|
+
}),
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
static updateLayout({ layout, config }) {
|
|
199
|
+
return (0, immutability_helper_1.default)(config, {
|
|
200
|
+
layout: {
|
|
201
|
+
$set: layout.map(({ x, y, w, h, i }) => ({ x, y, w, h, i })),
|
|
202
|
+
},
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
static changeStateAndParams({ id: initiatorId, config, stateAndParams, itemsStateAndParams, }) {
|
|
206
|
+
var _a, _b;
|
|
207
|
+
if ((0, shared_1.getCurrentVersion)(itemsStateAndParams) === 1) {
|
|
208
|
+
return changeStateAndParamsVersion1({
|
|
209
|
+
id: initiatorId,
|
|
210
|
+
config,
|
|
211
|
+
stateAndParams,
|
|
212
|
+
itemsStateAndParams,
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
const hasState = 'state' in stateAndParams;
|
|
216
|
+
const { items } = config;
|
|
217
|
+
const itemsIds = items.map(({ id: itemId }) => itemId);
|
|
218
|
+
const itemsStateAndParamsIds = Object.keys((0, omit_1.default)(itemsStateAndParams, [shared_1.META_KEY]));
|
|
219
|
+
const unusedIds = itemsStateAndParamsIds.filter((id) => !itemsIds.includes(id));
|
|
220
|
+
const initiatorItem = items.find(({ id }) => id === initiatorId);
|
|
221
|
+
const newTabId = (_a = stateAndParams.state) === null || _a === void 0 ? void 0 : _a.tabId;
|
|
222
|
+
const isTabSwitched = (0, shared_1.isItemWithTabs)(initiatorItem) && Boolean(newTabId);
|
|
223
|
+
const currentMeta = (0, shared_1.getItemsStateAndParamsMeta)(itemsStateAndParams);
|
|
224
|
+
if ('params' in stateAndParams) {
|
|
225
|
+
const allowableParams = getAllowableChangedParams(initiatorItem, stateAndParams, itemsStateAndParams);
|
|
226
|
+
const tabId = (0, shared_1.isItemWithTabs)(initiatorItem)
|
|
227
|
+
? newTabId || (0, shared_1.resolveItemInnerId)({ item: initiatorItem, itemsStateAndParams })
|
|
228
|
+
: undefined;
|
|
229
|
+
const meta = (0, shared_1.addToQueue)({ id: initiatorId, tabId, config, itemsStateAndParams });
|
|
230
|
+
let commandUpdateParams = ((_b = itemsStateAndParams[initiatorId]) === null || _b === void 0 ? void 0 : _b.params)
|
|
231
|
+
? '$merge'
|
|
232
|
+
: '$set';
|
|
233
|
+
if (isTabSwitched) {
|
|
234
|
+
commandUpdateParams = '$set';
|
|
235
|
+
}
|
|
236
|
+
return (0, immutability_helper_1.default)(itemsStateAndParams, {
|
|
237
|
+
$unset: unusedIds,
|
|
238
|
+
[initiatorId]: {
|
|
239
|
+
$auto: Object.assign({ params: {
|
|
240
|
+
[commandUpdateParams]: allowableParams,
|
|
241
|
+
} }, (hasState ? { state: { $set: stateAndParams.state } } : {})),
|
|
242
|
+
},
|
|
243
|
+
[shared_1.META_KEY]: { $set: meta },
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
else if (hasState) {
|
|
247
|
+
let metaSpec = {};
|
|
248
|
+
if (currentMeta && isTabSwitched) {
|
|
249
|
+
metaSpec = {
|
|
250
|
+
[shared_1.META_KEY]: {
|
|
251
|
+
$set: (0, shared_1.deleteFromQueue)({
|
|
252
|
+
id: initiatorId,
|
|
253
|
+
itemsStateAndParams,
|
|
254
|
+
config,
|
|
255
|
+
}),
|
|
256
|
+
},
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
return (0, immutability_helper_1.default)(itemsStateAndParams, Object.assign({ $unset: unusedIds, [initiatorId]: {
|
|
260
|
+
$auto: Object.assign({ state: { $set: stateAndParams.state } }, (isTabSwitched ? { $unset: ['params'] } : {})),
|
|
261
|
+
} }, (currentMeta
|
|
262
|
+
? metaSpec
|
|
263
|
+
: { [shared_1.META_KEY]: { $set: (0, shared_1.getInitialItemsStateAndParamsMeta)() } })));
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
return (0, immutability_helper_1.default)(itemsStateAndParams, Object.assign({ $unset: unusedIds }, (currentMeta
|
|
267
|
+
? {}
|
|
268
|
+
: {
|
|
269
|
+
[shared_1.META_KEY]: { $set: (0, shared_1.getInitialItemsStateAndParamsMeta)() },
|
|
270
|
+
})));
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
exports.UpdateManager = UpdateManager;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import GridLayout from '../GridLayout/GridLayout';
|
|
3
|
+
import { SetConfigItem, Settings, SettingsProps, ContextProps, Plugin } from '../../typings';
|
|
4
|
+
import { GlobalParams, Config, ConfigItem, ItemsStateAndParams } from '../../shared';
|
|
5
|
+
import { OverlayControlItem } from '../OverlayControls/OverlayControls';
|
|
6
|
+
interface DashKitGeneralProps {
|
|
7
|
+
config: Config;
|
|
8
|
+
editMode: boolean;
|
|
9
|
+
}
|
|
10
|
+
interface DashKitDefaultProps {
|
|
11
|
+
onItemEdit: (item: ConfigItem) => void;
|
|
12
|
+
onChange: (data: {
|
|
13
|
+
config: Config;
|
|
14
|
+
itemsStateAndParams: ItemsStateAndParams;
|
|
15
|
+
}) => void;
|
|
16
|
+
defaultGlobalParams: GlobalParams;
|
|
17
|
+
globalParams: GlobalParams;
|
|
18
|
+
itemsStateAndParams: ItemsStateAndParams;
|
|
19
|
+
settings: SettingsProps;
|
|
20
|
+
context: ContextProps;
|
|
21
|
+
overlayControls?: Record<string, OverlayControlItem[]>;
|
|
22
|
+
noOverlay?: boolean;
|
|
23
|
+
draggableHandleClassName?: string;
|
|
24
|
+
_EXPERIMENTAL_preventDoubleCompact?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface DashKitProps extends DashKitGeneralProps, Partial<DashKitDefaultProps> {
|
|
27
|
+
}
|
|
28
|
+
declare type DashKitInnerProps = DashKitGeneralProps & DashKitDefaultProps;
|
|
29
|
+
export declare class DashKit extends React.PureComponent<DashKitInnerProps> {
|
|
30
|
+
static defaultProps: DashKitDefaultProps;
|
|
31
|
+
static registerPlugins(...plugins: Plugin[]): void;
|
|
32
|
+
static setSettings(settings: Settings): void;
|
|
33
|
+
static setItem({ item: setItem, namespace, config, }: {
|
|
34
|
+
item: SetConfigItem;
|
|
35
|
+
namespace?: string;
|
|
36
|
+
config: Config;
|
|
37
|
+
}): Config;
|
|
38
|
+
static removeItem({ id, config, itemsStateAndParams, }: {
|
|
39
|
+
id: string;
|
|
40
|
+
config: Config;
|
|
41
|
+
itemsStateAndParams: ItemsStateAndParams;
|
|
42
|
+
}): {
|
|
43
|
+
config: Config;
|
|
44
|
+
itemsStateAndParams: ItemsStateAndParams;
|
|
45
|
+
};
|
|
46
|
+
metaRef: React.RefObject<GridLayout>;
|
|
47
|
+
render(): JSX.Element;
|
|
48
|
+
getItemsMeta(): any;
|
|
49
|
+
}
|
|
50
|
+
export {};
|