@pisell/materials 1.8.41 → 1.8.42
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/meta.js +3 -3
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +51 -216
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +51 -216
- package/es/components/Pagination/index.js +43 -9
- package/es/components/PisellCards/components/GraphicTextCard/docs/GraphicTextCard.$tab-dev.md +2 -5
- package/es/components/PisellCards/components/GraphicTextCard/docs/GraphicTextCard.$tab-test.md +171 -169
- package/es/components/PisellCards/components/GraphicTextCard/docs/GraphicTextCard.md +27 -87
- package/es/components/PisellCards/components/GraphicTextCard/types.d.ts +7 -18
- package/es/components/PisellCards/components/TextCard/TextCard.js +3 -2
- package/es/components/PisellCards/components/TextCard/components/BadgeWrapper.js +6 -20
- package/es/components/PisellCards/components/TextCard/components/TextContent.js +1 -3
- package/es/components/PisellCards/components/TextCard/docs/TextCard.$tab-dev.md +5 -36
- package/es/components/PisellCards/components/TextCard/docs/TextCard.$tab-test.md +258 -2434
- package/es/components/PisellCards/components/TextCard/docs/TextCard.md +13 -78
- package/es/components/PisellCards/index.d.ts +0 -3
- package/es/components/PisellCards/index.js +1 -3
- package/es/components/PisellLayouts/index.d.ts +1 -1
- package/es/components/PisellProcedure/components/ProcedureHeader.js +1 -1
- package/es/components/PisellTabbar/PisellTabbar.js +1 -1
- package/es/components/PisellTabbar/template/Template1/PisellTabbar.js +1 -1
- package/es/components/SafeAreaTop/index.d.ts +6 -0
- package/es/components/SafeAreaTop/index.js +112 -0
- package/es/components/SafeAreaTop/index.less +11 -0
- package/es/components/SafeAreaTop/types.d.ts +13 -0
- package/es/components/appVersionControl/index.js +2 -3
- package/es/components/dataSourceComponents/dataSourceForm/BaseForm.js +4 -4
- package/es/components/dataSourceComponents/dataSourceForm/formItem.js +1 -1
- package/es/components/dataSourceComponents/dataSourceForm/index.js +1 -1
- package/es/components/dataSourceComponents/dataSourceForm/submitButton/index.js +3 -3
- package/es/components/dataSourceComponents/dataSourceForm/utils.js +3 -3
- package/es/components/dataSourceComponents/dataSourceShow/dataSourceTypography/index.js +1 -1
- package/es/components/dataSourceComponents/dataSourceSubForm/index.js +1 -1
- package/es/components/dataSourceComponents/dataSourceTable/BaseTable.js +2 -2
- package/es/components/dataSourceComponents/dataSourceTable/filter/index.js +1 -1
- package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.js +2 -3
- package/es/components/dataSourceComponents/dataSourceTable/type.d.ts +0 -1
- package/es/components/dataSourceComponents/dataSourceWrapper/BaseWrapper.js +1 -1
- package/es/components/dataSourceComponents/fields/DatePicker/WithMode.js +0 -4
- package/es/components/dataSourceComponents/fields/IconSelect/WithMode.js +1 -1
- package/es/components/dataSourceComponents/fields/Input/WithMode.js +1 -1
- package/es/components/dataSourceComponents/fields/Input.Phone/serve.js +1 -4
- package/es/components/dataSourceComponents/fields/Radio/WithMode.js +1 -1
- package/es/components/dataSourceComponents/fields/TimePicker/WithMode.js +1 -1
- package/es/components/dataSourceComponents/hooks/useActions.js +1 -1
- package/es/components/dataSourceComponents/provider/dataSource/DataSourceProvider.js +1 -1
- package/es/components/drag-sort-tree/index.d.ts +0 -1
- package/es/components/drag-sort-tree/index.js +1 -0
- package/es/components/drawer/index.js +6 -7
- package/es/components/filter/components/Dropdown/index.js +4 -2
- package/es/components/filter/components/Dropdown/index.less +186 -0
- package/es/components/filter/components/FilterButton/index.js +41 -13
- package/es/components/filter/components/FilterButton/index.less +29 -0
- package/es/components/filter/components/FilterButton/types.d.ts +5 -0
- package/es/components/filter/components/FilterItem/index.js +93 -16
- package/es/components/filter/components/QuickFilter/index.js +7 -4
- package/es/components/filter/types.d.ts +4 -0
- package/es/components/login-and-register/index.js +5 -4
- package/es/components/page/index.js +1 -1
- package/es/components/pisellAppCard/PisellAppCard.js +1 -1
- package/es/components/pisellCardList/index.js +1 -1
- package/es/components/pisellCurrency/PisellCurrency.js +6 -13
- package/es/components/pisellCurrency/PisellCurrency.less +123 -0
- package/es/components/pisellDataSourceContainer/components/Pagination/index.js +9 -3
- package/es/components/pisellDataSourceContainer/docs/PisellDataSourceContainer.md +240 -189
- package/es/components/pisellDataSourceContainer/type.d.ts +1 -1
- package/es/components/pisellDateTimeDisplay/docs/pisellDateTimeDisplay.md +556 -556
- package/es/components/pisellEmail/PisellEmail.js +6 -13
- package/es/components/pisellEmail/PisellEmail.less +92 -0
- package/es/components/pisellEmpty/index.d.ts +1 -1
- package/es/components/pisellFilter/docs/PisellFilter.md +2 -2
- package/es/components/pisellFilter/index.js +7 -3
- package/es/components/pisellFind/docs/pisellFind.md +2 -2
- package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.d.ts +2 -1
- package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.js +480 -88
- package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.less +62 -0
- package/es/components/pisellFloorMapLayout/appearance/floorMapAppearance.d.ts +4 -0
- package/es/components/pisellFloorMapLayout/appearance/floorMapAppearance.js +22 -0
- package/es/components/pisellFloorMapLayout/components/CanvasTabs.js +18 -3
- package/es/components/pisellFloorMapLayout/components/CanvasTabs.less +23 -0
- package/es/components/pisellFloorMapLayout/components/EditableItemLayer.js +3 -2
- package/es/components/pisellFloorMapLayout/components/FigmaTableCard.d.ts +2 -2
- package/es/components/pisellFloorMapLayout/components/FigmaTableCard.js +209 -74
- package/es/components/pisellFloorMapLayout/components/FloorMapBuiltinShapeElement.d.ts +11 -0
- package/es/components/pisellFloorMapLayout/components/FloorMapBuiltinShapeElement.js +123 -0
- package/es/components/pisellFloorMapLayout/components/FloorMapEditPanel.js +88 -12
- package/es/components/pisellFloorMapLayout/components/FloorMapEditPanel.less +15 -0
- package/es/components/pisellFloorMapLayout/components/FloorMapEditTopBar.js +169 -23
- package/es/components/pisellFloorMapLayout/components/FloorMapEditTopBar.less +95 -1
- package/es/components/pisellFloorMapLayout/components/FloorMapOverview.js +94 -0
- package/es/components/pisellFloorMapLayout/components/FloorMapOverview.less +65 -0
- package/es/components/pisellFloorMapLayout/components/FloorMapToolbar.js +153 -38
- package/es/components/pisellFloorMapLayout/components/FloorMapToolbar.less +178 -4
- package/es/components/pisellFloorMapLayout/components/HistoryIcons.js +64 -0
- package/es/components/pisellFloorMapLayout/components/ItemLayer.js +32 -10
- package/es/components/pisellFloorMapLayout/components/ItemLayer.less +30 -2
- package/es/components/pisellFloorMapLayout/components/ViewControls.js +119 -65
- package/es/components/pisellFloorMapLayout/components/ViewControls.less +263 -50
- package/es/components/pisellFloorMapLayout/components/ViewControlsWithZoom.js +4 -0
- package/es/components/pisellFloorMapLayout/context/mergeFloorMapLayoutContext.js +3 -1
- package/es/components/pisellFloorMapLayout/docs/pisellFloorMapLayout.md +559 -194
- package/es/components/pisellFloorMapLayout/floorMapLayoutConstants.js +21 -0
- package/es/components/pisellFloorMapLayout/hooks/floorMapViewportPersistence.js +47 -0
- package/es/components/pisellFloorMapLayout/hooks/useDraftConfigHistory.js +95 -0
- package/es/components/pisellFloorMapLayout/hooks/useFloorMapEditState.js +105 -25
- package/es/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.js +400 -66
- package/es/components/pisellFloorMapLayout/index.d.ts +5 -2
- package/es/components/pisellFloorMapLayout/locales-ja.js +39 -1
- package/es/components/pisellFloorMapLayout/locales-pt.js +39 -1
- package/es/components/pisellFloorMapLayout/locales.js +117 -3
- package/es/components/pisellFloorMapLayout/types.d.ts +86 -10
- package/es/components/pisellFloorMapLayout/types.js +7 -1
- package/es/components/pisellFloorMapLayout/utils/floorMapBuiltinShapes.d.ts +46 -0
- package/es/components/pisellFloorMapLayout/utils/floorMapBuiltinShapes.js +533 -0
- package/es/components/pisellFloorMapLayout/utils/floorMapCanvasStage.js +139 -0
- package/es/components/pisellFloorMapLayout/utils/floorMapConfigMerge.js +11 -2
- package/es/components/pisellFloorMapLayout/utils/floorMapDropUtils.js +3 -1
- package/es/components/pisellFloorMapLayout/utils/floorMapElementKindUtils.d.ts +3 -1
- package/es/components/pisellFloorMapLayout/utils/floorMapElementKindUtils.js +31 -7
- package/es/components/pisellFloorMapLayout/utils/floorMapElementNameAsTitle.d.ts +52 -0
- package/es/components/pisellFloorMapLayout/utils/floorMapElementNameAsTitle.js +61 -0
- package/es/components/pisellFloorMapLayout/utils/floorMapFallbackRender.js +12 -1
- package/es/components/pisellFloorMapLayout/utils/floorMapOverviewLayout.js +64 -0
- package/es/components/pisellFloorMapLayout/utils/floorMapViewConfigDiff.js +3 -2
- package/es/components/pisellGoodPassCard/index.less +1 -0
- package/es/components/pisellGridPro/GridView/docs/GridView.md +47 -48
- package/es/components/pisellGridPro/ToolBar/docs/ToolBar.$tab-dev.md +4 -2
- package/es/components/pisellGridPro/ToolBar/docs/ToolBar.md +95 -81
- package/es/components/pisellGridPro/ToolBar/index.less +5 -4
- package/es/components/pisellGridPro/docs/PisellGridPro.md +173 -262
- package/es/components/pisellHierarchicalSummaryList/docs/pisellHierarchicalSummaryList.$tab-dev.md +3 -6
- package/es/components/pisellHierarchicalSummaryList/docs/pisellHierarchicalSummaryList.$tab-test.md +3 -4
- package/es/components/pisellHierarchicalSummaryList/docs/pisellHierarchicalSummaryList.md +1 -2
- package/es/components/pisellLongText/PisellLongText.js +6 -13
- package/es/components/pisellLongText/PisellLongText.less +67 -0
- package/es/components/pisellLookup/PisellLookup.js +1 -1
- package/es/components/pisellLookup/PisellLookup.less +46 -4
- package/es/components/pisellLookup/components/LookupResultHost.js +1 -1
- package/es/components/pisellLookup/components/LookupTrigger.js +6 -8
- package/es/components/pisellLookup/docs/pisellLookup.md +1 -1
- package/es/components/pisellMobileDateRangePicker/PisellMobileDateRangePicker.d.ts +9 -0
- package/es/components/pisellMobileDateRangePicker/PisellMobileDateRangePicker.js +149 -0
- package/es/components/pisellMobileDateRangePicker/PisellMobileDateRangePicker.less +73 -0
- package/es/components/pisellMobileDateRangePicker/index.d.ts +2 -0
- package/es/components/pisellMobileDateRangePicker/types.d.ts +31 -0
- package/es/components/pisellMobileDateRangePicker/types.js +4 -0
- package/es/components/pisellMultipleSelect/PisellMultipleSelect.js +5 -7
- package/es/components/pisellMultipleSelect/PisellMultipleSelect.less +139 -18
- package/es/components/pisellMultipleSelect/components/EditView.js +0 -1
- package/es/components/pisellNavigationMenu/PisellNavigationMenu.js +0 -4
- package/es/components/pisellNumber/PisellNumber.js +6 -13
- package/es/components/pisellNumber/PisellNumber.less +103 -0
- package/es/components/pisellPhone/PisellPhone.js +6 -13
- package/es/components/pisellPhone/PisellPhone.less +119 -0
- package/es/components/pisellPhone/components/EditView.js +19 -37
- package/es/components/pisellPhone/constants/countryCodes.js +25 -26
- package/es/components/pisellPhone/types.d.ts +2 -2
- package/es/components/pisellPhone/utils/countryCodeHelper.js +2 -2
- package/es/components/pisellQuickFilter/{doc → docs}/PisellQuickFilter.md +1 -1
- package/es/components/pisellRating/PisellRating.js +3 -5
- package/es/components/pisellRecordBoard/PisellRecordBoard.js +29 -10
- package/es/components/pisellRecordBoard/README.md +12 -0
- package/es/components/pisellRecordBoard/docs/PisellRecordBoard.md +716 -70
- package/es/components/pisellRecordBoard/docs/ShellFrame.md +62 -44
- package/es/components/pisellRecordBoard/index.d.ts +8 -1
- package/es/components/pisellRecordBoard/index.js +5 -0
- package/es/components/pisellRecordBoard/layouts/GridLayout/Grid.js +174 -17
- package/es/components/pisellRecordBoard/layouts/GridLayout/Grid.less +79 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/BookingCalendar.js +758 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/BookingCalendar.less +313 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/PisellRecordBoardCalendarView.d.ts +5 -1
- package/es/components/pisellRecordBoard/shellFrame/Calendar/PisellRecordBoardCalendarView.js +10 -8
- package/es/components/pisellRecordBoard/shellFrame/Calendar/bookingCalendarViewShared.js +191 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/calendarI18n.js +22 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/calendarPersistGuard.d.ts +1 -1
- package/es/components/pisellRecordBoard/shellFrame/Calendar/const/bookingCalendarConstants.js +39 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/hooks/useBookingCalendarDayOverlayLayout.js +74 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/modal/BookingCalendarBlockPanel.js +61 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/modal/BookingCalendarOverflowListLayer.js +26 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/modal/MoveConfirmModal.js +79 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/modal/OverflowListModal.js +61 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/modal/OverflowPopover.js +37 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/utils/BookingCalendarStyle.js +20 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/utils/bookingCalendarDateUtils.js +532 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/utils/bookingCalendarSelectionUtils.js +17 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarDaySelectionBar.js +31 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarDayView.js +583 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarGroupRowHeader.js +41 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarMonthView.js +111 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarResourceView.js +612 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarWeekView.js +168 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/view/bookingCalendarDayViewContext.js +8 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/view/day/useBookingCalendarDayHourRemaining.js +33 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/view/day/useBookingCalendarDaySelection.js +37 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/view/resource/useBookingCalendarResourceCellToggle.js +18 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/view/resource/useBookingCalendarResourceDayHeaderRemaining.js +33 -0
- package/es/components/pisellRecordBoard/shellFrame/Calendar/view/useBookingCalendarGoToDayFromCell.js +29 -0
- package/es/components/pisellRecordBoard/shellFrame/ColumnSetting/index.js +2 -1
- package/es/components/pisellRecordBoard/shellFrame/Pagination/index.js +7 -1
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/NoteTicker.js +43 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/PisellRecordBoardResourceWallView.d.ts +14 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/PisellRecordBoardResourceWallView.js +436 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/RecordBoardResourceWall.d.ts +11 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/RecordBoardResourceWall.js +9 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallControlPanel.js +179 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallControlPanelColorTab.js +62 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallControlPanelLayoutTab.js +57 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallViewport.less +88 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallViewportToolbar.js +83 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.js +218 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.less +339 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallMarquee.less +52 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallCardPresentation.js +153 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallUtils.d.ts +32 -0
- package/es/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallUtils.js +170 -0
- package/es/components/pisellRecordBoard/shellFrame/Search/index.js +1 -1
- package/es/components/pisellRecordBoard/shellFrame/ShellBodyMetaContext.d.ts +5 -1
- package/es/components/pisellRecordBoard/shellFrame/ToolBar/ToolBarFilter.less +30 -3
- package/es/components/pisellRecordBoard/shellFrame/ToolBar/index.js +157 -68
- package/es/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarConstants.js +11 -0
- package/es/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarI18n.js +56 -0
- package/es/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolbar.less +406 -14
- package/es/components/pisellRecordBoard/shellFrame/ToolBarQuickFilter/index.js +14 -4
- package/es/components/pisellRecordBoard/shellFrame/index.d.ts +9 -2
- package/es/components/pisellRecordBoard/shellFrame/index.js +73 -19
- package/es/components/pisellRecordBoard/types.d.ts +413 -8
- package/es/components/pisellRecordBoard/types.js +12 -0
- package/es/components/pisellRecordBoard/utils/partitionShellFrameChildren.js +16 -0
- package/es/components/pisellRecordBoard/utils/recordBoardPhoneGrid.d.ts +22 -0
- package/es/components/pisellRecordBoard/utils/recordBoardPhoneGrid.js +46 -0
- package/es/components/pisellReservationSchedule/PisellReservationSchedule.js +67 -15
- package/es/components/pisellReservationSchedule/PisellReservationSchedule.less +23 -0
- package/es/components/pisellReservationSchedule/locales.js +21 -3
- package/es/components/pisellReservationSchedule/types.d.ts +5 -0
- package/es/components/pisellReservationScheduleBand/PisellReservationScheduleBand.js +11 -6
- package/es/components/pisellReservationScheduleBand/PisellReservationScheduleBand.less +37 -4
- package/es/components/pisellReservationScheduleBand/index.d.ts +2 -1
- package/es/components/pisellReservationScheduleBand/types.d.ts +13 -2
- package/es/components/pisellReservationScheduleBand/utils/formatScheduleAtLabel.d.ts +13 -0
- package/es/components/pisellReservationScheduleBand/utils/formatScheduleAtLabel.js +17 -0
- package/es/components/pisellShellFrame/PisellShellFrame.js +2 -2
- package/es/components/pisellShellFrame/PisellShellFrame.less +18 -2
- package/es/components/pisellShellFrame/types.d.ts +6 -0
- package/es/components/pisellSingleLineText/PisellSingleLineText.js +14 -21
- package/es/components/pisellSingleLineText/PisellSingleLineText.less +143 -0
- package/es/components/pisellSingleLineText/docs/pisellSingleLineText.md +256 -256
- package/es/components/pisellSingleSelect/PisellSingleSelect.js +4 -7
- package/es/components/pisellSingleSelect/PisellSingleSelect.less +106 -5
- package/es/components/pisellSingleSelect/docs/pisellSingleSelect.md +428 -525
- package/es/components/pisellSort/docs/PisellSort.md +131 -67
- package/es/components/pisellStatisticList/index.js +0 -1
- package/es/components/pisellTimeNavigator/PisellTimeNavigator.js +227 -58
- package/es/components/pisellTimeNavigator/PisellTimeNavigator.less +128 -15
- package/es/components/pisellTimeNavigator/components/CursorLayer.js +3 -3
- package/es/components/pisellTimeNavigator/components/GestureLayer.js +12 -3
- package/es/components/pisellTimeNavigator/components/ScaleLayer.js +34 -6
- package/es/components/pisellTimeNavigator/docs/pisellTimeNavigator.$tab-dev.md +26 -42
- package/es/components/pisellTimeNavigator/docs/pisellTimeNavigator.$tab-test.md +5 -5
- package/es/components/pisellTimeNavigator/hooks/useTimeAxis.js +43 -23
- package/es/components/pisellTimeNavigator/index.d.ts +1 -1
- package/es/components/pisellTimeNavigator/types.d.ts +15 -0
- package/es/components/pisellTimeNavigator/utils/index.d.ts +25 -4
- package/es/components/pisellTimeNavigator/utils/index.js +85 -17
- package/es/components/pisellTimeRangeDisplay/docs/pisellTimeRangeDisplay.md +226 -227
- package/es/components/pisellUrl/PisellUrl.js +6 -13
- package/es/components/pisellWalletPassCard/index.js +5 -11
- package/es/components/productCard/cartSkuCard/components/Gift/index.js +34 -0
- package/es/components/productCard/cartSkuCard/components/Gift/index.less +84 -0
- package/es/components/productCard/cartSkuCard/components/Promotion/index.js +23 -0
- package/es/components/productCard/cartSkuCard/components/Promotion/index.less +16 -0
- package/es/components/productCard/cartSkuCard/components/basicInfo/index.js +65 -4
- package/es/components/productCard/cartSkuCard/components/basicInfo/index.less +80 -1
- package/es/components/productCard/cartSkuCard/components/holders/index.js +1 -1
- package/es/components/productCard/cartSkuCard/components/packages/index.js +24 -9
- package/es/components/productCard/cartSkuCard/components/specs/index.js +22 -7
- package/es/components/productCard/cartSkuCard/components/specs/index.less +11 -0
- package/es/components/productCard/cartSkuCard/components/timeRange/index.js +2 -1
- package/es/components/productCard/cartSkuCard/components/weighing/index.js +27 -0
- package/es/components/productCard/cartSkuCard/components/weighing/index.less +25 -0
- package/es/components/productCard/cartSkuCard/index.js +68 -8
- package/es/components/productCard/cartSkuCard/locales.js +40 -5
- package/es/components/productCard/components/Header/DeleteButton/index.js +2 -2
- package/es/components/productCard/components/Header/DeleteButton/index.less +1 -2
- package/es/components/productCard/components/Header/EditButton/index.js +2 -1
- package/es/components/productCard/components/Header/index.less +1 -1
- package/es/components/productCard/components/Time/components/SelectHolder/index.js +2 -3
- package/es/components/productCard/components/Time/components/SelectHolderModal/index.js +1 -1
- package/es/components/productCard/components/Time/components/SelectHolderMultiple/index.js +2 -2
- package/es/components/productCard/components/Time/components/SelectResource/index.js +3 -6
- package/es/components/productCard/components/Time/index.js +2 -3
- package/es/components/productCard/index.d.ts +1 -0
- package/es/components/productCard/index.js +2 -0
- package/es/components/productCard/lineItem/BookingLineItem.js +173 -0
- package/es/components/productCard/lineItem/index.js +195 -0
- package/es/components/productCard/lineItem/index.less +195 -0
- package/es/components/productCard/lineItem/locales.js +25 -0
- package/es/components/productCard/status.js +3 -0
- package/es/components/productCard/types.d.ts +10 -0
- package/es/components/productCard/utils.js +1 -1
- package/es/components/select/index.js +1 -1
- package/es/components/select-time/index.js +1 -0
- package/es/components/table/Actions/component/ExportImport/index.js +4 -3
- package/es/components/table/Actions/component/GallerySetting/index.js +9 -10
- package/es/components/table/Actions/component/ViewMode/index.js +3 -4
- package/es/components/table/Actions/index.js +1 -1
- package/es/components/table/BasicTable/index.js +3 -4
- package/es/components/table/Gallery/components/GalleryItem/components/Title/index.less +1 -1
- package/es/components/table/Gallery/components/GalleryItem/index.js +4 -12
- package/es/components/table/Gallery/components/GalleryItem/index.less +0 -1
- package/es/components/table/Gallery/index.js +3 -11
- package/es/components/table/Table/fields/text/Show/index.js +1 -1
- package/es/components/table/Table/index.js +1 -2
- package/es/components/table/Table/tableConfig/header/index.js +1 -1
- package/es/components/table/Table/utils.js +1 -5
- package/es/components/table/hooks/useTableSetting.js +0 -3
- package/es/components/table/hooks/useTransDataSource.js +3 -4
- package/es/components/table/index.js +1 -1
- package/es/components/tabs/index.less +1 -1
- package/es/components/translation/index.d.ts +0 -1
- package/es/components/translation/index.js +10 -36
- package/es/components/translation/index.less +0 -12
- package/es/components/versionModal/index.d.ts +0 -1
- package/es/components/versionModal/index.js +2 -2
- package/es/components/versionSelect/index.js +1 -1
- package/es/components/virtual-keyboard/Amount/index.js +1 -1
- package/es/index.d.ts +101 -106
- package/es/index.js +97 -94
- package/es/locales/en-US.js +195 -70
- package/es/locales/ja.js +196 -13
- package/es/locales/pt.js +196 -13
- package/es/locales/zh-CN.js +189 -64
- package/es/locales/zh-TW.js +194 -69
- package/es/pisell-materials.tw.css +0 -1
- package/es/tailwind-input.css +3 -1
- package/lib/components/Pagination/index.js +42 -8
- package/lib/components/PisellCards/components/GraphicTextCard/docs/GraphicTextCard.$tab-dev.md +2 -5
- package/lib/components/PisellCards/components/GraphicTextCard/docs/GraphicTextCard.$tab-test.md +171 -169
- package/lib/components/PisellCards/components/GraphicTextCard/docs/GraphicTextCard.md +27 -87
- package/lib/components/PisellCards/components/GraphicTextCard/types.d.ts +7 -18
- package/lib/components/PisellCards/components/TextCard/TextCard.js +3 -2
- package/lib/components/PisellCards/components/TextCard/components/BadgeWrapper.js +6 -20
- package/lib/components/PisellCards/components/TextCard/components/TextContent.js +1 -3
- package/lib/components/PisellCards/components/TextCard/docs/TextCard.$tab-dev.md +5 -36
- package/lib/components/PisellCards/components/TextCard/docs/TextCard.$tab-test.md +258 -2434
- package/lib/components/PisellCards/components/TextCard/docs/TextCard.md +13 -78
- package/lib/components/PisellCards/index.d.ts +0 -3
- package/lib/components/PisellCards/index.js +1 -3
- package/lib/components/PisellLayouts/index.d.ts +1 -1
- package/lib/components/PisellProcedure/components/ProcedureHeader.js +1 -1
- package/lib/components/PisellTabbar/PisellTabbar.js +6 -6
- package/lib/components/PisellTabbar/template/Template1/PisellTabbar.js +6 -6
- package/lib/components/SafeAreaTop/index.d.ts +6 -0
- package/lib/components/SafeAreaTop/index.js +115 -0
- package/lib/components/SafeAreaTop/index.less +11 -0
- package/lib/components/SafeAreaTop/types.d.ts +13 -0
- package/lib/components/appVersionControl/index.js +11 -12
- package/lib/components/dataSourceComponents/dataSourceForm/BaseForm.js +6 -6
- package/lib/components/dataSourceComponents/dataSourceForm/formItem.js +1 -1
- package/lib/components/dataSourceComponents/dataSourceForm/index.js +1 -1
- package/lib/components/dataSourceComponents/dataSourceForm/submitButton/index.js +3 -3
- package/lib/components/dataSourceComponents/dataSourceForm/utils.js +3 -3
- package/lib/components/dataSourceComponents/dataSourceShow/dataSourceTypography/index.js +1 -1
- package/lib/components/dataSourceComponents/dataSourceSubForm/index.js +1 -1
- package/lib/components/dataSourceComponents/dataSourceTable/BaseTable.js +2 -2
- package/lib/components/dataSourceComponents/dataSourceTable/filter/index.js +1 -1
- package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.js +2 -3
- package/lib/components/dataSourceComponents/dataSourceTable/type.d.ts +0 -1
- package/lib/components/dataSourceComponents/dataSourceWrapper/BaseWrapper.js +1 -1
- package/lib/components/dataSourceComponents/fields/DatePicker/WithMode.js +0 -4
- package/lib/components/dataSourceComponents/fields/IconSelect/WithMode.js +1 -1
- package/lib/components/dataSourceComponents/fields/Input/WithMode.js +1 -1
- package/lib/components/dataSourceComponents/fields/Input.Phone/serve.js +1 -4
- package/lib/components/dataSourceComponents/fields/Radio/WithMode.js +1 -1
- package/lib/components/dataSourceComponents/fields/TimePicker/WithMode.js +4 -4
- package/lib/components/dataSourceComponents/hooks/useActions.js +1 -1
- package/lib/components/dataSourceComponents/provider/dataSource/DataSourceProvider.js +1 -1
- package/lib/components/drag-sort-tree/index.d.ts +0 -1
- package/lib/components/drag-sort-tree/index.js +1 -0
- package/lib/components/drawer/index.js +6 -7
- package/lib/components/filter/components/Dropdown/index.js +5 -2
- package/lib/components/filter/components/Dropdown/index.less +186 -0
- package/lib/components/filter/components/FilterButton/index.js +40 -12
- package/lib/components/filter/components/FilterButton/index.less +29 -0
- package/lib/components/filter/components/FilterButton/types.d.ts +5 -0
- package/lib/components/filter/components/FilterItem/index.js +94 -16
- package/lib/components/filter/components/QuickFilter/index.js +7 -4
- package/lib/components/filter/types.d.ts +4 -0
- package/lib/components/login-and-register/index.js +5 -4
- package/lib/components/page/index.js +1 -1
- package/lib/components/pisellAppCard/PisellAppCard.js +7 -7
- package/lib/components/pisellCardList/index.js +6 -6
- package/lib/components/pisellCurrency/PisellCurrency.js +6 -13
- package/lib/components/pisellCurrency/PisellCurrency.less +123 -0
- package/lib/components/pisellDataSourceContainer/components/Pagination/index.js +9 -3
- package/lib/components/pisellDataSourceContainer/docs/PisellDataSourceContainer.md +240 -189
- package/lib/components/pisellDataSourceContainer/type.d.ts +1 -1
- package/lib/components/pisellDateTimeDisplay/docs/pisellDateTimeDisplay.md +556 -556
- package/lib/components/pisellEmail/PisellEmail.js +6 -13
- package/lib/components/pisellEmail/PisellEmail.less +92 -0
- package/lib/components/pisellEmpty/index.d.ts +1 -1
- package/lib/components/pisellFilter/docs/PisellFilter.md +2 -2
- package/lib/components/pisellFilter/index.js +7 -3
- package/lib/components/pisellFind/docs/pisellFind.md +2 -2
- package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.d.ts +2 -1
- package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.js +478 -86
- package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.less +62 -0
- package/lib/components/pisellFloorMapLayout/appearance/floorMapAppearance.d.ts +4 -0
- package/lib/components/pisellFloorMapLayout/appearance/floorMapAppearance.js +22 -0
- package/lib/components/pisellFloorMapLayout/components/CanvasTabs.js +18 -3
- package/lib/components/pisellFloorMapLayout/components/CanvasTabs.less +23 -0
- package/lib/components/pisellFloorMapLayout/components/EditableItemLayer.js +3 -2
- package/lib/components/pisellFloorMapLayout/components/FigmaTableCard.d.ts +2 -2
- package/lib/components/pisellFloorMapLayout/components/FigmaTableCard.js +209 -74
- package/lib/components/pisellFloorMapLayout/components/FloorMapBuiltinShapeElement.d.ts +11 -0
- package/lib/components/pisellFloorMapLayout/components/FloorMapBuiltinShapeElement.js +125 -0
- package/lib/components/pisellFloorMapLayout/components/FloorMapEditPanel.js +86 -10
- package/lib/components/pisellFloorMapLayout/components/FloorMapEditPanel.less +15 -0
- package/lib/components/pisellFloorMapLayout/components/FloorMapEditTopBar.js +168 -22
- package/lib/components/pisellFloorMapLayout/components/FloorMapEditTopBar.less +95 -1
- package/lib/components/pisellFloorMapLayout/components/FloorMapOverview.js +97 -0
- package/lib/components/pisellFloorMapLayout/components/FloorMapOverview.less +65 -0
- package/lib/components/pisellFloorMapLayout/components/FloorMapToolbar.js +150 -35
- package/lib/components/pisellFloorMapLayout/components/FloorMapToolbar.less +178 -4
- package/lib/components/pisellFloorMapLayout/components/HistoryIcons.js +67 -0
- package/lib/components/pisellFloorMapLayout/components/ItemLayer.js +32 -10
- package/lib/components/pisellFloorMapLayout/components/ItemLayer.less +30 -2
- package/lib/components/pisellFloorMapLayout/components/ViewControls.js +118 -64
- package/lib/components/pisellFloorMapLayout/components/ViewControls.less +263 -50
- package/lib/components/pisellFloorMapLayout/components/ViewControlsWithZoom.js +4 -0
- package/lib/components/pisellFloorMapLayout/context/mergeFloorMapLayoutContext.js +3 -1
- package/lib/components/pisellFloorMapLayout/docs/pisellFloorMapLayout.md +559 -194
- package/lib/components/pisellFloorMapLayout/floorMapLayoutConstants.js +25 -0
- package/lib/components/pisellFloorMapLayout/hooks/floorMapViewportPersistence.js +52 -0
- package/lib/components/pisellFloorMapLayout/hooks/useDraftConfigHistory.js +96 -0
- package/lib/components/pisellFloorMapLayout/hooks/useFloorMapEditState.js +104 -24
- package/lib/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.js +399 -65
- package/lib/components/pisellFloorMapLayout/index.d.ts +5 -2
- package/lib/components/pisellFloorMapLayout/locales-ja.js +39 -1
- package/lib/components/pisellFloorMapLayout/locales-pt.js +39 -1
- package/lib/components/pisellFloorMapLayout/locales.js +117 -3
- package/lib/components/pisellFloorMapLayout/types.d.ts +86 -10
- package/lib/components/pisellFloorMapLayout/types.js +7 -0
- package/lib/components/pisellFloorMapLayout/utils/floorMapBuiltinShapes.d.ts +46 -0
- package/lib/components/pisellFloorMapLayout/utils/floorMapBuiltinShapes.js +536 -0
- package/lib/components/pisellFloorMapLayout/utils/floorMapCanvasStage.js +140 -0
- package/lib/components/pisellFloorMapLayout/utils/floorMapConfigMerge.js +11 -2
- package/lib/components/pisellFloorMapLayout/utils/floorMapDropUtils.js +3 -1
- package/lib/components/pisellFloorMapLayout/utils/floorMapElementKindUtils.d.ts +3 -1
- package/lib/components/pisellFloorMapLayout/utils/floorMapElementKindUtils.js +30 -5
- package/lib/components/pisellFloorMapLayout/utils/floorMapElementNameAsTitle.d.ts +52 -0
- package/lib/components/pisellFloorMapLayout/utils/floorMapElementNameAsTitle.js +64 -0
- package/lib/components/pisellFloorMapLayout/utils/floorMapFallbackRender.js +11 -0
- package/lib/components/pisellFloorMapLayout/utils/floorMapOverviewLayout.js +64 -0
- package/lib/components/pisellFloorMapLayout/utils/floorMapViewConfigDiff.js +4 -2
- package/lib/components/pisellGoodPassCard/index.less +1 -0
- package/lib/components/pisellGridPro/GridView/docs/GridView.md +47 -48
- package/lib/components/pisellGridPro/ToolBar/docs/ToolBar.$tab-dev.md +4 -2
- package/lib/components/pisellGridPro/ToolBar/docs/ToolBar.md +95 -81
- package/lib/components/pisellGridPro/ToolBar/index.less +5 -4
- package/lib/components/pisellGridPro/docs/PisellGridPro.md +173 -262
- package/lib/components/pisellHierarchicalSummaryList/docs/pisellHierarchicalSummaryList.$tab-dev.md +3 -6
- package/lib/components/pisellHierarchicalSummaryList/docs/pisellHierarchicalSummaryList.$tab-test.md +3 -4
- package/lib/components/pisellHierarchicalSummaryList/docs/pisellHierarchicalSummaryList.md +1 -2
- package/lib/components/pisellLongText/PisellLongText.js +6 -13
- package/lib/components/pisellLongText/PisellLongText.less +67 -0
- package/lib/components/pisellLookup/PisellLookup.js +1 -1
- package/lib/components/pisellLookup/PisellLookup.less +46 -4
- package/lib/components/pisellLookup/components/LookupResultHost.js +1 -1
- package/lib/components/pisellLookup/components/LookupTrigger.js +6 -8
- package/lib/components/pisellLookup/docs/pisellLookup.md +1 -1
- package/lib/components/pisellMobileDateRangePicker/PisellMobileDateRangePicker.d.ts +9 -0
- package/lib/components/pisellMobileDateRangePicker/PisellMobileDateRangePicker.js +160 -0
- package/lib/components/pisellMobileDateRangePicker/PisellMobileDateRangePicker.less +73 -0
- package/lib/components/pisellMobileDateRangePicker/index.d.ts +2 -0
- package/lib/components/pisellMobileDateRangePicker/types.d.ts +31 -0
- package/lib/components/pisellMobileDateRangePicker/types.js +4 -0
- package/lib/components/pisellMultipleSelect/PisellMultipleSelect.js +4 -6
- package/lib/components/pisellMultipleSelect/PisellMultipleSelect.less +139 -18
- package/lib/components/pisellMultipleSelect/components/EditView.js +0 -1
- package/lib/components/pisellNavigationMenu/PisellNavigationMenu.js +0 -4
- package/lib/components/pisellNumber/PisellNumber.js +6 -13
- package/lib/components/pisellNumber/PisellNumber.less +103 -0
- package/lib/components/pisellPhone/PisellPhone.js +6 -13
- package/lib/components/pisellPhone/PisellPhone.less +119 -0
- package/lib/components/pisellPhone/components/EditView.js +19 -37
- package/lib/components/pisellPhone/constants/countryCodes.js +25 -26
- package/lib/components/pisellPhone/types.d.ts +2 -2
- package/lib/components/pisellPhone/utils/countryCodeHelper.js +2 -2
- package/lib/components/pisellQuickFilter/{doc → docs}/PisellQuickFilter.md +1 -1
- package/lib/components/pisellRating/PisellRating.js +2 -4
- package/lib/components/pisellRecordBoard/PisellRecordBoard.js +29 -10
- package/lib/components/pisellRecordBoard/README.md +12 -0
- package/lib/components/pisellRecordBoard/docs/PisellRecordBoard.md +716 -70
- package/lib/components/pisellRecordBoard/docs/ShellFrame.md +62 -44
- package/lib/components/pisellRecordBoard/index.d.ts +8 -1
- package/lib/components/pisellRecordBoard/index.js +5 -0
- package/lib/components/pisellRecordBoard/layouts/GridLayout/Grid.js +174 -16
- package/lib/components/pisellRecordBoard/layouts/GridLayout/Grid.less +79 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/BookingCalendar.js +760 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/BookingCalendar.less +313 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/PisellRecordBoardCalendarView.d.ts +5 -1
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/PisellRecordBoardCalendarView.js +11 -8
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/bookingCalendarViewShared.js +197 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/calendarI18n.js +23 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/calendarPersistGuard.d.ts +1 -1
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/const/bookingCalendarConstants.js +44 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/hooks/useBookingCalendarDayOverlayLayout.js +75 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/modal/BookingCalendarBlockPanel.js +63 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/modal/BookingCalendarOverflowListLayer.js +28 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/modal/MoveConfirmModal.js +81 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/modal/OverflowListModal.js +64 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/modal/OverflowPopover.js +39 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/utils/BookingCalendarStyle.js +21 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/utils/bookingCalendarDateUtils.js +562 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/utils/bookingCalendarSelectionUtils.js +17 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarDaySelectionBar.js +33 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarDayView.js +585 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarGroupRowHeader.js +43 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarMonthView.js +113 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarResourceView.js +614 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/BookingCalendarWeekView.js +170 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/bookingCalendarDayViewContext.js +10 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/day/useBookingCalendarDayHourRemaining.js +34 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/day/useBookingCalendarDaySelection.js +38 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/resource/useBookingCalendarResourceCellToggle.js +19 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/resource/useBookingCalendarResourceDayHeaderRemaining.js +34 -0
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/view/useBookingCalendarGoToDayFromCell.js +30 -0
- package/lib/components/pisellRecordBoard/shellFrame/ColumnSetting/index.js +2 -1
- package/lib/components/pisellRecordBoard/shellFrame/Pagination/index.js +7 -1
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/NoteTicker.js +45 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/PisellRecordBoardResourceWallView.d.ts +14 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/PisellRecordBoardResourceWallView.js +439 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/RecordBoardResourceWall.d.ts +11 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/RecordBoardResourceWall.js +9 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallControlPanel.js +181 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallControlPanelColorTab.js +64 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallControlPanelLayoutTab.js +57 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallViewport.less +88 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/ResourceWallViewportToolbar.js +85 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.js +220 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallCard.less +339 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/VenueWallMarquee.less +52 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallCardPresentation.js +153 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallUtils.d.ts +32 -0
- package/lib/components/pisellRecordBoard/shellFrame/ResourceWall/venueWallUtils.js +181 -0
- package/lib/components/pisellRecordBoard/shellFrame/Search/index.js +1 -1
- package/lib/components/pisellRecordBoard/shellFrame/ShellBodyMetaContext.d.ts +5 -1
- package/lib/components/pisellRecordBoard/shellFrame/ToolBar/ToolBarFilter.less +30 -3
- package/lib/components/pisellRecordBoard/shellFrame/ToolBar/index.js +170 -81
- package/lib/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarConstants.js +14 -0
- package/lib/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarI18n.js +63 -0
- package/lib/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolbar.less +406 -14
- package/lib/components/pisellRecordBoard/shellFrame/ToolBarQuickFilter/index.js +14 -4
- package/lib/components/pisellRecordBoard/shellFrame/index.d.ts +9 -2
- package/lib/components/pisellRecordBoard/shellFrame/index.js +73 -19
- package/lib/components/pisellRecordBoard/types.d.ts +413 -8
- package/lib/components/pisellRecordBoard/types.js +12 -0
- package/lib/components/pisellRecordBoard/utils/partitionShellFrameChildren.js +16 -0
- package/lib/components/pisellRecordBoard/utils/recordBoardPhoneGrid.d.ts +22 -0
- package/lib/components/pisellRecordBoard/utils/recordBoardPhoneGrid.js +50 -0
- package/lib/components/pisellReservationSchedule/PisellReservationSchedule.js +67 -15
- package/lib/components/pisellReservationSchedule/PisellReservationSchedule.less +23 -0
- package/lib/components/pisellReservationSchedule/locales.js +21 -3
- package/lib/components/pisellReservationSchedule/types.d.ts +5 -0
- package/lib/components/pisellReservationScheduleBand/PisellReservationScheduleBand.js +11 -6
- package/lib/components/pisellReservationScheduleBand/PisellReservationScheduleBand.less +37 -4
- package/lib/components/pisellReservationScheduleBand/index.d.ts +2 -1
- package/lib/components/pisellReservationScheduleBand/types.d.ts +13 -2
- package/lib/components/pisellReservationScheduleBand/utils/formatScheduleAtLabel.d.ts +13 -0
- package/lib/components/pisellReservationScheduleBand/utils/formatScheduleAtLabel.js +17 -0
- package/lib/components/pisellShellFrame/PisellShellFrame.js +2 -2
- package/lib/components/pisellShellFrame/PisellShellFrame.less +18 -2
- package/lib/components/pisellShellFrame/types.d.ts +6 -0
- package/lib/components/pisellSingleLineText/PisellSingleLineText.js +14 -21
- package/lib/components/pisellSingleLineText/PisellSingleLineText.less +143 -0
- package/lib/components/pisellSingleLineText/docs/pisellSingleLineText.md +256 -256
- package/lib/components/pisellSingleSelect/PisellSingleSelect.js +4 -7
- package/lib/components/pisellSingleSelect/PisellSingleSelect.less +106 -5
- package/lib/components/pisellSingleSelect/docs/pisellSingleSelect.md +428 -525
- package/lib/components/pisellSort/docs/PisellSort.md +131 -67
- package/lib/components/pisellStatisticList/index.js +0 -1
- package/lib/components/pisellTimeNavigator/PisellTimeNavigator.js +226 -57
- package/lib/components/pisellTimeNavigator/PisellTimeNavigator.less +128 -15
- package/lib/components/pisellTimeNavigator/components/CursorLayer.js +3 -3
- package/lib/components/pisellTimeNavigator/components/GestureLayer.js +12 -3
- package/lib/components/pisellTimeNavigator/components/ScaleLayer.js +34 -6
- package/lib/components/pisellTimeNavigator/docs/pisellTimeNavigator.$tab-dev.md +26 -42
- package/lib/components/pisellTimeNavigator/docs/pisellTimeNavigator.$tab-test.md +5 -5
- package/lib/components/pisellTimeNavigator/hooks/useTimeAxis.js +42 -22
- package/lib/components/pisellTimeNavigator/index.d.ts +1 -1
- package/lib/components/pisellTimeNavigator/types.d.ts +15 -0
- package/lib/components/pisellTimeNavigator/utils/index.d.ts +25 -4
- package/lib/components/pisellTimeNavigator/utils/index.js +88 -17
- package/lib/components/pisellTimeRangeDisplay/docs/pisellTimeRangeDisplay.md +226 -227
- package/lib/components/pisellUrl/PisellUrl.js +6 -13
- package/lib/components/pisellWalletPassCard/index.js +5 -11
- package/lib/components/productCard/cartSkuCard/components/Gift/index.js +36 -0
- package/lib/components/productCard/cartSkuCard/components/Gift/index.less +84 -0
- package/lib/components/productCard/cartSkuCard/components/Promotion/index.js +25 -0
- package/lib/components/productCard/cartSkuCard/components/Promotion/index.less +16 -0
- package/lib/components/productCard/cartSkuCard/components/basicInfo/index.js +69 -8
- package/lib/components/productCard/cartSkuCard/components/basicInfo/index.less +80 -1
- package/lib/components/productCard/cartSkuCard/components/holders/index.js +1 -1
- package/lib/components/productCard/cartSkuCard/components/packages/index.js +26 -11
- package/lib/components/productCard/cartSkuCard/components/specs/index.js +23 -8
- package/lib/components/productCard/cartSkuCard/components/specs/index.less +11 -0
- package/lib/components/productCard/cartSkuCard/components/timeRange/index.js +2 -1
- package/lib/components/productCard/cartSkuCard/components/weighing/index.js +29 -0
- package/lib/components/productCard/cartSkuCard/components/weighing/index.less +25 -0
- package/lib/components/productCard/cartSkuCard/index.js +68 -8
- package/lib/components/productCard/cartSkuCard/locales.js +40 -5
- package/lib/components/productCard/components/Header/DeleteButton/index.js +2 -2
- package/lib/components/productCard/components/Header/DeleteButton/index.less +1 -2
- package/lib/components/productCard/components/Header/EditButton/index.js +2 -1
- package/lib/components/productCard/components/Header/index.less +1 -1
- package/lib/components/productCard/components/Time/components/SelectHolder/index.js +2 -3
- package/lib/components/productCard/components/Time/components/SelectHolderModal/index.js +5 -5
- package/lib/components/productCard/components/Time/components/SelectHolderMultiple/index.js +2 -2
- package/lib/components/productCard/components/Time/components/SelectResource/index.js +3 -6
- package/lib/components/productCard/components/Time/index.js +2 -3
- package/lib/components/productCard/index.d.ts +1 -0
- package/lib/components/productCard/index.js +2 -0
- package/lib/components/productCard/lineItem/BookingLineItem.js +177 -0
- package/lib/components/productCard/lineItem/index.js +197 -0
- package/lib/components/productCard/lineItem/index.less +195 -0
- package/lib/components/productCard/lineItem/locales.js +25 -0
- package/lib/components/productCard/status.js +3 -0
- package/lib/components/productCard/types.d.ts +10 -0
- package/lib/components/productCard/utils.js +1 -1
- package/lib/components/select/index.js +1 -1
- package/lib/components/select-time/index.js +1 -0
- package/lib/components/table/Actions/component/ExportImport/index.js +4 -3
- package/lib/components/table/Actions/component/GallerySetting/index.js +11 -12
- package/lib/components/table/Actions/component/ViewMode/index.js +5 -6
- package/lib/components/table/Actions/index.js +1 -1
- package/lib/components/table/BasicTable/index.js +3 -4
- package/lib/components/table/Gallery/components/GalleryItem/components/Title/index.less +1 -1
- package/lib/components/table/Gallery/components/GalleryItem/index.js +9 -17
- package/lib/components/table/Gallery/components/GalleryItem/index.less +0 -1
- package/lib/components/table/Gallery/index.js +3 -11
- package/lib/components/table/Table/fields/text/Show/index.js +1 -1
- package/lib/components/table/Table/index.js +1 -2
- package/lib/components/table/Table/tableConfig/header/index.js +2 -2
- package/lib/components/table/Table/utils.js +1 -5
- package/lib/components/table/hooks/useTableSetting.js +0 -3
- package/lib/components/table/hooks/useTransDataSource.js +3 -4
- package/lib/components/table/index.js +1 -1
- package/lib/components/tabs/index.less +1 -1
- package/lib/components/translation/index.d.ts +0 -1
- package/lib/components/translation/index.js +9 -35
- package/lib/components/translation/index.less +0 -12
- package/lib/components/versionModal/index.d.ts +0 -1
- package/lib/components/versionModal/index.js +2 -2
- package/lib/components/versionSelect/index.js +4 -4
- package/lib/components/virtual-keyboard/Amount/index.js +4 -4
- package/lib/index.d.ts +101 -106
- package/lib/index.js +314 -298
- package/lib/locales/en-US.js +195 -70
- package/lib/locales/ja.js +196 -13
- package/lib/locales/pt.js +196 -13
- package/lib/locales/zh-CN.js +189 -64
- package/lib/locales/zh-TW.js +194 -69
- package/lib/pisell-materials.tw.css +0 -1
- package/lib/tailwind-input.css +3 -1
- package/package.json +1 -1
- package/es/components/PisellContactBrief/PisellContactBrief.d.ts +0 -34
- package/es/components/PisellContactBrief/PisellContactBrief.js +0 -156
- package/es/components/PisellContactBrief/PisellContactBrief.less +0 -192
- package/es/components/PisellContactBrief/components/ContactFormModal.js +0 -140
- package/es/components/PisellContactBrief/docs/PisellContactBrief.$tab-design.md +0 -109
- package/es/components/PisellContactBrief/docs/PisellContactBrief.$tab-dev.md +0 -106
- package/es/components/PisellContactBrief/docs/PisellContactBrief.$tab-test.md +0 -125
- package/es/components/PisellContactBrief/docs/PisellContactBrief.md +0 -129
- package/es/components/PisellContactBrief/index.d.ts +0 -2
- package/es/components/PisellContactBrief/locales.js +0 -57
- package/es/components/PisellContactBrief/types.d.ts +0 -86
- package/es/components/Template/[ComponentName].less +0 -1
- package/es/components/Template/docs/[ComponentName].$tab-design.md +0 -7
- package/es/components/Template/docs/[ComponentName].$tab-dev.md +0 -1137
- package/es/components/Template/docs/[ComponentName].$tab-test.md +0 -7
- package/es/components/Template/docs/[ComponentName].md +0 -510
- package/es/components/hardwareErrorTip/errorCard/index.d.ts +0 -25
- package/es/components/hardwareErrorTip/errorCard/index.js +0 -68
- package/es/components/hardwareErrorTip/errorCard/index.less +0 -137
- package/es/components/hardwareErrorTip/errorTipStatistics/index.d.ts +0 -10
- package/es/components/hardwareErrorTip/errorTipStatistics/index.js +0 -31
- package/es/components/hardwareErrorTip/errorTipStatistics/index.less +0 -34
- package/es/components/hardwareErrorTip/index.d.ts +0 -20
- package/es/components/hardwareErrorTip/index.js +0 -151
- package/es/components/hardwareErrorTip/index.less +0 -95
- package/es/components/hardwareErrorTip/logCard/index.d.ts +0 -25
- package/es/components/hardwareErrorTip/logCard/index.js +0 -72
- package/es/components/hardwareErrorTip/logCard/index.less +0 -121
- package/es/components/hardwareErrorTip/readme.md +0 -309
- package/es/components/hardwareErrorTip/types.js +0 -54
- package/es/components/pisellActionPanel/PisellActionPanel.d.ts +0 -24
- package/es/components/pisellActionPanel/PisellActionPanel.js +0 -68
- package/es/components/pisellActionPanel/PisellActionPanel.less +0 -69
- package/es/components/pisellActionPanel/docs/pisellActionPanel.$tab-design.md +0 -148
- package/es/components/pisellActionPanel/docs/pisellActionPanel.$tab-dev.md +0 -53
- package/es/components/pisellActionPanel/docs/pisellActionPanel.$tab-test.md +0 -64
- package/es/components/pisellActionPanel/docs/pisellActionPanel.md +0 -160
- package/es/components/pisellActionPanel/index.d.ts +0 -2
- package/es/components/pisellActionPanel/types.d.ts +0 -87
- package/es/components/pisellBaseCard/PisellBaseCard.d.ts +0 -20
- package/es/components/pisellBaseCard/PisellBaseCard.js +0 -73
- package/es/components/pisellBaseCard/PisellBaseCard.less +0 -25
- package/es/components/pisellBaseCard/docs/pisellBaseCard.$tab-design.md +0 -144
- package/es/components/pisellBaseCard/docs/pisellBaseCard.$tab-dev.md +0 -92
- package/es/components/pisellBaseCard/docs/pisellBaseCard.$tab-test.md +0 -86
- package/es/components/pisellBaseCard/docs/pisellBaseCard.md +0 -165
- package/es/components/pisellBaseCard/index.d.ts +0 -2
- package/es/components/pisellBaseCard/types.d.ts +0 -49
- package/es/components/pisellCustomerBrief/PisellCustomerBrief.d.ts +0 -57
- package/es/components/pisellCustomerBrief/PisellCustomerBrief.js +0 -92
- package/es/components/pisellCustomerBrief/PisellCustomerBrief.less +0 -8
- package/es/components/pisellCustomerBrief/docs/pisellCustomerBrief.$tab-design.md +0 -115
- package/es/components/pisellCustomerBrief/docs/pisellCustomerBrief.$tab-dev.md +0 -73
- package/es/components/pisellCustomerBrief/docs/pisellCustomerBrief.$tab-test.md +0 -66
- package/es/components/pisellCustomerBrief/docs/pisellCustomerBrief.md +0 -132
- package/es/components/pisellCustomerBrief/index.d.ts +0 -2
- package/es/components/pisellCustomerBrief/types.d.ts +0 -86
- package/es/components/pisellEntityCard/PisellEntityCard.d.ts +0 -47
- package/es/components/pisellEntityCard/PisellEntityCard.js +0 -315
- package/es/components/pisellEntityCard/PisellEntityCard.less +0 -362
- package/es/components/pisellEntityCard/docs/pisellEntityCard.$tab-design.md +0 -209
- package/es/components/pisellEntityCard/docs/pisellEntityCard.$tab-dev.md +0 -82
- package/es/components/pisellEntityCard/docs/pisellEntityCard.$tab-test.md +0 -122
- package/es/components/pisellEntityCard/docs/pisellEntityCard.md +0 -176
- package/es/components/pisellEntityCard/index.d.ts +0 -2
- package/es/components/pisellEntityCard/types.d.ts +0 -148
- package/es/components/pisellExport/PisellExport.d.ts +0 -11
- package/es/components/pisellExport/PisellExport.js +0 -44
- package/es/components/pisellExport/PisellExport.less +0 -141
- package/es/components/pisellExport/docs/pisellExport.$tab-design.md +0 -116
- package/es/components/pisellExport/docs/pisellExport.$tab-dev.md +0 -132
- package/es/components/pisellExport/docs/pisellExport.$tab-test.md +0 -61
- package/es/components/pisellExport/docs/pisellExport.md +0 -162
- package/es/components/pisellExport/index.d.ts +0 -2
- package/es/components/pisellExport/types.d.ts +0 -67
- package/es/components/pisellImport/PisellImport.d.ts +0 -11
- package/es/components/pisellImport/PisellImport.js +0 -81
- package/es/components/pisellImport/PisellImport.less +0 -141
- package/es/components/pisellImport/docs/pisellImport.$tab-design.md +0 -121
- package/es/components/pisellImport/docs/pisellImport.$tab-dev.md +0 -137
- package/es/components/pisellImport/docs/pisellImport.$tab-test.md +0 -69
- package/es/components/pisellImport/docs/pisellImport.md +0 -174
- package/es/components/pisellImport/index.d.ts +0 -2
- package/es/components/pisellImport/types.d.ts +0 -89
- package/es/components/pisellRecordBoard/shellFrame/Calendar/BookingCalendarDemo.js +0 -3811
- package/es/components/productCard/components/Header/Actions/index.less +0 -15
- package/es/theme/pisell-components.js +0 -76
- package/lib/components/PisellContactBrief/PisellContactBrief.d.ts +0 -34
- package/lib/components/PisellContactBrief/PisellContactBrief.js +0 -158
- package/lib/components/PisellContactBrief/PisellContactBrief.less +0 -192
- package/lib/components/PisellContactBrief/components/ContactFormModal.js +0 -139
- package/lib/components/PisellContactBrief/docs/PisellContactBrief.$tab-design.md +0 -109
- package/lib/components/PisellContactBrief/docs/PisellContactBrief.$tab-dev.md +0 -106
- package/lib/components/PisellContactBrief/docs/PisellContactBrief.$tab-test.md +0 -125
- package/lib/components/PisellContactBrief/docs/PisellContactBrief.md +0 -129
- package/lib/components/PisellContactBrief/index.d.ts +0 -2
- package/lib/components/PisellContactBrief/locales.js +0 -57
- package/lib/components/PisellContactBrief/types.d.ts +0 -86
- package/lib/components/Template/[ComponentName].less +0 -1
- package/lib/components/Template/docs/[ComponentName].$tab-design.md +0 -7
- package/lib/components/Template/docs/[ComponentName].$tab-dev.md +0 -1137
- package/lib/components/Template/docs/[ComponentName].$tab-test.md +0 -7
- package/lib/components/Template/docs/[ComponentName].md +0 -510
- package/lib/components/hardwareErrorTip/errorCard/index.d.ts +0 -25
- package/lib/components/hardwareErrorTip/errorCard/index.js +0 -71
- package/lib/components/hardwareErrorTip/errorCard/index.less +0 -137
- package/lib/components/hardwareErrorTip/errorTipStatistics/index.d.ts +0 -10
- package/lib/components/hardwareErrorTip/errorTipStatistics/index.js +0 -34
- package/lib/components/hardwareErrorTip/errorTipStatistics/index.less +0 -34
- package/lib/components/hardwareErrorTip/index.d.ts +0 -20
- package/lib/components/hardwareErrorTip/index.js +0 -153
- package/lib/components/hardwareErrorTip/index.less +0 -95
- package/lib/components/hardwareErrorTip/logCard/index.d.ts +0 -25
- package/lib/components/hardwareErrorTip/logCard/index.js +0 -75
- package/lib/components/hardwareErrorTip/logCard/index.less +0 -121
- package/lib/components/hardwareErrorTip/readme.md +0 -309
- package/lib/components/hardwareErrorTip/types.js +0 -57
- package/lib/components/pisellActionPanel/PisellActionPanel.d.ts +0 -24
- package/lib/components/pisellActionPanel/PisellActionPanel.js +0 -71
- package/lib/components/pisellActionPanel/PisellActionPanel.less +0 -69
- package/lib/components/pisellActionPanel/docs/pisellActionPanel.$tab-design.md +0 -148
- package/lib/components/pisellActionPanel/docs/pisellActionPanel.$tab-dev.md +0 -53
- package/lib/components/pisellActionPanel/docs/pisellActionPanel.$tab-test.md +0 -64
- package/lib/components/pisellActionPanel/docs/pisellActionPanel.md +0 -160
- package/lib/components/pisellActionPanel/index.d.ts +0 -2
- package/lib/components/pisellActionPanel/types.d.ts +0 -87
- package/lib/components/pisellBaseCard/PisellBaseCard.d.ts +0 -20
- package/lib/components/pisellBaseCard/PisellBaseCard.js +0 -76
- package/lib/components/pisellBaseCard/PisellBaseCard.less +0 -25
- package/lib/components/pisellBaseCard/docs/pisellBaseCard.$tab-design.md +0 -144
- package/lib/components/pisellBaseCard/docs/pisellBaseCard.$tab-dev.md +0 -92
- package/lib/components/pisellBaseCard/docs/pisellBaseCard.$tab-test.md +0 -86
- package/lib/components/pisellBaseCard/docs/pisellBaseCard.md +0 -165
- package/lib/components/pisellBaseCard/index.d.ts +0 -2
- package/lib/components/pisellBaseCard/types.d.ts +0 -49
- package/lib/components/pisellCustomerBrief/PisellCustomerBrief.d.ts +0 -57
- package/lib/components/pisellCustomerBrief/PisellCustomerBrief.js +0 -94
- package/lib/components/pisellCustomerBrief/PisellCustomerBrief.less +0 -8
- package/lib/components/pisellCustomerBrief/docs/pisellCustomerBrief.$tab-design.md +0 -115
- package/lib/components/pisellCustomerBrief/docs/pisellCustomerBrief.$tab-dev.md +0 -73
- package/lib/components/pisellCustomerBrief/docs/pisellCustomerBrief.$tab-test.md +0 -66
- package/lib/components/pisellCustomerBrief/docs/pisellCustomerBrief.md +0 -132
- package/lib/components/pisellCustomerBrief/index.d.ts +0 -2
- package/lib/components/pisellCustomerBrief/types.d.ts +0 -86
- package/lib/components/pisellEntityCard/PisellEntityCard.d.ts +0 -47
- package/lib/components/pisellEntityCard/PisellEntityCard.js +0 -318
- package/lib/components/pisellEntityCard/PisellEntityCard.less +0 -362
- package/lib/components/pisellEntityCard/docs/pisellEntityCard.$tab-design.md +0 -209
- package/lib/components/pisellEntityCard/docs/pisellEntityCard.$tab-dev.md +0 -82
- package/lib/components/pisellEntityCard/docs/pisellEntityCard.$tab-test.md +0 -122
- package/lib/components/pisellEntityCard/docs/pisellEntityCard.md +0 -176
- package/lib/components/pisellEntityCard/index.d.ts +0 -2
- package/lib/components/pisellEntityCard/types.d.ts +0 -148
- package/lib/components/pisellExport/PisellExport.d.ts +0 -11
- package/lib/components/pisellExport/PisellExport.js +0 -47
- package/lib/components/pisellExport/PisellExport.less +0 -141
- package/lib/components/pisellExport/docs/pisellExport.$tab-design.md +0 -116
- package/lib/components/pisellExport/docs/pisellExport.$tab-dev.md +0 -132
- package/lib/components/pisellExport/docs/pisellExport.$tab-test.md +0 -61
- package/lib/components/pisellExport/docs/pisellExport.md +0 -162
- package/lib/components/pisellExport/index.d.ts +0 -2
- package/lib/components/pisellExport/types.d.ts +0 -67
- package/lib/components/pisellImport/PisellImport.d.ts +0 -11
- package/lib/components/pisellImport/PisellImport.js +0 -84
- package/lib/components/pisellImport/PisellImport.less +0 -141
- package/lib/components/pisellImport/docs/pisellImport.$tab-design.md +0 -121
- package/lib/components/pisellImport/docs/pisellImport.$tab-dev.md +0 -137
- package/lib/components/pisellImport/docs/pisellImport.$tab-test.md +0 -69
- package/lib/components/pisellImport/docs/pisellImport.md +0 -174
- package/lib/components/pisellImport/index.d.ts +0 -2
- package/lib/components/pisellImport/types.d.ts +0 -89
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/BookingCalendarDemo.js +0 -3813
- package/lib/components/productCard/components/Header/Actions/index.less +0 -15
- package/lib/theme/pisell-components.js +0 -76
- /package/es/components/pisellQuickFilter/{doc → docs}/PisellQuickFilter.$tab-design.md +0 -0
- /package/es/components/pisellQuickFilter/{doc → docs}/PisellQuickFilter.$tab-dev.md +0 -0
- /package/es/components/pisellQuickFilter/{doc → docs}/PisellQuickFilter.$tab-test.md +0 -0
- /package/lib/components/pisellQuickFilter/{doc → docs}/PisellQuickFilter.$tab-design.md +0 -0
- /package/lib/components/pisellQuickFilter/{doc → docs}/PisellQuickFilter.$tab-dev.md +0 -0
- /package/lib/components/pisellQuickFilter/{doc → docs}/PisellQuickFilter.$tab-test.md +0 -0
|
@@ -4,24 +4,28 @@ import ItemLayer from "./components/ItemLayer.js";
|
|
|
4
4
|
import EditableItemLayer from "./components/EditableItemLayer.js";
|
|
5
5
|
import { getElementKindConfig, getSceneElementRenderIssue } from "./utils/floorMapElementKindUtils.js";
|
|
6
6
|
import { isFloorMapPaletteDrag, parsePaletteDragPayload, sceneXYFromContentDropOffset } from "./utils/floorMapDropUtils.js";
|
|
7
|
+
import { FLOOR_MAP_LAYOUT_CLASS_PREFIX, FLOOR_MAP_OVERVIEW_TAB_ID } from "./floorMapLayoutConstants.js";
|
|
7
8
|
import FloorMapToolbar from "./components/FloorMapToolbar.js";
|
|
8
9
|
import useEngineContext from "../../hooks/useEngineContext.js";
|
|
9
10
|
import { initFloorMapLayoutLocales } from "./utils/floorMapCanvasDisplay.js";
|
|
10
11
|
import CanvasTabs from "./components/CanvasTabs.js";
|
|
11
12
|
import FloorMapEditTopBar from "./components/FloorMapEditTopBar.js";
|
|
13
|
+
import { mergeCanvasesForTabs } from "./utils/mergeCanvasesForTabs.js";
|
|
14
|
+
import FloorMapOverview from "./components/FloorMapOverview.js";
|
|
12
15
|
import FloorMapEditPanel from "./components/FloorMapEditPanel.js";
|
|
13
16
|
import { ViewControlsWithZoom } from "./components/ViewControlsWithZoom.js";
|
|
14
17
|
import { gapToPx } from "./utils/layoutMeasurements.js";
|
|
15
18
|
import { useFloorMapEditState } from "./hooks/useFloorMapEditState.js";
|
|
16
19
|
import { useFloorMapTransformMetrics } from "./hooks/useFloorMapTransformMetrics.js";
|
|
17
20
|
import { renderFloorMapFallbackPlaceholder, renderFloorMapRenderError } from "./utils/floorMapFallbackRender.js";
|
|
21
|
+
import { getFloorMapAppearanceTokens } from "./appearance/floorMapAppearance.js";
|
|
18
22
|
import { useFloorMapPaletteTouchDrag } from "./hooks/useFloorMapPaletteTouchDrag.js";
|
|
19
|
-
import {
|
|
23
|
+
import { buildFloorMapOverviewLayout } from "./utils/floorMapOverviewLayout.js";
|
|
20
24
|
import { useFloorMapLayoutContext } from "./context/FloorMapLayoutContext.js";
|
|
21
25
|
import { mergeFloorMapLayoutPropsFromContext } from "./context/mergeFloorMapLayoutContext.js";
|
|
22
|
-
import React, { useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
|
|
26
|
+
import React, { useCallback, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
23
27
|
import { locales } from "@pisell/utils";
|
|
24
|
-
import { theme } from "antd";
|
|
28
|
+
import { Drawer, theme } from "antd";
|
|
25
29
|
import classNames from "classnames";
|
|
26
30
|
import { TransformComponent, TransformWrapper } from "react-zoom-pan-pinch";
|
|
27
31
|
import "./PisellFloorMapLayout.less";
|
|
@@ -30,10 +34,13 @@ import "./PisellFloorMapLayout.less";
|
|
|
30
34
|
* PisellFloorMapLayout - 空间布局视图
|
|
31
35
|
* 支持两种用法:1) 仅传入 items + renderItem(原有用法);2) 传入 floorMapConfig + dataSources + mode 使用平面图视图(含多画布/编辑态)
|
|
32
36
|
*/
|
|
33
|
-
|
|
37
|
+
/**
|
|
38
|
+
* 布局根实现(由 {@link PisellFloorMapLayout} forwardRef 包裹)。
|
|
39
|
+
* 负责:上下文与 props 合并、编辑态/阅读态分支、Transform 视口、图元层与工具栏联动。
|
|
40
|
+
*/
|
|
34
41
|
function PisellFloorMapLayoutInner(props, ref) {
|
|
35
|
-
var _engineCtx$engine, _config$sceneElements;
|
|
36
|
-
const { className, style, items: itemsProp, renderItem, rowKey, renderItemByKind, getMergedItemWrapperStyle, mapLayer, cellSize: cellSizeProp, itemUnit = "cell", zoom = {}, pan = {}, controls = {}, enableHover = true, onItemClick, onItemHover, onItemLeave, mode = "read", floorMapConfig: floorMapConfigProp, dataSources, onSave, onDataSourceRecordSave, dataSourceLabels, dataSourceFormColumns, dataSourceRecordForm, loading, saveError, onElementRenderError, toolbarShowSave = true, floorMapFullscreenMode, showDataSourceRecordFormBlock, floorMapViewportOverlay, viewportOverlayPlacement = "top-start", viewportOverlayClassName, canvasTabsBarTrailing, viewportDockTrailing } = mergeFloorMapLayoutPropsFromContext(props, useFloorMapLayoutContext());
|
|
42
|
+
var _ref, _currentCanvas$mapLay2, _currentCanvas$mapLay3, _mapLayer$backgroundC, _engineCtx$engine, _mapLayer$boundingPad, _config$sceneElements;
|
|
43
|
+
const { className, style, items: itemsProp, renderItem, rowKey, renderItemByKind, getMergedItemWrapperStyle, mapLayer, cellSize: cellSizeProp, itemUnit = "cell", zoom = {}, pan = {}, controls = {}, enableHover = true, readModeSelectedItemId, onItemClick, onItemHover, onItemLeave, mode = "read", floorMapConfig: floorMapConfigProp, dataSources, onSave, onExitEdit, onDataSourceRecordSave, dataSourceLabels, dataSourceFormColumns, dataSourceRecordForm, loading, saveError, onElementRenderError, toolbarShowSave = true, floorMapFullscreenMode, appearanceMode = "light", showDataSourceRecordFormBlock, floorMapViewportOverlay, viewportOverlayPlacement = "top-start", viewportOverlayClassName, editTopBarPhoneLayout = false, canvasTabsBarTrailing, viewportDockToolButtons, viewportDockTrailing, viewportPersist = true, viewportPersistNamespace } = mergeFloorMapLayoutPropsFromContext(props, useFloorMapLayoutContext());
|
|
37
44
|
const { token } = theme.useToken();
|
|
38
45
|
const isFloorMapView = Boolean(floorMapConfigProp);
|
|
39
46
|
const contentOffsetRef = useRef({
|
|
@@ -42,7 +49,7 @@ function PisellFloorMapLayoutInner(props, ref) {
|
|
|
42
49
|
});
|
|
43
50
|
const mapDropLayerRef = useRef(null);
|
|
44
51
|
const transformRef = useRef(null);
|
|
45
|
-
const { config, currentCanvasId, setCurrentCanvasId, selectedId, setSelectedId, placeMode, setPlaceMode, items, saving, savingRecord, handleAddCanvas, handleRemoveCanvas, handleRenameCanvas, handleUpdateItem, handleCanvasPlaceClick, handleSave, placeSceneElementFromPaletteDrop, editPanelParams, placeOverlayClass, isLayoutDirty, toggleDraftCanvasShowGrid, toggleSelectedLayoutLock, duplicateSelectedElement, deleteSelectedElement } = useFloorMapEditState({
|
|
52
|
+
const { config, currentCanvasId, setCurrentCanvasId, selectedId, setSelectedId, placeMode, setPlaceMode, items, saving, savingRecord, handleAddCanvas, handleRemoveCanvas, handleRenameCanvas, handleUpdateItem, handleCanvasPlaceClick, handleSave, placeSceneElementFromPaletteDrop, editPanelParams, placeOverlayClass, isLayoutDirty, toggleDraftCanvasShowGrid, toggleSelectedLayoutLock, duplicateSelectedElement, deleteSelectedElement, undoDraft, redoDraft, canUndo, canRedo, discardDraft } = useFloorMapEditState({
|
|
46
53
|
floorMapConfigProp,
|
|
47
54
|
isFloorMapView,
|
|
48
55
|
itemsProp,
|
|
@@ -53,42 +60,130 @@ function PisellFloorMapLayoutInner(props, ref) {
|
|
|
53
60
|
dataSourceFormColumns,
|
|
54
61
|
dataSourceRecordForm,
|
|
55
62
|
dataSourceLabels,
|
|
56
|
-
layoutPrefix:
|
|
63
|
+
layoutPrefix: FLOOR_MAP_LAYOUT_CLASS_PREFIX,
|
|
57
64
|
contentOffsetRef,
|
|
58
65
|
showDataSourceRecordFormBlock
|
|
59
66
|
});
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
67
|
+
/**
|
|
68
|
+
* 当前选中的画布配置:用于提取当前画布级 mapLayer 显式配置。
|
|
69
|
+
*/
|
|
70
|
+
const currentCanvas = useMemo(() => {
|
|
71
|
+
var _config$canvases$find;
|
|
72
|
+
if (!isFloorMapView || !config || !currentCanvasId) return null;
|
|
73
|
+
return (_config$canvases$find = config.canvases.find((canvas) => canvas.id === currentCanvasId)) !== null && _config$canvases$find !== void 0 ? _config$canvases$find : null;
|
|
65
74
|
}, [
|
|
66
75
|
isFloorMapView,
|
|
67
76
|
config,
|
|
68
|
-
currentCanvasId
|
|
77
|
+
currentCanvasId
|
|
78
|
+
]);
|
|
79
|
+
/**
|
|
80
|
+
* 「取消编辑」组合:先丢弃 draft(同步把 draftConfig replace 回上游 props 的值),
|
|
81
|
+
* 再调用业务侧 onExitEdit 退出编辑模式。
|
|
82
|
+
*
|
|
83
|
+
* 不在 onExitEdit 本身做 discard,是因为「完成」按钮链路也会调 onExitEdit,
|
|
84
|
+
* 完成时草稿应保留等 props 回写(参考 useFloorMapEditState.handleSave 的 baseline 处理),
|
|
85
|
+
* 一旦在 onExitEdit 里 discard 会把保存中的视觉态闪回旧值。
|
|
86
|
+
*/
|
|
87
|
+
const handleCancelEdit = useCallback(() => {
|
|
88
|
+
discardDraft();
|
|
89
|
+
onExitEdit === null || onExitEdit === void 0 || onExitEdit();
|
|
90
|
+
}, [discardDraft, onExitEdit]);
|
|
91
|
+
/** 当前画布下的 mapLayer:全局 `mapLayer` 与画布级配置合并,供 MapLayer / 吸附等读取 */
|
|
92
|
+
const effectiveMapLayer = useMemo(() => {
|
|
93
|
+
var _currentCanvas$mapLay;
|
|
94
|
+
if (!isFloorMapView || !currentCanvas) return mapLayer;
|
|
95
|
+
return _objectSpread2(_objectSpread2({}, mapLayer !== null && mapLayer !== void 0 ? mapLayer : {}), (_currentCanvas$mapLay = currentCanvas.mapLayer) !== null && _currentCanvas$mapLay !== void 0 ? _currentCanvas$mapLay : {});
|
|
96
|
+
}, [
|
|
97
|
+
isFloorMapView,
|
|
98
|
+
currentCanvas,
|
|
69
99
|
mapLayer
|
|
70
100
|
]);
|
|
101
|
+
const appearanceTokens = useMemo(() => getFloorMapAppearanceTokens(appearanceMode), [appearanceMode]);
|
|
102
|
+
const canvasBackgroundColor = (_ref = (_currentCanvas$mapLay2 = currentCanvas === null || currentCanvas === void 0 || (_currentCanvas$mapLay3 = currentCanvas.mapLayer) === null || _currentCanvas$mapLay3 === void 0 ? void 0 : _currentCanvas$mapLay3.backgroundColor) !== null && _currentCanvas$mapLay2 !== void 0 ? _currentCanvas$mapLay2 : mapLayer === null || mapLayer === void 0 ? void 0 : mapLayer.backgroundColor) !== null && _ref !== void 0 ? _ref : appearanceTokens.fallbackCanvasBackgroundColor;
|
|
103
|
+
/**
|
|
104
|
+
* All 视图整体背景色:不再按各画布区域分别取色(用户明确要求「不要按区域来」),
|
|
105
|
+
* 改成跟单画布同一套**根级 + appearance 兜底**链。这样:
|
|
106
|
+
* - root `mapLayer.backgroundColor` 配的深色背景,All 视图整张背景都吃到;
|
|
107
|
+
* - 没显式配色时按 `appearanceMode`(dark/light)兜底;
|
|
108
|
+
* - 画布级的 `canvas.mapLayer.backgroundColor` 在 All 视图刻意不读,避免某张画布
|
|
109
|
+
* 的私有背景污染整体 All 视图。
|
|
110
|
+
*/
|
|
111
|
+
const overviewBackgroundColor = (_mapLayer$backgroundC = mapLayer === null || mapLayer === void 0 ? void 0 : mapLayer.backgroundColor) !== null && _mapLayer$backgroundC !== void 0 ? _mapLayer$backgroundC : appearanceTokens.fallbackCanvasBackgroundColor;
|
|
71
112
|
/**
|
|
72
113
|
* 必须与下方 TransformWrapper 的 `key` 完全一致。
|
|
73
114
|
* 远程/合并配置落地后 boundingPadding 等会变 → Wrapper 重挂载 → 若 autoFit 仍按旧「仅 canvasId」帧认为已 done,首屏会停在初始 transform;切换画布才因 id 变化再次 fit。
|
|
74
115
|
*/
|
|
116
|
+
/**
|
|
117
|
+
* 「全览」状态:仅阅读态下、启用画布 ≥ 2 时通过画布 Tab 最前的「All」入口进入。
|
|
118
|
+
* 不写入 `currentCanvasId`,避免:
|
|
119
|
+
* - useFloorMapEditState 内的「画布存在性同步」effect 把当前 id 立刻 reset 掉;
|
|
120
|
+
* - 触发 transformWrapperKey 变化导致单画布视角缓存被清。
|
|
121
|
+
* 仅由本组件根据 mode/画布数量切换;外部不感知。
|
|
122
|
+
*/
|
|
123
|
+
const [isOverview, setIsOverview] = useState(false);
|
|
124
|
+
/**
|
|
125
|
+
* 与下方 TransformWrapper `key` 完全一致;远程合并 padding/默认缩放回包后变化触发重挂载,
|
|
126
|
+
* 单画布 ↔ 全览(All)切换也通过本 key 切换,避免视角与缓存交叉污染。
|
|
127
|
+
*/
|
|
75
128
|
const transformWrapperKey = useMemo(() => {
|
|
76
|
-
var
|
|
129
|
+
var _ref2, _zoom$defaultScale;
|
|
77
130
|
if (!isFloorMapView) return "fmap-layout";
|
|
78
|
-
const bp = (
|
|
131
|
+
const bp = (_ref2 = isOverview ? mapLayer === null || mapLayer === void 0 ? void 0 : mapLayer.boundingPadding : effectiveMapLayer === null || effectiveMapLayer === void 0 ? void 0 : effectiveMapLayer.boundingPadding) !== null && _ref2 !== void 0 ? _ref2 : "d";
|
|
79
132
|
const z = (_zoom$defaultScale = zoom.defaultScale) !== null && _zoom$defaultScale !== void 0 ? _zoom$defaultScale : 1;
|
|
133
|
+
if (isOverview) return `fmap-overview-bp${bp}-z${z}`;
|
|
80
134
|
return `fmap-${currentCanvasId !== null && currentCanvasId !== void 0 ? currentCanvasId : "na"}-bp${bp}-z${z}`;
|
|
81
135
|
}, [
|
|
82
136
|
isFloorMapView,
|
|
137
|
+
isOverview,
|
|
83
138
|
currentCanvasId,
|
|
84
139
|
effectiveMapLayer === null || effectiveMapLayer === void 0 ? void 0 : effectiveMapLayer.boundingPadding,
|
|
140
|
+
mapLayer === null || mapLayer === void 0 ? void 0 : mapLayer.boundingPadding,
|
|
85
141
|
zoom.defaultScale
|
|
86
142
|
]);
|
|
87
|
-
|
|
143
|
+
/** 供顶栏 Tab 使用:合并草稿画布等后的画布列表(基础列表,不含「全览」) */
|
|
144
|
+
const canvasesForTabsBase = useMemo(() => config ? mergeCanvasesForTabs(config) : [], [config]);
|
|
88
145
|
const engineCtx = useEngineContext();
|
|
89
146
|
const 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";
|
|
90
147
|
const hasCanvasTabsBarTrailing = canvasTabsBarTrailing != null && canvasTabsBarTrailing !== false;
|
|
91
|
-
const enabledCanvasCount = useMemo(() =>
|
|
148
|
+
const enabledCanvasCount = useMemo(() => canvasesForTabsBase.filter((c) => c.enabled).length, [canvasesForTabsBase]);
|
|
149
|
+
/** 仅阅读态、启用画布 > 1 时,在 Tab 列表最前插入「All」伪 tab */
|
|
150
|
+
const showOverviewTab = isFloorMapView && mode === "read" && enabledCanvasCount > 1;
|
|
151
|
+
const overviewTabLabel = useMemo(() => {
|
|
152
|
+
initFloorMapLayoutLocales(engineLocale);
|
|
153
|
+
return locales.getText("pisell-floor-map-layout.canvas-tabs.overview");
|
|
154
|
+
}, [engineLocale]);
|
|
155
|
+
/**
|
|
156
|
+
* 给 CanvasTabs 渲染用的最终列表:阅读态多画布时在列表最前插入「All」伪 tab。
|
|
157
|
+
* order 取当前最小 order - 1,保证排序后位于第一个;其它字段留空。
|
|
158
|
+
*/
|
|
159
|
+
const canvasesForTabs = useMemo(() => {
|
|
160
|
+
if (!showOverviewTab) return canvasesForTabsBase;
|
|
161
|
+
const minOrder = canvasesForTabsBase.reduce((min, c) => c.order < min ? c.order : min, Number.POSITIVE_INFINITY);
|
|
162
|
+
return [{
|
|
163
|
+
id: FLOOR_MAP_OVERVIEW_TAB_ID,
|
|
164
|
+
name: overviewTabLabel,
|
|
165
|
+
order: Number.isFinite(minOrder) ? minOrder - 1 : -1,
|
|
166
|
+
enabled: true
|
|
167
|
+
}, ...canvasesForTabsBase];
|
|
168
|
+
}, [
|
|
169
|
+
canvasesForTabsBase,
|
|
170
|
+
showOverviewTab,
|
|
171
|
+
overviewTabLabel
|
|
172
|
+
]);
|
|
173
|
+
/** 编辑态强制退出全览(多画布编辑流程不应进入只读全览界面) */
|
|
174
|
+
useEffect(() => {
|
|
175
|
+
if (mode !== "read") {
|
|
176
|
+
if (isOverview) setIsOverview(false);
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
/** 阅读态下若启用画布回落到 1 张以内,全览 Tab 已不再展示,需自动退出 */
|
|
180
|
+
if (isOverview && enabledCanvasCount <= 1) setIsOverview(false);
|
|
181
|
+
}, [
|
|
182
|
+
mode,
|
|
183
|
+
isOverview,
|
|
184
|
+
enabledCanvasCount
|
|
185
|
+
]);
|
|
186
|
+
/** 阅读态是否展示画布 Tab:多启用画布或配置了 `canvasTabsBarTrailing` 时出现 */
|
|
92
187
|
const showReadModeCanvasTabsBar = useMemo(() => {
|
|
93
188
|
if (!isFloorMapView || mode !== "read" || !config) return false;
|
|
94
189
|
if (hasCanvasTabsBarTrailing) return true;
|
|
@@ -100,12 +195,12 @@ function PisellFloorMapLayoutInner(props, ref) {
|
|
|
100
195
|
hasCanvasTabsBarTrailing,
|
|
101
196
|
enabledCanvasCount
|
|
102
197
|
]);
|
|
198
|
+
/** 阅读态画布 Tab 工具条的无障碍标签(随引擎语言初始化文案) */
|
|
103
199
|
const readCanvasTabsAriaLabel = useMemo(() => {
|
|
104
200
|
initFloorMapLayoutLocales(engineLocale);
|
|
105
201
|
return locales.getText("pisell-floor-map-layout.read-canvas-tabs.aria");
|
|
106
202
|
}, [engineLocale]);
|
|
107
|
-
/**
|
|
108
|
-
const showEditCompactTopBar = isFloorMapView && mode === "edit" && Boolean(config) && !useFullTopChrome;
|
|
203
|
+
/** 加载遮罩上的文案 */
|
|
109
204
|
const loadingLabel = useMemo(() => {
|
|
110
205
|
initFloorMapLayoutLocales(engineLocale);
|
|
111
206
|
return locales.getText("pisell-floor-map-layout.loading");
|
|
@@ -145,42 +240,205 @@ function PisellFloorMapLayoutInner(props, ref) {
|
|
|
145
240
|
deleteSelectedElement
|
|
146
241
|
]);
|
|
147
242
|
const cellSize = cellSizeProp !== null && cellSizeProp !== void 0 ? cellSizeProp : 64;
|
|
243
|
+
/** 图元间距(像素):由 mapLayer.gap 解析 */
|
|
148
244
|
const itemGap = useMemo(() => gapToPx(effectiveMapLayer === null || effectiveMapLayer === void 0 ? void 0 : effectiveMapLayer.gap), [effectiveMapLayer === null || effectiveMapLayer === void 0 ? void 0 : effectiveMapLayer.gap]);
|
|
245
|
+
/** 平面图坐标始终按像素;非平面图沿用 props `itemUnit` */
|
|
149
246
|
const effectiveItemUnit = isFloorMapView ? "pixel" : itemUnit;
|
|
150
|
-
|
|
151
|
-
|
|
247
|
+
/**
|
|
248
|
+
* 「全览」视图布局:把所有启用画布按各自原始尺寸(同一比例尺)紧凑装箱,
|
|
249
|
+
* 主 TransformWrapper 用整体 totalWidth/Height 作为 stage 尺寸,
|
|
250
|
+
* FloorMapOverview 按 areas[].x/y 把对应画布的图元绝对定位渲染。
|
|
251
|
+
* 与单画布共用同一套缩放/平移/锁定/全屏/fitBounds。
|
|
252
|
+
*/
|
|
253
|
+
const overviewLayout = useMemo(() => {
|
|
254
|
+
if (!isFloorMapView || !isOverview || !config) return null;
|
|
255
|
+
return buildFloorMapOverviewLayout({
|
|
256
|
+
config,
|
|
257
|
+
globalMapLayer: mapLayer,
|
|
258
|
+
cellSize,
|
|
259
|
+
itemUnit: effectiveItemUnit,
|
|
260
|
+
areaGap: 32
|
|
261
|
+
});
|
|
262
|
+
}, [
|
|
263
|
+
isFloorMapView,
|
|
264
|
+
isOverview,
|
|
265
|
+
config,
|
|
266
|
+
mapLayer,
|
|
267
|
+
cellSize,
|
|
268
|
+
effectiveItemUnit
|
|
269
|
+
]);
|
|
270
|
+
/**
|
|
271
|
+
* 视口持久化 key:
|
|
272
|
+
* - 仅平面图模式启用(其它模式没有「画布」概念)
|
|
273
|
+
* - `viewportPersist === false` 或无 currentCanvasId 时关闭
|
|
274
|
+
* - 有 namespace 时拼成 `${ns}:${canvasId}`,隔离不同业务场景(店铺 / 平面图)
|
|
275
|
+
* - 未传 namespace 时 fallback 为仅 `${canvasId}`,小心跨场景可能共享视角
|
|
276
|
+
* - 不感知 boundingPadding / defaultScale 等渲染参数变化,避免 padding 调整导致缓存失效
|
|
277
|
+
* - 「全览」模式使用独立的 `__overview__` key,与单画布缓存互不影响
|
|
278
|
+
*/
|
|
279
|
+
const viewportPersistKey = useMemo(() => {
|
|
280
|
+
if (viewportPersist === false) return void 0;
|
|
281
|
+
if (!isFloorMapView) return void 0;
|
|
282
|
+
if (isOverview) return viewportPersistNamespace ? `${viewportPersistNamespace}:__overview__` : "__overview__";
|
|
283
|
+
if (!currentCanvasId) return void 0;
|
|
284
|
+
return viewportPersistNamespace ? `${viewportPersistNamespace}:${currentCanvasId}` : currentCanvasId;
|
|
285
|
+
}, [
|
|
286
|
+
viewportPersist,
|
|
287
|
+
viewportPersistNamespace,
|
|
288
|
+
isFloorMapView,
|
|
289
|
+
isOverview,
|
|
290
|
+
currentCanvasId
|
|
291
|
+
]);
|
|
292
|
+
/**
|
|
293
|
+
* 全览模式下喂给 metrics 的虚拟 item:让 stage / fitBounds 把整体当作一张
|
|
294
|
+
* 0,0,totalWidth,totalHeight 的大图元处理;不参与渲染(渲染走 FloorMapOverview)。
|
|
295
|
+
* 类型上仅需 FloorMapItemBase,metrics 内部不读 `_sceneElement` 等扩展字段。
|
|
296
|
+
*/
|
|
297
|
+
const overviewMetricsItems = useMemo(() => {
|
|
298
|
+
if (!overviewLayout) return [];
|
|
299
|
+
return [{
|
|
300
|
+
id: "__pisell_floor_map_overview_stage__",
|
|
301
|
+
x: 0,
|
|
302
|
+
y: 0,
|
|
303
|
+
width: overviewLayout.totalWidth,
|
|
304
|
+
height: overviewLayout.totalHeight,
|
|
305
|
+
shape: "rect"
|
|
306
|
+
}];
|
|
307
|
+
}, [overviewLayout]);
|
|
308
|
+
const { containerRef, mapAreaRef, mapAreaSize, contentWidth, contentHeight, contentOffsetX, contentOffsetY, initialPositionX, initialPositionY, zoomConfig, scale, setScale, isFullscreen, toggleFullscreen, fitBounds, isAtFitBounds, notifyTransformed, persistCurrentViewport, attachTransformContext, isInteractingWithElement, setIsInteractingWithElement, viewportLocked, toggleViewportLocked } = useFloorMapTransformMetrics({
|
|
309
|
+
items: isOverview && overviewLayout ? overviewMetricsItems : items,
|
|
152
310
|
cellSize,
|
|
153
|
-
itemGap,
|
|
311
|
+
itemGap: isOverview ? 0 : itemGap,
|
|
154
312
|
effectiveItemUnit,
|
|
155
313
|
isFloorMapView,
|
|
156
314
|
mode,
|
|
157
315
|
zoom,
|
|
158
316
|
transformRef,
|
|
159
317
|
contentOffsetRef,
|
|
160
|
-
boundingPadding: effectiveMapLayer === null || effectiveMapLayer === void 0 ? void 0 : effectiveMapLayer.boundingPadding,
|
|
161
|
-
frameResetKey: isFloorMapView ? transformWrapperKey : void 0
|
|
318
|
+
boundingPadding: isOverview ? (_mapLayer$boundingPad = mapLayer === null || mapLayer === void 0 ? void 0 : mapLayer.boundingPadding) !== null && _mapLayer$boundingPad !== void 0 ? _mapLayer$boundingPad : 56 : effectiveMapLayer === null || effectiveMapLayer === void 0 ? void 0 : effectiveMapLayer.boundingPadding,
|
|
319
|
+
frameResetKey: isFloorMapView ? transformWrapperKey : void 0,
|
|
320
|
+
viewportPersistKey
|
|
162
321
|
});
|
|
163
|
-
/**
|
|
322
|
+
/** 手机:选中图元种类后一键落在当前视口中心(与点击画布落点坐标换算一致) */
|
|
323
|
+
const handlePlaceActiveAtViewportCenter = useCallback(() => {
|
|
324
|
+
if (!placeMode || placeMode.type !== "scene") return;
|
|
325
|
+
const w = mapAreaSize.width;
|
|
326
|
+
const h = mapAreaSize.height;
|
|
327
|
+
if (w <= 0 || h <= 0) return;
|
|
328
|
+
const { x: ox, y: oy } = contentOffsetRef.current;
|
|
329
|
+
placeSceneElementFromPaletteDrop(Math.round(w / 2 - ox), Math.round(h / 2 - oy), placeMode);
|
|
330
|
+
}, [
|
|
331
|
+
placeMode,
|
|
332
|
+
mapAreaSize.width,
|
|
333
|
+
mapAreaSize.height,
|
|
334
|
+
placeSceneElementFromPaletteDrop
|
|
335
|
+
]);
|
|
336
|
+
/** 编辑态全屏策略:toggle 全屏与编辑态强绑定;locked 始终全屏顶栏;disabled 无全屏 */
|
|
164
337
|
const fsMode = floorMapFullscreenMode !== null && floorMapFullscreenMode !== void 0 ? floorMapFullscreenMode : "toggle";
|
|
165
338
|
const useFullTopChrome = isFloorMapView && mode === "edit" && (fsMode === "locked" || fsMode === "toggle" && isFullscreen);
|
|
166
|
-
/**
|
|
167
|
-
|
|
339
|
+
/**
|
|
340
|
+
* 平面图编辑态:全屏与编辑模式强绑定(用户需求:"编辑的时候就是全屏,非编辑模式就不是全屏")。
|
|
341
|
+
* 因此 toggle 策略下不再展示左下角 Dock 的进出全屏按钮——
|
|
342
|
+
* 退出全屏 = 退出编辑,由顶栏「保存 / 退出编辑」入口承担。
|
|
343
|
+
* locked / disabled 行为保持原样:locked 也无按钮;disabled 不允许全屏。
|
|
344
|
+
*/
|
|
345
|
+
const dockToggleFullscreen = void 0;
|
|
346
|
+
/**
|
|
347
|
+
* 平面图编辑态全屏与编辑模式双向同步:
|
|
348
|
+
* - 进 edit → 自动进入伪全屏
|
|
349
|
+
* - 退出 edit → 自动退出伪全屏
|
|
350
|
+
* - 仅 toggle 策略下生效(locked 已由 useFullTopChrome 强制;disabled 不允许全屏)
|
|
351
|
+
* 强同步:依赖中包含 isFullscreen,万一被外部 / 副作用切到不一致状态会被纠正回来。
|
|
352
|
+
* ESC 退出全屏的监听已在 metrics hook 中移除,避免按 ESC 后被本 effect 强制拉回来导致闪烁。
|
|
353
|
+
*/
|
|
354
|
+
useEffect(() => {
|
|
355
|
+
if (!isFloorMapView) return;
|
|
356
|
+
if (fsMode !== "toggle") return;
|
|
357
|
+
if (mode === "edit" !== isFullscreen) toggleFullscreen();
|
|
358
|
+
}, [
|
|
359
|
+
mode,
|
|
360
|
+
isFloorMapView,
|
|
361
|
+
fsMode,
|
|
362
|
+
isFullscreen,
|
|
363
|
+
toggleFullscreen
|
|
364
|
+
]);
|
|
365
|
+
/** 编辑态始终保留顶栏 Tab(单画布也要能「添加画布」);仅阅读态在单画布时可隐藏 Tab 行 */
|
|
366
|
+
const showEditCompactTopBar = isFloorMapView && mode === "edit" && Boolean(config) && !useFullTopChrome;
|
|
367
|
+
/**
|
|
368
|
+
* 右下角视口控件:平面图下默认带出全屏按钮(若当前策略允许 toggle),
|
|
369
|
+
* 并默认带出「视口锁定」按钮(与是否将视口保存到本地解耦;无持久化 key 时仅内存态,默认未锁定)。
|
|
370
|
+
*/
|
|
168
371
|
const viewControlsConfig = useMemo(() => {
|
|
169
|
-
var _controls$showFullscr;
|
|
372
|
+
var _controls$showFullscr, _controls$showViewpor;
|
|
170
373
|
if (!isFloorMapView) return controls;
|
|
171
|
-
return _objectSpread2(_objectSpread2({}, controls), {}, {
|
|
374
|
+
return _objectSpread2(_objectSpread2({}, controls), {}, {
|
|
375
|
+
showFullscreen: (_controls$showFullscr = controls.showFullscreen) !== null && _controls$showFullscr !== void 0 ? _controls$showFullscr : Boolean(dockToggleFullscreen),
|
|
376
|
+
showViewportLock: (_controls$showViewpor = controls.showViewportLock) !== null && _controls$showViewpor !== void 0 ? _controls$showViewpor : true
|
|
377
|
+
});
|
|
172
378
|
}, [
|
|
173
379
|
isFloorMapView,
|
|
174
380
|
controls,
|
|
175
381
|
dockToggleFullscreen
|
|
176
382
|
]);
|
|
177
383
|
const topBarExtraActions = null;
|
|
384
|
+
/** 从侧栏/调色板拖入画布时,地图区高亮态(用于 dragleave/over 判定) */
|
|
178
385
|
const [mapPaletteDragActive, setMapPaletteDragActive] = useState(false);
|
|
386
|
+
/** 全局 dragend 时清除调色板拖入高亮,避免松手在画布外仍保持 active */
|
|
179
387
|
useEffect(() => {
|
|
180
388
|
const clear = () => setMapPaletteDragActive(false);
|
|
181
389
|
window.addEventListener("dragend", clear);
|
|
182
390
|
return () => window.removeEventListener("dragend", clear);
|
|
183
391
|
}, []);
|
|
392
|
+
/**
|
|
393
|
+
* 编辑态下的撤销 / 重做键盘快捷键:
|
|
394
|
+
* - Ctrl/⌘ + Z → undo
|
|
395
|
+
* - Ctrl/⌘ + Shift + Z 或 Ctrl/⌘ + Y → redo
|
|
396
|
+
* 在 input/textarea/contenteditable 聚焦时跳过,避免抢走表单原生撤销。
|
|
397
|
+
* 仅在容器内或容器获得焦点时响应,避免页面其它编辑区被劫持。
|
|
398
|
+
*/
|
|
399
|
+
useEffect(() => {
|
|
400
|
+
if (!isFloorMapView || mode !== "edit" || !(config === null || config === void 0 ? void 0 : config.canvasUi.canEdit)) return;
|
|
401
|
+
const onKeyDown = (e) => {
|
|
402
|
+
if (!(e.ctrlKey || e.metaKey)) return;
|
|
403
|
+
const key = e.key.toLowerCase();
|
|
404
|
+
const isUndoCombo = key === "z" && !e.shiftKey && !e.altKey;
|
|
405
|
+
const isRedoCombo = key === "z" && e.shiftKey && !e.altKey || key === "y" && !e.shiftKey && !e.altKey;
|
|
406
|
+
if (!isUndoCombo && !isRedoCombo) return;
|
|
407
|
+
const target = e.target;
|
|
408
|
+
if (target) {
|
|
409
|
+
const tag = target.tagName;
|
|
410
|
+
if (tag === "INPUT" || tag === "TEXTAREA") return;
|
|
411
|
+
if (target.isContentEditable) return;
|
|
412
|
+
}
|
|
413
|
+
const root = containerRef.current;
|
|
414
|
+
if (!root) return;
|
|
415
|
+
const active = document.activeElement;
|
|
416
|
+
const focusInside = active ? root.contains(active) : false;
|
|
417
|
+
const targetInside = target ? root.contains(target) : false;
|
|
418
|
+
if (!focusInside && !targetInside) return;
|
|
419
|
+
if (isUndoCombo && canUndo) {
|
|
420
|
+
e.preventDefault();
|
|
421
|
+
undoDraft();
|
|
422
|
+
} else if (isRedoCombo && canRedo) {
|
|
423
|
+
e.preventDefault();
|
|
424
|
+
redoDraft();
|
|
425
|
+
}
|
|
426
|
+
};
|
|
427
|
+
window.addEventListener("keydown", onKeyDown);
|
|
428
|
+
return () => window.removeEventListener("keydown", onKeyDown);
|
|
429
|
+
}, [
|
|
430
|
+
isFloorMapView,
|
|
431
|
+
mode,
|
|
432
|
+
config === null || config === void 0 ? void 0 : config.canvasUi.canEdit,
|
|
433
|
+
canUndo,
|
|
434
|
+
canRedo,
|
|
435
|
+
undoDraft,
|
|
436
|
+
redoDraft,
|
|
437
|
+
containerRef
|
|
438
|
+
]);
|
|
439
|
+
/**
|
|
440
|
+
* 桌面端:在画布 drop 层释放拖拽时,解析 dataTransfer 并在场景坐标下落位图元。
|
|
441
|
+
*/
|
|
184
442
|
const handlePaletteDropOnCanvas = useCallback((e) => {
|
|
185
443
|
e.preventDefault();
|
|
186
444
|
e.stopPropagation();
|
|
@@ -194,13 +452,17 @@ function PisellFloorMapLayoutInner(props, ref) {
|
|
|
194
452
|
elementKind: payload.elementKind,
|
|
195
453
|
dataSourceKey: payload.dataSourceKey,
|
|
196
454
|
recordId: payload.recordId,
|
|
197
|
-
recordIds: payload.recordIds
|
|
455
|
+
recordIds: payload.recordIds,
|
|
456
|
+
builtinShapeKey: payload.builtinShapeKey
|
|
198
457
|
});
|
|
199
458
|
}, [
|
|
200
459
|
isFloorMapView,
|
|
201
460
|
mode,
|
|
202
461
|
placeSceneElementFromPaletteDrop
|
|
203
462
|
]);
|
|
463
|
+
/**
|
|
464
|
+
* 触摸拖拽模拟 drop:由 {@link useFloorMapPaletteTouchDrag} 在松手时调用,逻辑同桌面 drop。
|
|
465
|
+
*/
|
|
204
466
|
const applyPaletteTouchDropInScene = useCallback((payload, cx, cy) => {
|
|
205
467
|
if (!isFloorMapView || mode !== "edit") return;
|
|
206
468
|
placeSceneElementFromPaletteDrop(cx, cy, {
|
|
@@ -208,7 +470,8 @@ function PisellFloorMapLayoutInner(props, ref) {
|
|
|
208
470
|
elementKind: payload.elementKind,
|
|
209
471
|
dataSourceKey: payload.dataSourceKey,
|
|
210
472
|
recordId: payload.recordId,
|
|
211
|
-
recordIds: payload.recordIds
|
|
473
|
+
recordIds: payload.recordIds,
|
|
474
|
+
builtinShapeKey: payload.builtinShapeKey
|
|
212
475
|
});
|
|
213
476
|
}, [
|
|
214
477
|
isFloorMapView,
|
|
@@ -224,9 +487,13 @@ function PisellFloorMapLayoutInner(props, ref) {
|
|
|
224
487
|
setMapPaletteDragActive,
|
|
225
488
|
onDropInScene: applyPaletteTouchDropInScene
|
|
226
489
|
});
|
|
490
|
+
/** 平面图下未配置对应 kind 的 `renderItemByKind` 时的占位渲染 */
|
|
227
491
|
const fallbackPlaceholderRender = useCallback((item) => {
|
|
228
492
|
return renderFloorMapFallbackPlaceholder(item);
|
|
229
493
|
}, []);
|
|
494
|
+
/**
|
|
495
|
+
* 统一图元渲染入口:平面图优先按 kind 查 `renderItemByKind`,校验绑定/配置问题后回退占位或 `renderItem`。
|
|
496
|
+
*/
|
|
230
497
|
const effectiveRenderItem = useCallback((item, index, options) => {
|
|
231
498
|
const merged = item;
|
|
232
499
|
const kind = merged === null || merged === void 0 ? void 0 : merged.elementKind;
|
|
@@ -252,6 +519,7 @@ function PisellFloorMapLayoutInner(props, ref) {
|
|
|
252
519
|
fallbackPlaceholderRender,
|
|
253
520
|
onElementRenderError
|
|
254
521
|
]);
|
|
522
|
+
/** 点击图元:编辑态同步选中 id,并透传业务 `onItemClick` */
|
|
255
523
|
const handleItemClick = useCallback((item, index, e) => {
|
|
256
524
|
if (isFloorMapView && mode === "edit") setSelectedId(item.id);
|
|
257
525
|
onItemClick === null || onItemClick === void 0 || onItemClick(item, index, e);
|
|
@@ -261,6 +529,7 @@ function PisellFloorMapLayoutInner(props, ref) {
|
|
|
261
529
|
onItemClick,
|
|
262
530
|
setSelectedId
|
|
263
531
|
]);
|
|
532
|
+
/** 对外 ref:缩放/复位/套合视口/保存布局,见 {@link PisellFloorMapLayoutRef} */
|
|
264
533
|
useImperativeHandle(ref, () => ({
|
|
265
534
|
zoomIn: () => {
|
|
266
535
|
var _transformRef$current;
|
|
@@ -287,23 +556,59 @@ function PisellFloorMapLayoutInner(props, ref) {
|
|
|
287
556
|
const handleMapAreaBackgroundClick = useCallback((e) => {
|
|
288
557
|
if (!isFloorMapView || mode !== "edit") return;
|
|
289
558
|
const t = e.target;
|
|
290
|
-
if (t.closest(
|
|
291
|
-
if (t.closest(
|
|
292
|
-
if (t.closest(
|
|
293
|
-
if (t.closest(
|
|
294
|
-
if (t.closest(
|
|
295
|
-
if (t.closest(
|
|
559
|
+
if (t.closest(`.pisell-floor-map-layout-editable-item`)) return;
|
|
560
|
+
if (t.closest(`.pisell-floor-map-layout-edit-panel-wrap`)) return;
|
|
561
|
+
if (t.closest(`.pisell-floor-map-layout-view-controls`)) return;
|
|
562
|
+
if (t.closest(`.pisell-floor-map-layout-viewport-overlay`)) return;
|
|
563
|
+
if (t.closest(`.pisell-floor-map-layout-place-overlay`)) return;
|
|
564
|
+
if (t.closest(`.pisell-floor-map-layout-map-drop-layer`)) return;
|
|
296
565
|
setSelectedId(null);
|
|
297
566
|
}, [
|
|
298
567
|
isFloorMapView,
|
|
299
568
|
mode,
|
|
300
569
|
setSelectedId
|
|
301
570
|
]);
|
|
302
|
-
|
|
571
|
+
/** 右侧手机 Drawer:open 由 props 驱动关闭动画,选中清除延后到 afterOpenChange(false) */
|
|
572
|
+
const [phoneEditDrawerOpen, setPhoneEditDrawerOpen] = useState(false);
|
|
573
|
+
useLayoutEffect(() => {
|
|
574
|
+
if (editTopBarPhoneLayout && (editPanelParams === null || editPanelParams === void 0 ? void 0 : editPanelParams.itemId)) setPhoneEditDrawerOpen(true);
|
|
575
|
+
}, [editTopBarPhoneLayout, editPanelParams === null || editPanelParams === void 0 ? void 0 : editPanelParams.itemId]);
|
|
576
|
+
useEffect(() => {
|
|
577
|
+
if (!editTopBarPhoneLayout || !editPanelParams) setPhoneEditDrawerOpen(false);
|
|
578
|
+
}, [editTopBarPhoneLayout, editPanelParams]);
|
|
579
|
+
const handlePhoneEditDrawerClose = useCallback(() => {
|
|
580
|
+
setPhoneEditDrawerOpen(false);
|
|
581
|
+
}, []);
|
|
582
|
+
const handlePhoneEditDrawerAfterOpenChange = useCallback((open) => {
|
|
583
|
+
if (!open) setSelectedId(null);
|
|
584
|
+
}, [setSelectedId]);
|
|
585
|
+
const handleCanvasTabChange = useCallback((id) => {
|
|
586
|
+
if (id === "__pisell_floor_map_overview__") {
|
|
587
|
+
/**
|
|
588
|
+
* 进入全览:保留 `currentCanvasId`(用户上次浏览的画布),
|
|
589
|
+
* 这样全览中点回某画布或退出后还能继承视角缓存。
|
|
590
|
+
*/
|
|
591
|
+
setIsOverview(true);
|
|
592
|
+
setSelectedId(null);
|
|
593
|
+
return;
|
|
594
|
+
}
|
|
595
|
+
setIsOverview(false);
|
|
596
|
+
setCurrentCanvasId(id);
|
|
597
|
+
setSelectedId(null);
|
|
598
|
+
}, [setCurrentCanvasId, setSelectedId]);
|
|
599
|
+
/** 全览态下 CanvasTabs 高亮的 id;非全览态用真实当前画布 id */
|
|
600
|
+
const tabsCurrentCanvasId = isOverview ? FLOOR_MAP_OVERVIEW_TAB_ID : currentCanvasId;
|
|
601
|
+
/**
|
|
602
|
+
* 新版 All 视图为「单画布平铺所有画布区域」,区域单击/双击不再切换画布;
|
|
603
|
+
* 切回单画布仅通过顶部 Tab,handleCanvasTabChange 负责退出全览。
|
|
604
|
+
*/
|
|
605
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", {
|
|
303
606
|
ref: containerRef,
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
[`${
|
|
607
|
+
"data-appearance-mode": appearanceMode,
|
|
608
|
+
className: classNames(FLOOR_MAP_LAYOUT_CLASS_PREFIX, className, {
|
|
609
|
+
[`${FLOOR_MAP_LAYOUT_CLASS_PREFIX}-floor-map-view`]: isFloorMapView,
|
|
610
|
+
[`${FLOOR_MAP_LAYOUT_CLASS_PREFIX}-mode-edit`]: isFloorMapView && mode === "edit",
|
|
611
|
+
[`${FLOOR_MAP_LAYOUT_CLASS_PREFIX}--pseudo-fullscreen`]: isFullscreen
|
|
307
612
|
}),
|
|
308
613
|
style: _objectSpread2(_objectSpread2(_objectSpread2({
|
|
309
614
|
display: "flex",
|
|
@@ -314,25 +619,24 @@ function PisellFloorMapLayoutInner(props, ref) {
|
|
|
314
619
|
config,
|
|
315
620
|
canvases: canvasesForTabs,
|
|
316
621
|
currentCanvasId,
|
|
317
|
-
onTabChange:
|
|
318
|
-
setCurrentCanvasId(id);
|
|
319
|
-
setSelectedId(null);
|
|
320
|
-
},
|
|
622
|
+
onTabChange: handleCanvasTabChange,
|
|
321
623
|
canEditTabs: config.canvasUi.canEdit,
|
|
322
624
|
onAddCanvas: handleAddCanvas,
|
|
323
625
|
onRemoveCanvas: handleRemoveCanvas,
|
|
324
626
|
onRenameCanvas: handleRenameCanvas,
|
|
325
627
|
controls,
|
|
326
|
-
canvasTabsBarTrailing
|
|
628
|
+
canvasTabsBarTrailing,
|
|
629
|
+
phoneLayout: editTopBarPhoneLayout,
|
|
630
|
+
onUndo: config.canvasUi.canEdit ? undoDraft : void 0,
|
|
631
|
+
onRedo: config.canvasUi.canEdit ? redoDraft : void 0,
|
|
632
|
+
canUndo,
|
|
633
|
+
canRedo
|
|
327
634
|
}), isFloorMapView && mode === "edit" && config && useFullTopChrome && /* @__PURE__ */ React.createElement(FloorMapEditTopBar, {
|
|
328
635
|
mode: "full",
|
|
329
636
|
config,
|
|
330
637
|
canvases: canvasesForTabs,
|
|
331
638
|
currentCanvasId,
|
|
332
|
-
onTabChange:
|
|
333
|
-
setCurrentCanvasId(id);
|
|
334
|
-
setSelectedId(null);
|
|
335
|
-
},
|
|
639
|
+
onTabChange: handleCanvasTabChange,
|
|
336
640
|
canEditTabs: config.canvasUi.canEdit,
|
|
337
641
|
onAddCanvas: handleAddCanvas,
|
|
338
642
|
onRemoveCanvas: handleRemoveCanvas,
|
|
@@ -344,25 +648,30 @@ function PisellFloorMapLayoutInner(props, ref) {
|
|
|
344
648
|
isFullscreen,
|
|
345
649
|
controls,
|
|
346
650
|
extraActions: topBarExtraActions,
|
|
347
|
-
canvasTabsBarTrailing
|
|
651
|
+
canvasTabsBarTrailing,
|
|
652
|
+
onUndo: config.canvasUi.canEdit ? undoDraft : void 0,
|
|
653
|
+
onRedo: config.canvasUi.canEdit ? redoDraft : void 0,
|
|
654
|
+
canUndo,
|
|
655
|
+
canRedo,
|
|
656
|
+
onExitEdit,
|
|
657
|
+
onCancelEdit: onExitEdit ? handleCancelEdit : void 0,
|
|
658
|
+
phoneLayout: editTopBarPhoneLayout
|
|
348
659
|
}), showReadModeCanvasTabsBar && /* @__PURE__ */ React.createElement("div", {
|
|
349
|
-
className:
|
|
660
|
+
className: `pisell-floor-map-layout-edit-top-bar pisell-floor-map-layout-read-canvas-tabs-bar`,
|
|
350
661
|
role: "toolbar",
|
|
351
662
|
"aria-label": readCanvasTabsAriaLabel
|
|
352
|
-
}, /* @__PURE__ */ React.createElement("div", { className:
|
|
663
|
+
}, /* @__PURE__ */ React.createElement("div", { className: `pisell-floor-map-layout-edit-top-bar-tabs` }, /* @__PURE__ */ React.createElement(CanvasTabs, {
|
|
353
664
|
canvases: canvasesForTabs,
|
|
354
|
-
currentCanvasId,
|
|
355
|
-
onTabChange:
|
|
356
|
-
setCurrentCanvasId(id);
|
|
357
|
-
setSelectedId(null);
|
|
358
|
-
},
|
|
665
|
+
currentCanvasId: tabsCurrentCanvasId,
|
|
666
|
+
onTabChange: handleCanvasTabChange,
|
|
359
667
|
canEdit: false,
|
|
360
|
-
className:
|
|
361
|
-
})), hasCanvasTabsBarTrailing ? /* @__PURE__ */ React.createElement("div", { className:
|
|
362
|
-
className: showSidebar
|
|
668
|
+
className: `pisell-floor-map-layout-edit-top-bar-canvas-tabs`
|
|
669
|
+
})), hasCanvasTabsBarTrailing ? /* @__PURE__ */ React.createElement("div", { className: `pisell-floor-map-layout-edit-top-bar-actions` }, canvasTabsBarTrailing) : null), loading && /* @__PURE__ */ React.createElement("div", { className: `pisell-floor-map-layout-loading` }, /* @__PURE__ */ React.createElement("span", null, loadingLabel)), saveError && !(isFloorMapView && mode === "edit" && config) && /* @__PURE__ */ React.createElement("div", { className: `pisell-floor-map-layout-save-error` }, typeof saveError === "string" ? saveError : saveError === null || saveError === void 0 ? void 0 : saveError.message), /* @__PURE__ */ React.createElement("div", {
|
|
670
|
+
className: classNames(showSidebar && `pisell-floor-map-layout-edit-layout`, showSidebar && editTopBarPhoneLayout && `pisell-floor-map-layout-edit-layout--phone-toolbar`),
|
|
363
671
|
style: {
|
|
364
672
|
flex: 1,
|
|
365
|
-
display: "flex",
|
|
673
|
+
display: showSidebar && editTopBarPhoneLayout ? "block" : "flex",
|
|
674
|
+
flexDirection: showSidebar && !editTopBarPhoneLayout ? "row" : void 0,
|
|
366
675
|
minHeight: 0
|
|
367
676
|
}
|
|
368
677
|
}, showSidebar && /* @__PURE__ */ React.createElement(FloorMapToolbar, {
|
|
@@ -384,16 +693,26 @@ function PisellFloorMapLayoutInner(props, ref) {
|
|
|
384
693
|
saveError,
|
|
385
694
|
layoutDirty: isLayoutDirty,
|
|
386
695
|
onPaletteCardPointerDown: paletteTouchDrag.handlePaletteCardPointerDown,
|
|
387
|
-
consumeToolbarClickIfTouchDrag: paletteTouchDrag.consumeToolbarClickIfTouchDrag
|
|
696
|
+
consumeToolbarClickIfTouchDrag: paletteTouchDrag.consumeToolbarClickIfTouchDrag,
|
|
697
|
+
phoneLayout: editTopBarPhoneLayout,
|
|
698
|
+
defaultCollapsed: editTopBarPhoneLayout,
|
|
699
|
+
onRequestPlaceAtCanvasCenter: editTopBarPhoneLayout ? handlePlaceActiveAtViewportCenter : void 0
|
|
388
700
|
}), /* @__PURE__ */ React.createElement("div", {
|
|
389
701
|
ref: mapAreaRef,
|
|
390
|
-
className: classNames(showSidebar &&
|
|
391
|
-
style: {
|
|
702
|
+
className: classNames(showSidebar && `pisell-floor-map-layout-map-area`, editTopBarPhoneLayout && showSidebar && `pisell-floor-map-layout-map-area--phone-fill`, editPanelVisible && !editTopBarPhoneLayout && `pisell-floor-map-layout-map-area--edit-panel-inset`),
|
|
703
|
+
style: _objectSpread2(_objectSpread2({}, editTopBarPhoneLayout && showSidebar ? {
|
|
704
|
+
position: "absolute",
|
|
705
|
+
left: 0,
|
|
706
|
+
right: 0,
|
|
707
|
+
top: 0,
|
|
708
|
+
bottom: 0
|
|
709
|
+
} : {
|
|
392
710
|
flex: 1,
|
|
393
|
-
position: "relative"
|
|
711
|
+
position: "relative"
|
|
712
|
+
}), {}, {
|
|
394
713
|
minWidth: 0,
|
|
395
714
|
overflow: "hidden"
|
|
396
|
-
},
|
|
715
|
+
}),
|
|
397
716
|
onClick: handleMapAreaBackgroundClick,
|
|
398
717
|
onDragEnter: (e) => {
|
|
399
718
|
if (!isFloorMapView || mode !== "edit") return;
|
|
@@ -411,6 +730,8 @@ function PisellFloorMapLayoutInner(props, ref) {
|
|
|
411
730
|
var _mapAreaRef$current;
|
|
412
731
|
if (!mapPaletteDragActive) return;
|
|
413
732
|
const related = e.relatedTarget;
|
|
733
|
+
/** 图元侧栏经 Portal 挂到 body 时,移入侧栏不算离开「有效拖放区」链 */
|
|
734
|
+
if (related && related instanceof Element && (related.closest(`.pisell-floor-map-layout-toolbar`) || related.closest(`.pisell-floor-map-layout-edit-panel-wrap`) || related.closest(`.pisell-floor-map-layout-toolbar-phone-drawer-root`) || related.closest(`.pisell-floor-map-layout-edit-panel-phone-drawer-root`) || related.closest(".ant-drawer") || related.closest(".pisell-lowcode-drawer"))) return;
|
|
414
735
|
if (!((_mapAreaRef$current = mapAreaRef.current) === null || _mapAreaRef$current === void 0 ? void 0 : _mapAreaRef$current.contains(related))) setMapPaletteDragActive(false);
|
|
415
736
|
}
|
|
416
737
|
}, /* @__PURE__ */ React.createElement(TransformWrapper, _objectSpread2(_objectSpread2({
|
|
@@ -424,26 +745,40 @@ function PisellFloorMapLayoutInner(props, ref) {
|
|
|
424
745
|
limitToBounds: pan.boundary !== "none"
|
|
425
746
|
}, { step: zoomConfig.step }), {}, {
|
|
426
747
|
panning: {
|
|
427
|
-
disabled: pan.enabled === false || isInteractingWithElement,
|
|
748
|
+
disabled: pan.enabled === false || isInteractingWithElement || viewportLocked,
|
|
428
749
|
velocityDisabled: true
|
|
429
750
|
},
|
|
751
|
+
wheel: { disabled: viewportLocked },
|
|
752
|
+
pinch: { disabled: viewportLocked },
|
|
430
753
|
doubleClick: { disabled: true },
|
|
431
754
|
onTransformed: (_, state) => {
|
|
432
755
|
setScale(state.scale);
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
756
|
+
/**
|
|
757
|
+
* 由 hook 内部写 lastTransformRef、判定 fitBounds 激活态。
|
|
758
|
+
* 不在 onTransformed 持久化:挂载/重挂载会触发一次「初始 transform」回调,
|
|
759
|
+
* 写到 localStorage 会覆盖用户上次保存的视角;
|
|
760
|
+
* 持久化改由 onPanningStop / onZoomStop / onPinchingStop / onWheelStop 触发。
|
|
761
|
+
*/
|
|
762
|
+
notifyTransformed(state.positionX, state.positionY, state.scale);
|
|
763
|
+
},
|
|
764
|
+
onPanningStop: persistCurrentViewport,
|
|
765
|
+
onZoomStop: persistCurrentViewport,
|
|
766
|
+
onPinchingStop: persistCurrentViewport,
|
|
767
|
+
onWheelStop: persistCurrentViewport
|
|
439
768
|
}), (ctx) => {
|
|
440
769
|
var _effectiveMapLayer$sn;
|
|
441
|
-
|
|
770
|
+
/**
|
|
771
|
+
* 不直接 transformRef.current = ctx:
|
|
772
|
+
* attachTransformContext 内部会比对 ctx 实例并在每次 wrapper 重挂载时
|
|
773
|
+
* 立即 schedule 一次 restore,避免「namespace 异步 → autoFit 抢跑 →
|
|
774
|
+
* restore 被 autoFit 动画吃掉」导致首屏不应用缓存的时序坑。
|
|
775
|
+
*/
|
|
776
|
+
attachTransformContext(ctx);
|
|
442
777
|
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(TransformComponent, {
|
|
443
778
|
wrapperStyle: {
|
|
444
779
|
width: "100%",
|
|
445
780
|
height: "100%",
|
|
446
|
-
backgroundColor:
|
|
781
|
+
backgroundColor: isOverview ? overviewBackgroundColor : canvasBackgroundColor,
|
|
447
782
|
overflow: "visible"
|
|
448
783
|
},
|
|
449
784
|
contentStyle: {
|
|
@@ -453,9 +788,36 @@ function PisellFloorMapLayoutInner(props, ref) {
|
|
|
453
788
|
minHeight: contentHeight,
|
|
454
789
|
position: "relative",
|
|
455
790
|
overflow: "visible",
|
|
456
|
-
backgroundColor:
|
|
791
|
+
backgroundColor: isOverview ? overviewBackgroundColor : canvasBackgroundColor
|
|
457
792
|
}
|
|
458
|
-
}, /* @__PURE__ */ React.createElement(
|
|
793
|
+
}, isOverview && overviewLayout && config ? /* @__PURE__ */ React.createElement(
|
|
794
|
+
"div",
|
|
795
|
+
/**
|
|
796
|
+
* 全览模式:不渲染 MapLayer 背景 / 网格 / placeOverlay / dropLayer;
|
|
797
|
+
* 每个画布的图元由 FloorMapOverview 在 contentOffset 的内部绝对定位渲染,
|
|
798
|
+
* 缩放/平移/锁定/全屏/fitBounds 由外层 TransformWrapper + ViewControls 接管。
|
|
799
|
+
*/
|
|
800
|
+
{ style: {
|
|
801
|
+
position: "absolute",
|
|
802
|
+
left: contentOffsetX,
|
|
803
|
+
top: contentOffsetY,
|
|
804
|
+
width: overviewLayout.totalWidth,
|
|
805
|
+
height: overviewLayout.totalHeight
|
|
806
|
+
} },
|
|
807
|
+
/* @__PURE__ */ React.createElement(FloorMapOverview, {
|
|
808
|
+
overviewLayout,
|
|
809
|
+
config,
|
|
810
|
+
itemUnit: effectiveItemUnit,
|
|
811
|
+
renderItem: effectiveRenderItem,
|
|
812
|
+
viewportScale: scale,
|
|
813
|
+
enableHover,
|
|
814
|
+
onItemClick: handleItemClick,
|
|
815
|
+
onItemHover,
|
|
816
|
+
onItemLeave,
|
|
817
|
+
getMergedItemWrapperStyle,
|
|
818
|
+
readModeSelectedItemId
|
|
819
|
+
})
|
|
820
|
+
) : /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(MapLayer, {
|
|
459
821
|
config: effectiveMapLayer,
|
|
460
822
|
contentWidth,
|
|
461
823
|
contentHeight,
|
|
@@ -484,6 +846,7 @@ function PisellFloorMapLayoutInner(props, ref) {
|
|
|
484
846
|
}) : /* @__PURE__ */ React.createElement(ItemLayer, {
|
|
485
847
|
items,
|
|
486
848
|
renderItem: effectiveRenderItem,
|
|
849
|
+
viewportScale: scale,
|
|
487
850
|
rowKey,
|
|
488
851
|
cellSize,
|
|
489
852
|
itemUnit: effectiveItemUnit,
|
|
@@ -498,7 +861,8 @@ function PisellFloorMapLayoutInner(props, ref) {
|
|
|
498
861
|
onItemHover,
|
|
499
862
|
onItemLeave,
|
|
500
863
|
getMergedItemWrapperStyle,
|
|
501
|
-
onInteractionChange: setIsInteractingWithElement
|
|
864
|
+
onInteractionChange: setIsInteractingWithElement,
|
|
865
|
+
readModeSelectedItemId
|
|
502
866
|
}), isFloorMapView && mode === "edit" && (placeMode === null || placeMode === void 0 ? void 0 : placeMode.type) === "scene" && /* @__PURE__ */ React.createElement("div", {
|
|
503
867
|
className: placeOverlayClass,
|
|
504
868
|
style: {
|
|
@@ -508,7 +872,7 @@ function PisellFloorMapLayoutInner(props, ref) {
|
|
|
508
872
|
onClick: handleCanvasPlaceClick
|
|
509
873
|
}), isFloorMapView && mode === "edit" && /* @__PURE__ */ React.createElement("div", {
|
|
510
874
|
ref: mapDropLayerRef,
|
|
511
|
-
className: classNames(
|
|
875
|
+
className: classNames(`pisell-floor-map-layout-map-drop-layer`, { [`pisell-floor-map-layout-map-drop-layer-active`]: mapPaletteDragActive }),
|
|
512
876
|
style: {
|
|
513
877
|
width: contentWidth,
|
|
514
878
|
height: contentHeight
|
|
@@ -518,24 +882,28 @@ function PisellFloorMapLayoutInner(props, ref) {
|
|
|
518
882
|
ev.stopPropagation();
|
|
519
883
|
},
|
|
520
884
|
onDrop: handlePaletteDropOnCanvas
|
|
521
|
-
})), /* @__PURE__ */ React.createElement(ViewControlsWithZoom, {
|
|
885
|
+
}))), /* @__PURE__ */ React.createElement(ViewControlsWithZoom, {
|
|
522
886
|
config: viewControlsConfig,
|
|
523
887
|
scale,
|
|
524
888
|
isFullscreen,
|
|
889
|
+
fitBoundsActive: isAtFitBounds,
|
|
525
890
|
fitBounds,
|
|
526
891
|
toggleFullscreen: dockToggleFullscreen,
|
|
527
|
-
mapGridVisible: Boolean(effectiveMapLayer === null || effectiveMapLayer === void 0 ? void 0 : effectiveMapLayer.showGrid),
|
|
528
|
-
onToggleMapGrid: isFloorMapView ? toggleDraftCanvasShowGrid : void 0,
|
|
892
|
+
mapGridVisible: isOverview ? false : Boolean(effectiveMapLayer === null || effectiveMapLayer === void 0 ? void 0 : effectiveMapLayer.showGrid),
|
|
893
|
+
onToggleMapGrid: isFloorMapView && !isOverview ? toggleDraftCanvasShowGrid : void 0,
|
|
894
|
+
viewportLocked,
|
|
895
|
+
onToggleViewportLock: isFloorMapView ? toggleViewportLocked : void 0,
|
|
529
896
|
dockChrome: isFloorMapView,
|
|
897
|
+
dockExpandedToolButtons: viewportDockToolButtons,
|
|
530
898
|
dockExpandedTrailing: viewportDockTrailing,
|
|
531
899
|
autoCollapseDockMs: 1e4
|
|
532
|
-
}), isFloorMapView && floorMapViewportOverlay != null ? /* @__PURE__ */ React.createElement("div", { className: classNames(`${
|
|
900
|
+
}), isFloorMapView && floorMapViewportOverlay != null ? /* @__PURE__ */ React.createElement("div", { className: classNames(`${FLOOR_MAP_LAYOUT_CLASS_PREFIX}-viewport-overlay`, { [`${FLOOR_MAP_LAYOUT_CLASS_PREFIX}-viewport-overlay--bottom-start`]: viewportOverlayPlacement === "bottom-start" }, viewportOverlayClassName) }, typeof floorMapViewportOverlay === "function" ? floorMapViewportOverlay({
|
|
533
901
|
items,
|
|
534
902
|
dataSources,
|
|
535
903
|
currentCanvasId,
|
|
536
904
|
mode
|
|
537
|
-
}) : floorMapViewportOverlay) : null, isFloorMapView && mode === "edit" && editPanelParams && config && dataSources && /* @__PURE__ */ React.createElement("div", {
|
|
538
|
-
className: classNames(
|
|
905
|
+
}) : floorMapViewportOverlay) : null, isFloorMapView && mode === "edit" && editPanelParams && config && dataSources && !editTopBarPhoneLayout && /* @__PURE__ */ React.createElement("div", {
|
|
906
|
+
className: classNames(`pisell-floor-map-layout-edit-panel-wrap`, mapAreaSize.height > 0 && `pisell-floor-map-layout-edit-panel-wrap-constrained`),
|
|
539
907
|
style: mapAreaSize.height > 0 ? {
|
|
540
908
|
height: mapAreaSize.height - 32,
|
|
541
909
|
maxHeight: mapAreaSize.height - 32,
|
|
@@ -548,8 +916,32 @@ function PisellFloorMapLayoutInner(props, ref) {
|
|
|
548
916
|
dataSources,
|
|
549
917
|
savingRecord
|
|
550
918
|
}))));
|
|
551
|
-
}))))
|
|
919
|
+
})))), editTopBarPhoneLayout && editPanelParams && config && dataSources && /* @__PURE__ */ React.createElement(Drawer, {
|
|
920
|
+
placement: "right",
|
|
921
|
+
open: phoneEditDrawerOpen,
|
|
922
|
+
onClose: handlePhoneEditDrawerClose,
|
|
923
|
+
afterOpenChange: handlePhoneEditDrawerAfterOpenChange,
|
|
924
|
+
width: "min(320px, 88vw)",
|
|
925
|
+
zIndex: 2002,
|
|
926
|
+
maskClosable: true,
|
|
927
|
+
destroyOnClose: false,
|
|
928
|
+
closable: false,
|
|
929
|
+
rootClassName: `pisell-floor-map-layout-edit-panel-phone-drawer-root`,
|
|
930
|
+
classNames: { body: `pisell-floor-map-layout-edit-panel-phone-drawer-body` },
|
|
931
|
+
styles: { body: {
|
|
932
|
+
padding: 0,
|
|
933
|
+
overflow: "auto",
|
|
934
|
+
height: "100%"
|
|
935
|
+
} },
|
|
936
|
+
getContainer: typeof document !== "undefined" ? () => document.body : void 0
|
|
937
|
+
}, /* @__PURE__ */ React.createElement("div", { className: classNames(`pisell-floor-map-layout-edit-panel-wrap`, `pisell-floor-map-layout-edit-panel-wrap--phone-drawer`) }, /* @__PURE__ */ React.createElement(FloorMapEditPanel, _objectSpread2(_objectSpread2({}, editPanelParams), {}, {
|
|
938
|
+
config,
|
|
939
|
+
dataSources,
|
|
940
|
+
savingRecord,
|
|
941
|
+
className: `pisell-floor-map-layout-edit-panel--phone-drawer`
|
|
942
|
+
})))));
|
|
552
943
|
}
|
|
944
|
+
/** 空间布局根组件:阅读/编辑、列表与平面图双模式,ref 见 {@link PisellFloorMapLayoutRef} */
|
|
553
945
|
const PisellFloorMapLayout = React.forwardRef(PisellFloorMapLayoutInner);
|
|
554
946
|
//#endregion
|
|
555
947
|
export { PisellFloorMapLayout as default };
|