{"version":3,"file":"order-calculator-b36bc3c7.js","sources":["../../../client/src/javascripts/customer_pages/_utils/_order-data/order-calculator.js"],"sourcesContent":["const HOME_DELIVERY_OPTIONS = [\n 'POST',\n 'COURIER',\n 'POST_EXPRESS',\n 'COURIER_EXPRESS',\n];\n\nexport default {\n somePrints(prints) {\n return prints && !!prints.quantity;\n },\n\n somePrismItems(prismItems) {\n return prismItems && !!prismItems.length;\n },\n\n totalQuantity({ prints, prismItems }) {\n const printsQuantity = this.alivePrintSizes(prints).reduce((memo, size) => {\n return memo + size.quantity;\n }, 0);\n\n return this.alivePrismItems(prismItems).reduce(\n (memo, prismItem) => memo + prismItem.quantity,\n printsQuantity || 0\n );\n },\n\n lineItemCount({ prints, prismItems }) {\n return (\n (this.alivePrints(prints) ? 1 : 0) +\n this.alivePrismItems(prismItems).length\n );\n },\n\n totalVouchers({ vouchers }) {\n return (vouchers || []).reduce((memo, voucher) => {\n return memo + voucher.discount_amount;\n }, 0);\n },\n\n shippingCost({ prints, prismItems }) {\n let total = 0;\n\n const deliveryOption =\n this.somePrints(prints) &&\n (prints.delivery_options || []).find(d => d.key == prints.delivery);\n if (deliveryOption && deliveryOption.cost) {\n total += deliveryOption.cost;\n }\n\n for (let item of this.alivePrismItems(prismItems)) {\n if (item.delivery && item.delivery.cost) {\n total += item.delivery.cost;\n }\n }\n\n return total;\n },\n\n subtotalPrice({ prints, prismItems }) {\n const printsPrice = this.alivePrintSizes(prints).reduce((memo, size) => {\n return memo + size.total_price;\n }, 0);\n\n return this.alivePrismItems(prismItems).reduce(\n (memo, prismItem) => memo + prismItem.cost,\n printsPrice || 0\n );\n },\n\n totalPrice({ prints, prismItems, vouchers }) {\n return Math.max(\n 0,\n this.subtotalPrice({ prints, prismItems }) -\n this.totalVouchers({ vouchers })\n );\n },\n\n homeDeliveryItemsPrice({ prints, prismItems }) {\n const itemsWithDelivery = [\n this.alivePrintSizesWithDelivery(prints),\n ...this.alivePrismItems(prismItems),\n ].filter(Boolean);\n\n return itemsWithDelivery.reduce((sum, item) => {\n const deliveryOption = (item.delivery_options || []).find(\n (option) => option.key === item.delivery,\n );\n\n if (\n deliveryOption &&\n HOME_DELIVERY_OPTIONS.includes(deliveryOption.type)\n ) {\n return sum + (item.total_price || item.cost);\n }\n return sum;\n }, 0);\n },\n\n alivePrintSizesWithDelivery(prints) {\n const aliveSizes = this.alivePrintSizes(prints);\n\n if (!aliveSizes.length) return null;\n\n const totalPrice = aliveSizes.reduce((memo, size) => memo + size.total_price, 0);\n\n return {\n total_price: totalPrice,\n delivery: prints.delivery,\n delivery_options: prints.delivery_options,\n };\n },\n\n alivePrints(prints) {\n return this.somePrints(prints) && !!this.alivePrintSizes(prints).length\n ? prints\n : null;\n },\n\n alivePrintSizes(prints) {\n if (!this.somePrints(prints)) {\n return [];\n }\n\n return prints.sizes.filter(\n size =>\n !size.deleted &&\n !(prints.deletedFinishes || []).includes(size.print_finish_key)\n );\n },\n\n alivePrismItems(prismItems) {\n return (prismItems || []).filter(prismItem => !prismItem.deleted);\n },\n};\n"],"names":["HOME_DELIVERY_OPTIONS","OrderCalculator","prints","prismItems","printsQuantity","memo","size","prismItem","vouchers","voucher","total","deliveryOption","d","item","printsPrice","sum","option","aliveSizes"],"mappings":"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"}