import { _objectSpread2 } from "../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectSpread2.js";
import { _objectWithoutProperties } from "../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectWithoutProperties.js";
import useEngineContext from "../../hooks/useEngineContext.js";
import { request } from "../../utils/index.js";
import useActions from "./hooks/useActions.js";
import { useSalesGridPhoneLayout } from "./hooks/useSalesGridPhoneLayout.js";
import { useReservationPhoneGridInfiniteData } from "../pisellReservation/hooks/useReservationPhoneGridInfiniteData.js";
import { defaultPaymentStatusKeys, resolveBookingMonitorColumnStorageKey } from "../pisellSalesManagement/config/booking.js";
import { getBookingList, getOrderList } from "./serve.js";
import { applySalesPhoneGridColumns, buildSalesPhoneGridScroll, buildSalesPhoneRowSelection, mergeSalesPhoneGridClassName } from "./mobileTable/applySalesPhoneGridColumns.js";
import dayjs from "dayjs";
import React, { useCallback, useEffect, useMemo, useState } from "react";
import { Select } from "antd";
import { PisellRecordBoard } from "@pisell/materials";
import classNames from "classnames";
import { useRequest } from "ahooks";
import "./PisellSalesGrid.less";
//#region src/plus/pisellSalesGrid/PisellSalesGrid.tsx
const _excluded = ["filter"], _excluded2 = ["filter"];
/**
* 根据 currentPerspective 从 perspectives 中取当前 Perspective 配置，未找到时回退到第一项或空配置。
*/
function getCurrentPerspectiveConfig(perspectives, currentPerspective) {
	const found = perspectives.find((p) => p.key === currentPerspective);
	if (found) return found;
	if (perspectives.length > 0) return perspectives[0];
}
function getDefaultSearchParams(currentPerspective) {
	if (currentPerspective === "monitor") return { filter: { values: {
		order_payment_status: defaultPaymentStatusKeys,
		booking_time_start_between: [dayjs().startOf("day"), dayjs().endOf("day")]
	} } };
	return {
		filter: { values: {
			payment_status: defaultPaymentStatusKeys,
			orderDate: [dayjs(), dayjs()]
		} },
		sort: "created_at:desc"
	};
}
const SEARCH_PARAMS_STORAGE_PREFIX = "pisell_sales_grid_search_params_";
/**
* 序列化 searchParams，将 dayjs 对象转换为 ISO 字符串
*/
function serializeSearchParams(params) {
	return JSON.stringify(params, (key, value) => {
		if (dayjs.isDayjs(value)) return {
			__isDayjs: true,
			value: value.toISOString()
		};
		return value;
	});
}
/**
* 反序列化 searchParams，将 ISO 字符串还原为 dayjs 对象
*/
function deserializeSearchParams(str) {
	return JSON.parse(str, (key, value) => {
		if (value && typeof value === "object" && value.__isDayjs) return dayjs(value.value);
		return value;
	});
}
/**
* 分页「每页条数」Select：禁用搜索输入，仅允许从下拉选项中选择。
* antd 5.10 内置 MiniSelect / MiddleSelect 默认 showSearch=true，会让用户在 Select 里键盘输入；
* 通过 selectComponentClass 覆盖为 showSearch=false 的 Select。
*
* 注意：showSearch={false} 写在 {...props} 之后，确保不会被外部覆盖；其余 prop（value/onChange/
* size/getPopupContainer/options 等）由 antd Pagination 透传，无需再手动透传。
*/
const PaginationSizeChangerSelect = React.forwardRef((props, ref) => /* @__PURE__ */ React.createElement(Select, _objectSpread2(_objectSpread2({}, props), {}, {
	ref,
	showSearch: false
})));
PaginationSizeChangerSelect.Option = Select.Option;
/** 默认的 SalesGrid 分页透传配置：去掉 Select 输入 + 给出明确的可选条数 */
const DEFAULT_PAGINATION_CONFIG = {
	selectComponentClass: PaginationSizeChangerSelect,
	showSizeChanger: true,
	pageSizeOptions: [
		"10",
		"20",
		"50",
		"100"
	]
};
/**
* 从 sessionStorage 获取存储的 searchParams。
* 默认不还原 filter（仅还原 sort、keyword 等），调用方需与 getDefaultSearchParams 合并以得到默认筛选项。
*/
function getStoredSearchParams(id) {
	try {
		const stored = sessionStorage.getItem(`${SEARCH_PARAMS_STORAGE_PREFIX}${id}`);
		if (stored) {
			const normalized = deserializeSearchParams(stored);
			if (normalized && typeof normalized === "object") {
				const _ref = normalized, { filter: _f } = _ref;
				return _objectWithoutProperties(_ref, _excluded);
			}
			return normalized;
		}
	} catch (e) {
		console.warn("Failed to get stored search params:", e);
	}
	return null;
}
/**
* 将 searchParams 存储到 sessionStorage。
* 默认只存排序、关键词等，不存 filter；列显示隐藏由 RecordBoard 侧单独持久化。
*/
function saveSearchParams(id, params) {
	try {
		let toStore;
		{
			const { filter: _f } = params;
			toStore = _objectWithoutProperties(params, _excluded2);
		}
		sessionStorage.setItem(`${SEARCH_PARAMS_STORAGE_PREFIX}${id}`, serializeSearchParams(toStore));
	} catch (e) {
		console.warn("Failed to save search params:", e);
	}
}
/**
* 将 columnRenderers 按列 type 合并进 grid.columns（同 type 覆盖原有 render）。
*/
function mergeColumnRenderersIntoGrid(gridConfig, columnRenderers) {
	if (!(columnRenderers === null || columnRenderers === void 0 ? void 0 : columnRenderers.length) || !Array.isArray(gridConfig.columns)) return gridConfig;
	const byType = new Map(columnRenderers.map((r) => [r.type, r.render]));
	return _objectSpread2(_objectSpread2({}, gridConfig), {}, { columns: gridConfig.columns.map((col) => {
		const t = col === null || col === void 0 ? void 0 : col.type;
		if (t != null && byType.has(t)) {
			const renderCell = byType.get(t);
			return _objectSpread2(_objectSpread2({}, col), {}, { render: (value, record, index) => renderCell(value, record, index) });
		}
		return col;
	}) });
}
const PisellSalesGrid = (props) => {
	var _context$appHelper, _getBookingList$data2, _getOrderList$data2, _getBookingList$data3, _getOrderList$data3, _currentConfig$childC5, _recordBoardGridProps, _recordBoardGridProps2, _currentConfig$childC6, _currentConfig$childC7, _currentConfig$childC8, _currentConfig$childC9;
	const { perspectives, currentPerspective, className, style, extParams, __id, data: propsData, loading: propsLoading, total: propsTotal, pagination: propsPagination, onPageChange: propsOnPageChange, searchParams: propsSearchParams, onSearch: propsOnSearch, onReset: propsOnReset, selectedKeys: propsSelectedKeys, selectedRows: propsSelectedRows, onSelectionChange: propsOnSelectionChange, rowKey: propsRowKey, onRefresh: propsOnRefresh, refreshAsync: propsRefreshAsync, columnRenderers, enableScanner } = props;
	const context = useEngineContext();
	const utils = (context === null || context === void 0 || (_context$appHelper = context.appHelper) === null || _context$appHelper === void 0 ? void 0 : _context$appHelper.utils) || {};
	request.setRequest(utils === null || utils === void 0 ? void 0 : utils.request);
	const isControlledData = propsData !== void 0;
	const [selectedKeys, setSelectedKeys] = useState([]);
	const [selectedRows, setSelectedRows] = useState([]);
	const [pagination, setPagination] = useState({
		pageNumber: 1,
		pageSize: 50
	});
	const [searchParams, setSearchParams] = useState(() => {
		const defaultParams = getDefaultSearchParams(currentPerspective);
		if (__id) {
			const stored = getStoredSearchParams(__id);
			if (stored) return _objectSpread2(_objectSpread2({}, defaultParams), stored);
		}
		return defaultParams;
	});
	const [pendingScanSearch, setPendingScanSearch] = useState(null);
	const onSelectionChange = useCallback((keys, rows) => {
		setSelectedKeys(keys);
		setSelectedRows(rows);
	}, []);
	const onPageChange = useCallback((pageNumber, pageSize) => {
		if (pageNumber < 1 || pageSize < 1) return;
		setPagination({
			pageNumber,
			pageSize
		});
	}, []);
	const onSearch = useCallback((params) => {
		setSearchParams(params || {});
		setPagination((prev) => _objectSpread2(_objectSpread2({}, prev), {}, { pageNumber: 1 }));
	}, []);
	const onReset = useCallback(() => {
		setSearchParams(getDefaultSearchParams(currentPerspective));
		setPagination((prev) => _objectSpread2(_objectSpread2({}, prev), {}, { pageNumber: 1 }));
	}, [currentPerspective]);
	useEffect(() => {
		if (__id) saveSearchParams(__id, searchParams);
	}, [__id, searchParams]);
	useEffect(() => {
		document.body.id = "body";
	}, []);
	const _getBookingList = useRequest(getBookingList, { manual: true });
	const _getOrderList = useRequest(getOrderList, { manual: true });
	const requestParams = useMemo(() => {
		const { keyword, filter, sort } = searchParams;
		const filterVals = (filter === null || filter === void 0 ? void 0 : filter.values) || {};
		return _objectSpread2(_objectSpread2({
			keyword,
			sort
		}, filterVals), {}, {
			skip: pagination.pageNumber,
			num: pagination.pageSize
		});
	}, [
		searchParams,
		pagination.pageNumber,
		pagination.pageSize
	]);
	const actions = useActions({
		onRefresh: useCallback((keys) => {
			if (propsOnRefresh) {
				propsOnRefresh(keys);
				return;
			}
			if (currentPerspective === "monitor") {
				_getBookingList.run(_objectSpread2(_objectSpread2({}, requestParams), (extParams === null || extParams === void 0 ? void 0 : extParams.list) || {}));
				return;
			}
			_getOrderList.run(_objectSpread2(_objectSpread2({}, requestParams), (extParams === null || extParams === void 0 ? void 0 : extParams.list) || {}));
		}, [
			currentPerspective,
			requestParams,
			_getBookingList,
			_getOrderList,
			propsOnRefresh
		]),
		onClearSelection: useCallback(() => {
			setSelectedKeys([]);
			setSelectedRows([]);
			propsOnSelectionChange === null || propsOnSelectionChange === void 0 || propsOnSelectionChange([], []);
		}, [propsOnSelectionChange])
	});
	const isPhoneLayout = useSalesGridPhoneLayout();
	const gridPagination = useMemo(() => isControlledData && propsPagination ? propsPagination : pagination, [
		isControlledData,
		propsPagination,
		pagination
	]);
	const gridSearchParams = useMemo(() => isControlledData && propsSearchParams !== void 0 ? propsSearchParams : searchParams, [
		isControlledData,
		propsSearchParams,
		searchParams
	]);
	const rawGridData = useMemo(() => {
		var _getBookingList$data, _getOrderList$data;
		if (isControlledData) return propsData !== null && propsData !== void 0 ? propsData : [];
		return currentPerspective === "monitor" ? ((_getBookingList$data = _getBookingList.data) === null || _getBookingList$data === void 0 ? void 0 : _getBookingList$data.list) || [] : ((_getOrderList$data = _getOrderList.data) === null || _getOrderList$data === void 0 ? void 0 : _getOrderList$data.list) || [];
	}, [
		isControlledData,
		propsData,
		currentPerspective,
		(_getBookingList$data2 = _getBookingList.data) === null || _getBookingList$data2 === void 0 ? void 0 : _getBookingList$data2.list,
		(_getOrderList$data2 = _getOrderList.data) === null || _getOrderList$data2 === void 0 ? void 0 : _getOrderList$data2.list
	]);
	const phoneGridInfiniteData = useReservationPhoneGridInfiniteData({
		enabled: isPhoneLayout,
		isInternalListData: true,
		rowKey: propsRowKey !== null && propsRowKey !== void 0 ? propsRowKey : "id",
		data: rawGridData,
		pagination: gridPagination,
		searchParams: gridSearchParams
	});
	const recordBoardListData = isPhoneLayout ? phoneGridInfiniteData : rawGridData;
	const isRecordBoardLoading = isControlledData ? propsLoading !== null && propsLoading !== void 0 ? propsLoading : false : currentPerspective === "monitor" ? _getBookingList.loading : _getOrderList.loading;
	const recordBoardTotal = isControlledData ? propsTotal : currentPerspective === "monitor" ? (_getBookingList$data3 = _getBookingList.data) === null || _getBookingList$data3 === void 0 ? void 0 : _getBookingList$data3.count : (_getOrderList$data3 = _getOrderList.data) === null || _getOrderList$data3 === void 0 ? void 0 : _getOrderList$data3.count;
	const batchActionConfig = useMemo(() => {
		return { actions };
	}, [actions]);
	useEffect(() => {
		if (isControlledData) return;
		if (currentPerspective === "monitor") _getBookingList.run(_objectSpread2(_objectSpread2({}, requestParams), (extParams === null || extParams === void 0 ? void 0 : extParams.list) || {}));
		else _getOrderList.run(_objectSpread2(_objectSpread2({}, requestParams), (extParams === null || extParams === void 0 ? void 0 : extParams.list) || {}));
	}, [
		isControlledData,
		currentPerspective,
		requestParams,
		extParams === null || extParams === void 0 ? void 0 : extParams.list,
		_getBookingList,
		_getOrderList
	]);
	/**
	* 运行时上下文：根据当前 perspective 绑定对应的 refresh / refreshAsync，
	* 传入 perspective 的 getChildComponentProps 工厂函数。
	* 受控数据时优先使用父组件传入的 onRefresh / refreshAsync。
	*/
	const runtimeContext = useMemo(() => {
		if (isControlledData && propsOnRefresh) return {
			refresh: propsOnRefresh,
			refreshAsync: propsRefreshAsync !== null && propsRefreshAsync !== void 0 ? propsRefreshAsync : (() => Promise.resolve()),
			currentPerspective
		};
		return {
			refresh: currentPerspective === "monitor" ? () => _getBookingList.run(_objectSpread2(_objectSpread2({}, requestParams), (extParams === null || extParams === void 0 ? void 0 : extParams.list) || {})) : () => _getOrderList.run(_objectSpread2(_objectSpread2({}, requestParams), (extParams === null || extParams === void 0 ? void 0 : extParams.list) || {})),
			refreshAsync: currentPerspective === "monitor" ? () => _getBookingList.runAsync(_objectSpread2(_objectSpread2({}, requestParams), (extParams === null || extParams === void 0 ? void 0 : extParams.list) || {})) : () => _getOrderList.runAsync(_objectSpread2(_objectSpread2({}, requestParams), (extParams === null || extParams === void 0 ? void 0 : extParams.list) || {})),
			currentPerspective
		};
	}, [
		isControlledData,
		propsOnRefresh,
		propsRefreshAsync,
		currentPerspective,
		_getBookingList,
		_getOrderList,
		requestParams,
		extParams
	]);
	/**
	* 解析当前 perspective 配置：
	* - 若 perspective 提供了 getChildComponentProps 工厂，调用它并注入 runtimeContext；
	* - 否则回退到静态 childComponentProps（向后兼容）。
	*/
	const currentConfig = useMemo(() => {
		const raw = getCurrentPerspectiveConfig(perspectives, currentPerspective);
		if (!raw) return void 0;
		if (typeof raw.getChildComponentProps === "function") return _objectSpread2(_objectSpread2({}, raw), {}, { childComponentProps: raw.getChildComponentProps(runtimeContext) });
		return raw;
	}, [
		perspectives,
		currentPerspective,
		runtimeContext
	]);
	const recordBoardGridProps = useMemo(() => {
		var _currentConfig$childC, _currentConfig$childC2;
		const gridConfig = mergeColumnRenderersIntoGrid((_currentConfig$childC = currentConfig === null || currentConfig === void 0 || (_currentConfig$childC2 = currentConfig.childComponentProps) === null || _currentConfig$childC2 === void 0 ? void 0 : _currentConfig$childC2.grid) !== null && _currentConfig$childC !== void 0 ? _currentConfig$childC : {}, columnRenderers);
		const scrollBase = gridConfig.scroll != null && typeof gridConfig.scroll === "object" ? _objectSpread2({}, gridConfig.scroll) : {};
		const keys = isControlledData && propsSelectedKeys !== void 0 ? propsSelectedKeys : selectedKeys;
		const rows = isControlledData && propsSelectedRows !== void 0 ? propsSelectedRows : selectedRows;
		const onSel = isControlledData && propsOnSelectionChange ? propsOnSelectionChange : onSelectionChange;
		const phoneGridOverrides = isPhoneLayout ? {
			size: "small",
			tableLayout: "fixed",
			infiniteScroll: true,
			scroll: buildSalesPhoneGridScroll(scrollBase),
			rowSelection: buildSalesPhoneRowSelection(gridConfig.rowSelection),
			className: mergeSalesPhoneGridClassName(typeof gridConfig.className === "string" ? gridConfig.className : void 0),
			columns: applySalesPhoneGridColumns(gridConfig.columns)
		} : {};
		return _objectSpread2(_objectSpread2(_objectSpread2({}, gridConfig), phoneGridOverrides), {}, {
			selectedKeys: keys,
			selectedRows: rows,
			onSelectionChange: onSel
		});
	}, [
		currentConfig,
		isControlledData,
		propsSelectedKeys,
		propsSelectedRows,
		propsOnSelectionChange,
		selectedKeys,
		selectedRows,
		onSelectionChange,
		columnRenderers,
		isPhoneLayout
	]);
	const mergedToolBar = useMemo(() => {
		var _currentConfig$childC3;
		const base = currentConfig === null || currentConfig === void 0 || (_currentConfig$childC3 = currentConfig.childComponentProps) === null || _currentConfig$childC3 === void 0 ? void 0 : _currentConfig$childC3.toolBar;
		const wrapSearchConfig = (searchConfig) => {
			if (searchConfig === false) return false;
			const searchProps = typeof searchConfig === "object" && searchConfig !== null ? searchConfig : {};
			const originalOnScan = typeof searchProps.onScan === "function" ? searchProps.onScan : void 0;
			const originalOnScannerData = typeof searchProps.onScannerData === "function" ? searchProps.onScannerData : void 0;
			/** 上层（如 PisellSalesManagement 基于 context.isActive）覆盖 enableScanner；显式 false 时上层关闭，否则尊重 search 配置原值 */
			const mergedEnableScanner = typeof enableScanner === "boolean" ? enableScanner : searchProps.enableScanner;
			return _objectSpread2(_objectSpread2({}, searchProps), {}, {
				enableScanner: mergedEnableScanner,
				onScan: (code) => {
					setPendingScanSearch({
						keyword: code,
						hasRequested: false
					});
					originalOnScan === null || originalOnScan === void 0 || originalOnScan(code);
				},
				onScannerData: (payload) => {
					const keyword = typeof (payload === null || payload === void 0 ? void 0 : payload.code) === "string" ? payload.code : "";
					if (keyword) setPendingScanSearch({
						keyword,
						hasRequested: false
					});
					originalOnScannerData === null || originalOnScannerData === void 0 || originalOnScannerData(payload);
				}
			});
		};
		if (!base) return { search: wrapSearchConfig(void 0) };
		if (!isPhoneLayout) return _objectSpread2(_objectSpread2({}, base), {}, { search: wrapSearchConfig(base.search) });
		const narrowClasses = classNames(typeof base.className === "string" ? base.className : void 0, "pisell-record-board-toolbar--narrow-stack", "pisell-sales-grid-mobile-toolbar");
		if (base.filter === false) return _objectSpread2(_objectSpread2({}, base), {}, {
			search: wrapSearchConfig(base.search),
			toolbarDensity: "compact-narrow",
			className: narrowClasses
		});
		const baseFilter = typeof base.filter === "object" && base.filter !== null ? base.filter : {};
		return _objectSpread2(_objectSpread2({}, base), {}, {
			search: wrapSearchConfig(base.search),
			toolbarDensity: "compact-narrow",
			filter: _objectSpread2(_objectSpread2({}, baseFilter), {}, { phoneLayout: true }),
			className: narrowClasses
		});
	}, [
		currentConfig,
		isPhoneLayout,
		enableScanner
	]);
	useEffect(() => {
		if (!pendingScanSearch) return;
		if (isRecordBoardLoading) {
			if (!pendingScanSearch.hasRequested) setPendingScanSearch(_objectSpread2(_objectSpread2({}, pendingScanSearch), {}, { hasRequested: true }));
			return;
		}
		if (!pendingScanSearch.hasRequested) return;
		if ((gridSearchParams === null || gridSearchParams === void 0 ? void 0 : gridSearchParams.keyword) !== pendingScanSearch.keyword) {
			setPendingScanSearch(null);
			return;
		}
		const list = Array.isArray(recordBoardListData) ? recordBoardListData : [];
		const total = typeof recordBoardTotal === "number" ? recordBoardTotal : list.length;
		if (list.length !== 1 || total !== 1) {
			setPendingScanSearch(null);
			return;
		}
		const onRow = recordBoardGridProps.onRow;
		if (typeof onRow !== "function") {
			setPendingScanSearch(null);
			return;
		}
		const rowHandlers = onRow(list[0], 0);
		if (typeof (rowHandlers === null || rowHandlers === void 0 ? void 0 : rowHandlers.onClick) === "function") rowHandlers.onClick({});
		setPendingScanSearch(null);
	}, [
		pendingScanSearch,
		isRecordBoardLoading,
		gridSearchParams === null || gridSearchParams === void 0 ? void 0 : gridSearchParams.keyword,
		recordBoardListData,
		recordBoardTotal,
		recordBoardGridProps
	]);
	/**
	* 分页透传配置：默认禁用每页条数 Select 的搜索输入；保留 perspective.childComponentProps.pagination 的可覆盖能力。
	*/
	const paginationConfig = useMemo(() => {
		var _currentConfig$childC4;
		return _objectSpread2(_objectSpread2({}, DEFAULT_PAGINATION_CONFIG), currentConfig === null || currentConfig === void 0 || (_currentConfig$childC4 = currentConfig.childComponentProps) === null || _currentConfig$childC4 === void 0 ? void 0 : _currentConfig$childC4.pagination);
	}, [currentConfig === null || currentConfig === void 0 || (_currentConfig$childC5 = currentConfig.childComponentProps) === null || _currentConfig$childC5 === void 0 ? void 0 : _currentConfig$childC5.pagination]);
	/** 预约 Monitor 列序变更时 bump 专用 key，避免沿用旧 `column_order`；订单视角仍用 `__id` */
	const recordBoardColumnStorageKey = useMemo(() => {
		if (currentPerspective === "monitor") {
			var _resolveBookingMonito;
			return (_resolveBookingMonito = resolveBookingMonitorColumnStorageKey(__id)) !== null && _resolveBookingMonito !== void 0 ? _resolveBookingMonito : __id;
		}
		return __id;
	}, [__id, currentPerspective]);
	return /* @__PURE__ */ React.createElement("div", {
		className: classNames("pisell-sales-grid", isPhoneLayout && "pisell-sales-grid--phone", className),
		style: _objectSpread2({
			height: "100%",
			minHeight: 0,
			display: "flex",
			flexDirection: "column"
		}, style)
	}, /* @__PURE__ */ React.createElement(PisellRecordBoard, {
		key: currentPerspective,
		__id,
		columnVisibilityStorageKey: recordBoardColumnStorageKey,
		layoutType: "grid",
		layoutVariant: isPhoneLayout ? "phone" : "default",
		rowKey: propsRowKey !== null && propsRowKey !== void 0 ? propsRowKey : "id",
		data: recordBoardListData,
		loading: isRecordBoardLoading,
		total: recordBoardTotal !== null && recordBoardTotal !== void 0 ? recordBoardTotal : 0,
		pagination: gridPagination,
		onPageChange: isControlledData && propsOnPageChange ? propsOnPageChange : onPageChange,
		searchParams: gridSearchParams,
		onSearch: isControlledData && propsOnSearch ? propsOnSearch : onSearch,
		onReset: isControlledData && propsOnReset ? propsOnReset : onReset,
		fillHeight: (_recordBoardGridProps = (_recordBoardGridProps2 = recordBoardGridProps.scroll) === null || _recordBoardGridProps2 === void 0 ? void 0 : _recordBoardGridProps2.autoCalc) !== null && _recordBoardGridProps !== void 0 ? _recordBoardGridProps : true,
		grid: recordBoardGridProps,
		toolBar: mergedToolBar,
		paginationConfig,
		search: currentConfig === null || currentConfig === void 0 || (_currentConfig$childC6 = currentConfig.childComponentProps) === null || _currentConfig$childC6 === void 0 ? void 0 : _currentConfig$childC6.search,
		batchActionBar: _objectSpread2(_objectSpread2({}, batchActionConfig), currentConfig === null || currentConfig === void 0 || (_currentConfig$childC7 = currentConfig.childComponentProps) === null || _currentConfig$childC7 === void 0 ? void 0 : _currentConfig$childC7.batchActionBar),
		floorMap: currentConfig === null || currentConfig === void 0 || (_currentConfig$childC8 = currentConfig.childComponentProps) === null || _currentConfig$childC8 === void 0 ? void 0 : _currentConfig$childC8.floorMap,
		defaultBodyView: currentConfig === null || currentConfig === void 0 || (_currentConfig$childC9 = currentConfig.childComponentProps) === null || _currentConfig$childC9 === void 0 ? void 0 : _currentConfig$childC9.defaultBodyView
	}, /* @__PURE__ */ React.createElement(PisellRecordBoard.ShellFrame, null, /* @__PURE__ */ React.createElement(PisellRecordBoard.GridLayout, null))));
};
PisellSalesGrid.displayName = "PisellSalesGrid";
//#endregion
export { PisellSalesGrid as default };
