@pisell/materials 1.0.1059 → 1.0.1060

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) hide show
  1. package/README.md +285 -285
  2. package/build/lowcode/assets-daily.json +11 -11
  3. package/build/lowcode/assets-dev.json +2 -2
  4. package/build/lowcode/assets-prod.json +11 -11
  5. package/build/lowcode/index.js +1 -1
  6. package/build/lowcode/meta.js +7 -7
  7. package/build/lowcode/preview.js +9 -9
  8. package/build/lowcode/render/default/view.css +1 -1
  9. package/build/lowcode/render/default/view.js +27 -27
  10. package/build/lowcode/view.css +1 -1
  11. package/build/lowcode/view.js +26 -26
  12. package/es/components/PisellLayouts/index.d.ts +2 -1
  13. package/es/components/PisellLayouts/index.js +3 -1
  14. package/es/components/cardMetricItem/index.js +2 -2
  15. package/es/components/pisellFilter/type.d.ts +4 -2
  16. package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.d.ts +1 -1
  17. package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.js +468 -201
  18. package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.less +70 -0
  19. package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.stories.d.ts +13 -0
  20. package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.stories.js +494 -63
  21. package/es/components/pisellFloorMapLayout/components/CanvasTabs.d.ts +22 -0
  22. package/es/components/pisellFloorMapLayout/components/CanvasTabs.js +203 -0
  23. package/es/components/pisellFloorMapLayout/components/CanvasTabs.less +189 -0
  24. package/es/components/pisellFloorMapLayout/components/EditableItemLayer.d.ts +37 -0
  25. package/es/components/pisellFloorMapLayout/components/EditableItemLayer.js +341 -0
  26. package/es/components/pisellFloorMapLayout/components/EditableItemLayer.less +89 -0
  27. package/es/components/pisellFloorMapLayout/components/FigmaTableCard.d.ts +39 -0
  28. package/es/components/pisellFloorMapLayout/components/FigmaTableCard.js +432 -0
  29. package/es/components/pisellFloorMapLayout/components/FloorMapDataForm.d.ts +17 -0
  30. package/es/components/pisellFloorMapLayout/components/FloorMapDataForm.js +131 -0
  31. package/es/components/pisellFloorMapLayout/components/FloorMapDataForm.less +7 -0
  32. package/es/components/pisellFloorMapLayout/components/FloorMapEditPanel.d.ts +11 -0
  33. package/es/components/pisellFloorMapLayout/components/FloorMapEditPanel.js +444 -0
  34. package/es/components/pisellFloorMapLayout/components/FloorMapEditPanel.less +153 -0
  35. package/es/components/pisellFloorMapLayout/components/FloorMapEditTopBar.d.ts +34 -0
  36. package/es/components/pisellFloorMapLayout/components/FloorMapEditTopBar.js +130 -0
  37. package/es/components/pisellFloorMapLayout/components/FloorMapEditTopBar.less +131 -0
  38. package/es/components/pisellFloorMapLayout/components/FloorMapImageElement.d.ts +6 -0
  39. package/es/components/pisellFloorMapLayout/components/FloorMapImageElement.js +69 -0
  40. package/es/components/pisellFloorMapLayout/components/FloorMapToolbar.d.ts +35 -0
  41. package/es/components/pisellFloorMapLayout/components/FloorMapToolbar.js +361 -0
  42. package/es/components/pisellFloorMapLayout/components/FloorMapToolbar.less +237 -0
  43. package/es/components/pisellFloorMapLayout/components/ItemLayer.d.ts +7 -0
  44. package/es/components/pisellFloorMapLayout/components/ItemLayer.js +32 -6
  45. package/es/components/pisellFloorMapLayout/components/MapLayer.d.ts +4 -0
  46. package/es/components/pisellFloorMapLayout/components/MapLayer.js +11 -3
  47. package/es/components/pisellFloorMapLayout/components/ViewControls.js +2 -2
  48. package/es/components/pisellFloorMapLayout/components/ViewControls.less +3 -2
  49. package/es/components/pisellFloorMapLayout/components/ViewControlsWithZoom.d.ts +11 -0
  50. package/es/components/pisellFloorMapLayout/components/ViewControlsWithZoom.js +27 -0
  51. package/es/components/pisellFloorMapLayout/components/index.d.ts +14 -0
  52. package/es/components/pisellFloorMapLayout/components/index.js +8 -1
  53. package/es/components/pisellFloorMapLayout/context/FloorMapLayoutContext.d.ts +16 -0
  54. package/es/components/pisellFloorMapLayout/context/FloorMapLayoutContext.js +21 -0
  55. package/es/components/pisellFloorMapLayout/context/mergeFloorMapLayoutContext.d.ts +5 -0
  56. package/es/components/pisellFloorMapLayout/context/mergeFloorMapLayoutContext.js +27 -0
  57. package/es/components/pisellFloorMapLayout/hooks/useFloorMapEditState.d.ts +60 -0
  58. package/es/components/pisellFloorMapLayout/hooks/useFloorMapEditState.js +436 -0
  59. package/es/components/pisellFloorMapLayout/hooks/useFloorMapPaletteTouchDrag.d.ts +21 -0
  60. package/es/components/pisellFloorMapLayout/hooks/useFloorMapPaletteTouchDrag.js +122 -0
  61. package/es/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.d.ts +67 -0
  62. package/es/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.js +281 -0
  63. package/es/components/pisellFloorMapLayout/index.d.ts +9 -2
  64. package/es/components/pisellFloorMapLayout/index.js +7 -2
  65. package/es/components/pisellFloorMapLayout/locales.d.ts +186 -0
  66. package/es/components/pisellFloorMapLayout/locales.js +185 -0
  67. package/es/components/pisellFloorMapLayout/types.d.ts +346 -1
  68. package/es/components/pisellFloorMapLayout/types.js +148 -1
  69. package/es/components/pisellFloorMapLayout/utils/floorMapCanvasDisplay.d.ts +20 -0
  70. package/es/components/pisellFloorMapLayout/utils/floorMapCanvasDisplay.js +129 -0
  71. package/es/components/pisellFloorMapLayout/utils/floorMapConfigMerge.d.ts +8 -0
  72. package/es/components/pisellFloorMapLayout/utils/floorMapConfigMerge.js +87 -0
  73. package/es/components/pisellFloorMapLayout/utils/floorMapDropUtils.d.ts +26 -0
  74. package/es/components/pisellFloorMapLayout/utils/floorMapDropUtils.js +47 -0
  75. package/es/components/pisellFloorMapLayout/utils/floorMapElementKindUtils.d.ts +11 -0
  76. package/es/components/pisellFloorMapLayout/utils/floorMapElementKindUtils.js +69 -0
  77. package/es/components/pisellFloorMapLayout/utils/floorMapFallbackRender.d.ts +11 -0
  78. package/es/components/pisellFloorMapLayout/utils/floorMapFallbackRender.js +88 -0
  79. package/es/components/pisellFloorMapLayout/utils/floorMapStageDefaults.d.ts +8 -0
  80. package/es/components/pisellFloorMapLayout/utils/floorMapStageDefaults.js +8 -0
  81. package/es/components/pisellFloorMapLayout/utils/floorMapViewConfigDiff.d.ts +8 -0
  82. package/es/components/pisellFloorMapLayout/utils/floorMapViewConfigDiff.js +108 -0
  83. package/es/components/pisellFloorMapLayout/utils/layoutMeasurements.d.ts +30 -0
  84. package/es/components/pisellFloorMapLayout/utils/layoutMeasurements.js +125 -0
  85. package/es/components/pisellFloorMapLayout/utils/mergeCanvasesForTabs.d.ts +7 -0
  86. package/es/components/pisellFloorMapLayout/utils/mergeCanvasesForTabs.js +29 -0
  87. package/es/components/pisellFloorMapLayout/utils/snap.d.ts +10 -0
  88. package/es/components/pisellFloorMapLayout/utils/snap.js +21 -0
  89. package/es/components/pisellHierarchicalSummaryList/PisellHierarchicalSummaryList.d.ts +6 -0
  90. package/es/components/pisellHierarchicalSummaryList/PisellHierarchicalSummaryList.js +175 -0
  91. package/es/components/pisellHierarchicalSummaryList/PisellHierarchicalSummaryList.less +129 -0
  92. package/es/components/pisellHierarchicalSummaryList/PisellHierarchicalSummaryList.stories.d.ts +10 -0
  93. package/es/components/pisellHierarchicalSummaryList/PisellHierarchicalSummaryList.stories.js +237 -0
  94. package/es/components/pisellHierarchicalSummaryList/components/Row.d.ts +35 -0
  95. package/es/components/pisellHierarchicalSummaryList/components/Row.js +313 -0
  96. package/es/components/pisellHierarchicalSummaryList/components/index.d.ts +1 -0
  97. package/es/components/pisellHierarchicalSummaryList/components/index.js +1 -0
  98. package/es/components/pisellHierarchicalSummaryList/hooks/index.d.ts +2 -0
  99. package/es/components/pisellHierarchicalSummaryList/hooks/index.js +1 -0
  100. package/es/components/pisellHierarchicalSummaryList/hooks/useExpandedKeys.d.ts +15 -0
  101. package/es/components/pisellHierarchicalSummaryList/hooks/useExpandedKeys.js +34 -0
  102. package/es/components/pisellHierarchicalSummaryList/index.d.ts +5 -0
  103. package/es/components/pisellHierarchicalSummaryList/index.js +5 -0
  104. package/es/components/pisellHierarchicalSummaryList/types.d.ts +248 -0
  105. package/es/components/pisellHierarchicalSummaryList/types.js +1 -0
  106. package/es/components/pisellLookup/PisellLookup.js +82 -82
  107. package/es/components/pisellMultipleSelect/PisellMultipleSelect.stories.js +34 -34
  108. package/es/components/pisellRecordBoard/PisellRecordBoard.d.ts +2 -1
  109. package/es/components/pisellRecordBoard/PisellRecordBoard.js +70 -18
  110. package/es/components/pisellRecordBoard/PisellRecordBoard.stories.d.ts +4 -0
  111. package/es/components/pisellRecordBoard/PisellRecordBoard.stories.js +1276 -344
  112. package/es/components/pisellRecordBoard/index.d.ts +7 -2
  113. package/es/components/pisellRecordBoard/index.js +2 -1
  114. package/es/components/pisellRecordBoard/shellFrame/ColumnSetting/index.js +1 -3
  115. package/es/components/pisellRecordBoard/shellFrame/FloorMap.d.ts +14 -0
  116. package/es/components/pisellRecordBoard/shellFrame/FloorMap.js +15 -0
  117. package/es/components/pisellRecordBoard/shellFrame/ShellBodyMetaContext.d.ts +16 -0
  118. package/es/components/pisellRecordBoard/shellFrame/ShellBodyMetaContext.js +11 -0
  119. package/es/components/pisellRecordBoard/shellFrame/ToolBar/ToolBarFilter.less +47 -0
  120. package/es/components/pisellRecordBoard/shellFrame/ToolBar/index.js +53 -6
  121. package/es/components/pisellRecordBoard/shellFrame/ToolBarReset/index.js +3 -3
  122. package/es/components/pisellRecordBoard/shellFrame/index.d.ts +4 -10
  123. package/es/components/pisellRecordBoard/shellFrame/index.js +99 -19
  124. package/es/components/pisellRecordBoard/types.d.ts +55 -1
  125. package/es/components/pisellRecordBoard/utils/partitionShellFrameChildren.d.ts +15 -0
  126. package/es/components/pisellRecordBoard/utils/partitionShellFrameChildren.js +57 -0
  127. package/es/components/pisellReservationSchedule/PisellReservationSchedule.d.ts +10 -0
  128. package/es/components/pisellReservationSchedule/PisellReservationSchedule.js +156 -0
  129. package/es/components/pisellReservationSchedule/PisellReservationSchedule.less +88 -0
  130. package/es/components/pisellReservationSchedule/PisellReservationSchedule.stories.d.ts +12 -0
  131. package/es/components/pisellReservationSchedule/PisellReservationSchedule.stories.js +105 -0
  132. package/es/components/pisellReservationSchedule/index.d.ts +2 -0
  133. package/es/components/pisellReservationSchedule/index.js +1 -0
  134. package/es/components/pisellReservationSchedule/locales.d.ts +25 -0
  135. package/es/components/pisellReservationSchedule/locales.js +24 -0
  136. package/es/components/pisellReservationSchedule/types.d.ts +42 -0
  137. package/es/components/pisellReservationSchedule/types.js +1 -0
  138. package/es/components/pisellReservationScheduleBand/PisellReservationScheduleBand.d.ts +10 -0
  139. package/es/components/pisellReservationScheduleBand/PisellReservationScheduleBand.js +91 -0
  140. package/es/components/pisellReservationScheduleBand/PisellReservationScheduleBand.less +49 -0
  141. package/es/components/pisellReservationScheduleBand/PisellReservationScheduleBand.stories.d.ts +16 -0
  142. package/es/components/pisellReservationScheduleBand/PisellReservationScheduleBand.stories.js +197 -0
  143. package/es/components/pisellReservationScheduleBand/index.d.ts +2 -0
  144. package/es/components/pisellReservationScheduleBand/index.js +1 -0
  145. package/es/components/pisellReservationScheduleBand/types.d.ts +45 -0
  146. package/es/components/pisellReservationScheduleBand/types.js +1 -0
  147. package/es/components/pisellRow/index.js +7 -7
  148. package/es/components/pisellTimeNavigator/PisellTimeNavigator.d.ts +10 -0
  149. package/es/components/pisellTimeNavigator/PisellTimeNavigator.js +512 -0
  150. package/es/components/pisellTimeNavigator/PisellTimeNavigator.less +378 -0
  151. package/es/components/pisellTimeNavigator/PisellTimeNavigator.stories.d.ts +79 -0
  152. package/es/components/pisellTimeNavigator/PisellTimeNavigator.stories.js +290 -0
  153. package/es/components/pisellTimeNavigator/components/BackgroundLayer.d.ts +14 -0
  154. package/es/components/pisellTimeNavigator/components/BackgroundLayer.js +30 -0
  155. package/es/components/pisellTimeNavigator/components/CursorLayer.d.ts +20 -0
  156. package/es/components/pisellTimeNavigator/components/CursorLayer.js +46 -0
  157. package/es/components/pisellTimeNavigator/components/GestureLayer.d.ts +31 -0
  158. package/es/components/pisellTimeNavigator/components/GestureLayer.js +82 -0
  159. package/es/components/pisellTimeNavigator/components/NowButton.d.ts +14 -0
  160. package/es/components/pisellTimeNavigator/components/NowButton.js +38 -0
  161. package/es/components/pisellTimeNavigator/components/ScaleLayer.d.ts +17 -0
  162. package/es/components/pisellTimeNavigator/components/ScaleLayer.js +51 -0
  163. package/es/components/pisellTimeNavigator/components/index.d.ts +5 -0
  164. package/es/components/pisellTimeNavigator/components/index.js +5 -0
  165. package/es/components/pisellTimeNavigator/hooks/index.d.ts +5 -0
  166. package/es/components/pisellTimeNavigator/hooks/index.js +3 -0
  167. package/es/components/pisellTimeNavigator/hooks/useDragInertia.d.ts +14 -0
  168. package/es/components/pisellTimeNavigator/hooks/useDragInertia.js +109 -0
  169. package/es/components/pisellTimeNavigator/hooks/useRealtime.d.ts +5 -0
  170. package/es/components/pisellTimeNavigator/hooks/useRealtime.js +16 -0
  171. package/es/components/pisellTimeNavigator/hooks/useTimeAxis.d.ts +27 -0
  172. package/es/components/pisellTimeNavigator/hooks/useTimeAxis.js +76 -0
  173. package/es/components/pisellTimeNavigator/index.d.ts +4 -0
  174. package/es/components/pisellTimeNavigator/index.js +3 -0
  175. package/es/components/pisellTimeNavigator/locales.d.ts +22 -0
  176. package/es/components/pisellTimeNavigator/locales.js +21 -0
  177. package/es/components/pisellTimeNavigator/types.d.ts +145 -0
  178. package/es/components/pisellTimeNavigator/types.js +1 -0
  179. package/es/components/pisellTimeNavigator/utils/index.d.ts +26 -0
  180. package/es/components/pisellTimeNavigator/utils/index.js +102 -0
  181. package/es/index.d.ts +15 -5
  182. package/es/index.js +23 -17
  183. package/es/locales/en-US.d.ts +2 -0
  184. package/es/locales/en-US.js +6 -4
  185. package/es/locales/zh-CN.d.ts +2 -0
  186. package/es/locales/zh-CN.js +6 -4
  187. package/es/locales/zh-TW.d.ts +2 -0
  188. package/es/locales/zh-TW.js +6 -4
  189. package/lib/components/PisellLayouts/index.d.ts +2 -1
  190. package/lib/components/PisellLayouts/index.js +13 -1
  191. package/lib/components/pisellFilter/type.d.ts +4 -2
  192. package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.d.ts +1 -1
  193. package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.js +562 -180
  194. package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.less +70 -0
  195. package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.stories.d.ts +13 -0
  196. package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.stories.js +682 -84
  197. package/lib/components/pisellFloorMapLayout/components/CanvasTabs.d.ts +22 -0
  198. package/lib/components/pisellFloorMapLayout/components/CanvasTabs.js +237 -0
  199. package/lib/components/pisellFloorMapLayout/components/CanvasTabs.less +189 -0
  200. package/lib/components/pisellFloorMapLayout/components/EditableItemLayer.d.ts +37 -0
  201. package/lib/components/pisellFloorMapLayout/components/EditableItemLayer.js +358 -0
  202. package/lib/components/pisellFloorMapLayout/components/EditableItemLayer.less +89 -0
  203. package/lib/components/pisellFloorMapLayout/components/FigmaTableCard.d.ts +39 -0
  204. package/lib/components/pisellFloorMapLayout/components/FigmaTableCard.js +482 -0
  205. package/lib/components/pisellFloorMapLayout/components/FloorMapDataForm.d.ts +17 -0
  206. package/lib/components/pisellFloorMapLayout/components/FloorMapDataForm.js +117 -0
  207. package/lib/components/pisellFloorMapLayout/components/FloorMapDataForm.less +7 -0
  208. package/lib/components/pisellFloorMapLayout/components/FloorMapEditPanel.d.ts +11 -0
  209. package/lib/components/pisellFloorMapLayout/components/FloorMapEditPanel.js +434 -0
  210. package/lib/components/pisellFloorMapLayout/components/FloorMapEditPanel.less +153 -0
  211. package/lib/components/pisellFloorMapLayout/components/FloorMapEditTopBar.d.ts +34 -0
  212. package/lib/components/pisellFloorMapLayout/components/FloorMapEditTopBar.js +188 -0
  213. package/lib/components/pisellFloorMapLayout/components/FloorMapEditTopBar.less +131 -0
  214. package/lib/components/pisellFloorMapLayout/components/FloorMapImageElement.d.ts +6 -0
  215. package/lib/components/pisellFloorMapLayout/components/FloorMapImageElement.js +94 -0
  216. package/lib/components/pisellFloorMapLayout/components/FloorMapToolbar.d.ts +35 -0
  217. package/lib/components/pisellFloorMapLayout/components/FloorMapToolbar.js +333 -0
  218. package/lib/components/pisellFloorMapLayout/components/FloorMapToolbar.less +237 -0
  219. package/lib/components/pisellFloorMapLayout/components/ItemLayer.d.ts +7 -0
  220. package/lib/components/pisellFloorMapLayout/components/ItemLayer.js +26 -5
  221. package/lib/components/pisellFloorMapLayout/components/MapLayer.d.ts +4 -0
  222. package/lib/components/pisellFloorMapLayout/components/MapLayer.js +7 -2
  223. package/lib/components/pisellFloorMapLayout/components/ViewControls.less +3 -2
  224. package/lib/components/pisellFloorMapLayout/components/ViewControlsWithZoom.d.ts +11 -0
  225. package/lib/components/pisellFloorMapLayout/components/ViewControlsWithZoom.js +63 -0
  226. package/lib/components/pisellFloorMapLayout/components/index.d.ts +14 -0
  227. package/lib/components/pisellFloorMapLayout/components/index.js +23 -2
  228. package/lib/components/pisellFloorMapLayout/context/FloorMapLayoutContext.d.ts +16 -0
  229. package/lib/components/pisellFloorMapLayout/context/FloorMapLayoutContext.js +54 -0
  230. package/lib/components/pisellFloorMapLayout/context/mergeFloorMapLayoutContext.d.ts +5 -0
  231. package/lib/components/pisellFloorMapLayout/context/mergeFloorMapLayoutContext.js +46 -0
  232. package/lib/components/pisellFloorMapLayout/hooks/useFloorMapEditState.d.ts +60 -0
  233. package/lib/components/pisellFloorMapLayout/hooks/useFloorMapEditState.js +429 -0
  234. package/lib/components/pisellFloorMapLayout/hooks/useFloorMapPaletteTouchDrag.d.ts +21 -0
  235. package/lib/components/pisellFloorMapLayout/hooks/useFloorMapPaletteTouchDrag.js +146 -0
  236. package/lib/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.d.ts +67 -0
  237. package/lib/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.js +263 -0
  238. package/lib/components/pisellFloorMapLayout/index.d.ts +9 -2
  239. package/lib/components/pisellFloorMapLayout/index.js +31 -2
  240. package/lib/components/pisellFloorMapLayout/locales.d.ts +186 -0
  241. package/lib/components/pisellFloorMapLayout/locales.js +206 -0
  242. package/lib/components/pisellFloorMapLayout/types.d.ts +346 -1
  243. package/lib/components/pisellFloorMapLayout/types.js +15 -0
  244. package/lib/components/pisellFloorMapLayout/utils/floorMapCanvasDisplay.d.ts +20 -0
  245. package/lib/components/pisellFloorMapLayout/utils/floorMapCanvasDisplay.js +126 -0
  246. package/lib/components/pisellFloorMapLayout/utils/floorMapConfigMerge.d.ts +8 -0
  247. package/lib/components/pisellFloorMapLayout/utils/floorMapConfigMerge.js +66 -0
  248. package/lib/components/pisellFloorMapLayout/utils/floorMapDropUtils.d.ts +26 -0
  249. package/lib/components/pisellFloorMapLayout/utils/floorMapDropUtils.js +61 -0
  250. package/lib/components/pisellFloorMapLayout/utils/floorMapElementKindUtils.d.ts +11 -0
  251. package/lib/components/pisellFloorMapLayout/utils/floorMapElementKindUtils.js +70 -0
  252. package/lib/components/pisellFloorMapLayout/utils/floorMapFallbackRender.d.ts +11 -0
  253. package/lib/components/pisellFloorMapLayout/utils/floorMapFallbackRender.js +135 -0
  254. package/lib/components/pisellFloorMapLayout/utils/floorMapStageDefaults.d.ts +8 -0
  255. package/lib/components/pisellFloorMapLayout/utils/floorMapStageDefaults.js +33 -0
  256. package/lib/components/pisellFloorMapLayout/utils/floorMapViewConfigDiff.d.ts +8 -0
  257. package/lib/components/pisellFloorMapLayout/utils/floorMapViewConfigDiff.js +128 -0
  258. package/lib/components/pisellFloorMapLayout/utils/layoutMeasurements.d.ts +30 -0
  259. package/lib/components/pisellFloorMapLayout/utils/layoutMeasurements.js +96 -0
  260. package/lib/components/pisellFloorMapLayout/utils/mergeCanvasesForTabs.d.ts +7 -0
  261. package/lib/components/pisellFloorMapLayout/utils/mergeCanvasesForTabs.js +41 -0
  262. package/lib/components/pisellFloorMapLayout/utils/snap.d.ts +10 -0
  263. package/lib/components/pisellFloorMapLayout/utils/snap.js +43 -0
  264. package/lib/components/pisellHierarchicalSummaryList/PisellHierarchicalSummaryList.d.ts +6 -0
  265. package/lib/components/pisellHierarchicalSummaryList/PisellHierarchicalSummaryList.js +179 -0
  266. package/lib/components/pisellHierarchicalSummaryList/PisellHierarchicalSummaryList.less +129 -0
  267. package/lib/components/pisellHierarchicalSummaryList/PisellHierarchicalSummaryList.stories.d.ts +10 -0
  268. package/lib/components/pisellHierarchicalSummaryList/PisellHierarchicalSummaryList.stories.js +218 -0
  269. package/lib/components/pisellHierarchicalSummaryList/components/Row.d.ts +35 -0
  270. package/lib/components/pisellHierarchicalSummaryList/components/Row.js +343 -0
  271. package/lib/components/pisellHierarchicalSummaryList/components/index.d.ts +1 -0
  272. package/lib/components/pisellHierarchicalSummaryList/components/index.js +29 -0
  273. package/lib/components/pisellHierarchicalSummaryList/hooks/index.d.ts +2 -0
  274. package/lib/components/pisellHierarchicalSummaryList/hooks/index.js +29 -0
  275. package/lib/components/pisellHierarchicalSummaryList/hooks/useExpandedKeys.d.ts +15 -0
  276. package/lib/components/pisellHierarchicalSummaryList/hooks/useExpandedKeys.js +51 -0
  277. package/lib/components/pisellHierarchicalSummaryList/index.d.ts +5 -0
  278. package/lib/components/pisellHierarchicalSummaryList/index.js +31 -0
  279. package/lib/components/pisellHierarchicalSummaryList/types.d.ts +248 -0
  280. package/lib/components/pisellHierarchicalSummaryList/types.js +17 -0
  281. package/lib/components/pisellRecordBoard/PisellRecordBoard.d.ts +2 -1
  282. package/lib/components/pisellRecordBoard/PisellRecordBoard.js +54 -8
  283. package/lib/components/pisellRecordBoard/PisellRecordBoard.stories.d.ts +4 -0
  284. package/lib/components/pisellRecordBoard/PisellRecordBoard.stories.js +915 -25
  285. package/lib/components/pisellRecordBoard/index.d.ts +7 -2
  286. package/lib/components/pisellRecordBoard/index.js +1 -0
  287. package/lib/components/pisellRecordBoard/shellFrame/ColumnSetting/index.js +8 -2
  288. package/lib/components/pisellRecordBoard/shellFrame/FloorMap.d.ts +14 -0
  289. package/lib/components/pisellRecordBoard/shellFrame/FloorMap.js +27 -0
  290. package/lib/components/pisellRecordBoard/shellFrame/ShellBodyMetaContext.d.ts +16 -0
  291. package/lib/components/pisellRecordBoard/shellFrame/ShellBodyMetaContext.js +45 -0
  292. package/lib/components/pisellRecordBoard/shellFrame/ToolBar/ToolBarFilter.less +47 -0
  293. package/lib/components/pisellRecordBoard/shellFrame/ToolBar/index.js +48 -4
  294. package/lib/components/pisellRecordBoard/shellFrame/index.d.ts +4 -10
  295. package/lib/components/pisellRecordBoard/shellFrame/index.js +87 -6
  296. package/lib/components/pisellRecordBoard/types.d.ts +55 -1
  297. package/lib/components/pisellRecordBoard/utils/partitionShellFrameChildren.d.ts +15 -0
  298. package/lib/components/pisellRecordBoard/utils/partitionShellFrameChildren.js +88 -0
  299. package/lib/components/pisellReservationSchedule/PisellReservationSchedule.d.ts +10 -0
  300. package/lib/components/pisellReservationSchedule/PisellReservationSchedule.js +200 -0
  301. package/lib/components/pisellReservationSchedule/PisellReservationSchedule.less +88 -0
  302. package/lib/components/pisellReservationSchedule/PisellReservationSchedule.stories.d.ts +12 -0
  303. package/lib/components/pisellReservationSchedule/PisellReservationSchedule.stories.js +116 -0
  304. package/lib/components/pisellReservationSchedule/index.d.ts +2 -0
  305. package/lib/components/pisellReservationSchedule/index.js +29 -0
  306. package/lib/components/pisellReservationSchedule/locales.d.ts +25 -0
  307. package/lib/components/pisellReservationSchedule/locales.js +47 -0
  308. package/lib/components/pisellReservationSchedule/types.d.ts +42 -0
  309. package/lib/components/pisellReservationSchedule/types.js +17 -0
  310. package/lib/components/pisellReservationScheduleBand/PisellReservationScheduleBand.d.ts +10 -0
  311. package/lib/components/pisellReservationScheduleBand/PisellReservationScheduleBand.js +127 -0
  312. package/lib/components/pisellReservationScheduleBand/PisellReservationScheduleBand.less +49 -0
  313. package/lib/components/pisellReservationScheduleBand/PisellReservationScheduleBand.stories.d.ts +16 -0
  314. package/lib/components/pisellReservationScheduleBand/PisellReservationScheduleBand.stories.js +181 -0
  315. package/lib/components/pisellReservationScheduleBand/index.d.ts +2 -0
  316. package/lib/components/pisellReservationScheduleBand/index.js +29 -0
  317. package/lib/components/pisellReservationScheduleBand/types.d.ts +45 -0
  318. package/lib/components/pisellReservationScheduleBand/types.js +17 -0
  319. package/lib/components/pisellTimeNavigator/PisellTimeNavigator.d.ts +10 -0
  320. package/lib/components/pisellTimeNavigator/PisellTimeNavigator.js +602 -0
  321. package/lib/components/pisellTimeNavigator/PisellTimeNavigator.less +378 -0
  322. package/lib/components/pisellTimeNavigator/PisellTimeNavigator.stories.d.ts +79 -0
  323. package/lib/components/pisellTimeNavigator/PisellTimeNavigator.stories.js +273 -0
  324. package/lib/components/pisellTimeNavigator/components/BackgroundLayer.d.ts +14 -0
  325. package/lib/components/pisellTimeNavigator/components/BackgroundLayer.js +81 -0
  326. package/lib/components/pisellTimeNavigator/components/CursorLayer.d.ts +20 -0
  327. package/lib/components/pisellTimeNavigator/components/CursorLayer.js +74 -0
  328. package/lib/components/pisellTimeNavigator/components/GestureLayer.d.ts +31 -0
  329. package/lib/components/pisellTimeNavigator/components/GestureLayer.js +159 -0
  330. package/lib/components/pisellTimeNavigator/components/NowButton.d.ts +14 -0
  331. package/lib/components/pisellTimeNavigator/components/NowButton.js +81 -0
  332. package/lib/components/pisellTimeNavigator/components/ScaleLayer.d.ts +17 -0
  333. package/lib/components/pisellTimeNavigator/components/ScaleLayer.js +95 -0
  334. package/lib/components/pisellTimeNavigator/components/index.d.ts +5 -0
  335. package/lib/components/pisellTimeNavigator/components/index.js +41 -0
  336. package/lib/components/pisellTimeNavigator/hooks/index.d.ts +5 -0
  337. package/lib/components/pisellTimeNavigator/hooks/index.js +35 -0
  338. package/lib/components/pisellTimeNavigator/hooks/useDragInertia.d.ts +14 -0
  339. package/lib/components/pisellTimeNavigator/hooks/useDragInertia.js +136 -0
  340. package/lib/components/pisellTimeNavigator/hooks/useRealtime.d.ts +5 -0
  341. package/lib/components/pisellTimeNavigator/hooks/useRealtime.js +49 -0
  342. package/lib/components/pisellTimeNavigator/hooks/useTimeAxis.d.ts +27 -0
  343. package/lib/components/pisellTimeNavigator/hooks/useTimeAxis.js +81 -0
  344. package/lib/components/pisellTimeNavigator/index.d.ts +4 -0
  345. package/lib/components/pisellTimeNavigator/index.js +42 -0
  346. package/lib/components/pisellTimeNavigator/locales.d.ts +22 -0
  347. package/lib/components/pisellTimeNavigator/locales.js +41 -0
  348. package/lib/components/pisellTimeNavigator/types.d.ts +145 -0
  349. package/lib/components/pisellTimeNavigator/types.js +17 -0
  350. package/lib/components/pisellTimeNavigator/utils/index.d.ts +26 -0
  351. package/lib/components/pisellTimeNavigator/utils/index.js +98 -0
  352. package/lib/index.d.ts +15 -5
  353. package/lib/index.js +35 -0
  354. package/lib/locales/en-US.d.ts +2 -0
  355. package/lib/locales/en-US.js +2 -0
  356. package/lib/locales/zh-CN.d.ts +2 -0
  357. package/lib/locales/zh-CN.js +2 -0
  358. package/lib/locales/zh-TW.d.ts +2 -0
  359. package/lib/locales/zh-TW.js +2 -0
  360. package/lowcode/floor-map-layout-provider/meta.ts +65 -0
  361. package/lowcode/pisell-floor-map-layout/meta.ts +3820 -1
  362. package/lowcode/pisell-hierarchical-summary-list/meta.ts +244 -0
  363. package/lowcode/pisell-reservation-schedule/index.ts +3 -0
  364. package/lowcode/pisell-reservation-schedule/meta.ts +69 -0
  365. package/lowcode/pisell-reservation-schedule/snippets.ts +1 -0
  366. package/lowcode/pisell-reservation-schedule-band/index.ts +3 -0
  367. package/lowcode/pisell-reservation-schedule-band/meta.ts +96 -0
  368. package/lowcode/pisell-reservation-schedule-band/snippets.ts +1 -0
  369. package/lowcode/pisell-time-navigator/index.ts +3 -0
  370. package/lowcode/pisell-time-navigator/meta.ts +298 -0
  371. package/lowcode/pisell-time-navigator/snippets.ts +1 -0
  372. package/lowcode/render-figma-style-round-table-card/meta.ts +589 -0
  373. package/lowcode/render-figma-style-table-card/meta.ts +589 -0
  374. package/package.json +4 -4
