@pisell/materials 1.0.1059 → 1.0.1060

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 +26 -26
  12. package/es/components/PisellLayouts/index.d.ts +2 -1
  13. package/es/components/PisellLayouts/index.js +3 -1
  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 +468 -201
  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 +494 -63
  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 +444 -0
  34. package/es/components/pisellFloorMapLayout/components/FloorMapEditPanel.less +153 -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 +32 -6
  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 +27 -0
  57. package/es/components/pisellFloorMapLayout/hooks/useFloorMapEditState.d.ts +60 -0
  58. package/es/components/pisellFloorMapLayout/hooks/useFloorMapEditState.js +436 -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 +281 -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 +346 -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 +70 -18
  110. package/es/components/pisellRecordBoard/PisellRecordBoard.stories.d.ts +4 -0
  111. package/es/components/pisellRecordBoard/PisellRecordBoard.stories.js +1276 -344
  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 +53 -6
  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 +99 -19
  124. package/es/components/pisellRecordBoard/types.d.ts +55 -1
  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 +512 -0
  150. package/es/components/pisellTimeNavigator/PisellTimeNavigator.less +378 -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 +145 -0
  178. package/es/components/pisellTimeNavigator/types.js +1 -0
  179. package/es/components/pisellTimeNavigator/utils/index.d.ts +26 -0
  180. package/es/components/pisellTimeNavigator/utils/index.js +102 -0
  181. package/es/index.d.ts +15 -5
  182. package/es/index.js +23 -17
  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 +562 -180
  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 +434 -0
  210. package/lib/components/pisellFloorMapLayout/components/FloorMapEditPanel.less +153 -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 +46 -0
  232. package/lib/components/pisellFloorMapLayout/hooks/useFloorMapEditState.d.ts +60 -0
  233. package/lib/components/pisellFloorMapLayout/hooks/useFloorMapEditState.js +429 -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 +263 -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 +346 -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 +54 -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 +87 -6
  296. package/lib/components/pisellRecordBoard/types.d.ts +55 -1
  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 +602 -0
  321. package/lib/components/pisellTimeNavigator/PisellTimeNavigator.less +378 -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 +145 -0
  349. package/lib/components/pisellTimeNavigator/types.js +17 -0
  350. package/lib/components/pisellTimeNavigator/utils/index.d.ts +26 -0
  351. package/lib/components/pisellTimeNavigator/utils/index.js +98 -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 +3820 -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 +4 -4
