@gravity-ui/dashkit 8.22.0 → 8.22.1-beta.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.
Files changed (57) hide show
  1. package/build/cjs/components/DashKit/DashKit.d.ts +14 -12
  2. package/build/cjs/components/DashKit/DashKit.js +2 -2
  3. package/build/cjs/components/DashKitDnDWrapper/DashKitDnDWrapper.js +2 -2
  4. package/build/cjs/components/DashKitView/DashKitView.js +2 -2
  5. package/build/cjs/components/GridItem/GridItem.js +2 -2
  6. package/build/cjs/components/GridLayout/GridLayout.d.ts +1 -1
  7. package/build/cjs/components/GridLayout/GridLayout.js +4 -3
  8. package/build/cjs/components/Item/Item.d.ts +2 -1
  9. package/build/cjs/components/MobileLayout/MobileLayout.d.ts +28 -21
  10. package/build/cjs/components/MobileLayout/MobileLayout.js +60 -47
  11. package/build/cjs/components/OverlayControls/OverlayControls.d.ts +4 -16
  12. package/build/cjs/components/OverlayControls/OverlayControls.js +8 -9
  13. package/build/cjs/context/DashKitContext.d.ts +30 -3
  14. package/build/cjs/context/DashKitContext.js +2 -6
  15. package/build/cjs/context/DashKitDnDContext.d.ts +10 -0
  16. package/build/cjs/context/DashKitDnDContext.js +6 -0
  17. package/build/cjs/context/DashkitOverlayControlsContext.d.ts +13 -0
  18. package/build/cjs/context/DashkitOverlayControlsContext.js +6 -0
  19. package/build/cjs/context/index.d.ts +3 -0
  20. package/build/cjs/context/index.js +6 -0
  21. package/build/cjs/hocs/prepareItem.d.ts +2 -1
  22. package/build/cjs/hocs/prepareItem.js +2 -2
  23. package/build/cjs/hocs/withContext.js +23 -20
  24. package/build/cjs/hooks/useDnDItemProps.js +2 -2
  25. package/build/cjs/shared/modules/helpers.d.ts +1 -1
  26. package/build/cjs/shared/modules/helpers.js +1 -1
  27. package/build/cjs/shared/types/state-and-params.d.ts +2 -1
  28. package/build/cjs/typings/config.d.ts +1 -0
  29. package/build/esm/components/DashKit/DashKit.d.ts +14 -12
  30. package/build/esm/components/DashKit/DashKit.js +1 -1
  31. package/build/esm/components/DashKitDnDWrapper/DashKitDnDWrapper.js +1 -1
  32. package/build/esm/components/DashKitView/DashKitView.js +1 -1
  33. package/build/esm/components/GridItem/GridItem.js +1 -1
  34. package/build/esm/components/GridLayout/GridLayout.d.ts +1 -1
  35. package/build/esm/components/GridLayout/GridLayout.js +3 -2
  36. package/build/esm/components/Item/Item.d.ts +2 -1
  37. package/build/esm/components/MobileLayout/MobileLayout.d.ts +29 -21
  38. package/build/esm/components/MobileLayout/MobileLayout.js +59 -46
  39. package/build/esm/components/OverlayControls/OverlayControls.d.ts +4 -16
  40. package/build/esm/components/OverlayControls/OverlayControls.js +7 -8
  41. package/build/esm/context/DashKitContext.d.ts +30 -3
  42. package/build/esm/context/DashKitContext.js +2 -4
  43. package/build/esm/context/DashKitDnDContext.d.ts +10 -0
  44. package/build/esm/context/DashKitDnDContext.js +2 -0
  45. package/build/esm/context/DashkitOverlayControlsContext.d.ts +13 -0
  46. package/build/esm/context/DashkitOverlayControlsContext.js +2 -0
  47. package/build/esm/context/index.d.ts +3 -0
  48. package/build/esm/context/index.js +3 -0
  49. package/build/esm/hocs/prepareItem.d.ts +2 -1
  50. package/build/esm/hocs/prepareItem.js +1 -1
  51. package/build/esm/hocs/withContext.js +20 -17
  52. package/build/esm/hooks/useDnDItemProps.js +1 -1
  53. package/build/esm/shared/modules/helpers.d.ts +1 -1
  54. package/build/esm/shared/modules/helpers.js +1 -1
  55. package/build/esm/shared/types/state-and-params.d.ts +2 -1
  56. package/build/esm/typings/config.d.ts +1 -0
  57. package/package.json +1 -1
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import type { DashKitProps } from '../components';
3
+ import type { ConfigLayout, ItemParams, ItemState } from '../shared';
4
+ import type { MenuItem } from '../typings';
5
+ export type OverlayControlsCtxShape = Pick<DashKitProps, 'context' | 'overlayControls' | 'itemsStateAndParams' | 'getPreparedCopyItemOptions' | 'onCopyFulfill'> & {
6
+ menu: DashKitProps['overlayMenuItems'] | MenuItem[];
7
+ itemsState?: Record<string, ItemState>;
8
+ itemsParams: Record<string, ItemParams>;
9
+ editItem: DashKitProps['onItemEdit'];
10
+ removeItem: (id: string) => void;
11
+ getLayoutItem: (id: string) => ConfigLayout | void;
12
+ };
13
+ export declare const DashkitOvelayControlsContext: React.Context<void | OverlayControlsCtxShape>;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export const DashkitOvelayControlsContext = React.createContext(undefined);
@@ -0,0 +1,3 @@
1
+ export * from './DashKitContext';
2
+ export * from './DashkitOverlayControlsContext';
3
+ export * from './DashKitDnDContext';
@@ -0,0 +1,3 @@
1
+ export * from './DashKitContext';
2
+ export * from './DashkitOverlayControlsContext';
3
+ export * from './DashKitDnDContext';
@@ -66,6 +66,7 @@ export function prepareItem(Component: any): {
66
66
  onItemMountChange: PropTypes.Requireable<(...args: any[]) => any>;
67
67
  forwardedPluginRef: PropTypes.Requireable<any>;
68
68
  };
