@pisell/materials 6.11.42 → 6.11.44

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 (360) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/index.js +1 -1
  5. package/build/lowcode/meta.js +1 -1
  6. package/build/lowcode/preview.js +8 -8
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +18 -18
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +18 -18
  11. package/es/components/Pagination/index.d.ts +0 -1
  12. package/es/components/PisellCards/components/PisellImageCard/PisellImageCard.d.ts +0 -1
  13. package/es/components/PisellFields/index.d.ts +0 -1
  14. package/es/components/PisellMetrics/index.d.ts +0 -1
  15. package/es/components/cardPro/index.d.ts +1 -0
  16. package/es/components/colorPicker/index.d.ts +0 -1
  17. package/es/components/dataSourceComponents/dataSourceForm/formItem.d.ts +0 -1
  18. package/es/components/dataSourceComponents/dataSourceForm/utils.d.ts +1 -1
  19. package/es/components/dataSourceComponents/dataSourceShow/dataSourceImage/index.d.ts +0 -1
  20. package/es/components/dataSourceComponents/dataSourceShow/dataSourceQRCode/index.d.ts +0 -1
  21. package/es/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +0 -1
  22. package/es/components/dataSourceComponents/dataSourceTable/filter/utils.d.ts +0 -1
  23. package/es/components/dataSourceComponents/dataSourceTable/hooks/useDataSourceKey.d.ts +2 -3
  24. package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +3 -3
  25. package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableQuery.d.ts +0 -1
  26. package/es/components/dataSourceComponents/dataSourceWrapper/index.d.ts +0 -1
  27. package/es/components/dataSourceComponents/fields/Input.Json/ReadPretty.d.ts +0 -1
  28. package/es/components/dataSourceComponents/fields/Input.Password/ReadPretty.d.ts +0 -1
  29. package/es/components/dataSourceComponents/fields/Input.Subdomain/index.d.ts +1 -1
  30. package/es/components/dataSourceComponents/fields/RecordListWrapper/index.d.ts +1 -2
  31. package/es/components/dataSourceComponents/fields/Select/index.d.ts +1 -2
  32. package/es/components/dataSourceComponents/fields/Tabs/index.d.ts +1 -2
  33. package/es/components/dataSourceComponents/fields/Upload/ReadPretty.d.ts +0 -1
  34. package/es/components/dataSourceComponents/fields/Upload/utils.d.ts +1 -1
  35. package/es/components/dataSourceComponents/fields/index.d.ts +16 -17
  36. package/es/components/date-picker/datePickerCpt.d.ts +0 -1
  37. package/es/components/date-picker/index.d.ts +0 -1
  38. package/es/components/drag-sort-tree/TreeItem/index.d.ts +1 -0
  39. package/es/components/filter/components/FilterItem/index.js +3 -1
  40. package/es/components/filter/components/QuickFilter/index.js +3 -2
  41. package/es/components/filter/components/items/index.d.ts +0 -1
  42. package/es/components/filter/components/items/text/Editor/index.d.ts +0 -1
  43. package/es/components/filter/components/items/text/Preview/index.d.ts +0 -1
  44. package/es/components/filter/components/items/text/index.d.ts +0 -1
  45. package/es/components/filter/index.d.ts +0 -1
  46. package/es/components/list/index.d.ts +0 -1
  47. package/es/components/lowCodePage/index.d.ts +0 -1
  48. package/es/components/pisellAdjustPrice/PisellAdjustPriceInputNumber.d.ts +0 -1
  49. package/es/components/pisellDataSourceContainer/PisellDataSourceContainer.d.ts +0 -1
  50. package/es/components/pisellDataSourceContainer/hooks/useDataSourceKey.d.ts +2 -3
  51. package/es/components/pisellDatePicker/datePickerCpt.d.ts +1 -0
  52. package/es/components/pisellFilter/index.d.ts +0 -1
  53. package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.js +175 -24
  54. package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.less +22 -0
  55. package/es/components/pisellFloorMapLayout/components/FigmaTableCard.d.ts +2 -2
  56. package/es/components/pisellFloorMapLayout/components/FigmaTableCard.js +268 -103
  57. package/es/components/pisellFloorMapLayout/components/FloorMapEditPanel.js +40 -4
  58. package/es/components/pisellFloorMapLayout/components/FloorMapEditTopBar.d.ts +22 -0
  59. package/es/components/pisellFloorMapLayout/components/FloorMapEditTopBar.js +138 -12
  60. package/es/components/pisellFloorMapLayout/components/FloorMapEditTopBar.less +9 -1
  61. package/es/components/pisellFloorMapLayout/components/FloorMapToolbar.js +65 -4
  62. package/es/components/pisellFloorMapLayout/components/FloorMapToolbar.less +97 -4
  63. package/es/components/pisellFloorMapLayout/components/HistoryIcons.d.ts +39 -0
  64. package/es/components/pisellFloorMapLayout/components/HistoryIcons.js +75 -0
  65. package/es/components/pisellFloorMapLayout/components/ItemLayer.js +14 -1
  66. package/es/components/pisellFloorMapLayout/components/ViewControls.d.ts +9 -0
  67. package/es/components/pisellFloorMapLayout/components/ViewControls.js +96 -12
  68. package/es/components/pisellFloorMapLayout/components/ViewControls.less +224 -21
  69. package/es/components/pisellFloorMapLayout/components/ViewControlsWithZoom.d.ts +6 -0
  70. package/es/components/pisellFloorMapLayout/components/ViewControlsWithZoom.js +3 -0
  71. package/es/components/pisellFloorMapLayout/floorMapLayoutConstants.d.ts +4 -0
  72. package/es/components/pisellFloorMapLayout/floorMapLayoutConstants.js +4 -0
  73. package/es/components/pisellFloorMapLayout/hooks/floorMapViewportPersistence.d.ts +25 -0
  74. package/es/components/pisellFloorMapLayout/hooks/floorMapViewportPersistence.js +68 -0
  75. package/es/components/pisellFloorMapLayout/hooks/useDraftConfigHistory.d.ts +18 -0
  76. package/es/components/pisellFloorMapLayout/hooks/useDraftConfigHistory.js +104 -0
  77. package/es/components/pisellFloorMapLayout/hooks/useFloorMapEditState.d.ts +5 -0
  78. package/es/components/pisellFloorMapLayout/hooks/useFloorMapEditState.js +121 -34
  79. package/es/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.d.ts +23 -1
  80. package/es/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.js +345 -29
  81. package/es/components/pisellFloorMapLayout/index.d.ts +1 -0
  82. package/es/components/pisellFloorMapLayout/index.js +1 -0
  83. package/es/components/pisellFloorMapLayout/locales-ja.d.ts +20 -0
  84. package/es/components/pisellFloorMapLayout/locales-ja.js +21 -1
  85. package/es/components/pisellFloorMapLayout/locales-pt.d.ts +20 -0
  86. package/es/components/pisellFloorMapLayout/locales-pt.js +21 -1
  87. package/es/components/pisellFloorMapLayout/locales.d.ts +100 -0
  88. package/es/components/pisellFloorMapLayout/locales.js +63 -3
  89. package/es/components/pisellFloorMapLayout/types.d.ts +37 -0
  90. package/es/components/pisellFloorMapLayout/utils/floorMapElementNameAsTitle.d.ts +50 -0
  91. package/es/components/pisellFloorMapLayout/utils/floorMapElementNameAsTitle.js +74 -0
  92. package/es/components/pisellGridPro/ToolBar/index.less +5 -4
  93. package/es/components/pisellInput/components/BankCard/index.d.ts +1 -0
  94. package/es/components/pisellInput/components/SecurityCode/index.d.ts +1 -0
  95. package/es/components/pisellLoading/index.d.ts +0 -1
  96. package/es/components/pisellModal/components/IpadModal/index.d.ts +0 -1
  97. package/es/components/pisellModal/components/MobileModal/index.d.ts +0 -1
  98. package/es/components/pisellModal/components/index.d.ts +0 -1
  99. package/es/components/pisellRecordBoard/PisellRecordBoard.js +9 -3
  100. package/es/components/pisellRecordBoard/shellFrame/Calendar/utils/BookingCalendarStyle.d.ts +1 -1
  101. package/es/components/pisellRecordBoard/shellFrame/ColumnSetting/index.js +2 -1
  102. package/es/components/pisellRecordBoard/shellFrame/Pagination/index.js +9 -2
  103. package/es/components/pisellRecordBoard/shellFrame/ToolBar/index.js +99 -101
  104. package/es/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarConstants.d.ts +8 -0
  105. package/es/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarConstants.js +12 -0
  106. package/es/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarI18n.d.ts +13 -0
  107. package/es/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarI18n.js +66 -0
  108. package/es/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolbar.less +176 -10
  109. package/es/components/pisellRecordBoard/shellFrame/ToolBarQuickFilter/index.js +20 -2
  110. package/es/components/pisellRecordBoard/shellFrame/index.d.ts +6 -0
  111. package/es/components/pisellRecordBoard/shellFrame/index.js +3 -1
  112. package/es/components/pisellRecordBoard/types.d.ts +20 -1
  113. package/es/components/pisellShellFrame/PisellShellFrame.js +4 -1
  114. package/es/components/pisellShellFrame/PisellShellFrame.less +13 -0
  115. package/es/components/pisellShellFrame/types.d.ts +6 -0
  116. package/es/components/pisellTimeNavigator/PisellTimeNavigator.js +139 -29
  117. package/es/components/pisellTimeNavigator/PisellTimeNavigator.less +126 -13
  118. package/es/components/pisellTimeNavigator/components/CursorLayer.d.ts +3 -1
  119. package/es/components/pisellTimeNavigator/components/CursorLayer.js +3 -0
  120. package/es/components/pisellTimeNavigator/components/GestureLayer.d.ts +9 -1
  121. package/es/components/pisellTimeNavigator/components/GestureLayer.js +11 -4
  122. package/es/components/pisellTimeNavigator/timeNavigatorConstants.d.ts +20 -0
  123. package/es/components/pisellTimeNavigator/timeNavigatorConstants.js +27 -0
  124. package/es/components/pisellTooltip/index.d.ts +1 -0
  125. package/es/components/productCard/components/Action/index.d.ts +1 -0
  126. package/es/components/productCard/components/AmountFooter/index.d.ts +0 -1
  127. package/es/components/productCard/components/MultiDay/index.d.ts +0 -1
  128. package/es/components/productCard/components/Note/index.d.ts +0 -1
  129. package/es/components/productCard/components/Packages/components/collapsibleList/utils.d.ts +0 -1
  130. package/es/components/productCard/components/Packages/components/options/index.d.ts +0 -1
  131. package/es/components/productCard/components/Packages/index.d.ts +0 -1
  132. package/es/components/productCard/components/Time/components/SelectResource/index.d.ts +0 -1
  133. package/es/components/productCard/components/Time/index.d.ts +0 -1
  134. package/es/components/qrcode/index.d.ts +0 -1
  135. package/es/components/table/Actions/component/ColumnsSetting/index.d.ts +0 -1
  136. package/es/components/table/Actions/component/ExportImport/index.d.ts +0 -1
  137. package/es/components/table/Actions/component/GallerySetting/index.d.ts +0 -1
  138. package/es/components/table/Actions/component/Group/index.d.ts +0 -1
  139. package/es/components/table/Actions/index.d.ts +0 -1
  140. package/es/components/table/BasicTable/index.d.ts +0 -1
  141. package/es/components/table/Gallery/components/GalleryItem/components/Cover/index.d.ts +0 -1
  142. package/es/components/table/Gallery/components/GalleryItem/components/RenderFields/index.d.ts +0 -1
  143. package/es/components/table/Gallery/components/GalleryItem/components/Title/index.d.ts +0 -1
  144. package/es/components/table/Gallery/components/VirtualGrid/useGapSize.d.ts +2 -2
  145. package/es/components/table/Table/SelectField/index.d.ts +0 -1
  146. package/es/components/table/Table/fields/date/Show/index.d.ts +0 -1
  147. package/es/components/table/Table/fields/date/index.d.ts +0 -1
  148. package/es/components/table/Table/fields/image/Show/index.d.ts +0 -1
  149. package/es/components/table/Table/fields/index.d.ts +0 -1
  150. package/es/components/table/Table/fields/link/Show/index.d.ts +0 -1
  151. package/es/components/table/Table/fields/number/Show/index.d.ts +0 -1
  152. package/es/components/table/Table/fields/number/index.d.ts +0 -1
  153. package/es/components/table/Table/fields/numberRange/Show/index.d.ts +0 -1
  154. package/es/components/table/Table/fields/numberRange/index.d.ts +0 -1
  155. package/es/components/table/Table/fields/oldRangePicker/index.d.ts +0 -1
  156. package/es/components/table/Table/fields/pSwitch/Show/index.d.ts +0 -1
  157. package/es/components/table/Table/fields/rangePicker/index.d.ts +0 -1
  158. package/es/components/table/Table/fields/search/Show/index.d.ts +0 -1
  159. package/es/components/table/Table/fields/search/index.d.ts +0 -1
  160. package/es/components/table/Table/fields/select/filterUtil/index.d.ts +1 -1
  161. package/es/components/table/Table/fields/select/index.d.ts +0 -1
  162. package/es/components/table/Table/fields/text/Show/index.d.ts +0 -1
  163. package/es/components/table/Table/fields/text/index.d.ts +0 -1
  164. package/es/components/table/Table/fields/treeSelect/filterUtil/index.d.ts +1 -1
  165. package/es/components/table/Table/fields/treeSelect/index.d.ts +0 -1
  166. package/es/components/table/Table/tableConfig/SortRow/index.d.ts +0 -1
  167. package/es/components/table/Table/tableConfig/summary/index.d.ts +0 -1
  168. package/es/components/table/Table/utils.d.ts +1 -1
  169. package/es/components/table/View/index.d.ts +0 -1
  170. package/es/components/versionSelect/index.d.ts +0 -1
  171. package/es/index.d.ts +8 -1
  172. package/es/index.js +8 -1
  173. package/es/locales/en-US.d.ts +2 -0
  174. package/es/locales/en-US.js +2 -0
  175. package/es/locales/ja.d.ts +2 -0
  176. package/es/locales/ja.js +2 -0
  177. package/es/locales/pt.d.ts +2 -0
  178. package/es/locales/pt.js +2 -0
  179. package/es/locales/zh-CN.d.ts +2 -0
  180. package/es/locales/zh-CN.js +2 -0
  181. package/es/locales/zh-TW.d.ts +2 -0
  182. package/es/locales/zh-TW.js +2 -0
  183. package/es/utils/index.d.ts +1 -1
  184. package/es/utils/platform.d.ts +1 -1
  185. package/lib/components/Pagination/index.d.ts +0 -1
  186. package/lib/components/PisellCards/components/PisellImageCard/PisellImageCard.d.ts +0 -1
  187. package/lib/components/PisellFields/index.d.ts +0 -1
  188. package/lib/components/PisellMetrics/index.d.ts +0 -1
  189. package/lib/components/cardPro/index.d.ts +1 -0
  190. package/lib/components/colorPicker/index.d.ts +0 -1
  191. package/lib/components/dataSourceComponents/dataSourceForm/formItem.d.ts +0 -1
  192. package/lib/components/dataSourceComponents/dataSourceForm/utils.d.ts +1 -1
  193. package/lib/components/dataSourceComponents/dataSourceShow/dataSourceImage/index.d.ts +0 -1
  194. package/lib/components/dataSourceComponents/dataSourceShow/dataSourceQRCode/index.d.ts +0 -1
  195. package/lib/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +0 -1
  196. package/lib/components/dataSourceComponents/dataSourceTable/filter/utils.d.ts +0 -1
  197. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useDataSourceKey.d.ts +2 -3
  198. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +3 -3
  199. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableQuery.d.ts +0 -1
  200. package/lib/components/dataSourceComponents/dataSourceWrapper/index.d.ts +0 -1
  201. package/lib/components/dataSourceComponents/fields/Input.Json/ReadPretty.d.ts +0 -1
  202. package/lib/components/dataSourceComponents/fields/Input.Password/ReadPretty.d.ts +0 -1
  203. package/lib/components/dataSourceComponents/fields/Input.Subdomain/index.d.ts +1 -1
  204. package/lib/components/dataSourceComponents/fields/RecordListWrapper/index.d.ts +1 -2
  205. package/lib/components/dataSourceComponents/fields/Select/index.d.ts +1 -2
  206. package/lib/components/dataSourceComponents/fields/Tabs/index.d.ts +1 -2
  207. package/lib/components/dataSourceComponents/fields/Upload/ReadPretty.d.ts +0 -1
  208. package/lib/components/dataSourceComponents/fields/Upload/utils.d.ts +1 -1
  209. package/lib/components/dataSourceComponents/fields/index.d.ts +16 -17
  210. package/lib/components/date-picker/datePickerCpt.d.ts +0 -1
  211. package/lib/components/date-picker/index.d.ts +0 -1
  212. package/lib/components/drag-sort-tree/TreeItem/index.d.ts +1 -0
  213. package/lib/components/filter/components/FilterItem/index.js +2 -1
  214. package/lib/components/filter/components/QuickFilter/index.js +3 -2
  215. package/lib/components/filter/components/items/index.d.ts +0 -1
  216. package/lib/components/filter/components/items/text/Editor/index.d.ts +0 -1
  217. package/lib/components/filter/components/items/text/Preview/index.d.ts +0 -1
  218. package/lib/components/filter/components/items/text/index.d.ts +0 -1
  219. package/lib/components/filter/index.d.ts +0 -1
  220. package/lib/components/list/index.d.ts +0 -1
  221. package/lib/components/lowCodePage/index.d.ts +0 -1
  222. package/lib/components/pisellAdjustPrice/PisellAdjustPriceInputNumber.d.ts +0 -1
  223. package/lib/components/pisellDataSourceContainer/PisellDataSourceContainer.d.ts +0 -1
  224. package/lib/components/pisellDataSourceContainer/hooks/useDataSourceKey.d.ts +2 -3
  225. package/lib/components/pisellDatePicker/datePickerCpt.d.ts +1 -0
  226. package/lib/components/pisellFilter/index.d.ts +0 -1
  227. package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.js +141 -44
  228. package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.less +22 -0
  229. package/lib/components/pisellFloorMapLayout/components/FigmaTableCard.d.ts +2 -2
  230. package/lib/components/pisellFloorMapLayout/components/FigmaTableCard.js +213 -94
  231. package/lib/components/pisellFloorMapLayout/components/FloorMapEditPanel.js +41 -2
  232. package/lib/components/pisellFloorMapLayout/components/FloorMapEditTopBar.d.ts +22 -0
  233. package/lib/components/pisellFloorMapLayout/components/FloorMapEditTopBar.js +128 -12
  234. package/lib/components/pisellFloorMapLayout/components/FloorMapEditTopBar.less +9 -1
  235. package/lib/components/pisellFloorMapLayout/components/FloorMapToolbar.js +53 -5
  236. package/lib/components/pisellFloorMapLayout/components/FloorMapToolbar.less +97 -4
  237. package/lib/components/pisellFloorMapLayout/components/HistoryIcons.d.ts +39 -0
  238. package/lib/components/pisellFloorMapLayout/components/HistoryIcons.js +71 -0
  239. package/lib/components/pisellFloorMapLayout/components/ItemLayer.js +2 -1
  240. package/lib/components/pisellFloorMapLayout/components/ViewControls.d.ts +9 -0
  241. package/lib/components/pisellFloorMapLayout/components/ViewControls.js +158 -49
  242. package/lib/components/pisellFloorMapLayout/components/ViewControls.less +224 -21
  243. package/lib/components/pisellFloorMapLayout/components/ViewControlsWithZoom.d.ts +6 -0
  244. package/lib/components/pisellFloorMapLayout/components/ViewControlsWithZoom.js +3 -0
  245. package/lib/components/pisellFloorMapLayout/floorMapLayoutConstants.d.ts +4 -0
  246. package/lib/components/pisellFloorMapLayout/floorMapLayoutConstants.js +29 -0
  247. package/lib/components/pisellFloorMapLayout/hooks/floorMapViewportPersistence.d.ts +25 -0
  248. package/lib/components/pisellFloorMapLayout/hooks/floorMapViewportPersistence.js +98 -0
  249. package/lib/components/pisellFloorMapLayout/hooks/useDraftConfigHistory.d.ts +18 -0
  250. package/lib/components/pisellFloorMapLayout/hooks/useDraftConfigHistory.js +95 -0
  251. package/lib/components/pisellFloorMapLayout/hooks/useFloorMapEditState.d.ts +5 -0
  252. package/lib/components/pisellFloorMapLayout/hooks/useFloorMapEditState.js +65 -15
  253. package/lib/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.d.ts +23 -1
  254. package/lib/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.js +196 -24
  255. package/lib/components/pisellFloorMapLayout/index.d.ts +1 -0
  256. package/lib/components/pisellFloorMapLayout/index.js +9 -0
  257. package/lib/components/pisellFloorMapLayout/locales-ja.d.ts +20 -0
  258. package/lib/components/pisellFloorMapLayout/locales-ja.js +21 -1
  259. package/lib/components/pisellFloorMapLayout/locales-pt.d.ts +20 -0
  260. package/lib/components/pisellFloorMapLayout/locales-pt.js +21 -1
  261. package/lib/components/pisellFloorMapLayout/locales.d.ts +100 -0
  262. package/lib/components/pisellFloorMapLayout/locales.js +63 -3
  263. package/lib/components/pisellFloorMapLayout/types.d.ts +37 -0
  264. package/lib/components/pisellFloorMapLayout/utils/floorMapElementNameAsTitle.d.ts +50 -0
  265. package/lib/components/pisellFloorMapLayout/utils/floorMapElementNameAsTitle.js +60 -0
  266. package/lib/components/pisellGridPro/ToolBar/index.less +5 -4
  267. package/lib/components/pisellInput/components/BankCard/index.d.ts +1 -0
  268. package/lib/components/pisellInput/components/SecurityCode/index.d.ts +1 -0
  269. package/lib/components/pisellLoading/index.d.ts +0 -1
  270. package/lib/components/pisellModal/components/IpadModal/index.d.ts +0 -1
  271. package/lib/components/pisellModal/components/MobileModal/index.d.ts +0 -1
  272. package/lib/components/pisellModal/components/index.d.ts +0 -1
  273. package/lib/components/pisellRecordBoard/PisellRecordBoard.js +10 -3
  274. package/lib/components/pisellRecordBoard/shellFrame/Calendar/utils/BookingCalendarStyle.d.ts +1 -1
  275. package/lib/components/pisellRecordBoard/shellFrame/ColumnSetting/index.js +2 -1
  276. package/lib/components/pisellRecordBoard/shellFrame/Pagination/index.js +3 -2
  277. package/lib/components/pisellRecordBoard/shellFrame/ToolBar/index.js +70 -75
  278. package/lib/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarConstants.d.ts +8 -0
  279. package/lib/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarConstants.js +38 -0
  280. package/lib/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarI18n.d.ts +13 -0
  281. package/lib/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarI18n.js +100 -0
  282. package/lib/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolbar.less +176 -10
  283. package/lib/components/pisellRecordBoard/shellFrame/ToolBarQuickFilter/index.js +8 -0
  284. package/lib/components/pisellRecordBoard/shellFrame/index.d.ts +6 -0
  285. package/lib/components/pisellRecordBoard/shellFrame/index.js +2 -1
  286. package/lib/components/pisellRecordBoard/types.d.ts +20 -1
  287. package/lib/components/pisellShellFrame/PisellShellFrame.js +2 -1
  288. package/lib/components/pisellShellFrame/PisellShellFrame.less +13 -0
  289. package/lib/components/pisellShellFrame/types.d.ts +6 -0
  290. package/lib/components/pisellTimeNavigator/PisellTimeNavigator.js +96 -27
  291. package/lib/components/pisellTimeNavigator/PisellTimeNavigator.less +126 -13
  292. package/lib/components/pisellTimeNavigator/components/CursorLayer.d.ts +3 -1
  293. package/lib/components/pisellTimeNavigator/components/CursorLayer.js +2 -0
  294. package/lib/components/pisellTimeNavigator/components/GestureLayer.d.ts +9 -1
  295. package/lib/components/pisellTimeNavigator/components/GestureLayer.js +5 -2
  296. package/lib/components/pisellTimeNavigator/timeNavigatorConstants.d.ts +20 -0
  297. package/lib/components/pisellTimeNavigator/timeNavigatorConstants.js +47 -0
  298. package/lib/components/pisellTooltip/index.d.ts +1 -0
  299. package/lib/components/productCard/components/Action/index.d.ts +1 -0
  300. package/lib/components/productCard/components/AmountFooter/index.d.ts +0 -1
  301. package/lib/components/productCard/components/MultiDay/index.d.ts +0 -1
  302. package/lib/components/productCard/components/Note/index.d.ts +0 -1
  303. package/lib/components/productCard/components/Packages/components/collapsibleList/utils.d.ts +0 -1
  304. package/lib/components/productCard/components/Packages/components/options/index.d.ts +0 -1
  305. package/lib/components/productCard/components/Packages/index.d.ts +0 -1
  306. package/lib/components/productCard/components/Time/components/SelectResource/index.d.ts +0 -1
  307. package/lib/components/productCard/components/Time/index.d.ts +0 -1
  308. package/lib/components/qrcode/index.d.ts +0 -1
  309. package/lib/components/table/Actions/component/ColumnsSetting/index.d.ts +0 -1
  310. package/lib/components/table/Actions/component/ExportImport/index.d.ts +0 -1
  311. package/lib/components/table/Actions/component/GallerySetting/index.d.ts +0 -1
  312. package/lib/components/table/Actions/component/Group/index.d.ts +0 -1
  313. package/lib/components/table/Actions/index.d.ts +0 -1
  314. package/lib/components/table/BasicTable/index.d.ts +0 -1
  315. package/lib/components/table/Gallery/components/GalleryItem/components/Cover/index.d.ts +0 -1
  316. package/lib/components/table/Gallery/components/GalleryItem/components/RenderFields/index.d.ts +0 -1
  317. package/lib/components/table/Gallery/components/GalleryItem/components/Title/index.d.ts +0 -1
  318. package/lib/components/table/Gallery/components/VirtualGrid/useGapSize.d.ts +2 -2
  319. package/lib/components/table/Table/SelectField/index.d.ts +0 -1
  320. package/lib/components/table/Table/fields/date/Show/index.d.ts +0 -1
  321. package/lib/components/table/Table/fields/date/index.d.ts +0 -1
  322. package/lib/components/table/Table/fields/image/Show/index.d.ts +0 -1
  323. package/lib/components/table/Table/fields/index.d.ts +0 -1
  324. package/lib/components/table/Table/fields/link/Show/index.d.ts +0 -1
  325. package/lib/components/table/Table/fields/number/Show/index.d.ts +0 -1
  326. package/lib/components/table/Table/fields/number/index.d.ts +0 -1
  327. package/lib/components/table/Table/fields/numberRange/Show/index.d.ts +0 -1
  328. package/lib/components/table/Table/fields/numberRange/index.d.ts +0 -1
  329. package/lib/components/table/Table/fields/oldRangePicker/index.d.ts +0 -1
  330. package/lib/components/table/Table/fields/pSwitch/Show/index.d.ts +0 -1
  331. package/lib/components/table/Table/fields/rangePicker/index.d.ts +0 -1
  332. package/lib/components/table/Table/fields/search/Show/index.d.ts +0 -1
  333. package/lib/components/table/Table/fields/search/index.d.ts +0 -1
  334. package/lib/components/table/Table/fields/select/filterUtil/index.d.ts +1 -1
  335. package/lib/components/table/Table/fields/select/index.d.ts +0 -1
  336. package/lib/components/table/Table/fields/text/Show/index.d.ts +0 -1
  337. package/lib/components/table/Table/fields/text/index.d.ts +0 -1
  338. package/lib/components/table/Table/fields/treeSelect/filterUtil/index.d.ts +1 -1
  339. package/lib/components/table/Table/fields/treeSelect/index.d.ts +0 -1
  340. package/lib/components/table/Table/tableConfig/SortRow/index.d.ts +0 -1
  341. package/lib/components/table/Table/tableConfig/summary/index.d.ts +0 -1
  342. package/lib/components/table/Table/utils.d.ts +1 -1
  343. package/lib/components/table/View/index.d.ts +0 -1
  344. package/lib/components/versionSelect/index.d.ts +0 -1
  345. package/lib/index.d.ts +8 -1
  346. package/lib/index.js +8 -0
  347. package/lib/locales/en-US.d.ts +2 -0
  348. package/lib/locales/en-US.js +2 -0
  349. package/lib/locales/ja.d.ts +2 -0
  350. package/lib/locales/ja.js +2 -0
  351. package/lib/locales/pt.d.ts +2 -0
  352. package/lib/locales/pt.js +2 -0
  353. package/lib/locales/zh-CN.d.ts +2 -0
  354. package/lib/locales/zh-CN.js +2 -0
  355. package/lib/locales/zh-TW.d.ts +2 -0
  356. package/lib/locales/zh-TW.js +2 -0
  357. package/lib/utils/index.d.ts +1 -1
  358. package/lib/utils/platform.d.ts +1 -1
  359. package/lowcode/pisell-record-board-calendar-view/meta.ts +1 -1
  360. package/package.json +2 -2
