{"version":3,"file":"jLC7BWaR.js","sources":["../../../../components/shared/ProductMaterials.vue","../../../../node_modules/.c12/github_y_media_A8FrquQPxr/composables/useProduct.ts"],"sourcesContent":["\n\n\n","import {\n CatalogData, Material,\n MaterialCategory, ProductData, VariantData,\n} from \"ecom-types\";\n\ninterface ProductMaterialsWithCategories extends MaterialCategory {\n materials: Material[];\n}\n\nexport const useProduct = (\n product: CatalogData | ProductData | null,\n sizesSlugs: string[]\n) => {\n const localePath = useLocalePathPolyfill();\n const generalStore = useGeneralStore();\n\n\n const productInfo = ref(product);\n const configurationInfo = ref(null);\n const dynamicProductTitle = ref(\"\");\n\n const productTitle = computed(() => {\n return (\n dynamicProductTitle.value ||\n configurationInfo.value?.currentTranslation?.title ||\n (productInfo.value as CatalogData)?.variant_plp_image?.currentTranslation\n ?.title ||\n (productInfo.value as CatalogData)?.default_config?.currentTranslation\n ?.title ||\n productInfo.value?.currentTranslation?.title ||\n \"\"\n );\n });\n\n const productTitlePlp = computed(() => {\n return productInfo.value?.currentTranslation?.title || \"\";\n });\n\n const productDescription = computed(() => {\n return (\n configurationInfo.value?.currentTranslation?.description ||\n (productInfo.value as CatalogData)?.variant_plp_image?.currentTranslation\n ?.description ||\n (productInfo.value as CatalogData)?.default_config?.currentTranslation\n ?.description ||\n (productInfo.value as ProductData)?.currentTranslation\n ?.long_description ||\n \"\"\n );\n });\n\n const productMaterials = computed(() => {\n return productInfo.value?.material_categories_plp_hover_ids?.map((el) => {\n const materialCategory =(generalStore.bootstrap?.material_categories)?.find(\n (category) => category.id === el,\n );\n\n const materials = (productInfo.value?.materials as Material[]) || [];\n return {\n ...materialCategory,\n materials: materials.reduce((acc: Material[], material: Material) => {\n if (material.material_category_id === el) {\n acc.push({\n ...material,\n });\n }\n return acc;\n }, []),\n };\n }) as ProductMaterialsWithCategories[];\n });\n\n const productPrice = computed(() => {\n return (\n Number(\n configurationInfo.value?.cost ||\n (productInfo.value as CatalogData)?.variant_plp_image?.cost ||\n productInfo.value?.default_config?.cost ||\n productInfo.value?.min_cost ||\n productInfo.value?.cost ||\n 0,\n )\n );\n });\n\n\n const productStartAtPrice = computed(() => {\n return (\n Number(configurationInfo.value?.start_at_cost || 0) ||\n Number(\n (productInfo.value as CatalogData)?.variant_plp_image?.start_at_cost ||\n 0,\n ) ||\n Number(productInfo.value?.default_config?.start_at_cost || 0) ||\n Number(productInfo.value?.start_at_cost || 0) ||\n 0\n );\n });\n\n const configurationPrice = computed(() => {\n return Number(configurationInfo.value?.cost || 0);\n });\n\n const configurationStartAtPrice = computed(() => {\n return Number(configurationInfo.value?.start_at_cost || 0);\n });\n\n const productSKU = computed(() => {\n return (\n (productInfo.value as CatalogData)?.variant_plp_image?.sku ||\n productInfo.value?.default_config?.configuration_id ||\n productInfo.value?.default_sku\n );\n });\n\n const discountValue = computed(() => {\n if (\n !productInfo.value?.sale ||\n !productInfo.value?.sale_value ||\n !productPrice.value\n ) {\n return 0;\n }\n\n return Number(\n (\n productPrice.value -\n productPrice.value * (+productInfo.value.sale_value / 100)\n ).toFixed(2),\n );\n });\n\n const configurationDiscountValue = computed(() => {\n if (\n !productInfo.value?.sale ||\n !productInfo.value?.sale_value ||\n !configurationPrice.value\n ) {\n return 0;\n }\n\n return Number(\n (\n configurationPrice.value -\n configurationPrice.value * (+productInfo.value.sale_value / 100)\n ).toFixed(2),\n );\n });\n\n const productSizeDefaultQuery = computed(() => {\n const sizeDefaultQuery: { size?: string } = {};\n if (\n productInfo.value?.material_categories?.some((item) =>\n sizesSlugs.includes(item.slug),\n )\n ) {\n sizeDefaultQuery.size = \"default\";\n }\n return sizeDefaultQuery;\n })\n\n const productLink = computed(() => {\n return localePath({\n path: `/product/${productInfo.value?.slug}`,\n query: {\n configuration_id: productSKU.value,\n ...productSizeDefaultQuery.value,\n },\n });\n });\n\n const finalProductPriceValue = computed(() => {\n return discountValue.value || productPrice.value || 0;\n });\n\n const finalConfigurationPriceValue = computed(() => {\n return configurationDiscountValue.value || configurationPrice.value || 0;\n });\n\n const materialCategoriesDictionary = computed(() => {\n return (\n productInfo.value?.material_categories?.reduce(\n (acc, el) => {\n acc[el.sku] = el.slug;\n return acc;\n },\n {} as Record,\n ) || {}\n );\n });\n\n const isConfigurationOutOfStock = computed(() => {\n const configurationOutOfStock =\n configurationInfo.value?.track_inventory &&\n !configurationInfo.value?.stock_qty;\n return Boolean(\n configurationOutOfStock || !finalConfigurationPriceValue.value,\n );\n });\n\n const isConfigurationInventoryOutOfStockPlp = computed(() => {\n if ((productInfo.value as CatalogData)?.variant_plp_image) {\n return Boolean(\n !(productInfo.value as CatalogData)?.variant_plp_image?.stock_qty &&\n (productInfo.value as CatalogData)?.variant_plp_image\n ?.track_inventory,\n );\n } else if ((productInfo.value as CatalogData)?.default_config) {\n return Boolean(\n !(productInfo.value as CatalogData)?.default_config?.stock_qty &&\n (productInfo.value as CatalogData)?.default_config?.track_inventory,\n );\n } else {\n return false;\n }\n });\n\n const isConfigurationOutOfStockPlp = computed(() => {\n return !productPrice.value || isConfigurationInventoryOutOfStockPlp.value;\n })\n\n return {\n productMaterials,\n productLink,\n productPrice,\n productSKU,\n productTitle,\n productDescription,\n productInfo,\n configurationInfo,\n discountValue,\n finalProductPriceValue,\n materialCategoriesDictionary,\n dynamicProductTitle,\n productTitlePlp,\n configurationPrice,\n configurationDiscountValue,\n finalConfigurationPriceValue,\n productSizeDefaultQuery,\n productStartAtPrice,\n configurationStartAtPrice,\n isConfigurationOutOfStock,\n isConfigurationInventoryOutOfStockPlp,\n isConfigurationOutOfStockPlp\n };\n};\n"],"names":["props","__props","currentMaterial","computed","_a","el","_c","_b","i","useProduct","product","sizesSlugs","localePath","useLocalePathPolyfill","generalStore","useGeneralStore","productInfo","ref","configurationInfo","dynamicProductTitle","productTitle","_e","_d","_h","_g","_f","_j","_i","productTitlePlp","productDescription","productMaterials","materialCategory","category","materials","acc","material","productPrice","productStartAtPrice","configurationPrice","configurationStartAtPrice","productSKU","discountValue","configurationDiscountValue","productSizeDefaultQuery","sizeDefaultQuery","item","productLink","finalProductPriceValue","finalConfigurationPriceValue","materialCategoriesDictionary","isConfigurationOutOfStock","isConfigurationInventoryOutOfStockPlp","isConfigurationOutOfStockPlp"],"mappings":"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","x_google_ignoreList":[1]}