69
- contextType: React.Context<any>;
69
+ contextType: React.Context<import("../context").DashKitCtxShape>;
70
70
  };
71
71
  import React from 'react';
72
+ import PropTypes from 'prop-types';
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import isEqual from 'lodash/isEqual';
3
3
  import PropTypes from 'prop-types';
4
- import { DashKitContext } from '../context/DashKitContext';
4
+ import { DashKitContext } from '../context';
5
5
  export function prepareItem(Component) {
6
6
  var _a;
7
7
  return _a = class PrepareItem extends React.Component {
@@ -3,7 +3,7 @@ import React from 'react';
3
3
  import isEqual from 'lodash/isEqual';
4
4
  import pick from 'lodash/pick';
5
5
  import { COMPACT_TYPE_HORIZONTAL_NOWRAP, DEFAULT_GROUP, DEFAULT_WIDGET_HEIGHT, DEFAULT_WIDGET_WIDTH, TEMPORARY_ITEM_ID, } from '../constants/common';
6
- import { DashKitContext, DashKitDnDContext, DashkitOvelayControlsContext, } from '../context/DashKitContext';
6
+ import { DashKitContext, DashKitDnDContext, DashkitOvelayControlsContext } from '../context';
7
7
  import { useDeepEqualMemo } from '../hooks/useDeepEqualMemo';
8
8
  import { getItemsParams, getItemsState } from '../shared';
9
9
  import { UpdateManager, resolveLayoutGroup } from '../utils';
@@ -283,6 +283,7 @@ function useMemoStateContext(props) {
283
283
  }
284
284
  return itemLayout;
285
285
  }, [
286
+ props.registerManager,
286
287
  resetTemporaryLayout,
287
288
  temporaryLayout,
288
289
  dragOverPlugin,
@@ -311,8 +312,6 @@ function useMemoStateContext(props) {
311
312
  });
312
313
  }, [dragPropsContext, onDropProp, setTemporaryLayout, resetTemporaryLayout]);
