/// import type { PisellCardPickerItem, PisellCardPickerCardMeta, PisellCardPickerMode, FloorMapResourcePickerSlotProps, TabbarDataSource } from '@pisell/materials'; import type { OptionItem } from '../../pro/Selector/types'; export declare type PisellProResourcePickerMode = PisellCardPickerMode; /** Selector 选项:附带原始 record / 卡片 meta,供 renderItem 使用 */ export interface ProResourcePickerOptionItem extends OptionItem { __record?: PisellCardPickerItem; __meta?: PisellCardPickerCardMeta; } export interface ProResourcePickerFilterBarContext { keyword: string; onKeywordChange: (keyword: string) => void; tabbarDataSource: TabbarDataSource[]; tabbarValue: Array; onTabbarValueChange: (value: Array) => void; } /** object 模式下确认回调透出的「条目 + 数量」结构(如 View All 每种图元的数量) */ export interface ProResourcePickerObjectConfirmItem { value: string; quantity: number; } /** * Pro 版资源选择 Modal Props(与 `FloorMapResourcePickerSlotProps` 一致), * `onConfirm` 在 object 模式下回传 `{value, quantity}[]`,其余模式回传 id 列表。 */ export interface PisellProResourcePickerModalProps extends Omit { /** * 确认回调: * - `selectorValueType === 'object'`:回传 `{value, quantity}[]`(带数量步进器场景)。 * - 其余情况(默认 'primitive'):回传选中的 id 列表(单选会回传 0 或 1 项)。 */ onConfirm: ((items: ProResourcePickerObjectConfirmItem[]) => void) | ((ids: string[]) => void); /** * 顶部筛选区插槽:用于注入 `PisellTabbarTemplate1`(位于 materials,但在业务侧来自私有物料的组合)。 * 未传时使用 `PisellFind`。 */ renderFilterBar?: (ctx: ProResourcePickerFilterBarContext) => React.ReactNode; /** Selector valueType;View all 需要 object 以启用数量选择器 */ selectorValueType?: 'primitive' | 'object'; /** Selector 是否显示数量选择器(默认 'auto') */ selectorShowStepper?: true | false | 'auto'; /** 构建每个 option 的 ruleConfig(View all 用 max=99 触发数量选择) */ getOptionRuleConfig?: (record: PisellCardPickerItem) => { min?: number; max?: number; } | undefined; /** * 容器平台:透传到 `CompensatedPisellContainer` 的 props.platform。 * - 'pc'(默认):居中 modal * - 'h5' / 'ipad':走 PisellModal 对应端的样式(手机为底部抽屉式弹层) */ platform?: 'pc' | 'h5' | 'ipad'; }