@pisell/materials 6.11.96 → 6.11.97
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/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/index.js +1 -1
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/preview.js +6 -6
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +7 -7
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +8 -8
- package/es/components/buttonGroupPreview/index.js +1 -2
- package/es/components/pisellFind/index.d.ts +12 -34
- package/es/components/pisellFind/index.js +18 -114
- package/es/components/pisellRecordBoard/layouts/GridLayout/Grid.js +2 -4
- package/es/components/productCard/cartSkuCard/components/AmountFooter/index.js +3 -1
- package/es/components/productCard/cartSkuCard/components/AmountFooter/index.less +5 -0
- package/es/components/productCard/cartSkuCard/components/resources/index.less +0 -4
- package/es/components/productCard/cartSkuCard/components/weighing/index.js +3 -3
- package/es/components/productCard/cartSkuCard/components/weighing/index.less +5 -0
- package/es/components/productCard/lineItem/BookingLineItem.d.ts +1 -2
- package/es/components/productCard/lineItem/BookingLineItem.js +6 -15
- package/es/components/productCard/lineItem/index.d.ts +8 -10
- package/es/components/productCard/lineItem/index.js +13 -61
- package/es/components/productCard/lineItem/index.less +3 -3
- package/es/components/productCard/lineItem/types.d.ts +0 -4
- package/es/components/productCard/types.d.ts +0 -1
- package/lib/components/buttonGroupPreview/index.js +1 -2
- package/lib/components/pisellFind/index.d.ts +12 -34
- package/lib/components/pisellFind/index.js +5 -80
- package/lib/components/pisellRecordBoard/layouts/GridLayout/Grid.js +1 -1
- package/lib/components/productCard/cartSkuCard/components/AmountFooter/index.js +17 -5
- package/lib/components/productCard/cartSkuCard/components/AmountFooter/index.less +5 -0
- package/lib/components/productCard/cartSkuCard/components/resources/index.less +0 -4
- package/lib/components/productCard/cartSkuCard/components/weighing/index.js +21 -1
- package/lib/components/productCard/cartSkuCard/components/weighing/index.less +5 -0
- package/lib/components/productCard/lineItem/BookingLineItem.d.ts +1 -2
- package/lib/components/productCard/lineItem/BookingLineItem.js +2 -14
- package/lib/components/productCard/lineItem/index.d.ts +8 -10
- package/lib/components/productCard/lineItem/index.js +10 -51
- package/lib/components/productCard/lineItem/index.less +3 -3
- package/lib/components/productCard/lineItem/types.d.ts +0 -4
- package/lib/components/productCard/types.d.ts +0 -1
- package/lowcode/pisell-find/meta.ts +0 -19
- package/package.json +3 -3
- package/es/components/PisellScrollView/PisellScrollView.d.ts +0 -5
- package/es/components/PisellScrollView/components/Actions/index.d.ts +0 -18
- package/es/components/PisellScrollView/types.d.ts +0 -203
- package/es/components/dataSourceComponents/dataSourceShow/dataSourceImage/index.d.ts +0 -3
- package/es/components/dataSourceComponents/fields/DatePicker/index.d.ts +0 -3
- package/es/components/dataSourceComponents/fields/Input.Mobile/serve.d.ts +0 -26
- package/es/components/dataSourceComponents/fields/Input.Phone/serve.d.ts +0 -27
- package/es/components/pisellDataSourceContainer/components/Pagination/index.d.ts +0 -6
- package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.d.ts +0 -13
- package/es/components/pisellFloorMapLayout/appearance/floorMapAppearance.d.ts +0 -29
- package/es/components/pisellFloorMapLayout/components/EdgeLayer.d.ts +0 -37
- package/es/components/pisellFloorMapLayout/components/EditableItemLayer.d.ts +0 -66
- package/es/components/pisellFloorMapLayout/components/FloorMapEdgeEditPanel.d.ts +0 -16
- package/es/components/pisellFloorMapLayout/components/FloorMapEditPanel.d.ts +0 -14
- package/es/components/pisellFloorMapLayout/components/FloorMapEditQuickActions.d.ts +0 -26
- package/es/components/pisellFloorMapLayout/components/FloorMapOverview.d.ts +0 -44
- package/es/components/pisellFloorMapLayout/components/FloorMapToolbar.d.ts +0 -84
- package/es/components/pisellFloorMapLayout/components/FloorMapToolbarViewAllModal.d.ts +0 -20
- package/es/components/pisellFloorMapLayout/components/FloorMapZoneElement.d.ts +0 -9
- package/es/components/pisellFloorMapLayout/components/NodePortMarkers.d.ts +0 -20
- package/es/components/pisellFloorMapLayout/components/ViewControls.d.ts +0 -61
- package/es/components/pisellFloorMapLayout/components/ViewControlsWithZoom.d.ts +0 -28
- package/es/components/pisellFloorMapLayout/context/mergeFloorMapLayoutContext.d.ts +0 -5
- package/es/components/pisellFloorMapLayout/floorMapLayoutConstants.d.ts +0 -35
- package/es/components/pisellFloorMapLayout/hooks/useFloorMapEdgeEditing.d.ts +0 -61
- package/es/components/pisellFloorMapLayout/hooks/useFloorMapEdgeViewModel.d.ts +0 -15
- package/es/components/pisellFloorMapLayout/hooks/useFloorMapEditState.d.ts +0 -79
- package/es/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.d.ts +0 -91
- package/es/components/pisellFloorMapLayout/hooks/useShopFloorPlanSubscription.d.ts +0 -19
- package/es/components/pisellFloorMapLayout/index.d.ts +0 -37
- package/es/components/pisellFloorMapLayout/locales-ja.d.ts +0 -184
- package/es/components/pisellFloorMapLayout/locales-pt.d.ts +0 -184
- package/es/components/pisellFloorMapLayout/locales.d.ts +0 -969
- package/es/components/pisellFloorMapLayout/types.d.ts +0 -778
- package/es/components/pisellFloorMapLayout/utils/alignSnap.d.ts +0 -64
- package/es/components/pisellFloorMapLayout/utils/batchScenePlacementLayout.d.ts +0 -45
- package/es/components/pisellFloorMapLayout/utils/edgeRouting.d.ts +0 -267
- package/es/components/pisellFloorMapLayout/utils/floorMapConfigMerge.d.ts +0 -8
- package/es/components/pisellFloorMapLayout/utils/floorMapElementKindUtils.d.ts +0 -35
- package/es/components/pisellFloorMapLayout/utils/floorMapFallbackRender.d.ts +0 -11
- package/es/components/pisellFloorMapLayout/utils/floorMapOverviewLayout.d.ts +0 -44
- package/es/components/pisellFloorMapLayout/utils/floorMapResourcePickerDisplay.d.ts +0 -27
- package/es/components/pisellFloorMapLayout/utils/floorMapResourcePickerTypes.d.ts +0 -109
- package/es/components/pisellFloorMapLayout/utils/floorMapToolbarPalette.d.ts +0 -34
- package/es/components/productCard/lineItem/components/Holders/index.d.ts +0 -10
- package/es/components/productCard/lineItem/components/Holders/index.js +0 -74
- package/es/components/productCard/lineItem/components/Holders/index.less +0 -39
- package/es/components/productCard/lineItem/components/TimeRange/index.d.ts +0 -12
- package/lib/components/PisellScrollView/PisellScrollView.d.ts +0 -5
- package/lib/components/PisellScrollView/components/Actions/index.d.ts +0 -18
- package/lib/components/PisellScrollView/types.d.ts +0 -203
- package/lib/components/dataSourceComponents/dataSourceShow/dataSourceImage/index.d.ts +0 -3
- package/lib/components/dataSourceComponents/fields/DatePicker/index.d.ts +0 -3
- package/lib/components/dataSourceComponents/fields/Input.Mobile/serve.d.ts +0 -26
- package/lib/components/dataSourceComponents/fields/Input.Phone/serve.d.ts +0 -27
- package/lib/components/pisellDataSourceContainer/components/Pagination/index.d.ts +0 -6
- package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.d.ts +0 -13
- package/lib/components/pisellFloorMapLayout/appearance/floorMapAppearance.d.ts +0 -29
- package/lib/components/pisellFloorMapLayout/components/EdgeLayer.d.ts +0 -37
- package/lib/components/pisellFloorMapLayout/components/EditableItemLayer.d.ts +0 -66
- package/lib/components/pisellFloorMapLayout/components/FloorMapEdgeEditPanel.d.ts +0 -16
- package/lib/components/pisellFloorMapLayout/components/FloorMapEditPanel.d.ts +0 -14
- package/lib/components/pisellFloorMapLayout/components/FloorMapEditQuickActions.d.ts +0 -26
- package/lib/components/pisellFloorMapLayout/components/FloorMapOverview.d.ts +0 -44
- package/lib/components/pisellFloorMapLayout/components/FloorMapToolbar.d.ts +0 -84
- package/lib/components/pisellFloorMapLayout/components/FloorMapToolbarViewAllModal.d.ts +0 -20
- package/lib/components/pisellFloorMapLayout/components/FloorMapZoneElement.d.ts +0 -9
- package/lib/components/pisellFloorMapLayout/components/NodePortMarkers.d.ts +0 -20
- package/lib/components/pisellFloorMapLayout/components/ViewControls.d.ts +0 -61
- package/lib/components/pisellFloorMapLayout/components/ViewControlsWithZoom.d.ts +0 -28
- package/lib/components/pisellFloorMapLayout/context/mergeFloorMapLayoutContext.d.ts +0 -5
- package/lib/components/pisellFloorMapLayout/floorMapLayoutConstants.d.ts +0 -35
- package/lib/components/pisellFloorMapLayout/hooks/useFloorMapEdgeEditing.d.ts +0 -61
- package/lib/components/pisellFloorMapLayout/hooks/useFloorMapEdgeViewModel.d.ts +0 -15
- package/lib/components/pisellFloorMapLayout/hooks/useFloorMapEditState.d.ts +0 -79
- package/lib/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.d.ts +0 -91
- package/lib/components/pisellFloorMapLayout/hooks/useShopFloorPlanSubscription.d.ts +0 -19
- package/lib/components/pisellFloorMapLayout/index.d.ts +0 -37
- package/lib/components/pisellFloorMapLayout/locales-ja.d.ts +0 -184
- package/lib/components/pisellFloorMapLayout/locales-pt.d.ts +0 -184
- package/lib/components/pisellFloorMapLayout/locales.d.ts +0 -969
- package/lib/components/pisellFloorMapLayout/types.d.ts +0 -778
- package/lib/components/pisellFloorMapLayout/utils/alignSnap.d.ts +0 -64
- package/lib/components/pisellFloorMapLayout/utils/batchScenePlacementLayout.d.ts +0 -45
- package/lib/components/pisellFloorMapLayout/utils/edgeRouting.d.ts +0 -267
- package/lib/components/pisellFloorMapLayout/utils/floorMapConfigMerge.d.ts +0 -8
- package/lib/components/pisellFloorMapLayout/utils/floorMapElementKindUtils.d.ts +0 -35
- package/lib/components/pisellFloorMapLayout/utils/floorMapFallbackRender.d.ts +0 -11
- package/lib/components/pisellFloorMapLayout/utils/floorMapOverviewLayout.d.ts +0 -44
- package/lib/components/pisellFloorMapLayout/utils/floorMapResourcePickerDisplay.d.ts +0 -27
- package/lib/components/pisellFloorMapLayout/utils/floorMapResourcePickerTypes.d.ts +0 -109
- package/lib/components/pisellFloorMapLayout/utils/floorMapToolbarPalette.d.ts +0 -34
- package/lib/components/productCard/lineItem/components/Holders/index.d.ts +0 -10
- package/lib/components/productCard/lineItem/components/Holders/index.js +0 -83
- package/lib/components/productCard/lineItem/components/Holders/index.less +0 -39
- package/lib/components/productCard/lineItem/components/TimeRange/index.d.ts +0 -12
|
@@ -1,778 +0,0 @@
|
|
|
1
|
-
import type { CSSProperties, MouseEvent as ReactMouseEvent, ReactNode } from 'react';
|
|
2
|
-
import type { FloorMapAppearanceMode } from './appearance/floorMapAppearance';
|
|
3
|
-
export type { FloorMapAppearanceMode } from './appearance/floorMapAppearance';
|
|
4
|
-
/**
|
|
5
|
-
* 资源项形状
|
|
6
|
-
* @description 展示层支持的基础形状
|
|
7
|
-
*/
|
|
8
|
-
export declare type FloorMapItemShape = 'rect' | 'circle' | 'triangle' | 'polygon' | 'custom';
|
|
9
|
-
/**
|
|
10
|
-
* 底层背景类型
|
|
11
|
-
* @description 地图底层的展示方式
|
|
12
|
-
*/
|
|
13
|
-
export declare type FloorMapBackgroundType = 'none' | 'color' | 'image' | 'svg';
|
|
14
|
-
/**
|
|
15
|
-
* 平移边界策略
|
|
16
|
-
* @description 拖拽/手势平移时的边界行为
|
|
17
|
-
*/
|
|
18
|
-
export declare type FloorMapPanBoundary = 'none' | 'clamp' | 'bounce';
|
|
19
|
-
/**
|
|
20
|
-
* 资源项坐标/尺寸单位
|
|
21
|
-
* - cell:x/y/width/height 为格子数,由 cellSize 转为像素
|
|
22
|
-
* - pixel:x/y/width/height 为像素
|
|
23
|
-
*/
|
|
24
|
-
export declare type FloorMapItemUnit = 'cell' | 'pixel';
|
|
25
|
-
/**
|
|
26
|
-
* 资源项基础类型
|
|
27
|
-
* @description 每个资源至少包含 id 与坐标 (x, y),其余由外部扩展。
|
|
28
|
-
* 单位由布局的 itemUnit 决定:cell 时为格子数,pixel 时为像素。
|
|
29
|
-
*/
|
|
30
|
-
export interface FloorMapItemBase {
|
|
31
|
-
/** 唯一标识 */
|
|
32
|
-
id: string;
|
|
33
|
-
/** 坐标 x(cell 时为格子索引,pixel 时为像素) */
|
|
34
|
-
x: number;
|
|
35
|
-
/** 坐标 y */
|
|
36
|
-
y: number;
|
|
37
|
-
/** 显示名称,与 x/y 同级,所有图元可编辑 */
|
|
38
|
-
name?: string;
|
|
39
|
-
/** 层级,与 x/y 同级,所有图元可编辑;数值越大越靠前 */
|
|
40
|
-
zIndex?: number;
|
|
41
|
-
/** 宽度(可选;cell 时为格子数,pixel 时为像素,缺省时 cell 为 1,pixel 为 cellSize) */
|
|
42
|
-
width?: number;
|
|
43
|
-
/** 高度(可选) */
|
|
44
|
-
height?: number;
|
|
45
|
-
/** 形状,默认 rect */
|
|
46
|
-
shape?: FloorMapItemShape;
|
|
47
|
-
/**
|
|
48
|
-
* 是否为分区容器图元(zone):可承载子图元归属,不参与连线锚点。
|
|
49
|
-
* 视觉由 {@link FloorMapZoneElement} 或业务侧 `renderItemByKind` 提供。
|
|
50
|
-
*/
|
|
51
|
-
isZone?: boolean;
|
|
52
|
-
/** 所属分区 id;`null` / 未传表示无所属 */
|
|
53
|
-
parentId?: string | null;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* 底层(MapLayer)配置
|
|
57
|
-
*/
|
|
58
|
-
export interface FloorMapLayerConfig {
|
|
59
|
-
/** 背景类型 */
|
|
60
|
-
backgroundType?: FloorMapBackgroundType;
|
|
61
|
-
/**
|
|
62
|
-
* 纯色背景时的显式颜色(backgroundType 为 color 时有效)。
|
|
63
|
-
* 一旦配置,应优先于 `appearanceMode` 提供的画布背景兜底色。
|
|
64
|
-
*/
|
|
65
|
-
backgroundColor?: string;
|
|
66
|
-
/** 图片背景 URL(backgroundType 为 image 时有效) */
|
|
67
|
-
backgroundImage?: string;
|
|
68
|
-
/** SVG 背景内容或 URL(backgroundType 为 svg 时有效) */
|
|
69
|
-
backgroundSvg?: string;
|
|
70
|
-
/** 是否显示网格线,默认 false */
|
|
71
|
-
showGrid?: boolean;
|
|
72
|
-
/** 底层内边距(如 16 或 "16px") */
|
|
73
|
-
padding?: number | string;
|
|
74
|
-
/** 格子/元素间距 */
|
|
75
|
-
gap?: number | string;
|
|
76
|
-
/** 坐标吸附间隔(逻辑单位),0 表示不吸附 */
|
|
77
|
-
snapStep?: number;
|
|
78
|
-
/**
|
|
79
|
-
* 平面图像素模式:按图元包围盒外扩的单侧留白(像素),影响画布尺寸与初始对齐。
|
|
80
|
-
* 不传时默认约 56;若需更大拖拽边距可设大值(如 200)。
|
|
81
|
-
*/
|
|
82
|
-
boundingPadding?: number;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* 缩放配置
|
|
86
|
-
*/
|
|
87
|
-
export interface FloorMapZoomConfig {
|
|
88
|
-
/** 默认缩放比例,如 1 表示 100% */
|
|
89
|
-
defaultScale?: number;
|
|
90
|
-
/** 最小缩放,默认 0.5 (50%) */
|
|
91
|
-
min?: number;
|
|
92
|
-
/** 最大缩放,默认 2 (200%) */
|
|
93
|
-
max?: number;
|
|
94
|
-
/** 缩放步进,默认 0.1 (10%) */
|
|
95
|
-
step?: number;
|
|
96
|
-
/**
|
|
97
|
-
* 为 false 时关闭;未传或其它值时默认开启(平面图像素模式且当前画布有图元时,每画布自动 fitBounds 一次,可视区域刚好容纳全部图元)。
|
|
98
|
-
* 开启时跳过「首帧 defaultScale 左上对齐」,避免与 fit 闪动叠加。
|
|
99
|
-
*/
|
|
100
|
-
autoFitOnMount?: boolean;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* 平移配置
|
|
104
|
-
*/
|
|
105
|
-
export interface FloorMapPanConfig {
|
|
106
|
-
/** 是否允许平移,默认 false */
|
|
107
|
-
enabled?: boolean;
|
|
108
|
-
/**
|
|
109
|
-
* 平移边界:`none` 时不限制(无限拖动画布);`clamp` / `bounce` / 未传时限制在内容区内(对齐 react-zoom-pan-pinch `limitToBounds`)。
|
|
110
|
-
*/
|
|
111
|
-
boundary?: FloorMapPanBoundary;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* 视图控制显隐(默认仅显示放大/缩小,复位与区域定位需配置开启)
|
|
115
|
-
*/
|
|
116
|
-
export interface FloorMapControlsConfig {
|
|
117
|
-
/** 是否显示缩放按钮(+ / −),默认 true */
|
|
118
|
-
showZoom?: boolean;
|
|
119
|
-
/** 是否显示复位按钮,默认 false */
|
|
120
|
-
showReset?: boolean;
|
|
121
|
-
/** 是否显示区域定位(fitBounds)按钮,默认 false */
|
|
122
|
-
showFitBounds?: boolean;
|
|
123
|
-
/** 是否显示全屏按钮,默认 false */
|
|
124
|
-
showFullscreen?: boolean;
|
|
125
|
-
/**
|
|
126
|
-
* 是否显示网格开关(写入当前画布 draft 的 mapLayer.showGrid),默认 false
|
|
127
|
-
*/
|
|
128
|
-
showGridToggle?: boolean;
|
|
129
|
-
/**
|
|
130
|
-
* 是否显示连线显隐开关(需 `enableEdges` 且主组件传入 `onToggleEdgesLayer`),默认 false
|
|
131
|
-
*/
|
|
132
|
-
showEdgesToggle?: boolean;
|
|
133
|
-
/**
|
|
134
|
-
* 是否显示「视口锁定」按钮:锁定后画布的位置 / 缩放不允许通过任何用户交互(拖拽、滚轮、触摸缩放、缩放按钮、适配视口)改变,
|
|
135
|
-
* 防止误触改变视图。默认 false;平面图模式下由 PisellFloorMapLayout 默认置 true(与是否持久化视口到本地无关)。显式传 false 可隐藏。
|
|
136
|
-
*/
|
|
137
|
-
showViewportLock?: boolean;
|
|
138
|
-
/**
|
|
139
|
-
* 悬浮控件条水平位置:`start` 左下(默认),`end` 右下
|
|
140
|
-
*/
|
|
141
|
-
horizontalAlign?: 'start' | 'end';
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* 布局模式(规则网格 vs 完全自由坐标)
|
|
145
|
-
*/
|
|
146
|
-
export declare type FloorMapLayoutMode = 'grid' | 'free';
|
|
147
|
-
/**
|
|
148
|
-
* 规则网格布局配置(layoutMode 为 grid 时可用)
|
|
149
|
-
*/
|
|
150
|
-
export interface FloorMapGridLayoutConfig {
|
|
151
|
-
/** 每行列数 */
|
|
152
|
-
columns?: number;
|
|
153
|
-
}
|
|
154
|
-
/** 图元类型:是否绑定业务资源 */
|
|
155
|
-
export declare type FloorMapElementType = 'resource' | 'decoration';
|
|
156
|
-
/**
|
|
157
|
-
* 画布名称多语言结构(与低代码 Translation 字段一致)
|
|
158
|
-
*/
|
|
159
|
-
export declare type FloorMapCanvasNameI18n = {
|
|
160
|
-
en: string;
|
|
161
|
-
'zh-CN': string;
|
|
162
|
-
'zh-HK': string;
|
|
163
|
-
ja: string;
|
|
164
|
-
pt: string;
|
|
165
|
-
};
|
|
166
|
-
/** 画布(对应一个 Tab,如 1楼、2楼) */
|
|
167
|
-
export interface FloorMapCanvas {
|
|
168
|
-
id: string;
|
|
169
|
-
/**
|
|
170
|
-
* 展示名:纯字符串或各语言对象;对象时按引擎 locale 取字段,缺省回退 `en` 等。
|
|
171
|
-
*/
|
|
172
|
-
name: string | FloorMapCanvasNameI18n;
|
|
173
|
-
/**
|
|
174
|
-
* 多语言文案 key(`locales.getText`);配置后 Tab / 侧栏「所属画布」优先显示当前语言译名。
|
|
175
|
-
* 用户重命名后会清除 `nameKey`,以 `name` 为准。
|
|
176
|
-
*/
|
|
177
|
-
nameKey?: string;
|
|
178
|
-
/**
|
|
179
|
-
* Tab 标签旁 (n) 数量;未配置时 `mergeCanvasesForTabs` 可按 `sceneElements` 数量推断(>0 才显示)。
|
|
180
|
-
*/
|
|
181
|
-
tabBadge?: number;
|
|
182
|
-
order: number;
|
|
183
|
-
enabled: boolean;
|
|
184
|
-
background?: string;
|
|
185
|
-
categoryIds?: string[];
|
|
186
|
-
mapLayer?: FloorMapLayerConfig;
|
|
187
|
-
}
|
|
188
|
-
/** 文字槽位(编辑时在 SVG 上添加,阅读态通过参数传文案) */
|
|
189
|
-
export interface FloorMapTextSlot {
|
|
190
|
-
id: string;
|
|
191
|
-
x: number;
|
|
192
|
-
y: number;
|
|
193
|
-
align?: 'left' | 'center' | 'right';
|
|
194
|
-
verticalAlign?: 'top' | 'middle' | 'bottom';
|
|
195
|
-
defaultText?: string;
|
|
196
|
-
}
|
|
197
|
-
/** 地图图元:资源或装饰,编辑与阅读共用(name/zIndex 继承自 FloorMapItemBase) */
|
|
198
|
-
export interface FloorMapElement extends FloorMapItemBase {
|
|
199
|
-
canvasId: string;
|
|
200
|
-
type: FloorMapElementType;
|
|
201
|
-
elementKind?: string;
|
|
202
|
-
fillColor?: string;
|
|
203
|
-
strokeColor?: string;
|
|
204
|
-
resourceId?: string;
|
|
205
|
-
capacity?: number;
|
|
206
|
-
textSlots?: FloorMapTextSlot[];
|
|
207
|
-
points?: [number, number][];
|
|
208
|
-
svgPath?: string;
|
|
209
|
-
svgUrl?: string;
|
|
210
|
-
imageUrl?: string;
|
|
211
|
-
/**
|
|
212
|
-
* 内置图形图元(`floorMapBuiltinShape`)的预设图形 key(如 `toilet`/`sofa` 等)。
|
|
213
|
-
* 非内置图形 kind 时不会被读取。
|
|
214
|
-
*/
|
|
215
|
-
builtinShapeKey?: string;
|
|
216
|
-
extensions?: Record<string, unknown>;
|
|
217
|
-
}
|
|
218
|
-
/** 单门店 Floor Map 数据(编辑/阅读共用) */
|
|
219
|
-
export interface FloorMapData {
|
|
220
|
-
canvases: FloorMapCanvas[];
|
|
221
|
-
elements: FloorMapElement[];
|
|
222
|
-
}
|
|
223
|
-
/** 多数据源:key 为数据源标识,value 为该数据源下的记录列表 */
|
|
224
|
-
export declare type FloorMapDataSources = Record<string, Array<{
|
|
225
|
-
id: string;
|
|
226
|
-
[k: string]: unknown;
|
|
227
|
-
}>>;
|
|
228
|
-
/**
|
|
229
|
-
* 画布图元与可选数据源行的绑定(无绑定时仅展示图元种类默认态)
|
|
230
|
-
*/
|
|
231
|
-
export interface FloorMapSceneElementDataBinding {
|
|
232
|
-
dataSourceKey: string;
|
|
233
|
-
recordId: string;
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* 画布上的单一图元实例(原 dataSourcePlacements + decorations 合并为同一结构)
|
|
237
|
-
*/
|
|
238
|
-
export interface FloorMapSceneElement {
|
|
239
|
-
/** 实例唯一 id,持久化主键 */
|
|
240
|
-
instanceId: string;
|
|
241
|
-
/** 所属画布 id */
|
|
242
|
-
canvasId: string;
|
|
243
|
-
x: number;
|
|
244
|
-
y: number;
|
|
245
|
-
name?: string;
|
|
246
|
-
zIndex?: number;
|
|
247
|
-
width?: number;
|
|
248
|
-
height?: number;
|
|
249
|
-
elementKind?: string;
|
|
250
|
-
scale?: number;
|
|
251
|
-
shape?: FloorMapItemShape;
|
|
252
|
-
fillColor?: string;
|
|
253
|
-
strokeColor?: string;
|
|
254
|
-
textSlots?: FloorMapTextSlot[];
|
|
255
|
-
points?: [number, number][];
|
|
256
|
-
svgPath?: string;
|
|
257
|
-
svgUrl?: string;
|
|
258
|
-
imageUrl?: string;
|
|
259
|
-
/**
|
|
260
|
-
* 内置图形图元(`floorMapBuiltinShape`)的预设图形 key(如 `toilet`/`sofa` 等)。
|
|
261
|
-
* 非内置图形 kind 时不会被读取;由 {@link FLOOR_MAP_BUILTIN_SHAPES} 枚举驱动。
|
|
262
|
-
*/
|
|
263
|
-
builtinShapeKey?: string;
|
|
264
|
-
extensions?: Record<string, unknown>;
|
|
265
|
-
dataBinding?: FloorMapSceneElementDataBinding;
|
|
266
|
-
/**
|
|
267
|
-
* 为 true 时:侧栏锁定 X/Y/层级/宽高的编辑,且画布上不可拖拽、不可缩放控制点。
|
|
268
|
-
* 仍可改名称、图片地址等其它字段(如适用)。
|
|
269
|
-
*/
|
|
270
|
-
layoutTransformLocked?: boolean;
|
|
271
|
-
/** 与 {@link FloorMapItemBase.isZone} 同义 */
|
|
272
|
-
isZone?: boolean;
|
|
273
|
-
/** 与 {@link FloorMapItemBase.parentId} 同义 */
|
|
274
|
-
parentId?: string | null;
|
|
275
|
-
}
|
|
276
|
-
/**
|
|
277
|
-
* 矩形区域类装饰(无数据源绑定),如画布上的「舞台/舞池」等。
|
|
278
|
-
* 在 `elementKinds` 中配置 `{ value: 'stage', label: '…', showInPalette: true }`,名称在编辑面板「显示名称」中修改。
|
|
279
|
-
*/
|
|
280
|
-
export declare const FLOOR_MAP_STAGE_ELEMENT_KIND = "stage";
|
|
281
|
-
/**
|
|
282
|
-
* 分区容器图元 kind;落点默认 `isZone: true`,建议配合较低 `zIndex`。
|
|
283
|
-
*/
|
|
284
|
-
export declare const FLOOR_MAP_ZONE_ELEMENT_KIND = "floorMapZone";
|
|
285
|
-
/**
|
|
286
|
-
* 图片图元:无数据源绑定,通过 `imageUrl` 展示位图;适合铺底图或与业务图元叠放(调 `zIndex`)。
|
|
287
|
-
*/
|
|
288
|
-
export declare const FLOOR_MAP_IMAGE_ELEMENT_KIND = "floorMapImage";
|
|
289
|
-
/**
|
|
290
|
-
* 内置图形图元:无数据源绑定,通过 `builtinShapeKey` 在内置枚举(厕所 / 分隔 / 柱子 /
|
|
291
|
-
* 沙发 / 大门)中选择预设图形。形状由 {@link FLOOR_MAP_BUILTIN_SHAPES} 驱动,
|
|
292
|
-
* 与图片图元等同地铺底 / 标记场地结构。
|
|
293
|
-
*/
|
|
294
|
-
export declare const FLOOR_MAP_BUILTIN_SHAPE_ELEMENT_KIND = "floorMapBuiltinShape";
|
|
295
|
-
/** 图元是否接受数据源及是否必填 */
|
|
296
|
-
export declare type FloorMapElementDataBindingPolicy = 'none' | 'optional' | 'required';
|
|
297
|
-
/** 图元种类所属分类(调色板分组) */
|
|
298
|
-
export interface FloorMapElementKindCategory {
|
|
299
|
-
id: string;
|
|
300
|
-
label: string;
|
|
301
|
-
order?: number;
|
|
302
|
-
}
|
|
303
|
-
/** 无数据源行时的占位展示文案/扩展(与 defaultShape 等并列) */
|
|
304
|
-
export interface FloorMapElementDefaultPresentation {
|
|
305
|
-
title?: string;
|
|
306
|
-
subtitle?: string;
|
|
307
|
-
extensions?: Record<string, unknown>;
|
|
308
|
-
}
|
|
309
|
-
/** 连线锚点(图元边框侧) */
|
|
310
|
-
export declare type FloorMapEdgeAnchor = 'top' | 'right' | 'bottom' | 'left' | 'center';
|
|
311
|
-
/** 连线状态(影响默认颜色与虚线) */
|
|
312
|
-
export declare type FloorMapEdgeStatus = 'online' | 'offline' | 'warning' | 'unknown';
|
|
313
|
-
/**
|
|
314
|
-
* 连线手动路由:用户拖动手柄后保存的「完整 path 快照」。
|
|
315
|
-
*
|
|
316
|
-
* `pathSnapshot` 是 final path 的全部点列(含两端锚点)。一旦设置:
|
|
317
|
-
* - `buildEdgeRoute` **不再调用自动路由**,仅把 snapshot 的两端对齐到当前图元
|
|
318
|
-
* 锚点位置(更新「最近的两个点」),中间路径完整保留,避免图元拖动时整条线
|
|
319
|
-
* 被重算。
|
|
320
|
-
* - 拖动连线手柄时(无论首段、末段、还是内部段)都直接对 snapshot 做形变,
|
|
321
|
-
* 首/末段拖动会在 snapshot 前/后追加一对 stub 转角,可以无限叠加。
|
|
322
|
-
*/
|
|
323
|
-
export interface FloorMapEdgeRouting {
|
|
324
|
-
pathSnapshot?: [number, number][];
|
|
325
|
-
}
|
|
326
|
-
/** 图元间连线(边) */
|
|
327
|
-
export interface FloorMapEdge {
|
|
328
|
-
id: string;
|
|
329
|
-
/** 对应 {@link FloorMapSceneElement.instanceId} */
|
|
330
|
-
sourceId: string;
|
|
331
|
-
targetId: string;
|
|
332
|
-
sourceAnchor?: FloorMapEdgeAnchor;
|
|
333
|
-
targetAnchor?: FloorMapEdgeAnchor;
|
|
334
|
-
/** 在线/离线/告警;缺省为 unknown */
|
|
335
|
-
status?: FloorMapEdgeStatus;
|
|
336
|
-
/** 自定义描边色,优先于 status 色板 */
|
|
337
|
-
color?: string;
|
|
338
|
-
strokeWidth?: number;
|
|
339
|
-
/** 强制虚线(offline 等状态也会虚线) */
|
|
340
|
-
dashed?: boolean;
|
|
341
|
-
/** 起点端口标签,如 G3/WAN */
|
|
342
|
-
sourceLabel?: string;
|
|
343
|
-
/** 终点端口标签 */
|
|
344
|
-
targetLabel?: string;
|
|
345
|
-
/** 连线中段主标签 */
|
|
346
|
-
label?: string;
|
|
347
|
-
/** 手动路由覆盖(拖拽中段手柄后回写) */
|
|
348
|
-
routing?: FloorMapEdgeRouting;
|
|
349
|
-
extensions?: Record<string, unknown>;
|
|
350
|
-
}
|
|
351
|
-
/** 图元种类配置(由后端或上层注入) */
|
|
352
|
-
export interface FloorMapElementKindConfig {
|
|
353
|
-
value: string;
|
|
354
|
-
label: string;
|
|
355
|
-
/** 调色板分组,对应 {@link FloorMapViewConfig.elementKindCategories} 的 id */
|
|
356
|
-
categoryId?: string;
|
|
357
|
-
/**
|
|
358
|
-
* 是否接受数据源绑定:none 纯图元;optional 可先占位后绑定;required 在存在可选行时须先选行再落点(数据源为空时仍允许占位 recordId)
|
|
359
|
-
*/
|
|
360
|
-
dataBindingPolicy?: FloorMapElementDataBindingPolicy;
|
|
361
|
-
/** 允许绑定的数据源 key,缺省表示不限制(在 policy 非 none 时生效) */
|
|
362
|
-
allowedDataSourceKeys?: string[];
|
|
363
|
-
/** 校验绑定行是否包含这些字段(有绑定且行存在时检查) */
|
|
364
|
-
expectedRecordFields?: string[];
|
|
365
|
-
defaultShape?: FloorMapItemShape;
|
|
366
|
-
defaultFillColor?: string;
|
|
367
|
-
defaultStrokeColor?: string;
|
|
368
|
-
showInPalette?: boolean;
|
|
369
|
-
defaultPoints?: [number, number][];
|
|
370
|
-
defaultSvgUrl?: string;
|
|
371
|
-
defaultSvgPath?: string;
|
|
372
|
-
defaultImageUrl?: string;
|
|
373
|
-
/** 无绑定或行缺失时的说明向展示 */
|
|
374
|
-
defaultPresentation?: FloorMapElementDefaultPresentation;
|
|
375
|
-
/**
|
|
376
|
-
* 是否允许该 kind 的图元在编辑面板里勾选「将图元名作为资源标题」。
|
|
377
|
-
* 缺省 false:新增 kind 默认不显示该选项,需业务显式开启,向前兼容。
|
|
378
|
-
*
|
|
379
|
-
* 勾选效果(业务展示侧统一通过 {@link resolveSceneElementDisplayTitle} 接入):
|
|
380
|
-
* `el.name` 非空时优先于业务字段(如预约页的 `row.main_field`/`row.code`)作为标题;
|
|
381
|
-
* 未勾选保持现状(业务字段为主,`el.name` 仅作兜底)。
|
|
382
|
-
*/
|
|
383
|
-
nameAsTitleConfigurable?: boolean;
|
|
384
|
-
}
|
|
385
|
-
/**
|
|
386
|
-
* 画布/编辑器层能力:新建图元、布局与画布 Tab 的编辑权限
|
|
387
|
-
* @description 与 `canvases` 列表配合使用,统一挂在平面图配置的「画布 UI」下
|
|
388
|
-
*/
|
|
389
|
-
export interface FloorMapCanvasUiConfig {
|
|
390
|
-
/** 是否展示左侧调色板并从新建模式落点图元 */
|
|
391
|
-
canCreate: boolean;
|
|
392
|
-
/**
|
|
393
|
-
* 是否允许:画布 Tab 增删改名、选中图元侧栏、保存布局与数据源记录、画布内拖拽等
|
|
394
|
-
*/
|
|
395
|
-
canEdit: boolean;
|
|
396
|
-
}
|
|
397
|
-
/** Floor Map 视图配置(仅平面图视图需要持久化) */
|
|
398
|
-
export interface FloorMapViewConfig {
|
|
399
|
-
canvases: FloorMapCanvas[];
|
|
400
|
-
/** 画布编辑能力(原根级 canCreate / canEdit,现归并于此) */
|
|
401
|
-
canvasUi: FloorMapCanvasUiConfig;
|
|
402
|
-
/** 图元分类,供调色板分组 */
|
|
403
|
-
elementKindCategories?: FloorMapElementKindCategory[];
|
|
404
|
-
elementKinds: FloorMapElementKindConfig[];
|
|
405
|
-
/** 画布上的全部图元实例(合并原落位与装饰) */
|
|
406
|
-
sceneElements: FloorMapSceneElement[];
|
|
407
|
-
datasourceComponents?: Record<string, {
|
|
408
|
-
componentId?: string;
|
|
409
|
-
[k: string]: unknown;
|
|
410
|
-
}>;
|
|
411
|
-
edges?: FloorMapEdge[];
|
|
412
|
-
}
|
|
413
|
-
/** 编辑态:选中图元种类后的放置模式(点击画布落点) */
|
|
414
|
-
export declare type FloorMapPlaceMode = null | {
|
|
415
|
-
type: 'scene';
|
|
416
|
-
elementKind: string;
|
|
417
|
-
dataSourceKey?: string;
|
|
418
|
-
/** 单选落一条;与 {@link recordIds} 二选一,多选时优先 {@link recordIds} */
|
|
419
|
-
recordId?: string;
|
|
420
|
-
/** 多选后在画布一次落多条,按锚点阶梯偏移 */
|
|
421
|
-
recordIds?: string[];
|
|
422
|
-
/**
|
|
423
|
-
* 内置图形 kind(`floorMapBuiltinShape`)专用:用户在侧栏 Select 预选的图形 key
|
|
424
|
-
* (取自 {@link FLOOR_MAP_BUILTIN_SHAPES})。落点 / 拖放时作为初始 `builtinShapeKey`
|
|
425
|
-
* 写入 sceneElement;未选时回退为枚举首项。其它 kind 不读取此字段。
|
|
426
|
-
*/
|
|
427
|
-
builtinShapeKey?: string;
|
|
428
|
-
};
|
|
429
|
-
/** 阅读态 renderItem 可选第三参数 */
|
|
430
|
-
export interface FloorMapRenderOptions {
|
|
431
|
-
textSlotValues?: Record<string, string>;
|
|
432
|
-
/**
|
|
433
|
-
* 平面图画布当前缩放(如 TransformWrapper 的 scale)。
|
|
434
|
-
* 用于房间内卡片等需按「视觉短边」降级密度时与布局像素相乘。
|
|
435
|
-
*/
|
|
436
|
-
viewportScale?: number;
|
|
437
|
-
}
|
|
438
|
-
/** 数据源记录表单列配置(用于编辑面板中的「数据源记录」区块) */
|
|
439
|
-
export interface DataSourceFormColumn {
|
|
440
|
-
key: string;
|
|
441
|
-
label: string;
|
|
442
|
-
type?: 'string' | 'number' | 'select';
|
|
443
|
-
options?: Array<{
|
|
444
|
-
label: string;
|
|
445
|
-
value: string;
|
|
446
|
-
}>;
|
|
447
|
-
}
|
|
448
|
-
/**
|
|
449
|
-
* 自定义「数据源记录」表单(ReactNode 或 render prop)可用的上下文
|
|
450
|
-
* @description 与内置 {@link FloorMapDataForm} 数据源一致,便于复杂表单、多步校验、联动等
|
|
451
|
-
*/
|
|
452
|
-
export interface FloorMapRecordFormRenderContext {
|
|
453
|
-
/** 当前数据源 key */
|
|
454
|
-
dataSourceKey: string;
|
|
455
|
-
/** 当前绑定的记录 id */
|
|
456
|
-
recordId: string;
|
|
457
|
-
/** 当前行数据(来自 dataSources) */
|
|
458
|
-
record: Record<string, unknown>;
|
|
459
|
-
/** 全量数据源,只读引用 */
|
|
460
|
-
dataSources: FloorMapDataSources;
|
|
461
|
-
/** 当前画布图元实例(含坐标、绑定等) */
|
|
462
|
-
sceneElement: FloorMapSceneElement;
|
|
463
|
-
/** 当前平面图草稿配置 */
|
|
464
|
-
config: FloorMapViewConfig;
|
|
465
|
-
/** 与侧栏「保存记录」一致:写入单条记录;未配置 {@link PisellFloorMapLayoutProps.onDataSourceRecordSave} 时为 undefined */
|
|
466
|
-
onSaveRecord?: (newData: Record<string, unknown>) => void;
|
|
467
|
-
/** 内置表单保存中的 loading 同步字段,自定义表单可自行维护 loading */
|
|
468
|
-
savingRecord: boolean;
|
|
469
|
-
}
|
|
470
|
-
/**
|
|
471
|
-
* 按 dataSourceKey 替换「数据源记录」区块的表单内容:静态节点或通过 context 渲染
|
|
472
|
-
*/
|
|
473
|
-
export declare type FloorMapDataSourceRecordFormContent = ReactNode | ((ctx: FloorMapRecordFormRenderContext) => ReactNode);
|
|
474
|
-
/** 选中图元后编辑面板参数 */
|
|
475
|
-
export interface FloorMapEditPanelParams {
|
|
476
|
-
itemId: string;
|
|
477
|
-
sceneElement: FloorMapSceneElement;
|
|
478
|
-
onUpdate: (patch: Partial<FloorMapSceneElement>) => void;
|
|
479
|
-
onSaveRecord?: (dataSourceKey: string, id: string, newData: Record<string, unknown>) => void;
|
|
480
|
-
onClose: () => void;
|
|
481
|
-
/** 从草稿中移除当前选中的图元,并关闭面板(需用户再点「保存」持久化布局) */
|
|
482
|
-
onDelete?: () => void;
|
|
483
|
-
/** 按 dataSourceKey 配置记录表单列(标签、类型、选项),不传则自动列举 record 除 id 外字段 */
|
|
484
|
-
recordFormColumns?: Record<string, DataSourceFormColumn[]>;
|
|
485
|
-
/**
|
|
486
|
-
* 按 dataSourceKey 完全替换「数据源记录」内的表单区域(仍保留上方「选择数据行」等)
|
|
487
|
-
* 若某 key 存在且非空,则不再渲染该 key 下的 {@link FloorMapDataForm}(列配置仅作未自定义时的后备)
|
|
488
|
-
*/
|
|
489
|
-
dataSourceRecordForm?: Record<string, FloorMapDataSourceRecordFormContent>;
|
|
490
|
-
/** 数据源 key → 展示名(侧栏「数据源」下拉与工具栏一致) */
|
|
491
|
-
dataSourceLabels?: Record<string, string>;
|
|
492
|
-
/**
|
|
493
|
-
* 布局草稿相对上游持久化配置已变更(拖拽、绑定、侧栏应用等均会写入草稿);
|
|
494
|
-
* 用于提示用户点击顶部「保存」持久化布局草稿。
|
|
495
|
-
*/
|
|
496
|
-
layoutDraftDirty?: boolean;
|
|
497
|
-
/**
|
|
498
|
-
* 为 false 时不渲染「数据绑定」下方的数据源记录编辑表单(FloorMapDataForm / 自定义 record 表单);
|
|
499
|
-
* 数据绑定选数据源与选行仍可展示。
|
|
500
|
-
*/
|
|
501
|
-
showDataSourceRecordFormBlock?: boolean;
|
|
502
|
-
}
|
|
503
|
-
/**
|
|
504
|
-
* 合并当前画布的 sceneElements 为 items(用于 Layout 渲染)
|
|
505
|
-
*/
|
|
506
|
-
export declare type FloorMapMergedItem = FloorMapItemBase & {
|
|
507
|
-
/** 与 {@link FloorMapSceneElement.instanceId} 一致 */
|
|
508
|
-
id: string;
|
|
509
|
-
instanceId: string;
|
|
510
|
-
_sceneElement: FloorMapSceneElement;
|
|
511
|
-
elementKind?: string;
|
|
512
|
-
};
|
|
513
|
-
/**
|
|
514
|
-
* 平面图编辑态全屏 UI 策略(`floorMapFullscreenMode`)
|
|
515
|
-
*
|
|
516
|
-
* - **toggle**(默认):顶栏提供进入/退出全屏,与浏览器 Fullscreen API 联动
|
|
517
|
-
* - **locked**:始终使用全屏顶栏(Tab + 保存等),**不提供退出全屏**;适合外层遮罩铺满
|
|
518
|
-
* - **disabled**:**不提供全屏按钮**,仅小屏顶栏 + 侧栏保存
|
|
519
|
-
*/
|
|
520
|
-
export declare type FloorMapFullscreenMode = 'toggle' | 'locked' | 'disabled';
|
|
521
|
-
/**
|
|
522
|
-
* 平面图 Layout 注入上下文:数据、保存、侧栏表单与状态等(不包含 renderItem/mapLayer 等展示向 props)。
|
|
523
|
-
* 由 `FloorMapLayoutProvider` / RecordBoard `floorMapLayoutContext` 提供,与 `PisellFloorMapLayout` props 按 `??` 合并,props 优先。
|
|
524
|
-
*/
|
|
525
|
-
export declare type FloorMapLayoutContextValue = Partial<Pick<PisellFloorMapLayoutProps<FloorMapItemBase>, 'floorMapConfig' | 'dataSources' | 'onSave' | 'onDataSourceRecordSave' | 'dataSourceLabels' | 'dataSourceFormColumns' | 'dataSourceRecordForm' | 'loading' | 'saveError' | 'onElementRenderError' | 'toolbarShowSave' | 'paletteSidebarVisibleLimit' | 'floorMapFullscreenMode' | 'appearanceMode' | 'showDataSourceRecordFormBlock' | 'viewportDockToolButtons' | 'viewportDockTrailing'>>;
|
|
526
|
-
/**
|
|
527
|
-
* PisellFloorMapLayout 组件 Props
|
|
528
|
-
* @template T - 资源项类型,需继承 FloorMapItemBase 或兼容 id/x/y
|
|
529
|
-
*/
|
|
530
|
-
export interface PisellFloorMapLayoutProps<T extends FloorMapItemBase = FloorMapItemBase> {
|
|
531
|
-
/**
|
|
532
|
-
* 自定义类名
|
|
533
|
-
*/
|
|
534
|
-
className?: string;
|
|
535
|
-
/**
|
|
536
|
-
* 自定义样式(作用于最外层容器)
|
|
537
|
-
*/
|
|
538
|
-
style?: CSSProperties;
|
|
539
|
-
/**
|
|
540
|
-
* 资源列表;每项至少包含 id、x、y
|
|
541
|
-
*/
|
|
542
|
-
items: T[];
|
|
543
|
-
/**
|
|
544
|
-
* 每个资源项的渲染函数;内容与样式由调用方完全控制
|
|
545
|
-
* 当使用 floorMapConfig 时可选传入第三参数 options(如 textSlotValues)
|
|
546
|
-
*/
|
|
547
|
-
renderItem: (item: T, index: number, options?: FloorMapRenderOptions) => ReactNode;
|
|
548
|
-
/**
|
|
549
|
-
* 指定每项的唯一 key,默认使用 item.id
|
|
550
|
-
*/
|
|
551
|
-
rowKey?: string | ((item: T, index: number) => string);
|
|
552
|
-
/**
|
|
553
|
-
* 按 elementKind 的渲染函数(key 为 kind value),优先于 renderItem
|
|
554
|
-
* 仅在使用 floorMapConfig 时生效
|
|
555
|
-
*/
|
|
556
|
-
renderItemByKind?: Record<string, (item: T, index: number, options?: FloorMapRenderOptions) => ReactNode>;
|
|
557
|
-
/**
|
|
558
|
-
* 合并图元**外层定位容器**的额外样式(如列表/搜索筛选未命中时降低透明度)。
|
|
559
|
-
* 在宽高与定位样式之后展开合并,适合传 `opacity`;避免覆盖 `position/left/top/width/height` 除非有意为之。
|
|
560
|
-
*/
|
|
561
|
-
getMergedItemWrapperStyle?: (item: T, index: number) => CSSProperties | undefined;
|
|
562
|
-
/**
|
|
563
|
-
* 是否启用连线(edge)相关的渲染与编辑能力:
|
|
564
|
-
* - 阅读态:渲染 EdgeLayer(连线路径与端口标签)
|
|
565
|
-
* - 编辑态:选中节点的 4 锚点圆点、连线手柄、拖动新建/编辑连线
|
|
566
|
-
*
|
|
567
|
-
* **默认 `false`**:仅在拓扑(PisellTopology)等明确需要连线能力的场景显式开启。
|
|
568
|
-
* pisell-reservation、record-board 等通用业务画布不应开启,避免选中图元时出现锚点
|
|
569
|
-
* 圆点或拖动产生连线。
|
|
570
|
-
*/
|
|
571
|
-
enableEdges?: boolean;
|
|
572
|
-
/**
|
|
573
|
-
* 底层(地图层)配置:背景、网格、padding、gap、吸附
|
|
574
|
-
*/
|
|
575
|
-
mapLayer?: FloorMapLayerConfig;
|
|
576
|
-
/**
|
|
577
|
-
* 每格像素尺寸(itemUnit 为 cell 时:逻辑 1 单位对应的像素;为 pixel 时:缺省宽高的默认像素)
|
|
578
|
-
* @default 64
|
|
579
|
-
*/
|
|
580
|
-
cellSize?: number;
|
|
581
|
-
/**
|
|
582
|
-
* item 坐标与尺寸单位:cell 格子数,pixel 像素
|
|
583
|
-
* @default 'cell'
|
|
584
|
-
*/
|
|
585
|
-
itemUnit?: FloorMapItemUnit;
|
|
586
|
-
/**
|
|
587
|
-
* 布局模式:grid 规则网格,free 完全按坐标
|
|
588
|
-
* @default 'free'
|
|
589
|
-
*/
|
|
590
|
-
layoutMode?: FloorMapLayoutMode;
|
|
591
|
-
/**
|
|
592
|
-
* 规则网格时的配置(列数等)
|
|
593
|
-
*/
|
|
594
|
-
gridLayout?: FloorMapGridLayoutConfig;
|
|
595
|
-
/**
|
|
596
|
-
* 缩放配置
|
|
597
|
-
*/
|
|
598
|
-
zoom?: FloorMapZoomConfig;
|
|
599
|
-
/**
|
|
600
|
-
* 平移配置
|
|
601
|
-
*/
|
|
602
|
-
pan?: FloorMapPanConfig;
|
|
603
|
-
/**
|
|
604
|
-
* 视图控制按钮显隐
|
|
605
|
-
*/
|
|
606
|
-
controls?: FloorMapControlsConfig;
|
|
607
|
-
/**
|
|
608
|
-
* 视口(画布位置 + 缩放百分比)持久化开关,默认 `true`。
|
|
609
|
-
* 设为 `false` 时完全不读不写 localStorage,始终走 autoFit / 初始对齐行为。
|
|
610
|
-
*
|
|
611
|
-
* 仅在平面图模式(有 `floorMapConfig`)下生效;其它模式没有「画布」概念。
|
|
612
|
-
*/
|
|
613
|
-
viewportPersist?: boolean;
|
|
614
|
-
/**
|
|
615
|
-
* 视口持久化的业务命名空间(建议传入店铺 / floor plan 维度的稳定标识,如 floor plan code)。
|
|
616
|
-
*
|
|
617
|
-
* 存储 key 形如 `pisell-floor-map-layout.viewport:<namespace>:<canvasId>`;
|
|
618
|
-
* 不传时 fallback 为仅用 `<canvasId>`,同一 `canvasId` 在跨业务场景(不同店铺 / 不同平面图)会共享视角,
|
|
619
|
-
* 若 `canvasId` 存在全局冲突(例如业务里使用固定常量作 canvasId),务必传入此字段做隔离。
|
|
620
|
-
*/
|
|
621
|
-
viewportPersistNamespace?: string;
|
|
622
|
-
/**
|
|
623
|
-
* 是否开启 hover 高亮或 hover 事件,默认 true
|
|
624
|
-
*/
|
|
625
|
-
enableHover?: boolean;
|
|
626
|
-
/**
|
|
627
|
-
* 阅读态(`mode === 'read'`):与 {@link rowKey} 解析出的图元 id 相等时,外层容器加选中描边(如详情弹层打开时锚定画布上的桌位)。
|
|
628
|
-
* 传 `null` / `undefined` / 空字符串时不展示选中外圈。
|
|
629
|
-
*/
|
|
630
|
-
readModeSelectedItemId?: string | null;
|
|
631
|
-
/**
|
|
632
|
-
* 资源项点击回调
|
|
633
|
-
*/
|
|
634
|
-
onItemClick?: (item: T, index: number, event: ReactMouseEvent<HTMLElement>) => void;
|
|
635
|
-
/**
|
|
636
|
-
* 资源项鼠标进入
|
|
637
|
-
*/
|
|
638
|
-
onItemHover?: (item: T, index: number, event: ReactMouseEvent<HTMLElement>) => void;
|
|
639
|
-
/**
|
|
640
|
-
* 资源项鼠标离开
|
|
641
|
-
*/
|
|
642
|
-
onItemLeave?: (item: T, index: number, event: ReactMouseEvent<HTMLElement>) => void;
|
|
643
|
-
/** 编辑态全屏按钮与顶栏形态,见 {@link FloorMapFullscreenMode} */
|
|
644
|
-
floorMapFullscreenMode?: FloorMapFullscreenMode;
|
|
645
|
-
/**
|
|
646
|
-
* FloorMap 外观模式;当前仅提供画布背景兜底色。
|
|
647
|
-
* 若当前画布或根级 `mapLayer.backgroundColor` 显式传入颜色,应优先使用显式背景色。
|
|
648
|
-
* @default 'light'
|
|
649
|
-
*/
|
|
650
|
-
appearanceMode?: FloorMapAppearanceMode;
|
|
651
|
-
/**
|
|
652
|
-
* 模式:read 仅展示,edit 可编辑;与 floorMapConfig 同时使用时生效
|
|
653
|
-
*/
|
|
654
|
-
mode?: 'read' | 'edit';
|
|
655
|
-
/**
|
|
656
|
-
* 平面图视图配置;传入时由组件内部按当前画布合并 items,忽略外部传入的 items
|
|
657
|
-
*/
|
|
658
|
-
floorMapConfig?: FloorMapViewConfig;
|
|
659
|
-
/**
|
|
660
|
-
* 多数据源;与 floorMapConfig 同时使用
|
|
661
|
-
*/
|
|
662
|
-
dataSources?: FloorMapDataSources;
|
|
663
|
-
/** 保存平面图配置,由上层调接口持久化 */
|
|
664
|
-
onSave?: (config: FloorMapViewConfig) => void;
|
|
665
|
-
/**
|
|
666
|
-
* 退出编辑模式回调(不保存)。
|
|
667
|
-
* 传入后编辑态顶栏会展示「取消编辑」+「完成」两个按钮:
|
|
668
|
-
* - 取消编辑 → `onExitEdit()`(业务层负责把 `mode` 切回 `read`)
|
|
669
|
-
* - 完成 → 先 `onSave(config)` 再 `onExitEdit()`
|
|
670
|
-
* 不传则保持旧版「保存」按钮行为(仅保存,不退出)。
|
|
671
|
-
*/
|
|
672
|
-
onExitEdit?: () => void;
|
|
673
|
-
/** 保存单条数据源记录 */
|
|
674
|
-
onDataSourceRecordSave?: (dataSourceKey: string, id: string, newData: Record<string, unknown>) => void;
|
|
675
|
-
/** 数据源展示名,key 为 dataSourceKey */
|
|
676
|
-
dataSourceLabels?: Record<string, string>;
|
|
677
|
-
/** 按 dataSourceKey 配置编辑面板「数据源记录」表单列(标签、类型、选项) */
|
|
678
|
-
dataSourceFormColumns?: Record<string, DataSourceFormColumn[]>;
|
|
679
|
-
/**
|
|
680
|
-
* 按 dataSourceKey 自定义侧栏「数据源记录」表单:传入 ReactNode 或 `(ctx) => ReactNode`;
|
|
681
|
-
* 指定 key 后优先于 dataSourceFormColumns + 内置 FloorMapDataForm,用于复杂业务表单
|
|
682
|
-
*/
|
|
683
|
-
dataSourceRecordForm?: Record<string, FloorMapDataSourceRecordFormContent>;
|
|
684
|
-
/** 编辑态 loading */
|
|
685
|
-
loading?: boolean;
|
|
686
|
-
/** 保存失败时的错误信息 */
|
|
687
|
-
saveError?: Error | string;
|
|
688
|
-
/**
|
|
689
|
-
* 单图元渲染抛出异常或内部校验失败时回调(如 renderItemByKind 抛错、绑定数据不合法)
|
|
690
|
-
*/
|
|
691
|
-
onElementRenderError?: (element: FloorMapSceneElement, error: unknown) => void;
|
|
692
|
-
/**
|
|
693
|
-
* 是否在左侧工具栏底部显示「保存」(默认 true;非全屏时顶栏为 Tab+全屏,保存多在侧栏;全屏时保存仅在顶栏)
|
|
694
|
-
*/
|
|
695
|
-
toolbarShowSave?: boolean;
|
|
696
|
-
/**
|
|
697
|
-
* 资源选择 Modal 渲染槽位。
|
|
698
|
-
* 通用基础 modal 已下线,业务侧需注入实现(如 `PisellProResourcePickerModal`)。
|
|
699
|
-
* 未注入时不会渲染资源选择弹窗,资源类图元的「画布添加」入口将无可用 picker。
|
|
700
|
-
*/
|
|
701
|
-
renderResourcePickerModal?: (props: import('./utils/floorMapResourcePickerTypes').FloorMapResourcePickerSlotProps) => ReactNode;
|
|
702
|
-
/**
|
|
703
|
-
* 侧栏 palette「查看全部」弹窗渲染槽位。
|
|
704
|
-
* 业务可在此复用统一选择弹窗(例如 private-materials 的 Selector + valueType="object")。
|
|
705
|
-
*/
|
|
706
|
-
renderPaletteViewAllModal?: import('./components/FloorMapToolbar').FloorMapToolbarProps['renderPaletteViewAllModal'];
|
|
707
|
-
/**
|
|
708
|
-
* 编辑态侧栏每个调色板分类直接展示的图元数量;超出则显示「查看全部」弹窗。
|
|
709
|
-
* 默认 5,见 `FLOOR_MAP_TOOLBAR_PALETTE_SIDEBAR_LIMIT`。
|
|
710
|
-
*/
|
|
711
|
-
paletteSidebarVisibleLimit?: number;
|
|
712
|
-
/**
|
|
713
|
-
* 为 false 时隐藏侧栏「数据源记录」表单区(保留数据绑定选源/选行)。
|
|
714
|
-
*/
|
|
715
|
-
showDataSourceRecordFormBlock?: boolean;
|
|
716
|
-
/**
|
|
717
|
-
* 手机布局:编辑态顶栏拆成两行(画布 Tab 一行 + 撤销/完成等一行),并收紧内边距。
|
|
718
|
-
*/
|
|
719
|
-
editTopBarPhoneLayout?: boolean;
|
|
720
|
-
/**
|
|
721
|
-
* 画布 Tab 行右侧扩展(阅读态顶栏、编辑态 compact/full 顶栏)。
|
|
722
|
-
* 传入且阅读态仅单画布时仍会显示顶栏以便放置该插槽;全屏入口在左下 Dock(`viewportDockTrailing` 亦放 Dock,不占顶栏)。
|
|
723
|
-
*/
|
|
724
|
-
canvasTabsBarTrailing?: ReactNode;
|
|
725
|
-
/**
|
|
726
|
-
* 视口左下角 Dock 展开区内、与缩放/网格等工具按钮平级的业务按钮插槽。
|
|
727
|
-
*/
|
|
728
|
-
viewportDockToolButtons?: ReactNode;
|
|
729
|
-
/**
|
|
730
|
-
* 视口左下角 Dock 展开区业务插槽(与缩放/全屏同条),不占用顶栏 Tab 行;平面图模式推荐放「编辑画布」等。
|
|
731
|
-
*/
|
|
732
|
-
viewportDockTrailing?: ReactNode;
|
|
733
|
-
/**
|
|
734
|
-
* 平面图模式:`floorMapViewportOverlay` 锚点;默认左上,预约 HUD 等可用左下。
|
|
735
|
-
*/
|
|
736
|
-
viewportOverlayPlacement?: 'top-start' | 'bottom-start';
|
|
737
|
-
/**
|
|
738
|
-
* 视口悬浮层容器额外类名(如场控抽屉打开时需叠在固定层之上)。
|
|
739
|
-
*/
|
|
740
|
-
viewportOverlayClassName?: string;
|
|
741
|
-
/**
|
|
742
|
-
* 平面图模式:在地图视口内悬浮层(不随画布缩放平移),如状态统计。
|
|
743
|
-
* 传入函数时可拿到当前画布合并后的 items 与数据源。
|
|
744
|
-
*/
|
|
745
|
-
floorMapViewportOverlay?: ReactNode | ((args: FloorMapViewportOverlayRenderArgs<T>) => ReactNode);
|
|
746
|
-
}
|
|
747
|
-
/**
|
|
748
|
-
* {@link PisellFloorMapLayoutProps.floorMapViewportOverlay} 函数形态时的参数
|
|
749
|
-
*/
|
|
750
|
-
export declare type FloorMapViewportOverlayRenderArgs<T extends FloorMapItemBase = FloorMapItemBase> = {
|
|
751
|
-
items: T[];
|
|
752
|
-
dataSources: FloorMapDataSources | undefined;
|
|
753
|
-
currentCanvasId: string | null;
|
|
754
|
-
mode: 'read' | 'edit';
|
|
755
|
-
};
|
|
756
|
-
/**
|
|
757
|
-
* `PisellFloorMapLayout` 通过 ref 暴露的 imperative API。
|
|
758
|
-
* 缩放/复位委托内部 `react-zoom-pan-pinch`;`fitBounds` / `saveLayout` 依赖当前画布与编辑状态。
|
|
759
|
-
*/
|
|
760
|
-
export interface PisellFloorMapLayoutRef {
|
|
761
|
-
/** 在允许范围内放大一级(与右下角「+」一致) */
|
|
762
|
-
zoomIn: () => void;
|
|
763
|
-
/** 在允许范围内缩小一级(与右下角「−」一致) */
|
|
764
|
-
zoomOut: () => void;
|
|
765
|
-
/** 重置 transform 为初始 scale 与 initialPosition(与「复位」控件一致) */
|
|
766
|
-
reset: () => void;
|
|
767
|
-
/** 计算内容包盒并将视口平移/缩放至全部图元可见 */
|
|
768
|
-
fitBounds: () => void;
|
|
769
|
-
/** 触发与顶栏/侧栏相同的保存流程(无 `onSave` 时内部可能为 no-op,由 hook 决定) */
|
|
770
|
-
saveLayout: () => void;
|
|
771
|
-
/**
|
|
772
|
-
* 在编辑态把外部算好的整张 `FloorMapViewConfig` 灌入草稿(一次 `commitDraft`,
|
|
773
|
-
* 可被 undo/redo 撤销)。仅在 `mode='edit'` 时生效;非编辑态调用为 no-op。
|
|
774
|
-
* 典型用例:业务侧的「自动排列 / 一键重排」按钮算出新版 config 后注入草稿,
|
|
775
|
-
* 让用户点「完成编辑」时再走原有保存流程,而不是绕过 onSave 直接持久化。
|
|
776
|
-
*/
|
|
777
|
-
applySceneSnapshot: (config: FloorMapViewConfig) => void;
|
|
778
|
-
}
|