@@ -0,0 +1,68 @@
1
+ /**
2
+ * 平面图视口缓存:localStorage 读写、锁定态;供 useFloorMapTransformMetrics 使用。
3
+ */
4
+
5
+ /** 平面图包围盒单侧默认外扩(像素);过大会导致首屏大量空白 */
6
+ export var DEFAULT_BOUNDING_PADDING = 56;
7
+
8
+ /** 视口内与首屏对齐时,图元束左上与容器边缘的留白 */
9
+ export var VIEWPORT_TOP_LEFT_MARGIN = 16;
10
+
11
+ /** 平面图视口(缩放 + 平移)持久化到 localStorage 的 key 前缀 */
12
+ export var VIEWPORT_STORAGE_PREFIX = 'pisell-floor-map-layout.viewport:';
13
+
14
+ /** 视口锁定态持久化前缀(与视口位置分开存储) */
15
+ export var VIEWPORT_LOCK_STORAGE_PREFIX = 'pisell-floor-map-layout.viewport-lock:';
16
+
17
+ /** 视口持久化写入节流(避免拖动 / 缩放过程中高频写 localStorage) */
18
+ export var VIEWPORT_PERSIST_DEBOUNCE_MS = 300;
19
+
20
+ /** 判定当前 transform 是否处于「适配视口」结果时的容差 */
21
+ export var FIT_BOUNDS_MATCH_POS_EPSILON = 0.5;
22
+ export var FIT_BOUNDS_MATCH_SCALE_EPSILON = 0.005;
23
+ export function readPersistedViewport(key) {
24
+ if (typeof window === 'undefined') return null;
25
+ try {
26
+ var raw = window.localStorage.getItem(VIEWPORT_STORAGE_PREFIX + key);
27
+ if (!raw) return null;
28
+ var parsed = JSON.parse(raw);
29
+ if (!parsed || typeof parsed.x !== 'number' || typeof parsed.y !== 'number' || typeof parsed.scale !== 'number' || !Number.isFinite(parsed.x) || !Number.isFinite(parsed.y) || !Number.isFinite(parsed.scale) || parsed.scale <= 0) {
30
+ return null;
31
+ }
32
+ return {
33
+ x: parsed.x,
34
+ y: parsed.y,
35
+ scale: parsed.scale
36
+ };
37
+ } catch (_unused) {
38
+ return null;
39
+ }
40
+ }
41
+ export function writePersistedViewport(key, snapshot) {
42
+ if (typeof window === 'undefined') return;
43
+ try {
44
+ window.localStorage.setItem(VIEWPORT_STORAGE_PREFIX + key, JSON.stringify(snapshot));
45
+ } catch (_unused2) {
46
+ /** 隐私模式 / quota 超限等情况静默失败 */
47
+ }
48
+ }
49
+ export function readPersistedViewportLock(key) {
50
+ if (typeof window === 'undefined') return false;
51
+ try {
52
+ return window.localStorage.getItem(VIEWPORT_LOCK_STORAGE_PREFIX + key) === '1';
53
+ } catch (_unused3) {
54
+ return false;
55
+ }
56
+ }
57
+ export function writePersistedViewportLock(key, locked) {
58
+ if (typeof window === 'undefined') return;
59
+ try {
60
+ if (locked) {
61
+ window.localStorage.setItem(VIEWPORT_LOCK_STORAGE_PREFIX + key, '1');
62
+ } else {
63
+ window.localStorage.removeItem(VIEWPORT_LOCK_STORAGE_PREFIX + key);
64
+ }
65
+ } catch (_unused4) {
66
+ /* noop */
67
+ }
68
+ }
@@ -0,0 +1,18 @@
1
+ export interface DraftHistoryCommitOptions {
2
+ /** 同一 groupId 在合并窗口内连续提交将合并为一条历史 */
3
+ groupId?: string;
4
+ /** 合并窗口(毫秒),默认 600 */
5
+ mergeWindowMs?: number;
6
+ }
7
+ export interface DraftHistory<T> {
8
+ present: T | null;
9
+ /** 写入并入栈(按 group/time 自动合并) */
10
+ commit: (next: T | null | ((prev: T | null) => T | null), options?: DraftHistoryCommitOptions) => void;
11
+ /** 重置(不入栈),清空历史;用于上游 props 同步 */
12
+ replace: (next: T | null) => void;
13
+ undo: () => void;
14
+ redo: () => void;
15
+ canUndo: boolean;
16
+ canRedo: boolean;
17
+ }
18
+ export declare function useDraftConfigHistory<T>(): DraftHistory<T>;
@@ -0,0 +1,104 @@
1
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
4
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
5
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
6
+ 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."); }
7
+ 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); }
8
+ 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; }
9
+ 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; } }
10
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
11
+ /**
12
+ * 平面图草稿历史栈:past/present/future + commit/replace/undo/redo
13
+ *
14
+ * 设计:
15
+ * - `commit(value, opts?)`:写入新值并入栈(覆盖 future)。同一 `groupId` 在
16
+ * `mergeWindowMs` 内的多次提交会合并为同一条历史,避免高频微调污染栈。
17
+ * 实际项目里 `EditableItemLayer` 只在 mouseup 时回调一次,因此默认场景下不会
18
+ * 触发合并;保留 group 能力是为后续如「输入框边输入边写草稿」等连续操作准备。
19
+ * - `replace(value)`:直接重置 present 并清空历史;用于上游 props 同步落地,避免
20
+ * 把"上游回写"也变成可撤销项。
21
+ * - `undo` / `redo`:在 past/future 栈内迁移 present。
22
+ */
23
+ import { useCallback, useMemo, useRef, useState } from 'react';
24
+ /** 历史最大长度,超出从最旧端裁剪 */
25
+ var HISTORY_LIMIT = 100;
26
+ export function useDraftConfigHistory() {
27
+ var _useState = useState({
28
+ past: [],
29
+ present: null,
30
+ future: []
31
+ }),
32
+ _useState2 = _slicedToArray(_useState, 2),
33
+ state = _useState2[0],
34
+ setState = _useState2[1];
35
+ var lastGroupRef = useRef(null);
36
+ var commit = useCallback(function (next, options) {
37
+ var _options$mergeWindowM;
38
+ var now = Date.now();
39
+ var last = lastGroupRef.current;
40
+ var inGroup = !!(options !== null && options !== void 0 && options.groupId && last && last.id === options.groupId && now - last.at <= ((_options$mergeWindowM = options.mergeWindowMs) !== null && _options$mergeWindowM !== void 0 ? _options$mergeWindowM : 600));
41
+ lastGroupRef.current = {
42
+ id: options === null || options === void 0 ? void 0 : options.groupId,
43
+ at: now
44
+ };
45
+ setState(function (cur) {
46
+ var value = typeof next === 'function' ? next(cur.present) : next;
47
+ if (Object.is(value, cur.present)) return cur;
48
+ var nextPast = cur.past;
49
+ if (cur.present != null && !inGroup) {
50
+ nextPast = nextPast.length >= HISTORY_LIMIT ? [].concat(_toConsumableArray(nextPast.slice(1)), [cur.present]) : [].concat(_toConsumableArray(nextPast), [cur.present]);
51
+ }
52
+ return {
53
+ past: nextPast,
54
+ present: value,
55
+ future: []
56
+ };
57
+ });
58
+ }, []);
59
+ var replace = useCallback(function (next) {
60
+ lastGroupRef.current = null;
61
+ setState({
62
+ past: [],
63
+ present: next,
64
+ future: []
65
+ });
66
+ }, []);
67
+ var undo = useCallback(function () {
68
+ lastGroupRef.current = null;
69
+ setState(function (cur) {
70
+ if (cur.past.length === 0) return cur;
71
+ var prev = cur.past[cur.past.length - 1];
72
+ var nextFuture = cur.present != null ? [cur.present].concat(_toConsumableArray(cur.future)) : cur.future;
73
+ return {
74
+ past: cur.past.slice(0, -1),
75
+ present: prev,
76
+ future: nextFuture
77
+ };
78
+ });
79
+ }, []);
80
+ var redo = useCallback(function () {
81
+ lastGroupRef.current = null;
82
+ setState(function (cur) {
83
+ if (cur.future.length === 0) return cur;
84
+ var next = cur.future[0];
85
+ var nextPast = cur.present != null ? [].concat(_toConsumableArray(cur.past), [cur.present]) : cur.past;
86
+ return {
87
+ past: nextPast,
88
+ present: next,
89
+ future: cur.future.slice(1)
90
+ };
91
+ });
92
+ }, []);
93
+ return useMemo(function () {
94
+ return {
95
+ present: state.present,
96
+ commit: commit,
97
+ replace: replace,
98
+ undo: undo,
99
+ redo: redo,
100
+ canUndo: state.past.length > 0,
101
+ canRedo: state.future.length > 0
102
+ };
103
+ }, [state, commit, replace, undo, redo]);
104
+ }
@@ -41,6 +41,7 @@ export declare function useFloorMapEditState<T extends FloorMapItemBase>(params:
41
41
  }>) => void;
