@nocobase/client-v2 2.1.0-beta.23 → 2.1.0-beta.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/flow/components/Grid/index.d.ts +5 -3
- package/es/flow/models/base/GridModel.d.ts +19 -2
- package/es/flow/models/blocks/filter-form/FilterFormGridModel.d.ts +1 -0
- package/es/index.mjs +88 -88
- package/lib/index.js +82 -82
- package/package.json +5 -5
- package/src/flow/components/Grid/index.tsx +66 -20
- package/src/flow/models/base/BlockGridModel.tsx +2 -2
- package/src/flow/models/base/GridModel.tsx +428 -195
- package/src/flow/models/base/__tests__/BlockGridModel.dragOverlayConfig.test.ts +44 -0
- package/src/flow/models/base/__tests__/GridModel.computeOverlayRect.test.ts +29 -0
- package/src/flow/models/base/__tests__/GridModel.dragSnapshotContainer.test.ts +181 -2
- package/src/flow/models/base/__tests__/GridModel.resizeLayout.test.ts +124 -0
- package/src/flow/models/base/__tests__/GridModel.visibleLayout.test.ts +55 -15
- package/src/flow/models/blocks/details/DetailsGridModel.tsx +6 -6
- package/src/flow/models/blocks/filter-form/FilterFormGridModel.tsx +54 -14
- package/src/flow/models/blocks/filter-form/__tests__/FilterFormGridModel.toggleFormFieldsCollapse.test.ts +45 -0
- package/src/flow/models/blocks/form/FormGridModel.tsx +6 -6
|
@@ -6,21 +6,23 @@
|
|
|
6
6
|
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
|
+
import { GridLayoutV2 } from '@nocobase/flow-engine';
|
|
9
10
|
import React from 'react';
|
|
10
11
|
interface DragOverlayRect {
|
|
11
12
|
readonly top: number;
|
|
12
13
|
readonly left: number;
|
|
13
14
|
readonly width: number;
|
|
14
15
|
readonly height: number;
|
|
15
|
-
readonly type: 'column' | 'column-edge' | 'row-gap' | 'empty-row' | 'empty-column';
|
|
16
|
+
readonly type: 'column' | 'column-edge' | 'row-gap' | 'empty-row' | 'empty-column' | 'item-edge';
|
|
16
17
|
}
|
|
17
18
|
interface GridProps {
|
|
18
|
-
readonly rows
|
|
19
|
+
readonly rows?: Record<string, string[][]>;
|
|
19
20
|
readonly sizes?: Record<string, number[]>;
|
|
21
|
+
readonly layout?: GridLayoutV2;
|
|
20
22
|
readonly renderItem: (uid: string) => React.ReactNode;
|
|
21
23
|
readonly rowGap?: number;
|
|
22
24
|
readonly colGap?: number;
|
|
23
25
|
readonly dragOverlayRect?: DragOverlayRect | null;
|
|
24
26
|
}
|
|
25
|
-
export declare function Grid({ rows, sizes, renderItem, rowGap, colGap, dragOverlayRect }: GridProps): React.JSX.Element;
|
|
27
|
+
export declare function Grid({ rows, sizes, layout, renderItem, rowGap, colGap, dragOverlayRect, }: GridProps): React.JSX.Element;
|
|
26
28
|
export {};
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
import { DragCancelEvent, DragEndEvent, DragMoveEvent, DragStartEvent } from '@dnd-kit/core';
|
|
10
|
-
import { DragOverlayConfig, FlowModel, GridLayoutData } from '@nocobase/flow-engine';
|
|
11
10
|
import type { FlowModelRendererProps } from '@nocobase/flow-engine';
|
|
11
|
+
import { DragOverlayConfig, FlowModel, GridLayoutData, GridLayoutV2 } from '@nocobase/flow-engine';
|
|
12
12
|
import React from 'react';
|
|
13
13
|
export declare const GRID_FLOW_KEY = "gridSettings";
|
|
14
14
|
export declare const GRID_STEP = "grid";
|
|
@@ -33,6 +33,9 @@ export declare class GridModel<T extends {
|
|
|
33
33
|
private readonly itemExtraToolbarItems;
|
|
34
34
|
private dragState?;
|
|
35
35
|
private _memoItemFlowSettings?;
|
|
36
|
+
private updateDragPointerPosition;
|
|
37
|
+
private handleDragScroll;
|
|
38
|
+
private bindDragDocumentListeners;
|
|
36
39
|
protected deriveRowOrder(rows: Record<string, string[][]>, provided?: string[]): string[];
|
|
37
40
|
normalizeRowsWithOrder(rows: Record<string, string[][]>, provided?: string[]): {
|
|
38
41
|
rows: Record<string, string[][]>;
|
|
@@ -40,18 +43,32 @@ export declare class GridModel<T extends {
|
|
|
40
43
|
};
|
|
41
44
|
orderSizesByRowOrder(sizes: Record<string, number[]>, rowOrder: string[]): Record<string, number[]>;
|
|
42
45
|
private getItemFlowSettings;
|
|
46
|
+
getItemUids(): string[];
|
|
47
|
+
protected normalizeLayoutFromSource(source?: Partial<GridLayoutData>): GridLayoutV2;
|
|
48
|
+
getGridLayout(): GridLayoutV2;
|
|
49
|
+
syncLayoutProps(layout: GridLayoutV2): void;
|
|
50
|
+
setGridStepLayout(layout: GridLayoutV2): void;
|
|
51
|
+
private findLayoutRowByPath;
|
|
52
|
+
private collectCellItemsForResize;
|
|
53
|
+
private buildResizedCells;
|
|
54
|
+
private getResizeRowPath;
|
|
55
|
+
private getResizeContainerWidth;
|
|
56
|
+
private resizeGridLayout;
|
|
43
57
|
onMount(): void;
|
|
44
|
-
saveGridLayout(layout?: GridLayoutData): void;
|
|
58
|
+
saveGridLayout(layout?: GridLayoutData | GridLayoutV2): void;
|
|
45
59
|
mergeRowsWithItems(rows: Record<string, string[][]>): Record<string, string[][]>;
|
|
46
60
|
resetRows(syncProps?: boolean): void;
|
|
47
61
|
private computePointerPosition;
|
|
48
62
|
private getDragContainer;
|
|
49
63
|
private updateLayoutSnapshot;
|
|
50
64
|
private scheduleSnapshotRefresh;
|
|
65
|
+
private refreshPreviewFromPointer;
|
|
51
66
|
/**
|
|
52
67
|
* 根据 slot 类型、位置和配置计算最终的 overlay 尺寸和位置
|
|
53
68
|
*/
|
|
54
69
|
private computeOverlayRect;
|
|
70
|
+
private getHitTestSlot;
|
|
71
|
+
private resolveDragSlot;
|
|
55
72
|
private applyPreview;
|
|
56
73
|
handleDragStart(event: DragStartEvent): void;
|
|
57
74
|
handleDragMove(event: DragMoveEvent): void;
|
|
@@ -11,6 +11,7 @@ import React from 'react';
|
|
|
11
11
|
import { GridModel } from '../../base';
|
|
12
12
|
import { FilterFormItemModel } from './FilterFormItemModel';
|
|
13
13
|
export declare class FilterFormGridModel extends GridModel {
|
|
14
|
+
private fullLayoutBeforeCollapse?;
|
|
14
15
|
itemSettingsMenuLevel: number;
|
|
15
16
|
itemFlowSettings: {
|
|
16
17
|
showBackground: boolean;
|