@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.
Files changed (88) hide show
  1. package/README.md +59 -16
  2. package/build/cjs/components/ActionPanel/ActionPanel.css +48 -6
  3. package/build/cjs/components/ActionPanel/ActionPanel.d.ts +3 -1
  4. package/build/cjs/components/ActionPanel/ActionPanel.js +12 -1
  5. package/build/cjs/components/DashKit/DashKit.d.ts +2 -2
  6. package/build/cjs/components/DashKit/DashKit.js +1 -1
  7. package/build/cjs/components/DashKitView/DashKitView.js +2 -2
  8. package/build/cjs/components/GridItem/GridItem.css +24 -15
  9. package/build/cjs/components/GridItem/GridItem.d.ts +1 -1
  10. package/build/cjs/components/GridItem/GridItem.js +1 -1
  11. package/build/cjs/components/GridLayout/GridLayout.d.ts +1 -1
  12. package/build/cjs/components/GridLayout/GridLayout.js +3 -3
  13. package/build/cjs/components/Item/Item.css +2 -8
  14. package/build/cjs/components/Item/Item.d.ts +1 -0
  15. package/build/cjs/components/MobileLayout/MobileLayout.d.ts +1 -1
  16. package/build/cjs/components/MobileLayout/MobileLayout.js +2 -2
  17. package/build/cjs/components/OverlayControls/OverlayControls.d.ts +2 -2
  18. package/build/cjs/components/OverlayControls/OverlayControls.js +14 -13
  19. package/build/cjs/context/DashKitContext.d.ts +1 -1
  20. package/build/cjs/hocs/prepareItem.d.ts +1 -0
  21. package/build/cjs/hocs/prepareItem.js +1 -1
  22. package/build/cjs/hocs/withContext.js +2 -2
  23. package/build/cjs/i18n/index.d.ts +1 -4
  24. package/build/cjs/i18n/index.js +2 -13
  25. package/build/cjs/plugins/Text/Text.d.ts +1 -1
  26. package/build/cjs/plugins/Text/Text.js +3 -3
  27. package/build/cjs/plugins/Title/Title.d.ts +1 -1
  28. package/build/cjs/shared/modules/helpers.d.ts +1 -1
  29. package/build/cjs/shared/modules/helpers.js +1 -1
  30. package/build/cjs/shared/modules/state-and-params.d.ts +1 -1
  31. package/build/cjs/shared/units/datalens/index.d.ts +1 -1
  32. package/build/cjs/shared/units/datalens/index.js +1 -1
  33. package/build/cjs/typings/common.d.ts +1 -1
  34. package/build/cjs/typings/plugin.d.ts +2 -2
  35. package/build/cjs/utils/index.d.ts +0 -1
  36. package/build/cjs/utils/index.js +0 -1
  37. package/build/cjs/utils/register-manager.d.ts +1 -1
  38. package/build/cjs/utils/update-manager.d.ts +2 -2
  39. package/build/cjs/utils/update-manager.js +4 -2
  40. package/build/esm/components/ActionPanel/ActionPanel.css +48 -6
  41. package/build/esm/components/ActionPanel/ActionPanel.d.ts +3 -1
  42. package/build/esm/components/ActionPanel/ActionPanel.js +12 -1
  43. package/build/esm/components/DashKit/DashKit.d.ts +2 -2
  44. package/build/esm/components/DashKit/DashKit.js +1 -1
  45. package/build/esm/components/DashKitView/DashKitView.js +2 -2
  46. package/build/esm/components/GridItem/GridItem.css +24 -15
  47. package/build/esm/components/GridItem/GridItem.d.ts +1 -1
  48. package/build/esm/components/GridItem/GridItem.js +2 -2
  49. package/build/esm/components/GridLayout/GridLayout.d.ts +1 -1
  50. package/build/esm/components/GridLayout/GridLayout.js +4 -3
  51. package/build/esm/components/Item/Item.css +2 -8
  52. package/build/esm/components/Item/Item.d.ts +1 -0
  53. package/build/esm/components/MobileLayout/MobileLayout.d.ts +1 -1
  54. package/build/esm/components/MobileLayout/MobileLayout.js +3 -2
  55. package/build/esm/components/OverlayControls/OverlayControls.d.ts +2 -2
  56. package/build/esm/components/OverlayControls/OverlayControls.js +6 -5
  57. package/build/esm/context/DashKitContext.d.ts +1 -1
  58. package/build/esm/hocs/prepareItem.d.ts +1 -0
  59. package/build/esm/hocs/prepareItem.js +1 -1
  60. package/build/esm/hocs/withContext.js +2 -2
  61. package/build/esm/i18n/index.d.ts +1 -4
  62. package/build/esm/i18n/index.js +2 -13
  63. package/build/esm/plugins/Text/Text.d.ts +1 -1
  64. package/build/esm/plugins/Text/Text.js +2 -2
  65. package/build/esm/plugins/Title/Title.d.ts +1 -1
  66. package/build/esm/shared/modules/__tests__/uniq-id.test.js +1 -1
  67. package/build/esm/shared/modules/helpers.d.ts +1 -1
  68. package/build/esm/shared/modules/helpers.js +2 -2
  69. package/build/esm/shared/modules/state-and-params.d.ts +1 -1
  70. package/build/esm/shared/modules/state-and-params.js +1 -1
  71. package/build/esm/shared/units/datalens/index.d.ts +1 -1
  72. package/build/esm/shared/units/datalens/index.js +1 -1
  73. package/build/esm/typings/common.d.ts +1 -1
  74. package/build/esm/typings/plugin.d.ts +2 -2
  75. package/build/esm/utils/index.d.ts +0 -1
  76. package/build/esm/utils/index.js +0 -1
  77. package/build/esm/utils/register-manager.d.ts +1 -1
  78. package/build/esm/utils/update-manager.d.ts +2 -2
  79. package/build/esm/utils/update-manager.js +4 -2
  80. package/package.json +25 -19
  81. package/build/cjs/utils/configure.d.ts +0 -9
  82. package/build/cjs/utils/configure.js +0 -21
  83. package/build/cjs/utils/i18n.d.ts +0 -7
  84. package/build/cjs/utils/i18n.js +0 -13
  85. package/build/esm/utils/configure.d.ts +0 -9
  86. package/build/esm/utils/configure.js +0 -15
  87. package/build/esm/utils/i18n.d.ts +0 -7
  88. 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