42
42
  handleCanvasPlaceClick: (e: MouseEvent<HTMLDivElement>) => void;
43
43
  handleSave: () => void;
44
+ discardDraft: () => void;
44
45
  placeSceneElementFromPaletteDrop: (contentX: number, contentY: number, scene: Extract<FloorMapPlaceMode, {
45
46
  type: 'scene';
46
47
  }>) => void;
@@ -63,4 +64,8 @@ export declare function useFloorMapEditState<T extends FloorMapItemBase>(params:
63
64
  toggleSelectedLayoutLock: () => void;
64
65
  duplicateSelectedElement: () => void;
65
66
  deleteSelectedElement: () => void;
67
+ undoDraft: () => void;
68
+ redoDraft: () => void;
69
+ canUndo: boolean;
70
+ canRedo: boolean;
66
71
  };
@@ -27,6 +27,7 @@ import useEngineContext from "../../../hooks/useEngineContext";
27
27
  import { createTranslationText } from "../../translation/utils";
28
28
  import { mergeCanvasItems } from "../utils/floorMapConfigMerge";
29
29
  import { STAGE_DECO_DEFAULT } from "../utils/floorMapStageDefaults";
30
+ import { useDraftConfigHistory } from "./useDraftConfigHistory";
30
31
  import { floorMapViewConfigsEqual, normalizeFloorMapViewConfigFromProp } from "../utils/floorMapViewConfigDiff";
