import { getStatic } from '@/utils'; /** The type of product card list layout */ export enum LKS_PRODUCT_CARD_MODULE_LAYOUT { VERTICAL = 'VERTICAL', HORIZONTAL = 'HORIZONTAL', } export const LKSProductCardModuleLayoutOptions = [ { value: LKS_PRODUCT_CARD_MODULE_LAYOUT.VERTICAL, label: 'Vertical Display', tips: , }, { value: LKS_PRODUCT_CARD_MODULE_LAYOUT.HORIZONTAL, label: 'Horizontal Display', tips: , }, ]; /** The type of individual product card layout */ export enum LKS_PRODUCT_CARD_CARD_LAYOUT { UP_DOWN = 'UP_DOWN', LEFT_RIGHT = 'LEFT_RIGHT', } export const LKSProductCardLayoutOptions = [ { value: LKS_PRODUCT_CARD_CARD_LAYOUT.UP_DOWN, label: 'Up & Down', tips: , }, { value: LKS_PRODUCT_CARD_CARD_LAYOUT.LEFT_RIGHT, label: 'Left & Right', tips: , }, ]; /** Product card image size */ export enum LKS_PRODUCT_CARD_PICTURE_SIZE { SMALL = 'Small', MEDIUM = 'Medium', LARGE = 'Large', } /** Product card image size mapping */ export const LKSProductCardPictureSizeMap: Record< LKS_PRODUCT_CARD_PICTURE_SIZE, [number, number] > = { [LKS_PRODUCT_CARD_PICTURE_SIZE.SMALL]: [180, 240], [LKS_PRODUCT_CARD_PICTURE_SIZE.MEDIUM]: [300, 400], [LKS_PRODUCT_CARD_PICTURE_SIZE.LARGE]: [600, 800], }; export const LKSProductCardPictureSizeOptions = [ LKS_PRODUCT_CARD_PICTURE_SIZE.SMALL, LKS_PRODUCT_CARD_PICTURE_SIZE.MEDIUM, LKS_PRODUCT_CARD_PICTURE_SIZE.LARGE, ].map(size => ({ label: `${size}(${LKSProductCardPictureSizeMap[size].join('*')})`, value: size, })); /** The information that can be displayed on the product card */ export enum LKS_PRODUCT_CARD_INFO_TYPE { BRAND = 'BRAND', CATEGORY = 'CATEGORY', PRODUCT_NAME = 'PRODUCT_NAME', DISCOUNT_PRICE = 'DISCOUNT_PRICE', ORIGINAL_PRICE = 'ORIGINAL_PRICE', } export const LKSProductCardInfoTypeList = [ LKS_PRODUCT_CARD_INFO_TYPE.BRAND, LKS_PRODUCT_CARD_INFO_TYPE.CATEGORY, LKS_PRODUCT_CARD_INFO_TYPE.PRODUCT_NAME, LKS_PRODUCT_CARD_INFO_TYPE.DISCOUNT_PRICE, LKS_PRODUCT_CARD_INFO_TYPE.ORIGINAL_PRICE, ]; export const LKSProductCardInfoTypeTextMap: Record< LKS_PRODUCT_CARD_INFO_TYPE, string > = { [LKS_PRODUCT_CARD_INFO_TYPE.BRAND]: 'Brand', [LKS_PRODUCT_CARD_INFO_TYPE.CATEGORY]: 'Category', [LKS_PRODUCT_CARD_INFO_TYPE.PRODUCT_NAME]: 'Product Name', [LKS_PRODUCT_CARD_INFO_TYPE.DISCOUNT_PRICE]: 'Discount Price', [LKS_PRODUCT_CARD_INFO_TYPE.ORIGINAL_PRICE]: 'Original Price', }; export type InfoDisplayType = 'HOVER' | 'COMMON'; /** A mapping of the information that can be displayed when the product card is UP_DOWN the layout */ export const LKSProductCardUpDownInfoDisplayMap: Record< LKS_PRODUCT_CARD_PICTURE_SIZE, [InfoDisplayType, ...LKS_PRODUCT_CARD_INFO_TYPE[]] > = { [LKS_PRODUCT_CARD_PICTURE_SIZE.SMALL]: [ 'COMMON', LKS_PRODUCT_CARD_INFO_TYPE.PRODUCT_NAME, LKS_PRODUCT_CARD_INFO_TYPE.DISCOUNT_PRICE, LKS_PRODUCT_CARD_INFO_TYPE.ORIGINAL_PRICE, ], [LKS_PRODUCT_CARD_PICTURE_SIZE.MEDIUM]: [ 'COMMON', LKS_PRODUCT_CARD_INFO_TYPE.BRAND, LKS_PRODUCT_CARD_INFO_TYPE.PRODUCT_NAME, LKS_PRODUCT_CARD_INFO_TYPE.DISCOUNT_PRICE, LKS_PRODUCT_CARD_INFO_TYPE.ORIGINAL_PRICE, ], [LKS_PRODUCT_CARD_PICTURE_SIZE.LARGE]: [ 'HOVER', LKS_PRODUCT_CARD_INFO_TYPE.BRAND, LKS_PRODUCT_CARD_INFO_TYPE.CATEGORY, LKS_PRODUCT_CARD_INFO_TYPE.PRODUCT_NAME, LKS_PRODUCT_CARD_INFO_TYPE.DISCOUNT_PRICE, LKS_PRODUCT_CARD_INFO_TYPE.ORIGINAL_PRICE, ], };