@@ -0,0 +1,602 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/components/pisellTimeNavigator/PisellTimeNavigator.tsx
30
+ var PisellTimeNavigator_exports = {};
31
+ __export(PisellTimeNavigator_exports, {
32
+ PisellTimeNavigator: () => PisellTimeNavigator
33
+ });
34
+ module.exports = __toCommonJS(PisellTimeNavigator_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_dayjs = __toESM(require("dayjs"));
37
+ var import_classnames = __toESM(require("classnames"));
38
+ var import_PisellScrollView = __toESM(require("../PisellScrollView"));
39
+ var import_utils = require("./utils");
40
+ var import_hooks = require("./hooks");
41
+ var import_components = require("./components");
42
+ var import_utils2 = require("@pisell/utils");
43
+ var import_locales = __toESM(require("./locales"));
44
+ var import_PisellTimeNavigator = require("./PisellTimeNavigator.less");
45
+ var import_useEngineContext = __toESM(require("../../hooks/useEngineContext"));
46
+ var CELL_SIZE_H = 82;
47
+ var CELL_SIZE_V = 20;
48
+ function PisellTimeNavigator(props) {
49
+ var _a, _b;
50
+ const {
51
+ value: valueProp,
52
+ onChange,
53
+ defaultValue,
54
+ referenceDate: referenceDateProp,
55
+ realtime = false,
56
+ range,
57
+ stepMinutes = 15,
58
+ majorStepMinutes = 60,
59
+ cursorMode = "axis-moves",
60
+ orientation = "horizontal",
61
+ disabledRanges,
62
+ showNowButton = true,
63
+ userInteractionLocked = false,
64
+ snapToStep = true,
65
+ inertia = false,
66
+ businessHours,
67
+ pastTimeFade,
68
+ containerStyle,
69
+ scaleStyle,
70
+ cursorStyle,
71
+ nowButtonStyle,
72
+ className,
73
+ style,
74
+ locale,
75
+ timeFormat = "HH:mm",
76
+ renderNowButton
77
+ } = props;
78
+ const context = (0, import_useEngineContext.default)();
79
+ import_utils2.locales.init(
80
+ import_locales.default,
81
+ ((_b = (_a = context == null ? void 0 : context.engine) == null ? void 0 : _a.props) == null ? void 0 : _b.locale) || "en"
82
+ );
83
+ const referenceDateFromProp = (0, import_react.useMemo)(() => {
84
+ if (referenceDateProp == null) return void 0;
85
+ const d = (0, import_utils.parseValue)(referenceDateProp, (0, import_dayjs.default)());
86
+ return (d ?? (0, import_dayjs.default)()).startOf("day");
87
+ }, [referenceDateProp]);
88
+ const referenceDate = referenceDateFromProp ?? (0, import_dayjs.default)().startOf("day");
89
+ const isHorizontal = orientation === "horizontal";
90
+ const cellSizePx = isHorizontal ? CELL_SIZE_H : CELL_SIZE_V;
91
+ const axis = (0, import_hooks.useTimeAxis)({
92
+ range,
93
+ stepMinutes,
94
+ referenceDate,
95
+ orientation,
96
+ cellSizePx
97
+ });
98
+ const isControlled = valueProp !== void 0;
99
+ const [internalValue, setInternalValue] = (0, import_react.useState)(() => {
100
+ const v = valueProp ?? defaultValue;
101
+ return (0, import_utils.parseValue)(v, referenceDate);
102
+ });
103
+ const value = isControlled ? valueProp != null ? (0, import_utils.parseValue)(valueProp, referenceDate) : null : internalValue;
104
+ const effectiveValue = value ?? axis.rangeStart;
105
+ const scrollRef = (0, import_react.useRef)(null);
106
+ const viewportWrapRef = (0, import_react.useRef)(null);
107
+ const scrollToCenterInProgressRef = (0, import_react.useRef)(false);
108
+ const valueUpdatedByScrollRef = (0, import_react.useRef)(false);
109
+ const isPointerDownRef = (0, import_react.useRef)(false);
110
+ const [scrollPosition, setScrollPosition] = (0, import_react.useState)({
111
+ scrollLeft: 0,
112
+ scrollTop: 0
113
+ });
114
+ const [viewportSize, setViewportSize] = (0, import_react.useState)({ w: 0, h: 0 });
115
+ const [, setNowTick] = (0, import_react.useState)(0);
116
+ (0, import_react.useEffect)(() => {
117
+ const id = setInterval(() => setNowTick((n) => n + 1), 60 * 1e3);
118
+ return () => clearInterval(id);
119
+ }, []);
120
+ const isAxisMoves = cursorMode === "axis-moves";
121
+ const getScrollContainer = (0, import_react.useCallback)(
122
+ () => {
123
+ var _a2, _b2;
124
+ return ((_b2 = (_a2 = scrollRef.current) == null ? void 0 : _a2.getScrollContainer) == null ? void 0 : _b2.call(_a2)) ?? null;
125
+ },
126
+ []
127
+ );
128
+ (0, import_react.useEffect)(() => {
129
+ const el = viewportWrapRef.current;
130
+ if (!el) return;
131
+ const setSize = () => {
132
+ const w = el.clientWidth;
133
+ const h = el.clientHeight;
134
+ setViewportSize(
135
+ (prev) => prev.w === w && prev.h === h ? prev : { w, h }
136
+ );
137
+ };
138
+ setSize();
139
+ const ro = new ResizeObserver(setSize);
140
+ ro.observe(el);
141
+ return () => ro.disconnect();
142
+ }, []);
143
+ const inertiaHandlers = (0, import_hooks.useDragInertia)({
144
+ enabled: inertia && !userInteractionLocked,
145
+ orientation,
146
+ getScrollContainer
147
+ });
148
+ const effectiveViewportW = viewportSize.w || 400;
149
+ const effectiveViewportH = viewportSize.h || 300;
150
+ const halfViewportW = effectiveViewportW / 2;
151
+ const halfViewportH = effectiveViewportH / 2;
152
+ const dotOffsetPx = isHorizontal ? cellSizePx / 2 : 0;
153
+ const axisStartMarginW = Math.max(0, halfViewportW - dotOffsetPx);
154
+ const axisStartMarginH = Math.max(0, halfViewportH - dotOffsetPx);
155
+ const handleScroll = (0, import_react.useCallback)(
156
+ (data) => {
157
+ if (scrollToCenterInProgressRef.current) return;
158
+ setScrollPosition({
159
+ scrollLeft: data.scrollLeft,
160
+ scrollTop: data.scrollTop
161
+ });
162
+ setViewportSize({ w: data.clientWidth, h: data.clientHeight });
163
+ if (userInteractionLocked) return;
164
+ if (!isAxisMoves || data.clientWidth <= 0 && data.clientHeight <= 0)
165
+ return;
166
+ const halfW = data.clientWidth / 2;
167
+ const halfH = data.clientHeight / 2;
168
+ const hasPadding = isHorizontal ? effectiveViewportW > 0 : effectiveViewportH > 0;
169
+ const centerOffset = isHorizontal ? hasPadding ? data.scrollLeft + dotOffsetPx : data.scrollLeft + halfW : hasPadding ? data.scrollTop + dotOffsetPx : data.scrollTop + halfH;
170
+ const t = axis.offsetToTimeContinuous(centerOffset);
171
+ if (!t) return;
172
+ const tMinute = t.startOf("minute");
173
+ if ((0, import_utils.isInDisabledRanges)(tMinute, disabledRanges)) return;
174
+ valueUpdatedByScrollRef.current = true;
175
+ if (!isControlled) setInternalValue(tMinute);
176
+ onChange == null ? void 0 : onChange(tMinute);
177
+ },
178
+ [
179
+ isAxisMoves,
180
+ isHorizontal,
181
+ isControlled,
182
+ axis.offsetToTimeContinuous,
183
+ disabledRanges,
184
+ onChange,
185
+ effectiveViewportW,
186
+ effectiveViewportH,
187
+ dotOffsetPx,
188
+ userInteractionLocked
189
+ ]
190
+ );
191
+ const performSnapFromScrollPosition = (0, import_react.useCallback)(
192
+ (scrollLeft, scrollTop, clientWidth, clientHeight) => {
193
+ if (!isAxisMoves || clientWidth <= 0 && clientHeight <= 0) return;
194
+ valueUpdatedByScrollRef.current = false;
195
+ const hasPadding = isHorizontal ? effectiveViewportW > 0 : effectiveViewportH > 0;
196
+ const centerOffset = isHorizontal ? hasPadding ? scrollLeft + dotOffsetPx : scrollLeft + clientWidth / 2 : hasPadding ? scrollTop + dotOffsetPx : scrollTop + clientHeight / 2;
197
+ const t = axis.offsetToTimeContinuous(centerOffset);
198
+ if (!t) return;
199
+ const snapped = snapToStep ? (0, import_utils.snapToStepMinutes)(t, stepMinutes) : t.startOf("minute");
200
+ if ((0, import_utils.isInDisabledRanges)(snapped, disabledRanges)) return;
201
+ if (!isControlled) setInternalValue(snapped);
202
+ onChange == null ? void 0 : onChange(snapped);
203
+ },
204
+ [
205
+ isAxisMoves,
206
+ isHorizontal,
207
+ isControlled,
208
+ axis.offsetToTimeContinuous,
209
+ snapToStep,
210
+ stepMinutes,
211
+ disabledRanges,
212
+ onChange,
213
+ effectiveViewportW,
214
+ effectiveViewportH,
215
+ dotOffsetPx
216
+ ]
217
+ );
218
+ const scrollEndClearTimeoutRef = (0, import_react.useRef)(
219
+ null
220
+ );
221
+ const handleScrollEnd = (0, import_react.useCallback)(
222
+ (data) => {
223
+ if (userInteractionLocked) return;
224
+ if (scrollToCenterInProgressRef.current) {
225
+ if (scrollEndClearTimeoutRef.current)
226
+ clearTimeout(scrollEndClearTimeoutRef.current);
227
+ scrollEndClearTimeoutRef.current = setTimeout(() => {
228
+ scrollToCenterInProgressRef.current = false;
229
+ scrollEndClearTimeoutRef.current = null;
230
+ }, 500);
231
+ return;
232
+ }
233
+ if (isPointerDownRef.current) return;
234
+ performSnapFromScrollPosition(
235
+ data.scrollLeft,
236
+ data.scrollTop,
237
+ data.clientWidth,
238
+ data.clientHeight
239
+ );
240
+ },
241
+ [performSnapFromScrollPosition, userInteractionLocked]
242
+ );
243
+ const handlePointerUp = (0, import_react.useCallback)(
244
+ (e) => {
245
+ var _a2, _b2, _c, _d;
246
+ isPointerDownRef.current = false;
247
+ if (userInteractionLocked) return;
248
+ if ((_b2 = (_a2 = e.target) == null ? void 0 : _a2.closest) == null ? void 0 : _b2.call(_a2, ".pisell-time-navigator-now"))
249
+ return;
250
+ if (!isAxisMoves) return;
251
+ const container = (_d = (_c = scrollRef.current) == null ? void 0 : _c.getScrollContainer) == null ? void 0 : _d.call(_c);
252
+ if (!container) return;
253
+ performSnapFromScrollPosition(
254
+ container.scrollLeft,
255
+ container.scrollTop,
256
+ container.clientWidth,
257
+ container.clientHeight
258
+ );
259
+ },
260
+ [isAxisMoves, performSnapFromScrollPosition, userInteractionLocked]
261
+ );
262
+ const snapFn = (0, import_react.useCallback)(
263
+ (t) => (0, import_utils.snapToStepMinutes)(t, stepMinutes),
264
+ [stepMinutes]
265
+ );
266
+ const isInDisabled = (0, import_react.useCallback)(
267
+ (t) => (0, import_utils.isInDisabledRanges)(t, disabledRanges),
268
+ [disabledRanges]
269
+ );
270
+ const handleChange = (0, import_react.useCallback)(
271
+ (next) => {
272
+ if (isInDisabled(next)) return;
273
+ if (!isControlled) setInternalValue(next);
274
+ onChange == null ? void 0 : onChange(next);
275
+ },
276
+ [isControlled, onChange, isInDisabled]
277
+ );
278
+ (0, import_hooks.useRealtime)(realtime, () => {
279
+ const wall = (0, import_dayjs.default)().startOf("minute");
280
+ const [rangeStart, rangeEnd] = (0, import_utils.getRangeBounds)(range, referenceDate);
281
+ const clamped = wall.isBefore(rangeStart) ? rangeStart : wall.isAfter(rangeEnd) ? rangeEnd : wall;
282
+ const snapped = snapToStep ? snapFn(clamped) : clamped;
283
+ if (!isInDisabled(snapped)) handleChange(snapped);
284
+ });
285
+ (0, import_react.useEffect)(() => {
286
+ if (!isControlled && valueProp !== void 0) {
287
+ setInternalValue((0, import_utils.parseValue)(valueProp, referenceDate));
288
+ }
289
+ }, [isControlled, valueProp, referenceDate]);
290
+ const referenceDayMs = referenceDate.valueOf();
291
+ (0, import_react.useEffect)(() => {
292
+ if (isControlled) return;
293
+ setInternalValue((prev) => {
294
+ if (!prev) {
295
+ return (0, import_utils.parseValue)(defaultValue, referenceDate);
296
+ }
297
+ return referenceDate.hour(prev.hour()).minute(prev.minute()).second(0).millisecond(0);
298
+ });
299
+ }, [referenceDayMs, isControlled, defaultValue]);
300
+ const cursorOffsetPx = axis.timeToOffset(effectiveValue);
301
+ const wallAligned = (0, import_dayjs.default)().startOf("minute");
302
+ const currentTimeInRange = !wallAligned.isBefore(axis.rangeStart) && !wallAligned.isAfter(axis.rangeEnd);
303
+ const currentTimeOffsetPx = currentTimeInRange ? axis.timeToOffset(wallAligned) : void 0;
304
+ const SCROLL_SYNC_THRESHOLD_PX = 2;
305
+ const hasScrollPadding = isHorizontal ? effectiveViewportW > 0 : effectiveViewportH > 0;
306
+ const verticalTailPx = effectiveViewportH / 2;
307
+ const verticalWrapHeight = axisStartMarginH + axis.totalLengthPx + verticalTailPx;
308
+ const maxScrollPx = isHorizontal ? Math.max(0, axis.totalLengthPx - cellSizePx) : Math.max(0, verticalWrapHeight - effectiveViewportH);
309
+ (0, import_react.useEffect)(() => {
310
+ var _a2, _b2;
311
+ if (valueUpdatedByScrollRef.current) {
312
+ valueUpdatedByScrollRef.current = false;
313
+ return;
314
+ }
315
+ const container = (_b2 = (_a2 = scrollRef.current) == null ? void 0 : _a2.getScrollContainer) == null ? void 0 : _b2.call(_a2);
316
+ if (!container) return;
317
+ const viewportPx = isHorizontal ? container.clientWidth : container.clientHeight;
318
+ const targetScroll = hasScrollPadding ? Math.max(0, Math.min(cursorOffsetPx - dotOffsetPx, maxScrollPx)) : Math.max(
319
+ 0,
320
+ Math.min(
321
+ cursorOffsetPx - viewportPx / 2,
322
+ Math.max(0, axis.totalLengthPx - viewportPx)
323
+ )
324
+ );
325
+ const currentScroll = isHorizontal ? container.scrollLeft : container.scrollTop;
326
+ if (Math.abs(currentScroll - targetScroll) <= SCROLL_SYNC_THRESHOLD_PX)
327
+ return;
328
+ scrollToCenterInProgressRef.current = true;
329
+ if (isHorizontal) {
330
+ container.scrollTo({ left: targetScroll, behavior: "smooth" });
331
+ } else {
332
+ container.scrollTo({ top: targetScroll, behavior: "smooth" });
333
+ }
334
+ }, [
335
+ effectiveValue.valueOf(),
336
+ isHorizontal,
337
+ cursorOffsetPx,
338
+ maxScrollPx,
339
+ hasScrollPadding,
340
+ dotOffsetPx,
341
+ cellSizePx,
342
+ axis.totalLengthPx
343
+ ]);
344
+ const scrollToCenterTime = (0, import_react.useCallback)(
345
+ (t) => {
346
+ const container = getScrollContainer();
347
+ if (!container) return;
348
+ const offset = axis.timeToOffset(t);
349
+ const viewportPx = isHorizontal ? container.clientWidth : container.clientHeight;
350
+ const maxScroll = hasScrollPadding ? maxScrollPx : Math.max(0, axis.totalLengthPx - viewportPx);
351
+ const target = hasScrollPadding ? Math.max(0, Math.min(offset - dotOffsetPx, maxScrollPx)) : Math.max(0, Math.min(offset - viewportPx / 2, maxScroll));
352
+ scrollToCenterInProgressRef.current = true;
353
+ container.scrollTo({
354
+ left: isHorizontal ? target : 0,
355
+ top: isHorizontal ? 0 : target,
356
+ behavior: "smooth"
357
+ });
358
+ },
359
+ [
360
+ getScrollContainer,
361
+ axis.timeToOffset,
362
+ axis.totalLengthPx,
363
+ isHorizontal,
364
+ hasScrollPadding,
365
+ dotOffsetPx,
366
+ maxScrollPx
367
+ ]
368
+ );
369
+ const handleSelectTime = (0, import_react.useCallback)(
370
+ (t) => {
371
+ handleChange(t);
372
+ if (isAxisMoves) scrollToCenterTime(t);
373
+ },
374
+ [handleChange, isAxisMoves, scrollToCenterTime]
375
+ );
376
+ const handleNow = (0, import_react.useCallback)(() => {
377
+ valueUpdatedByScrollRef.current = false;
378
+ const wall = (0, import_dayjs.default)().startOf("minute");
379
+ const [rangeStart, rangeEnd] = (0, import_utils.getRangeBounds)(range, referenceDate);
380
+ const clamped = wall.isBefore(rangeStart) ? rangeStart : wall.isAfter(rangeEnd) ? rangeEnd : wall;
381
+ handleChange(clamped);
382
+ }, [range, referenceDate, handleChange]);
383
+ const businessHoursPx = (0, import_react.useMemo)(() => {
384
+ if (!businessHours) return void 0;
385
+ const [s, e] = (0, import_utils.getRangeBounds)(businessHours, referenceDate);
386
+ return [axis.timeToOffset(s), axis.timeToOffset(e)];
387
+ }, [businessHours, referenceDate, axis.timeToOffset]);
388
+ const scrollConfig = (0, import_react.useMemo)(
389
+ () => ({
390
+ show: false,
391
+ type: isHorizontal ? "lrArrows" : "tbArrows",
392
+ scrollDistance: cellSizePx
393
+ }),
394
+ [isHorizontal, cellSizePx]
395
+ );
396
+ return /* @__PURE__ */ import_react.default.createElement(
397
+ "div",
398
+ {
399
+ className: (0, import_classnames.default)(
400
+ "pisell-time-navigator",
401
+ `pisell-time-navigator--${orientation}`,
402
+ userInteractionLocked && "pisell-time-navigator--interaction-locked",
403
+ className
404
+ ),
405
+ style: isHorizontal ? style : { height: "100%", minHeight: 200, ...style }
406
+ },
407
+ /* @__PURE__ */ import_react.default.createElement(
408
+ "div",
409
+ {
410
+ ref: viewportWrapRef,
411
+ className: "pisell-time-navigator-viewport-wrap",
412
+ style: isHorizontal ? void 0 : { height: "100%", minHeight: 200, maxHeight: 800 },
413
+ onPointerDownCapture: () => {
414
+ isPointerDownRef.current = true;
415
+ },
416
+ onPointerUpCapture: handlePointerUp,
417
+ onPointerLeaveCapture: handlePointerUp
418
+ },
419
+ /* @__PURE__ */ import_react.default.createElement(
420
+ "div",
421
+ {
422
+ className: (0, import_classnames.default)(
423
+ "pisell-time-navigator-scroll-host",
424
+ userInteractionLocked && "pisell-time-navigator-scroll-host--interaction-locked"
425
+ )
426
+ },
427
+ /* @__PURE__ */ import_react.default.createElement(
428
+ import_PisellScrollView.default,
429
+ {
430
+ ref: scrollRef,
431
+ width: "100%",
432
+ height: "100%",
433
+ overflow: isHorizontal ? "x" : "y",
434
+ showScrollButtons: false,
435
+ scrollbarStyle: "none",
436
+ scrollActionsConfig: scrollConfig,
437
+ onScroll: handleScroll,
438
+ onScrollEnd: handleScrollEnd,
439
+ style: {
440
+ ...isHorizontal ? { height: 48 } : {
441
+ width: 54,
442
+ minHeight: 200,
443
+ height: "100%",
444
+ maxHeight: 800
445
+ },
446
+ ...containerStyle
447
+ }
448
+ },
449
+ /* @__PURE__ */ import_react.default.createElement(
450
+ import_components.GestureLayer,
451
+ {
452
+ orientation,
453
+ cellSizePx,
454
+ axisStartMarginPx: isHorizontal ? axisStartMarginW : axisStartMarginH,
455
+ offsetToTime: axis.offsetToTime,
456
+ onSelectTime: handleSelectTime,
457
+ isInDisabledRanges: isInDisabled,
458
+ snapToStep,
459
+ stepMinutes,
460
+ snapFn,
461
+ scrollPosition,
462
+ viewportSize,
463
+ onPointerDown: inertiaHandlers.onPointerDown,
464
+ onPointerMove: inertiaHandlers.onPointerMove,
465
+ onPointerUp: inertiaHandlers.onPointerUp,
466
+ onPointerLeave: inertiaHandlers.onPointerUp
467
+ },
468
+ /* @__PURE__ */ import_react.default.createElement(
469
+ "div",
470
+ {
471
+ className: "pisell-time-navigator-axis-wrap",
472
+ style: isHorizontal ? {
473
+ width: axis.totalLengthPx + (effectiveViewportW - cellSizePx),
474
+ minHeight: 48
475
+ } : {
476
+ width: "100%"
477
+ /* 不设 height,由轴(marginTop + 内容 + marginBottom)自然撑开,避免固定高度与 margin 的 CSS 盒模型歧义 */
478
+ }
479
+ },
480
+ isHorizontal && currentTimeOffsetPx != null && currentTimeOffsetPx >= 0 && /* @__PURE__ */ import_react.default.createElement(
481
+ "div",
482
+ {
483
+ className: "pisell-time-navigator-current-gradient pisell-time-navigator-current-gradient--horizontal",
484
+ style: {
485
+ left: axisStartMarginW + Math.max(0, currentTimeOffsetPx - CELL_SIZE_H),
486
+ top: 0,
487
+ width: Math.min(CELL_SIZE_H, currentTimeOffsetPx),
488
+ height: 48
489
+ },
490
+ "aria-hidden": true
491
+ }
492
+ ),
493
+ /* @__PURE__ */ import_react.default.createElement(
494
+ "div",
495
+ {
496
+ className: (0, import_classnames.default)(
497
+ "pisell-time-navigator-axis",
498
+ `pisell-time-navigator-axis--${orientation}`
499
+ ),
500
+ "data-time-navigator-axis": true,
501
+ style: isHorizontal ? {
502
+ width: axis.totalLengthPx,
503
+ height: 48,
504
+ marginLeft: axisStartMarginW
505
+ } : {
506
+ height: axis.totalLengthPx,
507
+ width: "100%",
508
+ marginTop: axisStartMarginH,
509
+ marginBottom: verticalTailPx
510
+ }
511
+ },
512
+ /* @__PURE__ */ import_react.default.createElement(
513
+ import_components.BackgroundLayer,
514
+ {
515
+ orientation,
516
+ pastTimeFade,
517
+ businessHoursPx
518
+ }
519
+ ),
520
+ /* @__PURE__ */ import_react.default.createElement(
521
+ import_components.ScaleLayer,
522
+ {
523
+ orientation,
524
+ ticks: axis.ticks,
525
+ stepMinutes,
526
+ majorStepMinutes,
527
+ timeFormat,
528
+ locale,
529
+ style: scaleStyle
530
+ }
531
+ ),
532
+ !isHorizontal && currentTimeOffsetPx != null && currentTimeOffsetPx >= 0 && /* @__PURE__ */ import_react.default.createElement(
533
+ "div",
534
+ {
535
+ className: "pisell-time-navigator-current-line",
536
+ style: {
537
+ left: 0,
538
+ top: currentTimeOffsetPx - 1,
539
+ width: "100%",
540
+ height: 2,
541
+ background: "#FF692E"
542
+ },
543
+ "aria-hidden": true
544
+ }
545
+ ),
546
+ !isAxisMoves && /* @__PURE__ */ import_react.default.createElement(
547
+ import_components.CursorLayer,
548
+ {
549
+ orientation,
550
+ value: effectiveValue,
551
+ timeFormat,
552
+ locale,
553
+ isRealtime: realtime,
554
+ offsetPx: cursorOffsetPx,
555
+ style: cursorStyle
556
+ }
557
+ )
558
+ )
559
+ )
560
+ )
561
+ )
562
+ ),
563
+ isAxisMoves && /* @__PURE__ */ import_react.default.createElement(
564
+ "div",
565
+ {
566
+ className: (0, import_classnames.default)(
567
+ "pisell-time-navigator-cursor-fixed",
568
+ `pisell-time-navigator-cursor-fixed--${orientation}`
569
+ ),
570
+ "aria-hidden": true
571
+ },
572
+ /* @__PURE__ */ import_react.default.createElement(
573
+ import_components.CursorLayer,
574
+ {
575
+ orientation,
576
+ value: effectiveValue,
577
+ timeFormat,
578
+ locale,
579
+ isRealtime: realtime,
580
+ offsetPx: 0,
581
+ fixedCenter: true,
582
+ style: cursorStyle
583
+ }
584
+ )
585
+ ),
586
+ showNowButton && /* @__PURE__ */ import_react.default.createElement(
587
+ import_components.NowButton,
588
+ {
589
+ orientation,
590
+ onClick: handleNow,
591
+ style: nowButtonStyle,
592
+ renderCustom: renderNowButton
593
+ }
594
+ )
595
+ )
596
+ );
597
+ }
598
+ PisellTimeNavigator.displayName = "PisellTimeNavigator";
599
+ // Annotate the CommonJS export names for ESM import in node:
600
+ 0 && (module.exports = {
601
+ PisellTimeNavigator
602
+ });