@pisell/materials 1.0.1059 → 1.0.1062

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 (374) hide show
  1. package/README.md +285 -285
  2. package/build/lowcode/assets-daily.json +11 -11
  3. package/build/lowcode/assets-dev.json +2 -2
  4. package/build/lowcode/assets-prod.json +11 -11
  5. package/build/lowcode/index.js +1 -1
  6. package/build/lowcode/meta.js +7 -7
  7. package/build/lowcode/preview.js +9 -9
  8. package/build/lowcode/render/default/view.css +1 -1
  9. package/build/lowcode/render/default/view.js +27 -27
  10. package/build/lowcode/view.css +1 -1
  11. package/build/lowcode/view.js +27 -27
  12. package/es/components/PisellLayouts/index.d.ts +2 -1
  13. package/es/components/PisellLayouts/index.js +17 -15
  14. package/es/components/cardMetricItem/index.js +2 -2
  15. package/es/components/pisellFilter/type.d.ts +4 -2
  16. package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.d.ts +1 -1
  17. package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.js +474 -202
  18. package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.less +70 -0
  19. package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.stories.d.ts +13 -0
  20. package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.stories.js +469 -38
  21. package/es/components/pisellFloorMapLayout/components/CanvasTabs.d.ts +22 -0
  22. package/es/components/pisellFloorMapLayout/components/CanvasTabs.js +203 -0
  23. package/es/components/pisellFloorMapLayout/components/CanvasTabs.less +189 -0
  24. package/es/components/pisellFloorMapLayout/components/EditableItemLayer.d.ts +37 -0
  25. package/es/components/pisellFloorMapLayout/components/EditableItemLayer.js +341 -0
  26. package/es/components/pisellFloorMapLayout/components/EditableItemLayer.less +89 -0
  27. package/es/components/pisellFloorMapLayout/components/FigmaTableCard.d.ts +39 -0
  28. package/es/components/pisellFloorMapLayout/components/FigmaTableCard.js +432 -0
  29. package/es/components/pisellFloorMapLayout/components/FloorMapDataForm.d.ts +17 -0
  30. package/es/components/pisellFloorMapLayout/components/FloorMapDataForm.js +131 -0
  31. package/es/components/pisellFloorMapLayout/components/FloorMapDataForm.less +7 -0
  32. package/es/components/pisellFloorMapLayout/components/FloorMapEditPanel.d.ts +11 -0
  33. package/es/components/pisellFloorMapLayout/components/FloorMapEditPanel.js +497 -0
  34. package/es/components/pisellFloorMapLayout/components/FloorMapEditPanel.less +154 -0
  35. package/es/components/pisellFloorMapLayout/components/FloorMapEditTopBar.d.ts +34 -0
  36. package/es/components/pisellFloorMapLayout/components/FloorMapEditTopBar.js +130 -0
  37. package/es/components/pisellFloorMapLayout/components/FloorMapEditTopBar.less +131 -0
  38. package/es/components/pisellFloorMapLayout/components/FloorMapImageElement.d.ts +6 -0
  39. package/es/components/pisellFloorMapLayout/components/FloorMapImageElement.js +69 -0
  40. package/es/components/pisellFloorMapLayout/components/FloorMapToolbar.d.ts +35 -0
  41. package/es/components/pisellFloorMapLayout/components/FloorMapToolbar.js +361 -0
  42. package/es/components/pisellFloorMapLayout/components/FloorMapToolbar.less +237 -0
  43. package/es/components/pisellFloorMapLayout/components/ItemLayer.d.ts +7 -0
  44. package/es/components/pisellFloorMapLayout/components/ItemLayer.js +37 -11
  45. package/es/components/pisellFloorMapLayout/components/MapLayer.d.ts +4 -0
  46. package/es/components/pisellFloorMapLayout/components/MapLayer.js +11 -3
  47. package/es/components/pisellFloorMapLayout/components/ViewControls.js +2 -2
  48. package/es/components/pisellFloorMapLayout/components/ViewControls.less +3 -2
  49. package/es/components/pisellFloorMapLayout/components/ViewControlsWithZoom.d.ts +11 -0
  50. package/es/components/pisellFloorMapLayout/components/ViewControlsWithZoom.js +27 -0
  51. package/es/components/pisellFloorMapLayout/components/index.d.ts +14 -0
  52. package/es/components/pisellFloorMapLayout/components/index.js +8 -1
  53. package/es/components/pisellFloorMapLayout/context/FloorMapLayoutContext.d.ts +16 -0
  54. package/es/components/pisellFloorMapLayout/context/FloorMapLayoutContext.js +21 -0
  55. package/es/components/pisellFloorMapLayout/context/mergeFloorMapLayoutContext.d.ts +5 -0
  56. package/es/components/pisellFloorMapLayout/context/mergeFloorMapLayoutContext.js +28 -0
  57. package/es/components/pisellFloorMapLayout/hooks/useFloorMapEditState.d.ts +62 -0
  58. package/es/components/pisellFloorMapLayout/hooks/useFloorMapEditState.js +438 -0
  59. package/es/components/pisellFloorMapLayout/hooks/useFloorMapPaletteTouchDrag.d.ts +21 -0
  60. package/es/components/pisellFloorMapLayout/hooks/useFloorMapPaletteTouchDrag.js +122 -0
  61. package/es/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.d.ts +67 -0
  62. package/es/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.js +322 -0
  63. package/es/components/pisellFloorMapLayout/index.d.ts +9 -2
  64. package/es/components/pisellFloorMapLayout/index.js +7 -2
  65. package/es/components/pisellFloorMapLayout/locales.d.ts +186 -0
  66. package/es/components/pisellFloorMapLayout/locales.js +185 -0
  67. package/es/components/pisellFloorMapLayout/types.d.ts +362 -1
  68. package/es/components/pisellFloorMapLayout/types.js +148 -1
  69. package/es/components/pisellFloorMapLayout/utils/floorMapCanvasDisplay.d.ts +20 -0
  70. package/es/components/pisellFloorMapLayout/utils/floorMapCanvasDisplay.js +129 -0
  71. package/es/components/pisellFloorMapLayout/utils/floorMapConfigMerge.d.ts +8 -0
  72. package/es/components/pisellFloorMapLayout/utils/floorMapConfigMerge.js +87 -0
  73. package/es/components/pisellFloorMapLayout/utils/floorMapDropUtils.d.ts +26 -0
  74. package/es/components/pisellFloorMapLayout/utils/floorMapDropUtils.js +47 -0
  75. package/es/components/pisellFloorMapLayout/utils/floorMapElementKindUtils.d.ts +11 -0
  76. package/es/components/pisellFloorMapLayout/utils/floorMapElementKindUtils.js +69 -0
  77. package/es/components/pisellFloorMapLayout/utils/floorMapFallbackRender.d.ts +11 -0
  78. package/es/components/pisellFloorMapLayout/utils/floorMapFallbackRender.js +88 -0
  79. package/es/components/pisellFloorMapLayout/utils/floorMapStageDefaults.d.ts +8 -0
  80. package/es/components/pisellFloorMapLayout/utils/floorMapStageDefaults.js +8 -0
  81. package/es/components/pisellFloorMapLayout/utils/floorMapViewConfigDiff.d.ts +8 -0
  82. package/es/components/pisellFloorMapLayout/utils/floorMapViewConfigDiff.js +108 -0
  83. package/es/components/pisellFloorMapLayout/utils/layoutMeasurements.d.ts +30 -0
  84. package/es/components/pisellFloorMapLayout/utils/layoutMeasurements.js +125 -0
  85. package/es/components/pisellFloorMapLayout/utils/mergeCanvasesForTabs.d.ts +7 -0
  86. package/es/components/pisellFloorMapLayout/utils/mergeCanvasesForTabs.js +29 -0
  87. package/es/components/pisellFloorMapLayout/utils/snap.d.ts +10 -0
  88. package/es/components/pisellFloorMapLayout/utils/snap.js +21 -0
  89. package/es/components/pisellHierarchicalSummaryList/PisellHierarchicalSummaryList.d.ts +6 -0
  90. package/es/components/pisellHierarchicalSummaryList/PisellHierarchicalSummaryList.js +175 -0
  91. package/es/components/pisellHierarchicalSummaryList/PisellHierarchicalSummaryList.less +129 -0
  92. package/es/components/pisellHierarchicalSummaryList/PisellHierarchicalSummaryList.stories.d.ts +10 -0
  93. package/es/components/pisellHierarchicalSummaryList/PisellHierarchicalSummaryList.stories.js +237 -0
  94. package/es/components/pisellHierarchicalSummaryList/components/Row.d.ts +35 -0
  95. package/es/components/pisellHierarchicalSummaryList/components/Row.js +313 -0
  96. package/es/components/pisellHierarchicalSummaryList/components/index.d.ts +1 -0
  97. package/es/components/pisellHierarchicalSummaryList/components/index.js +1 -0
  98. package/es/components/pisellHierarchicalSummaryList/hooks/index.d.ts +2 -0
  99. package/es/components/pisellHierarchicalSummaryList/hooks/index.js +1 -0
  100. package/es/components/pisellHierarchicalSummaryList/hooks/useExpandedKeys.d.ts +15 -0
  101. package/es/components/pisellHierarchicalSummaryList/hooks/useExpandedKeys.js +34 -0
  102. package/es/components/pisellHierarchicalSummaryList/index.d.ts +5 -0
  103. package/es/components/pisellHierarchicalSummaryList/index.js +5 -0
  104. package/es/components/pisellHierarchicalSummaryList/types.d.ts +248 -0
  105. package/es/components/pisellHierarchicalSummaryList/types.js +1 -0
  106. package/es/components/pisellLookup/PisellLookup.js +82 -82
  107. package/es/components/pisellMultipleSelect/PisellMultipleSelect.stories.js +34 -34
  108. package/es/components/pisellRecordBoard/PisellRecordBoard.d.ts +2 -1
  109. package/es/components/pisellRecordBoard/PisellRecordBoard.js +95 -18
  110. package/es/components/pisellRecordBoard/PisellRecordBoard.stories.d.ts +4 -0
  111. package/es/components/pisellRecordBoard/PisellRecordBoard.stories.js +1315 -383
  112. package/es/components/pisellRecordBoard/index.d.ts +7 -2
  113. package/es/components/pisellRecordBoard/index.js +2 -1
  114. package/es/components/pisellRecordBoard/shellFrame/ColumnSetting/index.js +1 -3
  115. package/es/components/pisellRecordBoard/shellFrame/FloorMap.d.ts +14 -0
  116. package/es/components/pisellRecordBoard/shellFrame/FloorMap.js +15 -0
  117. package/es/components/pisellRecordBoard/shellFrame/ShellBodyMetaContext.d.ts +16 -0
  118. package/es/components/pisellRecordBoard/shellFrame/ShellBodyMetaContext.js +11 -0
  119. package/es/components/pisellRecordBoard/shellFrame/ToolBar/ToolBarFilter.less +47 -0
  120. package/es/components/pisellRecordBoard/shellFrame/ToolBar/index.js +57 -10
  121. package/es/components/pisellRecordBoard/shellFrame/ToolBarReset/index.js +3 -3
  122. package/es/components/pisellRecordBoard/shellFrame/index.d.ts +4 -10
  123. package/es/components/pisellRecordBoard/shellFrame/index.js +101 -19
  124. package/es/components/pisellRecordBoard/types.d.ts +62 -2
  125. package/es/components/pisellRecordBoard/utils/partitionShellFrameChildren.d.ts +15 -0
  126. package/es/components/pisellRecordBoard/utils/partitionShellFrameChildren.js +57 -0
  127. package/es/components/pisellReservationSchedule/PisellReservationSchedule.d.ts +10 -0
  128. package/es/components/pisellReservationSchedule/PisellReservationSchedule.js +156 -0
  129. package/es/components/pisellReservationSchedule/PisellReservationSchedule.less +88 -0
  130. package/es/components/pisellReservationSchedule/PisellReservationSchedule.stories.d.ts +12 -0
  131. package/es/components/pisellReservationSchedule/PisellReservationSchedule.stories.js +105 -0
  132. package/es/components/pisellReservationSchedule/index.d.ts +2 -0
  133. package/es/components/pisellReservationSchedule/index.js +1 -0
  134. package/es/components/pisellReservationSchedule/locales.d.ts +25 -0
  135. package/es/components/pisellReservationSchedule/locales.js +24 -0
  136. package/es/components/pisellReservationSchedule/types.d.ts +42 -0
  137. package/es/components/pisellReservationSchedule/types.js +1 -0
  138. package/es/components/pisellReservationScheduleBand/PisellReservationScheduleBand.d.ts +10 -0
  139. package/es/components/pisellReservationScheduleBand/PisellReservationScheduleBand.js +91 -0
  140. package/es/components/pisellReservationScheduleBand/PisellReservationScheduleBand.less +49 -0
  141. package/es/components/pisellReservationScheduleBand/PisellReservationScheduleBand.stories.d.ts +16 -0
  142. package/es/components/pisellReservationScheduleBand/PisellReservationScheduleBand.stories.js +197 -0
  143. package/es/components/pisellReservationScheduleBand/index.d.ts +2 -0
  144. package/es/components/pisellReservationScheduleBand/index.js +1 -0
  145. package/es/components/pisellReservationScheduleBand/types.d.ts +45 -0
  146. package/es/components/pisellReservationScheduleBand/types.js +1 -0
  147. package/es/components/pisellRow/index.js +7 -7
  148. package/es/components/pisellTimeNavigator/PisellTimeNavigator.d.ts +10 -0
  149. package/es/components/pisellTimeNavigator/PisellTimeNavigator.js +609 -0
  150. package/es/components/pisellTimeNavigator/PisellTimeNavigator.less +412 -0
  151. package/es/components/pisellTimeNavigator/PisellTimeNavigator.stories.d.ts +79 -0
  152. package/es/components/pisellTimeNavigator/PisellTimeNavigator.stories.js +290 -0
  153. package/es/components/pisellTimeNavigator/components/BackgroundLayer.d.ts +14 -0
  154. package/es/components/pisellTimeNavigator/components/BackgroundLayer.js +30 -0
  155. package/es/components/pisellTimeNavigator/components/CursorLayer.d.ts +20 -0
  156. package/es/components/pisellTimeNavigator/components/CursorLayer.js +46 -0
  157. package/es/components/pisellTimeNavigator/components/GestureLayer.d.ts +31 -0
  158. package/es/components/pisellTimeNavigator/components/GestureLayer.js +82 -0
  159. package/es/components/pisellTimeNavigator/components/NowButton.d.ts +14 -0
  160. package/es/components/pisellTimeNavigator/components/NowButton.js +38 -0
  161. package/es/components/pisellTimeNavigator/components/ScaleLayer.d.ts +17 -0
  162. package/es/components/pisellTimeNavigator/components/ScaleLayer.js +51 -0
  163. package/es/components/pisellTimeNavigator/components/index.d.ts +5 -0
  164. package/es/components/pisellTimeNavigator/components/index.js +5 -0
  165. package/es/components/pisellTimeNavigator/hooks/index.d.ts +5 -0
  166. package/es/components/pisellTimeNavigator/hooks/index.js +3 -0
  167. package/es/components/pisellTimeNavigator/hooks/useDragInertia.d.ts +14 -0
  168. package/es/components/pisellTimeNavigator/hooks/useDragInertia.js +109 -0
  169. package/es/components/pisellTimeNavigator/hooks/useRealtime.d.ts +5 -0
  170. package/es/components/pisellTimeNavigator/hooks/useRealtime.js +16 -0
  171. package/es/components/pisellTimeNavigator/hooks/useTimeAxis.d.ts +27 -0
  172. package/es/components/pisellTimeNavigator/hooks/useTimeAxis.js +76 -0
  173. package/es/components/pisellTimeNavigator/index.d.ts +4 -0
  174. package/es/components/pisellTimeNavigator/index.js +3 -0
  175. package/es/components/pisellTimeNavigator/locales.d.ts +22 -0
  176. package/es/components/pisellTimeNavigator/locales.js +21 -0
  177. package/es/components/pisellTimeNavigator/types.d.ts +149 -0
  178. package/es/components/pisellTimeNavigator/types.js +1 -0
  179. package/es/components/pisellTimeNavigator/utils/index.d.ts +30 -0
  180. package/es/components/pisellTimeNavigator/utils/index.js +116 -0
  181. package/es/index.d.ts +15 -5
  182. package/es/index.js +7 -1
  183. package/es/locales/en-US.d.ts +2 -0
  184. package/es/locales/en-US.js +6 -4
  185. package/es/locales/zh-CN.d.ts +2 -0
  186. package/es/locales/zh-CN.js +6 -4
  187. package/es/locales/zh-TW.d.ts +2 -0
  188. package/es/locales/zh-TW.js +6 -4
  189. package/lib/components/PisellLayouts/index.d.ts +2 -1
  190. package/lib/components/PisellLayouts/index.js +13 -1
  191. package/lib/components/pisellFilter/type.d.ts +4 -2
  192. package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.d.ts +1 -1
  193. package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.js +566 -181
  194. package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.less +70 -0
  195. package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.stories.d.ts +13 -0
  196. package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.stories.js +682 -84
  197. package/lib/components/pisellFloorMapLayout/components/CanvasTabs.d.ts +22 -0
  198. package/lib/components/pisellFloorMapLayout/components/CanvasTabs.js +237 -0
  199. package/lib/components/pisellFloorMapLayout/components/CanvasTabs.less +189 -0
  200. package/lib/components/pisellFloorMapLayout/components/EditableItemLayer.d.ts +37 -0
  201. package/lib/components/pisellFloorMapLayout/components/EditableItemLayer.js +358 -0
  202. package/lib/components/pisellFloorMapLayout/components/EditableItemLayer.less +89 -0
  203. package/lib/components/pisellFloorMapLayout/components/FigmaTableCard.d.ts +39 -0
  204. package/lib/components/pisellFloorMapLayout/components/FigmaTableCard.js +482 -0
  205. package/lib/components/pisellFloorMapLayout/components/FloorMapDataForm.d.ts +17 -0
  206. package/lib/components/pisellFloorMapLayout/components/FloorMapDataForm.js +117 -0
  207. package/lib/components/pisellFloorMapLayout/components/FloorMapDataForm.less +7 -0
  208. package/lib/components/pisellFloorMapLayout/components/FloorMapEditPanel.d.ts +11 -0
  209. package/lib/components/pisellFloorMapLayout/components/FloorMapEditPanel.js +508 -0
  210. package/lib/components/pisellFloorMapLayout/components/FloorMapEditPanel.less +154 -0
  211. package/lib/components/pisellFloorMapLayout/components/FloorMapEditTopBar.d.ts +34 -0
  212. package/lib/components/pisellFloorMapLayout/components/FloorMapEditTopBar.js +188 -0
  213. package/lib/components/pisellFloorMapLayout/components/FloorMapEditTopBar.less +131 -0
  214. package/lib/components/pisellFloorMapLayout/components/FloorMapImageElement.d.ts +6 -0
  215. package/lib/components/pisellFloorMapLayout/components/FloorMapImageElement.js +94 -0
  216. package/lib/components/pisellFloorMapLayout/components/FloorMapToolbar.d.ts +35 -0
  217. package/lib/components/pisellFloorMapLayout/components/FloorMapToolbar.js +333 -0
  218. package/lib/components/pisellFloorMapLayout/components/FloorMapToolbar.less +237 -0
  219. package/lib/components/pisellFloorMapLayout/components/ItemLayer.d.ts +7 -0
  220. package/lib/components/pisellFloorMapLayout/components/ItemLayer.js +26 -5
  221. package/lib/components/pisellFloorMapLayout/components/MapLayer.d.ts +4 -0
  222. package/lib/components/pisellFloorMapLayout/components/MapLayer.js +7 -2
  223. package/lib/components/pisellFloorMapLayout/components/ViewControls.less +3 -2
  224. package/lib/components/pisellFloorMapLayout/components/ViewControlsWithZoom.d.ts +11 -0
  225. package/lib/components/pisellFloorMapLayout/components/ViewControlsWithZoom.js +63 -0
  226. package/lib/components/pisellFloorMapLayout/components/index.d.ts +14 -0
  227. package/lib/components/pisellFloorMapLayout/components/index.js +23 -2
  228. package/lib/components/pisellFloorMapLayout/context/FloorMapLayoutContext.d.ts +16 -0
  229. package/lib/components/pisellFloorMapLayout/context/FloorMapLayoutContext.js +54 -0
  230. package/lib/components/pisellFloorMapLayout/context/mergeFloorMapLayoutContext.d.ts +5 -0
  231. package/lib/components/pisellFloorMapLayout/context/mergeFloorMapLayoutContext.js +47 -0
  232. package/lib/components/pisellFloorMapLayout/hooks/useFloorMapEditState.d.ts +62 -0
  233. package/lib/components/pisellFloorMapLayout/hooks/useFloorMapEditState.js +431 -0
  234. package/lib/components/pisellFloorMapLayout/hooks/useFloorMapPaletteTouchDrag.d.ts +21 -0
  235. package/lib/components/pisellFloorMapLayout/hooks/useFloorMapPaletteTouchDrag.js +146 -0
  236. package/lib/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.d.ts +67 -0
  237. package/lib/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.js +309 -0
  238. package/lib/components/pisellFloorMapLayout/index.d.ts +9 -2
  239. package/lib/components/pisellFloorMapLayout/index.js +31 -2
  240. package/lib/components/pisellFloorMapLayout/locales.d.ts +186 -0
  241. package/lib/components/pisellFloorMapLayout/locales.js +206 -0
  242. package/lib/components/pisellFloorMapLayout/types.d.ts +362 -1
  243. package/lib/components/pisellFloorMapLayout/types.js +15 -0
  244. package/lib/components/pisellFloorMapLayout/utils/floorMapCanvasDisplay.d.ts +20 -0
  245. package/lib/components/pisellFloorMapLayout/utils/floorMapCanvasDisplay.js +126 -0
  246. package/lib/components/pisellFloorMapLayout/utils/floorMapConfigMerge.d.ts +8 -0
  247. package/lib/components/pisellFloorMapLayout/utils/floorMapConfigMerge.js +66 -0
  248. package/lib/components/pisellFloorMapLayout/utils/floorMapDropUtils.d.ts +26 -0
  249. package/lib/components/pisellFloorMapLayout/utils/floorMapDropUtils.js +61 -0
  250. package/lib/components/pisellFloorMapLayout/utils/floorMapElementKindUtils.d.ts +11 -0
  251. package/lib/components/pisellFloorMapLayout/utils/floorMapElementKindUtils.js +70 -0
  252. package/lib/components/pisellFloorMapLayout/utils/floorMapFallbackRender.d.ts +11 -0
  253. package/lib/components/pisellFloorMapLayout/utils/floorMapFallbackRender.js +135 -0
  254. package/lib/components/pisellFloorMapLayout/utils/floorMapStageDefaults.d.ts +8 -0
  255. package/lib/components/pisellFloorMapLayout/utils/floorMapStageDefaults.js +33 -0
  256. package/lib/components/pisellFloorMapLayout/utils/floorMapViewConfigDiff.d.ts +8 -0
  257. package/lib/components/pisellFloorMapLayout/utils/floorMapViewConfigDiff.js +128 -0
  258. package/lib/components/pisellFloorMapLayout/utils/layoutMeasurements.d.ts +30 -0
  259. package/lib/components/pisellFloorMapLayout/utils/layoutMeasurements.js +96 -0
  260. package/lib/components/pisellFloorMapLayout/utils/mergeCanvasesForTabs.d.ts +7 -0
  261. package/lib/components/pisellFloorMapLayout/utils/mergeCanvasesForTabs.js +41 -0
  262. package/lib/components/pisellFloorMapLayout/utils/snap.d.ts +10 -0
  263. package/lib/components/pisellFloorMapLayout/utils/snap.js +43 -0
  264. package/lib/components/pisellHierarchicalSummaryList/PisellHierarchicalSummaryList.d.ts +6 -0
  265. package/lib/components/pisellHierarchicalSummaryList/PisellHierarchicalSummaryList.js +179 -0
  266. package/lib/components/pisellHierarchicalSummaryList/PisellHierarchicalSummaryList.less +129 -0
  267. package/lib/components/pisellHierarchicalSummaryList/PisellHierarchicalSummaryList.stories.d.ts +10 -0
  268. package/lib/components/pisellHierarchicalSummaryList/PisellHierarchicalSummaryList.stories.js +218 -0
  269. package/lib/components/pisellHierarchicalSummaryList/components/Row.d.ts +35 -0
  270. package/lib/components/pisellHierarchicalSummaryList/components/Row.js +343 -0
  271. package/lib/components/pisellHierarchicalSummaryList/components/index.d.ts +1 -0
  272. package/lib/components/pisellHierarchicalSummaryList/components/index.js +29 -0
  273. package/lib/components/pisellHierarchicalSummaryList/hooks/index.d.ts +2 -0
  274. package/lib/components/pisellHierarchicalSummaryList/hooks/index.js +29 -0
  275. package/lib/components/pisellHierarchicalSummaryList/hooks/useExpandedKeys.d.ts +15 -0
  276. package/lib/components/pisellHierarchicalSummaryList/hooks/useExpandedKeys.js +51 -0
  277. package/lib/components/pisellHierarchicalSummaryList/index.d.ts +5 -0
  278. package/lib/components/pisellHierarchicalSummaryList/index.js +31 -0
  279. package/lib/components/pisellHierarchicalSummaryList/types.d.ts +248 -0
  280. package/lib/components/pisellHierarchicalSummaryList/types.js +17 -0
  281. package/lib/components/pisellRecordBoard/PisellRecordBoard.d.ts +2 -1
  282. package/lib/components/pisellRecordBoard/PisellRecordBoard.js +82 -8
  283. package/lib/components/pisellRecordBoard/PisellRecordBoard.stories.d.ts +4 -0
  284. package/lib/components/pisellRecordBoard/PisellRecordBoard.stories.js +915 -25
  285. package/lib/components/pisellRecordBoard/index.d.ts +7 -2
  286. package/lib/components/pisellRecordBoard/index.js +1 -0
  287. package/lib/components/pisellRecordBoard/shellFrame/ColumnSetting/index.js +8 -2
  288. package/lib/components/pisellRecordBoard/shellFrame/FloorMap.d.ts +14 -0
  289. package/lib/components/pisellRecordBoard/shellFrame/FloorMap.js +27 -0
  290. package/lib/components/pisellRecordBoard/shellFrame/ShellBodyMetaContext.d.ts +16 -0
  291. package/lib/components/pisellRecordBoard/shellFrame/ShellBodyMetaContext.js +45 -0
  292. package/lib/components/pisellRecordBoard/shellFrame/ToolBar/ToolBarFilter.less +47 -0
  293. package/lib/components/pisellRecordBoard/shellFrame/ToolBar/index.js +48 -4
  294. package/lib/components/pisellRecordBoard/shellFrame/index.d.ts +4 -10
  295. package/lib/components/pisellRecordBoard/shellFrame/index.js +88 -6
  296. package/lib/components/pisellRecordBoard/types.d.ts +62 -2
  297. package/lib/components/pisellRecordBoard/utils/partitionShellFrameChildren.d.ts +15 -0
  298. package/lib/components/pisellRecordBoard/utils/partitionShellFrameChildren.js +88 -0
  299. package/lib/components/pisellReservationSchedule/PisellReservationSchedule.d.ts +10 -0
  300. package/lib/components/pisellReservationSchedule/PisellReservationSchedule.js +200 -0
  301. package/lib/components/pisellReservationSchedule/PisellReservationSchedule.less +88 -0
  302. package/lib/components/pisellReservationSchedule/PisellReservationSchedule.stories.d.ts +12 -0
  303. package/lib/components/pisellReservationSchedule/PisellReservationSchedule.stories.js +116 -0
  304. package/lib/components/pisellReservationSchedule/index.d.ts +2 -0
  305. package/lib/components/pisellReservationSchedule/index.js +29 -0
  306. package/lib/components/pisellReservationSchedule/locales.d.ts +25 -0
  307. package/lib/components/pisellReservationSchedule/locales.js +47 -0
  308. package/lib/components/pisellReservationSchedule/types.d.ts +42 -0
  309. package/lib/components/pisellReservationSchedule/types.js +17 -0
  310. package/lib/components/pisellReservationScheduleBand/PisellReservationScheduleBand.d.ts +10 -0
  311. package/lib/components/pisellReservationScheduleBand/PisellReservationScheduleBand.js +127 -0
  312. package/lib/components/pisellReservationScheduleBand/PisellReservationScheduleBand.less +49 -0
  313. package/lib/components/pisellReservationScheduleBand/PisellReservationScheduleBand.stories.d.ts +16 -0
  314. package/lib/components/pisellReservationScheduleBand/PisellReservationScheduleBand.stories.js +181 -0
  315. package/lib/components/pisellReservationScheduleBand/index.d.ts +2 -0
  316. package/lib/components/pisellReservationScheduleBand/index.js +29 -0
  317. package/lib/components/pisellReservationScheduleBand/types.d.ts +45 -0
  318. package/lib/components/pisellReservationScheduleBand/types.js +17 -0
  319. package/lib/components/pisellTimeNavigator/PisellTimeNavigator.d.ts +10 -0
  320. package/lib/components/pisellTimeNavigator/PisellTimeNavigator.js +716 -0
  321. package/lib/components/pisellTimeNavigator/PisellTimeNavigator.less +412 -0
  322. package/lib/components/pisellTimeNavigator/PisellTimeNavigator.stories.d.ts +79 -0
  323. package/lib/components/pisellTimeNavigator/PisellTimeNavigator.stories.js +273 -0
  324. package/lib/components/pisellTimeNavigator/components/BackgroundLayer.d.ts +14 -0
  325. package/lib/components/pisellTimeNavigator/components/BackgroundLayer.js +81 -0
  326. package/lib/components/pisellTimeNavigator/components/CursorLayer.d.ts +20 -0
  327. package/lib/components/pisellTimeNavigator/components/CursorLayer.js +74 -0
  328. package/lib/components/pisellTimeNavigator/components/GestureLayer.d.ts +31 -0
  329. package/lib/components/pisellTimeNavigator/components/GestureLayer.js +159 -0
  330. package/lib/components/pisellTimeNavigator/components/NowButton.d.ts +14 -0
  331. package/lib/components/pisellTimeNavigator/components/NowButton.js +81 -0
  332. package/lib/components/pisellTimeNavigator/components/ScaleLayer.d.ts +17 -0
  333. package/lib/components/pisellTimeNavigator/components/ScaleLayer.js +95 -0
  334. package/lib/components/pisellTimeNavigator/components/index.d.ts +5 -0
  335. package/lib/components/pisellTimeNavigator/components/index.js +41 -0
  336. package/lib/components/pisellTimeNavigator/hooks/index.d.ts +5 -0
  337. package/lib/components/pisellTimeNavigator/hooks/index.js +35 -0
  338. package/lib/components/pisellTimeNavigator/hooks/useDragInertia.d.ts +14 -0
  339. package/lib/components/pisellTimeNavigator/hooks/useDragInertia.js +136 -0
  340. package/lib/components/pisellTimeNavigator/hooks/useRealtime.d.ts +5 -0
  341. package/lib/components/pisellTimeNavigator/hooks/useRealtime.js +49 -0
  342. package/lib/components/pisellTimeNavigator/hooks/useTimeAxis.d.ts +27 -0
  343. package/lib/components/pisellTimeNavigator/hooks/useTimeAxis.js +81 -0
  344. package/lib/components/pisellTimeNavigator/index.d.ts +4 -0
  345. package/lib/components/pisellTimeNavigator/index.js +42 -0
  346. package/lib/components/pisellTimeNavigator/locales.d.ts +22 -0
  347. package/lib/components/pisellTimeNavigator/locales.js +41 -0
  348. package/lib/components/pisellTimeNavigator/types.d.ts +149 -0
  349. package/lib/components/pisellTimeNavigator/types.js +17 -0
  350. package/lib/components/pisellTimeNavigator/utils/index.d.ts +30 -0
  351. package/lib/components/pisellTimeNavigator/utils/index.js +107 -0
  352. package/lib/index.d.ts +15 -5
  353. package/lib/index.js +35 -0
  354. package/lib/locales/en-US.d.ts +2 -0
  355. package/lib/locales/en-US.js +2 -0
  356. package/lib/locales/zh-CN.d.ts +2 -0
  357. package/lib/locales/zh-CN.js +2 -0
  358. package/lib/locales/zh-TW.d.ts +2 -0
  359. package/lib/locales/zh-TW.js +2 -0
  360. package/lowcode/floor-map-layout-provider/meta.ts +65 -0
  361. package/lowcode/pisell-floor-map-layout/meta.ts +3894 -1
  362. package/lowcode/pisell-hierarchical-summary-list/meta.ts +244 -0
  363. package/lowcode/pisell-reservation-schedule/index.ts +3 -0
  364. package/lowcode/pisell-reservation-schedule/meta.ts +69 -0
  365. package/lowcode/pisell-reservation-schedule/snippets.ts +1 -0
  366. package/lowcode/pisell-reservation-schedule-band/index.ts +3 -0
  367. package/lowcode/pisell-reservation-schedule-band/meta.ts +96 -0
  368. package/lowcode/pisell-reservation-schedule-band/snippets.ts +1 -0
  369. package/lowcode/pisell-time-navigator/index.ts +3 -0
  370. package/lowcode/pisell-time-navigator/meta.ts +298 -0
  371. package/lowcode/pisell-time-navigator/snippets.ts +1 -0
  372. package/lowcode/render-figma-style-round-table-card/meta.ts +589 -0
  373. package/lowcode/render-figma-style-table-card/meta.ts +589 -0
  374. package/package.json +3 -3