31
32
  import { getElementKindConfig, resolveDataBindingPolicy, isFloorMapImageElementKind } from "../utils/floorMapElementKindUtils";
32
33
  import { DEFAULT_CELL_SIZE } from "../utils/layoutMeasurements";
@@ -88,39 +89,48 @@ export function useFloorMapEditState(params) {
88
89
  showDataSourceRecordFormBlock = params.showDataSourceRecordFormBlock;
89
90
  var engineCtx = useEngineContext();
90
91
  var engineLocale = (engineCtx === null || engineCtx === void 0 || (_engineCtx$engine = engineCtx.engine) === null || _engineCtx$engine === void 0 || (_engineCtx$engine = _engineCtx$engine.props) === null || _engineCtx$engine === void 0 ? void 0 : _engineCtx$engine.locale) || 'zh-CN';
92
+
93
+ /**
94
+ * 草稿历史栈:所有可撤销的编辑操作都通过 `commitDraft` 写入;
95
+ * 上游 props 同步走 `replaceDraft`(不入栈、清空历史)。
96
+ */
97
+ var draftHistory = useDraftConfigHistory();
98
+ var draftConfig = draftHistory.present;
99
+ var commitDraft = draftHistory.commit;
100
+ var replaceDraft = draftHistory.replace;
101
+ var undoDraft = draftHistory.undo;
102
+ var redoDraft = draftHistory.redo;
103
+ var canUndo = draftHistory.canUndo;
104
+ var canRedo = draftHistory.canRedo;
91
105
  var _useState = useState(null),
92
106
  _useState2 = _slicedToArray(_useState, 2),
93
- draftConfig = _useState2[0],
94
- setDraftConfig = _useState2[1];
107
+ currentCanvasId = _useState2[0],
108
+ setCurrentCanvasId = _useState2[1];
95
109
  var _useState3 = useState(null),
96
110
  _useState4 = _slicedToArray(_useState3, 2),
97
- currentCanvasId = _useState4[0],
98
- setCurrentCanvasId = _useState4[1];
111
+ selectedId = _useState4[0],
112
+ setSelectedId = _useState4[1];
99
113
  var _useState5 = useState(null),
100
114
  _useState6 = _slicedToArray(_useState5, 2),
101
- selectedId = _useState6[0],
102
- setSelectedId = _useState6[1];
103
- var _useState7 = useState(null),
115
+ placeMode = _useState6[0],
116
+ setPlaceMode = _useState6[1];
117
+ var _useState7 = useState(false),
104
118
  _useState8 = _slicedToArray(_useState7, 2),
105
- placeMode = _useState8[0],
106
- setPlaceMode = _useState8[1];
119
+ saving = _useState8[0],
120
+ setSaving = _useState8[1];
107
121
  var _useState9 = useState(false),
108
122
  _useState10 = _slicedToArray(_useState9, 2),
109
- saving = _useState10[0],
110
- setSaving = _useState10[1];
111
- var _useState11 = useState(false),
112
- _useState12 = _slicedToArray(_useState11, 2),
113
- savingRecord = _useState12[0],
114
- setSavingRecord = _useState12[1];
123
+ savingRecord = _useState10[0],
124
+ setSavingRecord = _useState10[1];
115
125
  /**
116
126
  * 本地“已提交保存”的基线快照:
117
127
  * - 点击「完成编辑/保存」后立即置为当前 draft,避免等待上游 props 回写期间仍显示“未持久化”提示;
118
128
  * - 用户后续再改动 draft 时,dirty 会再次为 true。
119
129
  */
120
- var _useState13 = useState(null),
121
- _useState14 = _slicedToArray(_useState13, 2),
122
- savedBaselineConfig = _useState14[0],
123
- setSavedBaselineConfig = _useState14[1];
130
+ var _useState11 = useState(null),
131
+ _useState12 = _slicedToArray(_useState11, 2),
132
+ savedBaselineConfig = _useState12[0],
133
+ setSavedBaselineConfig = _useState12[1];
124
134
  var config = isFloorMapView ? draftConfig !== null && draftConfig !== void 0 ? draftConfig : floorMapConfigProp : null;
125
135
  var configRef = useRef(config);
126
136
  configRef.current = config;
@@ -139,8 +149,11 @@ export function useFloorMapEditState(params) {
139
149
  });
