{"version":3,"file":"prices-table-af8c1dd1.js","sources":["../../../node_modules/lodash/flattenDeep.js","../../../client/src/javascripts/customer_pages/_grouped-category/prices-table.jsx"],"sourcesContent":["var baseFlatten = require('./_baseFlatten');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\nfunction flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n}\n\nmodule.exports = flattenDeep;\n","import createReactClass from 'create-react-class';\n'use strict';\n\n// Import Libraries\nimport React from 'react';\nimport flattenDeep from 'lodash/flattenDeep';\n// Import JS Modules\nimport Currency from '../_utils/tools/currency';\nimport translate from '../_utils/tools/translate';\nimport classNames from 'classnames';\nimport QuantityPricingTools from './quantity-pricing-tools';\n\n// -----------------------------------------------------------\n// PricesTable\n// -----------------------------------------------------------\nconst PricesTable = createReactClass({\n shouldComponentUpdate(nextProps, nextState) {\n return false;\n },\n\n render() {\n const groupedDeliveryOptions = this.groupedDeliveryOptions(),\n allDeliveryOptions = this.allDeliveryOptions(groupedDeliveryOptions),\n oneHourEnabled = (allDeliveryOptions[0] || {}).code == 'RA',\n deliveryDescriptionRA = oneHourEnabled ?\n formatDeliveryDescription(this.props.deliveryDescriptionRA, Ready in as soon as
1-Hour
) :\n formatDeliveryDescription(this.props.deliveryDescriptionRA1, Ready for {translate('pick-up')} today),\n deliveryDescriptionUFC = this.props.deliveryDescriptionUFC;\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.props.products.map(renderProduct, this)}\n \n
\n
{this.props.deliveryTitleRA || 'Same Day'}
\n

{deliveryDescriptionRA}

\n
\n
Home Delivery
\n

{deliveryDescriptionUFC}

\n
\n
Sizes
\n
\n
Qty
\n
\n
Price (ea)
\n
\n
Qty
\n
\n
Price (ea)
\n
\n
\n );\n\n function renderProduct(product, i) {\n const quantityPricingTools = new QuantityPricingTools(product),\n $rows = [],\n maxPriceBreaks = maxPriceBreaksForProduct(product);\n\n for (let j = 0; j < maxPriceBreaks; j++) {\n const $additionalPriceColumns = renderAdditionalPagesPriceColumns(product, quantityPricingTools);\n\n $rows.push(\n {renderProductColumns(product, j, maxPriceBreaks, !!$additionalPriceColumns)}\n );\n\n if ($additionalPriceColumns) {\n $rows.push(\n {$additionalPriceColumns}\n );\n }\n }\n\n return $rows;\n }\n\n function renderProductColumns(product, breakIndex, maxPriceBreaks, hasAdditionalPriceRows) {\n const $columns = [];\n\n if (breakIndex == 0) {\n $columns.push(\n {product.title}\n );\n }\n\n groupedDeliveryOptions.forEach((deliveryOptionGroup, i) => {\n let qty = '-',\n price = '-',\n rowSpan = maxPriceBreaks,\n prices;\n\n deliveryOptionGroup.forEach(deliveryOption => {\n prices || (prices = product.delivery_prices[deliveryOption.key]);\n });\n\n if (prices) {\n const currentBreak = prices[breakIndex];\n if (!currentBreak) {\n return;\n }\n\n if (prices.length > 1) {\n rowSpan = 1;\n }\n\n price = Currency.format(currentBreak.price);\n\n if (breakIndex < (prices.length - 1)) {\n qty = currentBreak.break + '-' + (prices[(breakIndex + 1)].break - 1);\n } else {\n qty = currentBreak.break + '+';\n }\n } else if (breakIndex > 0) {\n return;\n }\n\n $columns.push({qty});\n $columns.push({price});\n });\n\n return $columns;\n }\n\n function maxPriceBreaksForProduct(product) {\n let maxPriceBreaksForProduct = 1;\n\n for (let i = 0; i < allDeliveryOptions.length; i++) {\n const prices = allDeliveryOptions[i] && product.delivery_prices[allDeliveryOptions[i].key] || [];\n if (prices.length > maxPriceBreaksForProduct) {\n maxPriceBreaksForProduct = prices.length;\n }\n }\n\n return maxPriceBreaksForProduct;\n }\n\n function formatDeliveryDescription(deliveryDescription, fallback) {\n if (typeof deliveryDescription != 'undefined')\n return deliveryDescription;\n\n if (typeof fallback == 'function')\n return fallback();\n\n return fallback;\n }\n\n function renderAdditionalPagesPriceColumns(product, quantityPricingTools) {\n const $columns = [];\n let includeRow = false;\n\n $columns.push(Each Additional Page);\n\n groupedDeliveryOptions.forEach((deliveryOptionGroup, i) => {\n deliveryOptionGroup.forEach(deliveryOption => {\n const extraPagePrice = (product.delivery_prices[deliveryOption.key] || []).length && quantityPricingTools.getExtraPagePrice(deliveryOption);\n\n $columns.push({extraPagePrice ? '' : '-'});\n if (extraPagePrice) {\n $columns.push({Currency.format(extraPagePrice)});\n includeRow = true;\n } else {\n $columns.push(-);\n }\n });\n });\n\n return includeRow\n ? $columns\n : null;\n }\n },\n\n groupedDeliveryOptions() {\n const { delivery_options: deliveryOptions } = this.props;\n let oneHourDeliveryOption, sameDayDeliveryOption, homeDeliveryOption;\n\n for (let i = 0; i < deliveryOptions.length; i++) {\n switch (deliveryOptions[i].code) {\n case 'RA':\n oneHourDeliveryOption = deliveryOptions[i];\n break;\n case 'RA1':\n sameDayDeliveryOption = deliveryOptions[i];\n break;\n case 'UFC':\n homeDeliveryOption = deliveryOptions[i];\n break;\n }\n }\n\n return [\n [oneHourDeliveryOption, sameDayDeliveryOption],\n [homeDeliveryOption]\n ].map(group => group.filter(Boolean)); // remove empty items, leave empty groups\n },\n\n allDeliveryOptions(groupedDeliveryOptions) {\n return flattenDeep(groupedDeliveryOptions).filter(Boolean);\n }\n});\n\nexport default PricesTable;\n"],"names":["baseFlatten","require$$0","INFINITY","flattenDeep","array","length","flattenDeep_1","PricesTable","createReactClass","nextProps","nextState","groupedDeliveryOptions","allDeliveryOptions","oneHourEnabled","deliveryDescriptionRA","formatDeliveryDescription","translate","deliveryDescriptionUFC","React","classNames","renderProduct","product","i","quantityPricingTools","QuantityPricingTools","$rows","maxPriceBreaks","maxPriceBreaksForProduct","j","$additionalPriceColumns","renderAdditionalPagesPriceColumns","renderProductColumns","breakIndex","hasAdditionalPriceRows","$columns","deliveryOptionGroup","qty","price","rowSpan","prices","deliveryOption","currentBreak","Currency","deliveryDescription","fallback","includeRow","extraPagePrice","deliveryOptions","oneHourDeliveryOption","sameDayDeliveryOption","homeDeliveryOption","group"],"mappings":"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","x_google_ignoreList":[0]}