/** * 非 comfortable 极简态:独立 DOM(`.rc-tooltip-time-root`),不使用 `.rc-body` / `.rc-progress`。 * 时间用 antd `Tooltip` 的 `title` 挂在桌名上,`open` 常驻以保持原先「始终可见」的小卡信息密度。 */ import React from 'react'; import type { FloorRoomCardBooking, FloorRoomCardData } from '../floorRoomCardModel'; import type { RoomCardStandardBodyType } from '../buildCardBodyViewModel'; /** * 在标题尾部按 `(N/M)` 形态拼接订单计数: * - 仅在 `bookingCount > 0` 时拼; * - N = `completeBookingCount ?? 0`(缺失按 0 渲染,与 RoomCardHeaderView 行为一致); * - M = `bookingCount`。 * 拼到 base 字符串末尾。同源策略复用于多处资源标题: * - 小卡 tooltip 标题(`--overflow` 修饰允许越出卡片宽度显示); * - 预约详情 Modal 标题(`ReservationBookingDetailModal`)。 * * 入参用结构化 `BookingCountSource` 而非具体 `FloorRoomCardData`,让不同上游 * (平面图卡片数据 / 表格行 `PisellReservationTableRow` 等)都能直接复用, * 避免在多处重复实现导致格式漂移。 */ export declare type BookingCountSource = { bookingCount?: number; completeBookingCount?: number; }; export declare function appendBookingCountSuffix(baseTitle: string, source: BookingCountSource): string; export declare function RoomCardTooltipTimeLayout(props: { data: FloorRoomCardData; booking: FloorRoomCardBooking; cardType: RoomCardStandardBodyType; shellShape?: 'rect' | 'circle'; /** 外缘进度(壳层)启用时,隐藏小卡内部线性进度条以避免重复 */ hideInnerLinearProgress?: boolean; headerMainFieldOverride?: string; scrollSurfaceHandlers?: Pick, 'onTouchStart' | 'onTouchMove' | 'onTouchEnd' | 'onWheel'>; }): React.JSX.Element; /** * 空态小卡(方桌 / 圆桌共用):只有桌名、无时间。 * * 与 {@link RoomCardTooltipTimeLayout} 共用 `rc-tooltip-time-*` DOM 结构,但额外加 * `--title-only` 修饰类:让 `.rc-tooltip-time-title` 取消 ellipsis 裁切,并允许文本 * 以 anchor 中心为参考向左右**溢出**卡片宽度(卡内仍以居中点为锚,不挤占周围卡片排版)。 * * 该卡片祖先链上的 `data-tooltip-time='on'` 已把 `pisell-res-floor-room-card`、 * `__viewport-compensate`、`.rc--tooltip-time`、`.rc-tooltip-time-main` 等全部设为 * `overflow: visible`,因此 title 文本可直接突破小卡边框显示。 */ export declare function RoomCardTooltipTitleOnlyLayout(props: { data: FloorRoomCardData; headerMainFieldOverride?: string; scrollSurfaceHandlers?: Pick, 'onTouchStart' | 'onTouchMove' | 'onTouchEnd' | 'onWheel'>; }): React.JSX.Element;