/**
 * 产品展示配置类型定义
 */

// 导入 SkuCard 的完整类型定义

/** 预设配置的字符串键 */

// 同 'product-select'

/** ProductSelect 布局配置 */

/** ProductSelect 列表设置 */

/** ProductSelect 模式配置 */

/** SkuCard 显示模式 */

/**
 * SkuCard 配置
 * 直接使用 ProductCardConfig 类型，保持类型同步
 *
 * @see packages/private-materials/src/plus/productSelect/ProductCard/SkuCard/type.ts ProductCardConfig
 */

/** List 布局类型 */

/** Tab 样式类型 */

/** List 组件配置 */

/** SkuList 模式配置 */

/** 展示模式类型 */

/**
 * 产品展示配置
 * 用于配置化控制产品展示的方式
 */

/**
 * 产品展示配置预设
 * 支持通过字符串键或直接使用配置对象
 */
export var ProductDisplayPresets = {
  // 默认配置
  default: {
    displayMode: 'product-select',
    productSelectConfig: {
      showSearch: true,
      showTab: true,
      layout: {
        grid: true,
        config: '12:12'
      },
      productListSetting: {
        isProductCover: 1,
        isTitle: 1,
        isSubtitle: 1,
        isPrice: 1,
        isOriginPrice: 0,
        isStock: 0
      }
    }
  },
  // 别名：product-select
  'product-select': {
    displayMode: 'product-select',
    productSelectConfig: {
      showSearch: true,
      showTab: true,
      layout: {
        grid: true,
        config: '12:12'
      },
      productListSetting: {
        isProductCover: 1,
        isTitle: 1,
        isSubtitle: 1,
        isPrice: 1,
        isOriginPrice: 0,
        isStock: 0
      }
    }
  },
  // SkuList A1
  'sku-list-a1': {
    displayMode: 'sku-list',
    skuListConfig: {
      listConfig: {
        layout: 'grid',
        showPagination: false,
        showTab: false
      },
      skuCardAllConfig: {
        skuCardConfig: {
          displayMode: 'display_a1',
          isFavorite: false,
          layoutDirection: 'column'
        }
      }
    }
  },
  // SkuList A2 - 详细信息卡片
  'sku-list-a2': {
    displayMode: 'sku-list',
    skuListConfig: {
      listConfig: {
        layout: 'grid',
        showPagination: false,
        showTab: false
      },
      skuCardAllConfig: {
        skuCardConfig: {
          displayMode: 'display_a2',
          layoutDirection: 'row',
          radius: 12,
          paddingX: 12,
          paddingY: 12,
          skuImageConfig: {
            isCover: true,
            width: '140px',
            height: '140px',
            radius: 8
          },
          skuNameConfig: {
            isOpen: true,
            fontSize: 16,
            fontWeight: 600,
            color: '#101828',
            ellipsisCount: 2
          },
          skuSubtitleConfig: {
            isOpen: true,
            fontSize: 14,
            color: '#667085',
            ellipsisCount: 1
          },
          skuPriceConfig: {
            isOpen: true,
            isPrice: true,
            priceFontSize: 18,
            priceFontWeight: 600,
            priceColor: '#101828',
            isOriginPrice: true,
            originPriceFontSize: 14,
            originPriceColor: '#98A2B3'
          },
          skuStockConfig: {
            isOpen: true,
            fontSize: 12,
            color: '#667085'
          }
        }
      }
    }
  },
  // SkuList A5
  'sku-list-a5': {
    displayMode: 'sku-list',
    skuListConfig: {
      listConfig: {
        layout: 'grid',
        showPagination: false,
        showTab: true,
        // 启用 Tab
        tabStyle: 'switch',
        // 使用 switch 模式
        stickyTop: true,
        // Tab 吸顶
        columns: 5,
        tabGroup: 'category'
      },
      skuCardAllConfig: {
        skuCardConfig: {
          displayMode: 'display_a5',
          layoutDirection: 'column',
          background: '#ffffff',
          paddingY: 8,
          paddingX: 8,
          marginY: 0,
          marginX: 0,
          radius: 12,
          isBorderVisible: false,
          borderWidth: 1,
          borderColor: '#ffffff',
          isFoldable: true
        },
        skuActionConfig: {
          isOpen: false
        },
        skuTextConfig: {
          skuSubtitleConfig: {
            isOpen: false
          },
          skuNameConfig: {
            isOpen: true
            // fontSize: 18,
            // fontWeight: 600,
            // color: '#101828',
            // ellipsisCount: 1,
          },
          skuPriceConfig: {
            isOpen: true,
            isPrice: true,
            priceFontSize: 18,
            priceFontWeight: 600,
            priceColor: '#101828',
            isShowZeroPrice: true,
            isShowFreePrice: false,
            isOriginPrice: true,
            originPriceFontSize: 16,
            originPriceFontWeight: 400,
            originPriceColor: '#667085',
            isTaxPrice: true,
            isCustomText: false
          }
        },
        skuImageConfig: {
          isCover: true,
          width: '100%',
          height: '126px',
          isTextFallback: true,
          background: '#ffffff',
          skuImageRadius: 12,
          slotPosition: 'left_top',
          radius: 12
        },
        skuExtraConfig: {
          isOpen: false
        }
      }
    }
  }
};

/**
 * 兼容性：保持原有的导出方式
 * @deprecated 建议使用 ProductDisplayPresets['product-select'] 或字符串键访问
 */
export var LegacyProductDisplayPresets = {
  /** @deprecated 使用 ProductDisplayPresets['product-select'] */
  DEFAULT_PRODUCT_SELECT: ProductDisplayPresets['product-select'],
  /** @deprecated 使用 ProductDisplayPresets['sku-list-a1'] */
  DEFAULT_SKU_LIST_A1: ProductDisplayPresets['sku-list-a1'],
  /** @deprecated 使用 ProductDisplayPresets['sku-list-a2'] */
  DEFAULT_SKU_LIST_A2: ProductDisplayPresets['sku-list-a2'],
  /** @deprecated 使用 ProductDisplayPresets['sku-list-a5'] */
  DEFAULT_SKU_LIST_A5: ProductDisplayPresets['sku-list-a5']
};

/**
 * 工具函数：将字符串键或配置对象解析为配置对象
 */
export function resolveProductDisplayConfig(config) {
  // 未传配置，使用默认
  if (!config) {
    return ProductDisplayPresets['default'];
  }

  // 如果是字符串，从预设中获取
  if (typeof config === 'string') {
    var preset = ProductDisplayPresets[config];
    if (!preset) {
      console.warn("Unknown preset key: \"".concat(config, "\", falling back to default"));
      return ProductDisplayPresets['default'];
    }
    return preset;
  }

  // 如果是对象，直接返回
  return config;
}