@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.
- package/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/index.js +1 -1
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/preview.js +8 -8
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +18 -18
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +18 -18
- package/es/components/Pagination/index.d.ts +0 -1
- package/es/components/PisellCards/components/PisellImageCard/PisellImageCard.d.ts +0 -1
- package/es/components/PisellFields/index.d.ts +0 -1
- package/es/components/PisellMetrics/index.d.ts +0 -1
- package/es/components/cardPro/index.d.ts +1 -0
- package/es/components/colorPicker/index.d.ts +0 -1
- package/es/components/dataSourceComponents/dataSourceForm/formItem.d.ts +0 -1
- package/es/components/dataSourceComponents/dataSourceForm/utils.d.ts +1 -1
- package/es/components/dataSourceComponents/dataSourceShow/dataSourceImage/index.d.ts +0 -1
- package/es/components/dataSourceComponents/dataSourceShow/dataSourceQRCode/index.d.ts +0 -1
- package/es/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +0 -1
- package/es/components/dataSourceComponents/dataSourceTable/filter/utils.d.ts +0 -1
- package/es/components/dataSourceComponents/dataSourceTable/hooks/useDataSourceKey.d.ts +2 -3
- package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +3 -3
- package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableQuery.d.ts +0 -1
- package/es/components/dataSourceComponents/dataSourceWrapper/index.d.ts +0 -1
- package/es/components/dataSourceComponents/fields/Input.Json/ReadPretty.d.ts +0 -1
- package/es/components/dataSourceComponents/fields/Input.Password/ReadPretty.d.ts +0 -1
- package/es/components/dataSourceComponents/fields/Input.Subdomain/index.d.ts +1 -1
- package/es/components/dataSourceComponents/fields/RecordListWrapper/index.d.ts +1 -2
- package/es/components/dataSourceComponents/fields/Select/index.d.ts +1 -2
- package/es/components/dataSourceComponents/fields/Tabs/index.d.ts +1 -2
- package/es/components/dataSourceComponents/fields/Upload/ReadPretty.d.ts +0 -1
- package/es/components/dataSourceComponents/fields/Upload/utils.d.ts +1 -1
- package/es/components/dataSourceComponents/fields/index.d.ts +16 -17
- package/es/components/date-picker/datePickerCpt.d.ts +0 -1
- package/es/components/date-picker/index.d.ts +0 -1
- package/es/components/drag-sort-tree/TreeItem/index.d.ts +1 -0
- package/es/components/filter/components/FilterItem/index.js +3 -1
- package/es/components/filter/components/QuickFilter/index.js +3 -2
- package/es/components/filter/components/items/index.d.ts +0 -1
- package/es/components/filter/components/items/text/Editor/index.d.ts +0 -1
- package/es/components/filter/components/items/text/Preview/index.d.ts +0 -1
- package/es/components/filter/components/items/text/index.d.ts +0 -1
- package/es/components/filter/index.d.ts +0 -1
- package/es/components/list/index.d.ts +0 -1
- package/es/components/lowCodePage/index.d.ts +0 -1
- package/es/components/pisellAdjustPrice/PisellAdjustPriceInputNumber.d.ts +0 -1
- package/es/components/pisellDataSourceContainer/PisellDataSourceContainer.d.ts +0 -1
- package/es/components/pisellDataSourceContainer/hooks/useDataSourceKey.d.ts +2 -3
- package/es/components/pisellDatePicker/datePickerCpt.d.ts +1 -0
- package/es/components/pisellFilter/index.d.ts +0 -1
- package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.js +175 -24
- package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.less +22 -0
- package/es/components/pisellFloorMapLayout/components/FigmaTableCard.d.ts +2 -2
- package/es/components/pisellFloorMapLayout/components/FigmaTableCard.js +268 -103
- package/es/components/pisellFloorMapLayout/components/FloorMapEditPanel.js +40 -4
- package/es/components/pisellFloorMapLayout/components/FloorMapEditTopBar.d.ts +22 -0
- package/es/components/pisellFloorMapLayout/components/FloorMapEditTopBar.js +138 -12
- package/es/components/pisellFloorMapLayout/components/FloorMapEditTopBar.less +9 -1
- package/es/components/pisellFloorMapLayout/components/FloorMapToolbar.js +65 -4
- package/es/components/pisellFloorMapLayout/components/FloorMapToolbar.less +97 -4
- package/es/components/pisellFloorMapLayout/components/HistoryIcons.d.ts +39 -0
- package/es/components/pisellFloorMapLayout/components/HistoryIcons.js +75 -0
- package/es/components/pisellFloorMapLayout/components/ItemLayer.js +14 -1
- package/es/components/pisellFloorMapLayout/components/ViewControls.d.ts +9 -0
- package/es/components/pisellFloorMapLayout/components/ViewControls.js +96 -12
- package/es/components/pisellFloorMapLayout/components/ViewControls.less +224 -21
- package/es/components/pisellFloorMapLayout/components/ViewControlsWithZoom.d.ts +6 -0
- package/es/components/pisellFloorMapLayout/components/ViewControlsWithZoom.js +3 -0
- package/es/components/pisellFloorMapLayout/floorMapLayoutConstants.d.ts +4 -0
- package/es/components/pisellFloorMapLayout/floorMapLayoutConstants.js +4 -0
- package/es/components/pisellFloorMapLayout/hooks/floorMapViewportPersistence.d.ts +25 -0
- package/es/components/pisellFloorMapLayout/hooks/floorMapViewportPersistence.js +68 -0
- package/es/components/pisellFloorMapLayout/hooks/useDraftConfigHistory.d.ts +18 -0
- package/es/components/pisellFloorMapLayout/hooks/useDraftConfigHistory.js +104 -0
- package/es/components/pisellFloorMapLayout/hooks/useFloorMapEditState.d.ts +5 -0
- package/es/components/pisellFloorMapLayout/hooks/useFloorMapEditState.js +121 -34
- package/es/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.d.ts +23 -1
- package/es/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.js +345 -29
- package/es/components/pisellFloorMapLayout/index.d.ts +1 -0
- package/es/components/pisellFloorMapLayout/index.js +1 -0
- package/es/components/pisellFloorMapLayout/locales-ja.d.ts +20 -0
- package/es/components/pisellFloorMapLayout/locales-ja.js +21 -1
- package/es/components/pisellFloorMapLayout/locales-pt.d.ts +20 -0
- package/es/components/pisellFloorMapLayout/locales-pt.js +21 -1
- package/es/components/pisellFloorMapLayout/locales.d.ts +100 -0
- package/es/components/pisellFloorMapLayout/locales.js +63 -3
- package/es/components/pisellFloorMapLayout/types.d.ts +37 -0
- package/es/components/pisellFloorMapLayout/utils/floorMapElementNameAsTitle.d.ts +50 -0
- package/es/components/pisellFloorMapLayout/utils/floorMapElementNameAsTitle.js +74 -0
- package/es/components/pisellGridPro/ToolBar/index.less +5 -4
- package/es/components/pisellInput/components/BankCard/index.d.ts +1 -0
- package/es/components/pisellInput/components/SecurityCode/index.d.ts +1 -0
- package/es/components/pisellLoading/index.d.ts +0 -1
- package/es/components/pisellModal/components/IpadModal/index.d.ts +0 -1
- package/es/components/pisellModal/components/MobileModal/index.d.ts +0 -1
- package/es/components/pisellModal/components/index.d.ts +0 -1
- package/es/components/pisellRecordBoard/PisellRecordBoard.js +9 -3
- package/es/components/pisellRecordBoard/shellFrame/Calendar/utils/BookingCalendarStyle.d.ts +1 -1
- package/es/components/pisellRecordBoard/shellFrame/ColumnSetting/index.js +2 -1
- package/es/components/pisellRecordBoard/shellFrame/Pagination/index.js +9 -2
- package/es/components/pisellRecordBoard/shellFrame/ToolBar/index.js +99 -101
- package/es/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarConstants.d.ts +8 -0
- package/es/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarConstants.js +12 -0
- package/es/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarI18n.d.ts +13 -0
- package/es/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarI18n.js +66 -0
- package/es/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolbar.less +176 -10
- package/es/components/pisellRecordBoard/shellFrame/ToolBarQuickFilter/index.js +20 -2
- package/es/components/pisellRecordBoard/shellFrame/index.d.ts +6 -0
- package/es/components/pisellRecordBoard/shellFrame/index.js +3 -1
- package/es/components/pisellRecordBoard/types.d.ts +20 -1
- package/es/components/pisellShellFrame/PisellShellFrame.js +4 -1
- package/es/components/pisellShellFrame/PisellShellFrame.less +13 -0
- package/es/components/pisellShellFrame/types.d.ts +6 -0
- package/es/components/pisellTimeNavigator/PisellTimeNavigator.js +139 -29
- package/es/components/pisellTimeNavigator/PisellTimeNavigator.less +126 -13
- package/es/components/pisellTimeNavigator/components/CursorLayer.d.ts +3 -1
- package/es/components/pisellTimeNavigator/components/CursorLayer.js +3 -0
- package/es/components/pisellTimeNavigator/components/GestureLayer.d.ts +9 -1
- package/es/components/pisellTimeNavigator/components/GestureLayer.js +11 -4
- package/es/components/pisellTimeNavigator/timeNavigatorConstants.d.ts +20 -0
- package/es/components/pisellTimeNavigator/timeNavigatorConstants.js +27 -0
- package/es/components/pisellTooltip/index.d.ts +1 -0
- package/es/components/productCard/components/Action/index.d.ts +1 -0
- package/es/components/productCard/components/AmountFooter/index.d.ts +0 -1
- package/es/components/productCard/components/MultiDay/index.d.ts +0 -1
- package/es/components/productCard/components/Note/index.d.ts +0 -1
- package/es/components/productCard/components/Packages/components/collapsibleList/utils.d.ts +0 -1
- package/es/components/productCard/components/Packages/components/options/index.d.ts +0 -1
- package/es/components/productCard/components/Packages/index.d.ts +0 -1
- package/es/components/productCard/components/Time/components/SelectResource/index.d.ts +0 -1
- package/es/components/productCard/components/Time/index.d.ts +0 -1
- package/es/components/qrcode/index.d.ts +0 -1
- package/es/components/table/Actions/component/ColumnsSetting/index.d.ts +0 -1
- package/es/components/table/Actions/component/ExportImport/index.d.ts +0 -1
- package/es/components/table/Actions/component/GallerySetting/index.d.ts +0 -1
- package/es/components/table/Actions/component/Group/index.d.ts +0 -1
- package/es/components/table/Actions/index.d.ts +0 -1
- package/es/components/table/BasicTable/index.d.ts +0 -1
- package/es/components/table/Gallery/components/GalleryItem/components/Cover/index.d.ts +0 -1
- package/es/components/table/Gallery/components/GalleryItem/components/RenderFields/index.d.ts +0 -1
- package/es/components/table/Gallery/components/GalleryItem/components/Title/index.d.ts +0 -1
- package/es/components/table/Gallery/components/VirtualGrid/useGapSize.d.ts +2 -2
- package/es/components/table/Table/SelectField/index.d.ts +0 -1
- package/es/components/table/Table/fields/date/Show/index.d.ts +0 -1
- package/es/components/table/Table/fields/date/index.d.ts +0 -1
- package/es/components/table/Table/fields/image/Show/index.d.ts +0 -1
- package/es/components/table/Table/fields/index.d.ts +0 -1
- package/es/components/table/Table/fields/link/Show/index.d.ts +0 -1
- package/es/components/table/Table/fields/number/Show/index.d.ts +0 -1
- package/es/components/table/Table/fields/number/index.d.ts +0 -1
- package/es/components/table/Table/fields/numberRange/Show/index.d.ts +0 -1
- package/es/components/table/Table/fields/numberRange/index.d.ts +0 -1
- package/es/components/table/Table/fields/oldRangePicker/index.d.ts +0 -1
- package/es/components/table/Table/fields/pSwitch/Show/index.d.ts +0 -1
- package/es/components/table/Table/fields/rangePicker/index.d.ts +0 -1
- package/es/components/table/Table/fields/search/Show/index.d.ts +0 -1
- package/es/components/table/Table/fields/search/index.d.ts +0 -1
- package/es/components/table/Table/fields/select/filterUtil/index.d.ts +1 -1
- package/es/components/table/Table/fields/select/index.d.ts +0 -1
- package/es/components/table/Table/fields/text/Show/index.d.ts +0 -1
- package/es/components/table/Table/fields/text/index.d.ts +0 -1
- package/es/components/table/Table/fields/treeSelect/filterUtil/index.d.ts +1 -1
- package/es/components/table/Table/fields/treeSelect/index.d.ts +0 -1
- package/es/components/table/Table/tableConfig/SortRow/index.d.ts +0 -1
- package/es/components/table/Table/tableConfig/summary/index.d.ts +0 -1
- package/es/components/table/Table/utils.d.ts +1 -1
- package/es/components/table/View/index.d.ts +0 -1
- package/es/components/versionSelect/index.d.ts +0 -1
- package/es/index.d.ts +8 -1
- package/es/index.js +8 -1
- package/es/locales/en-US.d.ts +2 -0
- package/es/locales/en-US.js +2 -0
- package/es/locales/ja.d.ts +2 -0
- package/es/locales/ja.js +2 -0
- package/es/locales/pt.d.ts +2 -0
- package/es/locales/pt.js +2 -0
- package/es/locales/zh-CN.d.ts +2 -0
- package/es/locales/zh-CN.js +2 -0
- package/es/locales/zh-TW.d.ts +2 -0
- package/es/locales/zh-TW.js +2 -0
- package/es/utils/index.d.ts +1 -1
- package/es/utils/platform.d.ts +1 -1
- package/lib/components/Pagination/index.d.ts +0 -1
- package/lib/components/PisellCards/components/PisellImageCard/PisellImageCard.d.ts +0 -1
- package/lib/components/PisellFields/index.d.ts +0 -1
- package/lib/components/PisellMetrics/index.d.ts +0 -1
- package/lib/components/cardPro/index.d.ts +1 -0
- package/lib/components/colorPicker/index.d.ts +0 -1
- package/lib/components/dataSourceComponents/dataSourceForm/formItem.d.ts +0 -1
- package/lib/components/dataSourceComponents/dataSourceForm/utils.d.ts +1 -1
- package/lib/components/dataSourceComponents/dataSourceShow/dataSourceImage/index.d.ts +0 -1
- package/lib/components/dataSourceComponents/dataSourceShow/dataSourceQRCode/index.d.ts +0 -1
- package/lib/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +0 -1
- package/lib/components/dataSourceComponents/dataSourceTable/filter/utils.d.ts +0 -1
- package/lib/components/dataSourceComponents/dataSourceTable/hooks/useDataSourceKey.d.ts +2 -3
- package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +3 -3
- package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableQuery.d.ts +0 -1
- package/lib/components/dataSourceComponents/dataSourceWrapper/index.d.ts +0 -1
- package/lib/components/dataSourceComponents/fields/Input.Json/ReadPretty.d.ts +0 -1
- package/lib/components/dataSourceComponents/fields/Input.Password/ReadPretty.d.ts +0 -1
- package/lib/components/dataSourceComponents/fields/Input.Subdomain/index.d.ts +1 -1
- package/lib/components/dataSourceComponents/fields/RecordListWrapper/index.d.ts +1 -2
- package/lib/components/dataSourceComponents/fields/Select/index.d.ts +1 -2
- package/lib/components/dataSourceComponents/fields/Tabs/index.d.ts +1 -2
- package/lib/components/dataSourceComponents/fields/Upload/ReadPretty.d.ts +0 -1
- package/lib/components/dataSourceComponents/fields/Upload/utils.d.ts +1 -1
- package/lib/components/dataSourceComponents/fields/index.d.ts +16 -17
- package/lib/components/date-picker/datePickerCpt.d.ts +0 -1
- package/lib/components/date-picker/index.d.ts +0 -1
- package/lib/components/drag-sort-tree/TreeItem/index.d.ts +1 -0
- package/lib/components/filter/components/FilterItem/index.js +2 -1
- package/lib/components/filter/components/QuickFilter/index.js +3 -2
- package/lib/components/filter/components/items/index.d.ts +0 -1
- package/lib/components/filter/components/items/text/Editor/index.d.ts +0 -1
- package/lib/components/filter/components/items/text/Preview/index.d.ts +0 -1
- package/lib/components/filter/components/items/text/index.d.ts +0 -1
- package/lib/components/filter/index.d.ts +0 -1
- package/lib/components/list/index.d.ts +0 -1
- package/lib/components/lowCodePage/index.d.ts +0 -1
- package/lib/components/pisellAdjustPrice/PisellAdjustPriceInputNumber.d.ts +0 -1
- package/lib/components/pisellDataSourceContainer/PisellDataSourceContainer.d.ts +0 -1
- package/lib/components/pisellDataSourceContainer/hooks/useDataSourceKey.d.ts +2 -3
- package/lib/components/pisellDatePicker/datePickerCpt.d.ts +1 -0
- package/lib/components/pisellFilter/index.d.ts +0 -1
- package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.js +141 -44
- package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.less +22 -0
- package/lib/components/pisellFloorMapLayout/components/FigmaTableCard.d.ts +2 -2
- package/lib/components/pisellFloorMapLayout/components/FigmaTableCard.js +213 -94
- package/lib/components/pisellFloorMapLayout/components/FloorMapEditPanel.js +41 -2
- package/lib/components/pisellFloorMapLayout/components/FloorMapEditTopBar.d.ts +22 -0
- package/lib/components/pisellFloorMapLayout/components/FloorMapEditTopBar.js +128 -12
- package/lib/components/pisellFloorMapLayout/components/FloorMapEditTopBar.less +9 -1
- package/lib/components/pisellFloorMapLayout/components/FloorMapToolbar.js +53 -5
- package/lib/components/pisellFloorMapLayout/components/FloorMapToolbar.less +97 -4
- package/lib/components/pisellFloorMapLayout/components/HistoryIcons.d.ts +39 -0
- package/lib/components/pisellFloorMapLayout/components/HistoryIcons.js +71 -0
- package/lib/components/pisellFloorMapLayout/components/ItemLayer.js +2 -1
- package/lib/components/pisellFloorMapLayout/components/ViewControls.d.ts +9 -0
- package/lib/components/pisellFloorMapLayout/components/ViewControls.js +158 -49
- package/lib/components/pisellFloorMapLayout/components/ViewControls.less +224 -21
- package/lib/components/pisellFloorMapLayout/components/ViewControlsWithZoom.d.ts +6 -0
- package/lib/components/pisellFloorMapLayout/components/ViewControlsWithZoom.js +3 -0
- package/lib/components/pisellFloorMapLayout/floorMapLayoutConstants.d.ts +4 -0
- package/lib/components/pisellFloorMapLayout/floorMapLayoutConstants.js +29 -0
- package/lib/components/pisellFloorMapLayout/hooks/floorMapViewportPersistence.d.ts +25 -0
- package/lib/components/pisellFloorMapLayout/hooks/floorMapViewportPersistence.js +98 -0
- package/lib/components/pisellFloorMapLayout/hooks/useDraftConfigHistory.d.ts +18 -0
- package/lib/components/pisellFloorMapLayout/hooks/useDraftConfigHistory.js +95 -0
- package/lib/components/pisellFloorMapLayout/hooks/useFloorMapEditState.d.ts +5 -0
- package/lib/components/pisellFloorMapLayout/hooks/useFloorMapEditState.js +65 -15
- package/lib/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.d.ts +23 -1
- package/lib/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.js +196 -24
- package/lib/components/pisellFloorMapLayout/index.d.ts +1 -0
- package/lib/components/pisellFloorMapLayout/index.js +9 -0
- package/lib/components/pisellFloorMapLayout/locales-ja.d.ts +20 -0
- package/lib/components/pisellFloorMapLayout/locales-ja.js +21 -1
- package/lib/components/pisellFloorMapLayout/locales-pt.d.ts +20 -0
- package/lib/components/pisellFloorMapLayout/locales-pt.js +21 -1
- package/lib/components/pisellFloorMapLayout/locales.d.ts +100 -0
- package/lib/components/pisellFloorMapLayout/locales.js +63 -3
- package/lib/components/pisellFloorMapLayout/types.d.ts +37 -0
- package/lib/components/pisellFloorMapLayout/utils/floorMapElementNameAsTitle.d.ts +50 -0
- package/lib/components/pisellFloorMapLayout/utils/floorMapElementNameAsTitle.js +60 -0
- package/lib/components/pisellGridPro/ToolBar/index.less +5 -4
- package/lib/components/pisellInput/components/BankCard/index.d.ts +1 -0
- package/lib/components/pisellInput/components/SecurityCode/index.d.ts +1 -0
- package/lib/components/pisellLoading/index.d.ts +0 -1
- package/lib/components/pisellModal/components/IpadModal/index.d.ts +0 -1
- package/lib/components/pisellModal/components/MobileModal/index.d.ts +0 -1
- package/lib/components/pisellModal/components/index.d.ts +0 -1
- package/lib/components/pisellRecordBoard/PisellRecordBoard.js +10 -3
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/utils/BookingCalendarStyle.d.ts +1 -1
- package/lib/components/pisellRecordBoard/shellFrame/ColumnSetting/index.js +2 -1
- package/lib/components/pisellRecordBoard/shellFrame/Pagination/index.js +3 -2
- package/lib/components/pisellRecordBoard/shellFrame/ToolBar/index.js +70 -75
- package/lib/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarConstants.d.ts +8 -0
- package/lib/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarConstants.js +38 -0
- package/lib/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarI18n.d.ts +13 -0
- package/lib/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarI18n.js +100 -0
- package/lib/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolbar.less +176 -10
- package/lib/components/pisellRecordBoard/shellFrame/ToolBarQuickFilter/index.js +8 -0
- package/lib/components/pisellRecordBoard/shellFrame/index.d.ts +6 -0
- package/lib/components/pisellRecordBoard/shellFrame/index.js +2 -1
- package/lib/components/pisellRecordBoard/types.d.ts +20 -1
- package/lib/components/pisellShellFrame/PisellShellFrame.js +2 -1
- package/lib/components/pisellShellFrame/PisellShellFrame.less +13 -0
- package/lib/components/pisellShellFrame/types.d.ts +6 -0
- package/lib/components/pisellTimeNavigator/PisellTimeNavigator.js +96 -27
- package/lib/components/pisellTimeNavigator/PisellTimeNavigator.less +126 -13
- package/lib/components/pisellTimeNavigator/components/CursorLayer.d.ts +3 -1
- package/lib/components/pisellTimeNavigator/components/CursorLayer.js +2 -0
- package/lib/components/pisellTimeNavigator/components/GestureLayer.d.ts +9 -1
- package/lib/components/pisellTimeNavigator/components/GestureLayer.js +5 -2
- package/lib/components/pisellTimeNavigator/timeNavigatorConstants.d.ts +20 -0
- package/lib/components/pisellTimeNavigator/timeNavigatorConstants.js +47 -0
- package/lib/components/pisellTooltip/index.d.ts +1 -0
- package/lib/components/productCard/components/Action/index.d.ts +1 -0
- package/lib/components/productCard/components/AmountFooter/index.d.ts +0 -1
- package/lib/components/productCard/components/MultiDay/index.d.ts +0 -1
- package/lib/components/productCard/components/Note/index.d.ts +0 -1
- package/lib/components/productCard/components/Packages/components/collapsibleList/utils.d.ts +0 -1
- package/lib/components/productCard/components/Packages/components/options/index.d.ts +0 -1
- package/lib/components/productCard/components/Packages/index.d.ts +0 -1
- package/lib/components/productCard/components/Time/components/SelectResource/index.d.ts +0 -1
- package/lib/components/productCard/components/Time/index.d.ts +0 -1
- package/lib/components/qrcode/index.d.ts +0 -1
- package/lib/components/table/Actions/component/ColumnsSetting/index.d.ts +0 -1
- package/lib/components/table/Actions/component/ExportImport/index.d.ts +0 -1
- package/lib/components/table/Actions/component/GallerySetting/index.d.ts +0 -1
- package/lib/components/table/Actions/component/Group/index.d.ts +0 -1
- package/lib/components/table/Actions/index.d.ts +0 -1
- package/lib/components/table/BasicTable/index.d.ts +0 -1
- package/lib/components/table/Gallery/components/GalleryItem/components/Cover/index.d.ts +0 -1
- package/lib/components/table/Gallery/components/GalleryItem/components/RenderFields/index.d.ts +0 -1
- package/lib/components/table/Gallery/components/GalleryItem/components/Title/index.d.ts +0 -1
- package/lib/components/table/Gallery/components/VirtualGrid/useGapSize.d.ts +2 -2
- package/lib/components/table/Table/SelectField/index.d.ts +0 -1
- package/lib/components/table/Table/fields/date/Show/index.d.ts +0 -1
- package/lib/components/table/Table/fields/date/index.d.ts +0 -1
- package/lib/components/table/Table/fields/image/Show/index.d.ts +0 -1
- package/lib/components/table/Table/fields/index.d.ts +0 -1
- package/lib/components/table/Table/fields/link/Show/index.d.ts +0 -1
- package/lib/components/table/Table/fields/number/Show/index.d.ts +0 -1
- package/lib/components/table/Table/fields/number/index.d.ts +0 -1
- package/lib/components/table/Table/fields/numberRange/Show/index.d.ts +0 -1
- package/lib/components/table/Table/fields/numberRange/index.d.ts +0 -1
- package/lib/components/table/Table/fields/oldRangePicker/index.d.ts +0 -1
- package/lib/components/table/Table/fields/pSwitch/Show/index.d.ts +0 -1
- package/lib/components/table/Table/fields/rangePicker/index.d.ts +0 -1
- package/lib/components/table/Table/fields/search/Show/index.d.ts +0 -1
- package/lib/components/table/Table/fields/search/index.d.ts +0 -1
- package/lib/components/table/Table/fields/select/filterUtil/index.d.ts +1 -1
- package/lib/components/table/Table/fields/select/index.d.ts +0 -1
- package/lib/components/table/Table/fields/text/Show/index.d.ts +0 -1
- package/lib/components/table/Table/fields/text/index.d.ts +0 -1
- package/lib/components/table/Table/fields/treeSelect/filterUtil/index.d.ts +1 -1
- package/lib/components/table/Table/fields/treeSelect/index.d.ts +0 -1
- package/lib/components/table/Table/tableConfig/SortRow/index.d.ts +0 -1
- package/lib/components/table/Table/tableConfig/summary/index.d.ts +0 -1
- package/lib/components/table/Table/utils.d.ts +1 -1
- package/lib/components/table/View/index.d.ts +0 -1
- package/lib/components/versionSelect/index.d.ts +0 -1
- package/lib/index.d.ts +8 -1
- package/lib/index.js +8 -0
- package/lib/locales/en-US.d.ts +2 -0
- package/lib/locales/en-US.js +2 -0
- package/lib/locales/ja.d.ts +2 -0
- package/lib/locales/ja.js +2 -0
- package/lib/locales/pt.d.ts +2 -0
- package/lib/locales/pt.js +2 -0
- package/lib/locales/zh-CN.d.ts +2 -0
- package/lib/locales/zh-CN.js +2 -0
- package/lib/locales/zh-TW.d.ts +2 -0
- package/lib/locales/zh-TW.js +2 -0
- package/lib/utils/index.d.ts +1 -1
- package/lib/utils/platform.d.ts +1 -1
- package/lowcode/pisell-record-board-calendar-view/meta.ts +1 -1
- 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
|
-
|
|
94
|
-
|
|
107
|
+
currentCanvasId = _useState2[0],
|
|
108
|
+
setCurrentCanvasId = _useState2[1];
|
|
95
109
|
var _useState3 = useState(null),
|
|
96
110
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
97
|
-
|
|
98
|
-
|
|
111
|
+
selectedId = _useState4[0],
|
|
112
|
+
setSelectedId = _useState4[1];
|
|
99
113
|
var _useState5 = useState(null),
|
|
100
114
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
var _useState7 = useState(
|
|
115
|
+
placeMode = _useState6[0],
|
|
116
|
+
setPlaceMode = _useState6[1];
|
|
117
|
+
var _useState7 = useState(false),
|
|
104
118
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
105
|
-
|
|
106
|
-
|
|
119
|
+
saving = _useState8[0],
|
|
120
|
+
setSaving = _useState8[1];
|
|
107
121
|
var _useState9 = useState(false),
|
|
108
122
|
_useState10 = _slicedToArray(_useState9, 2),
|
|
109
|
-
|
|
110
|
-
|
|
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
|
|
121
|
-
|
|
122
|
-
savedBaselineConfig =
|
|
123
|
-
setSavedBaselineConfig =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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$
|
|
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$
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
};
|