313
314
  const dashkitContextValue = React.useMemo(() => ({
314
- layout: resultLayout,
315
- temporaryLayout,
316
315
  config: props.config,
317
316
  groups: props.groups,
318
317
  context: props.context,
@@ -322,24 +321,26 @@ function useMemoStateContext(props) {
322
321
  globalParams: props.globalParams,
323
322
  editMode: props.editMode,
324
323
  settings: props.settings,
325
- itemsState,
326
- itemsParams,
327
- registerManager: props.registerManager,
328
- onItemStateAndParamsChange,
329
- onDrop,
330
- onDropDragOver,
331
324
  onItemMountChange: props.onItemMountChange,
332
325
  onItemRender: props.onItemRender,
326
+ draggableHandleClassName: props.draggableHandleClassName,
327
+ registerManager: props.registerManager,
328
+ forwardedMetaRef: props.forwardedMetaRef,
329
+ layout: resultLayout,
330
+ temporaryLayout,
333
331
  layoutChange: onLayoutChange,
334
- getItemsMeta,
335
- reloadItems,
336
332
  memorizeOriginalLayout,
337
333
  revertToOriginalLayout,
338
- forwardedMetaRef: props.forwardedMetaRef,
339
- draggableHandleClassName: props.draggableHandleClassName,
334
+ itemsState,
335
+ itemsParams,
336
+ onItemStateAndParamsChange,
337
+ getItemsMeta,
338
+ reloadItems,
339
+ onDrop,
340
+ onDropDragOver,
340
341
  outerDnDEnable,
341
342
  dragOverPlugin,
342
- /* default bypassing handlers */
343
+ /* default handlers bypass */
343
344
  onDragStart: props.onDragStart,
344
345
  onDrag: props.onDrag,
345
346
  onDragStop: props.onDragStop,
@@ -385,14 +386,15 @@ function useMemoStateContext(props) {
385
386
  const controlsContextValue = React.useMemo(() => ({
386
387
  overlayControls: props.overlayControls,
387
388
  context: props.context,
388
- menu: overlayMenuItems,
389
389
  itemsStateAndParams: props.itemsStateAndParams,
390
+ itemsState,
390
391
  itemsParams,
392
+ getPreparedCopyItemOptions: props.getPreparedCopyItemOptions,
393
+ onCopyFulfill: props.onCopyFulfill,
394
+ menu: overlayMenuItems,
391
395
  editItem: props.onItemEdit,
392
396
  removeItem: onItemRemove,
393
397
  getLayoutItem: getLayoutItem,
394
- getPreparedCopyItemOptions: props.getPreparedCopyItemOptions,
395
- onCopyFulfill: props.onCopyFulfill,
396
398
  }), [
397
399
  props.overlayControls,
398
400
  props.context,
@@ -401,6 +403,7 @@ function useMemoStateContext(props) {
401
403
  props.getPreparedCopyItemOptions,
402
404
  props.onCopyFulfill,
403
405
  overlayMenuItems,
406
+ itemsState,
404
407
  itemsParams,
405
408
  onItemRemove,
406
409
  getLayoutItem,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { DashKitDnDContext } from '../context/DashKitContext';
2
+ import { DashKitDnDContext } from '../context';
3
3
  export const useDnDItemProps = (item) => {
4
4
  const dragContext = React.useContext(DashKitDnDContext);
5
5
  const onDragStart = React.useCallback((e) => {
@@ -18,7 +18,7 @@ export declare function formQueueData({ items, itemsStateAndParams, }: {
18
18
  }): FormedQueueData[];
19
19
  export declare function resolveItemInnerId({ item, itemsStateAndParams, }: {
20
20
  item: Pick<ConfigItemWithTabs, 'data' | 'id'>;
21
- itemsStateAndParams: ItemsStateAndParams;
21
+ itemsStateAndParams?: ItemsStateAndParams;
22
22
  }): string;
23
23
  export declare function getMapItemsIgnores({ items, ignores, itemsStateAndParams, isFirstVersion, }: {
24
24
  items: (ConfigItem | ConfigItemGroup)[];
@@ -108,7 +108,7 @@ export function formQueueData({ items, itemsStateAndParams, }) {
108
108
  export function resolveItemInnerId({ item, itemsStateAndParams, }) {
109
109
  var _a, _b;
110
110
  const { id } = item;
111
- const stateTabId = (_b = (_a = itemsStateAndParams[id]) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.tabId;
111
+ const stateTabId = (_b = (_a = itemsStateAndParams === null || itemsStateAndParams === void 0 ? void 0 : itemsStateAndParams[id]) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.tabId;
112
112
  const { tabs } = item.data;
113
113
  if (stateTabId && tabs.some((tab) => tab.id === stateTabId)) {
114
114
  return stateTabId;
@@ -3,6 +3,7 @@ import { StringParams } from './common';
3
3
  export interface ItemState {
4
4
  [key: string]: any;
5
5
  }
6
+ export type ItemParams = StringParams | Record<string, StringParams>;
6
7
  export interface QueueItem {
7
8
  id: string;
8
9
  tabId?: string;
@@ -16,7 +17,7 @@ export type StateAndParamsMeta = {
16
17
  [META_KEY]: StateAndParamsMetaData;
17
18
  };
18
19
  export type ItemStateAndParams = {
19
- params?: StringParams | Record<string, StringParams>;
20
+ params?: ItemParams;
20
21
  state?: ItemState;
21
22
  };
22
23
  export type ItemStateAndParamsChangeOptions = {
@@ -28,6 +28,7 @@ export type AddNewItemOptions = SetItemOptions & {
28
28
  export interface DashkitGroupRenderProps {
29
29
  config: Config;
30
30
  editMode: boolean;
31
+ isMobile: boolean;
31
32
  items: ConfigItem[];
32
33
  layout: ConfigLayout[];
33
34
  context: any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravity-ui/dashkit",
3
- "version": "8.22.0",
3
+ "version": "8.22.1-beta.1",
4
4
  "description": "Library for rendering dashboard grid layout",
5
5
  "license": "MIT",
6
6
  "repository": {