//#region src/components/pisellRecordBoard/shellFrame/Calendar/const/bookingCalendarConstants.ts
/** 未传 timelineRange 时默认营业日界钟 */
const DEFAULT_CALENDAR_TIMELINE = {
	start: "02:00",
	end: "02:00"
};
/**
* 日/周视图空档虚线框：在父级为 column flex 且占满格高时 `flex-1 min-h-0` 纵向铺满剩余区域。
*/
const CALENDAR_EMPTY_DASHED_SLOT_CLASSNAME = "flex min-h-0 flex-1 w-full flex-col items-center justify-center rounded-lg border border-dashed px-2 py-1 text-xs";
/**
* 日视图：某 court 行在「有预约 overlay」时的总高度（px），随并行展示条数 `displayLaneCount` 变高而变高（非固定常数）。
* `displayLaneCount` 由 `effectiveDayOverlayDisplayLaneCount(最大并行数)` 得到，与 3+N 截断规则一致。
*/
function dayCourtOverlayRowHeightPx(displayLaneCount) {
	const n = Math.max(1, displayLaneCount);
	return 16 + n * 64 + (n - 1) * 2;
}
/**
* 资源视图：按某一格「courtDaySummary」结果估算该格所需最小高度（px）。
* 用于横向虚拟化仅挂载可见日期列时，仍按**全月**最大内容撑开行高，避免日程只在屏幕外列时出现行高塌陷。
*/
function estimateResourceViewCourtCellHeightPx(summary) {
	var _summary$items$length, _summary$items;
	const pad = 8;
	if (summary.fullyBooked) return 28 + pad;
	const n = (_summary$items$length = (_summary$items = summary.items) === null || _summary$items === void 0 ? void 0 : _summary$items.length) !== null && _summary$items$length !== void 0 ? _summary$items$length : 0;
	if (n === 0) return 44;
	const previewCount = Math.min(3, n);
	const showMoreTile = Math.max(0, n - 3) > 0 && previewCount > 0;
	const gap = 4;
	let content = previewCount * 48 + (previewCount > 1 ? (previewCount - 1) * gap : 0);
	if (showMoreTile) content += gap + 48;
	return pad + content;
}
const MONTH_OVERFLOW_POPOVER_ITEM_H = 72;
const OVERFLOW_MODAL_ROW_H = 108;
//#endregion
exports.CALENDAR_EMPTY_DASHED_SLOT_CLASSNAME = CALENDAR_EMPTY_DASHED_SLOT_CLASSNAME;
exports.DEFAULT_CALENDAR_TIMELINE = DEFAULT_CALENDAR_TIMELINE;
exports.MONTH_OVERFLOW_POPOVER_ITEM_H = MONTH_OVERFLOW_POPOVER_ITEM_H;
exports.OVERFLOW_MODAL_ROW_H = OVERFLOW_MODAL_ROW_H;
exports.dayCourtOverlayRowHeightPx = dayCourtOverlayRowHeightPx;
exports.estimateResourceViewCourtCellHeightPx = estimateResourceViewCourtCellHeightPx;