140
150
  })
141
151
  });
142
- setDraftConfig(nextConfig);
143
- /** 上游配置已刷新,以服务端/父级为准,清空本地临时保存基线 */
152
+ /**
153
+ * 上游配置变更:直接 replace(不进入历史栈),并清空 undo/redo;
154
+ * 同时清空本地临时保存基线,让 dirty/未保存提示与上游对齐。
155
+ */
156
+ replaceDraft(nextConfig);
144
157
  setSavedBaselineConfig(null);
145
158
  var enabled = nextConfig.canvases.filter(function (c) {
146
159
  return c.enabled;
@@ -153,6 +166,8 @@ export function useFloorMapEditState(params) {
153
166
  return c.id === prev;
154
167
  }) ? prev : (_enabled$0$id = (_enabled$ = enabled[0]) === null || _enabled$ === void 0 ? void 0 : _enabled$.id) !== null && _enabled$0$id !== void 0 ? _enabled$0$id : null;
155
168
  });
169
+ // replaceDraft 是稳定引用;故意只在上游 props 变时同步
170
+ // eslint-disable-next-line react-hooks/exhaustive-deps
156
171
  }, [floorMapConfigProp]);
157
172
 
158
173
  /** 当前草稿与上游持久化 `floorMapConfig`(经同等规范化)是否不一致 */
