@pisell/materials 6.11.42 → 6.11.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/index.js +1 -1
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/preview.js +8 -8
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +18 -18
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +18 -18
- package/es/components/Pagination/index.d.ts +0 -1
- package/es/components/PisellCards/components/PisellImageCard/PisellImageCard.d.ts +0 -1
- package/es/components/PisellFields/index.d.ts +0 -1
- package/es/components/PisellMetrics/index.d.ts +0 -1
- package/es/components/cardPro/index.d.ts +1 -0
- package/es/components/colorPicker/index.d.ts +0 -1
- package/es/components/dataSourceComponents/dataSourceForm/formItem.d.ts +0 -1
- package/es/components/dataSourceComponents/dataSourceForm/utils.d.ts +1 -1
- package/es/components/dataSourceComponents/dataSourceShow/dataSourceImage/index.d.ts +0 -1
- package/es/components/dataSourceComponents/dataSourceShow/dataSourceQRCode/index.d.ts +0 -1
- package/es/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +0 -1
- package/es/components/dataSourceComponents/dataSourceTable/filter/utils.d.ts +0 -1
- package/es/components/dataSourceComponents/dataSourceTable/hooks/useDataSourceKey.d.ts +2 -3
- package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +3 -3
- package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableQuery.d.ts +0 -1
- package/es/components/dataSourceComponents/dataSourceWrapper/index.d.ts +0 -1
- package/es/components/dataSourceComponents/fields/Input.Json/ReadPretty.d.ts +0 -1
- package/es/components/dataSourceComponents/fields/Input.Password/ReadPretty.d.ts +0 -1
- package/es/components/dataSourceComponents/fields/Input.Subdomain/index.d.ts +1 -1
- package/es/components/dataSourceComponents/fields/RecordListWrapper/index.d.ts +1 -2
- package/es/components/dataSourceComponents/fields/Select/index.d.ts +1 -2
- package/es/components/dataSourceComponents/fields/Tabs/index.d.ts +1 -2
- package/es/components/dataSourceComponents/fields/Upload/ReadPretty.d.ts +0 -1
- package/es/components/dataSourceComponents/fields/Upload/utils.d.ts +1 -1
- package/es/components/dataSourceComponents/fields/index.d.ts +16 -17
- package/es/components/date-picker/datePickerCpt.d.ts +0 -1
- package/es/components/date-picker/index.d.ts +0 -1
- package/es/components/drag-sort-tree/TreeItem/index.d.ts +1 -0
- package/es/components/filter/components/FilterItem/index.js +3 -1
- package/es/components/filter/components/QuickFilter/index.js +3 -2
- package/es/components/filter/components/items/index.d.ts +0 -1
- package/es/components/filter/components/items/text/Editor/index.d.ts +0 -1
- package/es/components/filter/components/items/text/Preview/index.d.ts +0 -1
- package/es/components/filter/components/items/text/index.d.ts +0 -1
- package/es/components/filter/index.d.ts +0 -1
- package/es/components/list/index.d.ts +0 -1
- package/es/components/lowCodePage/index.d.ts +0 -1
- package/es/components/pisellAdjustPrice/PisellAdjustPriceInputNumber.d.ts +0 -1
- package/es/components/pisellDataSourceContainer/PisellDataSourceContainer.d.ts +0 -1
- package/es/components/pisellDataSourceContainer/hooks/useDataSourceKey.d.ts +2 -3
- package/es/components/pisellDatePicker/datePickerCpt.d.ts +1 -0
- package/es/components/pisellFilter/index.d.ts +0 -1
- package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.js +175 -24
- package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.less +22 -0
- package/es/components/pisellFloorMapLayout/components/FigmaTableCard.d.ts +2 -2
- package/es/components/pisellFloorMapLayout/components/FigmaTableCard.js +268 -103
- package/es/components/pisellFloorMapLayout/components/FloorMapEditPanel.js +40 -4
- package/es/components/pisellFloorMapLayout/components/FloorMapEditTopBar.d.ts +22 -0
- package/es/components/pisellFloorMapLayout/components/FloorMapEditTopBar.js +138 -12
- package/es/components/pisellFloorMapLayout/components/FloorMapEditTopBar.less +9 -1
- package/es/components/pisellFloorMapLayout/components/FloorMapToolbar.js +65 -4
- package/es/components/pisellFloorMapLayout/components/FloorMapToolbar.less +97 -4
- package/es/components/pisellFloorMapLayout/components/HistoryIcons.d.ts +39 -0
- package/es/components/pisellFloorMapLayout/components/HistoryIcons.js +75 -0
- package/es/components/pisellFloorMapLayout/components/ItemLayer.js +14 -1
- package/es/components/pisellFloorMapLayout/components/ViewControls.d.ts +9 -0
- package/es/components/pisellFloorMapLayout/components/ViewControls.js +96 -12
- package/es/components/pisellFloorMapLayout/components/ViewControls.less +224 -21
- package/es/components/pisellFloorMapLayout/components/ViewControlsWithZoom.d.ts +6 -0
- package/es/components/pisellFloorMapLayout/components/ViewControlsWithZoom.js +3 -0
- package/es/components/pisellFloorMapLayout/floorMapLayoutConstants.d.ts +4 -0
- package/es/components/pisellFloorMapLayout/floorMapLayoutConstants.js +4 -0
- package/es/components/pisellFloorMapLayout/hooks/floorMapViewportPersistence.d.ts +25 -0
- package/es/components/pisellFloorMapLayout/hooks/floorMapViewportPersistence.js +68 -0
- package/es/components/pisellFloorMapLayout/hooks/useDraftConfigHistory.d.ts +18 -0
- package/es/components/pisellFloorMapLayout/hooks/useDraftConfigHistory.js +104 -0
- package/es/components/pisellFloorMapLayout/hooks/useFloorMapEditState.d.ts +5 -0
- package/es/components/pisellFloorMapLayout/hooks/useFloorMapEditState.js +121 -34
- package/es/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.d.ts +23 -1
- package/es/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.js +345 -29
- package/es/components/pisellFloorMapLayout/index.d.ts +1 -0
- package/es/components/pisellFloorMapLayout/index.js +1 -0
- package/es/components/pisellFloorMapLayout/locales-ja.d.ts +20 -0
- package/es/components/pisellFloorMapLayout/locales-ja.js +21 -1
- package/es/components/pisellFloorMapLayout/locales-pt.d.ts +20 -0
- package/es/components/pisellFloorMapLayout/locales-pt.js +21 -1
- package/es/components/pisellFloorMapLayout/locales.d.ts +100 -0
- package/es/components/pisellFloorMapLayout/locales.js +63 -3
- package/es/components/pisellFloorMapLayout/types.d.ts +37 -0
- package/es/components/pisellFloorMapLayout/utils/floorMapElementNameAsTitle.d.ts +50 -0
- package/es/components/pisellFloorMapLayout/utils/floorMapElementNameAsTitle.js +74 -0
- package/es/components/pisellGridPro/ToolBar/index.less +5 -4
- package/es/components/pisellInput/components/BankCard/index.d.ts +1 -0
- package/es/components/pisellInput/components/SecurityCode/index.d.ts +1 -0
- package/es/components/pisellLoading/index.d.ts +0 -1
- package/es/components/pisellModal/components/IpadModal/index.d.ts +0 -1
- package/es/components/pisellModal/components/MobileModal/index.d.ts +0 -1
- package/es/components/pisellModal/components/index.d.ts +0 -1
- package/es/components/pisellRecordBoard/PisellRecordBoard.js +9 -3
- package/es/components/pisellRecordBoard/shellFrame/Calendar/utils/BookingCalendarStyle.d.ts +1 -1
- package/es/components/pisellRecordBoard/shellFrame/ColumnSetting/index.js +2 -1
- package/es/components/pisellRecordBoard/shellFrame/Pagination/index.js +9 -2
- package/es/components/pisellRecordBoard/shellFrame/ToolBar/index.js +99 -101
- package/es/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarConstants.d.ts +8 -0
- package/es/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarConstants.js +12 -0
- package/es/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarI18n.d.ts +13 -0
- package/es/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarI18n.js +66 -0
- package/es/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolbar.less +176 -10
- package/es/components/pisellRecordBoard/shellFrame/ToolBarQuickFilter/index.js +20 -2
- package/es/components/pisellRecordBoard/shellFrame/index.d.ts +6 -0
- package/es/components/pisellRecordBoard/shellFrame/index.js +3 -1
- package/es/components/pisellRecordBoard/types.d.ts +20 -1
- package/es/components/pisellShellFrame/PisellShellFrame.js +4 -1
- package/es/components/pisellShellFrame/PisellShellFrame.less +13 -0
- package/es/components/pisellShellFrame/types.d.ts +6 -0
- package/es/components/pisellTimeNavigator/PisellTimeNavigator.js +139 -29
- package/es/components/pisellTimeNavigator/PisellTimeNavigator.less +126 -13
- package/es/components/pisellTimeNavigator/components/CursorLayer.d.ts +3 -1
- package/es/components/pisellTimeNavigator/components/CursorLayer.js +3 -0
- package/es/components/pisellTimeNavigator/components/GestureLayer.d.ts +9 -1
- package/es/components/pisellTimeNavigator/components/GestureLayer.js +11 -4
- package/es/components/pisellTimeNavigator/timeNavigatorConstants.d.ts +20 -0
- package/es/components/pisellTimeNavigator/timeNavigatorConstants.js +27 -0
- package/es/components/pisellTooltip/index.d.ts +1 -0
- package/es/components/productCard/components/Action/index.d.ts +1 -0
- package/es/components/productCard/components/AmountFooter/index.d.ts +0 -1
- package/es/components/productCard/components/MultiDay/index.d.ts +0 -1
- package/es/components/productCard/components/Note/index.d.ts +0 -1
- package/es/components/productCard/components/Packages/components/collapsibleList/utils.d.ts +0 -1
- package/es/components/productCard/components/Packages/components/options/index.d.ts +0 -1
- package/es/components/productCard/components/Packages/index.d.ts +0 -1
- package/es/components/productCard/components/Time/components/SelectResource/index.d.ts +0 -1
- package/es/components/productCard/components/Time/index.d.ts +0 -1
- package/es/components/qrcode/index.d.ts +0 -1
- package/es/components/table/Actions/component/ColumnsSetting/index.d.ts +0 -1
- package/es/components/table/Actions/component/ExportImport/index.d.ts +0 -1
- package/es/components/table/Actions/component/GallerySetting/index.d.ts +0 -1
- package/es/components/table/Actions/component/Group/index.d.ts +0 -1
- package/es/components/table/Actions/index.d.ts +0 -1
- package/es/components/table/BasicTable/index.d.ts +0 -1
- package/es/components/table/Gallery/components/GalleryItem/components/Cover/index.d.ts +0 -1
- package/es/components/table/Gallery/components/GalleryItem/components/RenderFields/index.d.ts +0 -1
- package/es/components/table/Gallery/components/GalleryItem/components/Title/index.d.ts +0 -1
- package/es/components/table/Gallery/components/VirtualGrid/useGapSize.d.ts +2 -2
- package/es/components/table/Table/SelectField/index.d.ts +0 -1
- package/es/components/table/Table/fields/date/Show/index.d.ts +0 -1
- package/es/components/table/Table/fields/date/index.d.ts +0 -1
- package/es/components/table/Table/fields/image/Show/index.d.ts +0 -1
- package/es/components/table/Table/fields/index.d.ts +0 -1
- package/es/components/table/Table/fields/link/Show/index.d.ts +0 -1
- package/es/components/table/Table/fields/number/Show/index.d.ts +0 -1
- package/es/components/table/Table/fields/number/index.d.ts +0 -1
- package/es/components/table/Table/fields/numberRange/Show/index.d.ts +0 -1
- package/es/components/table/Table/fields/numberRange/index.d.ts +0 -1
- package/es/components/table/Table/fields/oldRangePicker/index.d.ts +0 -1
- package/es/components/table/Table/fields/pSwitch/Show/index.d.ts +0 -1
- package/es/components/table/Table/fields/rangePicker/index.d.ts +0 -1
- package/es/components/table/Table/fields/search/Show/index.d.ts +0 -1
- package/es/components/table/Table/fields/search/index.d.ts +0 -1
- package/es/components/table/Table/fields/select/filterUtil/index.d.ts +1 -1
- package/es/components/table/Table/fields/select/index.d.ts +0 -1
- package/es/components/table/Table/fields/text/Show/index.d.ts +0 -1
- package/es/components/table/Table/fields/text/index.d.ts +0 -1
- package/es/components/table/Table/fields/treeSelect/filterUtil/index.d.ts +1 -1
- package/es/components/table/Table/fields/treeSelect/index.d.ts +0 -1
- package/es/components/table/Table/tableConfig/SortRow/index.d.ts +0 -1
- package/es/components/table/Table/tableConfig/summary/index.d.ts +0 -1
- package/es/components/table/Table/utils.d.ts +1 -1
- package/es/components/table/View/index.d.ts +0 -1
- package/es/components/versionSelect/index.d.ts +0 -1
- package/es/index.d.ts +8 -1
- package/es/index.js +8 -1
- package/es/locales/en-US.d.ts +2 -0
- package/es/locales/en-US.js +2 -0
- package/es/locales/ja.d.ts +2 -0
- package/es/locales/ja.js +2 -0
- package/es/locales/pt.d.ts +2 -0
- package/es/locales/pt.js +2 -0
- package/es/locales/zh-CN.d.ts +2 -0
- package/es/locales/zh-CN.js +2 -0
- package/es/locales/zh-TW.d.ts +2 -0
- package/es/locales/zh-TW.js +2 -0
- package/es/utils/index.d.ts +1 -1
- package/es/utils/platform.d.ts +1 -1
- package/lib/components/Pagination/index.d.ts +0 -1
- package/lib/components/PisellCards/components/PisellImageCard/PisellImageCard.d.ts +0 -1
- package/lib/components/PisellFields/index.d.ts +0 -1
- package/lib/components/PisellMetrics/index.d.ts +0 -1
- package/lib/components/cardPro/index.d.ts +1 -0
- package/lib/components/colorPicker/index.d.ts +0 -1
- package/lib/components/dataSourceComponents/dataSourceForm/formItem.d.ts +0 -1
- package/lib/components/dataSourceComponents/dataSourceForm/utils.d.ts +1 -1
- package/lib/components/dataSourceComponents/dataSourceShow/dataSourceImage/index.d.ts +0 -1
- package/lib/components/dataSourceComponents/dataSourceShow/dataSourceQRCode/index.d.ts +0 -1
- package/lib/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +0 -1
- package/lib/components/dataSourceComponents/dataSourceTable/filter/utils.d.ts +0 -1
- package/lib/components/dataSourceComponents/dataSourceTable/hooks/useDataSourceKey.d.ts +2 -3
- package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +3 -3
- package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableQuery.d.ts +0 -1
- package/lib/components/dataSourceComponents/dataSourceWrapper/index.d.ts +0 -1
- package/lib/components/dataSourceComponents/fields/Input.Json/ReadPretty.d.ts +0 -1
- package/lib/components/dataSourceComponents/fields/Input.Password/ReadPretty.d.ts +0 -1
- package/lib/components/dataSourceComponents/fields/Input.Subdomain/index.d.ts +1 -1
- package/lib/components/dataSourceComponents/fields/RecordListWrapper/index.d.ts +1 -2
- package/lib/components/dataSourceComponents/fields/Select/index.d.ts +1 -2
- package/lib/components/dataSourceComponents/fields/Tabs/index.d.ts +1 -2
- package/lib/components/dataSourceComponents/fields/Upload/ReadPretty.d.ts +0 -1
- package/lib/components/dataSourceComponents/fields/Upload/utils.d.ts +1 -1
- package/lib/components/dataSourceComponents/fields/index.d.ts +16 -17
- package/lib/components/date-picker/datePickerCpt.d.ts +0 -1
- package/lib/components/date-picker/index.d.ts +0 -1
- package/lib/components/drag-sort-tree/TreeItem/index.d.ts +1 -0
- package/lib/components/filter/components/FilterItem/index.js +2 -1
- package/lib/components/filter/components/QuickFilter/index.js +3 -2
- package/lib/components/filter/components/items/index.d.ts +0 -1
- package/lib/components/filter/components/items/text/Editor/index.d.ts +0 -1
- package/lib/components/filter/components/items/text/Preview/index.d.ts +0 -1
- package/lib/components/filter/components/items/text/index.d.ts +0 -1
- package/lib/components/filter/index.d.ts +0 -1
- package/lib/components/list/index.d.ts +0 -1
- package/lib/components/lowCodePage/index.d.ts +0 -1
- package/lib/components/pisellAdjustPrice/PisellAdjustPriceInputNumber.d.ts +0 -1
- package/lib/components/pisellDataSourceContainer/PisellDataSourceContainer.d.ts +0 -1
- package/lib/components/pisellDataSourceContainer/hooks/useDataSourceKey.d.ts +2 -3
- package/lib/components/pisellDatePicker/datePickerCpt.d.ts +1 -0
- package/lib/components/pisellFilter/index.d.ts +0 -1
- package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.js +141 -44
- package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.less +22 -0
- package/lib/components/pisellFloorMapLayout/components/FigmaTableCard.d.ts +2 -2
- package/lib/components/pisellFloorMapLayout/components/FigmaTableCard.js +213 -94
- package/lib/components/pisellFloorMapLayout/components/FloorMapEditPanel.js +41 -2
- package/lib/components/pisellFloorMapLayout/components/FloorMapEditTopBar.d.ts +22 -0
- package/lib/components/pisellFloorMapLayout/components/FloorMapEditTopBar.js +128 -12
- package/lib/components/pisellFloorMapLayout/components/FloorMapEditTopBar.less +9 -1
- package/lib/components/pisellFloorMapLayout/components/FloorMapToolbar.js +53 -5
- package/lib/components/pisellFloorMapLayout/components/FloorMapToolbar.less +97 -4
- package/lib/components/pisellFloorMapLayout/components/HistoryIcons.d.ts +39 -0
- package/lib/components/pisellFloorMapLayout/components/HistoryIcons.js +71 -0
- package/lib/components/pisellFloorMapLayout/components/ItemLayer.js +2 -1
- package/lib/components/pisellFloorMapLayout/components/ViewControls.d.ts +9 -0
- package/lib/components/pisellFloorMapLayout/components/ViewControls.js +158 -49
- package/lib/components/pisellFloorMapLayout/components/ViewControls.less +224 -21
- package/lib/components/pisellFloorMapLayout/components/ViewControlsWithZoom.d.ts +6 -0
- package/lib/components/pisellFloorMapLayout/components/ViewControlsWithZoom.js +3 -0
- package/lib/components/pisellFloorMapLayout/floorMapLayoutConstants.d.ts +4 -0
- package/lib/components/pisellFloorMapLayout/floorMapLayoutConstants.js +29 -0
- package/lib/components/pisellFloorMapLayout/hooks/floorMapViewportPersistence.d.ts +25 -0
- package/lib/components/pisellFloorMapLayout/hooks/floorMapViewportPersistence.js +98 -0
- package/lib/components/pisellFloorMapLayout/hooks/useDraftConfigHistory.d.ts +18 -0
- package/lib/components/pisellFloorMapLayout/hooks/useDraftConfigHistory.js +95 -0
- package/lib/components/pisellFloorMapLayout/hooks/useFloorMapEditState.d.ts +5 -0
- package/lib/components/pisellFloorMapLayout/hooks/useFloorMapEditState.js +65 -15
- package/lib/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.d.ts +23 -1
- package/lib/components/pisellFloorMapLayout/hooks/useFloorMapTransformMetrics.js +196 -24
- package/lib/components/pisellFloorMapLayout/index.d.ts +1 -0
- package/lib/components/pisellFloorMapLayout/index.js +9 -0
- package/lib/components/pisellFloorMapLayout/locales-ja.d.ts +20 -0
- package/lib/components/pisellFloorMapLayout/locales-ja.js +21 -1
- package/lib/components/pisellFloorMapLayout/locales-pt.d.ts +20 -0
- package/lib/components/pisellFloorMapLayout/locales-pt.js +21 -1
- package/lib/components/pisellFloorMapLayout/locales.d.ts +100 -0
- package/lib/components/pisellFloorMapLayout/locales.js +63 -3
- package/lib/components/pisellFloorMapLayout/types.d.ts +37 -0
- package/lib/components/pisellFloorMapLayout/utils/floorMapElementNameAsTitle.d.ts +50 -0
- package/lib/components/pisellFloorMapLayout/utils/floorMapElementNameAsTitle.js +60 -0
- package/lib/components/pisellGridPro/ToolBar/index.less +5 -4
- package/lib/components/pisellInput/components/BankCard/index.d.ts +1 -0
- package/lib/components/pisellInput/components/SecurityCode/index.d.ts +1 -0
- package/lib/components/pisellLoading/index.d.ts +0 -1
- package/lib/components/pisellModal/components/IpadModal/index.d.ts +0 -1
- package/lib/components/pisellModal/components/MobileModal/index.d.ts +0 -1
- package/lib/components/pisellModal/components/index.d.ts +0 -1
- package/lib/components/pisellRecordBoard/PisellRecordBoard.js +10 -3
- package/lib/components/pisellRecordBoard/shellFrame/Calendar/utils/BookingCalendarStyle.d.ts +1 -1
- package/lib/components/pisellRecordBoard/shellFrame/ColumnSetting/index.js +2 -1
- package/lib/components/pisellRecordBoard/shellFrame/Pagination/index.js +3 -2
- package/lib/components/pisellRecordBoard/shellFrame/ToolBar/index.js +70 -75
- package/lib/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarConstants.d.ts +8 -0
- package/lib/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarConstants.js +38 -0
- package/lib/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarI18n.d.ts +13 -0
- package/lib/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolBarI18n.js +100 -0
- package/lib/components/pisellRecordBoard/shellFrame/ToolBar/recordBoardToolbar.less +176 -10
- package/lib/components/pisellRecordBoard/shellFrame/ToolBarQuickFilter/index.js +8 -0
- package/lib/components/pisellRecordBoard/shellFrame/index.d.ts +6 -0
- package/lib/components/pisellRecordBoard/shellFrame/index.js +2 -1
- package/lib/components/pisellRecordBoard/types.d.ts +20 -1
- package/lib/components/pisellShellFrame/PisellShellFrame.js +2 -1
- package/lib/components/pisellShellFrame/PisellShellFrame.less +13 -0
- package/lib/components/pisellShellFrame/types.d.ts +6 -0
- package/lib/components/pisellTimeNavigator/PisellTimeNavigator.js +96 -27
- package/lib/components/pisellTimeNavigator/PisellTimeNavigator.less +126 -13
- package/lib/components/pisellTimeNavigator/components/CursorLayer.d.ts +3 -1
- package/lib/components/pisellTimeNavigator/components/CursorLayer.js +2 -0
- package/lib/components/pisellTimeNavigator/components/GestureLayer.d.ts +9 -1
- package/lib/components/pisellTimeNavigator/components/GestureLayer.js +5 -2
- package/lib/components/pisellTimeNavigator/timeNavigatorConstants.d.ts +20 -0
- package/lib/components/pisellTimeNavigator/timeNavigatorConstants.js +47 -0
- package/lib/components/pisellTooltip/index.d.ts +1 -0
- package/lib/components/productCard/components/Action/index.d.ts +1 -0
- package/lib/components/productCard/components/AmountFooter/index.d.ts +0 -1
- package/lib/components/productCard/components/MultiDay/index.d.ts +0 -1
- package/lib/components/productCard/components/Note/index.d.ts +0 -1
- package/lib/components/productCard/components/Packages/components/collapsibleList/utils.d.ts +0 -1
- package/lib/components/productCard/components/Packages/components/options/index.d.ts +0 -1
- package/lib/components/productCard/components/Packages/index.d.ts +0 -1
- package/lib/components/productCard/components/Time/components/SelectResource/index.d.ts +0 -1
- package/lib/components/productCard/components/Time/index.d.ts +0 -1
- package/lib/components/qrcode/index.d.ts +0 -1
- package/lib/components/table/Actions/component/ColumnsSetting/index.d.ts +0 -1
- package/lib/components/table/Actions/component/ExportImport/index.d.ts +0 -1
- package/lib/components/table/Actions/component/GallerySetting/index.d.ts +0 -1
- package/lib/components/table/Actions/component/Group/index.d.ts +0 -1
- package/lib/components/table/Actions/index.d.ts +0 -1
- package/lib/components/table/BasicTable/index.d.ts +0 -1
- package/lib/components/table/Gallery/components/GalleryItem/components/Cover/index.d.ts +0 -1
- package/lib/components/table/Gallery/components/GalleryItem/components/RenderFields/index.d.ts +0 -1
- package/lib/components/table/Gallery/components/GalleryItem/components/Title/index.d.ts +0 -1
- package/lib/components/table/Gallery/components/VirtualGrid/useGapSize.d.ts +2 -2
- package/lib/components/table/Table/SelectField/index.d.ts +0 -1
- package/lib/components/table/Table/fields/date/Show/index.d.ts +0 -1
- package/lib/components/table/Table/fields/date/index.d.ts +0 -1
- package/lib/components/table/Table/fields/image/Show/index.d.ts +0 -1
- package/lib/components/table/Table/fields/index.d.ts +0 -1
- package/lib/components/table/Table/fields/link/Show/index.d.ts +0 -1
- package/lib/components/table/Table/fields/number/Show/index.d.ts +0 -1
- package/lib/components/table/Table/fields/number/index.d.ts +0 -1
- package/lib/components/table/Table/fields/numberRange/Show/index.d.ts +0 -1
- package/lib/components/table/Table/fields/numberRange/index.d.ts +0 -1
- package/lib/components/table/Table/fields/oldRangePicker/index.d.ts +0 -1
- package/lib/components/table/Table/fields/pSwitch/Show/index.d.ts +0 -1
- package/lib/components/table/Table/fields/rangePicker/index.d.ts +0 -1
- package/lib/components/table/Table/fields/search/Show/index.d.ts +0 -1
- package/lib/components/table/Table/fields/search/index.d.ts +0 -1
- package/lib/components/table/Table/fields/select/filterUtil/index.d.ts +1 -1
- package/lib/components/table/Table/fields/select/index.d.ts +0 -1
- package/lib/components/table/Table/fields/text/Show/index.d.ts +0 -1
- package/lib/components/table/Table/fields/text/index.d.ts +0 -1
- package/lib/components/table/Table/fields/treeSelect/filterUtil/index.d.ts +1 -1
- package/lib/components/table/Table/fields/treeSelect/index.d.ts +0 -1
- package/lib/components/table/Table/tableConfig/SortRow/index.d.ts +0 -1
- package/lib/components/table/Table/tableConfig/summary/index.d.ts +0 -1
- package/lib/components/table/Table/utils.d.ts +1 -1
- package/lib/components/table/View/index.d.ts +0 -1
- package/lib/components/versionSelect/index.d.ts +0 -1
- package/lib/index.d.ts +8 -1
- package/lib/index.js +8 -0
- package/lib/locales/en-US.d.ts +2 -0
- package/lib/locales/en-US.js +2 -0
- package/lib/locales/ja.d.ts +2 -0
- package/lib/locales/ja.js +2 -0
- package/lib/locales/pt.d.ts +2 -0
- package/lib/locales/pt.js +2 -0
- package/lib/locales/zh-CN.d.ts +2 -0
- package/lib/locales/zh-CN.js +2 -0
- package/lib/locales/zh-TW.d.ts +2 -0
- package/lib/locales/zh-TW.js +2 -0
- package/lib/utils/index.d.ts +1 -1
- package/lib/utils/platform.d.ts +1 -1
- package/lowcode/pisell-record-board-calendar-view/meta.ts +1 -1
- package/package.json +2 -2
|
@@ -25,24 +25,7 @@ import { locales } from '@pisell/utils';
|
|
|
25
25
|
import pisellTimeNavigatorLocales from "./locales";
|
|
26
26
|
import "./PisellTimeNavigator.less";
|
|
27
27
|
import useEngineContext from "../../hooks/useEngineContext";
|
|
28
|
-
|
|
29
|
-
/** 横向每格宽度(px),Figma 约 82;axis-moves 固定用此值,cursor-moves 时按视口压缩以看全 range */
|
|
30
|
-
var CELL_SIZE_H = 82;
|
|
31
|
-
/**
|
|
32
|
-
* 横向「此刻」橙区目标宽度(px):按 axis-moves 下一格多的比例换算,滚动轴与 cursor-moves 压格时同宽;
|
|
33
|
-
* 不用压缩后的 cellSizePx,避免指针模式下渐变过窄。
|
|
34
|
-
*/
|
|
35
|
-
var CURRENT_TIME_GRADIENT_WIDTH_H_PX = Math.round(CELL_SIZE_H * 1.7);
|
|
36
|
-
/** 竖向每格高度(px) */
|
|
37
|
-
var CELL_SIZE_V = 20;
|
|
38
|
-
/** 横向「Now」按钮占位,避免刻度被挡 */
|
|
39
|
-
var CURSOR_MOVES_NOW_RESERVE_PX = 56;
|
|
40
|
-
/** cursor-moves 横向:轴与视口左右边距 */
|
|
41
|
-
var CURSOR_MOVES_H_PADDING_PX = 8;
|
|
42
|
-
/** cursor-moves 横向:每格最小宽度(再小刻度不可读) */
|
|
43
|
-
var CURSOR_MOVES_MIN_CELL_PX = 8;
|
|
44
|
-
/** 密度层高度:时间轴 48px 内留少量上下边距 */
|
|
45
|
-
var DENSITY_LAYER_HEIGHT = 46;
|
|
28
|
+
import { CELL_SIZE_H, CELL_SIZE_V, CURRENT_TIME_GRADIENT_WIDTH_H_PX, CURSOR_MOVES_H_PADDING_PX, CURSOR_MOVES_MIN_CELL_PX, CURSOR_MOVES_NOW_RESERVE_PX, DENSITY_LAYER_HEIGHT } from "./timeNavigatorConstants";
|
|
46
29
|
|
|
47
30
|
/**
|
|
48
31
|
* PisellTimeNavigator:可拖动的时间导航轴,时间范围内浏览、选择、控制
|
|
@@ -275,10 +258,75 @@ export function PisellTimeNavigator(props) {
|
|
|
275
258
|
|
|
276
259
|
/** cursor-moves:拖指针时禁止程序性滚动抢焦点 */
|
|
277
260
|
var cursorDragActiveRef = useRef(false);
|
|
261
|
+
/**
|
|
262
|
+
* 拖拽起点 + 缩放系数。
|
|
263
|
+
* `pxPerClient` 把 `clientX` 的屏幕 CSS 像素换算成轴内本地像素(offsetPx 的单位)。
|
|
264
|
+
* 没有变换时为 1;当祖先元素带有 `transform: scale(n)` 或浏览器在 iPad 等设备上对页面整体做了
|
|
265
|
+
* 视觉缩放时,`getBoundingClientRect().width / offsetWidth` 会反映出渲染缩放系数 n。
|
|
266
|
+
* 不做这层换算的话,手指走的屏幕距离会被原样累加到 offsetPx 上,但光标视觉位置经过 scale(n) 后
|
|
267
|
+
* 只走 n*delta,于是用户感知"拖了 10 小时但时间只走了 9 小时"(典型 9/10 ≈ 0.9 倍 scale)。
|
|
268
|
+
*/
|
|
278
269
|
var cursorDragBaseRef = useRef({
|
|
279
270
|
startClient: 0,
|
|
280
|
-
startOffset: 0
|
|
271
|
+
startOffset: 0,
|
|
272
|
+
pxPerClient: 1
|
|
281
273
|
});
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* 计算 viewportWrapRef 当前的渲染缩放系数(screenPx → 本地 px 倍率)。
|
|
277
|
+
* 若元素未挂载或宽度异常则返回 1,永不放大放小本意外的 delta。
|
|
278
|
+
*/
|
|
279
|
+
var measureWrapPxPerClient = useCallback(function () {
|
|
280
|
+
var el = viewportWrapRef.current;
|
|
281
|
+
if (!el) return 1;
|
|
282
|
+
var rect = el.getBoundingClientRect();
|
|
283
|
+
var layout = isHorizontal ? el.offsetWidth : el.offsetHeight;
|
|
284
|
+
var rendered = isHorizontal ? rect.width : rect.height;
|
|
285
|
+
if (!layout || !rendered) return 1;
|
|
286
|
+
var scale = rendered / layout;
|
|
287
|
+
if (!Number.isFinite(scale) || scale <= 0.01) return 1;
|
|
288
|
+
return 1 / scale;
|
|
289
|
+
}, [isHorizontal]);
|
|
290
|
+
/**
|
|
291
|
+
* 指针气泡放大反馈:仅 down/up/cancel 各触发一次重渲染(move 事件不参与),
|
|
292
|
+
* 拖拽过程中不会引起轴体重排。
|
|
293
|
+
*/
|
|
294
|
+
var _useState11 = useState(false),
|
|
295
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
296
|
+
isCursorDragging = _useState12[0],
|
|
297
|
+
setIsCursorDragging = _useState12[1];
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* 拖拽性能:受控模式下 onChange 会让父级(如 PisellReservation)整页重渲,
|
|
301
|
+
* 触控环境下尤其明显(手指仍按着但光标卡帧)。
|
|
302
|
+
*
|
|
303
|
+
* 解决策略 = 「视觉本地 + onChange 提交一次」:
|
|
304
|
+
* - 拖拽过程中只更新本地 dragVisualOffsetPx(轻量 state,仅本组件重渲),
|
|
305
|
+
* 光标和气泡跟着这个 offset 移动,跟手且廉价;
|
|
306
|
+
* - 不调用 onChange / setInternalValue,父级和兄弟组件完全不知道在拖;
|
|
307
|
+
* - 松手时清空本地 offset 并一次性 applyOffsetToNavigatorValue(_, true),
|
|
308
|
+
* 走 snap → onChange → 父级 setState 的正常路径。React 18 自动批处理,
|
|
309
|
+
* 父级 valueProp 更新与本地 dragVisualOffsetPx 清零会合并成一次 render,
|
|
310
|
+
* 不会出现「松手 → 旧值 → 新值」的回闪。
|
|
311
|
+
*
|
|
312
|
+
* 同帧多次 move 用 rAF 再折叠一层,应对高频鼠标 / 高刷设备。
|
|
313
|
+
*/
|
|
314
|
+
var _useState13 = useState(null),
|
|
315
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
316
|
+
dragVisualOffsetPx = _useState14[0],
|
|
317
|
+
setDragVisualOffsetPx = _useState14[1];
|
|
318
|
+
var pendingDragOffsetRef = useRef(null);
|
|
319
|
+
var dragRafIdRef = useRef(null);
|
|
320
|
+
var cancelPendingDragFrame = useCallback(function () {
|
|
321
|
+
if (dragRafIdRef.current != null) {
|
|
322
|
+
cancelAnimationFrame(dragRafIdRef.current);
|
|
323
|
+
dragRafIdRef.current = null;
|
|
324
|
+
}
|
|
325
|
+
pendingDragOffsetRef.current = null;
|
|
326
|
+
}, []);
|
|
327
|
+
useEffect(function () {
|
|
328
|
+
return cancelPendingDragFrame;
|
|
329
|
+
}, [cancelPendingDragFrame]);
|
|
282
330
|
var getScrollContainer = useCallback(function () {
|
|
283
331
|
var _scrollRef$current$ge, _scrollRef$current, _scrollRef$current$ge2;
|
|
284
332
|
return (_scrollRef$current$ge = (_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 || (_scrollRef$current$ge2 = _scrollRef$current.getScrollContainer) === null || _scrollRef$current$ge2 === void 0 ? void 0 : _scrollRef$current$ge2.call(_scrollRef$current)) !== null && _scrollRef$current$ge !== void 0 ? _scrollRef$current$ge : null;
|
|
@@ -448,6 +496,18 @@ export function PisellTimeNavigator(props) {
|
|
|
448
496
|
});
|
|
449
497
|
}, [referenceDayMs, isControlled, defaultValue]);
|
|
450
498
|
var cursorOffsetPx = axis.timeToOffset(effectiveValue);
|
|
499
|
+
|
|
500
|
+
/**
|
|
501
|
+
* 拖拽视觉态:当用户正在拖动时,dragVisualOffsetPx 记录最新本地 offset,
|
|
502
|
+
* 光标和拖拽气泡都用 visualCursorOffsetPx / visualValue,本组件自己消化高频更新;
|
|
503
|
+
* 父级直到松手才会通过 onChange 收到一次最终值(带 snap)。
|
|
504
|
+
*/
|
|
505
|
+
var visualCursorOffsetPx = dragVisualOffsetPx !== null && dragVisualOffsetPx !== void 0 ? dragVisualOffsetPx : cursorOffsetPx;
|
|
506
|
+
var visualValue = useMemo(function () {
|
|
507
|
+
var _axis$offsetToTimeCon;
|
|
508
|
+
if (dragVisualOffsetPx == null) return effectiveValue;
|
|
509
|
+
return (_axis$offsetToTimeCon = axis.offsetToTimeContinuous(dragVisualOffsetPx)) !== null && _axis$offsetToTimeCon !== void 0 ? _axis$offsetToTimeCon : effectiveValue;
|
|
510
|
+
}, [dragVisualOffsetPx, axis.offsetToTimeContinuous, effectiveValue]);
|
|
451
511
|
/** 刻度「现在线」:真实系统时刻落在轴区间内时绘制(含跨日营业次日凌晨) */
|
|
452
512
|
var wallAligned = dayjs().startOf('minute');
|
|
453
513
|
var currentTimeInRange = !wallAligned.isBefore(axis.rangeStart) && !wallAligned.isAfter(axis.rangeEnd);
|
|
@@ -563,32 +623,72 @@ export function PisellTimeNavigator(props) {
|
|
|
563
623
|
cursorDragActiveRef.current = true;
|
|
564
624
|
cursorDragBaseRef.current = {
|
|
565
625
|
startClient: isHorizontal ? e.clientX : e.clientY,
|
|
566
|
-
startOffset: cursorOffsetPx
|
|
626
|
+
startOffset: cursorOffsetPx,
|
|
627
|
+
pxPerClient: measureWrapPxPerClient()
|
|
567
628
|
};
|
|
568
629
|
valueUpdatedByScrollRef.current = true;
|
|
630
|
+
setIsCursorDragging(true);
|
|
569
631
|
e.currentTarget.setPointerCapture(e.pointerId);
|
|
570
|
-
}, [userInteractionLocked, isAxisMoves, isHorizontal, cursorOffsetPx, onUserInteraction]);
|
|
632
|
+
}, [userInteractionLocked, isAxisMoves, isHorizontal, cursorOffsetPx, onUserInteraction, measureWrapPxPerClient]);
|
|
571
633
|
var handleCursorDragPointerMove = useCallback(function (e) {
|
|
572
634
|
if (!cursorDragActiveRef.current) return;
|
|
573
635
|
var client = isHorizontal ? e.clientX : e.clientY;
|
|
574
|
-
var
|
|
636
|
+
var screenDelta = client - cursorDragBaseRef.current.startClient;
|
|
637
|
+
/**
|
|
638
|
+
* 把 clientX 的屏幕 CSS 像素 delta 折算成轴本地像素。
|
|
639
|
+
* 没有 CSS 缩放时 pxPerClient=1;祖先有 transform: scale(0.9) 等情况下,
|
|
640
|
+
* 1 屏幕 px 对应 1/0.9 ≈ 1.11 本地 px,否则 offsetPx 走得不够,
|
|
641
|
+
* 表现为"光标跟不上手指、时间轴比手指走得近"。
|
|
642
|
+
*/
|
|
643
|
+
var delta = screenDelta * (cursorDragBaseRef.current.pxPerClient || 1);
|
|
575
644
|
var nextOff = cursorDragBaseRef.current.startOffset + delta;
|
|
576
|
-
|
|
577
|
-
|
|
645
|
+
/**
|
|
646
|
+
* rAF 节流 + 仅更新本地视觉 offset:
|
|
647
|
+
* - 不调用 onChange,避免父级(reservation 主页 / 楼层图 / 排程带等)
|
|
648
|
+
* 每帧重渲,触控环境下尤其明显;
|
|
649
|
+
* - 只更新本地 dragVisualOffsetPx,光标 + 拖拽气泡通过它定位,
|
|
650
|
+
* 再叠加 rAF 把同帧多次 move 合并成一次 setState。
|
|
651
|
+
* 真正提交 onChange 只发生在 pointerUp。
|
|
652
|
+
*/
|
|
653
|
+
pendingDragOffsetRef.current = nextOff;
|
|
654
|
+
if (dragRafIdRef.current != null) return;
|
|
655
|
+
dragRafIdRef.current = requestAnimationFrame(function () {
|
|
656
|
+
dragRafIdRef.current = null;
|
|
657
|
+
var pending = pendingDragOffsetRef.current;
|
|
658
|
+
pendingDragOffsetRef.current = null;
|
|
659
|
+
if (pending == null) return;
|
|
660
|
+
if (!cursorDragActiveRef.current) return;
|
|
661
|
+
var maxO = Math.max(0, axis.totalLengthPx - 0.001);
|
|
662
|
+
var clamped = Math.max(0, Math.min(pending, maxO));
|
|
663
|
+
setDragVisualOffsetPx(clamped);
|
|
664
|
+
});
|
|
665
|
+
}, [isHorizontal, axis.totalLengthPx]);
|
|
578
666
|
var handleCursorDragPointerUp = useCallback(function (e) {
|
|
579
667
|
if (!cursorDragActiveRef.current) return;
|
|
580
668
|
cursorDragActiveRef.current = false;
|
|
669
|
+
setIsCursorDragging(false);
|
|
581
670
|
try {
|
|
582
671
|
e.currentTarget.releasePointerCapture(e.pointerId);
|
|
583
672
|
} catch (_unused) {
|
|
584
673
|
/* already released */
|
|
585
674
|
}
|
|
586
675
|
var client = isHorizontal ? e.clientX : e.clientY;
|
|
587
|
-
var
|
|
676
|
+
var screenDelta = client - cursorDragBaseRef.current.startClient;
|
|
677
|
+
var delta = screenDelta * (cursorDragBaseRef.current.pxPerClient || 1);
|
|
588
678
|
var nextOff = cursorDragBaseRef.current.startOffset + delta;
|
|
589
679
|
valueUpdatedByScrollRef.current = false;
|
|
680
|
+
/**
|
|
681
|
+
* 松手时:
|
|
682
|
+
* 1) 取消未消费的 rAF 帧(已被最终 offset 取代);
|
|
683
|
+
* 2) 清空本地视觉 offset 并 apply 最终值(snap=true)。
|
|
684
|
+
* React 18 自动批处理:setDragVisualOffsetPx(null) 与父级响应
|
|
685
|
+
* onChange 后回填的 valueProp 会合并成同一次渲染,不会出现
|
|
686
|
+
* 「松手 → 旧值 → 新值」的回闪。
|
|
687
|
+
*/
|
|
688
|
+
cancelPendingDragFrame();
|
|
689
|
+
setDragVisualOffsetPx(null);
|
|
590
690
|
applyOffsetToNavigatorValue(nextOff, true);
|
|
591
|
-
}, [isHorizontal, applyOffsetToNavigatorValue]);
|
|
691
|
+
}, [isHorizontal, applyOffsetToNavigatorValue, cancelPendingDragFrame]);
|
|
592
692
|
var businessHoursPx = useMemo(function () {
|
|
593
693
|
if (!businessHours) return undefined;
|
|
594
694
|
var _getRangeBounds5 = getRangeBounds(businessHours, referenceDate),
|
|
@@ -648,6 +748,7 @@ export function PisellTimeNavigator(props) {
|
|
|
648
748
|
cellSizePx: cellSizePx,
|
|
649
749
|
axisStartMarginPx: isHorizontal ? axisStartMarginW : axisStartMarginH,
|
|
650
750
|
offsetToTime: axis.offsetToTime,
|
|
751
|
+
offsetToTimeContinuous: axis.offsetToTimeContinuous,
|
|
651
752
|
onSelectTime: handleSelectTime,
|
|
652
753
|
isInDisabledRanges: isInDisabled,
|
|
653
754
|
snapToStep: snapToStep,
|
|
@@ -754,18 +855,27 @@ export function PisellTimeNavigator(props) {
|
|
|
754
855
|
"aria-hidden": true
|
|
755
856
|
}), !isAxisMoves && /*#__PURE__*/React.createElement(CursorLayer, {
|
|
756
857
|
orientation: orientation,
|
|
757
|
-
value:
|
|
858
|
+
value: visualValue,
|
|
758
859
|
timeFormat: timeFormat,
|
|
759
860
|
locale: locale,
|
|
760
861
|
isRealtime: realtime,
|
|
761
|
-
offsetPx:
|
|
862
|
+
offsetPx: visualCursorOffsetPx,
|
|
762
863
|
style: cursorStyle,
|
|
763
864
|
dragInteractive: !userInteractionLocked,
|
|
865
|
+
isDragging: isCursorDragging,
|
|
764
866
|
onDragPointerDown: handleCursorDragPointerDown,
|
|
765
867
|
onDragPointerMove: handleCursorDragPointerMove,
|
|
766
868
|
onDragPointerUp: handleCursorDragPointerUp,
|
|
767
869
|
onDragPointerCancel: handleCursorDragPointerUp
|
|
768
|
-
})))))), isAxisMoves && /*#__PURE__*/React.createElement("div", {
|
|
870
|
+
})))))), !isAxisMoves && isHorizontal && isCursorDragging && visualValue != null && /*#__PURE__*/React.createElement("div", {
|
|
871
|
+
className: "pisell-time-navigator-drag-bubble-overlay",
|
|
872
|
+
"aria-hidden": true
|
|
873
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
874
|
+
className: classNames('pisell-time-navigator-drag-bubble', realtime && 'pisell-time-navigator-drag-bubble--realtime'),
|
|
875
|
+
style: {
|
|
876
|
+
left: axisStartMarginW + visualCursorOffsetPx - scrollPosition.scrollLeft
|
|
877
|
+
}
|
|
878
|
+
}, locale ? visualValue.locale(locale).format(timeFormat) : visualValue.format(timeFormat))), isAxisMoves && /*#__PURE__*/React.createElement("div", {
|
|
769
879
|
className: classNames('pisell-time-navigator-cursor-fixed', "pisell-time-navigator-cursor-fixed--".concat(orientation)),
|
|
770
880
|
"aria-hidden": true
|
|
771
881
|
}, /*#__PURE__*/React.createElement(CursorLayer, {
|
|
@@ -167,7 +167,7 @@
|
|
|
167
167
|
z-index: 1;
|
|
168
168
|
|
|
169
169
|
&--horizontal {
|
|
170
|
-
height:
|
|
170
|
+
height: 48px;
|
|
171
171
|
align-items: center;
|
|
172
172
|
flex-direction: row;
|
|
173
173
|
}
|
|
@@ -193,21 +193,31 @@
|
|
|
193
193
|
padding: 2px 4px;
|
|
194
194
|
flex-direction: column;
|
|
195
195
|
gap: 0;
|
|
196
|
-
|
|
196
|
+
/**
|
|
197
|
+
* 设计调整:刻度点与时间数字整体靠下贴近底边(与上方 cursor 翻转后三角向下指刻度的视觉相呼应)。
|
|
198
|
+
* 整点:点贴底;label 用 absolute 抠到底部,不挤占 cell 内容流。
|
|
199
|
+
* 非整点:原本垂直居中的小点同样贴底,与整点点对齐成一条线。
|
|
200
|
+
*
|
|
201
|
+
* 父层 `.pisell-time-navigator-scale--horizontal` 用 `align-items: center` 把 cell 在
|
|
202
|
+
* 48px 高度内垂直居中,但 cell 自身只靠 padding 撑高 → cell 实际只有几像素,
|
|
203
|
+
* `bottom: 2px` 自然就贴在 cell 顶端附近(视觉上看像贴在轴的「中上」)。
|
|
204
|
+
* 这里显式 `align-self: stretch + height: 100%`,让 cell 占满 48px 全高,
|
|
205
|
+
* 再 absolute `bottom: 2px` 才会真正贴在轴的底边。
|
|
206
|
+
*/
|
|
207
|
+
align-self: stretch;
|
|
208
|
+
height: 100%;
|
|
197
209
|
|
|
198
210
|
.pisell-time-navigator-scale-dot {
|
|
199
211
|
position: absolute;
|
|
200
212
|
left: 50%;
|
|
201
|
-
bottom:
|
|
213
|
+
bottom: 14px;
|
|
202
214
|
transform: translateX(-50%);
|
|
203
215
|
}
|
|
204
216
|
|
|
205
|
-
/* 非整点仅有小点,垂直居中 */
|
|
206
|
-
|
|
207
217
|
&:not(.pisell-time-navigator-scale-cell--major) .pisell-time-navigator-scale-dot {
|
|
208
|
-
top:
|
|
209
|
-
bottom:
|
|
210
|
-
transform:
|
|
218
|
+
top: auto;
|
|
219
|
+
bottom: 14px;
|
|
220
|
+
transform: translateX(-50%);
|
|
211
221
|
}
|
|
212
222
|
}
|
|
213
223
|
|
|
@@ -241,7 +251,21 @@
|
|
|
241
251
|
}
|
|
242
252
|
|
|
243
253
|
.pisell-time-navigator-scale-cell--h .pisell-time-navigator-scale-label {
|
|
254
|
+
/**
|
|
255
|
+
* 整点小时数字与 dot 同基线整体上抬:
|
|
256
|
+
* - `bottom: 14px` 与 dot 对齐,整点格的「数字 + 圆点」继续叠在同一基线上,
|
|
257
|
+
* 非整点格只有 dot,也落在同一条线上,整条轴的刻度基线保持齐平;
|
|
258
|
+
* - `left: 0; right: 0; width: 100%` + `text-align: center`(基类)实现水平居中,
|
|
259
|
+
* 保证数字几何中心对齐 cell 中心,与上方 cursor 三角指向的位置一致;
|
|
260
|
+
* - 与压缩格宽下的小字号配合,line-height 仅 1.15(见 ScaleLayer 内联样式),
|
|
261
|
+
* 不会撑破 48px 的 scale 区高度。
|
|
262
|
+
*/
|
|
263
|
+
position: absolute;
|
|
264
|
+
left: 0;
|
|
265
|
+
right: 0;
|
|
266
|
+
bottom: 14px;
|
|
244
267
|
width: 100%;
|
|
268
|
+
line-height: 1;
|
|
245
269
|
}
|
|
246
270
|
|
|
247
271
|
.pisell-time-navigator-scale-cell--v .pisell-time-navigator-scale-label {
|
|
@@ -350,17 +374,31 @@
|
|
|
350
374
|
color: rgba(52, 64, 84, 0.55);
|
|
351
375
|
}
|
|
352
376
|
|
|
377
|
+
/**
|
|
378
|
+
* 横向 cursor 视觉翻转:原 path 三角朝上、长条向下,
|
|
379
|
+
* 新设计气泡置顶,对应三角朝下指刻度,长条向上承接气泡。
|
|
380
|
+
* 用 CSS scaleY(-1)(默认 transform-origin: center)整 SVG 翻转,避免改 path 数据。
|
|
381
|
+
*/
|
|
382
|
+
.pisell-time-navigator-cursor--horizontal .pisell-time-navigator-cursor-line--token {
|
|
383
|
+
transform: scaleY(-1);
|
|
384
|
+
}
|
|
385
|
+
|
|
353
386
|
.pisell-time-navigator-cursor--vertical .pisell-time-navigator-cursor-line {
|
|
354
387
|
width: 100%;
|
|
355
388
|
height: 2px;
|
|
356
389
|
min-width: 0;
|
|
357
390
|
}
|
|
358
391
|
|
|
359
|
-
|
|
392
|
+
/**
|
|
393
|
+
* 真实「此刻」气泡:与指针气泡保持一致贴顶,锚在轴内当前时刻,橙色底
|
|
394
|
+
* (与渐变/实时色一致)。`top: 0 !important` + `bottom: auto !important`
|
|
395
|
+
* 防止历史 `bottom: 2px` 默认样式或浏览器缓存把它拉回底部。
|
|
396
|
+
*/
|
|
360
397
|
.pisell-time-navigator-current-time-bubble {
|
|
361
398
|
position: absolute;
|
|
362
399
|
z-index: 1;
|
|
363
|
-
|
|
400
|
+
top: 0 !important;
|
|
401
|
+
bottom: auto !important;
|
|
364
402
|
left: 0;
|
|
365
403
|
transform: translateX(-50%);
|
|
366
404
|
padding: 2px 6px;
|
|
@@ -388,12 +426,87 @@
|
|
|
388
426
|
white-space: nowrap;
|
|
389
427
|
}
|
|
390
428
|
|
|
391
|
-
|
|
429
|
+
/**
|
|
430
|
+
* 横向:时间气泡贴近轴带顶边(与翻转后的指针三角朝下相对应,气泡浮在轴顶)。
|
|
431
|
+
* - `top: 0 !important` + `bottom: auto !important` 锁死贴顶,避免历史 `bottom: 2px`
|
|
432
|
+
* 默认布局、外层 `cursor-bubble` 基类、或浏览器缓存的旧规则把气泡拉回底部;
|
|
433
|
+
* - 不使用 `translate(-100%)` 把气泡推出轴外,因为外层 ScrollView 是 `overflow: x`,
|
|
434
|
+
* 超出顶/底的气泡会被裁掉,必须留在 cursor 容器(= axis 高度 48px)内;
|
|
435
|
+
* - `transform-origin: bottom center` 让 dragging 态 scale 放大时锚点贴向气泡底部,
|
|
436
|
+
* 视觉上像「按住后被举起」,而不会向上下均匀膨胀挤到刻度。
|
|
437
|
+
*/
|
|
392
438
|
.pisell-time-navigator-cursor--horizontal .pisell-time-navigator-cursor-bubble {
|
|
393
|
-
top:
|
|
394
|
-
bottom:
|
|
439
|
+
top: 0 !important;
|
|
440
|
+
bottom: auto !important;
|
|
395
441
|
margin-top: 0;
|
|
396
442
|
padding: 2px 6px;
|
|
443
|
+
transform-origin: bottom center;
|
|
444
|
+
transition: transform 140ms ease-out, box-shadow 140ms ease-out;
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
/**
|
|
448
|
+
* 拖拽时隐藏内嵌的小气泡:放大版气泡在 .pisell-time-navigator-drag-bubble-overlay
|
|
449
|
+
* 里独立渲染,可以自由突破 ScrollView 的 48px 上沿。这里若不隐藏,会出现两枚气泡
|
|
450
|
+
* 重叠(一枚被裁掉一截,一枚浮在上面)。
|
|
451
|
+
*/
|
|
452
|
+
.pisell-time-navigator-cursor--horizontal.pisell-time-navigator-cursor--dragging
|
|
453
|
+
.pisell-time-navigator-cursor-bubble {
|
|
454
|
+
visibility: hidden;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
/**
|
|
458
|
+
* 拖拽气泡溢出层:sibling of scroll-host,逃出 PisellScrollView 的裁剪。
|
|
459
|
+
* height: 0 + overflow: visible 让 overlay 自身不占布局空间,内部气泡通过
|
|
460
|
+
* 负 top 自由浮在时间轴上沿之上;z-index 高于 cursor 和刻度,确保始终可见。
|
|
461
|
+
*/
|
|
462
|
+
.pisell-time-navigator-drag-bubble-overlay {
|
|
463
|
+
position: absolute;
|
|
464
|
+
top: 0;
|
|
465
|
+
left: 0;
|
|
466
|
+
right: 0;
|
|
467
|
+
height: 0;
|
|
468
|
+
pointer-events: none;
|
|
469
|
+
overflow: visible;
|
|
470
|
+
z-index: 20;
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
/**
|
|
474
|
+
* 拖拽中的"放大气泡":比内嵌气泡明显更大,下沿落在时间轴顶边附近、上沿浮出去。
|
|
475
|
+
* - top: -10px 让气泡上半部分溢出 .pisell-time-navigator 的边界(对应"超过时间轴范围");
|
|
476
|
+
* - transform-origin: bottom center 配合 scale-in 动画让气泡像被"举起";
|
|
477
|
+
* - box-shadow 强化漂浮感,与平铺态形成层级对比。
|
|
478
|
+
*/
|
|
479
|
+
.pisell-time-navigator-drag-bubble {
|
|
480
|
+
position: absolute;
|
|
481
|
+
top: -10px;
|
|
482
|
+
transform: translateX(-50%);
|
|
483
|
+
padding: 6px 12px;
|
|
484
|
+
border-radius: 4px;
|
|
485
|
+
background: #344054;
|
|
486
|
+
color: #fff;
|
|
487
|
+
font-size: 14px;
|
|
488
|
+
font-weight: 600;
|
|
489
|
+
line-height: 16px;
|
|
490
|
+
white-space: nowrap;
|
|
491
|
+
box-shadow: 0 8px 24px rgba(16, 24, 40, 0.28),
|
|
492
|
+
0 2px 6px rgba(16, 24, 40, 0.16);
|
|
493
|
+
transform-origin: bottom center;
|
|
494
|
+
animation: pisell-time-navigator-drag-bubble-pop 140ms ease-out;
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
.pisell-time-navigator-drag-bubble--realtime {
|
|
498
|
+
background: #ff692e;
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
@keyframes pisell-time-navigator-drag-bubble-pop {
|
|
502
|
+
from {
|
|
503
|
+
transform: translateX(-50%) scale(0.85);
|
|
504
|
+
opacity: 0;
|
|
505
|
+
}
|
|
506
|
+
to {
|
|
507
|
+
transform: translateX(-50%) scale(1);
|
|
508
|
+
opacity: 1;
|
|
509
|
+
}
|
|
397
510
|
}
|
|
398
511
|
|
|
399
512
|
/* 竖向:气泡在横线(cursor-line)垂直方向居中 */
|
|
@@ -13,6 +13,8 @@ export interface CursorLayerProps {
|
|
|
13
13
|
className?: string;
|
|
14
14
|
/** cursor-moves:允许拖指针改时间 */
|
|
15
15
|
dragInteractive?: boolean;
|
|
16
|
+
/** 当前是否正处于拖拽(按下未抬起):用于驱动气泡放大反馈样式 */
|
|
17
|
+
isDragging?: boolean;
|
|
16
18
|
onDragPointerDown?: React.PointerEventHandler<HTMLDivElement>;
|
|
17
19
|
onDragPointerMove?: React.PointerEventHandler<HTMLDivElement>;
|
|
18
20
|
onDragPointerUp?: React.PointerEventHandler<HTMLDivElement>;
|
|
@@ -22,4 +24,4 @@ export interface CursorLayerProps {
|
|
|
22
24
|
* 时间指示器层:横向为「顶三角 + 竖长方条」SVG,竖向为横线 + 时间气泡
|
|
23
25
|
* 对齐基准为几何中心。Realtime 态 #FF692E,浏览态 #344054
|
|
24
26
|
*/
|
|
25
|
-
export declare function CursorLayer({ orientation, value, timeFormat, locale, isRealtime, offsetPx, fixedCenter, style, className, dragInteractive, onDragPointerDown, onDragPointerMove, onDragPointerUp, onDragPointerCancel, }: CursorLayerProps): JSX.Element | null;
|
|
27
|
+
export declare function CursorLayer({ orientation, value, timeFormat, locale, isRealtime, offsetPx, fixedCenter, style, className, dragInteractive, isDragging, onDragPointerDown, onDragPointerMove, onDragPointerUp, onDragPointerCancel, }: CursorLayerProps): JSX.Element | null;
|
|
@@ -28,6 +28,7 @@ export function CursorLayer(_ref) {
|
|
|
28
28
|
style = _ref.style,
|
|
29
29
|
className = _ref.className,
|
|
30
30
|
dragInteractive = _ref.dragInteractive,
|
|
31
|
+
isDragging = _ref.isDragging,
|
|
31
32
|
onDragPointerDown = _ref.onDragPointerDown,
|
|
32
33
|
onDragPointerMove = _ref.onDragPointerMove,
|
|
33
34
|
onDragPointerUp = _ref.onDragPointerUp,
|
|
@@ -53,6 +54,8 @@ export function CursorLayer(_ref) {
|
|
|
53
54
|
'pisell-time-navigator-cursor--fixed': fixedCenter
|
|
54
55
|
}, {
|
|
55
56
|
'pisell-time-navigator-cursor--draggable': dragInteractive
|
|
57
|
+
}, {
|
|
58
|
+
'pisell-time-navigator-cursor--dragging': isDragging
|
|
56
59
|
}, className),
|
|
57
60
|
style: positionStyle,
|
|
58
61
|
"aria-hidden": true,
|
|
@@ -5,7 +5,15 @@ export interface GestureLayerProps {
|
|
|
5
5
|
cellSizePx: number;
|
|
6
6
|
/** 轴在滚动内容中的起始边距(左/上),用于把「滚动内容坐标」转为「轴内偏移」(与 dot 对齐) */
|
|
7
7
|
axisStartMarginPx: number;
|
|
8
|
+
/**
|
|
9
|
+
* 偏移 → 整点对齐的「最近 tick」时间。`snapToStep=true` 时点击 / 方向键吸到 step 网格上用。
|
|
10
|
+
*/
|
|
8
11
|
offsetToTime: (offset: number) => Dayjs | null;
|
|
12
|
+
/**
|
|
13
|
+
* 偏移 → 连续时间(不吸附)。`snapToStep=false` 时点击与方向键都走这条,
|
|
14
|
+
* 让用户点哪儿就跳到哪一秒,不再被 stepMinutes 强行回弹。
|
|
15
|
+
*/
|
|
16
|
+
offsetToTimeContinuous: (offset: number) => Dayjs | null;
|
|
9
17
|
onSelectTime: (t: Dayjs) => void;
|
|
10
18
|
isInDisabledRanges: (t: Dayjs) => boolean;
|
|
11
19
|
snapToStep: boolean;
|
|
@@ -30,4 +38,4 @@ export interface GestureLayerProps {
|
|
|
30
38
|
/**
|
|
31
39
|
* 交互层:点击刻度跳转、键盘左右/上下 + 回车
|
|
32
40
|
*/
|
|
33
|
-
export declare function GestureLayer({ orientation, cellSizePx, axisStartMarginPx, offsetToTime, onSelectTime, isInDisabledRanges, snapToStep, stepMinutes, snapFn, scrollPosition, viewportSize, onPointerDown, onPointerMove, onPointerUp, onPointerLeave, onUserInteraction, children, }: GestureLayerProps): JSX.Element;
|
|
41
|
+
export declare function GestureLayer({ orientation, cellSizePx, axisStartMarginPx, offsetToTime, offsetToTimeContinuous, onSelectTime, isInDisabledRanges, snapToStep, stepMinutes, snapFn, scrollPosition, viewportSize, onPointerDown, onPointerMove, onPointerUp, onPointerLeave, onUserInteraction, children, }: GestureLayerProps): JSX.Element;
|
|
@@ -7,6 +7,7 @@ export function GestureLayer(_ref) {
|
|
|
7
7
|
cellSizePx = _ref.cellSizePx,
|
|
8
8
|
axisStartMarginPx = _ref.axisStartMarginPx,
|
|
9
9
|
offsetToTime = _ref.offsetToTime,
|
|
10
|
+
offsetToTimeContinuous = _ref.offsetToTimeContinuous,
|
|
10
11
|
onSelectTime = _ref.onSelectTime,
|
|
11
12
|
isInDisabledRanges = _ref.isInDisabledRanges,
|
|
12
13
|
snapToStep = _ref.snapToStep,
|
|
@@ -29,16 +30,22 @@ export function GestureLayer(_ref) {
|
|
|
29
30
|
var scroll = isHorizontal ? viewport.scrollLeft : viewport.scrollTop;
|
|
30
31
|
var scrollContentPos = isHorizontal ? scroll + (e.clientX - vRect.left) : scroll + (e.clientY - vRect.top);
|
|
31
32
|
var offset = Math.max(0, scrollContentPos - axisStartMarginPx);
|
|
32
|
-
|
|
33
|
+
/**
|
|
34
|
+
* snapToStep=false:点击直接跳到指针对应的连续时间,避免被 offsetToTime
|
|
35
|
+
* 内部的 Math.round 吸附到最近的 tick(会让点击在 6:50 落到 7:00 这种);
|
|
36
|
+
* snapToStep=true:维持原有「吸到最近 step 网格」语义。
|
|
37
|
+
*/
|
|
38
|
+
var t = snapToStep ? offsetToTime(offset) : offsetToTimeContinuous(offset);
|
|
33
39
|
if (t == null) return;
|
|
34
40
|
var candidate = snapToStep ? snapFn(t) : t;
|
|
35
41
|
if (isInDisabledRanges(candidate)) return;
|
|
36
42
|
onSelectTime(candidate);
|
|
37
|
-
}, [isHorizontal, axisStartMarginPx, offsetToTime, onSelectTime, isInDisabledRanges, snapToStep, snapFn, onUserInteraction]);
|
|
43
|
+
}, [isHorizontal, axisStartMarginPx, offsetToTime, offsetToTimeContinuous, onSelectTime, isInDisabledRanges, snapToStep, snapFn, onUserInteraction]);
|
|
38
44
|
var handleKeyDown = useCallback(function (e) {
|
|
39
45
|
var scrollContentCenter = orientation === 'horizontal' ? scrollPosition.scrollLeft + viewportSize.w / 2 : scrollPosition.scrollTop + viewportSize.h / 2;
|
|
40
46
|
var centerOffset = Math.max(0, scrollContentCenter - axisStartMarginPx);
|
|
41
|
-
|
|
47
|
+
// 方向键同样在 snapToStep=false 时走连续时间,否则键盘步进会被 round 吸回 tick
|
|
48
|
+
var currentTime = snapToStep ? offsetToTime(centerOffset) : offsetToTimeContinuous(centerOffset);
|
|
42
49
|
if (currentTime == null) return;
|
|
43
50
|
if (e.key === 'Enter') {
|
|
44
51
|
var candidate = snapToStep ? snapFn(currentTime) : currentTime;
|
|
@@ -62,7 +69,7 @@ export function GestureLayer(_ref) {
|
|
|
62
69
|
onUserInteraction === null || onUserInteraction === void 0 || onUserInteraction();
|
|
63
70
|
onSelectTime(snapped);
|
|
64
71
|
}
|
|
65
|
-
}, [orientation, axisStartMarginPx, offsetToTime, onSelectTime, isInDisabledRanges, snapToStep, snapFn, stepMinutes, scrollPosition.scrollLeft, scrollPosition.scrollTop, viewportSize.w, viewportSize.h, onUserInteraction]);
|
|
72
|
+
}, [orientation, axisStartMarginPx, offsetToTime, offsetToTimeContinuous, onSelectTime, isInDisabledRanges, snapToStep, snapFn, stepMinutes, scrollPosition.scrollLeft, scrollPosition.scrollTop, viewportSize.w, viewportSize.h, onUserInteraction]);
|
|
66
73
|
var handlePointerDown = useCallback(function (e) {
|
|
67
74
|
onUserInteraction === null || onUserInteraction === void 0 || onUserInteraction();
|
|
68
75
|
if (onPointerDown) {
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PisellTimeNavigator 布局与尺寸常量(与 Figma / 交互 spec 对齐)
|
|
3
|
+
*/
|
|
4
|
+
/** 横向每格宽度(px),Figma 约 82;axis-moves 固定用此值 */
|
|
5
|
+
export declare const CELL_SIZE_H = 82;
|
|
6
|
+
/**
|
|
7
|
+
* 横向「此刻」橙区目标宽度(px):按 axis-moves 下一格多的比例换算;
|
|
8
|
+
* 滚动轴与 cursor-moves 压格时同宽。
|
|
9
|
+
*/
|
|
10
|
+
export declare const CURRENT_TIME_GRADIENT_WIDTH_H_PX: number;
|
|
11
|
+
/** 竖向每格高度(px) */
|
|
12
|
+
export declare const CELL_SIZE_V = 20;
|
|
13
|
+
/** 横向「Now」按钮占位,避免刻度被挡 */
|
|
14
|
+
export declare const CURSOR_MOVES_NOW_RESERVE_PX = 56;
|
|
15
|
+
/** cursor-moves 横向:轴与视口左右边距 */
|
|
16
|
+
export declare const CURSOR_MOVES_H_PADDING_PX = 8;
|
|
17
|
+
/** cursor-moves 横向:每格最小宽度(再小刻度不可读) */
|
|
18
|
+
export declare const CURSOR_MOVES_MIN_CELL_PX = 8;
|
|
19
|
+
/** 密度层高度:时间轴 48px 内留少量上下边距 */
|
|
20
|
+
export declare const DENSITY_LAYER_HEIGHT = 46;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PisellTimeNavigator 布局与尺寸常量(与 Figma / 交互 spec 对齐)
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/** 横向每格宽度(px),Figma 约 82;axis-moves 固定用此值 */
|
|
6
|
+
export var CELL_SIZE_H = 82;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* 横向「此刻」橙区目标宽度(px):按 axis-moves 下一格多的比例换算;
|
|
10
|
+
* 滚动轴与 cursor-moves 压格时同宽。
|
|
11
|
+
*/
|
|
12
|
+
export var CURRENT_TIME_GRADIENT_WIDTH_H_PX = Math.round(CELL_SIZE_H * 1.7);
|
|
13
|
+
|
|
14
|
+
/** 竖向每格高度(px) */
|
|
15
|
+
export var CELL_SIZE_V = 20;
|
|
16
|
+
|
|
17
|
+
/** 横向「Now」按钮占位,避免刻度被挡 */
|
|
18
|
+
export var CURSOR_MOVES_NOW_RESERVE_PX = 56;
|
|
19
|
+
|
|
20
|
+
/** cursor-moves 横向:轴与视口左右边距 */
|
|
21
|
+
export var CURSOR_MOVES_H_PADDING_PX = 8;
|
|
22
|
+
|
|
23
|
+
/** cursor-moves 横向:每格最小宽度(再小刻度不可读) */
|
|
24
|
+
export var CURSOR_MOVES_MIN_CELL_PX = 8;
|
|
25
|
+
|
|
26
|
+
/** 密度层高度:时间轴 48px 内留少量上下边距 */
|
|
27
|
+
export var DENSITY_LAYER_HEIGHT = 46;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import './index.less';
|
|
3
2
|
declare const Time: ({ item, isShowHolder, onLike, isShowChangeResource, changeResource, changeHolder, isShowChangeHolder, holderMode, onAddHolder, isShowAddHolderButton, onClearHolder, onClearResource, }: any) => JSX.Element | null;
|
|
4
3
|
export default Time;
|