@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,438 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ var _excluded = ["x", "y", "zIndex", "width", "height"];
3
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
4
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
5
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
9
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
11
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
12
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
13
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
14
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
15
+ 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."); }
16
+ 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); }
17
+ 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; }
18
+ 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; } }
19
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
20
+ /**
21
+ * 平面图编辑态:草稿配置、画布 Tab、选中、放置模式、落点、侧栏更新/删除/保存记录
22
+ */
23
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
24
+ import { message } from 'antd';
25
+ import { locales } from '@pisell/utils';
26
+ import useEngineContext from "../../../hooks/useEngineContext";
27
+ import { createTranslationText } from "../../translation/utils";
28
+ import { mergeCanvasItems } from "../utils/floorMapConfigMerge";
29
+ import { STAGE_DECO_DEFAULT } from "../utils/floorMapStageDefaults";
30
+ import { floorMapViewConfigsEqual, normalizeFloorMapViewConfigFromProp } from "../utils/floorMapViewConfigDiff";
31
+ import { getElementKindConfig, resolveDataBindingPolicy } from "../utils/floorMapElementKindUtils";
32
+ import { DEFAULT_CELL_SIZE } from "../utils/layoutMeasurements";
33
+ import { initFloorMapLayoutLocales } from "../utils/floorMapCanvasDisplay";
34
+ import { FLOOR_MAP_IMAGE_ELEMENT_KIND, FLOOR_MAP_STAGE_ELEMENT_KIND } from "../types";
35
+ var IMAGE_PLACE_DEFAULT = {
36
+ width: 400,
37
+ height: 240
38
+ };
39
+ function newInstanceId() {
40
+ return "elm_".concat(Date.now(), "_").concat(Math.random().toString(36).slice(2, 9));
41
+ }
42
+ function duplicateBinding(elements, binding, exceptInstanceId) {
43
+ return (elements !== null && elements !== void 0 ? elements : []).some(function (e) {
44
+ var _e$dataBinding, _e$dataBinding2;
45
+ return e.instanceId !== exceptInstanceId && ((_e$dataBinding = e.dataBinding) === null || _e$dataBinding === void 0 ? void 0 : _e$dataBinding.dataSourceKey) === binding.dataSourceKey && ((_e$dataBinding2 = e.dataBinding) === null || _e$dataBinding2 === void 0 ? void 0 : _e$dataBinding2.recordId) === binding.recordId;
46
+ });
47
+ }
48
+ export function useFloorMapEditState(params) {
49
+ var _engineCtx$engine;
50
+ var floorMapConfigProp = params.floorMapConfigProp,
51
+ isFloorMapView = params.isFloorMapView,
52
+ itemsProp = params.itemsProp,
53
+ cellSizeProp = params.cellSizeProp,
54
+ dataSources = params.dataSources,
55
+ onSave = params.onSave,
56
+ onDataSourceRecordSave = params.onDataSourceRecordSave,
57
+ dataSourceFormColumns = params.dataSourceFormColumns,
58
+ dataSourceRecordForm = params.dataSourceRecordForm,
59
+ dataSourceLabels = params.dataSourceLabels,
60
+ layoutPrefix = params.layoutPrefix,
61
+ contentOffsetRef = params.contentOffsetRef,
62
+ showDataSourceRecordFormBlock = params.showDataSourceRecordFormBlock;
63
+ var engineCtx = useEngineContext();
64
+ 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';
65
+ var _useState = useState(null),
66
+ _useState2 = _slicedToArray(_useState, 2),
67
+ draftConfig = _useState2[0],
68
+ setDraftConfig = _useState2[1];
69
+ var _useState3 = useState(null),
70
+ _useState4 = _slicedToArray(_useState3, 2),
71
+ currentCanvasId = _useState4[0],
72
+ setCurrentCanvasId = _useState4[1];
73
+ var _useState5 = useState(null),
74
+ _useState6 = _slicedToArray(_useState5, 2),
75
+ selectedId = _useState6[0],
76
+ setSelectedId = _useState6[1];
77
+ var _useState7 = useState(null),
78
+ _useState8 = _slicedToArray(_useState7, 2),
79
+ placeMode = _useState8[0],
80
+ setPlaceMode = _useState8[1];
81
+ var _useState9 = useState(false),
82
+ _useState10 = _slicedToArray(_useState9, 2),
83
+ saving = _useState10[0],
84
+ setSaving = _useState10[1];
85
+ var _useState11 = useState(false),
86
+ _useState12 = _slicedToArray(_useState11, 2),
87
+ savingRecord = _useState12[0],
88
+ setSavingRecord = _useState12[1];
89
+ var config = isFloorMapView ? draftConfig !== null && draftConfig !== void 0 ? draftConfig : floorMapConfigProp : null;
90
+ var configRef = useRef(config);
91
+ configRef.current = config;
92
+ useEffect(function () {
93
+ if (!floorMapConfigProp) return;
94
+ var nextConfig = normalizeFloorMapViewConfigFromProp(floorMapConfigProp);
95
+ setDraftConfig(nextConfig);
96
+ var enabled = nextConfig.canvases.filter(function (c) {
97
+ return c.enabled;
98
+ }).sort(function (a, b) {
99
+ return a.order - b.order;
100
+ });
101
+ setCurrentCanvasId(function (prev) {
102
+ var _enabled$0$id, _enabled$;
103
+ return prev && enabled.some(function (c) {
104
+ return c.id === prev;
105
+ }) ? prev : (_enabled$0$id = (_enabled$ = enabled[0]) === null || _enabled$ === void 0 ? void 0 : _enabled$.id) !== null && _enabled$0$id !== void 0 ? _enabled$0$id : null;
106
+ });
107
+ }, [floorMapConfigProp]);
108
+
109
+ /** 当前草稿与上游持久化 `floorMapConfig`(经同等规范化)是否不一致 */
110
+ var isLayoutDirty = useMemo(function () {
111
+ if (!isFloorMapView || !draftConfig || !floorMapConfigProp) return false;
112
+ var baseline = normalizeFloorMapViewConfigFromProp(floorMapConfigProp);
113
+ return !floorMapViewConfigsEqual(draftConfig, baseline);
114
+ }, [isFloorMapView, draftConfig, floorMapConfigProp]);
115
+ var handleAddCanvas = useCallback(function () {
116
+ initFloorMapLayoutLocales(engineLocale);
117
+ var label = locales.getText('pisell-floor-map-layout.canvas-tabs.default-new-canvas-name');
118
+ var defaultName = createTranslationText(label, true);
119
+ var newId = "floor_".concat(Date.now());
120
+ var newCanvas = {
121
+ id: newId,
122
+ name: defaultName,
123
+ order: 0,
124
+ enabled: true
125
+ };
126
+ setDraftConfig(function (prev) {
127
+ if (!prev) return prev;
128
+ var list = prev.canvases.filter(function (c) {
129
+ return c.enabled;
130
+ }).sort(function (a, b) {
131
+ return a.order - b.order;
132
+ });
133
+ newCanvas.order = list.length > 0 ? Math.max.apply(Math, _toConsumableArray(list.map(function (c) {
134
+ return c.order;
135
+ }))) + 1 : 0;
136
+ return _objectSpread(_objectSpread({}, prev), {}, {
137
+ canvases: [].concat(_toConsumableArray(prev.canvases), [newCanvas])
138
+ });
139
+ });
140
+ setCurrentCanvasId(newId);
141
+ }, [engineLocale]);
142
+ var handleRemoveCanvas = useCallback(function (canvasId) {
143
+ setDraftConfig(function (prev) {
144
+ var _prev$sceneElements;
145
+ if (!prev) return prev;
146
+ var nextCanvases = prev.canvases.filter(function (c) {
147
+ return c.id !== canvasId;
148
+ });
149
+ if (nextCanvases.length === 0) return prev;
150
+ return _objectSpread(_objectSpread({}, prev), {}, {
151
+ canvases: nextCanvases,
152
+ sceneElements: ((_prev$sceneElements = prev.sceneElements) !== null && _prev$sceneElements !== void 0 ? _prev$sceneElements : []).filter(function (e) {
153
+ return e.canvasId !== canvasId;
154
+ })
155
+ });
156
+ });
157
+ setCurrentCanvasId(function (prev) {
158
+ var _enabled$0$id2, _enabled$2;
159
+ if (prev !== canvasId) return prev;
160
+ var cfg = configRef.current;
161
+ if (!cfg) return prev;
162
+ var enabled = cfg.canvases.filter(function (c) {
163
+ return c.id !== canvasId && c.enabled;
164
+ }).sort(function (a, b) {
165
+ return a.order - b.order;
166
+ });
167
+ return (_enabled$0$id2 = (_enabled$2 = enabled[0]) === null || _enabled$2 === void 0 ? void 0 : _enabled$2.id) !== null && _enabled$0$id2 !== void 0 ? _enabled$0$id2 : null;
168
+ });
169
+ }, []);
170
+ var handleRenameCanvas = useCallback(function (canvasId, name) {
171
+ if (typeof name === 'string') {
172
+ var trimmed = name.trim();
173
+ if (!trimmed) return;
174
+ setDraftConfig(function (prev) {
175
+ if (!prev) return prev;
176
+ return _objectSpread(_objectSpread({}, prev), {}, {
177
+ canvases: prev.canvases.map(function (c) {
178
+ return c.id === canvasId ? _objectSpread(_objectSpread({}, c), {}, {
179
+ name: trimmed,
180
+ nameKey: undefined
181
+ }) : c;
182
+ })
183
+ });
184
+ });
185
+ return;
186
+ }
187
+ var hasAny = Object.values(name).some(function (s) {
188
+ return typeof s === 'string' && s.trim();
189
+ });
190
+ if (!hasAny) return;
191
+ setDraftConfig(function (prev) {
192
+ if (!prev) return prev;
193
+ return _objectSpread(_objectSpread({}, prev), {}, {
194
+ canvases: prev.canvases.map(function (c) {
195
+ return c.id === canvasId ? _objectSpread(_objectSpread({}, c), {}, {
196
+ name: name,
197
+ nameKey: undefined
198
+ }) : c;
199
+ })
200
+ });
201
+ });
202
+ }, []);
203
+ var mergedItems = useMemo(function () {
204
+ if (!isFloorMapView || !config || !currentCanvasId) return [];
205
+ return mergeCanvasItems(currentCanvasId, config, cellSizeProp !== null && cellSizeProp !== void 0 ? cellSizeProp : DEFAULT_CELL_SIZE);
206
+ }, [isFloorMapView, config, currentCanvasId, cellSizeProp]);
207
+ var items = isFloorMapView ? mergedItems : itemsProp;
208
+ var updateDraftSceneElement = useCallback(function (instanceId, patch) {
209
+ setDraftConfig(function (prev) {
210
+ var _prev$sceneElements2, _prev$sceneElements3;
211
+ if (!prev) return prev;
212
+ var current = ((_prev$sceneElements2 = prev.sceneElements) !== null && _prev$sceneElements2 !== void 0 ? _prev$sceneElements2 : []).find(function (e) {
213
+ return e.instanceId === instanceId;
214
+ });
215
+ var normalized = _objectSpread({}, patch);
216
+ var unlocking = patch.layoutTransformLocked === false;
217
+ if (current !== null && current !== void 0 && current.layoutTransformLocked && !unlocking) {
218
+ var _normalized = normalized,
219
+ _x = _normalized.x,
220
+ _y = _normalized.y,
221
+ _z = _normalized.zIndex,
222
+ _w = _normalized.width,
223
+ _h = _normalized.height,
224
+ rest = _objectWithoutProperties(_normalized, _excluded);
225
+ normalized = rest;
226
+ }
227
+ if (normalized.x !== undefined) normalized.x = Math.round(normalized.x);
228
+ if (normalized.y !== undefined) normalized.y = Math.round(normalized.y);
229
+ if (normalized.width !== undefined) normalized.width = Math.round(normalized.width);
230
+ if (normalized.height !== undefined) normalized.height = Math.round(normalized.height);
231
+ var list = ((_prev$sceneElements3 = prev.sceneElements) !== null && _prev$sceneElements3 !== void 0 ? _prev$sceneElements3 : []).map(function (e) {
232
+ return e.instanceId === instanceId ? _objectSpread(_objectSpread({}, e), normalized) : e;
233
+ });
234
+ return _objectSpread(_objectSpread({}, prev), {}, {
235
+ sceneElements: list
236
+ });
237
+ });
238
+ }, []);
239
+ var handleUpdateItem = useCallback(function (itemId, patch) {
240
+ updateDraftSceneElement(itemId, patch);
241
+ }, [updateDraftSceneElement]);
242
+ var placeOverlayClass = "".concat(layoutPrefix, "-place-overlay");
243
+
244
+ /**
245
+ * 在内容坐标系下按「新建图元」模式落一条 sceneElement(点击落点与侧栏拖拽共用)
246
+ * @returns 是否已成功写入草稿(校验失败时为 false)
247
+ */
248
+ var applyScenePlacementAtCoords = useCallback(function (contentX, contentY, scene) {
249
+ var _kindConfig$allowedDa, _ref, _scene$dataSourceKey;
250
+ if (!config || !currentCanvasId) return false;
251
+ var defaultPlacementWidth = 180;
252
+ var defaultPlacementHeight = 120;
253
+ var defaultDecoSize = 48;
254
+ var kindConfig = getElementKindConfig(config, scene.elementKind);
255
+ var policy = resolveDataBindingPolicy(kindConfig);
256
+ var allKeys = Object.keys(dataSources !== null && dataSources !== void 0 ? dataSources : {});
257
+ var allowedKeys = kindConfig !== null && kindConfig !== void 0 && (_kindConfig$allowedDa = kindConfig.allowedDataSourceKeys) !== null && _kindConfig$allowedDa !== void 0 && _kindConfig$allowedDa.length ? kindConfig.allowedDataSourceKeys.filter(function (k) {
258
+ return allKeys.includes(k);
259
+ }) : allKeys;
260
+ var pickKey = (_ref = (_scene$dataSourceKey = scene.dataSourceKey) !== null && _scene$dataSourceKey !== void 0 ? _scene$dataSourceKey : allowedKeys[0]) !== null && _ref !== void 0 ? _ref : allKeys[0];
261
+ var dataBinding;
262
+ if (policy !== 'none' && pickKey) {
263
+ var _dataSources$pickKey;
264
+ var dsList = (_dataSources$pickKey = dataSources === null || dataSources === void 0 ? void 0 : dataSources[pickKey]) !== null && _dataSources$pickKey !== void 0 ? _dataSources$pickKey : [];
265
+ if (dsList.length === 0) {
266
+ dataBinding = {
267
+ dataSourceKey: pickKey,
268
+ recordId: "new_".concat(Date.now())
269
+ };
270
+ } else if (!scene.recordId) {
271
+ if (policy === 'required') {
272
+ message.warning('请先在侧栏选择数据源与数据行,再落位');
273
+ return false;
274
+ }
275
+ } else {
276
+ var record = dsList.find(function (r) {
277
+ return r.id === scene.recordId;
278
+ });
279
+ if (!record) {
280
+ message.error('所选记录不存在,请重新选择数据行');
281
+ return false;
282
+ }
283
+ var cand = {
284
+ dataSourceKey: pickKey,
285
+ recordId: scene.recordId
286
+ };
287
+ if (duplicateBinding(config.sceneElements, cand)) {
288
+ message.warning('该数据记录已在平面图中绑定,请勿重复添加');
289
+ return false;
290
+ }
291
+ dataBinding = cand;
292
+ }
293
+ }
294
+ var isStage = scene.elementKind === FLOOR_MAP_STAGE_ELEMENT_KIND;
295
+ var isImage = scene.elementKind === FLOOR_MAP_IMAGE_ELEMENT_KIND;
296
+ var w = isImage ? IMAGE_PLACE_DEFAULT.width : isStage ? STAGE_DECO_DEFAULT.width : defaultPlacementWidth;
297
+ var h = isImage ? IMAGE_PLACE_DEFAULT.height : isStage ? STAGE_DECO_DEFAULT.height : defaultPlacementHeight;
298
+ var useDecoSize = policy === 'none' && scene.elementKind !== FLOOR_MAP_STAGE_ELEMENT_KIND && !isImage;
299
+ var placementName = function (_kindConfig$defaultPr, _kindConfig$defaultPr2) {
300
+ if (isStage) return STAGE_DECO_DEFAULT.name;
301
+ if (isImage) return '底图';
302
+ var db = dataBinding;
303
+ if (db && scene.recordId) {
304
+ var _dataSources$db$dataS, _row$name;
305
+ var row = dataSources === null || dataSources === void 0 || (_dataSources$db$dataS = dataSources[db.dataSourceKey]) === null || _dataSources$db$dataS === void 0 ? void 0 : _dataSources$db$dataS.find(function (r) {
306
+ return r.id === db.recordId;
307
+ });
308
+ return String((_row$name = row === null || row === void 0 ? void 0 : row.name) !== null && _row$name !== void 0 ? _row$name : db.recordId);
309
+ }
310
+ return (_kindConfig$defaultPr = kindConfig === null || kindConfig === void 0 || (_kindConfig$defaultPr2 = kindConfig.defaultPresentation) === null || _kindConfig$defaultPr2 === void 0 ? void 0 : _kindConfig$defaultPr2.title) !== null && _kindConfig$defaultPr !== void 0 ? _kindConfig$defaultPr : '';
311
+ }();
312
+ var newEl = _objectSpread({
313
+ instanceId: newInstanceId(),
314
+ canvasId: currentCanvasId,
315
+ x: contentX,
316
+ y: contentY,
317
+ name: placementName,
318
+ zIndex: isImage ? -5 : 0,
319
+ width: useDecoSize ? defaultDecoSize : w,
320
+ height: useDecoSize ? defaultDecoSize : h,
321
+ elementKind: scene.elementKind,
322
+ shape: isStage || isImage ? 'rect' : kindConfig === null || kindConfig === void 0 ? void 0 : kindConfig.defaultShape,
323
+ dataBinding: dataBinding
324
+ }, isImage ? {
325
+ imageUrl: ''
326
+ } : {});
327
+ setDraftConfig(function (prev) {
328
+ var _prev$sceneElements4;
329
+ return prev ? _objectSpread(_objectSpread({}, prev), {}, {
330
+ sceneElements: [].concat(_toConsumableArray((_prev$sceneElements4 = prev.sceneElements) !== null && _prev$sceneElements4 !== void 0 ? _prev$sceneElements4 : []), [newEl])
331
+ }) : prev;
332
+ });
333
+ return true;
334
+ }, [config, currentCanvasId, dataSources]);
335
+ var handleCanvasPlaceClick = useCallback(function (e) {
336
+ if (!placeMode || placeMode.type !== 'scene' || !config || !currentCanvasId) return;
337
+ var target = e.target;
338
+ if (!target.classList.contains(placeOverlayClass)) return;
339
+ var _contentOffsetRef$cur = contentOffsetRef.current,
340
+ ox = _contentOffsetRef$cur.x,
341
+ oy = _contentOffsetRef$cur.y;
342
+ var contentX = Math.round(e.nativeEvent.offsetX - ox);
343
+ var contentY = Math.round(e.nativeEvent.offsetY - oy);
344
+ if (applyScenePlacementAtCoords(contentX, contentY, placeMode)) {
345
+ setPlaceMode(null);
346
+ }
347
+ }, [placeMode, config, currentCanvasId, applyScenePlacementAtCoords, placeOverlayClass]);
348
+
349
+ /** 从左侧图元栏拖拽到画布落位(与点击落点规则一致) */
350
+ var placeSceneElementFromPaletteDrop = useCallback(function (contentX, contentY, scene) {
351
+ if (applyScenePlacementAtCoords(contentX, contentY, scene)) {
352
+ setPlaceMode(null);
353
+ }
354
+ }, [applyScenePlacementAtCoords]);
355
+ var handleSave = useCallback(function () {
356
+ if (!draftConfig || !onSave) return;
357
+ setSaving(true);
358
+ try {
359
+ onSave(draftConfig);
360
+ } finally {
361
+ setSaving(false);
362
+ }
363
+ }, [draftConfig, onSave]);
364
+ var handleEditPanelUpdate = useCallback(function (patch) {
365
+ if (!selectedId) return;
366
+ var bindingPatch = patch.dataBinding;
367
+ if (bindingPatch !== null && bindingPatch !== void 0 && bindingPatch.dataSourceKey && bindingPatch !== null && bindingPatch !== void 0 && bindingPatch.recordId) {
368
+ var _configRef$current;
369
+ var cand = bindingPatch;
370
+ if (duplicateBinding((_configRef$current = configRef.current) === null || _configRef$current === void 0 ? void 0 : _configRef$current.sceneElements, cand, selectedId)) {
371
+ message.warning('该数据记录已被其他图元绑定');
372
+ return;
373
+ }
374
+ }
375
+ updateDraftSceneElement(selectedId, patch);
376
+ }, [selectedId, updateDraftSceneElement]);
377
+ var handleSaveRecord = useCallback(function (dataSourceKey, id, newData) {
378
+ onDataSourceRecordSave === null || onDataSourceRecordSave === void 0 || onDataSourceRecordSave(dataSourceKey, id, newData);
379
+ setSavingRecord(true);
380
+ setTimeout(function () {
381
+ return setSavingRecord(false);
382
+ }, 500);
383
+ }, [onDataSourceRecordSave]);
384
+ var handleEditPanelDelete = useCallback(function () {
385
+ if (!selectedId) return;
386
+ setDraftConfig(function (prev) {
387
+ var _prev$sceneElements5;
388
+ if (!prev) return prev;
389
+ return _objectSpread(_objectSpread({}, prev), {}, {
390
+ sceneElements: ((_prev$sceneElements5 = prev.sceneElements) !== null && _prev$sceneElements5 !== void 0 ? _prev$sceneElements5 : []).filter(function (e) {
391
+ return e.instanceId !== selectedId;
392
+ })
393
+ });
394
+ });
395
+ setSelectedId(null);
396
+ }, [selectedId]);
397
+ var selectedItem = selectedId ? mergedItems.find(function (m) {
398
+ return m.id === selectedId;
399
+ }) : null;
400
+ var editPanelParams = selectedItem && config && selectedId ? {
401
+ itemId: selectedId,
402
+ sceneElement: selectedItem._sceneElement,
403
+ onUpdate: handleEditPanelUpdate,
404
+ onSaveRecord: onDataSourceRecordSave ? handleSaveRecord : undefined,
405
+ onClose: function onClose() {
406
+ return setSelectedId(null);
407
+ },
408
+ onDelete: config.canvasUi.canEdit ? handleEditPanelDelete : undefined,
409
+ recordFormColumns: dataSourceFormColumns,
410
+ dataSourceRecordForm: dataSourceRecordForm,
411
+ dataSourceLabels: dataSourceLabels,
412
+ layoutDraftDirty: isLayoutDirty,
413
+ showDataSourceRecordFormBlock: showDataSourceRecordFormBlock
414
+ } : null;
415
+ return {
416
+ config: config,
417
+ currentCanvasId: currentCanvasId,
418
+ setCurrentCanvasId: setCurrentCanvasId,
419
+ selectedId: selectedId,
420
+ setSelectedId: setSelectedId,
421
+ placeMode: placeMode,
422
+ setPlaceMode: setPlaceMode,
423
+ mergedItems: mergedItems,
424
+ items: items,
425
+ saving: saving,
426
+ savingRecord: savingRecord,
427
+ handleAddCanvas: handleAddCanvas,
428
+ handleRemoveCanvas: handleRemoveCanvas,
429
+ handleRenameCanvas: handleRenameCanvas,
430
+ handleUpdateItem: handleUpdateItem,
431
+ handleCanvasPlaceClick: handleCanvasPlaceClick,
432
+ handleSave: handleSave,
433
+ placeSceneElementFromPaletteDrop: placeSceneElementFromPaletteDrop,
434
+ editPanelParams: editPanelParams,
435
+ placeOverlayClass: placeOverlayClass,
436
+ isLayoutDirty: isLayoutDirty
437
+ };
438
+ }
@@ -0,0 +1,21 @@
1
+ import type { MutableRefObject, PointerEvent as ReactPointerEvent } from 'react';
2
+ import type { FloorMapPaletteDragPayload } from '../utils/floorMapDropUtils';
3
+ export interface UseFloorMapPaletteTouchDragParams {
4
+ enabled: boolean;
5
+ mapDropLayerRef: MutableRefObject<HTMLDivElement | null>;
6
+ contentWidth: number;
7
+ contentHeight: number;
8
+ contentOffsetRef: MutableRefObject<{
9
+ x: number;
10
+ y: number;
11
+ }>;
12
+ setMapPaletteDragActive: (v: boolean) => void;
13
+ onDropInScene: (payload: FloorMapPaletteDragPayload, sceneX: number, sceneY: number) => void;
14
+ }
15
+ export interface UseFloorMapPaletteTouchDragResult {
16
+ /** 挂在图元预览按钮上;mouse 不处理,交给 HTML5 DnD */
17
+ handlePaletteCardPointerDown: (payload: FloorMapPaletteDragPayload, e: ReactPointerEvent<HTMLElement>) => void;
18
+ /** 图元按钮 onClick 前检查:触摸拖放过则吞掉本次点击 */
19
+ consumeToolbarClickIfTouchDrag: () => boolean;
20
+ }
21
+ export declare function useFloorMapPaletteTouchDrag(params: UseFloorMapPaletteTouchDragParams): UseFloorMapPaletteTouchDragResult;
@@ -0,0 +1,122 @@
1
+ /**
2
+ * 触屏/笔:从左侧图元栏拖到画布的落点(HTML5 DragEvent + DataTransfer 在触摸上不可靠)
3
+ */
4
+ import { useCallback, useEffect, useRef } from 'react';
5
+ import { sceneXYFromContentDropOffset } from "../utils/floorMapDropUtils";
6
+ var DRAG_THRESHOLD_PX = 8;
7
+ var POINTER_MOVE_OPTS = {
8
+ capture: true,
9
+ passive: false
10
+ };
11
+ export function useFloorMapPaletteTouchDrag(params) {
12
+ var enabled = params.enabled,
13
+ mapDropLayerRef = params.mapDropLayerRef,
14
+ contentWidth = params.contentWidth,
15
+ contentHeight = params.contentHeight,
16
+ contentOffsetRef = params.contentOffsetRef,
17
+ setMapPaletteDragActive = params.setMapPaletteDragActive,
18
+ onDropInScene = params.onDropInScene;
19
+ var metricsRef = useRef({
20
+ cw: contentWidth,
21
+ ch: contentHeight
22
+ });
23
+ metricsRef.current = {
24
+ cw: contentWidth,
25
+ ch: contentHeight
26
+ };
27
+ var sessionRef = useRef(null);
28
+ var dragActivatedRef = useRef(false);
29
+ var suppressNextClickRef = useRef(false);
30
+ var removeListenersRef = useRef(null);
31
+ var cleanupWindowListeners = useCallback(function () {
32
+ var _removeListenersRef$c;
33
+ (_removeListenersRef$c = removeListenersRef.current) === null || _removeListenersRef$c === void 0 || _removeListenersRef$c.call(removeListenersRef);
34
+ removeListenersRef.current = null;
35
+ }, []);
36
+ useEffect(function () {
37
+ return function () {
38
+ cleanupWindowListeners();
39
+ sessionRef.current = null;
40
+ dragActivatedRef.current = false;
41
+ setMapPaletteDragActive(false);
42
+ };
43
+ }, [cleanupWindowListeners, setMapPaletteDragActive]);
44
+ var handlePaletteCardPointerDown = useCallback(function (payload, e) {
45
+ if (!enabled) return;
46
+ if (e.pointerType === 'mouse') return;
47
+ if (e.button !== 0) return;
48
+ cleanupWindowListeners();
49
+ dragActivatedRef.current = false;
50
+ sessionRef.current = {
51
+ payload: payload,
52
+ pointerId: e.pointerId,
53
+ startX: e.clientX,
54
+ startY: e.clientY
55
+ };
56
+ var onMove = function onMove(ev) {
57
+ var s = sessionRef.current;
58
+ if (!s || ev.pointerId !== s.pointerId) return;
59
+ var dx = ev.clientX - s.startX;
60
+ var dy = ev.clientY - s.startY;
61
+ if (!dragActivatedRef.current && dx * dx + dy * dy >= Math.pow(DRAG_THRESHOLD_PX, 2)) {
62
+ dragActivatedRef.current = true;
63
+ setMapPaletteDragActive(true);
64
+ }
65
+ if (dragActivatedRef.current && ev.cancelable) {
66
+ ev.preventDefault();
67
+ }
68
+ };
69
+ var onUp = function onUp(ev) {
70
+ var s = sessionRef.current;
71
+ if (!s || ev.pointerId !== s.pointerId) return;
72
+ cleanupWindowListeners();
73
+ sessionRef.current = null;
74
+ var wasDrag = dragActivatedRef.current;
75
+ dragActivatedRef.current = false;
76
+ setMapPaletteDragActive(false);
77
+ if (!wasDrag) return;
78
+ suppressNextClickRef.current = true;
79
+ var layer = mapDropLayerRef.current;
80
+ if (!layer) return;
81
+ var r = layer.getBoundingClientRect();
82
+ var _metricsRef$current = metricsRef.current,
83
+ cw = _metricsRef$current.cw,
84
+ ch = _metricsRef$current.ch;
85
+ if (cw <= 0 || ch <= 0) return;
86
+ if (ev.clientX < r.left || ev.clientX > r.right || ev.clientY < r.top || ev.clientY > r.bottom) {
87
+ return;
88
+ }
89
+ var lx = (ev.clientX - r.left) / Math.max(r.width, 1) * cw;
90
+ var ly = (ev.clientY - r.top) / Math.max(r.height, 1) * ch;
91
+ var _sceneXYFromContentDr = sceneXYFromContentDropOffset(lx, ly, contentOffsetRef.current),
92
+ x = _sceneXYFromContentDr.x,
93
+ y = _sceneXYFromContentDr.y;
94
+ onDropInScene(s.payload, x, y);
95
+ };
96
+ window.addEventListener('pointermove', onMove, POINTER_MOVE_OPTS);
97
+ window.addEventListener('pointerup', onUp, {
98
+ capture: true
99
+ });
100
+ window.addEventListener('pointercancel', onUp, {
101
+ capture: true
102
+ });
103
+ removeListenersRef.current = function () {
104
+ window.removeEventListener('pointermove', onMove, POINTER_MOVE_OPTS);
105
+ window.removeEventListener('pointerup', onUp, {
106
+ capture: true
107
+ });
108
+ window.removeEventListener('pointercancel', onUp, {
109
+ capture: true
110
+ });
111
+ };
112
+ }, [enabled, mapDropLayerRef, contentOffsetRef, setMapPaletteDragActive, onDropInScene, cleanupWindowListeners]);
113
+ var consumeToolbarClickIfTouchDrag = useCallback(function () {
114
+ if (!suppressNextClickRef.current) return false;
115
+ suppressNextClickRef.current = false;
116
+ return true;
117
+ }, []);
118
+ return {
119
+ handlePaletteCardPointerDown: handlePaletteCardPointerDown,
120
+ consumeToolbarClickIfTouchDrag: consumeToolbarClickIfTouchDrag
121
+ };
122
+ }
@@ -0,0 +1,67 @@
1
+ import type { MutableRefObject } from 'react';
2
+ import type { FloorMapItemBase, FloorMapItemUnit, FloorMapZoomConfig } from '../types';
3
+ /** react-zoom-pan-pinch TransformWrapper render 注入的上下文 */
4
+ export declare type FloorMapTransformContext = {
5
+ zoomIn: () => void;
6
+ zoomOut: () => void;
7
+ resetTransform: () => void;
8
+ setTransform: (x: number, y: number, scale: number) => void;
9
+ } | null;
10
+ export interface UseFloorMapTransformMetricsParams<T extends FloorMapItemBase> {
11
+ items: T[];
12
+ cellSize: number;
13
+ itemGap: number;
14
+ effectiveItemUnit: FloorMapItemUnit;
15
+ isFloorMapView: boolean;
16
+ mode: 'read' | 'edit';
17
+ zoom: FloorMapZoomConfig;
18
+ transformRef: MutableRefObject<FloorMapTransformContext>;
19
+ /** 由父组件创建并传入 useFloorMapEditState,本 hook 每帧写入内容区偏移 */
20
+ contentOffsetRef: MutableRefObject<{
21
+ x: number;
22
+ y: number;
23
+ }>;
24
+ /** 与 mapLayer.boundingPadding 一致;未传用 DEFAULT_BOUNDING_PADDING */
25
+ boundingPadding?: number;
26
+ /**
27
+ * 平面图:当前画布 id(或其它在切换画布时应重置平移/对齐会话的 key)。
28
+ * 不传则不跑「异步加载图元后的首次左上对齐」逻辑。
29
+ */
30
+ frameResetKey?: string;
31
+ }
32
+ export declare function useFloorMapTransformMetrics<T extends FloorMapItemBase>(params: UseFloorMapTransformMetricsParams<T>): {
33
+ containerRef: import("react").RefObject<HTMLDivElement>;
34
+ mapAreaRef: import("react").RefObject<HTMLDivElement>;
35
+ viewportSize: {
36
+ width: number;
37
+ height: number;
38
+ };
39
+ mapAreaSize: {
40
+ width: number;
41
+ height: number;
42
+ };
43
+ contentWidth: number;
44
+ contentHeight: number;
45
+ contentOffsetX: number;
46
+ contentOffsetY: number;
47
+ initialPositionX: number;
48
+ initialPositionY: number;
49
+ zoomConfig: {
50
+ initialScale: number;
51
+ minScale: number;
52
+ maxScale: number;
53
+ step: number;
54
+ };
55
+ scale: number;
56
+ setScale: import("react").Dispatch<import("react").SetStateAction<number>>;
57
+ isFullscreen: boolean;
58
+ toggleFullscreen: () => void;
59
+ fitBounds: () => void;
60
+ lastTransformRef: MutableRefObject<{
61
+ x: number;
62
+ y: number;
63
+ scale: number;
64
+ }>;
65
+ isInteractingWithElement: boolean;
66
+ setIsInteractingWithElement: import("react").Dispatch<import("react").SetStateAction<boolean>>;
67
+ };