{"version":3,"file":"product-flags-98784cfe.js","sources":["../../../client/src/javascripts/customer_pages/_utils/favouritable.jsx","../../../client/src/javascripts/customer_pages/_shelf-category/types/was-price-type.js","../../../client/src/javascripts/customer_pages/_utils/product-flags.jsx"],"sourcesContent":["'use strict';\n\n// Import Libraries\nimport React from 'react';\nimport classNames from 'classnames';\nimport { builderDispatch } from '../_utils/ui';\nimport ShelfEvents from '../_shelf-category/flux-events';\nimport translate from '../_utils/tools/translate';\n\nconst Favouritable = ({ favourited, designCode, newUi }) => {\n const iconClass = favourited ? 'selected fas fa-heart' : 'far fa-heart';\n const favourite_class = newUi\n ? 'new-favouritable float-right'\n : 'favouritable';\n\n const favouriteLabel = favourited\n ? `To Remove ${translate('favorite')} from this design`\n : `${translate('Favorite')} this design`;\n\n return (\n \n \n \n );\n\n function toggleFavourite(e) {\n e.preventDefault();\n e.stopPropagation();\n\n builderDispatch.dispatch({\n type: ShelfEvents.FAVOURITED,\n designCode,\n });\n\n const data = new FormData();\n data.append('design_code', designCode);\n data.append('checked', !favourited);\n\n fetch('/favourites', {\n method: 'PUT',\n credentials: 'same-origin',\n body: data,\n });\n }\n};\n\nFavouritable.displayName = 'Favouritable';\n\nexport default Favouritable;\n","import PropTypes from 'prop-types';\n\nconst wasPriceType = PropTypes.shape({\n end_date: PropTypes.string,\n quantity: PropTypes.number,\n value: PropTypes.number,\n start_data: PropTypes.string,\n});\n\nexport default wasPriceType;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport genericHelpers from './generic-helpers';\nimport wasPriceType from '../_shelf-category/types/was-price-type';\n\nconst FLAGS = {\n 1: {\n css: 'best_seller',\n text: 'Best Seller',\n },\n 2: {\n css: 'clearance',\n text: 'Clearance',\n },\n 4: {\n css: 'new',\n text: 'New',\n },\n 8: {\n css: 'rollback',\n text: 'Rollback',\n },\n 128: {\n css: 'secondary-flag foil-stamped',\n text: 'Real Foil Card',\n },\n};\n\nconst ProductFlags = props => {\n function hasWasPrice() {\n const wasPrices = [].concat(props.was_price);\n\n return (wasPrices || []).filter(Boolean).some(wp =>\n genericHelpers.isWasPriceValid({\n was_price: wp,\n price: props.price,\n })\n );\n }\n\n const attributes = [];\n\n if (hasWasPrice()) attributes.push(FLAGS[8]);\n\n for (const mask in FLAGS) {\n if (props.flag & mask) {\n attributes.push(FLAGS[mask]);\n }\n }\n\n return (\n \n {attributes.map(({ css, text }) => {\n return (\n \n {text}\n \n );\n })}\n \n );\n};\n\nProductFlags.propTypes = {\n price: PropTypes.number,\n was_price: PropTypes.oneOfType([\n wasPriceType,\n PropTypes.arrayOf(wasPriceType),\n ]),\n flag: PropTypes.number,\n className: PropTypes.string,\n};\n\nProductFlags.defaultProps = {\n price: null,\n was_price: null,\n flag: null,\n className: null,\n};\n\nexport default ProductFlags;\n"],"names":["Favouritable","favourited","designCode","newUi","iconClass","favourite_class","favouriteLabel","translate","React","toggleFavourite","classNames","e","builderDispatch","ShelfEvents","data","wasPriceType","PropTypes","FLAGS","ProductFlags","props","hasWasPrice","wp","genericHelpers","attributes","mask","css","text"],"mappings":"ySASA,MAAMA,EAAe,CAAC,CAAE,WAAAC,EAAY,WAAAC,EAAY,MAAAC,KAAY,CACpD,MAAAC,EAAYH,EAAa,wBAA0B,eACnDI,EAAkBF,EACpB,+BACA,eAEEG,EAAiBL,EACnB,aAAaM,EAAU,UAAU,CAAC,oBAClC,GAAGA,EAAU,UAAU,CAAC,eAG1B,OAAAC,EAAA,cAAC,SAAA,CACC,UAAW,gBAAgBH,CAAe,GAC1C,aAAYC,EACZ,QAASG,EACT,KAAK,WACL,eAAcR,CAAA,EACdO,EAAA,cAAC,KAAE,UAAWE,EAAWN,EAAW,CAAE,cAAeD,CAAO,CAAA,EAAG,CAAA,EAInE,SAASM,EAAgBE,EAAG,CAC1BA,EAAE,eAAe,EACjBA,EAAE,gBAAgB,EAElBC,EAAgB,SAAS,CACvB,KAAMC,EAAY,WAClB,WAAAX,CAAA,CACD,EAEK,MAAAY,EAAO,IAAI,SACZA,EAAA,OAAO,cAAeZ,CAAU,EAChCY,EAAA,OAAO,UAAW,CAACb,CAAU,EAElC,MAAM,cAAe,CACnB,OAAQ,MACR,YAAa,cACb,KAAMa,CAAA,CACP,CACH,CACF,EAEAd,EAAa,YAAc,eCjDtB,MAACe,EAAeC,EAAU,MAAM,CACnC,SAAUA,EAAU,OACpB,SAAUA,EAAU,OACpB,MAAOA,EAAU,OACjB,WAAYA,EAAU,MACxB,CAAC,ECDKC,EAAQ,CACZ,EAAG,CACD,IAAK,cACL,KAAM,aACR,EACA,EAAG,CACD,IAAK,YACL,KAAM,WACR,EACA,EAAG,CACD,IAAK,MACL,KAAM,KACR,EACA,EAAG,CACD,IAAK,WACL,KAAM,UACR,EACA,IAAK,CACH,IAAK,8BACL,KAAM,gBACR,CACF,EAEMC,EAAwBC,GAAA,CAC5B,SAASC,GAAc,CAGrB,OAFkB,CAAG,EAAA,OAAOD,EAAM,SAAS,GAEtB,CAAA,GAAI,OAAO,OAAO,EAAE,KAAKE,GAC5CC,EAAe,gBAAgB,CAC7B,UAAWD,EACX,MAAOF,EAAM,KAAA,CACd,CAAA,CAEL,CAEA,MAAMI,EAAa,CAAA,EAEfH,EAAY,GAAcG,EAAA,KAAKN,EAAM,CAAC,CAAC,EAE3C,UAAWO,KAAQP,EACbE,EAAM,KAAOK,GACJD,EAAA,KAAKN,EAAMO,CAAI,CAAC,EAK7B,OAAAhB,EAAA,cAAC,OAAK,CAAA,UAAU,SACbe,EAAW,IAAI,CAAC,CAAE,IAAAE,EAAK,KAAAC,CAAA,IAEpBlB,EAAA,cAAC,OAAA,CACC,UAAWE,EAAW,OAAQe,EAAKN,EAAM,SAAS,EAClD,IAAK,GAAGM,CAAG,IAAIC,CAAI,EAAA,EAClBA,CAAA,CAGN,CACH,CAEJ,EAEAR,EAAa,UAAY,CACvB,MAAOF,EAAU,OACjB,UAAWA,EAAU,UAAU,CAC7BD,EACAC,EAAU,QAAQD,CAAY,CAAA,CAC/B,EACD,KAAMC,EAAU,OAChB,UAAWA,EAAU,MACvB,EAEAE,EAAa,aAAe,CAC1B,MAAO,KACP,UAAW,KACX,KAAM,KACN,UAAW,IACb"}