@@ -161,6 +176,38 @@ export function useFloorMapEditState(params) {
161
176
  var baseline = savedBaselineConfig !== null && savedBaselineConfig !== void 0 ? savedBaselineConfig : normalizeFloorMapViewConfigFromProp(floorMapConfigProp);
162
177
  return !floorMapViewConfigsEqual(draftConfig, baseline);
163
178
  }, [isFloorMapView, draftConfig, floorMapConfigProp, savedBaselineConfig]);
179
+
180
+ /**
181
+ * 撤销/重做后:若选中的图元已不存在于新草稿(如撤回了刚复制/新建的元素),
182
+ * 自动清理 selectedId,避免侧栏/快捷栏停留在「悬空选中」状态。
183
+ */
184
+ useEffect(function () {
185
+ var _draftConfig$sceneEle;
186
+ if (!selectedId || !draftConfig) return;
187
+ var exists = ((_draftConfig$sceneEle = draftConfig.sceneElements) !== null && _draftConfig$sceneEle !== void 0 ? _draftConfig$sceneEle : []).some(function (e) {
188
+ return e.instanceId === selectedId;
189
+ });
190
+ if (!exists) setSelectedId(null);
191
+ }, [selectedId, draftConfig]);
192
+
193
+ /**
194
+ * 撤销/重做后:若当前画布在新草稿中已被删除或禁用,回退到第一张启用画布。
195
+ */
196
+ useEffect(function () {
197
+ var _enabled$0$id2, _enabled$2;
198
+ if (!draftConfig) return;
199
+ if (!currentCanvasId) return;
200
+ var stillUsable = draftConfig.canvases.some(function (c) {
201
+ return c.id === currentCanvasId && c.enabled;
202
+ });
203
+ if (stillUsable) return;
204
+ var enabled = draftConfig.canvases.filter(function (c) {
205
+ return c.enabled;
206
+ }).sort(function (a, b) {
207
+ return a.order - b.order;
208
+ });
209
+ setCurrentCanvasId((_enabled$0$id2 = (_enabled$2 = enabled[0]) === null || _enabled$2 === void 0 ? void 0 : _enabled$2.id) !== null && _enabled$0$id2 !== void 0 ? _enabled$0$id2 : null);
210
+ }, [currentCanvasId, draftConfig]);
164
211
  var handleAddCanvas = useCallback(function () {
165
212
  initFloorMapLayoutLocales(engineLocale);
166
213
  var label = locales.getText('pisell-floor-map-layout.canvas-tabs.default-new-canvas-name');
@@ -172,7 +219,7 @@ export function useFloorMapEditState(params) {
172
219
  order: 0,
173
220
  enabled: true
174
221
  };
175
- setDraftConfig(function (prev) {
222
+ commitDraft(function (prev) {
176
223
  if (!prev) return prev;
177
224
  var list = prev.canvases.filter(function (c) {
178
225
  return c.enabled;
@@ -189,7 +236,7 @@ export function useFloorMapEditState(params) {
189
236
  setCurrentCanvasId(newId);
190
237
  }, [engineLocale]);
191
238
  var handleRemoveCanvas = useCallback(function (canvasId) {
192
- setDraftConfig(function (prev) {
239
+ commitDraft(function (prev) {
193
240
  var _prev$sceneElements;
194
241
  if (!prev) return prev;
195
242
  var nextCanvases = prev.canvases.filter(function (c) {
@@ -204,7 +251,7 @@ export function useFloorMapEditState(params) {
204
251
  });
205
252
  });
206
253
  setCurrentCanvasId(function (prev) {
207
- var _enabled$0$id2, _enabled$2;
254
+ var _enabled$0$id3, _enabled$3;
208
255
  if (prev !== canvasId) return prev;
209
256
  var cfg = configRef.current;
210
257
  if (!cfg) return prev;
@@ -213,14 +260,14 @@ export function useFloorMapEditState(params) {
213
260
  }).sort(function (a, b) {
214
261
  return a.order - b.order;
215
262
  });
216
- return (_enabled$0$id2 = (_enabled$2 = enabled[0]) === null || _enabled$2 === void 0 ? void 0 : _enabled$2.id) !== null && _enabled$0$id2 !== void 0 ? _enabled$0$id2 : null;
263
+ return (_enabled$0$id3 = (_enabled$3 = enabled[0]) === null || _enabled$3 === void 0 ? void 0 : _enabled$3.id) !== null && _enabled$0$id3 !== void 0 ? _enabled$0$id3 : null;
217
264
  });
218
265
  }, []);
219
266
  var handleRenameCanvas = useCallback(function (canvasId, name) {
220
267
  if (typeof name === 'string') {
221
268
  var trimmed = name.trim();
222
269
  if (!trimmed) return;
223
- setDraftConfig(function (prev) {
270
+ commitDraft(function (prev) {
224
271
  if (!prev) return prev;
225
272
  return _objectSpread(_objectSpread({}, prev), {}, {
226
273
  canvases: prev.canvases.map(function (c) {
@@ -237,7 +284,7 @@ export function useFloorMapEditState(params) {
237
284
  return typeof s === 'string' && s.trim();
238
285
  });
239
286
  if (!hasAny) return;
240
- setDraftConfig(function (prev) {
287
+ commitDraft(function (prev) {
241
288
  if (!prev) return prev;
242
289
  return _objectSpread(_objectSpread({}, prev), {}, {
243
290
  canvases: prev.canvases.map(function (c) {
@@ -255,7 +302,7 @@ export function useFloorMapEditState(params) {
255
302
  }, [isFloorMapView, config, currentCanvasId, cellSizeProp]);
256
303
  var items = isFloorMapView ? mergedItems : itemsProp;
257
304
  var updateDraftSceneElement = useCallback(function (instanceId, patch) {
258
- setDraftConfig(function (prev) {
305
+ commitDraft(function (prev) {
259
306
  var _prev$sceneElements2, _prev$sceneElements3;
260
307
  if (!prev) return prev;
261
308
  var current = ((_prev$sceneElements2 = prev.sceneElements) !== null && _prev$sceneElements2 !== void 0 ? _prev$sceneElements2 : []).find(function (e) {
@@ -401,7 +448,7 @@ export function useFloorMapEditState(params) {
401
448
  message.warning('没有可落位的记录');
402
449
  return false;
403
450
  }
404
- setDraftConfig(function (prev) {
451
+ commitDraft(function (prev) {
405
452
  var _prev$sceneElements4;
406
453
  return prev ? _objectSpread(_objectSpread({}, prev), {}, {
407
454
  sceneElements: [].concat(_toConsumableArray((_prev$sceneElements4 = prev.sceneElements) !== null && _prev$sceneElements4 !== void 0 ? _prev$sceneElements4 : []), newEls)
@@ -425,7 +472,7 @@ export function useFloorMapEditState(params) {
425
472
  return (_kindConfig$defaultPr = kindConfig === null || kindConfig === void 0 || (_kindConfig$defaultPr2 = kindConfig.defaultPresentation) === null || _kindConfig$defaultPr2 === void 0 ? void 0 : _kindConfig$defaultPr2.title) !== null && _kindConfig$defaultPr !== void 0 ? _kindConfig$defaultPr : '';
426
473
  }();
427
474
  var newEl = buildOneElement(dataBinding, contentX, contentY, placementName);
428
- setDraftConfig(function (prev) {
475
+ commitDraft(function (prev) {
429
476
  var _prev$sceneElements5;
430
477
  return prev ? _objectSpread(_objectSpread({}, prev), {}, {
431
478
  sceneElements: [].concat(_toConsumableArray((_prev$sceneElements5 = prev.sceneElements) !== null && _prev$sceneElements5 !== void 0 ? _prev$sceneElements5 : []), [newEl])
@@ -465,9 +512,44 @@ export function useFloorMapEditState(params) {
465
512
  }
466
513
  }, [draftConfig, onSave]);
467
514
 
515
+ /**
516
+ * 丢弃所有未保存的草稿改动,把 `draftConfig` 重置回上游 `floorMapConfigProp` 的当前值。
517
+ *
518
+ * 用途:编辑态下点击「取消编辑」(不保存退出)时调用,否则 `config` 仍取
519
+ * `draftConfig ?? floorMapConfigProp`,回到阅读态会继续看到编辑后的脏数据。
520
+ *
521
+ * 实现要点:
522
+ * - 与上游 props 同步 effect(line 165)使用相同的规范化路径与 `replaceDraft`,
523
+ * 保证「取消」后状态等价于「上游 props 重新落地一次」;
524
+ * - `replaceDraft` 内部已清空 undo/redo 历史栈,避免取消后又能 redo 出旧 draft;
525
+ * - 同步清空 `savedBaselineConfig`,让 dirty 判定回到「以上游 props 为基线」。
526
+ */
527
+ var discardDraft = useCallback(function () {
528
+ if (!floorMapConfigProp) {
529
+ replaceDraft(null);
530
+ setSavedBaselineConfig(null);
531
+ return;
532
+ }
533
+ var baseConfig = normalizeFloorMapViewConfigFromProp(floorMapConfigProp);
534
+ var nextConfig = _objectSpread(_objectSpread({}, baseConfig), {}, {
535
+ canvases: baseConfig.canvases.map(function (canvas) {
536
+ var _canvas$mapLayer2;
537
+ var stored = readStoredGridVisible(canvas.id);
538
+ if (stored == null) return canvas;
539
+ return _objectSpread(_objectSpread({}, canvas), {}, {
540
+ mapLayer: _objectSpread(_objectSpread({}, (_canvas$mapLayer2 = canvas.mapLayer) !== null && _canvas$mapLayer2 !== void 0 ? _canvas$mapLayer2 : {}), {}, {
541
+ showGrid: stored
542
+ })
543
+ });
544
+ })
545
+ });
546
+ replaceDraft(nextConfig);
547
+ setSavedBaselineConfig(null);
548
+ }, [floorMapConfigProp, replaceDraft]);
549
+
468
550
  /** 切换当前画布草稿中的 mapLayer.showGrid(随布局保存持久化) */
469
551
  var toggleDraftCanvasShowGrid = useCallback(function () {
470
- setDraftConfig(function (prev) {
552
+ commitDraft(function (prev) {
471
553
  if (!prev || !currentCanvasId) return prev;
472
554
  return _objectSpread(_objectSpread({}, prev), {}, {
473
555
  canvases: prev.canvases.map(function (c) {
@@ -506,7 +588,7 @@ export function useFloorMapEditState(params) {
506
588
  }, [onDataSourceRecordSave]);
507
589
  var handleEditPanelDelete = useCallback(function () {
508
590
  if (!selectedId) return;
509
- setDraftConfig(function (prev) {
591
+ commitDraft(function (prev) {
510
592
  var _prev$sceneElements6;
511
593
  if (!prev) return prev;
512
594
  return _objectSpread(_objectSpread({}, prev), {}, {
@@ -550,7 +632,7 @@ export function useFloorMapEditState(params) {
550
632
  dataBinding: undefined,
551
633
  layoutTransformLocked: false
552
634
  });
553
- setDraftConfig(_objectSpread(_objectSpread({}, prev), {}, {
635
+ commitDraft(_objectSpread(_objectSpread({}, prev), {}, {
554
636
  sceneElements: [].concat(_toConsumableArray((_prev$sceneElements8 = prev.sceneElements) !== null && _prev$sceneElements8 !== void 0 ? _prev$sceneElements8 : []), [copy])
555
637
  }));
556
638
  setSelectedId(newId);
@@ -593,6 +675,7 @@ export function useFloorMapEditState(params) {
593
675
  handleUpdateItem: handleUpdateItem,
594
676
  handleCanvasPlaceClick: handleCanvasPlaceClick,
595
677
  handleSave: handleSave,
678
+ discardDraft: discardDraft,
596
679
  placeSceneElementFromPaletteDrop: placeSceneElementFromPaletteDrop,
597
680
  editPanelParams: editPanelParams,
598
681
  placeOverlayClass: placeOverlayClass,
@@ -600,6 +683,10 @@ export function useFloorMapEditState(params) {
600
683
  toggleDraftCanvasShowGrid: toggleDraftCanvasShowGrid,
601
684
  toggleSelectedLayoutLock: toggleSelectedLayoutLock,
602
685
  duplicateSelectedElement: duplicateSelectedElement,
603
- deleteSelectedElement: handleEditPanelDelete
686
+ deleteSelectedElement: handleEditPanelDelete,
687
+ undoDraft: undoDraft,
688
+ redoDraft: redoDraft,
689
+ canUndo: canUndo,
690
+ canRedo: canRedo
604
691
  };
605
692
  }
@@ -5,7 +5,14 @@ export declare type FloorMapTransformContext = {
5
5
  zoomIn: () => void;
6
6
  zoomOut: () => void;
7
7
  resetTransform: () => void;
8
- setTransform: (x: number, y: number, scale: number) => void;
8
+ /**
9
+ * react-zoom-pan-pinch v3 实际签名:(x, y, scale, animationTime?, animationType?)
10
+ * 默认 animationTime≈200ms;传 0 立即落点,避免被前一次动画吃掉或与之冲突
11
+ * (restore / 缓存恢复路径应使用 0 立即覆盖已在缓动中的 fit 动画)。
12
+ * 这里只暴露我们用到的前 4 参;库 animationType 是 `keyof typeof animations` 联合,
13
+ * 暴露过来反而限制传入对象的兼容性,我们也确实不传它。
14
+ */
15
+ setTransform: (x: number, y: number, scale: number, animationTime?: number) => void;
9
16
  } | null;
10
17
  export interface UseFloorMapTransformMetricsParams<T extends FloorMapItemBase> {
11
18
  items: T[];
@@ -28,6 +35,14 @@ export interface UseFloorMapTransformMetricsParams<T extends FloorMapItemBase> {
28
35
  * 不传则不跑「异步加载图元后的首次左上对齐」逻辑。
29
36
  */
30
37
  frameResetKey?: string;
38
+ /**
39
+ * 视口持久化标识(通常拼自 canvasId)。传入后:
40
+ * - 切换 / 挂载时若 localStorage 中有缓存,自动恢复 transform 并跳过本帧 autoFit;
41
+ * - 用户拖动 / 缩放时(节流 300ms)写回缓存;
42
+ * - 主动 fitBounds / 进入伪全屏后由 fitBounds 触发的写入也会同步保存。
43
+ * 不传则完全不读不写 localStorage。
44
+ */
45
+ viewportPersistKey?: string;
31
46
  }
32
47
  export declare function useFloorMapTransformMetrics<T extends FloorMapItemBase>(params: UseFloorMapTransformMetricsParams<T>): {
33
48
  containerRef: import("react").RefObject<HTMLDivElement>;
@@ -57,6 +72,10 @@ export declare function useFloorMapTransformMetrics<T extends FloorMapItemBase>(
57
72
  isFullscreen: boolean;
58
73
  toggleFullscreen: () => void;
59
74
  fitBounds: () => boolean;
75
+ isAtFitBounds: boolean;
76
+ notifyTransformed: (x: number, y: number, nextScale: number) => void;
77
+ persistCurrentViewport: () => void;
78
+ attachTransformContext: (ctx: NonNullable<FloorMapTransformContext>) => void;
60
79
  lastTransformRef: MutableRefObject<{
61
80
  x: number;
62
81
  y: number;
@@ -64,4 +83,7 @@ export declare function useFloorMapTransformMetrics<T extends FloorMapItemBase>(
64
83
  }>;
65
84
  isInteractingWithElement: boolean;
66
85
  setIsInteractingWithElement: import("react").Dispatch<import("react").SetStateAction<boolean>>;
86
+ viewportLocked: boolean;
87
+ setViewportLocked: (next: boolean) => void;
88
+ toggleViewportLocked: () => void;
67
89
  };