@@ -0,0 +1,497 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ /**
8
+ * FloorMapEditPanel - 选中图元后的编辑面板:画布属性 + 可选数据绑定 + 数据源记录表单
9
+ */
10
+ import React, { useCallback, useMemo, useRef, useState } from 'react';
11
+ import { locales } from '@pisell/utils';
12
+ import classNames from 'classnames';
13
+ import { CloseOutlined, LockOutlined, UnlockOutlined } from '@ant-design/icons';
14
+ import { Input, InputNumber, Select, Button, Form, Popconfirm } from 'antd';
15
+ import { FLOOR_MAP_IMAGE_ELEMENT_KIND, FLOOR_MAP_STAGE_ELEMENT_KIND } from "../types";
16
+ import { getElementKindConfig, resolveDataBindingPolicy } from "../utils/floorMapElementKindUtils";
17
+ import { FloorMapDataForm } from "./FloorMapDataForm";
18
+ import useEngineContext from "../../../hooks/useEngineContext";
19
+ import { getFloorMapCanvasDisplayName, initFloorMapLayoutLocales } from "../utils/floorMapCanvasDisplay";
20
+ import "./FloorMapEditPanel.less";
21
+ var PREFIX = 'pisell-floor-map-layout';
22
+ var I18N_EP = 'pisell-floor-map-layout.edit-panel';
23
+ function formatDataRecordOptionLabel(record) {
24
+ var name = record.name != null ? String(record.name) : '';
25
+ var status = record.status != null ? String(record.status) : '';
26
+ if (name && status) return "".concat(name, "\uFF08").concat(status, "\uFF09");
27
+ return name || String(record.id);
28
+ }
29
+ function resolveDataSourceRecordForm(content, ctx) {
30
+ if (typeof content === 'function') {
31
+ return content(ctx);
32
+ }
33
+ return content;
34
+ }
35
+ export function FloorMapEditPanel(props) {
36
+ var _engineCtx$engine, _kindConfig$allowedDa, _dataSources$binding$, _dataSources$binding$2, _dataSources$binding$3;
37
+ var sceneElement = props.sceneElement,
38
+ itemId = props.itemId,
39
+ onUpdate = props.onUpdate,
40
+ onSaveRecord = props.onSaveRecord,
41
+ onClose = props.onClose,
42
+ onDelete = props.onDelete,
43
+ recordFormColumns = props.recordFormColumns,
44
+ dataSourceRecordForm = props.dataSourceRecordForm,
45
+ config = props.config,
46
+ dataSources = props.dataSources,
47
+ savingRecord = props.savingRecord,
48
+ _props$dataSourceLabe = props.dataSourceLabels,
49
+ dataSourceLabels = _props$dataSourceLabe === void 0 ? {} : _props$dataSourceLabe,
50
+ layoutDraftDirty = props.layoutDraftDirty,
51
+ showRecordFormProp = props.showDataSourceRecordFormBlock,
52
+ className = props.className;
53
+ var _Form$useForm = Form.useForm(),
54
+ _Form$useForm2 = _slicedToArray(_Form$useForm, 1),
55
+ form = _Form$useForm2[0];
56
+ /** 忽略由 setFieldsValue 触发的 onValuesChange,避免误判「未应用」 */
57
+ var skipFormValuesChangeRef = useRef(false);
58
+ var _useState = useState(false),
59
+ _useState2 = _slicedToArray(_useState, 2),
60
+ formHasUnappliedChanges = _useState2[0],
61
+ setFormHasUnappliedChanges = _useState2[1];
62
+ var engineCtx = useEngineContext();
63
+ var engineLocale = (engineCtx === null || engineCtx === void 0 || (_engineCtx$engine = engineCtx.engine) === null || _engineCtx$engine === void 0 || (_engineCtx$engine = _engineCtx$engine.props) === null || _engineCtx$engine === void 0 ? void 0 : _engineCtx$engine.locale) || 'zh-CN';
64
+ initFloorMapLayoutLocales(engineLocale);
65
+ var ep = useMemo(function () {
66
+ return {
67
+ elementProps: locales.getText("".concat(I18N_EP, ".element-props")),
68
+ closeAria: locales.getText("".concat(I18N_EP, ".close-aria")),
69
+ hintApply: locales.getText("".concat(I18N_EP, ".hint-apply")),
70
+ hintSave: locales.getText("".concat(I18N_EP, ".hint-save")),
71
+ sectionLayout: locales.getText("".concat(I18N_EP, ".section-layout")),
72
+ lockOn: locales.getText("".concat(I18N_EP, ".lock-on")),
73
+ lockOff: locales.getText("".concat(I18N_EP, ".lock-off")),
74
+ labelX: locales.getText("".concat(I18N_EP, ".label-x")),
75
+ labelY: locales.getText("".concat(I18N_EP, ".label-y")),
76
+ labelZ: locales.getText("".concat(I18N_EP, ".label-z")),
77
+ labelWidth: locales.getText("".concat(I18N_EP, ".label-width")),
78
+ labelHeight: locales.getText("".concat(I18N_EP, ".label-height")),
79
+ labelName: locales.getText("".concat(I18N_EP, ".label-name")),
80
+ labelNameStage: locales.getText("".concat(I18N_EP, ".label-name-stage")),
81
+ phNameStage: locales.getText("".concat(I18N_EP, ".ph-name-stage")),
82
+ phName: locales.getText("".concat(I18N_EP, ".ph-name")),
83
+ labelImageUrl: locales.getText("".concat(I18N_EP, ".label-image-url")),
84
+ extraImageUrl: locales.getText("".concat(I18N_EP, ".extra-image-url")),
85
+ phHttps: locales.getText("".concat(I18N_EP, ".ph-https")),
86
+ labelCanvas: locales.getText("".concat(I18N_EP, ".label-canvas")),
87
+ apply: locales.getText("".concat(I18N_EP, ".apply")),
88
+ dataBinding: locales.getText("".concat(I18N_EP, ".data-binding")),
89
+ dataBindingNote: locales.getText("".concat(I18N_EP, ".data-binding-note")),
90
+ labelDataSource: locales.getText("".concat(I18N_EP, ".label-data-source")),
91
+ phDataSource: locales.getText("".concat(I18N_EP, ".ph-data-source")),
92
+ labelPickRow: locales.getText("".concat(I18N_EP, ".label-pick-row")),
93
+ phPickRow: locales.getText("".concat(I18N_EP, ".ph-pick-row")),
94
+ phNoRows: locales.getText("".concat(I18N_EP, ".ph-no-rows")),
95
+ hintUnbound: locales.getText("".concat(I18N_EP, ".hint-unbound")),
96
+ recordTitle: locales.getText("".concat(I18N_EP, ".record-title")),
97
+ popTitle: locales.getText("".concat(I18N_EP, ".pop-title")),
98
+ popDesc: locales.getText("".concat(I18N_EP, ".pop-desc")),
99
+ btnDelete: locales.getText("".concat(I18N_EP, ".btn-delete")),
100
+ btnCancel: locales.getText("".concat(I18N_EP, ".btn-cancel")),
101
+ btnOkDelete: locales.getText("".concat(I18N_EP, ".btn-ok-delete"))
102
+ };
103
+ }, [engineLocale]);
104
+ var canvasOptions = config.canvases.filter(function (c) {
105
+ return c.enabled;
106
+ }).sort(function (a, b) {
107
+ return a.order - b.order;
108
+ });
109
+ var kindConfig = getElementKindConfig(config, sceneElement.elementKind);
110
+ var bindingPolicy = resolveDataBindingPolicy(kindConfig);
111
+ var allKeys = Object.keys(dataSources);
112
+ var allowedKeys = kindConfig !== null && kindConfig !== void 0 && (_kindConfig$allowedDa = kindConfig.allowedDataSourceKeys) !== null && _kindConfig$allowedDa !== void 0 && _kindConfig$allowedDa.length ? kindConfig.allowedDataSourceKeys.filter(function (k) {
113
+ return allKeys.includes(k);
114
+ }) : allKeys;
115
+ var isImageKind = sceneElement.elementKind === FLOOR_MAP_IMAGE_ELEMENT_KIND;
116
+ var layoutLocked = Boolean(sceneElement.layoutTransformLocked);
117
+ var initialValues = React.useMemo(function () {
118
+ var _sceneElement$name, _sceneElement$zIndex, _sceneElement$width, _sceneElement$height, _sceneElement$imageUr;
119
+ var dw = isImageKind ? 400 : 180;
120
+ var dh = isImageKind ? 240 : 120;
121
+ return {
122
+ x: sceneElement.x,
123
+ y: sceneElement.y,
124
+ name: (_sceneElement$name = sceneElement.name) !== null && _sceneElement$name !== void 0 ? _sceneElement$name : '',
125
+ zIndex: (_sceneElement$zIndex = sceneElement.zIndex) !== null && _sceneElement$zIndex !== void 0 ? _sceneElement$zIndex : 0,
126
+ width: (_sceneElement$width = sceneElement.width) !== null && _sceneElement$width !== void 0 ? _sceneElement$width : dw,
127
+ height: (_sceneElement$height = sceneElement.height) !== null && _sceneElement$height !== void 0 ? _sceneElement$height : dh,
128
+ canvasId: sceneElement.canvasId,
129
+ imageUrl: (_sceneElement$imageUr = sceneElement.imageUrl) !== null && _sceneElement$imageUr !== void 0 ? _sceneElement$imageUr : ''
130
+ };
131
+ }, [sceneElement, isImageKind]);
132
+ React.useEffect(function () {
133
+ setFormHasUnappliedChanges(false);
134
+ }, [itemId]);
135
+ React.useEffect(function () {
136
+ skipFormValuesChangeRef.current = true;
137
+ form.setFieldsValue(initialValues);
138
+ queueMicrotask(function () {
139
+ skipFormValuesChangeRef.current = false;
140
+ setFormHasUnappliedChanges(false);
141
+ });
142
+ }, [itemId, initialValues, form]);
143
+ var handleFinish = useCallback(function (values) {
144
+ var name = values.name != null ? String(values.name).trim() || undefined : undefined;
145
+ var patch = {
146
+ name: name,
147
+ canvasId: String(values.canvasId)
148
+ };
149
+ if (isImageKind) {
150
+ var _values$imageUrl;
151
+ var url = String((_values$imageUrl = values.imageUrl) !== null && _values$imageUrl !== void 0 ? _values$imageUrl : '').trim();
152
+ patch.imageUrl = url || undefined;
153
+ }
154
+ if (!layoutLocked) {
155
+ patch.x = Number(values.x);
156
+ patch.y = Number(values.y);
157
+ patch.zIndex = values.zIndex != null ? Number(values.zIndex) : undefined;
158
+ var w = Number(values.width);
159
+ var h = Number(values.height);
160
+ patch.width = Number.isFinite(w) ? Math.max(20, w) : undefined;
161
+ patch.height = Number.isFinite(h) ? Math.max(20, h) : undefined;
162
+ }
163
+ onUpdate(patch);
164
+ setFormHasUnappliedChanges(false);
165
+ }, [onUpdate, isImageKind, layoutLocked]);
166
+ var binding = sceneElement.dataBinding;
167
+ var record = binding ? (_dataSources$binding$ = (_dataSources$binding$2 = dataSources[binding.dataSourceKey]) === null || _dataSources$binding$2 === void 0 ? void 0 : _dataSources$binding$2.find(function (r) {
168
+ return r.id === binding.recordId;
169
+ })) !== null && _dataSources$binding$ !== void 0 ? _dataSources$binding$ : {} : {};
170
+ var dataRecordBindOptions = useMemo(function () {
171
+ var _binding$dataSourceKe, _dataSources$key, _config$sceneElements;
172
+ if (bindingPolicy === 'none') return [];
173
+ var key = (_binding$dataSourceKe = binding === null || binding === void 0 ? void 0 : binding.dataSourceKey) !== null && _binding$dataSourceKe !== void 0 ? _binding$dataSourceKe : allowedKeys[0];
174
+ if (!key) return [];
175
+ var list = (_dataSources$key = dataSources[key]) !== null && _dataSources$key !== void 0 ? _dataSources$key : [];
176
+ if (!list.length) return [];
177
+ var usedByOther = new Set(((_config$sceneElements = config.sceneElements) !== null && _config$sceneElements !== void 0 ? _config$sceneElements : []).filter(function (e) {
178
+ var _e$dataBinding;
179
+ return e.instanceId !== sceneElement.instanceId && ((_e$dataBinding = e.dataBinding) === null || _e$dataBinding === void 0 ? void 0 : _e$dataBinding.dataSourceKey) === key;
180
+ }).map(function (e) {
181
+ return e.dataBinding.recordId;
182
+ }));
183
+ return list.filter(function (r) {
184
+ return !usedByOther.has(r.id) || r.id === (binding === null || binding === void 0 ? void 0 : binding.recordId);
185
+ }).map(function (r) {
186
+ return {
187
+ value: r.id,
188
+ label: formatDataRecordOptionLabel(r)
189
+ };
190
+ });
191
+ }, [bindingPolicy, binding, allowedKeys, dataSources, config.sceneElements, sceneElement.instanceId]);
192
+ var hasBoundDataRecord = Boolean(binding && ((_dataSources$binding$3 = dataSources[binding.dataSourceKey]) !== null && _dataSources$binding$3 !== void 0 ? _dataSources$binding$3 : []).some(function (r) {
193
+ return r.id === binding.recordId;
194
+ }));
195
+ var recordFormSlotRaw = binding ? dataSourceRecordForm === null || dataSourceRecordForm === void 0 ? void 0 : dataSourceRecordForm[binding.dataSourceKey] : undefined;
196
+ var hasCustomRecordForm = recordFormSlotRaw !== undefined && recordFormSlotRaw !== null && recordFormSlotRaw !== false;
197
+ var showDataBindingSection = bindingPolicy !== 'none';
198
+ /** 仅在实际绑定到某一行时展示「数据源记录」,避免仅选数据源、recordId 为空时误展示空表单 */
199
+ var showDataSourceRecordBlock = hasBoundDataRecord && Boolean(binding) && (onSaveRecord != null || hasCustomRecordForm);
200
+ var showDataRecordEditorSection = showRecordFormProp !== false && showDataSourceRecordBlock && Boolean(binding);
201
+ var recordFormContext = useMemo(function () {
202
+ if (!binding) return null;
203
+ return {
204
+ dataSourceKey: binding.dataSourceKey,
205
+ recordId: binding.recordId,
206
+ record: record,
207
+ dataSources: dataSources,
208
+ sceneElement: sceneElement,
209
+ config: config,
210
+ savingRecord: savingRecord !== null && savingRecord !== void 0 ? savingRecord : false,
211
+ onSaveRecord: onSaveRecord ? function (newData) {
212
+ return onSaveRecord(binding.dataSourceKey, binding.recordId, newData);
213
+ } : undefined
214
+ };
215
+ }, [binding, record, dataSources, sceneElement, config, savingRecord, onSaveRecord]);
216
+ var isStageLike = sceneElement.elementKind === FLOOR_MAP_STAGE_ELEMENT_KIND;
217
+ var toggleLayoutLock = function toggleLayoutLock() {
218
+ onUpdate({
219
+ layoutTransformLocked: !sceneElement.layoutTransformLocked
220
+ });
221
+ };
222
+ var panelScrollRef = useRef(null);
223
+ var dragScrollRef = useRef({
224
+ active: false,
225
+ pointerId: -1,
226
+ startY: 0,
227
+ startScrollTop: 0
228
+ });
229
+ var isDragScrollSurface = useCallback(function (target) {
230
+ if (!(target instanceof Element)) return false;
231
+ return !target.closest('input,textarea,button,select,.ant-select,.ant-input,[contenteditable="true"]');
232
+ }, []);
233
+ var handlePanelPointerDown = useCallback(function (e) {
234
+ if (!isDragScrollSurface(e.target)) return;
235
+ var el = panelScrollRef.current;
236
+ if (!el || el.scrollHeight <= el.clientHeight) return;
237
+ el.setPointerCapture(e.pointerId);
238
+ dragScrollRef.current = {
239
+ active: true,
240
+ pointerId: e.pointerId,
241
+ startY: e.clientY,
242
+ startScrollTop: el.scrollTop
243
+ };
244
+ }, [isDragScrollSurface]);
245
+ var handlePanelPointerMove = useCallback(function (e) {
246
+ var d = dragScrollRef.current;
247
+ if (!d.active || e.pointerId !== d.pointerId) return;
248
+ var el = panelScrollRef.current;
249
+ if (!el) return;
250
+ el.scrollTop = d.startScrollTop + (d.startY - e.clientY);
251
+ }, []);
252
+ var endPanelDragScroll = useCallback(function (e) {
253
+ var d = dragScrollRef.current;
254
+ if (!d.active || e.pointerId !== d.pointerId) return;
255
+ dragScrollRef.current = {
256
+ active: false,
257
+ pointerId: -1,
258
+ startY: 0,
259
+ startScrollTop: 0
260
+ };
261
+ try {
262
+ var _panelScrollRef$curre;
263
+ (_panelScrollRef$curre = panelScrollRef.current) === null || _panelScrollRef$curre === void 0 || _panelScrollRef$curre.releasePointerCapture(e.pointerId);
264
+ } catch (_unused) {
265
+ /* ignore */
266
+ }
267
+ }, []);
268
+ return /*#__PURE__*/React.createElement("div", {
269
+ ref: panelScrollRef,
270
+ className: classNames("".concat(PREFIX, "-edit-panel"), className),
271
+ onPointerDown: handlePanelPointerDown,
272
+ onPointerMove: handlePanelPointerMove,
273
+ onPointerUp: endPanelDragScroll,
274
+ onPointerCancel: endPanelDragScroll
275
+ }, /*#__PURE__*/React.createElement("div", {
276
+ className: "".concat(PREFIX, "-edit-panel-header")
277
+ }, /*#__PURE__*/React.createElement("span", null, ep.elementProps), /*#__PURE__*/React.createElement(Button, {
278
+ type: "text",
279
+ size: "small",
280
+ className: "".concat(PREFIX, "-edit-panel-close"),
281
+ icon: /*#__PURE__*/React.createElement(CloseOutlined, null),
282
+ "aria-label": ep.closeAria,
283
+ onClick: onClose
284
+ })), (formHasUnappliedChanges || layoutDraftDirty) && /*#__PURE__*/React.createElement("div", {
285
+ className: "".concat(PREFIX, "-edit-panel-hints"),
286
+ role: "status"
287
+ }, formHasUnappliedChanges ? /*#__PURE__*/React.createElement("p", {
288
+ className: "".concat(PREFIX, "-edit-panel-hint warn")
289
+ }, ep.hintApply) : null, layoutDraftDirty ? /*#__PURE__*/React.createElement("p", {
290
+ className: "".concat(PREFIX, "-edit-panel-hint muted")
291
+ }, ep.hintSave) : null), /*#__PURE__*/React.createElement(Form, {
292
+ form: form,
293
+ layout: "vertical",
294
+ size: "small",
295
+ onFinish: handleFinish,
296
+ initialValues: initialValues,
297
+ onValuesChange: function onValuesChange() {
298
+ if (skipFormValuesChangeRef.current) return;
299
+ setFormHasUnappliedChanges(true);
300
+ }
301
+ }, /*#__PURE__*/React.createElement("div", {
302
+ className: "".concat(PREFIX, "-edit-panel-layout-lock-header")
303
+ }, /*#__PURE__*/React.createElement("span", {
304
+ className: "".concat(PREFIX, "-edit-panel-layout-lock-title")
305
+ }, ep.sectionLayout), /*#__PURE__*/React.createElement(Button, {
306
+ type: "text",
307
+ size: "small",
308
+ className: "".concat(PREFIX, "-edit-panel-layout-lock-btn"),
309
+ icon: layoutLocked ? /*#__PURE__*/React.createElement(LockOutlined, null) : /*#__PURE__*/React.createElement(UnlockOutlined, null),
310
+ "aria-pressed": layoutLocked,
311
+ onClick: toggleLayoutLock,
312
+ title: layoutLocked ? ep.lockOn : ep.lockOff
313
+ })), /*#__PURE__*/React.createElement("div", {
314
+ className: "".concat(PREFIX, "-edit-panel-xy-row")
315
+ }, /*#__PURE__*/React.createElement(Form.Item, {
316
+ name: "x",
317
+ label: ep.labelX
318
+ }, /*#__PURE__*/React.createElement(InputNumber, {
319
+ style: {
320
+ width: '100%'
321
+ },
322
+ min: 0,
323
+ disabled: layoutLocked
324
+ })), /*#__PURE__*/React.createElement(Form.Item, {
325
+ name: "y",
326
+ label: ep.labelY
327
+ }, /*#__PURE__*/React.createElement(InputNumber, {
328
+ style: {
329
+ width: '100%'
330
+ },
331
+ min: 0,
332
+ disabled: layoutLocked
333
+ })), /*#__PURE__*/React.createElement(Form.Item, {
334
+ name: "zIndex",
335
+ label: ep.labelZ
336
+ }, /*#__PURE__*/React.createElement(InputNumber, {
337
+ style: {
338
+ width: '100%'
339
+ },
340
+ disabled: layoutLocked
341
+ }))), /*#__PURE__*/React.createElement("div", {
342
+ className: "".concat(PREFIX, "-edit-panel-size-row")
343
+ }, /*#__PURE__*/React.createElement(Form.Item, {
344
+ name: "width",
345
+ label: ep.labelWidth
346
+ }, /*#__PURE__*/React.createElement(InputNumber, {
347
+ style: {
348
+ width: '100%'
349
+ },
350
+ min: 20,
351
+ disabled: layoutLocked
352
+ })), /*#__PURE__*/React.createElement(Form.Item, {
353
+ name: "height",
354
+ label: ep.labelHeight
355
+ }, /*#__PURE__*/React.createElement(InputNumber, {
356
+ style: {
357
+ width: '100%'
358
+ },
359
+ min: 20,
360
+ disabled: layoutLocked
361
+ }))), /*#__PURE__*/React.createElement(Form.Item, {
362
+ name: "name",
363
+ label: isStageLike ? ep.labelNameStage : ep.labelName
364
+ }, /*#__PURE__*/React.createElement(Input, {
365
+ placeholder: isStageLike ? ep.phNameStage : ep.phName,
366
+ allowClear: true
367
+ })), isImageKind ? /*#__PURE__*/React.createElement(Form.Item, {
368
+ name: "imageUrl",
369
+ label: ep.labelImageUrl,
370
+ extra: ep.extraImageUrl
371
+ }, /*#__PURE__*/React.createElement(Input, {
372
+ allowClear: true,
373
+ placeholder: ep.phHttps
374
+ })) : null, /*#__PURE__*/React.createElement(Form.Item, {
375
+ name: "canvasId",
376
+ label: ep.labelCanvas
377
+ }, /*#__PURE__*/React.createElement(Select, {
378
+ options: canvasOptions.map(function (c) {
379
+ return {
380
+ value: c.id,
381
+ label: getFloorMapCanvasDisplayName(c, engineLocale)
382
+ };
383
+ }),
384
+ allowClear: false
385
+ })), /*#__PURE__*/React.createElement(Form.Item, null, /*#__PURE__*/React.createElement(Button, {
386
+ type: "primary",
387
+ htmlType: "submit",
388
+ size: "small"
389
+ }, ep.apply))), showDataBindingSection && /*#__PURE__*/React.createElement("div", {
390
+ className: "".concat(PREFIX, "-edit-panel-record")
391
+ }, /*#__PURE__*/React.createElement("div", {
392
+ className: "".concat(PREFIX, "-edit-panel-record-title")
393
+ }, ep.dataBinding), /*#__PURE__*/React.createElement("p", {
394
+ className: "".concat(PREFIX, "-edit-panel-record-draft-note")
395
+ }, ep.dataBindingNote), allowedKeys.length >= 1 ? /*#__PURE__*/React.createElement("div", {
396
+ className: "".concat(PREFIX, "-edit-panel-record-bind")
397
+ }, /*#__PURE__*/React.createElement("div", {
398
+ className: "".concat(PREFIX, "-edit-panel-record-bind-label")
399
+ }, ep.labelDataSource), /*#__PURE__*/React.createElement(Select, {
400
+ size: "small",
401
+ style: {
402
+ width: '100%'
403
+ },
404
+ placeholder: ep.phDataSource,
405
+ value: binding === null || binding === void 0 ? void 0 : binding.dataSourceKey,
406
+ options: allowedKeys.map(function (k) {
407
+ var _dataSourceLabels$k;
408
+ return {
409
+ value: k,
410
+ label: (_dataSourceLabels$k = dataSourceLabels[k]) !== null && _dataSourceLabels$k !== void 0 ? _dataSourceLabels$k : k
411
+ };
412
+ }),
413
+ onChange: function onChange(key) {
414
+ if (!key && bindingPolicy === 'optional') {
415
+ onUpdate({
416
+ dataBinding: undefined
417
+ });
418
+ return;
419
+ }
420
+ if (!key) return;
421
+ onUpdate({
422
+ dataBinding: {
423
+ dataSourceKey: key,
424
+ recordId: (binding === null || binding === void 0 ? void 0 : binding.dataSourceKey) === key ? binding.recordId : ''
425
+ }
426
+ });
427
+ },
428
+ allowClear: bindingPolicy === 'optional'
429
+ })) : null, allowedKeys.length >= 1 && /*#__PURE__*/React.createElement("div", {
430
+ className: "".concat(PREFIX, "-edit-panel-record-bind")
431
+ }, /*#__PURE__*/React.createElement("div", {
432
+ className: "".concat(PREFIX, "-edit-panel-record-bind-label")
433
+ }, ep.labelPickRow), /*#__PURE__*/React.createElement(Select, {
434
+ size: "small",
435
+ placeholder: dataRecordBindOptions.length ? ep.phPickRow : ep.phNoRows,
436
+ style: {
437
+ width: '100%'
438
+ },
439
+ value: hasBoundDataRecord ? binding === null || binding === void 0 ? void 0 : binding.recordId : undefined,
440
+ allowClear: bindingPolicy === 'optional',
441
+ options: dataRecordBindOptions,
442
+ onChange: function onChange(newId) {
443
+ var _binding$dataSourceKe2, _dataSources$key2, _name;
444
+ var key = (_binding$dataSourceKe2 = binding === null || binding === void 0 ? void 0 : binding.dataSourceKey) !== null && _binding$dataSourceKe2 !== void 0 ? _binding$dataSourceKe2 : allowedKeys[0];
445
+ if (!key) return;
446
+ if (!newId) {
447
+ onUpdate({
448
+ dataBinding: undefined
449
+ });
450
+ return;
451
+ }
452
+ var row = ((_dataSources$key2 = dataSources[key]) !== null && _dataSources$key2 !== void 0 ? _dataSources$key2 : []).find(function (r) {
453
+ return r.id === newId;
454
+ });
455
+ onUpdate({
456
+ dataBinding: {
457
+ dataSourceKey: key,
458
+ recordId: newId
459
+ },
460
+ name: row ? String((_name = row.name) !== null && _name !== void 0 ? _name : newId) : undefined
461
+ });
462
+ }
463
+ }), !hasBoundDataRecord && /*#__PURE__*/React.createElement("p", {
464
+ className: "".concat(PREFIX, "-edit-panel-record-bind-hint")
465
+ }, ep.hintUnbound))), showDataRecordEditorSection && binding && /*#__PURE__*/React.createElement("div", {
466
+ className: "".concat(PREFIX, "-edit-panel-record")
467
+ }, /*#__PURE__*/React.createElement("div", {
468
+ className: "".concat(PREFIX, "-edit-panel-record-title")
469
+ }, ep.recordTitle), hasCustomRecordForm && recordFormContext && recordFormSlotRaw != null ? /*#__PURE__*/React.createElement("div", {
470
+ className: "".concat(PREFIX, "-edit-panel-record-custom")
471
+ }, resolveDataSourceRecordForm(recordFormSlotRaw, recordFormContext)) : null, !hasCustomRecordForm && onSaveRecord ? /*#__PURE__*/React.createElement(FloorMapDataForm, {
472
+ dataSourceKey: binding.dataSourceKey,
473
+ recordId: binding.recordId,
474
+ record: record,
475
+ dataSources: dataSources,
476
+ onSave: onSaveRecord,
477
+ saving: savingRecord,
478
+ columns: recordFormColumns === null || recordFormColumns === void 0 ? void 0 : recordFormColumns[binding.dataSourceKey]
479
+ }) : null), config.canvasUi.canEdit && onDelete ? /*#__PURE__*/React.createElement("div", {
480
+ className: "".concat(PREFIX, "-edit-panel-footer")
481
+ }, /*#__PURE__*/React.createElement(Popconfirm, {
482
+ title: ep.popTitle,
483
+ description: ep.popDesc,
484
+ onConfirm: onDelete,
485
+ okText: ep.btnOkDelete,
486
+ cancelText: ep.btnCancel,
487
+ okButtonProps: {
488
+ danger: true
489
+ }
490
+ }, /*#__PURE__*/React.createElement(Button, {
491
+ type: "default",
492
+ danger: true,
493
+ block: true,
494
+ size: "small"
495
+ }, ep.btnDelete))) : null);
496
+ }
497
+ export default FloorMapEditPanel;
@@ -0,0 +1,154 @@
1
+ .pisell-floor-map-layout-edit-panel {
2
+ width: 280px;
3
+ padding: 12px;
4
+ background: #fff;
5
+ border: 1px solid #e8e8e8;
6
+ border-radius: 8px;
7
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
8
+ max-height: 80vh;
9
+ overflow-y: auto;
10
+ touch-action: pan-y;
11
+
12
+ &-header {
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: space-between;
16
+ gap: 8px;
17
+ margin-bottom: 12px;
18
+ font-weight: 500;
19
+ }
20
+
21
+ &-close {
22
+ flex-shrink: 0;
23
+ color: rgba(0, 0, 0, 0.45);
24
+
25
+ &:hover {
26
+ color: rgba(0, 0, 0, 0.88);
27
+ }
28
+ }
29
+
30
+ &-footer {
31
+ margin-top: 16px;
32
+ padding-top: 16px;
33
+ border-top: 1px solid #f0f0f0;
34
+ }
35
+
36
+ &-record-custom {
37
+ margin-top: 8px;
38
+ }
39
+
40
+ &-layout-lock-header {
41
+ display: flex;
42
+ align-items: center;
43
+ justify-content: space-between;
44
+ gap: 8px;
45
+ margin-bottom: 8px;
46
+ }
47
+
48
+ &-layout-lock-title {
49
+ font-size: 12px;
50
+ font-weight: 600;
51
+ color: #434343;
52
+ }
53
+
54
+ &-layout-lock-btn {
55
+ flex-shrink: 0;
56
+ color: rgba(0, 0, 0, 0.55);
57
+ }
58
+
59
+ /* X、Y、层级 同一行 */
60
+
61
+ &-xy-row {
62
+ display: flex;
63
+ gap: 8px;
64
+ align-items: flex-start;
65
+
66
+ .ant-form-item {
67
+ flex: 1;
68
+ min-width: 0;
69
+ }
70
+ }
71
+
72
+ &-size-row {
73
+ display: flex;
74
+ gap: 8px;
75
+ align-items: flex-start;
76
+ margin-bottom: 8px;
77
+
78
+ .ant-form-item {
79
+ flex: 1;
80
+ min-width: 0;
81
+ }
82
+ }
83
+
84
+ &-record-bind {
85
+ margin-bottom: 12px;
86
+ }
87
+
88
+ &-record-bind-label {
89
+ font-size: 12px;
90
+ font-weight: 600;
91
+ color: #434343;
92
+ margin-bottom: 6px;
93
+ }
94
+
95
+ &-record-bind-hint {
96
+ margin: 8px 0 0;
97
+ font-size: 12px;
98
+ color: #8c8c8c;
99
+ line-height: 1.5;
100
+ }
101
+
102
+ &-hints {
103
+ margin-bottom: 10px;
104
+ }
105
+
106
+ &-hint {
107
+ margin: 0 0 6px;
108
+ font-size: 12px;
109
+ line-height: 1.45;
110
+
111
+ &:last-child {
112
+ margin-bottom: 0;
113
+ }
114
+
115
+ &.warn {
116
+ color: #ad6800;
117
+ padding: 6px 8px;
118
+ background: #fffbe6;
119
+ border-radius: 6px;
120
+ border: 1px solid #ffe58f;
121
+ }
122
+
123
+ &.muted {
124
+ margin-top: 4px;
125
+ color: #595959;
126
+ }
127
+ }
128
+
129
+ &-record-draft-note {
130
+ margin: 0 0 10px;
131
+ font-size: 11px;
132
+ color: #8c8c8c;
133
+ line-height: 1.45;
134
+ }
135
+ }
136
+
137
+ /* 父 wrap 根据画布限制高度时,面板填满 wrap 并内部滚动 */
138
+ .pisell-floor-map-layout-edit-panel-wrap-constrained .pisell-floor-map-layout-edit-panel {
139
+ height: 100%;
140
+ max-height: 100%;
141
+ box-sizing: border-box;
142
+
143
+ &-record {
144
+ margin-top: 16px;
145
+ padding-top: 16px;
146
+ border-top: 1px solid #f0f0f0;
147
+ }
148
+
149
+ &-record-title {
150
+ font-size: 14px;
151
+ font-weight: 500;
152
+ margin-bottom: 8px;
153
+ }
154
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * FloorMapEditTopBar - 编辑态顶栏
3
+ * - `mode="compact"`:画布 Tab + 全屏入口(非全屏时;保存等在侧栏)
4
+ * - `mode="full"`:画布 Tab + 保存 + 全屏退出 + 扩展操作(全屏时)
5
+ */
6
+ import React from 'react';
7
+ import type { CanvasTabsProps } from './CanvasTabs';
8
+ import type { FloorMapControlsConfig, FloorMapViewConfig } from '../types';
9
+ import './FloorMapEditTopBar.less';
10
+ export declare type FloorMapEditTopBarMode = 'full' | 'compact';
11
+ export interface FloorMapEditTopBarProps {
12
+ /** full:全屏时的完整顶栏;compact:非全屏时 Tab + 全屏入口 */
13
+ mode?: FloorMapEditTopBarMode;
14
+ config: FloorMapViewConfig;
15
+ canvases: CanvasTabsProps['canvases'];
16
+ currentCanvasId: CanvasTabsProps['currentCanvasId'];
17
+ onTabChange: CanvasTabsProps['onTabChange'];
18
+ canEditTabs?: CanvasTabsProps['canEdit'];
19
+ onAddCanvas?: CanvasTabsProps['onAddCanvas'];
20
+ onRemoveCanvas?: CanvasTabsProps['onRemoveCanvas'];
21
+ onRenameCanvas?: CanvasTabsProps['onRenameCanvas'];
22
+ onSave?: () => void;
23
+ saving?: boolean;
24
+ saveError?: Error | string;
25
+ layoutDirty?: boolean;
26
+ toggleFullscreen?: () => void;
27
+ isFullscreen?: boolean;
28
+ controls?: FloorMapControlsConfig;
29
+ /** 顶栏右侧扩展(如「区域定位」等),仅 full 模式 */
30
+ extraActions?: React.ReactNode;
31
+ className?: string;
32
+ }
33
+ export declare function FloorMapEditTopBar(props: FloorMapEditTopBarProps): JSX.Element;
34
+ export default FloorMapEditTopBar;