@@ -0,0 +1,444 @@
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
+ className = props.className;
52
+ var _Form$useForm = Form.useForm(),
53
+ _Form$useForm2 = _slicedToArray(_Form$useForm, 1),
54
+ form = _Form$useForm2[0];
55
+ /** 忽略由 setFieldsValue 触发的 onValuesChange,避免误判「未应用」 */
56
+ var skipFormValuesChangeRef = useRef(false);
57
+ var _useState = useState(false),
58
+ _useState2 = _slicedToArray(_useState, 2),
59
+ formHasUnappliedChanges = _useState2[0],
60
+ setFormHasUnappliedChanges = _useState2[1];
61
+ var engineCtx = useEngineContext();
62
+ 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';
63
+ initFloorMapLayoutLocales(engineLocale);
64
+ var ep = useMemo(function () {
65
+ return {
66
+ elementProps: locales.getText("".concat(I18N_EP, ".element-props")),
67
+ closeAria: locales.getText("".concat(I18N_EP, ".close-aria")),
68
+ hintApply: locales.getText("".concat(I18N_EP, ".hint-apply")),
69
+ hintSave: locales.getText("".concat(I18N_EP, ".hint-save")),
70
+ sectionLayout: locales.getText("".concat(I18N_EP, ".section-layout")),
71
+ lockOn: locales.getText("".concat(I18N_EP, ".lock-on")),
72
+ lockOff: locales.getText("".concat(I18N_EP, ".lock-off")),
73
+ labelX: locales.getText("".concat(I18N_EP, ".label-x")),
74
+ labelY: locales.getText("".concat(I18N_EP, ".label-y")),
75
+ labelZ: locales.getText("".concat(I18N_EP, ".label-z")),
76
+ labelWidth: locales.getText("".concat(I18N_EP, ".label-width")),
77
+ labelHeight: locales.getText("".concat(I18N_EP, ".label-height")),
78
+ labelName: locales.getText("".concat(I18N_EP, ".label-name")),
79
+ labelNameStage: locales.getText("".concat(I18N_EP, ".label-name-stage")),
80
+ phNameStage: locales.getText("".concat(I18N_EP, ".ph-name-stage")),
81
+ phName: locales.getText("".concat(I18N_EP, ".ph-name")),
82
+ labelImageUrl: locales.getText("".concat(I18N_EP, ".label-image-url")),
83
+ extraImageUrl: locales.getText("".concat(I18N_EP, ".extra-image-url")),
84
+ phHttps: locales.getText("".concat(I18N_EP, ".ph-https")),
85
+ labelCanvas: locales.getText("".concat(I18N_EP, ".label-canvas")),
86
+ apply: locales.getText("".concat(I18N_EP, ".apply")),
87
+ dataBinding: locales.getText("".concat(I18N_EP, ".data-binding")),
88
+ dataBindingNote: locales.getText("".concat(I18N_EP, ".data-binding-note")),
89
+ labelDataSource: locales.getText("".concat(I18N_EP, ".label-data-source")),
90
+ phDataSource: locales.getText("".concat(I18N_EP, ".ph-data-source")),
91
+ labelPickRow: locales.getText("".concat(I18N_EP, ".label-pick-row")),
92
+ phPickRow: locales.getText("".concat(I18N_EP, ".ph-pick-row")),
93
+ phNoRows: locales.getText("".concat(I18N_EP, ".ph-no-rows")),
94
+ hintUnbound: locales.getText("".concat(I18N_EP, ".hint-unbound")),
95
+ recordTitle: locales.getText("".concat(I18N_EP, ".record-title")),
96
+ popTitle: locales.getText("".concat(I18N_EP, ".pop-title")),
97
+ popDesc: locales.getText("".concat(I18N_EP, ".pop-desc")),
98
+ btnDelete: locales.getText("".concat(I18N_EP, ".btn-delete")),
99
+ btnCancel: locales.getText("".concat(I18N_EP, ".btn-cancel")),
100
+ btnOkDelete: locales.getText("".concat(I18N_EP, ".btn-ok-delete"))
101
+ };
102
+ }, [engineLocale]);
103
+ var canvasOptions = config.canvases.filter(function (c) {
104
+ return c.enabled;
105
+ }).sort(function (a, b) {
106
+ return a.order - b.order;
107
+ });
108
+ var kindConfig = getElementKindConfig(config, sceneElement.elementKind);
109
+ var bindingPolicy = resolveDataBindingPolicy(kindConfig);
110
+ var allKeys = Object.keys(dataSources);
111
+ var allowedKeys = kindConfig !== null && kindConfig !== void 0 && (_kindConfig$allowedDa = kindConfig.allowedDataSourceKeys) !== null && _kindConfig$allowedDa !== void 0 && _kindConfig$allowedDa.length ? kindConfig.allowedDataSourceKeys.filter(function (k) {
112
+ return allKeys.includes(k);
113
+ }) : allKeys;
114
+ var isImageKind = sceneElement.elementKind === FLOOR_MAP_IMAGE_ELEMENT_KIND;
115
+ var layoutLocked = Boolean(sceneElement.layoutTransformLocked);
116
+ var initialValues = React.useMemo(function () {
117
+ var _sceneElement$name, _sceneElement$zIndex, _sceneElement$width, _sceneElement$height, _sceneElement$imageUr;
118
+ var dw = isImageKind ? 400 : 180;
119
+ var dh = isImageKind ? 240 : 120;
120
+ return {
121
+ x: sceneElement.x,
122
+ y: sceneElement.y,
123
+ name: (_sceneElement$name = sceneElement.name) !== null && _sceneElement$name !== void 0 ? _sceneElement$name : '',
124
+ zIndex: (_sceneElement$zIndex = sceneElement.zIndex) !== null && _sceneElement$zIndex !== void 0 ? _sceneElement$zIndex : 0,
125
+ width: (_sceneElement$width = sceneElement.width) !== null && _sceneElement$width !== void 0 ? _sceneElement$width : dw,
126
+ height: (_sceneElement$height = sceneElement.height) !== null && _sceneElement$height !== void 0 ? _sceneElement$height : dh,
127
+ canvasId: sceneElement.canvasId,
128
+ imageUrl: (_sceneElement$imageUr = sceneElement.imageUrl) !== null && _sceneElement$imageUr !== void 0 ? _sceneElement$imageUr : ''
129
+ };
130
+ }, [sceneElement, isImageKind]);
131
+ React.useEffect(function () {
132
+ setFormHasUnappliedChanges(false);
133
+ }, [itemId]);
134
+ React.useEffect(function () {
135
+ skipFormValuesChangeRef.current = true;
136
+ form.setFieldsValue(initialValues);
137
+ queueMicrotask(function () {
138
+ skipFormValuesChangeRef.current = false;
139
+ setFormHasUnappliedChanges(false);
140
+ });
141
+ }, [itemId, initialValues, form]);
142
+ var handleFinish = useCallback(function (values) {
143
+ var name = values.name != null ? String(values.name).trim() || undefined : undefined;
144
+ var patch = {
145
+ name: name,
146
+ canvasId: String(values.canvasId)
147
+ };
148
+ if (isImageKind) {
149
+ var _values$imageUrl;
150
+ var url = String((_values$imageUrl = values.imageUrl) !== null && _values$imageUrl !== void 0 ? _values$imageUrl : '').trim();
151
+ patch.imageUrl = url || undefined;
152
+ }
153
+ if (!layoutLocked) {
154
+ patch.x = Number(values.x);
155
+ patch.y = Number(values.y);
156
+ patch.zIndex = values.zIndex != null ? Number(values.zIndex) : undefined;
157
+ var w = Number(values.width);
158
+ var h = Number(values.height);
159
+ patch.width = Number.isFinite(w) ? Math.max(20, w) : undefined;
160
+ patch.height = Number.isFinite(h) ? Math.max(20, h) : undefined;
161
+ }
162
+ onUpdate(patch);
163
+ setFormHasUnappliedChanges(false);
164
+ }, [onUpdate, isImageKind, layoutLocked]);
165
+ var binding = sceneElement.dataBinding;
166
+ 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) {
167
+ return r.id === binding.recordId;
168
+ })) !== null && _dataSources$binding$ !== void 0 ? _dataSources$binding$ : {} : {};
169
+ var dataRecordBindOptions = useMemo(function () {
170
+ var _binding$dataSourceKe, _dataSources$key, _config$sceneElements;
171
+ if (bindingPolicy === 'none') return [];
172
+ var key = (_binding$dataSourceKe = binding === null || binding === void 0 ? void 0 : binding.dataSourceKey) !== null && _binding$dataSourceKe !== void 0 ? _binding$dataSourceKe : allowedKeys[0];
173
+ if (!key) return [];
174
+ var list = (_dataSources$key = dataSources[key]) !== null && _dataSources$key !== void 0 ? _dataSources$key : [];
175
+ if (!list.length) return [];
176
+ var usedByOther = new Set(((_config$sceneElements = config.sceneElements) !== null && _config$sceneElements !== void 0 ? _config$sceneElements : []).filter(function (e) {
177
+ var _e$dataBinding;
178
+ return e.instanceId !== sceneElement.instanceId && ((_e$dataBinding = e.dataBinding) === null || _e$dataBinding === void 0 ? void 0 : _e$dataBinding.dataSourceKey) === key;
179
+ }).map(function (e) {
180
+ return e.dataBinding.recordId;
181
+ }));
182
+ return list.filter(function (r) {
183
+ return !usedByOther.has(r.id) || r.id === (binding === null || binding === void 0 ? void 0 : binding.recordId);
184
+ }).map(function (r) {
185
+ return {
186
+ value: r.id,
187
+ label: formatDataRecordOptionLabel(r)
188
+ };
189
+ });
190
+ }, [bindingPolicy, binding, allowedKeys, dataSources, config.sceneElements, sceneElement.instanceId]);
191
+ var hasBoundDataRecord = Boolean(binding && ((_dataSources$binding$3 = dataSources[binding.dataSourceKey]) !== null && _dataSources$binding$3 !== void 0 ? _dataSources$binding$3 : []).some(function (r) {
192
+ return r.id === binding.recordId;
193
+ }));
194
+ var recordFormSlotRaw = binding ? dataSourceRecordForm === null || dataSourceRecordForm === void 0 ? void 0 : dataSourceRecordForm[binding.dataSourceKey] : undefined;
195
+ var hasCustomRecordForm = recordFormSlotRaw !== undefined && recordFormSlotRaw !== null && recordFormSlotRaw !== false;
196
+ var showDataBindingSection = bindingPolicy !== 'none';
197
+ /** 仅在实际绑定到某一行时展示「数据源记录」,避免仅选数据源、recordId 为空时误展示空表单 */
198
+ var showDataSourceRecordBlock = hasBoundDataRecord && Boolean(binding) && (onSaveRecord != null || hasCustomRecordForm);
199
+ var recordFormContext = useMemo(function () {
200
+ if (!binding) return null;
201
+ return {
202
+ dataSourceKey: binding.dataSourceKey,
203
+ recordId: binding.recordId,
204
+ record: record,
205
+ dataSources: dataSources,
206
+ sceneElement: sceneElement,
207
+ config: config,
208
+ savingRecord: savingRecord !== null && savingRecord !== void 0 ? savingRecord : false,
209
+ onSaveRecord: onSaveRecord ? function (newData) {
210
+ return onSaveRecord(binding.dataSourceKey, binding.recordId, newData);
211
+ } : undefined
212
+ };
213
+ }, [binding, record, dataSources, sceneElement, config, savingRecord, onSaveRecord]);
214
+ var isStageLike = sceneElement.elementKind === FLOOR_MAP_STAGE_ELEMENT_KIND;
215
+ var toggleLayoutLock = function toggleLayoutLock() {
216
+ onUpdate({
217
+ layoutTransformLocked: !sceneElement.layoutTransformLocked
218
+ });
219
+ };
220
+ return /*#__PURE__*/React.createElement("div", {
221
+ className: classNames("".concat(PREFIX, "-edit-panel"), className)
222
+ }, /*#__PURE__*/React.createElement("div", {
223
+ className: "".concat(PREFIX, "-edit-panel-header")
224
+ }, /*#__PURE__*/React.createElement("span", null, ep.elementProps), /*#__PURE__*/React.createElement(Button, {
225
+ type: "text",
226
+ size: "small",
227
+ className: "".concat(PREFIX, "-edit-panel-close"),
228
+ icon: /*#__PURE__*/React.createElement(CloseOutlined, null),
229
+ "aria-label": ep.closeAria,
230
+ onClick: onClose
231
+ })), (formHasUnappliedChanges || layoutDraftDirty) && /*#__PURE__*/React.createElement("div", {
232
+ className: "".concat(PREFIX, "-edit-panel-hints"),
233
+ role: "status"
234
+ }, formHasUnappliedChanges ? /*#__PURE__*/React.createElement("p", {
235
+ className: "".concat(PREFIX, "-edit-panel-hint warn")
236
+ }, ep.hintApply) : null, layoutDraftDirty ? /*#__PURE__*/React.createElement("p", {
237
+ className: "".concat(PREFIX, "-edit-panel-hint muted")
238
+ }, ep.hintSave) : null), /*#__PURE__*/React.createElement(Form, {
239
+ form: form,
240
+ layout: "vertical",
241
+ size: "small",
242
+ onFinish: handleFinish,
243
+ initialValues: initialValues,
244
+ onValuesChange: function onValuesChange() {
245
+ if (skipFormValuesChangeRef.current) return;
246
+ setFormHasUnappliedChanges(true);
247
+ }
248
+ }, /*#__PURE__*/React.createElement("div", {
249
+ className: "".concat(PREFIX, "-edit-panel-layout-lock-header")
250
+ }, /*#__PURE__*/React.createElement("span", {
251
+ className: "".concat(PREFIX, "-edit-panel-layout-lock-title")
252
+ }, ep.sectionLayout), /*#__PURE__*/React.createElement(Button, {
253
+ type: "text",
254
+ size: "small",
255
+ className: "".concat(PREFIX, "-edit-panel-layout-lock-btn"),
256
+ icon: layoutLocked ? /*#__PURE__*/React.createElement(LockOutlined, null) : /*#__PURE__*/React.createElement(UnlockOutlined, null),
257
+ "aria-pressed": layoutLocked,
258
+ onClick: toggleLayoutLock,
259
+ title: layoutLocked ? ep.lockOn : ep.lockOff
260
+ })), /*#__PURE__*/React.createElement("div", {
261
+ className: "".concat(PREFIX, "-edit-panel-xy-row")
262
+ }, /*#__PURE__*/React.createElement(Form.Item, {
263
+ name: "x",
264
+ label: ep.labelX
265
+ }, /*#__PURE__*/React.createElement(InputNumber, {
266
+ style: {
267
+ width: '100%'
268
+ },
269
+ min: 0,
270
+ disabled: layoutLocked
271
+ })), /*#__PURE__*/React.createElement(Form.Item, {
272
+ name: "y",
273
+ label: ep.labelY
274
+ }, /*#__PURE__*/React.createElement(InputNumber, {
275
+ style: {
276
+ width: '100%'
277
+ },
278
+ min: 0,
279
+ disabled: layoutLocked
280
+ })), /*#__PURE__*/React.createElement(Form.Item, {
281
+ name: "zIndex",
282
+ label: ep.labelZ
283
+ }, /*#__PURE__*/React.createElement(InputNumber, {
284
+ style: {
285
+ width: '100%'
286
+ },
287
+ disabled: layoutLocked
288
+ }))), /*#__PURE__*/React.createElement("div", {
289
+ className: "".concat(PREFIX, "-edit-panel-size-row")
290
+ }, /*#__PURE__*/React.createElement(Form.Item, {
291
+ name: "width",
292
+ label: ep.labelWidth
293
+ }, /*#__PURE__*/React.createElement(InputNumber, {
294
+ style: {
295
+ width: '100%'
296
+ },
297
+ min: 20,
298
+ disabled: layoutLocked
299
+ })), /*#__PURE__*/React.createElement(Form.Item, {
300
+ name: "height",
301
+ label: ep.labelHeight
302
+ }, /*#__PURE__*/React.createElement(InputNumber, {
303
+ style: {
304
+ width: '100%'
305
+ },
306
+ min: 20,
307
+ disabled: layoutLocked
308
+ }))), /*#__PURE__*/React.createElement(Form.Item, {
309
+ name: "name",
310
+ label: isStageLike ? ep.labelNameStage : ep.labelName
311
+ }, /*#__PURE__*/React.createElement(Input, {
312
+ placeholder: isStageLike ? ep.phNameStage : ep.phName,
313
+ allowClear: true
314
+ })), isImageKind ? /*#__PURE__*/React.createElement(Form.Item, {
315
+ name: "imageUrl",
316
+ label: ep.labelImageUrl,
317
+ extra: ep.extraImageUrl
318
+ }, /*#__PURE__*/React.createElement(Input, {
319
+ allowClear: true,
320
+ placeholder: ep.phHttps
321
+ })) : null, /*#__PURE__*/React.createElement(Form.Item, {
322
+ name: "canvasId",
323
+ label: ep.labelCanvas
324
+ }, /*#__PURE__*/React.createElement(Select, {
325
+ options: canvasOptions.map(function (c) {
326
+ return {
327
+ value: c.id,
328
+ label: getFloorMapCanvasDisplayName(c, engineLocale)
329
+ };
330
+ }),
331
+ allowClear: false
332
+ })), /*#__PURE__*/React.createElement(Form.Item, null, /*#__PURE__*/React.createElement(Button, {
333
+ type: "primary",
334
+ htmlType: "submit",
335
+ size: "small"
336
+ }, ep.apply))), showDataBindingSection && /*#__PURE__*/React.createElement("div", {
337
+ className: "".concat(PREFIX, "-edit-panel-record")
338
+ }, /*#__PURE__*/React.createElement("div", {
339
+ className: "".concat(PREFIX, "-edit-panel-record-title")
340
+ }, ep.dataBinding), /*#__PURE__*/React.createElement("p", {
341
+ className: "".concat(PREFIX, "-edit-panel-record-draft-note")
342
+ }, ep.dataBindingNote), allowedKeys.length >= 1 ? /*#__PURE__*/React.createElement("div", {
343
+ className: "".concat(PREFIX, "-edit-panel-record-bind")
344
+ }, /*#__PURE__*/React.createElement("div", {
345
+ className: "".concat(PREFIX, "-edit-panel-record-bind-label")
346
+ }, ep.labelDataSource), /*#__PURE__*/React.createElement(Select, {
347
+ size: "small",
348
+ style: {
349
+ width: '100%'
350
+ },
351
+ placeholder: ep.phDataSource,
352
+ value: binding === null || binding === void 0 ? void 0 : binding.dataSourceKey,
353
+ options: allowedKeys.map(function (k) {
354
+ var _dataSourceLabels$k;
355
+ return {
356
+ value: k,
357
+ label: (_dataSourceLabels$k = dataSourceLabels[k]) !== null && _dataSourceLabels$k !== void 0 ? _dataSourceLabels$k : k
358
+ };
359
+ }),
360
+ onChange: function onChange(key) {
361
+ if (!key && bindingPolicy === 'optional') {
362
+ onUpdate({
363
+ dataBinding: undefined
364
+ });
365
+ return;
366
+ }
367
+ if (!key) return;
368
+ onUpdate({
369
+ dataBinding: {
370
+ dataSourceKey: key,
371
+ recordId: (binding === null || binding === void 0 ? void 0 : binding.dataSourceKey) === key ? binding.recordId : ''
372
+ }
373
+ });
374
+ },
375
+ allowClear: bindingPolicy === 'optional'
376
+ })) : null, allowedKeys.length >= 1 && /*#__PURE__*/React.createElement("div", {
377
+ className: "".concat(PREFIX, "-edit-panel-record-bind")
378
+ }, /*#__PURE__*/React.createElement("div", {
379
+ className: "".concat(PREFIX, "-edit-panel-record-bind-label")
380
+ }, ep.labelPickRow), /*#__PURE__*/React.createElement(Select, {
381
+ size: "small",
382
+ placeholder: dataRecordBindOptions.length ? ep.phPickRow : ep.phNoRows,
383
+ style: {
384
+ width: '100%'
385
+ },
386
+ value: hasBoundDataRecord ? binding === null || binding === void 0 ? void 0 : binding.recordId : undefined,
387
+ allowClear: bindingPolicy === 'optional',
388
+ options: dataRecordBindOptions,
389
+ onChange: function onChange(newId) {
390
+ var _binding$dataSourceKe2, _dataSources$key2, _name;
391
+ var key = (_binding$dataSourceKe2 = binding === null || binding === void 0 ? void 0 : binding.dataSourceKey) !== null && _binding$dataSourceKe2 !== void 0 ? _binding$dataSourceKe2 : allowedKeys[0];
392
+ if (!key) return;
393
+ if (!newId) {
394
+ onUpdate({
395
+ dataBinding: undefined
396
+ });
397
+ return;
398
+ }
399
+ var row = ((_dataSources$key2 = dataSources[key]) !== null && _dataSources$key2 !== void 0 ? _dataSources$key2 : []).find(function (r) {
400
+ return r.id === newId;
401
+ });
402
+ onUpdate({
403
+ dataBinding: {
404
+ dataSourceKey: key,
405
+ recordId: newId
406
+ },
407
+ name: row ? String((_name = row.name) !== null && _name !== void 0 ? _name : newId) : undefined
408
+ });
409
+ }
410
+ }), !hasBoundDataRecord && /*#__PURE__*/React.createElement("p", {
411
+ className: "".concat(PREFIX, "-edit-panel-record-bind-hint")
412
+ }, ep.hintUnbound))), showDataSourceRecordBlock && binding && /*#__PURE__*/React.createElement("div", {
413
+ className: "".concat(PREFIX, "-edit-panel-record")
414
+ }, /*#__PURE__*/React.createElement("div", {
415
+ className: "".concat(PREFIX, "-edit-panel-record-title")
416
+ }, ep.recordTitle), hasCustomRecordForm && recordFormContext && recordFormSlotRaw != null ? /*#__PURE__*/React.createElement("div", {
417
+ className: "".concat(PREFIX, "-edit-panel-record-custom")
418
+ }, resolveDataSourceRecordForm(recordFormSlotRaw, recordFormContext)) : null, !hasCustomRecordForm && onSaveRecord ? /*#__PURE__*/React.createElement(FloorMapDataForm, {
419
+ dataSourceKey: binding.dataSourceKey,
420
+ recordId: binding.recordId,
421
+ record: record,
422
+ dataSources: dataSources,
423
+ onSave: onSaveRecord,
424
+ saving: savingRecord,
425
+ columns: recordFormColumns === null || recordFormColumns === void 0 ? void 0 : recordFormColumns[binding.dataSourceKey]
426
+ }) : null), config.canvasUi.canEdit && onDelete ? /*#__PURE__*/React.createElement("div", {
427
+ className: "".concat(PREFIX, "-edit-panel-footer")
428
+ }, /*#__PURE__*/React.createElement(Popconfirm, {
429
+ title: ep.popTitle,
430
+ description: ep.popDesc,
431
+ onConfirm: onDelete,
432
+ okText: ep.btnOkDelete,
433
+ cancelText: ep.btnCancel,
434
+ okButtonProps: {
435
+ danger: true
436
+ }
437
+ }, /*#__PURE__*/React.createElement(Button, {
438
+ type: "default",
439
+ danger: true,
440
+ block: true,
441
+ size: "small"
442
+ }, ep.btnDelete))) : null);
443
+ }
444
+ export default FloorMapEditPanel;
@@ -0,0 +1,153 @@
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
+
11
+ &-header {
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: space-between;
15
+ gap: 8px;
16
+ margin-bottom: 12px;
17
+ font-weight: 500;
18
+ }
19
+
20
+ &-close {
21
+ flex-shrink: 0;
22
+ color: rgba(0, 0, 0, 0.45);
23
+
24
+ &:hover {
25
+ color: rgba(0, 0, 0, 0.88);
26
+ }
27
+ }
28
+
29
+ &-footer {
30
+ margin-top: 16px;
31
+ padding-top: 16px;
32
+ border-top: 1px solid #f0f0f0;
33
+ }
34
+
35
+ &-record-custom {
36
+ margin-top: 8px;
37
+ }
38
+
39
+ &-layout-lock-header {
40
+ display: flex;
41
+ align-items: center;
42
+ justify-content: space-between;
43
+ gap: 8px;
44
+ margin-bottom: 8px;
45
+ }
46
+
47
+ &-layout-lock-title {
48
+ font-size: 12px;
49
+ font-weight: 600;
50
+ color: #434343;
51
+ }
52
+
53
+ &-layout-lock-btn {
54
+ flex-shrink: 0;
55
+ color: rgba(0, 0, 0, 0.55);
56
+ }
57
+
58
+ /* X、Y、层级 同一行 */
59
+
60
+ &-xy-row {
61
+ display: flex;
62
+ gap: 8px;
63
+ align-items: flex-start;
64
+
65
+ .ant-form-item {
66
+ flex: 1;
67
+ min-width: 0;
68
+ }
69
+ }
70
+
71
+ &-size-row {
72
+ display: flex;
73
+ gap: 8px;
74
+ align-items: flex-start;
75
+ margin-bottom: 8px;
76
+
77
+ .ant-form-item {
78
+ flex: 1;
79
+ min-width: 0;
80
+ }
81
+ }
82
+
83
+ &-record-bind {
84
+ margin-bottom: 12px;
85
+ }
86
+
87
+ &-record-bind-label {
88
+ font-size: 12px;
89
+ font-weight: 600;
90
+ color: #434343;
91
+ margin-bottom: 6px;
92
+ }
93
+
94
+ &-record-bind-hint {
95
+ margin: 8px 0 0;
96
+ font-size: 12px;
97
+ color: #8c8c8c;
98
+ line-height: 1.5;
99
+ }
100
+
101
+ &-hints {
102
+ margin-bottom: 10px;
103
+ }
104
+
105
+ &-hint {
106
+ margin: 0 0 6px;
107
+ font-size: 12px;
108
+ line-height: 1.45;
109
+
110
+ &:last-child {
111
+ margin-bottom: 0;
112
+ }
113
+
114
+ &.warn {
115
+ color: #ad6800;
116
+ padding: 6px 8px;
117
+ background: #fffbe6;
118
+ border-radius: 6px;
119
+ border: 1px solid #ffe58f;
120
+ }
121
+
122
+ &.muted {
123
+ margin-top: 4px;
124
+ color: #595959;
125
+ }
126
+ }
127
+
128
+ &-record-draft-note {
129
+ margin: 0 0 10px;
130
+ font-size: 11px;
131
+ color: #8c8c8c;
132
+ line-height: 1.45;
133
+ }
134
+ }
135
+
136
+ /* 父 wrap 根据画布限制高度时,面板填满 wrap 并内部滚动 */
137
+ .pisell-floor-map-layout-edit-panel-wrap-constrained .pisell-floor-map-layout-edit-panel {
138
+ height: 100%;
139
+ max-height: 100%;
140
+ box-sizing: border-box;
141
+
142
+ &-record {
143
+ margin-top: 16px;
144
+ padding-top: 16px;
145
+ border-top: 1px solid #f0f0f0;
146
+ }
147
+
148
+ &-record-title {
149
+ font-size: 14px;
150
+ font-weight: 500;
151
+ margin-bottom: 8px;
152
+ }
153
+ }
@@ -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;