@gravity-ui/dashkit 9.3.1 → 10.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/README.md +1 -1
  2. package/build/cjs/components/DashKit/DashKit.d.ts +2 -2
  3. package/build/cjs/components/DashKit/DashKit.js +2 -2
  4. package/build/cjs/components/DashKit/DashKit.js.map +1 -1
  5. package/build/cjs/components/DashKitView/DashKitView.d.ts +3 -5
  6. package/build/cjs/components/DashKitView/DashKitView.js.map +1 -1
  7. package/build/cjs/components/GridItem/GridItem.d.ts +32 -2
  8. package/build/cjs/components/GridItem/GridItem.js +9 -42
  9. package/build/cjs/components/GridItem/GridItem.js.map +1 -1
  10. package/build/cjs/components/GridLayout/GridLayout.d.ts +55 -65
  11. package/build/cjs/components/GridLayout/GridLayout.js +39 -17
  12. package/build/cjs/components/GridLayout/GridLayout.js.map +1 -1
  13. package/build/cjs/components/GridLayout/ReactGridLayout.d.ts +13 -2
  14. package/build/cjs/components/GridLayout/ReactGridLayout.js +27 -6
  15. package/build/cjs/components/GridLayout/ReactGridLayout.js.map +1 -1
  16. package/build/cjs/components/GridLayout/types.d.ts +59 -0
  17. package/build/cjs/components/GridLayout/types.js +3 -0
  18. package/build/cjs/components/GridLayout/types.js.map +1 -0
  19. package/build/cjs/components/Item/Item.d.ts +17 -72
  20. package/build/cjs/components/Item/Item.js +3 -12
  21. package/build/cjs/components/Item/Item.js.map +1 -1
  22. package/build/cjs/components/Item/types.d.ts +14 -0
  23. package/build/cjs/components/Item/types.js +3 -0
  24. package/build/cjs/components/Item/types.js.map +1 -0
  25. package/build/cjs/components/MobileLayout/MobileLayout.d.ts +7 -7
  26. package/build/cjs/components/MobileLayout/MobileLayout.js.map +1 -1
  27. package/build/cjs/components/OverlayControls/OverlayControls.d.ts +1 -1
  28. package/build/cjs/components/OverlayControls/OverlayControls.js.map +1 -1
  29. package/build/cjs/context/DashKitContext.d.ts +24 -14
  30. package/build/cjs/context/DashKitContext.js.map +1 -1
  31. package/build/cjs/hocs/prepareItem.d.ts +21 -71
  32. package/build/cjs/hocs/prepareItem.js +8 -29
  33. package/build/cjs/hocs/prepareItem.js.map +1 -1
  34. package/build/cjs/hocs/withContext.d.ts +12 -2
  35. package/build/cjs/hocs/withContext.js +35 -14
  36. package/build/cjs/hocs/withContext.js.map +1 -1
  37. package/build/cjs/package.json +1 -1
  38. package/build/cjs/typings/common.d.ts +6 -4
  39. package/build/cjs/typings/common.js.map +1 -1
  40. package/build/cjs/typings/config.d.ts +3 -7
  41. package/build/cjs/typings/config.js.map +1 -1
  42. package/build/cjs/typings/plugin.d.ts +7 -7
  43. package/build/cjs/typings/plugin.js.map +1 -1
  44. package/build/cjs/utils/register-manager.d.ts +2 -3
  45. package/build/cjs/utils/register-manager.js.map +1 -1
  46. package/build/cjs/utils/update-manager.d.ts +2 -2
  47. package/build/cjs/utils/update-manager.js.map +1 -1
  48. package/build/esm/components/DashKit/DashKit.d.ts +2 -2
  49. package/build/esm/components/DashKit/DashKit.js +2 -2
  50. package/build/esm/components/DashKit/DashKit.js.map +1 -1
  51. package/build/esm/components/DashKitView/DashKitView.d.ts +3 -5
  52. package/build/esm/components/DashKitView/DashKitView.js.map +1 -1
  53. package/build/esm/components/GridItem/GridItem.d.ts +32 -2
  54. package/build/esm/components/GridItem/GridItem.js +9 -42
  55. package/build/esm/components/GridItem/GridItem.js.map +1 -1
  56. package/build/esm/components/GridLayout/GridLayout.d.ts +55 -65
  57. package/build/esm/components/GridLayout/GridLayout.js +39 -17
  58. package/build/esm/components/GridLayout/GridLayout.js.map +1 -1
  59. package/build/esm/components/GridLayout/ReactGridLayout.d.ts +13 -2
  60. package/build/esm/components/GridLayout/ReactGridLayout.js +27 -6
  61. package/build/esm/components/GridLayout/ReactGridLayout.js.map +1 -1
  62. package/build/esm/components/GridLayout/types.d.ts +59 -0
  63. package/build/esm/components/GridLayout/types.js +2 -0
  64. package/build/esm/components/GridLayout/types.js.map +1 -0
  65. package/build/esm/components/Item/Item.d.ts +17 -72
  66. package/build/esm/components/Item/Item.js +3 -12
  67. package/build/esm/components/Item/Item.js.map +1 -1
  68. package/build/esm/components/Item/types.d.ts +14 -0
  69. package/build/esm/components/Item/types.js +2 -0
  70. package/build/esm/components/Item/types.js.map +1 -0
  71. package/build/esm/components/MobileLayout/MobileLayout.d.ts +7 -7
  72. package/build/esm/components/MobileLayout/MobileLayout.js.map +1 -1
  73. package/build/esm/components/OverlayControls/OverlayControls.d.ts +1 -1
  74. package/build/esm/components/OverlayControls/OverlayControls.js.map +1 -1
  75. package/build/esm/context/DashKitContext.d.ts +24 -14
  76. package/build/esm/context/DashKitContext.js.map +1 -1
  77. package/build/esm/hocs/prepareItem.d.ts +21 -71
  78. package/build/esm/hocs/prepareItem.js +8 -29
  79. package/build/esm/hocs/prepareItem.js.map +1 -1
  80. package/build/esm/hocs/withContext.d.ts +12 -2
  81. package/build/esm/hocs/withContext.js +35 -14
  82. package/build/esm/hocs/withContext.js.map +1 -1
  83. package/build/esm/package.json +1 -1
  84. package/build/esm/typings/common.d.ts +6 -4
  85. package/build/esm/typings/common.js.map +1 -1
  86. package/build/esm/typings/config.d.ts +3 -7
  87. package/build/esm/typings/config.js.map +1 -1
  88. package/build/esm/typings/plugin.d.ts +7 -7
  89. package/build/esm/typings/plugin.js.map +1 -1
  90. package/build/esm/utils/register-manager.d.ts +2 -3
  91. package/build/esm/utils/register-manager.js.map +1 -1
  92. package/build/esm/utils/update-manager.d.ts +2 -2
  93. package/build/esm/utils/update-manager.js.map +1 -1
  94. package/package.json +17 -7
