@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,432 @@
1
+ /**
2
+ * Figma 样式餐桌/圆桌卡片:上下小条 + 白底卡片 + 状态色边框
3
+ * 供 Floor Map Story 与 Sales Grid 平面图复用
4
+ */
5
+ import React from 'react';
6
+ import { Avatar } from 'antd';
7
+ import { UserOutlined, ClockCircleOutlined, TeamOutlined, AuditOutlined, FieldTimeOutlined, EnvironmentOutlined } from '@ant-design/icons';
8
+ /** Figma 设计 token(Pisell 2.0 Component Library) */
9
+ var FIGMA = {
10
+ white: '#FFFFFF',
11
+ gray200: '#EAECF0',
12
+ gray400: '#98A2B3',
13
+ gray700: '#344054',
14
+ gray900: '#101828',
15
+ shadowSm: '0 1px 2px rgba(16, 24, 40, 0.06), 0 1px 3px rgba(16, 24, 40, 0.1)',
16
+ fontFamily: 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
17
+ barFillAvailable: '#EAECF0',
18
+ reserved: '#9254de',
19
+ waiting: '#fa8c16',
20
+ dining: '#1890ff',
21
+ billed: '#52c41a',
22
+ availableSoon: '#f5222d'
23
+ };
24
+ var STATUS_BORDER = {
25
+ available: FIGMA.gray200,
26
+ reserved: FIGMA.reserved,
27
+ waiting: FIGMA.waiting,
28
+ dining: FIGMA.dining,
29
+ billed: FIGMA.billed,
30
+ availableSoon: FIGMA.availableSoon
31
+ };
32
+
33
+ /** 方桌/圆桌卡片展示用数据结构(与 Figma 设计一致,支持桌号/状态/人数/区域等) */
34
+
35
+ var STATUS_MAP = {
36
+ available: 'available',
37
+ reserved: 'reserved',
38
+ waiting: 'waiting',
39
+ dining: 'dining',
40
+ billed: 'billed',
41
+ availableSoon: 'availableSoon',
42
+ 空闲: 'available',
43
+ 已预订: 'reserved',
44
+ 等待: 'waiting',
45
+ 用餐中: 'dining',
46
+ 已结账: 'billed',
47
+ 即将可用: 'availableSoon'
48
+ };
49
+
50
+ /** 从 merged item + dataSources 得到卡片数据 */
51
+ export function getFigmaTableCardFromMerged(item, dataSources) {
52
+ var _binding$recordId;
53
+ var el = item._sceneElement;
54
+ var binding = el === null || el === void 0 ? void 0 : el.dataBinding;
55
+ var titleFromElement = (el === null || el === void 0 ? void 0 : el.name) != null && String(el.name).trim() ? String(el.name).trim() : '';
56
+ var kindLabel = item.elementKind === 'roundTable' ? '圆桌' : '餐桌';
57
+ var hasDataSource = Boolean((binding === null || binding === void 0 ? void 0 : binding.dataSourceKey) && String(binding.dataSourceKey).trim() !== '');
58
+ var rid = (binding === null || binding === void 0 ? void 0 : binding.recordId) != null ? String(binding.recordId).trim() : '';
59
+ var boundToData = Boolean(hasDataSource && rid !== '');
60
+ var list = binding !== null && binding !== void 0 && binding.dataSourceKey ? dataSources[binding.dataSourceKey] : undefined;
61
+ var record = boundToData && list ? list.find(function (r) {
62
+ return r.id === rid;
63
+ }) : undefined;
64
+ var hasLiveRow = Boolean(record);
65
+ if (!hasLiveRow) {
66
+ /** 记录缺失或与「未选数据源」占位同一视觉(虚线 #bfbfbf),便于识别为待处理态 */
67
+ var borderColor = '#bfbfbf';
68
+ var hint = !hasDataSource || !rid ? hasDataSource ? '已选择数据源,请在侧栏选择数据行' : '未绑定数据行:请在侧栏选择数据源与记录' : rid.startsWith('new_') ? "\u65B0".concat(kindLabel, "\u5360\u4F4D\uFF0C\u53EF\u5728\u4FA7\u680F\u7ED1\u5B9A\u5177\u4F53\u8BB0\u5F55") : '未找到对应记录:请检查绑定或数据列表';
69
+ return {
70
+ id: item.id,
71
+ isNoDataPlaceholder: true,
72
+ placeholderBorderColor: borderColor,
73
+ placeholderHint: hint,
74
+ placeholderTitle: titleFromElement || kindLabel
75
+ };
76
+ }
77
+ var displayId = (_binding$recordId = binding === null || binding === void 0 ? void 0 : binding.recordId) !== null && _binding$recordId !== void 0 ? _binding$recordId : item.id;
78
+ var rawStatus = record === null || record === void 0 ? void 0 : record.status;
79
+ var status = rawStatus && STATUS_MAP[rawStatus] || 'available';
80
+ return {
81
+ id: displayId,
82
+ displayName: record === null || record === void 0 ? void 0 : record.name,
83
+ status: status,
84
+ customerName: record === null || record === void 0 ? void 0 : record.customerName,
85
+ reserveTime: record === null || record === void 0 ? void 0 : record.reserveTime,
86
+ guests: record === null || record === void 0 ? void 0 : record.guests,
87
+ capacity: record === null || record === void 0 ? void 0 : record.capacity,
88
+ dishes: record === null || record === void 0 ? void 0 : record.dishes,
89
+ duration: record === null || record === void 0 ? void 0 : record.duration,
90
+ area: record === null || record === void 0 ? void 0 : record.area
91
+ };
92
+ }
93
+
94
+ /** 根据 item id 得到小条数量:S=1, M=2, L=3, X=3, XL=4 */
95
+ function getBarCountFromItemId(id) {
96
+ var upper = id.toUpperCase();
97
+ if (upper.startsWith('XL-') || id.endsWith('-XL')) return 4;
98
+ if (upper.startsWith('L-') || upper.startsWith('X-') || id.endsWith('-L') || id.endsWith('-X')) return 3;
99
+ if (upper.startsWith('M-') || id.endsWith('-M')) return 2;
100
+ return 1;
101
+ }
102
+ var CARD_BAR_WIDTH = 80;
103
+ var CARD_BAR_HEIGHT = 12;
104
+ function CardBars(_ref) {
105
+ var count = _ref.count,
106
+ position = _ref.position,
107
+ barColor = _ref.barColor;
108
+ return /*#__PURE__*/React.createElement("div", {
109
+ style: {
110
+ display: 'flex',
111
+ flexDirection: 'row',
112
+ gap: 30,
113
+ justifyContent: 'center',
114
+ flexShrink: 0,
115
+ padding: position === 'top' ? '0 0 4px 0' : '4px 0 0 0'
116
+ }
117
+ }, Array.from({
118
+ length: count
119
+ }, function (_, i) {
120
+ return /*#__PURE__*/React.createElement("div", {
121
+ key: i,
122
+ style: {
123
+ width: CARD_BAR_WIDTH,
124
+ height: CARD_BAR_HEIGHT,
125
+ borderRadius: 6,
126
+ background: barColor
127
+ }
128
+ });
129
+ }));
130
+ }
131
+ function FigmaCardRow(_ref2) {
132
+ var icon = _ref2.icon,
133
+ children = _ref2.children;
134
+ return /*#__PURE__*/React.createElement("div", {
135
+ style: {
136
+ display: 'flex',
137
+ alignItems: 'center',
138
+ gap: 4,
139
+ fontFamily: FIGMA.fontFamily,
140
+ fontSize: 14,
141
+ lineHeight: '20px',
142
+ fontWeight: 400,
143
+ color: FIGMA.gray700,
144
+ flexShrink: 0,
145
+ minHeight: '20px'
146
+ }
147
+ }, /*#__PURE__*/React.createElement("span", {
148
+ style: {
149
+ flexShrink: 0,
150
+ color: FIGMA.gray400,
151
+ fontSize: 14
152
+ }
153
+ }, icon), /*#__PURE__*/React.createElement("span", {
154
+ style: {
155
+ flexShrink: 0
156
+ }
157
+ }, children));
158
+ }
159
+
160
+ /** 人数、区域等通用信息行(与表格列绑定:可坐人数、区域) */
161
+ function TableCardInfoRows(_ref3) {
162
+ var cardItem = _ref3.cardItem;
163
+ var hasCapacity = cardItem.capacity != null;
164
+ var hasArea = cardItem.area != null && cardItem.area !== '';
165
+ if (!hasCapacity && !hasArea) return null;
166
+ return /*#__PURE__*/React.createElement(React.Fragment, null, hasCapacity && /*#__PURE__*/React.createElement(FigmaCardRow, {
167
+ icon: /*#__PURE__*/React.createElement(TeamOutlined, null)
168
+ }, /*#__PURE__*/React.createElement("span", null, "\u53EF\u5750 ", cardItem.capacity, " \u4EBA")), hasArea && /*#__PURE__*/React.createElement(FigmaCardRow, {
169
+ icon: /*#__PURE__*/React.createElement(EnvironmentOutlined, null)
170
+ }, /*#__PURE__*/React.createElement("span", null, cardItem.area)));
171
+ }
172
+
173
+ /** 方桌卡片内容区(与 renderFigmaStyleTableCard 共用,展示桌号/状态/人数/区域) */
174
+ function TableCardContent(_ref4) {
175
+ var _cardItem$status, _cardItem$displayName, _cardItem$displayName2;
176
+ var cardItem = _ref4.cardItem;
177
+ var status = (_cardItem$status = cardItem.status) !== null && _cardItem$status !== void 0 ? _cardItem$status : 'available';
178
+ var borderColor = STATUS_BORDER[status];
179
+ var isAvailable = status === 'available';
180
+ return /*#__PURE__*/React.createElement("div", {
181
+ style: {
182
+ flex: 1,
183
+ minHeight: 0,
184
+ padding: 8,
185
+ boxSizing: 'border-box',
186
+ background: FIGMA.white,
187
+ border: isAvailable ? "4px solid ".concat(FIGMA.gray200) : "4px solid ".concat(borderColor),
188
+ borderRadius: 8,
189
+ boxShadow: FIGMA.shadowSm,
190
+ display: 'flex',
191
+ flexDirection: 'column',
192
+ justifyContent: isAvailable ? 'flex-start' : 'center',
193
+ alignItems: isAvailable ? 'stretch' : 'center',
194
+ gap: 4
195
+ }
196
+ }, isAvailable ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
197
+ style: {
198
+ flex: 1,
199
+ display: 'flex',
200
+ flexDirection: 'column',
201
+ alignItems: 'center',
202
+ justifyContent: 'center',
203
+ minHeight: 0,
204
+ gap: 4
205
+ }
206
+ }, /*#__PURE__*/React.createElement("div", {
207
+ style: {
208
+ fontWeight: 600,
209
+ fontSize: 18,
210
+ lineHeight: '24px',
211
+ color: FIGMA.gray700,
212
+ letterSpacing: 0
213
+ }
214
+ }, (_cardItem$displayName = cardItem.displayName) !== null && _cardItem$displayName !== void 0 ? _cardItem$displayName : cardItem.id), /*#__PURE__*/React.createElement(TableCardInfoRows, {
215
+ cardItem: cardItem
216
+ }))) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
217
+ style: {
218
+ fontWeight: 600,
219
+ fontSize: 18,
220
+ lineHeight: '24px',
221
+ color: FIGMA.gray900,
222
+ letterSpacing: 0,
223
+ textAlign: 'center'
224
+ }
225
+ }, (_cardItem$displayName2 = cardItem.displayName) !== null && _cardItem$displayName2 !== void 0 ? _cardItem$displayName2 : cardItem.id), status === 'reserved' && (cardItem.customerName != null && cardItem.customerName !== '' || cardItem.reserveTime != null && cardItem.reserveTime !== '') && /*#__PURE__*/React.createElement(React.Fragment, null, cardItem.customerName != null && cardItem.customerName !== '' && /*#__PURE__*/React.createElement(FigmaCardRow, {
226
+ icon: /*#__PURE__*/React.createElement(Avatar, {
227
+ size: 16,
228
+ icon: /*#__PURE__*/React.createElement(UserOutlined, null),
229
+ style: {
230
+ backgroundColor: FIGMA.gray200
231
+ }
232
+ })
233
+ }, /*#__PURE__*/React.createElement("span", null, cardItem.customerName)), cardItem.reserveTime != null && cardItem.reserveTime !== '' && /*#__PURE__*/React.createElement(FigmaCardRow, {
234
+ icon: /*#__PURE__*/React.createElement(ClockCircleOutlined, null)
235
+ }, /*#__PURE__*/React.createElement("span", null, cardItem.reserveTime))), (status === 'dining' || status === 'waiting' || status === 'billed' || status === 'availableSoon') && cardItem.guests != null && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FigmaCardRow, {
236
+ icon: /*#__PURE__*/React.createElement(TeamOutlined, null)
237
+ }, /*#__PURE__*/React.createElement("span", null, cardItem.guests, " \u4EBA")), cardItem.dishes && /*#__PURE__*/React.createElement(FigmaCardRow, {
238
+ icon: /*#__PURE__*/React.createElement(AuditOutlined, null)
239
+ }, /*#__PURE__*/React.createElement("span", null, cardItem.dishes)), cardItem.duration && /*#__PURE__*/React.createElement(FigmaCardRow, {
240
+ icon: /*#__PURE__*/React.createElement(FieldTimeOutlined, null)
241
+ }, /*#__PURE__*/React.createElement("span", null, cardItem.duration))), /*#__PURE__*/React.createElement(TableCardInfoRows, {
242
+ cardItem: cardItem
243
+ })));
244
+ }
245
+
246
+ /** 无数据占位:与蘸料摆台 Story 中占位卡片视觉对齐(虚线框 + #fafafa) */
247
+ function renderTableKindNoDataPlaceholder(cardItem, shape) {
248
+ var _cardItem$placeholder, _cardItem$placeholder2, _cardItem$placeholder3;
249
+ var borderColor = (_cardItem$placeholder = cardItem.placeholderBorderColor) !== null && _cardItem$placeholder !== void 0 ? _cardItem$placeholder : '#bfbfbf';
250
+ var title = (_cardItem$placeholder2 = cardItem.placeholderTitle) !== null && _cardItem$placeholder2 !== void 0 ? _cardItem$placeholder2 : '餐桌';
251
+ var hint = (_cardItem$placeholder3 = cardItem.placeholderHint) !== null && _cardItem$placeholder3 !== void 0 ? _cardItem$placeholder3 : '';
252
+ return /*#__PURE__*/React.createElement("div", {
253
+ style: {
254
+ width: '100%',
255
+ height: '100%',
256
+ boxSizing: 'border-box',
257
+ padding: '8px 10px',
258
+ display: 'flex',
259
+ flexDirection: 'column',
260
+ justifyContent: 'center',
261
+ minHeight: 0,
262
+ fontSize: 11,
263
+ lineHeight: 1.35,
264
+ background: '#fafafa',
265
+ borderRadius: shape === 'circle' ? '50%' : 8,
266
+ border: "2px dashed ".concat(borderColor),
267
+ boxShadow: 'none',
268
+ overflow: 'hidden'
269
+ }
270
+ }, /*#__PURE__*/React.createElement("div", {
271
+ style: {
272
+ fontWeight: 600,
273
+ color: '#595959',
274
+ overflow: 'hidden',
275
+ textOverflow: 'ellipsis',
276
+ whiteSpace: 'nowrap',
277
+ textAlign: shape === 'circle' ? 'center' : undefined
278
+ }
279
+ }, title), hint ? /*#__PURE__*/React.createElement("div", {
280
+ style: {
281
+ color: '#8c8c8c',
282
+ marginTop: 6,
283
+ flexShrink: 0,
284
+ fontSize: 10,
285
+ textAlign: shape === 'circle' ? 'center' : undefined
286
+ }
287
+ }, hint) : null);
288
+ }
289
+
290
+ /** 渲染 Figma 样式的方桌卡片(上下小条 + 白底卡片 + 状态边框) */
291
+ export function renderFigmaStyleTableCard(cardItem) {
292
+ var _cardItem$status2;
293
+ if (cardItem.isNoDataPlaceholder) {
294
+ return renderTableKindNoDataPlaceholder(cardItem, 'rect');
295
+ }
296
+ var status = (_cardItem$status2 = cardItem.status) !== null && _cardItem$status2 !== void 0 ? _cardItem$status2 : 'available';
297
+ var borderColor = STATUS_BORDER[status];
298
+ var isAvailable = status === 'available';
299
+ return /*#__PURE__*/React.createElement("div", {
300
+ style: {
301
+ width: '100%',
302
+ height: '100%',
303
+ boxSizing: 'border-box',
304
+ display: 'flex',
305
+ flexDirection: 'column',
306
+ justifyContent: 'flex-start',
307
+ gap: 0,
308
+ fontFamily: FIGMA.fontFamily,
309
+ overflow: 'hidden'
310
+ }
311
+ }, /*#__PURE__*/React.createElement(CardBars, {
312
+ count: getBarCountFromItemId(cardItem.id),
313
+ position: "top",
314
+ barColor: isAvailable ? FIGMA.barFillAvailable : borderColor
315
+ }), /*#__PURE__*/React.createElement(TableCardContent, {
316
+ cardItem: cardItem
317
+ }), /*#__PURE__*/React.createElement(CardBars, {
318
+ count: getBarCountFromItemId(cardItem.id),
319
+ position: "bottom",
320
+ barColor: isAvailable ? FIGMA.barFillAvailable : borderColor
321
+ }));
322
+ }
323
+
324
+ /** 渲染 Figma 样式的圆桌卡片(圆形轮廓,展示桌号/状态/人数/区域) */
325
+ export function renderFigmaStyleRoundTableCard(cardItem) {
326
+ var _cardItem$status3, _cardItem$displayName3, _cardItem$displayName4;
327
+ if (cardItem.isNoDataPlaceholder) {
328
+ return renderTableKindNoDataPlaceholder(cardItem, 'circle');
329
+ }
330
+ var status = (_cardItem$status3 = cardItem.status) !== null && _cardItem$status3 !== void 0 ? _cardItem$status3 : 'available';
331
+ var borderColor = STATUS_BORDER[status];
332
+ var isAvailable = status === 'available';
333
+ return /*#__PURE__*/React.createElement("div", {
334
+ style: {
335
+ width: '100%',
336
+ height: '100%',
337
+ boxSizing: 'border-box',
338
+ display: 'flex',
339
+ flexDirection: 'column',
340
+ justifyContent: 'center',
341
+ alignItems: 'center',
342
+ gap: 0,
343
+ fontFamily: FIGMA.fontFamily,
344
+ overflow: 'hidden',
345
+ borderRadius: '50%',
346
+ border: isAvailable ? "4px solid ".concat(FIGMA.gray200) : "4px solid ".concat(borderColor),
347
+ background: FIGMA.white,
348
+ boxShadow: FIGMA.shadowSm,
349
+ padding: 8
350
+ }
351
+ }, /*#__PURE__*/React.createElement("div", {
352
+ style: {
353
+ flex: 1,
354
+ minHeight: 0,
355
+ display: 'flex',
356
+ flexDirection: 'column',
357
+ justifyContent: isAvailable ? 'flex-start' : 'center',
358
+ alignItems: 'center',
359
+ width: '100%',
360
+ overflow: 'hidden',
361
+ gap: 2
362
+ }
363
+ }, isAvailable ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
364
+ style: {
365
+ fontWeight: 600,
366
+ fontSize: 16,
367
+ lineHeight: '22px',
368
+ color: FIGMA.gray700,
369
+ textAlign: 'center'
370
+ }
371
+ }, (_cardItem$displayName3 = cardItem.displayName) !== null && _cardItem$displayName3 !== void 0 ? _cardItem$displayName3 : cardItem.id), (cardItem.capacity != null || cardItem.area != null && cardItem.area !== '') && /*#__PURE__*/React.createElement("div", {
372
+ style: {
373
+ display: 'flex',
374
+ flexDirection: 'column',
375
+ alignItems: 'center',
376
+ gap: 2,
377
+ fontSize: 12,
378
+ lineHeight: '18px',
379
+ color: FIGMA.gray700
380
+ }
381
+ }, cardItem.capacity != null && /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(TeamOutlined, {
382
+ style: {
383
+ marginRight: 4
384
+ }
385
+ }), "\u53EF\u5750 ", cardItem.capacity, " \u4EBA"), cardItem.area != null && cardItem.area !== '' && /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(EnvironmentOutlined, {
386
+ style: {
387
+ marginRight: 4
388
+ }
389
+ }), cardItem.area))) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
390
+ style: {
391
+ fontWeight: 600,
392
+ fontSize: 16,
393
+ lineHeight: '22px',
394
+ color: FIGMA.gray900,
395
+ textAlign: 'center'
396
+ }
397
+ }, (_cardItem$displayName4 = cardItem.displayName) !== null && _cardItem$displayName4 !== void 0 ? _cardItem$displayName4 : cardItem.id), status === 'reserved' && cardItem.customerName && /*#__PURE__*/React.createElement("div", {
398
+ style: {
399
+ fontSize: 12,
400
+ color: FIGMA.gray700,
401
+ marginTop: 2
402
+ }
403
+ }, cardItem.customerName), (status === 'dining' || status === 'waiting' || status === 'billed') && cardItem.guests != null && /*#__PURE__*/React.createElement("div", {
404
+ style: {
405
+ fontSize: 12,
406
+ color: FIGMA.gray700,
407
+ marginTop: 2
408
+ }
409
+ }, cardItem.guests, " \u4EBA"), (cardItem.capacity != null || cardItem.area != null && cardItem.area !== '') && /*#__PURE__*/React.createElement("div", {
410
+ style: {
411
+ fontSize: 12,
412
+ color: FIGMA.gray700,
413
+ marginTop: 2
414
+ }
415
+ }, cardItem.capacity != null && "\u53EF\u5750 ".concat(cardItem.capacity, " \u4EBA"), cardItem.capacity != null && cardItem.area && ' · ', cardItem.area))));
416
+ }
417
+
418
+ /** 返回用于 renderItemByKind.table 的渲染函数(方桌) */
419
+ export function getRenderItemByKindTable(dataSources) {
420
+ return function (item) {
421
+ var cardItem = getFigmaTableCardFromMerged(item, dataSources);
422
+ return renderFigmaStyleTableCard(cardItem);
423
+ };
424
+ }
425
+
426
+ /** 返回用于 renderItemByKind.roundTable 的渲染函数(圆桌) */
427
+ export function getRenderItemByKindRoundTable(dataSources) {
428
+ return function (item) {
429
+ var cardItem = getFigmaTableCardFromMerged(item, dataSources);
430
+ return renderFigmaStyleRoundTableCard(cardItem);
431
+ };
432
+ }
@@ -0,0 +1,17 @@
1
+ /// <reference types="react" />
2
+ import type { FloorMapDataSources, DataSourceFormColumn } from '../types';
3
+ import './FloorMapDataForm.less';
4
+ export interface FloorMapDataFormProps {
5
+ dataSourceKey: string;
6
+ recordId: string;
7
+ record: Record<string, unknown>;
8
+ dataSources: FloorMapDataSources;
9
+ onSave: (dataSourceKey: string, id: string, newData: Record<string, unknown>) => void;
10
+ saving?: boolean;
11
+ /** 列配置:标签、类型(string/number/select)、选项(select 时);不传则自动列举 record 除 id 外字段 */
12
+ columns?: DataSourceFormColumn[];
13
+ className?: string;
14
+ }
15
+ /** 简单通用表单:可编辑记录中的字段;支持 columns 配置标签与控件类型 */
16
+ export declare function FloorMapDataForm(props: FloorMapDataFormProps): JSX.Element;
17
+ export default FloorMapDataForm;
@@ -0,0 +1,131 @@
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
+ 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; }
3
+ 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; }
4
+ 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; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ 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); }
7
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
+ 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."); }
9
+ 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); }
10
+ 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; }
11
+ 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; } }
12
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
+ /**
14
+ * FloorMapDataForm - 数据源落位的数据表单,调用 onDataSourceRecordSave
15
+ * 支持通过 columns 配置列标签与控件类型(string/number/select),与表格列一致
16
+ */
17
+ import React, { useState, useCallback, useEffect } from 'react';
18
+ import classNames from 'classnames';
19
+ import { Form, Input, InputNumber, Select, Button } from 'antd';
20
+ import "./FloorMapDataForm.less";
21
+ var PREFIX = 'pisell-floor-map-layout';
22
+ function renderFormControl(col, value) {
23
+ var _col$type, _col$options;
24
+ var type = (_col$type = col.type) !== null && _col$type !== void 0 ? _col$type : 'string';
25
+ if (type === 'number') {
26
+ return /*#__PURE__*/React.createElement(InputNumber, {
27
+ style: {
28
+ width: '100%'
29
+ },
30
+ min: 0
31
+ });
32
+ }
33
+ if (type === 'select' && (_col$options = col.options) !== null && _col$options !== void 0 && _col$options.length) {
34
+ return /*#__PURE__*/React.createElement(Select, {
35
+ allowClear: false,
36
+ options: col.options.map(function (o) {
37
+ return {
38
+ label: o.label,
39
+ value: o.value
40
+ };
41
+ }),
42
+ style: {
43
+ width: '100%'
44
+ }
45
+ });
46
+ }
47
+ return /*#__PURE__*/React.createElement(Input, null);
48
+ }
49
+
50
+ /** 简单通用表单:可编辑记录中的字段;支持 columns 配置标签与控件类型 */
51
+ export function FloorMapDataForm(props) {
52
+ var dataSourceKey = props.dataSourceKey,
53
+ recordId = props.recordId,
54
+ record = props.record,
55
+ dataSources = props.dataSources,
56
+ onSave = props.onSave,
57
+ saving = props.saving,
58
+ columns = props.columns,
59
+ className = props.className;
60
+ var _Form$useForm = Form.useForm(),
61
+ _Form$useForm2 = _slicedToArray(_Form$useForm, 1),
62
+ form = _Form$useForm2[0];
63
+ var _useState = useState(false),
64
+ _useState2 = _slicedToArray(_useState, 2),
65
+ changed = _useState2[0],
66
+ setChanged = _useState2[1];
67
+ var initialValues = React.useMemo(function () {
68
+ return _objectSpread({}, record);
69
+ }, [record]);
70
+ var handleFinish = useCallback(function (values) {
71
+ onSave(dataSourceKey, recordId, values);
72
+ setChanged(false);
73
+ }, [dataSourceKey, recordId, onSave]);
74
+ var handleValuesChange = useCallback(function () {
75
+ return setChanged(true);
76
+ }, []);
77
+ useEffect(function () {
78
+ form.setFieldsValue(record);
79
+ }, [recordId, record, form]);
80
+ var fieldsToRender = columns ? columns.filter(function (col) {
81
+ return col.key !== 'id';
82
+ }) : Object.entries(record).filter(function (_ref) {
83
+ var _ref2 = _slicedToArray(_ref, 1),
84
+ k = _ref2[0];
85
+ return k !== 'id';
86
+ }).map(function (_ref3) {
87
+ var _ref4 = _slicedToArray(_ref3, 1),
88
+ key = _ref4[0];
89
+ return {
90
+ key: key,
91
+ label: key,
92
+ type: 'string'
93
+ };
94
+ });
95
+ if (fieldsToRender.length === 0) {
96
+ return /*#__PURE__*/React.createElement("div", {
97
+ className: classNames("".concat(PREFIX, "-data-form"), className)
98
+ }, /*#__PURE__*/React.createElement("p", {
99
+ className: "".concat(PREFIX, "-data-form-empty")
100
+ }, "\u65E0\u989D\u5916\u5B57\u6BB5\u53EF\u7F16\u8F91"));
101
+ }
102
+ return /*#__PURE__*/React.createElement("div", {
103
+ className: classNames("".concat(PREFIX, "-data-form"), className)
104
+ }, /*#__PURE__*/React.createElement(Form, {
105
+ form: form,
106
+ key: recordId,
107
+ layout: "vertical",
108
+ size: "small",
109
+ initialValues: initialValues,
110
+ onFinish: handleFinish,
111
+ onValuesChange: handleValuesChange
112
+ }, /*#__PURE__*/React.createElement(Form.Item, {
113
+ name: "id",
114
+ label: "ID",
115
+ hidden: true
116
+ }, /*#__PURE__*/React.createElement(Input, {
117
+ disabled: true
118
+ })), fieldsToRender.map(function (col) {
119
+ return /*#__PURE__*/React.createElement(Form.Item, {
120
+ key: col.key,
121
+ name: col.key,
122
+ label: col.label
123
+ }, renderFormControl(col, record[col.key]));
124
+ }), /*#__PURE__*/React.createElement(Form.Item, null, /*#__PURE__*/React.createElement(Button, {
125
+ type: "primary",
126
+ htmlType: "submit",
127
+ loading: saving,
128
+ disabled: !changed
129
+ }, "\u4FDD\u5B58\u8BB0\u5F55"))));
130
+ }
131
+ export default FloorMapDataForm;
@@ -0,0 +1,7 @@
1
+ .pisell-floor-map-layout-data-form {
2
+ &-empty {
3
+ font-size: 12px;
4
+ color: #999;
5
+ margin: 0;
6
+ }
7
+ }
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import type { FloorMapEditPanelParams, FloorMapViewConfig, FloorMapDataSources } from '../types';
3
+ import './FloorMapEditPanel.less';
4
+ export interface FloorMapEditPanelProps extends FloorMapEditPanelParams {
5
+ config: FloorMapViewConfig;
6
+ dataSources: FloorMapDataSources;
7
+ savingRecord?: boolean;
8
+ className?: string;
9
+ }
10
+ export declare function FloorMapEditPanel(props: FloorMapEditPanelProps): JSX.Element;
11
+ export default FloorMapEditPanel;