- - setLang
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 {setLang} from '@gravity-ui/dashkit';
66
-
67
- setLang('en');
68
- ```
63
+ import {configure, Lang} from '@gravity-ui/uikit';
69
64
 
70
- **From version 3.0.0 the language must be set separately for each DashKit and Gravity-ui instances**
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} from '@gravity-ui/dashkit';
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
- background-color: var(--g-color-base-float);
3
- box-shadow: 0 0 15px rgba(0, 0, 0, 0.15);
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: 8px;
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: 0.3s background-color ease-in-out;
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(--g-color-base-simple-hover);
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
- return (react_1.default.createElement("div", { className: b(null, props.className) }, props.items.map((item) => {
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
- top: 0;
7
- bottom: 0;
8
- left: 0;
9
- right: 0;
10
- border-radius: 3px;
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
- top: 0;
17
- bottom: 0;
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: 0.5;
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
- background: #fc0;
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;
@@ -1,3 +1,3 @@
1
1
  declare const _default: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
2
2
  export default _default;
3
- import React from "react";
3
+ import React from 'react';
@@ -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 {
@@ -23,4 +23,4 @@ export default class GridLayout extends React.PureComponent<any, any, any> {
23
23
  _onStop: (newLayout: any) => void;
24
24
  render(): JSX.Element;
25
25
  }
26
- import React from "react";
26
+ import React from 'react';
@@ -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
- top: 0;
4
- bottom: 0;
5
- left: 0;
6
- right: 0;
3
+ inset: 0;
7
4
  }
8
5
  .dashkit-item__loader {
9
6
  position: absolute;
10
- top: 0;
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;
@@ -61,3 +61,4 @@ declare const _default: {
61
61
  contextType: React.Context<any>;
62
62
  };
63
63
  export default _default;
64
+ import React from 'react';
@@ -13,4 +13,4 @@ export default class MobileLayout extends React.PureComponent<any, any, any> {
13
13
  }) => void;
14
14
  render(): JSX.Element;
15
15
  }
16
- import React from "react";
16
+ import React from 'react';
@@ -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 { ButtonView, ButtonSize, IconProps, MenuItemProps } from '@gravity-ui/uikit';
3
- import { ConfigItem, PluginBase, StringParams, Config, ItemState } from '../../shared';
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 DotsIcon_1 = require("../../icons/DotsIcon");
12
- const CogIcon_1 = require("../../icons/CogIcon");
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 = exports.OverlayControlsPosition || (exports.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.default)('label_copy'),
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.default)('label_delete'),
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.default)('label_settings'),
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.default)('label_settings'), pin: "round-brick", onClick: this.onEditItem, qa: "dashkit-overlay-control-settings" },
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.default)('label_delete'), pin: "brick-round", onClick: this.onRemoveItem, qa: "dashkit-overlay-control-menu" },
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
- text: item.title || (0, i18n_1.default)(item.id),
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.default)('label_delete'),
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 "react";
2
+ import React from 'react';
@@ -60,3 +60,4 @@ export function prepareItem(Component: any): {
60
60
  };
61
61
  contextType: React.Context<any>;
62
62
  };
63
+ 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 isEqual_1 = tslib_1.__importDefault(require("lodash/isEqual"));
9
+ const utils_1 = require("../utils");
10
10
  function useMemoStateContext(props) {
11
11
  // так как мы не хотим хранить параметры виджета с активированной автовысотой в сторе и на сервере, актуальный
12
12
  // (видимый юзером в конкретный момент времени) лэйаут (массив объектов с данными о ширине, высоте,
@@ -1,4 +1 @@
1
- import { I18N } from '@gravity-ui/i18n';
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;
@@ -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 = new i18n_1.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');
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { PluginWidgetProps, Plugin } from '../../typings';
2
+ import { Plugin, PluginWidgetProps } from '../../typings';
3
3
  declare enum LoadStatus {
4
4
  Pending = "pending",
5
5
  Success = "success",
@@ -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 = tslib_1.__importDefault(require("../../i18n"));
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.default)('label_render-markdown-error')),
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.default)('button_retry')),
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,5 +1,5 @@
1
1
  import React from 'react';
2
- import { PluginWidgetProps, Plugin } from '../../typings';
2
+ import { Plugin, PluginWidgetProps } from '../../typings';
3
3
  export interface PluginTitleProps extends PluginWidgetProps {
4
4
  data: {
5
5
  size: 'l' | 'm' | 's' | 'xs';
@@ -1,4 +1,4 @@
1
- import { PluginBase, ConfigItem, ItemsStateAndParams, StateAndParamsMetaData, StringParams, ConfigConnection, ConfigAliases, ConfigItemWithTabs, Config, ItemStateAndParams } from '../types';
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) {