@@ -1 +1 @@
1
- {"version":3,"file":"prepareItem.js","sourceRoot":"../../../src","sources":["hocs/prepareItem.js"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport isEqual from 'lodash/isEqual';\nimport PropTypes from 'prop-types';\n\nimport {DashKitContext} from '../context';\n\nexport function prepareItem(Component) {\n return class PrepareItem extends React.Component {\n static propTypes = {\n gridLayout: PropTypes.object,\n adjustWidgetLayout: PropTypes.func.isRequired,\n layout: PropTypes.array,\n id: PropTypes.string,\n item: PropTypes.object,\n shouldItemUpdate: PropTypes.bool,\n width: PropTypes.number,\n height: PropTypes.number,\n transform: PropTypes.string,\n isPlaceholder: PropTypes.bool,\n\n onItemRender: PropTypes.func,\n onItemMountChange: PropTypes.func,\n\n forwardedPluginRef: PropTypes.any,\n };\n\n shouldComponentUpdate(nextProps) {\n const {width, height, transform} = this.props;\n const {width: widthNext, height: heightNext, transform: transformNext} = nextProps;\n if (\n !nextProps.shouldItemUpdate &&\n width === widthNext &&\n height === heightNext &&\n transform === transformNext\n ) {\n return false;\n }\n return true;\n }\n\n static contextType = DashKitContext;\n\n _onStateAndParamsChange = (stateAndParams, options) => {\n this.context.onItemStateAndParamsChange(this.props.id, stateAndParams, options);\n };\n\n _currentRenderProps = {};\n getRenderProps = () => {\n const {id, width, height, item, adjustWidgetLayout, layout, isPlaceholder, gridLayout} =\n this.props;\n const {itemsState, itemsParams, registerManager, settings, context, editMode} =\n this.context;\n const {data, defaults, namespace} = item;\n\n const rendererProps = {\n data,\n editMode,\n params: itemsParams[id],\n state: itemsState[id],\n onStateAndParamsChange: this._onStateAndParamsChange,\n width,\n height,\n id,\n defaults,\n namespace,\n settings,\n context,\n layout,\n gridLayout: gridLayout || registerManager.gridLayout,\n adjustWidgetLayout,\n isPlaceholder,\n };\n\n const changedProp = Object.entries(rendererProps).find(([key, value]) => {\n // Checking gridLayoout deep as groups gridProperties method has tendancy to creat new objects\n if (key === 'gridLayout') {\n return !isEqual(this._currentRenderProps[key], value);\n }\n\n return this._currentRenderProps[key] !== value;\n });\n\n if (changedProp) {\n this._currentRenderProps = rendererProps;\n }\n\n return this._currentRenderProps;\n };\n\n render() {\n const {item, isPlaceholder, forwardedPluginRef, onItemMountChange, onItemRender} =\n this.props;\n const {registerManager} = this.context;\n const {type} = item;\n\n return (\n <Component\n forwardedPluginRef={forwardedPluginRef}\n rendererProps={this.getRenderProps()}\n registerManager={registerManager}\n type={type}\n isPlaceholder={isPlaceholder}\n onItemMountChange={onItemMountChange}\n onItemRender={onItemRender}\n item={item}\n />\n );\n }\n };\n}\n"]}
1
+ {"version":3,"file":"prepareItem.js","sourceRoot":"../../../src","sources":["hocs/prepareItem.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport isEqual from 'lodash/isEqual';\n\nimport type {DashKitProps} from '../components/DashKit';\nimport type {ItemProps, RendererProps} from '../components/Item/types';\nimport {DashKitContext} from '../context';\nimport type {ConfigItem, ConfigLayout} from '../shared';\nimport type {PluginRef, PluginWidgetProps, ReactGridLayoutProps} from '../typings';\n\ntype PrepareItemProps = {\n gridLayout?: ReactGridLayoutProps;\n adjustWidgetLayout: PluginWidgetProps['adjustWidgetLayout'];\n layout: ConfigLayout[];\n id: string;\n item: ConfigItem;\n shouldItemUpdate?: boolean;\n width?: number;\n height?: number;\n transform?: string;\n isPlaceholder?: boolean;\n\n onItemRender?: DashKitProps['onItemRender'];\n onItemMountChange?: DashKitProps['onItemMountChange'];\n\n forwardedPluginRef?: (ref: PluginRef) => void;\n};\n\nexport function prepareItem(\n WrappedComponent: React.ComponentType<ItemProps>,\n): React.ComponentClass<PrepareItemProps> {\n return class PrepareItem extends React.Component<PrepareItemProps> {\n static contextType = DashKitContext;\n context!: React.ContextType<typeof DashKitContext>;\n\n _currentRenderProps: RendererProps = {} as RendererProps;\n\n shouldComponentUpdate(nextProps: PrepareItemProps) {\n const {width, height, transform} = this.props;\n const {width: widthNext, height: heightNext, transform: transformNext} = nextProps;\n\n return (\n nextProps.shouldItemUpdate ||\n width !== widthNext ||\n height !== heightNext ||\n transform !== transformNext\n );\n }\n\n _onStateAndParamsChange: PluginWidgetProps['onStateAndParamsChange'] = (\n stateAndParams,\n options,\n ) => {\n this.context.onItemStateAndParamsChange(this.props.id, stateAndParams, options);\n };\n\n getRenderProps = (): RendererProps => {\n const {id, width, height, item, adjustWidgetLayout, layout, gridLayout} = this.props;\n const {itemsState, itemsParams, registerManager, settings, context, editMode} =\n this.context;\n const {data, defaults, namespace} = item;\n\n const rendererProps: RendererProps = {\n data,\n editMode,\n params: itemsParams[id],\n state: itemsState[id],\n onStateAndParamsChange: this._onStateAndParamsChange,\n width,\n height,\n id,\n defaults,\n namespace,\n settings,\n context,\n layout,\n gridLayout: gridLayout || registerManager.gridLayout,\n adjustWidgetLayout,\n };\n\n const changedProp = Object.entries(rendererProps).find(([key, value]) => {\n // Checking gridLayoout deep as groups gridProperties method has tendancy to creat new objects\n if (key === 'gridLayout') {\n return !isEqual(this._currentRenderProps[key as keyof RendererProps], value);\n }\n\n return this._currentRenderProps[key as keyof RendererProps] !== value;\n });\n\n if (changedProp) {\n this._currentRenderProps = rendererProps;\n }\n\n return this._currentRenderProps;\n };\n\n render() {\n const {item, isPlaceholder, forwardedPluginRef, onItemMountChange, onItemRender} =\n this.props;\n const {registerManager} = this.context;\n\n return (\n <WrappedComponent\n forwardedPluginRef={forwardedPluginRef}\n rendererProps={this.getRenderProps()}\n registerManager={registerManager}\n isPlaceholder={isPlaceholder}\n onItemMountChange={onItemMountChange}\n onItemRender={onItemRender}\n item={item}\n />\n );\n }\n };\n}\n"]}
@@ -1,4 +1,14 @@
1
- export function withContext(Component: any): {
2
- (props: any): JSX.Element;
1
+ import React from 'react';
2
+ import type { DashKitProps } from "../components/DashKit/index.js";
3
+ import type { DashkitPropsPassedToCtx } from "../context/index.js";
4
+ import type { ConfigLayout } from "../shared/index.js";
5
+ import type { RegisterManager } from "../utils/index.js";
6
+ export type DashKitWithContextProps = DashkitPropsPassedToCtx & Pick<DashKitProps, 'overlayControls' | 'overlayMenuItems' | 'getPreparedCopyItemOptions' | 'onCopyFulfill'> & Required<Pick<DashKitProps, 'itemsStateAndParams' | 'defaultGlobalParams' | 'globalParams' | 'context' | 'settings' | 'onItemEdit' | 'onChange' | 'onDrop'>> & {
7
+ layout: ConfigLayout[];
8
+ registerManager: RegisterManager;
9
+ forwardedMetaRef: React.ForwardedRef<any>;
10
+ };
11
+ export declare function withContext(Component: React.ComponentType): {
12
+ (props: DashKitWithContextProps): JSX.Element;
3
13
  displayName: string;
4
14
  };
@@ -8,6 +8,18 @@ import { useDeepEqualMemo } from "../hooks/useDeepEqualMemo.js";
8
8
  import { getAllConfigItems, getItemsParams, getItemsState } from "../shared/index.js";
9
9
  import { UpdateManager, resolveLayoutGroup } from "../utils/index.js";
10
10
  const ITEM_PROPS = ['i', 'h', 'w', 'x', 'y', 'parent'];
11
+ const hasGetMeta = (value) => {
12
+ return (typeof value === 'object' &&
13
+ value !== null &&
14
+ 'getMeta' in value &&
15
+ typeof value.getMeta === 'function');
16
+ };
17
+ const hasReload = (value) => {
18
+ return (typeof value === 'object' &&
19
+ value !== null &&
20
+ 'reload' in value &&
21
+ typeof value.reload === 'function');
22
+ };
11
23
  function useMemoStateContext(props) {
12
24
  // так как мы не хотим хранить параметры виджета с активированной автовысотой в сторе и на сервере, актуальный
13
25
  // (видимый юзером в конкретный момент времени) лэйаут (массив объектов с данными о ширине, высоте,
@@ -38,7 +50,7 @@ function useMemoStateContext(props) {
38
50
  const currentInnerLayout = layout.map((item) => {
39
51
  if (item.i in originalLayouts.current) {
40
52
  // eslint-disable-next-line no-unused-vars
41
- const _a = originalLayouts.current[item.i], { parent } = _a, originalCopy = __rest(_a, ["parent"]);
53
+ const _a = originalLayouts.current[item.i], { parent: _parent } = _a, originalCopy = __rest(_a, ["parent"]);
42
54
  // Updating original if parent has changed and saving copy as original
43
55
  // or leaving default
44
56
  if (item.parent) {
@@ -130,7 +142,8 @@ function useMemoStateContext(props) {
130
142
  const defaultProps = props.registerManager.gridLayout || {};
131
143
  const nowrapGroups = {};
132
144
  let hasNowrapGroups = false;
133
- if (defaultProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP) {
145
+ if (defaultProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP &&
146
+ defaultProps.cols !== undefined) {
134
147
  nowrapGroups[DEFAULT_GROUP] = {
135
148
  items: [],
136
149
  leftSpace: defaultProps.cols,
@@ -141,7 +154,9 @@ function useMemoStateContext(props) {
141
154
  groups.forEach((group) => {
142
155
  var _a;
143
156
  const resultProps = ((_a = group.gridProperties) === null || _a === void 0 ? void 0 : _a.call(group, defaultProps)) || {};
144
- if (resultProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP) {
157
+ if (resultProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP &&
158
+ resultProps.cols !== undefined &&
159
+ group.id) {
145
160
  nowrapGroups[group.id] = {
146
161
  items: [],
147
162
  leftSpace: resultProps.cols,
@@ -192,12 +207,12 @@ function useMemoStateContext(props) {
192
207
  const getItemsMeta = React.useCallback((pluginsRefs) => {
193
208
  return pluginsRefs
194
209
  .map((ref) => {
195
- if (!(ref && typeof ref.getMeta === 'function')) {
210
+ if (!(ref && hasGetMeta(ref))) {
196
211
  return undefined;
197
212
  }
198
213
  return ref.getMeta();
199
214
  })
200
- .filter(Boolean);
215
+ .filter((item) => item !== undefined);
201
216
  }, []);
202
217
  const resultLayout = React.useMemo(() => {
203
218
  const adjusted = adjustedLayouts.current;
@@ -208,7 +223,7 @@ function useMemoStateContext(props) {
208
223
  if (widgetId in adjusted || widgetId in nowrapAdjust) {
209
224
  original[widgetId] = item;
210
225
  // eslint-disable-next-line no-unused-vars
211
- const _a = adjusted[widgetId] || item, { parent } = _a, adjustedItem = __rest(_a, ["parent"]);
226
+ const _a = adjusted[widgetId] || item, { parent: _parent2 } = _a, adjustedItem = __rest(_a, ["parent"]);
212
227
  adjustedItem.w = item.w;
213
228
  adjustedItem.x = item.x;
214
229
  adjustedItem.y = item.y;
@@ -229,7 +244,7 @@ function useMemoStateContext(props) {
229
244
  });
230
245
  }, [props.layout, layoutUpdateCounter]);
231
246
  const reloadItems = React.useCallback((pluginsRefs, data) => {
232
- pluginsRefs.forEach((ref) => ref && ref.reload && ref.reload(data));
247
+ pluginsRefs.forEach((ref) => ref && hasReload(ref) && ref.reload(data));
233
248
  }, []);
234
249
  const dragPropsContext = dndContext === null || dndContext === void 0 ? void 0 : dndContext.dragProps;
235
250
  const onDropDragOverContext = dndContext === null || dndContext === void 0 ? void 0 : dndContext.onDropDragOver;
@@ -252,27 +267,33 @@ function useMemoStateContext(props) {
252
267
  resetTemporaryLayout();
253
268
  return false;
254
269
  }
270
+ let dragItemType;
255
271
  let defaultLayout;
256
272
  if (sharedItem) {
257
273
  const { type, h, w } = sharedItem;
274
+ dragItemType = type;
258
275
  const _defaults = props.registerManager.getItem(type);
259
276
  defaultLayout = _defaults ? Object.assign(Object.assign({}, _defaults.defaultLayout), { h, w }) : { h, w };
260
277
  }
261
278
  else if (dragOverPlugin) {
279
+ dragItemType = dragOverPlugin.type;
262
280
  defaultLayout = dragOverPlugin.defaultLayout;
263
281
  }
264
282
  else {
265
283
  return false;
266
284
  }
267
285
  let maxW = gridProps.cols;
268
- const maxH = Math.min(gridProps.maxRows || Infinity, defaultLayout.maxH || Infinity);
269
- if (gridProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP) {
286
+ const maxH = Math.min(gridProps.maxRows || Infinity, 'maxH' in defaultLayout && defaultLayout.maxH ? defaultLayout.maxH : Infinity);
287
+ if (gridProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP && gridProps.cols) {
270
288
  maxW = groupLayout.reduce((memo, item) => memo - item.w, gridProps.cols);
271
289
  }
272
290
  if (maxW === 0 ||
273
291
  maxH === 0 ||
274
- maxW < defaultLayout.minW ||
275
- maxH < defaultLayout.minH) {
292
+ ('minW' in defaultLayout &&
293
+ defaultLayout.minW &&
294
+ maxW &&
295
+ maxW < defaultLayout.minW) ||
296
+ ('minH' in defaultLayout && defaultLayout.minH && maxH < defaultLayout.minH)) {
276
297
  return false;
277
298
  }
278
299
  const { h = (defaultLayout === null || defaultLayout === void 0 ? void 0 : defaultLayout.h) || DEFAULT_WIDGET_HEIGHT, w = (defaultLayout === null || defaultLayout === void 0 ? void 0 : defaultLayout.w) || DEFAULT_WIDGET_WIDTH, } = (dragPropsContext === null || dragPropsContext === void 0 ? void 0 : dragPropsContext.layout) || {};
@@ -280,7 +301,7 @@ function useMemoStateContext(props) {
280
301
  h: maxH ? Math.min(h, maxH) : h,
281
302
  w: maxW ? Math.min(w, maxW) : w,
282
303
  };
283
- if ((onDropDragOverContext === null || onDropDragOverContext === void 0 ? void 0 : onDropDragOverContext(Object.assign(Object.assign(Object.assign({}, sharedItem), itemLayout), { parent: group, type: (sharedItem === null || sharedItem === void 0 ? void 0 : sharedItem.type) || (dragOverPlugin === null || dragOverPlugin === void 0 ? void 0 : dragOverPlugin.type) }), sharedItem !== null && sharedItem !== void 0 ? sharedItem : null)) === false) {
304
+ if ((onDropDragOverContext === null || onDropDragOverContext === void 0 ? void 0 : onDropDragOverContext(Object.assign(Object.assign(Object.assign({}, sharedItem), itemLayout), { parent: group, type: dragItemType }), sharedItem !== null && sharedItem !== void 0 ? sharedItem : null)) === false) {
284
305
  return false;
285
306
  }
286
307
  return itemLayout;
@@ -301,7 +322,7 @@ function useMemoStateContext(props) {
301
322
  data: [...newLayout, item],
302
323
  dragProps: dragPropsContext,
303
324
  });
304
- onDropProp({
325
+ onDropProp === null || onDropProp === void 0 ? void 0 : onDropProp({
305
326
  newLayout: newLayout.reduce((memo, l) => {
306
327
  if (l.i !== item.i) {
307
328
  memo.push(pick(l, ITEM_PROPS));
@@ -425,7 +446,7 @@ export function withContext(Component) {
425
446
  React.createElement(DashkitOvelayControlsContext.Provider, { value: controlsContextValue },
426
447
  React.createElement(Component, null))));
427
448
  };
428
- WithContext.displayName = `withContext(${Component.displayName || Component.name || 'Component'}`;
449
+ WithContext.displayName = `withContext(${Component.displayName || Component.name || 'Component'})`;
429
450
  return WithContext;
430
451
  }
431
452
  //# sourceMappingURL=withContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"withContext.js","sourceRoot":"../../../src","sources":["hocs/withContext.js"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport isEqual from 'lodash/isEqual';\nimport pick from 'lodash/pick';\n\nimport {\n COMPACT_TYPE_HORIZONTAL_NOWRAP,\n DEFAULT_GROUP,\n DEFAULT_WIDGET_HEIGHT,\n DEFAULT_WIDGET_WIDTH,\n TEMPORARY_ITEM_ID,\n} from '../constants/common';\nimport {DashKitContext, DashKitDnDContext, DashkitOvelayControlsContext} from '../context';\nimport {useDeepEqualMemo} from '../hooks/useDeepEqualMemo';\nimport {getAllConfigItems, getItemsParams, getItemsState} from '../shared';\nimport {UpdateManager, resolveLayoutGroup} from '../utils';\n\nconst ITEM_PROPS = ['i', 'h', 'w', 'x', 'y', 'parent'];\n\nfunction useMemoStateContext(props) {\n // так как мы не хотим хранить параметры виджета с активированной автовысотой в сторе и на сервере, актуальный\n // (видимый юзером в конкретный момент времени) лэйаут (массив объектов с данными о ширине, высоте,\n // расположении конкретного виджета на сетке) будет храниться в стейте, но, для того, чтобы в стор попадал\n // лэйаут без учета вижетов с активированной автовысотой, в момент \"подстройки\" высоты виджета значение h\n // (высота) из конфига будет запоминаться в originalLayouts, новое значение высоты в adjustedLayouts\n\n const originalLayouts = React.useRef({});\n const adjustedLayouts = React.useRef({});\n const nowrapAdjustedLayouts = React.useRef({});\n\n const [temporaryLayout, setTemporaryLayout] = React.useState(null);\n const resetTemporaryLayout = React.useCallback(\n () => setTemporaryLayout(null),\n [setTemporaryLayout],\n );\n\n const dndContext = React.useContext(DashKitDnDContext);\n const outerDnDEnable = Boolean(dndContext);\n\n // TODO: need move originalLayouts, adjustedLayouts to state\n const [layoutUpdateCounter, forceUpdateLayout] = React.useState(0);\n\n const onChange = React.useCallback(\n ({\n config = props.config,\n itemsStateAndParams = props.itemsStateAndParams,\n groups = props.groups,\n }) => {\n if (\n !(\n isEqual(config, props.config) &&\n isEqual(itemsStateAndParams, props.itemsStateAndParams) &&\n isEqual(groups, props.groups)\n )\n ) {\n props.onChange({config, itemsStateAndParams, groups});\n }\n },\n [props.config, props.groups, props.itemsStateAndParams, props.onChange],\n );\n\n // каллбэк вызывающийся при изменение лэйаута сетки, первым аргументом приходит актуальный конфиг лэйаута,\n // т.е. если на текущей сетке есть виджеты, с активированной опцией автовысоты, их параметр \"h\" будет\n // \"подстроенный\"; чтобы, для сохранения в сторе \"ушли\" значения без учёта подстройки (как если бы у этих\n // виджетов автовысота была деактивирована) корректируем их используя this.originalLayouts\n const onLayoutChange = React.useCallback(\n (layout) => {\n const currentInnerLayout = layout.map((item) => {\n if (item.i in originalLayouts.current) {\n // eslint-disable-next-line no-unused-vars\n const {parent, ...originalCopy} = originalLayouts.current[item.i];\n\n // Updating original if parent has changed and saving copy as original\n // or leaving default\n if (item.parent) {\n originalCopy.parent = item.parent;\n }\n originalCopy.w = item.w;\n originalCopy.x = item.x;\n originalCopy.y = item.y;\n\n return originalCopy;\n } else {\n return {...item};\n }\n });\n\n const newConfig = UpdateManager.updateLayout({\n layout: currentInnerLayout,\n config: props.config,\n });\n\n if (!isEqual(newConfig.layout, props.config.layout)) {\n onChange({config: newConfig});\n }\n },\n [props.config, onChange],\n );\n\n const getLayoutItem = React.useCallback(\n (id) => {\n return props.config.layout.find(({i}) => i === id);\n },\n [props.config.layout],\n );\n\n // to calculate items, only memorization of items and globalItems is important\n const configItems = React.useMemo(\n () => getAllConfigItems(props.config),\n [props.config.items, props.config.globalItems],\n );\n\n const onItemRemove = React.useCallback(\n (id) => {\n delete nowrapAdjustedLayouts.current[id];\n delete adjustedLayouts.current[id];\n delete originalLayouts.current[id];\n\n if (id === TEMPORARY_ITEM_ID) {\n resetTemporaryLayout();\n } else {\n if (temporaryLayout) {\n setTemporaryLayout({\n ...temporaryLayout,\n data: temporaryLayout.data.filter(({i}) => i !== id),\n });\n }\n\n onChange(\n UpdateManager.removeItem({\n id,\n config: props.config,\n itemsStateAndParams: props.itemsStateAndParams,\n }),\n );\n }\n },\n [\n resetTemporaryLayout,\n temporaryLayout,\n onChange,\n props.config,\n props.itemsStateAndParams,\n setTemporaryLayout,\n ],\n );\n\n const onItemStateAndParamsChange = React.useCallback(\n (id, stateAndParams, options) => {\n onChange({\n itemsStateAndParams: UpdateManager.changeStateAndParams({\n id,\n config: props.config,\n stateAndParams,\n itemsStateAndParams: props.itemsStateAndParams,\n options,\n }),\n });\n },\n [props.config, props.itemsStateAndParams, onChange],\n );\n\n const memorizeOriginalLayout = React.useCallback(\n (widgetId, preAutoHeightLayout, postAutoHeightLayout) => {\n let needUpdateLayout = false;\n if (!(widgetId in originalLayouts.current)) {\n originalLayouts.current[widgetId] = preAutoHeightLayout;\n needUpdateLayout = true;\n }\n if (adjustedLayouts.current[widgetId] !== postAutoHeightLayout) {\n adjustedLayouts.current[widgetId] = postAutoHeightLayout;\n needUpdateLayout = true;\n }\n\n if (needUpdateLayout) {\n forceUpdateLayout((prev) => prev + 1);\n }\n },\n [],\n );\n\n const revertToOriginalLayout = React.useCallback((widgetId) => {\n const needUpdateLayout =\n widgetId in adjustedLayouts.current || widgetId in originalLayouts.current;\n delete adjustedLayouts.current[widgetId];\n delete originalLayouts.current[widgetId];\n if (needUpdateLayout) {\n forceUpdateLayout((prev) => prev + 1);\n }\n }, []);\n\n React.useMemo(() => {\n const groups = props.groups;\n const layout = props.layout;\n const defaultProps = props.registerManager.gridLayout || {};\n const nowrapGroups = {};\n let hasNowrapGroups = false;\n\n if (defaultProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP) {\n nowrapGroups[DEFAULT_GROUP] = {\n items: [],\n leftSpace: defaultProps.cols,\n };\n hasNowrapGroups = true;\n }\n\n if (groups) {\n groups.forEach((group) => {\n const resultProps = group.gridProperties?.(defaultProps) || {};\n\n if (resultProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP) {\n nowrapGroups[group.id] = {\n items: [],\n leftSpace: resultProps.cols,\n };\n hasNowrapGroups = true;\n }\n });\n }\n\n if (hasNowrapGroups) {\n layout.forEach((item) => {\n const widgetId = item.i;\n const parentId = resolveLayoutGroup(item);\n\n if (nowrapGroups[parentId]) {\n // Collecting nowrap elements\n nowrapGroups[parentId].items.push(item);\n nowrapGroups[parentId].leftSpace -= item.w;\n } else if (nowrapAdjustedLayouts.current[widgetId]) {\n // If element is not in horizontal-nowrap cleaning up and reverting adjustLayout values\n delete nowrapAdjustedLayouts.current[widgetId];\n }\n });\n\n Object.entries(nowrapGroups).forEach(([, {items, leftSpace}]) => {\n items.forEach((item) => {\n // setting maxW with adjustLayout fields and saving previous\n nowrapAdjustedLayouts.current[item.i] = item.w + leftSpace;\n });\n });\n }\n }, [props.registerManager, props.groups, props.layout]);\n\n const itemsParams = useDeepEqualMemo(\n () =>\n getItemsParams({\n defaultGlobalParams: props.defaultGlobalParams,\n globalParams: props.globalParams,\n config: props.config,\n itemsStateAndParams: props.itemsStateAndParams,\n plugins: props.registerManager.getPlugins(),\n }),\n [\n props.defaultGlobalParams,\n props.globalParams,\n props.config,\n props.itemsStateAndParams,\n props.registerManager,\n ],\n );\n\n const itemsState = useDeepEqualMemo(\n () =>\n getItemsState({\n config: props.config,\n itemsStateAndParams: props.itemsStateAndParams,\n }),\n [props.config, props.itemsStateAndParams],\n );\n\n const getItemsMeta = React.useCallback((pluginsRefs) => {\n return pluginsRefs\n .map((ref) => {\n if (!(ref && typeof ref.getMeta === 'function')) {\n return undefined;\n }\n return ref.getMeta();\n })\n .filter(Boolean);\n }, []);\n\n const resultLayout = React.useMemo(() => {\n const adjusted = adjustedLayouts.current;\n const original = originalLayouts.current;\n const nowrapAdjust = nowrapAdjustedLayouts.current;\n\n return props.layout.map((item) => {\n const widgetId = item.i;\n\n if (widgetId in adjusted || widgetId in nowrapAdjust) {\n original[widgetId] = item;\n // eslint-disable-next-line no-unused-vars\n const {parent, ...adjustedItem} = adjusted[widgetId] || item;\n\n adjustedItem.w = item.w;\n adjustedItem.x = item.x;\n adjustedItem.y = item.y;\n\n if (item.parent) {\n adjustedItem.parent = item.parent;\n }\n\n if (widgetId in nowrapAdjust) {\n adjustedItem.maxW = nowrapAdjust[widgetId];\n }\n\n return adjustedItem;\n } else {\n if (widgetId in original) {\n delete original[widgetId];\n }\n return item;\n }\n });\n }, [props.layout, layoutUpdateCounter]);\n\n const reloadItems = React.useCallback((pluginsRefs, data) => {\n pluginsRefs.forEach((ref) => ref && ref.reload && ref.reload(data));\n }, []);\n\n const dragPropsContext = dndContext?.dragProps;\n const onDropDragOverContext = dndContext?.onDropDragOver;\n\n const dragOverPlugin = React.useMemo(() => {\n if (!dragPropsContext) {\n return null;\n }\n\n const pluginType = dragPropsContext.type;\n\n if (props.registerManager.check(pluginType)) {\n return props.registerManager.getItem(pluginType);\n } else {\n // eslint-disable-next-line no-console\n console.error(`Uknown pluginType: ${pluginType}`);\n return null;\n }\n }, [dragPropsContext, props.registerManager]);\n\n const onDropDragOver = React.useCallback(\n (_e, group, gridProps, groupLayout, sharedItem) => {\n if (temporaryLayout) {\n resetTemporaryLayout();\n return false;\n }\n\n let defaultLayout;\n if (sharedItem) {\n const {type, h, w} = sharedItem;\n const _defaults = props.registerManager.getItem(type);\n defaultLayout = _defaults ? {..._defaults.defaultLayout, h, w} : {h, w};\n } else if (dragOverPlugin) {\n defaultLayout = dragOverPlugin.defaultLayout;\n } else {\n return false;\n }\n\n let maxW = gridProps.cols;\n const maxH = Math.min(gridProps.maxRows || Infinity, defaultLayout.maxH || Infinity);\n\n if (gridProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP) {\n maxW = groupLayout.reduce((memo, item) => memo - item.w, gridProps.cols);\n }\n\n if (\n maxW === 0 ||\n maxH === 0 ||\n maxW < defaultLayout.minW ||\n maxH < defaultLayout.minH\n ) {\n return false;\n }\n\n const {\n h = defaultLayout?.h || DEFAULT_WIDGET_HEIGHT,\n w = defaultLayout?.w || DEFAULT_WIDGET_WIDTH,\n } = dragPropsContext?.layout || {};\n\n const itemLayout = {\n h: maxH ? Math.min(h, maxH) : h,\n w: maxW ? Math.min(w, maxW) : w,\n };\n\n if (\n onDropDragOverContext?.(\n {\n ...sharedItem,\n ...itemLayout,\n parent: group,\n type: sharedItem?.type || dragOverPlugin?.type,\n },\n sharedItem ?? null,\n ) === false\n ) {\n return false;\n }\n\n return itemLayout;\n },\n [\n props.registerManager,\n resetTemporaryLayout,\n temporaryLayout,\n dragOverPlugin,\n dragPropsContext,\n onDropDragOverContext,\n ],\n );\n\n const onDropProp = props.onDrop;\n const onDrop = React.useCallback(\n (newLayout, item) => {\n if (!dragPropsContext) {\n return;\n }\n\n setTemporaryLayout({\n data: [...newLayout, item],\n dragProps: dragPropsContext,\n });\n\n onDropProp({\n newLayout: newLayout.reduce((memo, l) => {\n if (l.i !== item.i) {\n memo.push(pick(l, ITEM_PROPS));\n }\n\n return memo;\n }, []),\n itemLayout: pick(item, ITEM_PROPS),\n commit: resetTemporaryLayout,\n dragProps: dragPropsContext,\n });\n },\n [dragPropsContext, onDropProp, setTemporaryLayout, resetTemporaryLayout],\n );\n\n const dashkitContextValue = React.useMemo(\n () => ({\n config: props.config,\n configItems,\n groups: props.groups,\n context: props.context,\n noOverlay: props.noOverlay,\n focusable: props.focusable,\n defaultGlobalParams: props.globalParams,\n globalParams: props.globalParams,\n editMode: props.editMode,\n settings: props.settings,\n onItemMountChange: props.onItemMountChange,\n onItemRender: props.onItemRender,\n draggableHandleClassName: props.draggableHandleClassName,\n\n registerManager: props.registerManager,\n forwardedMetaRef: props.forwardedMetaRef,\n\n layout: resultLayout,\n temporaryLayout,\n layoutChange: onLayoutChange,\n memorizeOriginalLayout,\n revertToOriginalLayout,\n\n itemsState,\n itemsParams,\n onItemStateAndParamsChange,\n\n getItemsMeta,\n reloadItems,\n\n onDrop,\n onDropDragOver,\n outerDnDEnable,\n dragOverPlugin,\n\n onItemFocus: props.onItemFocus,\n onItemBlur: props.onItemBlur,\n\n /* default handlers bypass */\n onDragStart: props.onDragStart,\n onDrag: props.onDrag,\n onDragStop: props.onDragStop,\n onResizeStart: props.onResizeStart,\n onResize: props.onResize,\n onResizeStop: props.onResizeStop,\n }),\n [\n resultLayout,\n temporaryLayout,\n props.config,\n configItems,\n props.groups,\n props.context,\n props.noOverlay,\n props.focusable,\n props.globalParams,\n props.editMode,\n props.settings,\n itemsState,\n itemsParams,\n props.registerManager,\n onItemStateAndParamsChange,\n onDrop,\n onDropDragOver,\n onLayoutChange,\n props.onItemMountChange,\n props.onItemRender,\n getItemsMeta,\n reloadItems,\n memorizeOriginalLayout,\n revertToOriginalLayout,\n props.forwardedMetaRef,\n props.draggableHandleClassName,\n outerDnDEnable,\n dragOverPlugin,\n\n props.onItemFocus,\n props.onItemBlur,\n\n props.onDragStart,\n props.onDrag,\n props.onDragStop,\n props.onResizeStart,\n props.onResize,\n props.onResizeStop,\n ],\n );\n\n const overlayMenuItems = props.overlayMenuItems || props.registerManager.settings.menu;\n const controlsContextValue = React.useMemo(\n () => ({\n overlayControls: props.overlayControls,\n context: props.context,\n\n itemsStateAndParams: props.itemsStateAndParams,\n itemsState,\n itemsParams,\n\n getPreparedCopyItemOptions: props.getPreparedCopyItemOptions,\n onCopyFulfill: props.onCopyFulfill,\n\n menu: overlayMenuItems,\n\n editItem: props.onItemEdit,\n removeItem: onItemRemove,\n getLayoutItem: getLayoutItem,\n }),\n [\n props.overlayControls,\n props.context,\n props.itemsStateAndParams,\n props.onItemEdit,\n props.getPreparedCopyItemOptions,\n props.onCopyFulfill,\n overlayMenuItems,\n itemsState,\n itemsParams,\n onItemRemove,\n getLayoutItem,\n ],\n );\n\n return {controlsContextValue, dashkitContextValue};\n}\n\nexport function withContext(Component) {\n const WithContext = (props) => {\n const {dashkitContextValue, controlsContextValue} = useMemoStateContext(props);\n\n return (\n <DashKitContext.Provider value={dashkitContextValue}>\n <DashkitOvelayControlsContext.Provider value={controlsContextValue}>\n <Component />\n </DashkitOvelayControlsContext.Provider>\n </DashKitContext.Provider>\n );\n };\n\n WithContext.displayName = `withContext(${\n Component.displayName || Component.name || 'Component'\n }`;\n\n return WithContext;\n}\n"]}
1
+ {"version":3,"file":"withContext.js","sourceRoot":"../../../src","sources":["hocs/withContext.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,OAAO,0BAAuB;AACrC,OAAO,IAAI,uBAAoB;AAG/B,OAAO,EACH,8BAA8B,EAC9B,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,GACpB,+BAA4B;AAC7B,OAAO,EAAC,cAAc,EAAE,iBAAiB,EAAE,4BAA4B,EAAC,4BAAmB;AAO3F,OAAO,EAAC,gBAAgB,EAAC,qCAAkC;AAE3D,OAAO,EAAC,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAC,2BAAkB;AAG3E,OAAO,EAAC,aAAa,EAAE,kBAAkB,EAAC,0BAAiB;AAE3D,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAU,CAAC;AAoChE,MAAM,UAAU,GAAG,CAAC,KAAgB,EAA0C,EAAE;IAC5E,OAAO,CACH,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,SAAS,IAAI,KAAK;QAClB,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,CACtC,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CACd,KAAgB,EAC4D,EAAE;IAC9E,OAAO,CACH,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,QAAQ,IAAI,KAAK;QACjB,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU,CACrC,CAAC;AACN,CAAC,CAAC;AAEF,SAAS,mBAAmB,CAAC,KAA8B;IACvD,8GAA8G;IAC9G,mGAAmG;IACnG,0GAA0G;IAC1G,yGAAyG;IACzG,oGAAoG;IAEpG,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAkB,EAAE,CAAC,CAAC;IAC1D,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAkB,EAAE,CAAC,CAAC;IAC1D,MAAM,qBAAqB,GAAG,KAAK,CAAC,MAAM,CAAwB,EAAE,CAAC,CAAC;IAEtE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAyB,IAAI,CAAC,CAAC;IAC3F,MAAM,oBAAoB,GAAG,KAAK,CAAC,WAAW,CAC1C,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAC9B,CAAC,kBAAkB,CAAC,CACvB,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAE3C,4DAA4D;IAC5D,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEnE,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAC9B,CAAC,EACG,MAAM,GAAG,KAAK,CAAC,MAAM,EACrB,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,EAC/C,MAAM,GAAG,KAAK,CAAC,MAAM,GACxB,EAAE,EAAE;QACD,IACI,CAAC,CACG,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YAC7B,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,CAAC;YACvD,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAChC,EACH,CAAC;YACC,KAAK,CAAC,QAAQ,CAAC,EAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAC,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC,EACD,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAC1E,CAAC;IAEF,0GAA0G;IAC1G,qGAAqG;IACrG,yGAAyG;IACzG,0FAA0F;IAC1F,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CACpC,CAAC,MAAsB,EAAE,EAAE;QACvB,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3C,IAAI,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;gBACpC,0CAA0C;gBAC1C,MAAM,KAAqC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAApE,EAAC,MAAM,EAAE,OAAO,OAAoD,EAA/C,YAAY,cAAjC,UAAkC,CAAkC,CAAC;gBAE3E,sEAAsE;gBACtE,qBAAqB;gBACrB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACb,YAA6B,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBACxD,CAAC;gBACD,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBACxB,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBACxB,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBAExB,OAAO,YAAmC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACJ,yBAAW,IAAI,EAAE;YACrB,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC;YACzC,MAAM,EAAE,kBAAkB;YAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,QAAQ,CAAC,EAAC,MAAM,EAAE,SAAS,EAAC,CAAC,CAAC;QAClC,CAAC;IACL,CAAC,EACD,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAC3B,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACnC,CAAC,EAAU,EAAE,EAAE;QACX,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACvD,CAAC,EACD,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CACxB,CAAC;IAEF,8EAA8E;IAC9E,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAC7B,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,EACrC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CACjD,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAClC,CAAC,EAAU,EAAE,EAAE;QACX,OAAO,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzC,OAAO,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEnC,IAAI,EAAE,KAAK,iBAAiB,EAAE,CAAC;YAC3B,oBAAoB,EAAE,CAAC;QAC3B,CAAC;aAAM,CAAC;YACJ,IAAI,eAAe,EAAE,CAAC;gBAClB,kBAAkB,iCACX,eAAe,KAClB,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,IACtD,CAAC;YACP,CAAC;YAED,QAAQ,CACJ,aAAa,CAAC,UAAU,CAAC;gBACrB,EAAE;gBACF,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;aACjD,CAAC,CACL,CAAC;QACN,CAAC;IACL,CAAC,EACD;QACI,oBAAoB;QACpB,eAAe;QACf,QAAQ;QACR,KAAK,CAAC,MAAM;QACZ,KAAK,CAAC,mBAAmB;QACzB,kBAAkB;KACrB,CACJ,CAAC;IAEF,MAAM,0BAA0B,GAAG,KAAK,CAAC,WAAW,CAGhD,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE;QAC5B,QAAQ,CAAC;YACL,mBAAmB,EAAE,aAAa,CAAC,oBAAoB,CAAC;gBACpD,EAAE;gBACF,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,cAAc;gBACd,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;gBAC9C,OAAO;aACV,CAAC;SACL,CAAC,CAAC;IACP,CAAC,EACD,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CACtD,CAAC;IAEF,MAAM,sBAAsB,GAAG,KAAK,CAAC,WAAW,CAC5C,CAAC,QAAQ,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,EAAE;QACpD,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,CAAC,QAAQ,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,mBAAmB,CAAC;YACxD,gBAAgB,GAAG,IAAI,CAAC;QAC5B,CAAC;QACD,IAAI,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,oBAAoB,EAAE,CAAC;YAC7D,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC;YACzD,gBAAgB,GAAG,IAAI,CAAC;QAC5B,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACnB,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC,EACD,EAAE,CACL,CAAC;IAEF,MAAM,sBAAsB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,QAAgB,EAAE,EAAE;QAClE,MAAM,gBAAgB,GAClB,QAAQ,IAAI,eAAe,CAAC,OAAO,IAAI,QAAQ,IAAI,eAAe,CAAC,OAAO,CAAC;QAC/E,OAAO,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,OAAO,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,gBAAgB,EAAE,CAAC;YACnB,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACf,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe,CAAC,UAAU,IAAI,EAAE,CAAC;QAC5D,MAAM,YAAY,GAA+D,EAAE,CAAC;QACpF,IAAI,eAAe,GAAG,KAAK,CAAC;QAE5B,IACI,YAAY,CAAC,WAAW,KAAK,8BAA8B;YAC3D,YAAY,CAAC,IAAI,KAAK,SAAS,EACjC,CAAC;YACC,YAAY,CAAC,aAAa,CAAC,GAAG;gBAC1B,KAAK,EAAE,EAAE;gBACT,SAAS,EAAE,YAAY,CAAC,IAAI;aAC/B,CAAC;YACF,eAAe,GAAG,IAAI,CAAC;QAC3B,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;;gBACrB,MAAM,WAAW,GAAG,CAAA,MAAA,KAAK,CAAC,cAAc,sDAAG,YAAY,CAAC,KAAI,EAAE,CAAC;gBAE/D,IACI,WAAW,CAAC,WAAW,KAAK,8BAA8B;oBAC1D,WAAW,CAAC,IAAI,KAAK,SAAS;oBAC9B,KAAK,CAAC,EAAE,EACV,CAAC;oBACC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;wBACrB,KAAK,EAAE,EAAE;wBACT,SAAS,EAAE,WAAW,CAAC,IAAI;qBAC9B,CAAC;oBACF,eAAe,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,eAAe,EAAE,CAAC;YAClB,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;gBACxB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBAE1C,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzB,6BAA6B;oBAC7B,YAAY,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxC,YAAY,CAAC,QAAQ,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC/C,CAAC;qBAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACjD,uFAAuF;oBACvF,OAAO,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACnD,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAC,KAAK,EAAE,SAAS,EAAC,CAAC,EAAE,EAAE;gBAC5D,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACnB,4DAA4D;oBAC5D,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;gBAC/D,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAExD,MAAM,WAAW,GAAG,gBAAgB,CAChC,GAAG,EAAE,CACD,cAAc,CAAC;QACX,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;QAC9C,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;QAC9C,OAAO,EAAE,KAAK,CAAC,eAAe,CAAC,UAAU,EAAE;KAC9C,CAAC,EACN;QACI,KAAK,CAAC,mBAAmB;QACzB,KAAK,CAAC,YAAY;QAClB,KAAK,CAAC,MAAM;QACZ,KAAK,CAAC,mBAAmB;QACzB,KAAK,CAAC,eAAe;KACxB,CACJ,CAAC;IAEF,MAAM,UAAU,GAAG,gBAAgB,CAC/B,GAAG,EAAE,CACD,aAAa,CAAC;QACV,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;KACjD,CAAC,EACN,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAC5C,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAkC,CAAC,WAAW,EAAE,EAAE;QACpF,OAAO,WAAW;aACb,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACT,IAAI,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC5B,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,IAAI,EAAwB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IACpE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACpC,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC;QACzC,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC;QACzC,MAAM,YAAY,GAAG,qBAAqB,CAAC,OAAO,CAAC;QAEnD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;YAExB,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,YAAY,EAAE,CAAC;gBACnD,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;gBAC1B,0CAA0C;gBAC1C,MAAM,KAAsC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAhE,EAAC,MAAM,EAAE,QAAQ,OAA+C,EAA1C,YAAY,cAAlC,UAAmC,CAA6B,CAAC;gBAEvE,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBACxB,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBACxB,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBAExB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACb,YAA6B,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBACxD,CAAC;gBAED,IAAI,QAAQ,IAAI,YAAY,EAAE,CAAC;oBAC1B,YAA+C,CAAC,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACnF,CAAC;gBAED,OAAO,YAAmC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACJ,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;oBACvB,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC9B,CAAC;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAExC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAiC,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE;QACxF,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5E,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,gBAAgB,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,SAAS,CAAC;IAC/C,MAAM,qBAAqB,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,cAAc,CAAC;IAEzD,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACtC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC;QAEzC,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACJ,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IAE9C,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CACpC,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE;QAC9C,IAAI,eAAe,EAAE,CAAC;YAClB,oBAAoB,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,YAAoB,CAAC;QACzB,IAAI,aAA8E,CAAC;QACnF,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,EAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAC,GAAG,UAAU,CAAC;YAChC,YAAY,GAAG,IAAI,CAAC;YACpB,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtD,aAAa,GAAG,SAAS,CAAC,CAAC,iCAAK,SAAS,CAAC,aAAa,KAAE,CAAC,EAAE,CAAC,IAAE,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC;QAC5E,CAAC;aAAM,IAAI,cAAc,EAAE,CAAC;YACxB,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC;YACnC,aAAa,GAAG,cAAc,CAAC,aAAa,CAAC;QACjD,CAAC;aAAM,CAAC;YACJ,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CACjB,SAAS,CAAC,OAAO,IAAI,QAAQ,EAC7B,MAAM,IAAI,aAAa,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAChF,CAAC;QAEF,IAAI,SAAS,CAAC,WAAW,KAAK,8BAA8B,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YAC7E,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7E,CAAC;QAED,IACI,IAAI,KAAK,CAAC;YACV,IAAI,KAAK,CAAC;YACV,CAAC,MAAM,IAAI,aAAa;gBACpB,aAAa,CAAC,IAAI;gBAClB,IAAI;gBACJ,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;YAC9B,CAAC,MAAM,IAAI,aAAa,IAAI,aAAa,CAAC,IAAI,IAAI,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,EAC9E,CAAC;YACC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,EACF,CAAC,GAAG,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,CAAC,KAAI,qBAAqB,EAC7C,CAAC,GAAG,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,CAAC,KAAI,oBAAoB,GAC/C,GAAG,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,KAAI,EAAE,CAAC;QAEnC,MAAM,UAAU,GAAG;YACf,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SAClC,CAAC;QAEF,IACI,CAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,+CAEV,UAAU,GACV,UAAU,KACb,MAAM,EAAE,KAAK,EACb,IAAI,EAAE,YAAY,KAEtB,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,IAAI,CACrB,MAAK,KAAK,EACb,CAAC;YACC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC,EACD;QACI,KAAK,CAAC,eAAe;QACrB,oBAAoB;QACpB,eAAe;QACf,cAAc;QACd,gBAAgB;QAChB,qBAAqB;KACxB,CACJ,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;IAChC,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAC5B,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE;QAChB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpB,OAAO;QACX,CAAC;QAED,kBAAkB,CAAC;YACf,IAAI,EAAE,CAAC,GAAG,SAAS,EAAE,IAAI,CAAC;YAC1B,SAAS,EAAE,gBAAgB;SAC9B,CAAC,CAAC;QAEH,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG;YACT,SAAS,EAAE,SAAS,CAAC,MAAM,CAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBACpD,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;oBACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;gBACnC,CAAC;gBAED,OAAO,IAAI,CAAC;YAChB,CAAC,EAAE,EAAE,CAAC;YACN,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;YAClC,MAAM,EAAE,oBAAoB;YAC5B,SAAS,EAAE,gBAAgB;SAC9B,CAAC,CAAC;IACP,CAAC,EACD,CAAC,gBAAgB,EAAE,UAAU,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,CAC3E,CAAC;IAEF,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,CACrC,GAAG,EAAE,CAAC,CAAC;QACH,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,WAAW;QACX,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,mBAAmB,EAAE,KAAK,CAAC,YAAY;QACvC,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;QAExD,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QAExC,MAAM,EAAE,YAAY;QACpB,eAAe;QACf,YAAY,EAAE,cAAc;QAC5B,sBAAsB;QACtB,sBAAsB;QAEtB,UAAU;QACV,WAAW;QACX,0BAA0B;QAE1B,YAAY;QACZ,WAAW;QAEX,MAAM;QACN,cAAc;QACd,cAAc;QACd,cAAc;QAEd,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;QAE5B,6BAA6B;QAC7B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,YAAY,EAAE,KAAK,CAAC,YAAY;KACnC,CAAC,EACF;QACI,YAAY;QACZ,eAAe;QACf,KAAK,CAAC,MAAM;QACZ,WAAW;QACX,KAAK,CAAC,MAAM;QACZ,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,YAAY;QAClB,KAAK,CAAC,QAAQ;QACd,KAAK,CAAC,QAAQ;QACd,UAAU;QACV,WAAW;QACX,KAAK,CAAC,eAAe;QACrB,0BAA0B;QAC1B,MAAM;QACN,cAAc;QACd,cAAc;QACd,KAAK,CAAC,iBAAiB;QACvB,KAAK,CAAC,YAAY;QAClB,YAAY;QACZ,WAAW;QACX,sBAAsB;QACtB,sBAAsB;QACtB,KAAK,CAAC,gBAAgB;QACtB,KAAK,CAAC,wBAAwB;QAC9B,cAAc;QACd,cAAc;QAEd,KAAK,CAAC,WAAW;QACjB,KAAK,CAAC,UAAU;QAEhB,KAAK,CAAC,WAAW;QACjB,KAAK,CAAC,MAAM;QACZ,KAAK,CAAC,UAAU;QAChB,KAAK,CAAC,aAAa;QACnB,KAAK,CAAC,QAAQ;QACd,KAAK,CAAC,YAAY;KACrB,CACJ,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC;IACvF,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,CACtC,GAAG,EAAE,CAAC,CAAC;QACH,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,OAAO,EAAE,KAAK,CAAC,OAAO;QAEtB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;QAC9C,UAAU;QACV,WAAW;QAEX,0BAA0B,EAAE,KAAK,CAAC,0BAA0B;QAC5D,aAAa,EAAE,KAAK,CAAC,aAAa;QAElC,IAAI,EAAE,gBAAgB;QAEtB,QAAQ,EAAE,KAAK,CAAC,UAAU;QAC1B,UAAU,EAAE,YAAY;QACxB,aAAa,EAAE,aAAa;KAC/B,CAAC,EACF;QACI,KAAK,CAAC,eAAe;QACrB,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,mBAAmB;QACzB,KAAK,CAAC,UAAU;QAChB,KAAK,CAAC,0BAA0B;QAChC,KAAK,CAAC,aAAa;QACnB,gBAAgB;QAChB,UAAU;QACV,WAAW;QACX,YAAY;QACZ,aAAa;KAChB,CACJ,CAAC;IAEF,OAAO,EAAC,oBAAoB,EAAE,mBAAmB,EAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,SAA8B;IACtD,MAAM,WAAW,GAAG,CAAC,KAA8B,EAAE,EAAE;QACnD,MAAM,EAAC,mBAAmB,EAAE,oBAAoB,EAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAE/E,OAAO,CACH,oBAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,mBAAmB;YAC/C,oBAAC,4BAA4B,CAAC,QAAQ,IAAC,KAAK,EAAE,oBAAoB;gBAC9D,oBAAC,SAAS,OAAG,CACuB,CAClB,CAC7B,CAAC;IACN,CAAC,CAAC;IAEF,WAAW,CAAC,WAAW,GAAG,eACtB,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI,IAAI,WAC/C,GAAG,CAAC;IAEJ,OAAO,WAAW,CAAC;AACvB,CAAC","sourcesContent":["import React from 'react';\n\nimport isEqual from 'lodash/isEqual';\nimport pick from 'lodash/pick';\n\nimport type {DashKitProps} from '../components/DashKit';\nimport {\n COMPACT_TYPE_HORIZONTAL_NOWRAP,\n DEFAULT_GROUP,\n DEFAULT_WIDGET_HEIGHT,\n DEFAULT_WIDGET_WIDTH,\n TEMPORARY_ITEM_ID,\n} from '../constants/common';\nimport {DashKitContext, DashKitDnDContext, DashkitOvelayControlsContext} from '../context';\nimport type {\n DashKitCtxShape,\n DashkitPropsPassedToCtx,\n OverlayControlsCtxShape,\n TemporaryLayout,\n} from '../context';\nimport {useDeepEqualMemo} from '../hooks/useDeepEqualMemo';\nimport type {ConfigLayout} from '../shared';\nimport {getAllConfigItems, getItemsParams, getItemsState} from '../shared';\nimport type {PluginRef} from '../typings';\nimport type {RegisterManager, RegisterManagerPlugin} from '../utils';\nimport {UpdateManager, resolveLayoutGroup} from '../utils';\n\nconst ITEM_PROPS = ['i', 'h', 'w', 'x', 'y', 'parent'] as const;\n\nexport type DashKitWithContextProps = DashkitPropsPassedToCtx &\n Pick<\n DashKitProps,\n 'overlayControls' | 'overlayMenuItems' | 'getPreparedCopyItemOptions' | 'onCopyFulfill'\n > &\n Required<\n Pick<\n DashKitProps,\n | 'itemsStateAndParams'\n | 'defaultGlobalParams'\n | 'globalParams'\n | 'context'\n | 'settings'\n | 'onItemEdit'\n | 'onChange'\n | 'onDrop'\n >\n > & {\n layout: ConfigLayout[];\n registerManager: RegisterManager;\n forwardedMetaRef: React.ForwardedRef<any>;\n };\n\ntype OriginalLayouts = Record<string, ConfigLayout>;\n\ntype AdjustedLayouts = Record<string, ConfigLayout>;\n\ntype NowrapAdjustedLayouts = Record<string, number>;\n\ntype UseMemoStateContextResult = {\n dashkitContextValue: DashKitCtxShape;\n controlsContextValue: OverlayControlsCtxShape;\n};\n\nconst hasGetMeta = (value: PluginRef): value is {getMeta: () => Promise<any>} => {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'getMeta' in value &&\n typeof value.getMeta === 'function'\n );\n};\n\nconst hasReload = (\n value: PluginRef,\n): value is {reload: (data: {silentLoading: boolean; noVeil: boolean}) => void} => {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'reload' in value &&\n typeof value.reload === 'function'\n );\n};\n\nfunction useMemoStateContext(props: DashKitWithContextProps): UseMemoStateContextResult {\n // так как мы не хотим хранить параметры виджета с активированной автовысотой в сторе и на сервере, актуальный\n // (видимый юзером в конкретный момент времени) лэйаут (массив объектов с данными о ширине, высоте,\n // расположении конкретного виджета на сетке) будет храниться в стейте, но, для того, чтобы в стор попадал\n // лэйаут без учета вижетов с активированной автовысотой, в момент \"подстройки\" высоты виджета значение h\n // (высота) из конфига будет запоминаться в originalLayouts, новое значение высоты в adjustedLayouts\n\n const originalLayouts = React.useRef<OriginalLayouts>({});\n const adjustedLayouts = React.useRef<AdjustedLayouts>({});\n const nowrapAdjustedLayouts = React.useRef<NowrapAdjustedLayouts>({});\n\n const [temporaryLayout, setTemporaryLayout] = React.useState<TemporaryLayout | null>(null);\n const resetTemporaryLayout = React.useCallback(\n () => setTemporaryLayout(null),\n [setTemporaryLayout],\n );\n\n const dndContext = React.useContext(DashKitDnDContext);\n const outerDnDEnable = Boolean(dndContext);\n\n // TODO: need move originalLayouts, adjustedLayouts to state\n const [layoutUpdateCounter, forceUpdateLayout] = React.useState(0);\n\n const onChange = React.useCallback(\n ({\n config = props.config,\n itemsStateAndParams = props.itemsStateAndParams,\n groups = props.groups,\n }) => {\n if (\n !(\n isEqual(config, props.config) &&\n isEqual(itemsStateAndParams, props.itemsStateAndParams) &&\n isEqual(groups, props.groups)\n )\n ) {\n props.onChange({config, itemsStateAndParams, groups});\n }\n },\n [props.config, props.groups, props.itemsStateAndParams, props.onChange],\n );\n\n // каллбэк вызывающийся при изменение лэйаута сетки, первым аргументом приходит актуальный конфиг лэйаута,\n // т.е. если на текущей сетке есть виджеты, с активированной опцией автовысоты, их параметр \"h\" будет\n // \"подстроенный\"; чтобы, для сохранения в сторе \"ушли\" значения без учёта подстройки (как если бы у этих\n // виджетов автовысота была деактивирована) корректируем их используя this.originalLayouts\n const onLayoutChange = React.useCallback(\n (layout: ConfigLayout[]) => {\n const currentInnerLayout = layout.map((item) => {\n if (item.i in originalLayouts.current) {\n // eslint-disable-next-line no-unused-vars\n const {parent: _parent, ...originalCopy} = originalLayouts.current[item.i];\n\n // Updating original if parent has changed and saving copy as original\n // or leaving default\n if (item.parent) {\n (originalCopy as ConfigLayout).parent = item.parent;\n }\n originalCopy.w = item.w;\n originalCopy.x = item.x;\n originalCopy.y = item.y;\n\n return originalCopy satisfies ConfigLayout;\n } else {\n return {...item};\n }\n });\n\n const newConfig = UpdateManager.updateLayout({\n layout: currentInnerLayout,\n config: props.config,\n });\n\n if (!isEqual(newConfig.layout, props.config.layout)) {\n onChange({config: newConfig});\n }\n },\n [props.config, onChange],\n );\n\n const getLayoutItem = React.useCallback(\n (id: string) => {\n return props.config.layout.find(({i}) => i === id);\n },\n [props.config.layout],\n );\n\n // to calculate items, only memorization of items and globalItems is important\n const configItems = React.useMemo(\n () => getAllConfigItems(props.config),\n [props.config.items, props.config.globalItems],\n );\n\n const onItemRemove = React.useCallback(\n (id: string) => {\n delete nowrapAdjustedLayouts.current[id];\n delete adjustedLayouts.current[id];\n delete originalLayouts.current[id];\n\n if (id === TEMPORARY_ITEM_ID) {\n resetTemporaryLayout();\n } else {\n if (temporaryLayout) {\n setTemporaryLayout({\n ...temporaryLayout,\n data: temporaryLayout.data.filter(({i}) => i !== id),\n });\n }\n\n onChange(\n UpdateManager.removeItem({\n id,\n config: props.config,\n itemsStateAndParams: props.itemsStateAndParams,\n }),\n );\n }\n },\n [\n resetTemporaryLayout,\n temporaryLayout,\n onChange,\n props.config,\n props.itemsStateAndParams,\n setTemporaryLayout,\n ],\n );\n\n const onItemStateAndParamsChange = React.useCallback<\n DashKitCtxShape['onItemStateAndParamsChange']\n >(\n (id, stateAndParams, options) => {\n onChange({\n itemsStateAndParams: UpdateManager.changeStateAndParams({\n id,\n config: props.config,\n stateAndParams,\n itemsStateAndParams: props.itemsStateAndParams,\n options,\n }),\n });\n },\n [props.config, props.itemsStateAndParams, onChange],\n );\n\n const memorizeOriginalLayout = React.useCallback<DashKitCtxShape['memorizeOriginalLayout']>(\n (widgetId, preAutoHeightLayout, postAutoHeightLayout) => {\n let needUpdateLayout = false;\n if (!(widgetId in originalLayouts.current)) {\n originalLayouts.current[widgetId] = preAutoHeightLayout;\n needUpdateLayout = true;\n }\n if (adjustedLayouts.current[widgetId] !== postAutoHeightLayout) {\n adjustedLayouts.current[widgetId] = postAutoHeightLayout;\n needUpdateLayout = true;\n }\n\n if (needUpdateLayout) {\n forceUpdateLayout((prev) => prev + 1);\n }\n },\n [],\n );\n\n const revertToOriginalLayout = React.useCallback((widgetId: string) => {\n const needUpdateLayout =\n widgetId in adjustedLayouts.current || widgetId in originalLayouts.current;\n delete adjustedLayouts.current[widgetId];\n delete originalLayouts.current[widgetId];\n if (needUpdateLayout) {\n forceUpdateLayout((prev) => prev + 1);\n }\n }, []);\n\n React.useMemo(() => {\n const groups = props.groups;\n const layout = props.layout;\n const defaultProps = props.registerManager.gridLayout || {};\n const nowrapGroups: Record<string, {items: ConfigLayout[]; leftSpace: number}> = {};\n let hasNowrapGroups = false;\n\n if (\n defaultProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP &&\n defaultProps.cols !== undefined\n ) {\n nowrapGroups[DEFAULT_GROUP] = {\n items: [],\n leftSpace: defaultProps.cols,\n };\n hasNowrapGroups = true;\n }\n\n if (groups) {\n groups.forEach((group) => {\n const resultProps = group.gridProperties?.(defaultProps) || {};\n\n if (\n resultProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP &&\n resultProps.cols !== undefined &&\n group.id\n ) {\n nowrapGroups[group.id] = {\n items: [],\n leftSpace: resultProps.cols,\n };\n hasNowrapGroups = true;\n }\n });\n }\n\n if (hasNowrapGroups) {\n layout.forEach((item) => {\n const widgetId = item.i;\n const parentId = resolveLayoutGroup(item);\n\n if (nowrapGroups[parentId]) {\n // Collecting nowrap elements\n nowrapGroups[parentId].items.push(item);\n nowrapGroups[parentId].leftSpace -= item.w;\n } else if (nowrapAdjustedLayouts.current[widgetId]) {\n // If element is not in horizontal-nowrap cleaning up and reverting adjustLayout values\n delete nowrapAdjustedLayouts.current[widgetId];\n }\n });\n\n Object.entries(nowrapGroups).forEach(([, {items, leftSpace}]) => {\n items.forEach((item) => {\n // setting maxW with adjustLayout fields and saving previous\n nowrapAdjustedLayouts.current[item.i] = item.w + leftSpace;\n });\n });\n }\n }, [props.registerManager, props.groups, props.layout]);\n\n const itemsParams = useDeepEqualMemo(\n () =>\n getItemsParams({\n defaultGlobalParams: props.defaultGlobalParams,\n globalParams: props.globalParams,\n config: props.config,\n itemsStateAndParams: props.itemsStateAndParams,\n plugins: props.registerManager.getPlugins(),\n }),\n [\n props.defaultGlobalParams,\n props.globalParams,\n props.config,\n props.itemsStateAndParams,\n props.registerManager,\n ],\n );\n\n const itemsState = useDeepEqualMemo(\n () =>\n getItemsState({\n config: props.config,\n itemsStateAndParams: props.itemsStateAndParams,\n }),\n [props.config, props.itemsStateAndParams],\n );\n\n const getItemsMeta = React.useCallback<DashKitCtxShape['getItemsMeta']>((pluginsRefs) => {\n return pluginsRefs\n .map((ref) => {\n if (!(ref && hasGetMeta(ref))) {\n return undefined;\n }\n return ref.getMeta();\n })\n .filter((item): item is Promise<any> => item !== undefined);\n }, []);\n\n const resultLayout = React.useMemo(() => {\n const adjusted = adjustedLayouts.current;\n const original = originalLayouts.current;\n const nowrapAdjust = nowrapAdjustedLayouts.current;\n\n return props.layout.map((item) => {\n const widgetId = item.i;\n\n if (widgetId in adjusted || widgetId in nowrapAdjust) {\n original[widgetId] = item;\n // eslint-disable-next-line no-unused-vars\n const {parent: _parent2, ...adjustedItem} = adjusted[widgetId] || item;\n\n adjustedItem.w = item.w;\n adjustedItem.x = item.x;\n adjustedItem.y = item.y;\n\n if (item.parent) {\n (adjustedItem as ConfigLayout).parent = item.parent;\n }\n\n if (widgetId in nowrapAdjust) {\n (adjustedItem as ConfigLayout & {maxW?: number}).maxW = nowrapAdjust[widgetId];\n }\n\n return adjustedItem satisfies ConfigLayout;\n } else {\n if (widgetId in original) {\n delete original[widgetId];\n }\n return item;\n }\n });\n }, [props.layout, layoutUpdateCounter]);\n\n const reloadItems = React.useCallback<DashKitCtxShape['reloadItems']>((pluginsRefs, data) => {\n pluginsRefs.forEach((ref) => ref && hasReload(ref) && ref.reload(data));\n }, []);\n\n const dragPropsContext = dndContext?.dragProps;\n const onDropDragOverContext = dndContext?.onDropDragOver;\n\n const dragOverPlugin = React.useMemo(() => {\n if (!dragPropsContext) {\n return null;\n }\n\n const pluginType = dragPropsContext.type;\n\n if (props.registerManager.check(pluginType)) {\n return props.registerManager.getItem(pluginType);\n } else {\n // eslint-disable-next-line no-console\n console.error(`Uknown pluginType: ${pluginType}`);\n return null;\n }\n }, [dragPropsContext, props.registerManager]);\n\n const onDropDragOver = React.useCallback<DashKitCtxShape['onDropDragOver']>(\n (_e, group, gridProps, groupLayout, sharedItem) => {\n if (temporaryLayout) {\n resetTemporaryLayout();\n return false;\n }\n\n let dragItemType: string;\n let defaultLayout: RegisterManagerPlugin['defaultLayout'] | {h: number; w: number};\n if (sharedItem) {\n const {type, h, w} = sharedItem;\n dragItemType = type;\n const _defaults = props.registerManager.getItem(type);\n defaultLayout = _defaults ? {..._defaults.defaultLayout, h, w} : {h, w};\n } else if (dragOverPlugin) {\n dragItemType = dragOverPlugin.type;\n defaultLayout = dragOverPlugin.defaultLayout;\n } else {\n return false;\n }\n\n let maxW = gridProps.cols;\n const maxH = Math.min(\n gridProps.maxRows || Infinity,\n 'maxH' in defaultLayout && defaultLayout.maxH ? defaultLayout.maxH : Infinity,\n );\n\n if (gridProps.compactType === COMPACT_TYPE_HORIZONTAL_NOWRAP && gridProps.cols) {\n maxW = groupLayout.reduce((memo, item) => memo - item.w, gridProps.cols);\n }\n\n if (\n maxW === 0 ||\n maxH === 0 ||\n ('minW' in defaultLayout &&\n defaultLayout.minW &&\n maxW &&\n maxW < defaultLayout.minW) ||\n ('minH' in defaultLayout && defaultLayout.minH && maxH < defaultLayout.minH)\n ) {\n return false;\n }\n\n const {\n h = defaultLayout?.h || DEFAULT_WIDGET_HEIGHT,\n w = defaultLayout?.w || DEFAULT_WIDGET_WIDTH,\n } = dragPropsContext?.layout || {};\n\n const itemLayout = {\n h: maxH ? Math.min(h, maxH) : h,\n w: maxW ? Math.min(w, maxW) : w,\n };\n\n if (\n onDropDragOverContext?.(\n {\n ...sharedItem,\n ...itemLayout,\n parent: group,\n type: dragItemType,\n },\n sharedItem ?? null,\n ) === false\n ) {\n return false;\n }\n\n return itemLayout;\n },\n [\n props.registerManager,\n resetTemporaryLayout,\n temporaryLayout,\n dragOverPlugin,\n dragPropsContext,\n onDropDragOverContext,\n ],\n );\n\n const onDropProp = props.onDrop;\n const onDrop = React.useCallback<DashKitCtxShape['onDrop']>(\n (newLayout, item) => {\n if (!dragPropsContext) {\n return;\n }\n\n setTemporaryLayout({\n data: [...newLayout, item],\n dragProps: dragPropsContext,\n });\n\n onDropProp?.({\n newLayout: newLayout.reduce<ConfigLayout[]>((memo, l) => {\n if (l.i !== item.i) {\n memo.push(pick(l, ITEM_PROPS));\n }\n\n return memo;\n }, []),\n itemLayout: pick(item, ITEM_PROPS),\n commit: resetTemporaryLayout,\n dragProps: dragPropsContext,\n });\n },\n [dragPropsContext, onDropProp, setTemporaryLayout, resetTemporaryLayout],\n );\n\n const dashkitContextValue = React.useMemo(\n () => ({\n config: props.config,\n configItems,\n groups: props.groups,\n context: props.context,\n noOverlay: props.noOverlay,\n focusable: props.focusable,\n defaultGlobalParams: props.globalParams,\n globalParams: props.globalParams,\n editMode: props.editMode,\n settings: props.settings,\n onItemMountChange: props.onItemMountChange,\n onItemRender: props.onItemRender,\n draggableHandleClassName: props.draggableHandleClassName,\n\n registerManager: props.registerManager,\n forwardedMetaRef: props.forwardedMetaRef,\n\n layout: resultLayout,\n temporaryLayout,\n layoutChange: onLayoutChange,\n memorizeOriginalLayout,\n revertToOriginalLayout,\n\n itemsState,\n itemsParams,\n onItemStateAndParamsChange,\n\n getItemsMeta,\n reloadItems,\n\n onDrop,\n onDropDragOver,\n outerDnDEnable,\n dragOverPlugin,\n\n onItemFocus: props.onItemFocus,\n onItemBlur: props.onItemBlur,\n\n /* default handlers bypass */\n onDragStart: props.onDragStart,\n onDrag: props.onDrag,\n onDragStop: props.onDragStop,\n onResizeStart: props.onResizeStart,\n onResize: props.onResize,\n onResizeStop: props.onResizeStop,\n }),\n [\n resultLayout,\n temporaryLayout,\n props.config,\n configItems,\n props.groups,\n props.context,\n props.noOverlay,\n props.focusable,\n props.globalParams,\n props.editMode,\n props.settings,\n itemsState,\n itemsParams,\n props.registerManager,\n onItemStateAndParamsChange,\n onDrop,\n onDropDragOver,\n onLayoutChange,\n props.onItemMountChange,\n props.onItemRender,\n getItemsMeta,\n reloadItems,\n memorizeOriginalLayout,\n revertToOriginalLayout,\n props.forwardedMetaRef,\n props.draggableHandleClassName,\n outerDnDEnable,\n dragOverPlugin,\n\n props.onItemFocus,\n props.onItemBlur,\n\n props.onDragStart,\n props.onDrag,\n props.onDragStop,\n props.onResizeStart,\n props.onResize,\n props.onResizeStop,\n ],\n );\n\n const overlayMenuItems = props.overlayMenuItems || props.registerManager.settings.menu;\n const controlsContextValue = React.useMemo(\n () => ({\n overlayControls: props.overlayControls,\n context: props.context,\n\n itemsStateAndParams: props.itemsStateAndParams,\n itemsState,\n itemsParams,\n\n getPreparedCopyItemOptions: props.getPreparedCopyItemOptions,\n onCopyFulfill: props.onCopyFulfill,\n\n menu: overlayMenuItems,\n\n editItem: props.onItemEdit,\n removeItem: onItemRemove,\n getLayoutItem: getLayoutItem,\n }),\n [\n props.overlayControls,\n props.context,\n props.itemsStateAndParams,\n props.onItemEdit,\n props.getPreparedCopyItemOptions,\n props.onCopyFulfill,\n overlayMenuItems,\n itemsState,\n itemsParams,\n onItemRemove,\n getLayoutItem,\n ],\n );\n\n return {controlsContextValue, dashkitContextValue};\n}\n\nexport function withContext(Component: React.ComponentType) {\n const WithContext = (props: DashKitWithContextProps) => {\n const {dashkitContextValue, controlsContextValue} = useMemoStateContext(props);\n\n return (\n <DashKitContext.Provider value={dashkitContextValue}>\n <DashkitOvelayControlsContext.Provider value={controlsContextValue}>\n <Component />\n </DashkitOvelayControlsContext.Provider>\n </DashKitContext.Provider>\n );\n };\n\n WithContext.displayName = `withContext(${\n Component.displayName || Component.name || 'Component'\n })`;\n\n return WithContext;\n}\n"]}
@@ -1 +1 @@
1
- {"type":"module"}
1
+ {"version":"10.0.0-beta.0","type":"module","sideEffects":["*.scss","*.css"]}
@@ -2,11 +2,13 @@ import type ReactGridLayout from 'react-grid-layout';
2
2
  import type { OverlayCustomControlItem } from "../components/OverlayControls/OverlayControls.js";
3
3
  import { MenuItems } from "../constants/index.js";
4
4
  import { AdditionalWidgetLayout } from "../shared/index.js";
5
- export type GridLayoutSettings = ReactGridLayout.ReactGridLayoutProps & {
5
+ export type CompactType = ReactGridLayout.ReactGridLayoutProps['compactType'] | 'horizontal-nowrap';
6
+ export type ReactGridLayoutProps = Omit<ReactGridLayout.ReactGridLayoutProps, 'children' | 'compactType' | 'innerRef' | 'key' | 'layout' | 'onDragStart' | 'onDragStop' | 'onResizeStart' | 'onResizeStop' | 'draggableHandle' | 'isDroppable' | 'onDropDragOver' | 'onDrop' | 'draggableCancel'> & {
7
+ compactType?: CompactType;
6
8
  noOverlay?: boolean;
7
9
  };
8
10
  export interface Settings {
9
- gridLayout?: GridLayoutSettings;
11
+ gridLayout?: ReactGridLayoutProps;
10
12
  theme?: string;
11
13
  isMobile?: boolean;
12
14
  menu?: Array<MenuItem>;
@@ -25,8 +27,8 @@ export interface WidgetLayout extends AdditionalWidgetLayout {
25
27
  h: number;
26
28
  x: number;
27
29
  y: number;
28
- minW: number;
29
- minH: number;
30
+ minW?: number;
31
+ minH?: number;
30
32
  maxW?: number;
31
33
  maxH?: number;
32
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"../../../src","sources":["typings/common.ts"],"names":[],"mappings":"","sourcesContent":["import type ReactGridLayout from 'react-grid-layout';\n\nimport type {OverlayCustomControlItem} from '../components/OverlayControls/OverlayControls';\nimport {MenuItems} from '../constants';\nimport {AdditionalWidgetLayout} from '../shared';\n\nexport type GridLayoutSettings = ReactGridLayout.ReactGridLayoutProps & {\n noOverlay?: boolean;\n};\n\nexport interface Settings {\n gridLayout?: GridLayoutSettings;\n theme?: string;\n isMobile?: boolean;\n // @deprecated as it's possibly mutable property use Dashkit overlayMenuItems property instead\n menu?: Array<MenuItem>;\n}\n\nexport type MenuItem = (typeof MenuItems)[keyof typeof MenuItems] | OverlayCustomControlItem;\n\nexport interface SettingsProps {\n autoupdateInterval: number;\n silentLoading: boolean;\n}\n\nexport interface ContextProps {\n [key: string]: any;\n}\n\nexport interface WidgetLayout extends AdditionalWidgetLayout {\n i: string;\n w: number;\n h: number;\n x: number;\n y: number;\n minW: number;\n minH: number;\n maxW?: number;\n maxH?: number;\n}\n"]}
1
+ {"version":3,"file":"common.js","sourceRoot":"../../../src","sources":["typings/common.ts"],"names":[],"mappings":"","sourcesContent":["import type ReactGridLayout from 'react-grid-layout';\n\nimport type {OverlayCustomControlItem} from '../components/OverlayControls/OverlayControls';\nimport {MenuItems} from '../constants';\nimport {AdditionalWidgetLayout} from '../shared';\n\nexport type CompactType = ReactGridLayout.ReactGridLayoutProps['compactType'] | 'horizontal-nowrap';\n\nexport type ReactGridLayoutProps = Omit<\n ReactGridLayout.ReactGridLayoutProps,\n | 'children'\n | 'compactType'\n | 'innerRef'\n | 'key'\n | 'layout'\n | 'onDragStart'\n | 'onDragStop'\n | 'onResizeStart'\n | 'onResizeStop'\n | 'draggableHandle'\n | 'isDroppable'\n | 'onDropDragOver'\n | 'onDrop'\n | 'draggableCancel'\n> & {\n compactType?: CompactType;\n noOverlay?: boolean;\n};\n\nexport interface Settings {\n gridLayout?: ReactGridLayoutProps;\n theme?: string;\n isMobile?: boolean;\n // @deprecated as it's possibly mutable property use Dashkit overlayMenuItems property instead\n menu?: Array<MenuItem>;\n}\n\nexport type MenuItem = (typeof MenuItems)[keyof typeof MenuItems] | OverlayCustomControlItem;\n\nexport interface SettingsProps {\n autoupdateInterval: number;\n silentLoading: boolean;\n}\n\nexport interface ContextProps {\n [key: string]: any;\n}\n\nexport interface WidgetLayout extends AdditionalWidgetLayout {\n i: string;\n w: number;\n h: number;\n x: number;\n y: number;\n minW?: number;\n minH?: number;\n maxW?: number;\n maxH?: number;\n}\n"]}
@@ -1,6 +1,6 @@
1
- import type { Layout, Layouts } from 'react-grid-layout';
1
+ import type { Layout } from 'react-grid-layout';
2
2
  import type { Config, ConfigItem, ConfigLayout } from "../shared/index.js";
3
- import { GridLayoutSettings } from "./common.js";
3
+ import type { CompactType, ReactGridLayoutProps } from "./common.js";
4
4
  export interface AddConfigItem extends Omit<ConfigItem, 'id' | 'namespace'> {
5
5
  id?: null;
6
6
  namespace?: string;
@@ -16,7 +16,6 @@ export type GridReflowOptions = {
16
16
  maxRows?: number;
17
17
  compactType?: CompactType;
18
18
  };
19
- export type CompactType = ReactGridLayout.ReactGridLayoutProps['compactType'] | 'horizontal-nowrap';
20
19
  export type ReflowLayoutOptions = {
21
20
  defaultProps: GridReflowOptions;
22
21
  groups?: Record<string, GridReflowOptions>;
@@ -33,16 +32,13 @@ export interface DashkitGroupRenderProps {
33
32
  layout: ConfigLayout[];
34
33
  context: any;
35
34
  }
36
- export type ReactGridLayoutProps = Omit<GridLayoutSettings, 'children' | 'compactType' | 'innerRef' | 'key' | 'layout' | 'onDragStart' | 'onDragStop' | 'onResizeStart' | 'onResizeStop' | 'draggableHandle' | 'isDroppable' | 'onDropDragOver' | 'onDrop' | 'draggableCancel'> & {
37
- compactType?: CompactType;
38
- };
39
35
  export interface DashKitGroup {
40
36
  id?: string;
41
37
  render?: (id: string, children: React.ReactNode, props: DashkitGroupRenderProps) => React.ReactNode;
42
38
  gridProperties?: (props: ReactGridLayoutProps) => ReactGridLayoutProps;
43
39
  }
44
40
  export type ItemManipulationCallback = (eventData: {
45
- layout: Layouts;
41
+ layout: Layout[];
46
42
  oldItem: Layout;
47
43
  newItem: Layout;
48
44
  placeholder: Layout;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"../../../src","sources":["typings/config.ts"],"names":[],"mappings":"","sourcesContent":["import type {Layout, Layouts} from 'react-grid-layout';\n\nimport type {Config, ConfigItem, ConfigLayout} from '../shared';\n\nimport {GridLayoutSettings} from './common';\n\nexport interface AddConfigItem extends Omit<ConfigItem, 'id' | 'namespace'> {\n id?: null;\n namespace?: string;\n layout?: Omit<ConfigLayout, 'i'>;\n}\nexport type SetConfigItem = ConfigItem | AddConfigItem;\n\nexport type SetItemOptions = {\n excludeIds?: string[];\n useGlobalItems?: boolean;\n};\n\nexport type GridReflowOptions = {\n cols: number;\n maxRows?: number;\n compactType?: CompactType;\n};\n\nexport type CompactType = ReactGridLayout.ReactGridLayoutProps['compactType'] | 'horizontal-nowrap';\n\nexport type ReflowLayoutOptions = {\n defaultProps: GridReflowOptions;\n groups?: Record<string, GridReflowOptions>;\n};\n\nexport type AddNewItemOptions = SetItemOptions & {\n updateLayout?: ConfigLayout[];\n reflowLayoutOptions?: ReflowLayoutOptions;\n};\n\nexport interface DashkitGroupRenderProps {\n config: Config;\n editMode: boolean;\n isMobile: boolean;\n items: ConfigItem[];\n layout: ConfigLayout[];\n context: any;\n}\n\nexport type ReactGridLayoutProps = Omit<\n GridLayoutSettings,\n | 'children'\n | 'compactType'\n | 'innerRef'\n | 'key'\n | 'layout'\n | 'onDragStart'\n | 'onDragStop'\n | 'onResizeStart'\n | 'onResizeStop'\n | 'draggableHandle'\n | 'isDroppable'\n | 'onDropDragOver'\n | 'onDrop'\n | 'draggableCancel'\n> & {\n compactType?: CompactType;\n};\n\nexport interface DashKitGroup {\n id?: string;\n render?: (\n id: string,\n children: React.ReactNode,\n props: DashkitGroupRenderProps,\n ) => React.ReactNode;\n gridProperties?: (props: ReactGridLayoutProps) => ReactGridLayoutProps;\n}\n\nexport type ItemManipulationCallback = (eventData: {\n layout: Layouts;\n oldItem: Layout;\n newItem: Layout;\n placeholder: Layout;\n e: MouseEvent;\n element: HTMLElement;\n}) => void;\n"]}
1
+ {"version":3,"file":"config.js","sourceRoot":"../../../src","sources":["typings/config.ts"],"names":[],"mappings":"","sourcesContent":["import type {Layout} from 'react-grid-layout';\n\nimport type {Config, ConfigItem, ConfigLayout} from '../shared';\n\nimport type {CompactType, ReactGridLayoutProps} from './common';\n\nexport interface AddConfigItem extends Omit<ConfigItem, 'id' | 'namespace'> {\n id?: null;\n namespace?: string;\n layout?: Omit<ConfigLayout, 'i'>;\n}\nexport type SetConfigItem = ConfigItem | AddConfigItem;\n\nexport type SetItemOptions = {\n excludeIds?: string[];\n useGlobalItems?: boolean;\n};\n\nexport type GridReflowOptions = {\n cols: number;\n maxRows?: number;\n compactType?: CompactType;\n};\n\nexport type ReflowLayoutOptions = {\n defaultProps: GridReflowOptions;\n groups?: Record<string, GridReflowOptions>;\n};\n\nexport type AddNewItemOptions = SetItemOptions & {\n updateLayout?: ConfigLayout[];\n reflowLayoutOptions?: ReflowLayoutOptions;\n};\n\nexport interface DashkitGroupRenderProps {\n config: Config;\n editMode: boolean;\n isMobile: boolean;\n items: ConfigItem[];\n layout: ConfigLayout[];\n context: any;\n}\n\nexport interface DashKitGroup {\n id?: string;\n render?: (\n id: string,\n children: React.ReactNode,\n props: DashkitGroupRenderProps,\n ) => React.ReactNode;\n gridProperties?: (props: ReactGridLayoutProps) => ReactGridLayoutProps;\n}\n\nexport type ItemManipulationCallback = (eventData: {\n layout: Layout[];\n oldItem: Layout;\n newItem: Layout;\n placeholder: Layout;\n e: MouseEvent;\n element: HTMLElement;\n}) => void;\n"]}
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
- import ReactGridLayout from 'react-grid-layout';
3
2
  import type { ConfigItem, ItemState, ItemStateAndParams, ItemStateAndParamsChangeOptions, PluginBase, StringParams } from "../shared/index.js";
4
- import type { ContextProps, SettingsProps, WidgetLayout } from "./common.js";
3
+ import type { ContextProps, ReactGridLayoutProps, SettingsProps, WidgetLayout } from "./common.js";
5
4
  export interface PluginWidgetProps<T = StringParams> {
6
5
  id: string;
7
6
  editMode: boolean;
@@ -9,15 +8,15 @@ export interface PluginWidgetProps<T = StringParams> {
9
8
  state: ItemState;
10
9
  onStateAndParamsChange: (stateAndParams: ItemStateAndParams, options?: ItemStateAndParamsChangeOptions) => void;
11
10
  onBeforeLoad: () => () => void;
12
- width: number;
13
- height: number;
11
+ width?: number;
12
+ height?: number;
14
13
  data: ConfigItem['data'];
15
14
  defaults: ConfigItem['defaults'];
16
15
  namespace: ConfigItem['namespace'];
17
16
  settings: SettingsProps;
18
17
  context: ContextProps;
19
18
  layout: WidgetLayout[];
20
- gridLayout: ReactGridLayout.ReactGridLayoutProps;
19
+ gridLayout: ReactGridLayoutProps;
21
20
  adjustWidgetLayout: (data: {
22
21
  widgetId: string;
23
22
  needSetDefault?: boolean;
@@ -25,8 +24,9 @@ export interface PluginWidgetProps<T = StringParams> {
25
24
  }) => void;
26
25
  }
27
26
  export type PluginDefaultLayout = Partial<Omit<WidgetLayout, 'i'>>;
27
+ export type PluginRef = object | null;
28
28
  export interface Plugin<P extends PluginWidgetProps<T> = any, T = StringParams> extends PluginBase {
29
29
  defaultLayout?: PluginDefaultLayout;
30
- renderer: (props: P, forwardedRef: React.RefObject<any>) => React.ReactNode;
31
- placeholderRenderer?: (props: P, forwardedRef: React.RefObject<any>) => React.ReactNode;
30
+ renderer: (props: P, forwardedRef: ((instance: PluginRef) => void) | undefined) => React.ReactNode;
31
+ placeholderRenderer?: (props: P, forwardedRef: ((instance: PluginRef) => void) | undefined) => React.ReactNode;
32
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"../../../src","sources":["typings/plugin.ts"],"names":[],"mappings":"","sourcesContent":["import React from 'react';\n\nimport ReactGridLayout from 'react-grid-layout';\n\nimport type {\n ConfigItem,\n ItemState,\n ItemStateAndParams,\n ItemStateAndParamsChangeOptions,\n PluginBase,\n StringParams,\n} from '../shared';\n\nimport type {ContextProps, SettingsProps, WidgetLayout} from './common';\n\nexport interface PluginWidgetProps<T = StringParams> {\n id: string;\n editMode: boolean;\n params: T;\n state: ItemState;\n onStateAndParamsChange: (\n stateAndParams: ItemStateAndParams,\n options?: ItemStateAndParamsChangeOptions,\n ) => void;\n onBeforeLoad: () => () => void;\n width: number;\n height: number;\n data: ConfigItem['data'];\n defaults: ConfigItem['defaults'];\n namespace: ConfigItem['namespace'];\n settings: SettingsProps;\n context: ContextProps;\n layout: WidgetLayout[];\n gridLayout: ReactGridLayout.ReactGridLayoutProps;\n adjustWidgetLayout: (data: {\n widgetId: string;\n needSetDefault?: boolean;\n adjustedWidgetLayout?: WidgetLayout;\n }) => void;\n}\n\nexport type PluginDefaultLayout = Partial<Omit<WidgetLayout, 'i'>>;\n\nexport interface Plugin<P extends PluginWidgetProps<T> = any, T = StringParams> extends PluginBase {\n defaultLayout?: PluginDefaultLayout;\n renderer: (props: P, forwardedRef: React.RefObject<any>) => React.ReactNode;\n placeholderRenderer?: (props: P, forwardedRef: React.RefObject<any>) => React.ReactNode;\n}\n"]}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"../../../src","sources":["typings/plugin.ts"],"names":[],"mappings":"","sourcesContent":["import React from 'react';\n\nimport type {\n ConfigItem,\n ItemState,\n ItemStateAndParams,\n ItemStateAndParamsChangeOptions,\n PluginBase,\n StringParams,\n} from '../shared';\n\nimport type {ContextProps, ReactGridLayoutProps, SettingsProps, WidgetLayout} from './common';\n\nexport interface PluginWidgetProps<T = StringParams> {\n id: string;\n editMode: boolean;\n params: T;\n state: ItemState;\n onStateAndParamsChange: (\n stateAndParams: ItemStateAndParams,\n options?: ItemStateAndParamsChangeOptions,\n ) => void;\n onBeforeLoad: () => () => void;\n width?: number;\n height?: number;\n data: ConfigItem['data'];\n defaults: ConfigItem['defaults'];\n namespace: ConfigItem['namespace'];\n settings: SettingsProps;\n context: ContextProps;\n layout: WidgetLayout[];\n gridLayout: ReactGridLayoutProps;\n adjustWidgetLayout: (data: {\n widgetId: string;\n needSetDefault?: boolean;\n adjustedWidgetLayout?: WidgetLayout;\n }) => void;\n}\n\nexport type PluginDefaultLayout = Partial<Omit<WidgetLayout, 'i'>>;\n\nexport type PluginRef = object | null;\n\nexport interface Plugin<P extends PluginWidgetProps<T> = any, T = StringParams> extends PluginBase {\n defaultLayout?: PluginDefaultLayout;\n renderer: (\n props: P,\n forwardedRef: ((instance: PluginRef) => void) | undefined,\n ) => React.ReactNode;\n placeholderRenderer?: (\n props: P,\n forwardedRef: ((instance: PluginRef) => void) | undefined,\n ) => React.ReactNode;\n}\n"]}
@@ -1,5 +1,4 @@
1
- import ReactGridLayout from 'react-grid-layout';
2
- import type { Plugin, PluginDefaultLayout, Settings } from "../typings/index.js";
1
+ import type { Plugin, PluginDefaultLayout, ReactGridLayoutProps, Settings } from "../typings/index.js";
3
2
  interface RegisterManagerDefaultLayout {
4
3
  x: number;
5
4
  y: number;
@@ -24,7 +23,7 @@ export declare class RegisterManager {
24
23
  reloadPlugin(plugin: Plugin): void;
25
24
  setSettings(settings?: Settings): void;
26
25
  get settings(): RegisterManagerSettings;
27
- get gridLayout(): ReactGridLayout.ReactGridLayoutProps;
26
+ get gridLayout(): ReactGridLayoutProps;
28
27
  getPlugins(): RegisterManagerPlugin[];
29
28
  getItem(type: string): RegisterManagerPlugin;
30
29
  check(type: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"register-manager.js","sourceRoot":"../../../src","sources":["utils/register-manager.ts"],"names":[],"mappings":";AAqBA,MAAM,OAAO,eAAe;IAA5B;QACY,WAAM,GAA0C,EAAE,CAAC;QACnD,mBAAc,GAAiC;YACnD,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,QAAQ;YACX,CAAC,EAAE,QAAQ;YACX,CAAC,EAAE,CAAC;YACJ,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,CAAC;SACV,CAAC;QACM,gBAAW,GAAyC;YACxD,SAAS,EAAE,EAAE;YACb,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACd,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;SAC3B,CAAC;QACM,cAAS,GAA4B;YACzC,KAAK,EAAE,SAAS;SACnB,CAAC;IAkDN,CAAC;IAhDG,cAAc,CAAC,MAAc;QACzB,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,CAAC;QACtB,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,0BAA0B,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,YAAY,CAAC,MAAc;QACvB,MAAM,EAAC,IAAI,EAAE,aAAa,GAAG,EAAE,KAAa,MAAM,EAAd,IAAI,UAAI,MAAM,EAA5C,yBAAmC,CAAS,CAAC;QAEnD,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCACV,IAAI,KACP,IAAI,EACJ,aAAa,kCAAM,IAAI,CAAC,cAAc,GAAK,aAAa,IAC3D,CAAC;IACN,CAAC;IAED,WAAW,CAAC,WAAqB,EAAE;QAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACxC,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,mCAAO,IAAI,CAAC,WAAW,GAAK,QAAQ,CAAC,UAAU,CAAC,CAAC;QACrE,CAAC;IACL,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,UAAU;QACN,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,CAAC,IAAY;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,IAAY;QACd,OAAO,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC;IAC/B,CAAC;CACJ","sourcesContent":["import ReactGridLayout from 'react-grid-layout';\n\nimport type {Plugin, PluginDefaultLayout, Settings} from '../typings';\n\ninterface RegisterManagerDefaultLayout {\n x: number;\n y: number;\n w: number;\n h: number;\n minW?: number;\n minH?: number;\n}\n\nexport type RegisterManagerPluginLayout = RegisterManagerDefaultLayout & PluginDefaultLayout;\n\nexport interface RegisterManagerPlugin extends Omit<Plugin, 'defaultLayout'> {\n defaultLayout: RegisterManagerDefaultLayout & Plugin['defaultLayout'];\n}\n\nexport type RegisterManagerSettings = {theme: string} & Settings;\n\nexport class RegisterManager {\n private _items: Record<string, RegisterManagerPlugin> = {};\n private _defaultLayout: RegisterManagerDefaultLayout = {\n x: 0,\n y: Infinity,\n w: Infinity,\n h: 4,\n minW: 4,\n minH: 2,\n };\n private _gridLayout: ReactGridLayout.ReactGridLayoutProps = {\n rowHeight: 18,\n cols: 36,\n margin: [2, 2],\n containerPadding: [0, 0],\n };\n private _settings: RegisterManagerSettings = {\n theme: 'default',\n };\n\n registerPlugin(plugin: Plugin) {\n const {type} = plugin;\n if (type in this._items) {\n throw new Error(`DashKit.registerPlugins: type ${type} уже был зарегистрирован`);\n }\n this.reloadPlugin(plugin);\n }\n\n reloadPlugin(plugin: Plugin) {\n const {type, defaultLayout = {}, ...item} = plugin;\n\n if (typeof plugin.renderer !== 'function') {\n throw new Error('DashKit.registerPlugins: renderer должна быть функцией');\n }\n\n this._items[type] = {\n ...item,\n type,\n defaultLayout: {...this._defaultLayout, ...defaultLayout},\n };\n }\n\n setSettings(settings: Settings = {}) {\n Object.assign(this._settings, settings);\n if (settings.gridLayout) {\n this._gridLayout = {...this._gridLayout, ...settings.gridLayout};\n }\n }\n\n get settings() {\n return this._settings;\n }\n\n get gridLayout() {\n return this._gridLayout;\n }\n\n getPlugins() {\n return Object.values(this._items);\n }\n\n getItem(type: string) {\n return this._items[type];\n }\n\n check(type: string) {\n return type in this._items;\n }\n}\n"]}
1
+ {"version":3,"file":"register-manager.js","sourceRoot":"../../../src","sources":["utils/register-manager.ts"],"names":[],"mappings":";AAmBA,MAAM,OAAO,eAAe;IAA5B;QACY,WAAM,GAA0C,EAAE,CAAC;QACnD,mBAAc,GAAiC;YACnD,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,QAAQ;YACX,CAAC,EAAE,QAAQ;YACX,CAAC,EAAE,CAAC;YACJ,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,CAAC;SACV,CAAC;QACM,gBAAW,GAAyB;YACxC,SAAS,EAAE,EAAE;YACb,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACd,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;SAC3B,CAAC;QACM,cAAS,GAA4B;YACzC,KAAK,EAAE,SAAS;SACnB,CAAC;IAkDN,CAAC;IAhDG,cAAc,CAAC,MAAc;QACzB,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,CAAC;QACtB,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,0BAA0B,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,YAAY,CAAC,MAAc;QACvB,MAAM,EAAC,IAAI,EAAE,aAAa,GAAG,EAAE,KAAa,MAAM,EAAd,IAAI,UAAI,MAAM,EAA5C,yBAAmC,CAAS,CAAC;QAEnD,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCACV,IAAI,KACP,IAAI,EACJ,aAAa,kCAAM,IAAI,CAAC,cAAc,GAAK,aAAa,IAC3D,CAAC;IACN,CAAC;IAED,WAAW,CAAC,WAAqB,EAAE;QAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACxC,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,mCAAO,IAAI,CAAC,WAAW,GAAK,QAAQ,CAAC,UAAU,CAAC,CAAC;QACrE,CAAC;IACL,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,UAAU;QACN,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,CAAC,IAAY;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,IAAY;QACd,OAAO,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC;IAC/B,CAAC;CACJ","sourcesContent":["import type {Plugin, PluginDefaultLayout, ReactGridLayoutProps, Settings} from '../typings';\n\ninterface RegisterManagerDefaultLayout {\n x: number;\n y: number;\n w: number;\n h: number;\n minW?: number;\n minH?: number;\n}\n\nexport type RegisterManagerPluginLayout = RegisterManagerDefaultLayout & PluginDefaultLayout;\n\nexport interface RegisterManagerPlugin extends Omit<Plugin, 'defaultLayout'> {\n defaultLayout: RegisterManagerDefaultLayout & Plugin['defaultLayout'];\n}\n\nexport type RegisterManagerSettings = {theme: string} & Settings;\n\nexport class RegisterManager {\n private _items: Record<string, RegisterManagerPlugin> = {};\n private _defaultLayout: RegisterManagerDefaultLayout = {\n x: 0,\n y: Infinity,\n w: Infinity,\n h: 4,\n minW: 4,\n minH: 2,\n };\n private _gridLayout: ReactGridLayoutProps = {\n rowHeight: 18,\n cols: 36,\n margin: [2, 2],\n containerPadding: [0, 0],\n };\n private _settings: RegisterManagerSettings = {\n theme: 'default',\n };\n\n registerPlugin(plugin: Plugin) {\n const {type} = plugin;\n if (type in this._items) {\n throw new Error(`DashKit.registerPlugins: type ${type} уже был зарегистрирован`);\n }\n this.reloadPlugin(plugin);\n }\n\n reloadPlugin(plugin: Plugin) {\n const {type, defaultLayout = {}, ...item} = plugin;\n\n if (typeof plugin.renderer !== 'function') {\n throw new Error('DashKit.registerPlugins: renderer должна быть функцией');\n }\n\n this._items[type] = {\n ...item,\n type,\n defaultLayout: {...this._defaultLayout, ...defaultLayout},\n };\n }\n\n setSettings(settings: Settings = {}) {\n Object.assign(this._settings, settings);\n if (settings.gridLayout) {\n this._gridLayout = {...this._gridLayout, ...settings.gridLayout};\n }\n }\n\n get settings() {\n return this._settings;\n }\n\n get gridLayout() {\n return this._gridLayout;\n }\n\n getPlugins() {\n return Object.values(this._items);\n }\n\n getItem(type: string) {\n return this._items[type];\n }\n\n check(type: string) {\n return type in this._items;\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { ConfigLayout } from "../shared/index.js";
2
2
  import type { Config, ConfigItem, ConfigItemGroup, ItemStateAndParams, ItemStateAndParamsChangeOptions, ItemsStateAndParams } from "../shared/index.js";
3
- import type { AddConfigItem, AddNewItemOptions, ReflowLayoutOptions, SetItemOptions, WidgetLayout } from "../typings/index.js";
3
+ import type { AddConfigItem, AddNewItemOptions, ReflowLayoutOptions, SetItemOptions } from "../typings/index.js";
4
4
  import { RegisterManagerPluginLayout } from "./register-manager.js";
5
5
  interface RemoveItemArg {
6
6
  id: string;
@@ -45,7 +45,7 @@ export declare class UpdateManager {
45
45
  itemsStateAndParams: ItemsStateAndParams;
46
46
  };
47
47
  static updateLayout({ layout, config }: {
48
- layout: WidgetLayout[];
48
+ layout: ConfigLayout[];
49
49
  config: Config;
50
50
  }): Config;
51
51
  static changeStateAndParams({ id: initiatorId, config, stateAndParams, itemsStateAndParams, options, }: ChangeStateAndParamsArg): ItemsStateAndParams;