@gravity-ui/dashkit 6.7.2 → 7.0.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 +59 -16
- package/build/cjs/components/ActionPanel/ActionPanel.css +48 -6
- package/build/cjs/components/ActionPanel/ActionPanel.d.ts +3 -1
- package/build/cjs/components/ActionPanel/ActionPanel.js +12 -1
- package/build/cjs/components/DashKit/DashKit.d.ts +2 -2
- package/build/cjs/components/DashKit/DashKit.js +1 -1
- package/build/cjs/components/DashKitView/DashKitView.js +2 -2
- package/build/cjs/components/GridItem/GridItem.css +24 -15
- package/build/cjs/components/GridItem/GridItem.d.ts +1 -1
- package/build/cjs/components/GridItem/GridItem.js +1 -1
- package/build/cjs/components/GridLayout/GridLayout.d.ts +1 -1
- package/build/cjs/components/GridLayout/GridLayout.js +3 -3
- package/build/cjs/components/Item/Item.css +2 -8
- package/build/cjs/components/Item/Item.d.ts +1 -0
- package/build/cjs/components/MobileLayout/MobileLayout.d.ts +1 -1
- package/build/cjs/components/MobileLayout/MobileLayout.js +2 -2
- package/build/cjs/components/OverlayControls/OverlayControls.d.ts +2 -2
- package/build/cjs/components/OverlayControls/OverlayControls.js +14 -13
- package/build/cjs/context/DashKitContext.d.ts +1 -1
- package/build/cjs/hocs/prepareItem.d.ts +1 -0
- package/build/cjs/hocs/prepareItem.js +1 -1
- package/build/cjs/hocs/withContext.js +2 -2
- package/build/cjs/i18n/index.d.ts +1 -4
- package/build/cjs/i18n/index.js +2 -13
- package/build/cjs/plugins/Text/Text.d.ts +1 -1
- package/build/cjs/plugins/Text/Text.js +3 -3
- package/build/cjs/plugins/Title/Title.d.ts +1 -1
- package/build/cjs/shared/modules/helpers.d.ts +1 -1
- package/build/cjs/shared/modules/helpers.js +1 -1
- package/build/cjs/shared/modules/state-and-params.d.ts +1 -1
- package/build/cjs/shared/units/datalens/index.d.ts +1 -1
- package/build/cjs/shared/units/datalens/index.js +1 -1
- package/build/cjs/typings/common.d.ts +1 -1
- package/build/cjs/typings/plugin.d.ts +2 -2
- package/build/cjs/utils/index.d.ts +0 -1
- package/build/cjs/utils/index.js +0 -1
- package/build/cjs/utils/register-manager.d.ts +1 -1
- package/build/cjs/utils/update-manager.d.ts +2 -2
- package/build/cjs/utils/update-manager.js +4 -2
- package/build/esm/components/ActionPanel/ActionPanel.css +48 -6
- package/build/esm/components/ActionPanel/ActionPanel.d.ts +3 -1
- package/build/esm/components/ActionPanel/ActionPanel.js +12 -1
- package/build/esm/components/DashKit/DashKit.d.ts +2 -2
- package/build/esm/components/DashKit/DashKit.js +1 -1
- package/build/esm/components/DashKitView/DashKitView.js +2 -2
- package/build/esm/components/GridItem/GridItem.css +24 -15
- package/build/esm/components/GridItem/GridItem.d.ts +1 -1
- package/build/esm/components/GridItem/GridItem.js +2 -2
- package/build/esm/components/GridLayout/GridLayout.d.ts +1 -1
- package/build/esm/components/GridLayout/GridLayout.js +4 -3
- package/build/esm/components/Item/Item.css +2 -8
- package/build/esm/components/Item/Item.d.ts +1 -0
- package/build/esm/components/MobileLayout/MobileLayout.d.ts +1 -1
- package/build/esm/components/MobileLayout/MobileLayout.js +3 -2
- package/build/esm/components/OverlayControls/OverlayControls.d.ts +2 -2
- package/build/esm/components/OverlayControls/OverlayControls.js +6 -5
- package/build/esm/context/DashKitContext.d.ts +1 -1
- package/build/esm/hocs/prepareItem.d.ts +1 -0
- package/build/esm/hocs/prepareItem.js +1 -1
- package/build/esm/hocs/withContext.js +2 -2
- package/build/esm/i18n/index.d.ts +1 -4
- package/build/esm/i18n/index.js +2 -13
- package/build/esm/plugins/Text/Text.d.ts +1 -1
- package/build/esm/plugins/Text/Text.js +2 -2
- package/build/esm/plugins/Title/Title.d.ts +1 -1
- package/build/esm/shared/modules/__tests__/uniq-id.test.js +1 -1
- package/build/esm/shared/modules/helpers.d.ts +1 -1
- package/build/esm/shared/modules/helpers.js +2 -2
- package/build/esm/shared/modules/state-and-params.d.ts +1 -1
- package/build/esm/shared/modules/state-and-params.js +1 -1
- package/build/esm/shared/units/datalens/index.d.ts +1 -1
- package/build/esm/shared/units/datalens/index.js +1 -1
- package/build/esm/typings/common.d.ts +1 -1
- package/build/esm/typings/plugin.d.ts +2 -2
- package/build/esm/utils/index.d.ts +0 -1
- package/build/esm/utils/index.js +0 -1
- package/build/esm/utils/register-manager.d.ts +1 -1
- package/build/esm/utils/update-manager.d.ts +2 -2
- package/build/esm/utils/update-manager.js +4 -2
- package/package.json +25 -19
- package/build/cjs/utils/configure.d.ts +0 -9
- package/build/cjs/utils/configure.js +0 -21
- package/build/cjs/utils/i18n.d.ts +0 -7
- package/build/cjs/utils/i18n.js +0 -13
- package/build/esm/utils/configure.d.ts +0 -9
- package/build/esm/utils/configure.js +0 -15
- package/build/esm/utils/i18n.d.ts +0 -7
- package/build/esm/utils/i18n.js +0 -9
package/README.md
CHANGED
|
@@ -57,24 +57,12 @@ interface DashKitProps {
|
|
|
57
57
|
|
|
58
58
|
Before using `DashKit` as a react component, it must be configured.
|
|
59
59
|
|
|
60
|
-
-
|
|
61
|
-
|
|
62
|
-
Used for setting the language of DashKit provided ui elements. Currently the languages supported are: ru, en.
|
|
60
|
+
- set language
|
|
63
61
|
|
|
64
62
|
```js
|
|
65
|
-
import {
|
|
66
|
-
|
|
67
|
-
setLang('en');
|
|
68
|
-
```
|
|
63
|
+
import {configure, Lang} from '@gravity-ui/uikit';
|
|
69
64
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
```js
|
|
73
|
-
import {setLang} from '@gravity-ui/dashkit';
|
|
74
|
-
import {configure as uiKitConfigure, Lang as UILang} from '@gravity-ui/uikit';
|
|
75
|
-
|
|
76
|
-
setLang('en');
|
|
77
|
-
uiKitConfigure({lang: lang as UILang});
|
|
65
|
+
configure({lang: Lang.En});
|
|
78
66
|
```
|
|
79
67
|
|
|
80
68
|
- DashKit.setSettings
|
|
@@ -97,7 +85,7 @@ Before using `DashKit` as a react component, it must be configured.
|
|
|
97
85
|
|
|
98
86
|
```js
|
|
99
87
|
import {DashKit} from '@gravity-ui/dashkit';
|
|
100
|
-
import {pluginTitle, pluginText}
|
|
88
|
+
import {pluginTitle, pluginText} from '@gravity-ui/dashkit';
|
|
101
89
|
|
|
102
90
|
DashKit.registerPlugins(
|
|
103
91
|
pluginTitle,
|
|
@@ -325,6 +313,61 @@ type MenuItem = {
|
|
|
325
313
|
DashKit.setSettings({menu: [] as Array<MenuItem>});
|
|
326
314
|
```
|
|
327
315
|
|
|
316
|
+
### CSS API
|
|
317
|
+
|
|
318
|
+
| Name | Description |
|
|
319
|
+
| :--------------------------------------------- | :-------------------- |
|
|
320
|
+
| Action panel variables | |
|
|
321
|
+
| `--dashkit-action-panel-color` | Background color |
|
|
322
|
+
| `--dashkit-action-panel-border-color` | Border color |
|
|
323
|
+
| `--dashkit-action-panel-border-radius` | Border radius |
|
|
324
|
+
| Action panel item variables | |
|
|
325
|
+
| `--dashkit-action-panel-item-color` | Backgroud color |
|
|
326
|
+
| `--dashkit-action-panel-item-text-color` | Text color |
|
|
327
|
+
| `--dashkit-action-panel-item-color-hover` | Hover backgroud color |
|
|
328
|
+
| `--dashkit-action-panel-item-text-color-hover` | Hover text color |
|
|
329
|
+
| Overlay variables | |
|
|
330
|
+
| `--dashkit-overlay-border-color` | Border color |
|
|
331
|
+
| `--dashkit-overlay-color` | Background color |
|
|
332
|
+
| `--dashkit-overlay-opacity` | Opacity |
|
|
333
|
+
| Grid item variables | |
|
|
334
|
+
| `--dashkit-grid-item-edit-opacity` | Opacity |
|
|
335
|
+
| `--dashkit-grid-item-border-radius` | Border radius |
|
|
336
|
+
| Placeholder variables | |
|
|
337
|
+
| `--dashkit-placeholder-color` | Background color |
|
|
338
|
+
| `--dashkit-placeholder-opacity` | Opacity |
|
|
339
|
+
|
|
340
|
+
#### Usage example
|
|
341
|
+
|
|
342
|
+
```css
|
|
343
|
+
.custom-theme-wrapper {
|
|
344
|
+
--dashkit-grid-item-edit-opacit: 1;
|
|
345
|
+
--dashkit-overlay-color: var(--g-color-base-float);
|
|
346
|
+
--dashkit-overlay-border-color: var(--g-color-base-float);
|
|
347
|
+
--dashkit-overlay-opacity: 0.5;
|
|
348
|
+
|
|
349
|
+
--dashkit-action-panel-border-color: var(--g-color-line-info);
|
|
350
|
+
--dashkit-action-panel-color: var(--g-color-base-float-accent);
|
|
351
|
+
--dashkit-action-panel-border-radius: var(--g-border-radius-xxl);
|
|
352
|
+
}
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
```tsx
|
|
356
|
+
// ....
|
|
357
|
+
|
|
358
|
+
const CustomThemeWrapper = (props: {
|
|
359
|
+
dashkitProps: DashkitProps;
|
|
360
|
+
actionPanelProps: ActionPanelProps;
|
|
361
|
+
}) => {
|
|
362
|
+
return (
|
|
363
|
+
<div className="custom-theme-wrapper">
|
|
364
|
+
<Dashkit {...props.dashkitProps} />
|
|
365
|
+
<ActionPanel {...props.actionPanelProps} />
|
|
366
|
+
</div>
|
|
367
|
+
);
|
|
368
|
+
};
|
|
369
|
+
```
|
|
370
|
+
|
|
328
371
|
## Development
|
|
329
372
|
|
|
330
373
|
### Build & watch
|
|
@@ -1,33 +1,75 @@
|
|
|
1
1
|
.dashkit-action-panel {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
--_--dashkit-action-panel-color: var(--dashkit-action-panel-color, var(--g-color-base-float));
|
|
3
|
+
--_--dashkit-action-panel-border-color: var(
|
|
4
|
+
--dashkit-action-panel-border-color,
|
|
5
|
+
var(--g-color-base-brand)
|
|
6
|
+
);
|
|
7
|
+
--_--dashkit-action-panel-border-radius: var(
|
|
8
|
+
--dashkit-action-panel-border-radius,
|
|
9
|
+
var(--g-border-radius-xl)
|
|
10
|
+
);
|
|
11
|
+
background-color: var(--_--dashkit-action-panel-color);
|
|
4
12
|
position: fixed;
|
|
5
13
|
bottom: 20px;
|
|
6
14
|
display: flex;
|
|
7
|
-
border-radius:
|
|
15
|
+
border-radius: var(--_--dashkit-action-panel-border-radius);
|
|
16
|
+
border: 2px solid var(--_--dashkit-action-panel-border-color);
|
|
8
17
|
padding: 8px;
|
|
9
18
|
gap: 0;
|
|
10
19
|
left: 50%;
|
|
11
|
-
transform: translateX(-50%);
|
|
20
|
+
transform: translateX(-50%) translateY(0);
|
|
12
21
|
z-index: 1;
|
|
13
22
|
}
|
|
23
|
+
.dashkit-action-panel-enter {
|
|
24
|
+
transform: translateX(-50%) translateY(calc(100% + 20px));
|
|
25
|
+
will-change: transform;
|
|
26
|
+
}
|
|
27
|
+
.dashkit-action-panel-enter-active {
|
|
28
|
+
transform: translateX(-50%) translateY(0);
|
|
29
|
+
transition: transform 300ms ease;
|
|
30
|
+
}
|
|
31
|
+
.dashkit-action-panel-exit {
|
|
32
|
+
transform: translateX(-50%) translateY(0);
|
|
33
|
+
will-change: transform;
|
|
34
|
+
}
|
|
35
|
+
.dashkit-action-panel-exit-active {
|
|
36
|
+
transform: translateX(-50%) translateY(calc(100% + 20px));
|
|
37
|
+
transition: transform 300ms ease;
|
|
38
|
+
}
|
|
14
39
|
.dashkit-action-panel__item {
|
|
40
|
+
--_--dashkit-action-panel-item-color: var(--dashkit-action-panel-item-color, transparent);
|
|
41
|
+
--_--dashkit-action-panel-item-text-color: var(
|
|
42
|
+
--dashkit-action-panel-item-text-color,
|
|
43
|
+
var(--g-color-text-primary)
|
|
44
|
+
);
|
|
45
|
+
--_--dashkit-action-panel-item-color-hover: var(
|
|
46
|
+
--dashkit-action-panel-item-color-hover,
|
|
47
|
+
var(--g-color-base-simple-hover)
|
|
48
|
+
);
|
|
49
|
+
--_--dashkit-action-panel-item-text-color-hover: var(
|
|
50
|
+
--dashkit-action-panel-item-text-color-hover,
|
|
51
|
+
var(--g-color-text-primary)
|
|
52
|
+
);
|
|
15
53
|
height: 68px;
|
|
16
54
|
width: 98px;
|
|
17
55
|
display: flex;
|
|
18
56
|
flex-direction: column;
|
|
19
57
|
justify-content: center;
|
|
20
58
|
align-items: center;
|
|
21
|
-
transition:
|
|
59
|
+
transition: 300ms color ease-in-out, 300ms background-color ease-in-out;
|
|
22
60
|
border-radius: 6px;
|
|
23
61
|
padding: 0 12px;
|
|
24
62
|
box-sizing: border-box;
|
|
25
63
|
white-space: nowrap;
|
|
26
64
|
overflow: hidden;
|
|
65
|
+
background-color: var(--_--dashkit-action-panel-item-color);
|
|
66
|
+
color: var(--_--dashkit-action-panel-item-text-color);
|
|
67
|
+
will-change: color, backgroung-color;
|
|
27
68
|
}
|
|
28
69
|
.dashkit-action-panel__item:hover {
|
|
29
70
|
cursor: pointer;
|
|
30
|
-
background-color: var(--
|
|
71
|
+
background-color: var(--_--dashkit-action-panel-item-color-hover);
|
|
72
|
+
color: var(--_--dashkit-action-panel-item-text-color-hover);
|
|
31
73
|
}
|
|
32
74
|
.dashkit-action-panel__icon {
|
|
33
75
|
margin-bottom: 4px;
|
|
@@ -10,5 +10,7 @@ export type ActionPanelItem = {
|
|
|
10
10
|
export type ActionPanelProps = {
|
|
11
11
|
items: ActionPanelItem[];
|
|
12
12
|
className?: string;
|
|
13
|
+
disable?: boolean;
|
|
14
|
+
toggleAnimation?: boolean;
|
|
13
15
|
};
|
|
14
|
-
export declare const ActionPanel: (props: ActionPanelProps) => JSX.Element;
|
|
16
|
+
export declare const ActionPanel: (props: ActionPanelProps) => JSX.Element | null;
|
|
@@ -3,13 +3,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ActionPanel = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
const react_transition_group_1 = require("react-transition-group");
|
|
6
7
|
const cn_1 = require("../../utils/cn");
|
|
7
8
|
const b = (0, cn_1.cn)('dashkit-action-panel');
|
|
8
9
|
const ActionPanel = (props) => {
|
|
9
|
-
|
|
10
|
+
var _a, _b;
|
|
11
|
+
const isDisabled = (_a = props.disable) !== null && _a !== void 0 ? _a : false;
|
|
12
|
+
const isAnimated = (_b = props.toggleAnimation) !== null && _b !== void 0 ? _b : false;
|
|
13
|
+
const nodeRef = react_1.default.useRef(null);
|
|
14
|
+
const content = (react_1.default.createElement("div", { ref: nodeRef, className: b(null, props.className) }, props.items.map((item) => {
|
|
10
15
|
return (react_1.default.createElement("div", { role: "button", className: b('item', item.className), key: `dk-action-panel-${item.id}`, onClick: item.onClick, "data-qa": item.qa },
|
|
11
16
|
react_1.default.createElement("div", { className: b('icon') }, item.icon),
|
|
12
17
|
react_1.default.createElement("div", { className: b('title'), title: item.title }, item.title)));
|
|
13
18
|
})));
|
|
19
|
+
if (isAnimated) {
|
|
20
|
+
return (react_1.default.createElement(react_transition_group_1.CSSTransition, { in: !isDisabled, nodeRef: nodeRef, classNames: b(null), timeout: 300, unmountOnExit: true }, content));
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
return isDisabled ? null : content;
|
|
24
|
+
}
|
|
14
25
|
};
|
|
15
26
|
exports.ActionPanel = ActionPanel;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { Config, ConfigItem, GlobalParams, ItemsStateAndParams } from '../../shared';
|
|
3
|
+
import { ContextProps, Plugin, SetConfigItem, SetItemOptions, Settings, SettingsProps } from '../../typings';
|
|
2
4
|
import GridLayout from '../GridLayout/GridLayout';
|
|
3
|
-
import { SetConfigItem, Settings, SettingsProps, ContextProps, Plugin, SetItemOptions } from '../../typings';
|
|
4
|
-
import { GlobalParams, Config, ConfigItem, ItemsStateAndParams } from '../../shared';
|
|
5
5
|
import { OverlayControlItem } from '../OverlayControls/OverlayControls';
|
|
6
6
|
interface DashKitGeneralProps {
|
|
7
7
|
config: Config;
|
|
@@ -4,9 +4,9 @@ exports.DashKit = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
6
|
const noop_1 = tslib_1.__importDefault(require("lodash/noop"));
|
|
7
|
+
const constants_1 = require("../../constants");
|
|
7
8
|
const utils_1 = require("../../utils");
|
|
8
9
|
const DashKitView_1 = tslib_1.__importDefault(require("../DashKitView/DashKitView"));
|
|
9
|
-
const constants_1 = require("../../constants");
|
|
10
10
|
const registerManager = new utils_1.RegisterManager();
|
|
11
11
|
class DashKit extends react_1.default.PureComponent {
|
|
12
12
|
constructor() {
|
|
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const react_1 = tslib_1.__importDefault(require("react"));
|
|
5
5
|
const DashKitContext_1 = require("../../context/DashKitContext");
|
|
6
|
-
const GridLayout_1 = tslib_1.__importDefault(require("../GridLayout/GridLayout"));
|
|
7
|
-
const MobileLayout_1 = tslib_1.__importDefault(require("../MobileLayout/MobileLayout"));
|
|
8
6
|
const withContext_1 = require("../../hocs/withContext");
|
|
9
7
|
const useCalcLayout_1 = require("../../hooks/useCalcLayout");
|
|
10
8
|
const cn_1 = require("../../utils/cn");
|
|
9
|
+
const GridLayout_1 = tslib_1.__importDefault(require("../GridLayout/GridLayout"));
|
|
10
|
+
const MobileLayout_1 = tslib_1.__importDefault(require("../MobileLayout/MobileLayout"));
|
|
11
11
|
const b = (0, cn_1.cn)('dashkit');
|
|
12
12
|
function DashKitView(props) {
|
|
13
13
|
const context = react_1.default.useContext(DashKitContext_1.DashKitContext);
|
|
@@ -2,25 +2,32 @@
|
|
|
2
2
|
position: relative;
|
|
3
3
|
}
|
|
4
4
|
.dashkit-grid-item__overlay {
|
|
5
|
+
--_-dashkit-overlay-color: var(--dashkit-overlay-color, var(--g-color-base-generic));
|
|
6
|
+
--_-dashkit-overlay-border-color: var(--dashkit-overlay-border-color, rgba(0, 0, 0, 0.1));
|
|
7
|
+
--_-dashkit-overlay-opacity: var(--dashkit-overlay-opacity, 1);
|
|
8
|
+
--_-dashkit-overlay-border-radius: var(
|
|
9
|
+
--dashkit-grid-item-border-radius,
|
|
10
|
+
3px
|
|
11
|
+
);
|
|
5
12
|
position: absolute;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
background-color: var(--g-color-base-generic);
|
|
12
|
-
border: solid 1px rgba(0, 0, 0, 0.1);
|
|
13
|
+
inset: 0;
|
|
14
|
+
border-radius: var(--_-dashkit-overlay-border-radius);
|
|
15
|
+
background-color: var(--_-dashkit-overlay-color);
|
|
16
|
+
border: solid 1px var(--_-dashkit-overlay-border-color);
|
|
17
|
+
opacity: var(--_-dashkit-overlay-opacity);
|
|
13
18
|
}
|
|
14
19
|
.dashkit-grid-item__item {
|
|
20
|
+
--_-dashkit-grid-item-border-radius: var(
|
|
21
|
+
--dashkit-grid-item-border-radius,
|
|
22
|
+
3px
|
|
23
|
+
);
|
|
24
|
+
--_-dashkit-grid-item-edit-opacity: var(--dashkit-grid-item-edit-opacity, 0.5);
|
|
15
25
|
position: absolute;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
left: 0;
|
|
19
|
-
right: 0;
|
|
20
|
-
border-radius: 3px;
|
|
26
|
+
inset: 0;
|
|
27
|
+
border-radius: var(--_-dashkit-grid-item-border-radius);
|
|
21
28
|
}
|
|
22
29
|
.dashkit-grid-item__item_editMode {
|
|
23
|
-
opacity:
|
|
30
|
+
opacity: var(--_-dashkit-grid-item-edit-opacity);
|
|
24
31
|
border-color: transparent;
|
|
25
32
|
pointer-events: none;
|
|
26
33
|
}
|
|
@@ -50,8 +57,10 @@
|
|
|
50
57
|
}
|
|
51
58
|
|
|
52
59
|
.react-grid-item.react-grid-placeholder {
|
|
53
|
-
|
|
54
|
-
opacity: 0.2;
|
|
60
|
+
--_-dashkit-placeholder-color: var(--dashkit-placeholder-color, #fc0);
|
|
61
|
+
--_-dashkit-placeholder-opacity: var(--dashkit-placeholder-opacity, 0.2);
|
|
62
|
+
background: var(--_-dashkit-placeholder-color);
|
|
63
|
+
opacity: var(--_-dashkit-placeholder-opacity);
|
|
55
64
|
transition-duration: 100ms;
|
|
56
65
|
z-index: 2;
|
|
57
66
|
user-select: none;
|
|
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const react_1 = tslib_1.__importDefault(require("react"));
|
|
5
5
|
const prop_types_1 = tslib_1.__importDefault(require("prop-types"));
|
|
6
|
-
const Item_1 = tslib_1.__importDefault(require("../Item/Item"));
|
|
7
6
|
const DashKitContext_1 = require("../../context/DashKitContext");
|
|
8
7
|
const cn_1 = require("../../utils/cn");
|
|
8
|
+
const Item_1 = tslib_1.__importDefault(require("../Item/Item"));
|
|
9
9
|
const OverlayControls_1 = tslib_1.__importDefault(require("../OverlayControls/OverlayControls"));
|
|
10
10
|
const b = (0, cn_1.cn)('dashkit-grid-item');
|
|
11
11
|
class GridItem extends react_1.default.PureComponent {
|
|
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const react_1 = tslib_1.__importDefault(require("react"));
|
|
5
5
|
const react_grid_layout_1 = tslib_1.__importStar(require("react-grid-layout"));
|
|
6
|
-
const GridItem_1 = tslib_1.__importDefault(require("../GridItem/GridItem"));
|
|
7
|
-
const DashKitContext_1 = require("../../context/DashKitContext");
|
|
8
6
|
const constants_1 = require("../../constants");
|
|
7
|
+
const DashKitContext_1 = require("../../context/DashKitContext");
|
|
8
|
+
const GridItem_1 = tslib_1.__importDefault(require("../GridItem/GridItem"));
|
|
9
9
|
const Layout = (0, react_grid_layout_1.WidthProvider)(react_grid_layout_1.default); // eslint-disable-line new-cap
|
|
10
10
|
class GridLayout extends react_1.default.PureComponent {
|
|
11
11
|
constructor(props, context) {
|
|
@@ -83,5 +83,5 @@ class GridLayout extends react_1.default.PureComponent {
|
|
|
83
83
|
})));
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
|
-
exports.default = GridLayout;
|
|
87
86
|
GridLayout.contextType = DashKitContext_1.DashKitContext;
|
|
87
|
+
exports.default = GridLayout;
|
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
.dashkit-item__renderer {
|
|
2
2
|
position: absolute;
|
|
3
|
-
|
|
4
|
-
bottom: 0;
|
|
5
|
-
left: 0;
|
|
6
|
-
right: 0;
|
|
3
|
+
inset: 0;
|
|
7
4
|
}
|
|
8
5
|
.dashkit-item__loader {
|
|
9
6
|
position: absolute;
|
|
10
|
-
|
|
11
|
-
bottom: 0;
|
|
12
|
-
left: 0;
|
|
13
|
-
right: 0;
|
|
7
|
+
inset: 0;
|
|
14
8
|
display: flex;
|
|
15
9
|
align-items: center;
|
|
16
10
|
justify-content: center;
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const react_1 = tslib_1.__importDefault(require("react"));
|
|
5
|
-
const Item_1 = tslib_1.__importDefault(require("../Item/Item"));
|
|
6
5
|
const DashKitContext_1 = require("../../context/DashKitContext");
|
|
7
6
|
const cn_1 = require("../../utils/cn");
|
|
7
|
+
const Item_1 = tslib_1.__importDefault(require("../Item/Item"));
|
|
8
8
|
const helpers_1 = require("./helpers");
|
|
9
9
|
const b = (0, cn_1.cn)('dashkit-mobile-layout');
|
|
10
10
|
class MobileLayout extends react_1.default.PureComponent {
|
|
@@ -50,5 +50,5 @@ class MobileLayout extends react_1.default.PureComponent {
|
|
|
50
50
|
})));
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
-
exports.default = MobileLayout;
|
|
54
53
|
MobileLayout.contextType = DashKitContext_1.DashKitContext;
|
|
54
|
+
exports.default = MobileLayout;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { ButtonSize, ButtonView, IconProps, MenuItemProps } from '@gravity-ui/uikit';
|
|
3
|
+
import { Config, ConfigItem, ItemState, PluginBase, StringParams } from '../../shared';
|
|
4
4
|
import type { RegisterManager } from '../../utils/register-manager';
|
|
5
5
|
export declare enum OverlayControlsPosition {
|
|
6
6
|
TopRight = "top_right",
|
|
@@ -3,14 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.OverlayControlsPosition = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
-
const i18n_1 = tslib_1.__importDefault(require("../../i18n"));
|
|
7
|
-
const noop_1 = tslib_1.__importDefault(require("lodash/noop"));
|
|
8
|
-
const DashKitContext_1 = require("../../context/DashKitContext");
|
|
9
6
|
const uikit_1 = require("@gravity-ui/uikit");
|
|
7
|
+
const noop_1 = tslib_1.__importDefault(require("lodash/noop"));
|
|
10
8
|
const constants_1 = require("../../constants");
|
|
11
|
-
const
|
|
12
|
-
const
|
|
9
|
+
const DashKitContext_1 = require("../../context/DashKitContext");
|
|
10
|
+
const i18n_1 = require("../../i18n");
|
|
13
11
|
const CloseIcon_1 = require("../../icons/CloseIcon");
|
|
12
|
+
const CogIcon_1 = require("../../icons/CogIcon");
|
|
13
|
+
const DotsIcon_1 = require("../../icons/DotsIcon");
|
|
14
14
|
const cn_1 = require("../../utils/cn");
|
|
15
15
|
const b = (0, cn_1.cn)(constants_1.OVERLAY_CONTROLS_CLASS_NAME);
|
|
16
16
|
var OverlayControlsPosition;
|
|
@@ -19,7 +19,7 @@ var OverlayControlsPosition;
|
|
|
19
19
|
OverlayControlsPosition["TopLeft"] = "top_left";
|
|
20
20
|
OverlayControlsPosition["BottomRight"] = "bottom_right";
|
|
21
21
|
OverlayControlsPosition["BottomLeft"] = "bottom_left";
|
|
22
|
-
})(OverlayControlsPosition
|
|
22
|
+
})(OverlayControlsPosition || (exports.OverlayControlsPosition = OverlayControlsPosition = {}));
|
|
23
23
|
const DEFAULT_DROPDOWN_MENU = [constants_1.MenuItems.Copy, constants_1.MenuItems.Delete];
|
|
24
24
|
class OverlayControls extends react_1.default.Component {
|
|
25
25
|
constructor() {
|
|
@@ -99,13 +99,13 @@ class OverlayControls extends react_1.default.Component {
|
|
|
99
99
|
case constants_1.MenuItems.Copy: {
|
|
100
100
|
return {
|
|
101
101
|
action: this.onCopyItem,
|
|
102
|
-
text: (0, i18n_1.
|
|
102
|
+
text: (0, i18n_1.i18n)('label_copy'),
|
|
103
103
|
};
|
|
104
104
|
}
|
|
105
105
|
case constants_1.MenuItems.Delete: {
|
|
106
106
|
return {
|
|
107
107
|
action: this.onRemoveItem,
|
|
108
|
-
text: (0, i18n_1.
|
|
108
|
+
text: (0, i18n_1.i18n)('label_delete'),
|
|
109
109
|
};
|
|
110
110
|
}
|
|
111
111
|
case constants_1.MenuItems.Settings: {
|
|
@@ -115,7 +115,7 @@ class OverlayControls extends react_1.default.Component {
|
|
|
115
115
|
}
|
|
116
116
|
return {
|
|
117
117
|
action: this.onEditItem,
|
|
118
|
-
text: (0, i18n_1.
|
|
118
|
+
text: (0, i18n_1.i18n)('label_settings'),
|
|
119
119
|
};
|
|
120
120
|
}
|
|
121
121
|
}
|
|
@@ -125,7 +125,7 @@ class OverlayControls extends react_1.default.Component {
|
|
|
125
125
|
const { view, size } = this.props;
|
|
126
126
|
const customLeftControls = this.getCustomLeftOverlayControls();
|
|
127
127
|
const hasCustomOverlayLeftControls = Boolean(customLeftControls.length);
|
|
128
|
-
const defaultControl = (react_1.default.createElement(uikit_1.Button, { view: view, size: size, title: (0, i18n_1.
|
|
128
|
+
const defaultControl = (react_1.default.createElement(uikit_1.Button, { view: view, size: size, title: (0, i18n_1.i18n)('label_settings'), pin: "round-brick", onClick: this.onEditItem, qa: "dashkit-overlay-control-settings" },
|
|
129
129
|
react_1.default.createElement(uikit_1.Icon, { data: CogIcon_1.CogIcon, size: "24" })));
|
|
130
130
|
const controls = hasCustomOverlayLeftControls
|
|
131
131
|
? customLeftControls.map((item, index, items) => this.renderControlsItem(item, index, items.length + 1))
|
|
@@ -141,7 +141,7 @@ class OverlayControls extends react_1.default.Component {
|
|
|
141
141
|
const { view, size } = this.props;
|
|
142
142
|
const { registerManager } = this.context;
|
|
143
143
|
const withMenu = Array.isArray(registerManager.settings.menu) && registerManager.settings.menu.length;
|
|
144
|
-
return (react_1.default.createElement(react_1.default.Fragment, null, withMenu ? (this.renderDropdownMenu()) : (react_1.default.createElement(uikit_1.Button, { view: view, size: size, title: (0, i18n_1.
|
|
144
|
+
return (react_1.default.createElement(react_1.default.Fragment, null, withMenu ? (this.renderDropdownMenu()) : (react_1.default.createElement(uikit_1.Button, { view: view, size: size, title: (0, i18n_1.i18n)('label_delete'), pin: "brick-round", onClick: this.onRemoveItem, qa: "dashkit-overlay-control-menu" },
|
|
145
145
|
react_1.default.createElement(uikit_1.Icon, { data: CloseIcon_1.CloseIcon, size: "12" })))));
|
|
146
146
|
}
|
|
147
147
|
isDefaultMenu(menu) {
|
|
@@ -174,7 +174,8 @@ class OverlayControls extends react_1.default.Component {
|
|
|
174
174
|
? () => itemHandler(configItem, itemParams, itemState)
|
|
175
175
|
: ((_a = this.getDropDownMenuItemConfig(item.id)) === null || _a === void 0 ? void 0 : _a.action) || (() => { });
|
|
176
176
|
return {
|
|
177
|
-
|
|
177
|
+
// @ts-expect-error
|
|
178
|
+
text: item.title || (0, i18n_1.i18n)(item.id),
|
|
178
179
|
icon: item.icon,
|
|
179
180
|
action: itemAction,
|
|
180
181
|
className: item.className,
|
|
@@ -203,7 +204,7 @@ class OverlayControls extends react_1.default.Component {
|
|
|
203
204
|
getCustomControlsWithWidgets() {
|
|
204
205
|
// Добавляем контрол удаления виджета по умолчанию
|
|
205
206
|
const deleteControl = {
|
|
206
|
-
title: (0, i18n_1.
|
|
207
|
+
title: (0, i18n_1.i18n)('label_delete'),
|
|
207
208
|
icon: CloseIcon_1.CloseIcon,
|
|
208
209
|
iconSize: 12,
|
|
209
210
|
handler: this.onRemoveItem,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const DashKitContext: React.Context<any>;
|
|
2
|
-
import React from
|
|
2
|
+
import React from 'react';
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.prepareItem = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
-
const DashKitContext_1 = require("../context/DashKitContext");
|
|
7
6
|
const prop_types_1 = tslib_1.__importDefault(require("prop-types"));
|
|
7
|
+
const DashKitContext_1 = require("../context/DashKitContext");
|
|
8
8
|
function prepareItem(Component) {
|
|
9
9
|
var _a;
|
|
10
10
|
return _a = class PrepareItem extends react_1.default.Component {
|
|
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.withContext = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
const isEqual_1 = tslib_1.__importDefault(require("lodash/isEqual"));
|
|
6
7
|
const DashKitContext_1 = require("../context/DashKitContext");
|
|
7
|
-
const utils_1 = require("../utils");
|
|
8
8
|
const shared_1 = require("../shared");
|
|
9
|
-
const
|
|
9
|
+
const utils_1 = require("../utils");
|
|
10
10
|
function useMemoStateContext(props) {
|
|
11
11
|
// так как мы не хотим хранить параметры виджета с активированной автовысотой в сторе и на сервере, актуальный
|
|
12
12
|
// (видимый юзером в конкретный момент времени) лэйаут (массив объектов с данными о ширине, высоте,
|
|
@@ -1,4 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const i18n: I18N;
|
|
3
|
-
declare const _default: (key: string, params?: import("@gravity-ui/i18n").Params | undefined) => string;
|
|
4
|
-
export default _default;
|
|
1
|
+
export declare const i18n: (key: "button_retry" | "label_render-markdown-error" | "label_settings" | "label_copy" | "label_delete" | "label_error", params?: import("@gravity-ui/i18n").Params | undefined) => string;
|
package/build/cjs/i18n/index.js
CHANGED
|
@@ -2,18 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.i18n = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
const i18n_1 = require("@gravity-ui/i18n");
|
|
6
|
-
const configure_1 = require("../utils/configure");
|
|
5
|
+
const i18n_1 = require("@gravity-ui/uikit/i18n");
|
|
7
6
|
const en_json_1 = tslib_1.__importDefault(require("./en.json"));
|
|
8
7
|
const ru_json_1 = tslib_1.__importDefault(require("./ru.json"));
|
|
9
|
-
exports.i18n =
|
|
10
|
-
const COMPONENT = 'dashkit';
|
|
11
|
-
exports.i18n.registerKeyset('en', COMPONENT, en_json_1.default);
|
|
12
|
-
exports.i18n.registerKeyset('ru', COMPONENT, ru_json_1.default);
|
|
13
|
-
exports.i18n.setLang((0, configure_1.getConfig)().lang || 'en');
|
|
14
|
-
(0, configure_1.subscribeConfigure)((config) => {
|
|
15
|
-
if (config.lang) {
|
|
16
|
-
exports.i18n.setLang(config.lang);
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
exports.default = exports.i18n.keyset(COMPONENT);
|
|
8
|
+
exports.i18n = (0, i18n_1.addComponentKeysets)({ en: en_json_1.default, ru: ru_json_1.default }, 'dashkit');
|
|
@@ -4,7 +4,7 @@ exports.PluginText = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
6
|
const uikit_1 = require("@gravity-ui/uikit");
|
|
7
|
-
const i18n_1 =
|
|
7
|
+
const i18n_1 = require("../../i18n");
|
|
8
8
|
const cn_1 = require("../../utils/cn");
|
|
9
9
|
// need to set markdown styles separately
|
|
10
10
|
// for instance can use yfm-transform
|
|
@@ -65,9 +65,9 @@ class PluginText extends react_1.default.PureComponent {
|
|
|
65
65
|
}
|
|
66
66
|
renderError() {
|
|
67
67
|
return (react_1.default.createElement("div", { className: b({ error: true }) },
|
|
68
|
-
react_1.default.createElement("div", { className: b('error') }, (0, i18n_1.
|
|
68
|
+
react_1.default.createElement("div", { className: b('error') }, (0, i18n_1.i18n)('label_render-markdown-error')),
|
|
69
69
|
react_1.default.createElement("br", null),
|
|
70
|
-
react_1.default.createElement(uikit_1.Button, { view: "action", size: "m", onClick: this.onRetryClick }, (0, i18n_1.
|
|
70
|
+
react_1.default.createElement(uikit_1.Button, { view: "action", size: "m", onClick: this.onRetryClick }, (0, i18n_1.i18n)('button_retry')),
|
|
71
71
|
react_1.default.createElement("br", null)));
|
|
72
72
|
}
|
|
73
73
|
renderText() {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Config, ConfigAliases, ConfigConnection, ConfigItem, ConfigItemWithTabs, ItemStateAndParams, ItemsStateAndParams, PluginBase, StateAndParamsMetaData, StringParams } from '../types';
|
|
2
2
|
export declare function prerenderItems({ items, plugins, }: {
|
|
3
3
|
items: ConfigItem[];
|
|
4
4
|
plugins: PluginBase[];
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.hasActionParams = exports.hasActionParam = exports.transformParamsToActionParams = exports.pickExceptActionParamsFromParams = exports.pickActionParamsFromParams = exports.deleteFromQueue = exports.addToQueue = exports.getInitialItemsStateAndParamsMeta = exports.mergeParamsWithAliases = exports.getMapItemsIgnores = exports.resolveItemInnerId = exports.formQueueData = exports.isItemWithTabs = exports.getCurrentVersion = exports.getItemsStateAndParamsMeta = exports.prerenderItems = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
const keyBy_1 = tslib_1.__importDefault(require("lodash/keyBy"));
|
|
6
5
|
const get_1 = tslib_1.__importDefault(require("lodash/get"));
|
|
7
6
|
const invert_1 = tslib_1.__importDefault(require("lodash/invert"));
|
|
8
7
|
const isEmpty_1 = tslib_1.__importDefault(require("lodash/isEmpty"));
|
|
8
|
+
const keyBy_1 = tslib_1.__importDefault(require("lodash/keyBy"));
|
|
9
9
|
const pick_1 = tslib_1.__importDefault(require("lodash/pick"));
|
|
10
10
|
const constants_1 = require("../constants");
|
|
11
11
|
function getNormalizedPlugins(plugins) {
|