{"version":3,"sources":["webpack:///./presentation/components/ribbons/billboard-product/BillboardProduct.tsx","webpack:///./presentation/components/ribbons/billboard-product/index.ts","webpack:///../node_modules/@ux/badge/dist/es/badge.js","webpack:///../node_modules/@ux/prices/dist/es/prices.js","webpack:///./presentation/components/common/Saving.js","webpack:///./presentation/components/common/ProductPrice/LegalText.tsx","webpack:///./presentation/components/common/ProductPrice/utils.ts","webpack:///./presentation/components/common/ProductPrice/ProductPrice.tsx","webpack:///./presentation/components/common/ProductPrice/ProductPrice.stylesheet.ts","webpack:///./presentation/components/common/ProductPrice/ConnectedProductPrice.ts","webpack:///./presentation/components/common/ProductPrice/index.ts","webpack:///./presentation/components/common/ProductPrice/constants.ts","webpack:///../node_modules/ramda/es/includes.js","webpack:///../node_modules/ramda/es/mergeRight.js"],"names":["PureBillboardProduct","theme","colorway","product","currency","pricingStrategy","footerText","billboardProps","additionalText","ProductPrice","showLegalCaveat","bespoke","displayName","errorBoundary","BillboardProduct","Kind","Against","_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","isAgainstPrimary","PRIMARY","isAgainstPrimaryGradient","PRIMARY_GRADIENT","isAgainstHighlight","HIGHLIGHT","isAgainstNeutral","NEUTRAL","Badge","kind","against","LIGHT","flush","_ref","_reactCSS","_ref$theme","palette","spacing","typography","curvature","default","root","assign","display","A","X","lineHeight","whiteSpace","backgroundColor","primaryContrast","primary","color","SECONDARY","grey04","grey10","SUCCESS","green01","WARNING","yellow01","ERROR","red01","highlightContrast","highlight","String","WEAK","borderRadius","STRONG","enhance","styles","children","createElement","component","style","shouldUseDecimalDenomination","props","round","Math","Prices","hooks","ownerProps","useDecimalDenomination","amount","concat","mapStateToProps","market","getMarket","ConnectedPrices","enhance$1","isPercentage","r","isFixed","Saving","intlNamespace","id","values","saving","compose","setDisplayName","defaultProps","withBreakpoints","withProps","useStyles","marginLeft","gu2px","percentage","fontWeight","verticalAlign","fixed","textDecoration","type","BadgeKind","pureEnhance","createStructuredSelector","interval","term","LegalText","getInterval","selectors","getDisplayPeriod","rA","hasSavingValue","hasBadge","isNotNilOrEmpty","shouldShowSetupFee","viewModes","excludeViewModes","mapProps","showFee","proposition","hasProposition","hasSaving","showSetupFee","renewalPeriod","withBreakpointsHook","isMinSm","isMinLg","priceLayout","marginTop","intro","getTitleColor","content","badge","price","getContrastColor","marginRight","setupFee","fee","renewal","legalCaveat","smallprint","opacity","modifier","Layout","COMPACT","priceWrapper","width","alignItems","justifyContent","pricing","flex","flexBasis","textAlign","badgeAndNoProposition","upFront","legalText","hasDiscount","discountPerc","Boolean","parseInt","Shortcode","code","period","shouldIncludeTax","includeTax","connect","displayInterval","viewMode","productPrice","ConnectedProductPrice","includes","mergeRight","l"],"mappings":"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","file":"pex-static/37/18.fc9c7a5856abc4c91e99.chunk.js","sourcesContent":["import React, { ComponentClass } from 'react';\nimport Billboard, { BillboardProps } from 'components/ribbons/billboard';\nimport ProductPrice, {\n LegalText,\n} from 'components/common/ProductPrice';\nimport errorBoundary from 'presentation/hocs/errorBoundary';\nimport { Product } from '@ux/product';\n\ninterface OuterProps extends BillboardProps {\n product: Product,\n currency: string,\n pricingStrategy?: {\n proposition?: string,\n paymentIntervalDisplay: number,\n viewMode: number,\n pricingTier: {\n paymentInterval: number,\n term: number,\n }\n },\n}\n\ninterface InnerProps extends OuterProps {}\n\nconst PureBillboardProduct = ({\n theme,\n colorway,\n product,\n currency,\n pricingStrategy,\n footerText,\n ...billboardProps\n}: InnerProps) => (\n \n )}\n footerText={(\n \n )}\n />\n);\n\nPureBillboardProduct.displayName = 'BillboardProduct';\n\nexport default errorBoundary(PureBillboardProduct) as ComponentClass;\n","import BillboardProduct from './BillboardProduct';\n\nexport default BillboardProduct;\n","import React from 'react';\nimport pureEnhance from '@ux/pure-enhance';\nimport { defaultProps } from '@team-griffin/rehook';\nimport { Content } from '@ux/typeface';\nimport { modifier, withStylesHook } from '@ux/style-utils';\nimport cssSides, { Side } from '@team-griffin/css-sides';\nimport { gu2px, Curvature } from '@ux/theme-utils';\nimport { footnote } from '@ux/type-size';\nimport reactCSS from 'reactcss';\nimport { equals, cond, always, T } from 'ramda';\n\nvar Kind;\n\n(function (Kind) {\n Kind[\"PRIMARY\"] = \"PRIMARY\";\n Kind[\"SECONDARY\"] = \"SECONDARY\";\n Kind[\"SUCCESS\"] = \"SUCCESS\";\n Kind[\"WARNING\"] = \"WARNING\";\n Kind[\"ERROR\"] = \"ERROR\";\n Kind[\"HIGHLIGHT\"] = \"HIGHLIGHT\";\n})(Kind || (Kind = {}));\n\nvar Against;\n\n(function (Against) {\n Against[\"PRIMARY\"] = \"PRIMARY\";\n Against[\"PRIMARY_GRADIENT\"] = \"PRIMARY_GRADIENT\";\n Against[\"LIGHT\"] = \"LIGHT\";\n Against[\"NEUTRAL\"] = \"NEUTRAL\";\n Against[\"DARK\"] = \"DARK\";\n Against[\"HIGHLIGHT\"] = \"HIGHLIGHT\";\n})(Against || (Against = {}));\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar isAgainstPrimary = equals(Against.PRIMARY);\nvar isAgainstPrimaryGradient = equals(Against.PRIMARY_GRADIENT);\nvar isAgainstHighlight = equals(Against.HIGHLIGHT);\nvar isAgainstNeutral = equals(Against.NEUTRAL);\nvar stylesheet = (function (_ref) {\n var _reactCSS;\n\n var _ref$theme = _ref.theme,\n palette = _ref$theme.palette,\n spacing = _ref$theme.spacing,\n typography = _ref$theme.typography,\n curvature = _ref$theme.curvature,\n kind = _ref.kind,\n against = _ref.against,\n flush = _ref.flush;\n return reactCSS((_reactCSS = {\n default: {\n root: Object.assign({\n display: 'inline-block'\n }, cssSides('padding', Side.A, gu2px(0.75, spacing)), cssSides('margin', Side.X, gu2px(1, spacing)), footnote(typography), {\n lineHeight: 1,\n whiteSpace: 'nowrap'\n })\n },\n flush: {\n root: Object.assign({}, cssSides('margin', Side.X, 0))\n }\n }, _defineProperty(_reactCSS, modifier('kind', Kind.PRIMARY), {\n root: {\n backgroundColor: cond([[isAgainstPrimary, always(palette.primaryContrast)], [isAgainstPrimaryGradient, always(palette.primaryContrast)], [T, always(palette.primary)]])(against),\n color: cond([[isAgainstPrimary, always(palette.primary)], [isAgainstPrimaryGradient, always(palette.primary)], [T, always(palette.primaryContrast)]])(against)\n }\n }), _defineProperty(_reactCSS, modifier('kind', Kind.SECONDARY), {\n root: {\n backgroundColor: cond([[isAgainstNeutral, always(palette.grey04)], [T, always(palette.grey10)]])(against),\n color: cond([[isAgainstNeutral, always(palette.grey10)], [T, always(palette.grey04)]])(against)\n }\n }), _defineProperty(_reactCSS, modifier('kind', Kind.SUCCESS), {\n root: {\n backgroundColor: palette.green01,\n color: '#fff'\n }\n }), _defineProperty(_reactCSS, modifier('kind', Kind.WARNING), {\n root: {\n backgroundColor: palette.yellow01,\n color: palette.grey04\n }\n }), _defineProperty(_reactCSS, modifier('kind', Kind.ERROR), {\n root: {\n backgroundColor: palette.red01,\n color: '#fff'\n }\n }), _defineProperty(_reactCSS, modifier('kind', Kind.HIGHLIGHT), {\n root: {\n backgroundColor: cond([[isAgainstHighlight, always(palette.highlightContrast)], [T, always(palette.highlight)]])(against),\n color: cond([[isAgainstHighlight, always(palette.highlight)], [T, always(palette.highlightContrast)]])(against)\n }\n }), _defineProperty(_reactCSS, modifier('curvature', String(Curvature.WEAK)), {\n root: {\n borderRadius: 4\n }\n }), _defineProperty(_reactCSS, modifier('curvature', String(Curvature.STRONG)), {\n root: Object.assign({\n borderRadius: 100\n }, cssSides('padding', Side.X, gu2px(1.5, spacing)))\n }), _reactCSS), [{\n kind: kind\n }, {\n flush: flush\n }, {\n curvature: curvature\n }]);\n});\n\nvar PureBadge = function PureBadge(_ref) {\n var theme = _ref.theme,\n styles = _ref.styles,\n children = _ref.children;\n return React.createElement(Content, {\n theme: theme,\n component: \"span\",\n style: styles.root\n }, children);\n};\n\nvar enhance = pureEnhance('Badge', [defaultProps({\n kind: Kind.PRIMARY,\n against: Against.LIGHT,\n flush: false\n}), withStylesHook(stylesheet)]);\nvar Badge = enhance(PureBadge); // eslint-disable-next-line no-underscore-dangle\n\nexport default Badge;\nexport { Against, Kind };\n","import React, { Fragment } from 'react';\nimport pureEnhance from '@ux/pure-enhance';\nimport { withProps, mapProps } from '@team-griffin/rehook';\nimport { allTrue } from '@team-griffin/capra';\nimport { FormattedNumber } from 'react-intl';\nimport { invoker, __, equals, prop, lt, when, over, lensProp, pipe, multiply } from 'ramda';\nimport { createStructuredSelector } from 'reselect';\nimport { selectors } from '@ux/whitelabel';\nimport { connect } from '@ux/fabric';\n\nvar PurePrices = function PurePrices(_ref) {\n var amount = _ref.amount,\n useDecimalDenomination = _ref.useDecimalDenomination,\n currency = _ref.currency;\n return React.createElement(Fragment, null, useDecimalDenomination ? React.createElement(\"span\", null, \"\".concat(amount, \"p\")) : React.createElement(FormattedNumber, {\n value: amount,\n currency: currency // eslint-disable-next-line react/style-prop-object\n ,\n style: \"currency\"\n }));\n};\n\nvar shouldUseDecimalDenomination = function shouldUseDecimalDenomination(props) {\n return allTrue([equals(prop('market', props), 'GB'), equals(prop('currency', props), 'GBP'), lt(prop('amount', props), 1)]);\n};\n\nvar round = invoker(1, 'round')(__, Math);\nvar enhance = pureEnhance('Prices', {\n hooks: [withProps(function (ownerProps) {\n return {\n useDecimalDenomination: shouldUseDecimalDenomination(ownerProps)\n };\n }), mapProps(when(prop('useDecimalDenomination'), over(lensProp('amount'), pipe(multiply(100), round))))]\n}); // eslint-disable-next-line no-underscore-dangle\nvar Prices = enhance(PurePrices);\n\nvar mapStateToProps = createStructuredSelector({\n market: selectors.getMarket\n});\nvar enhance$1 = pureEnhance('ConnectedPrices', [withProps(connect(mapStateToProps))]);\nvar ConnectedPrices = enhance$1(Prices);\n\nexport default ConnectedPrices;\nexport { ConnectedPrices, Prices };\n","import React from 'react';\nimport {\n compose,\n setDisplayName,\n defaultProps,\n withProps,\n} from 'recompose';\n// import { fastCompare } from '@ux/perf';\nimport {\n FormattedNumber, FormattedMessage,\n} from 'react-intl';\nimport Message from '@ux/message';\nimport Badge, { Kind as BadgeKind } from '@ux/badge';\nimport { Display } from '@ux/typeface';\nimport { withBreakpoints } from '@ux/responsive';\nimport { gu2px } from '@ux/theme-utils';\nimport * as r from 'ramda';\nimport { Heading06 } from '@ux/typography';\nimport { useStyles } from '@team-griffin/stylr';\n\nconst stylesheet = ({\n theme,\n}) => {\n const {\n spacing,\n palette,\n } = theme;\n\n return useStyles({\n default: {\n root: {\n marginLeft: r.negate(gu2px(1, spacing)),\n },\n percentage: {\n fontWeight: 'normal',\n color: palette.highlight,\n verticalAlign: 'middle',\n },\n fixed: {\n fontWeight: 'normal',\n color: palette.highlight,\n verticalAlign: 'middle',\n textDecoration: 'line-through',\n },\n },\n }, []);\n};\n\nconst isPercentage = r.propEq('type', 'percentage');\nconst isFixed = r.propEq('type', 'fixed');\n\nconst Saving = r.cond([\n [ isPercentage, ({\n value,\n intlNamespace,\n }) => (\n {`${value}%`}),\n }}\n />\n ) ],\n [ isFixed, ({\n value,\n currency,\n intlNamespace,\n }) => (\n \n ),\n }}\n />\n ) ],\n [ r.T, r.always(null) ],\n]);\n\nexport const PureSaving = ({\n styles,\n theme,\n type,\n value,\n currency,\n intlNamespace,\n}) => (\n \n \n \n \n \n \n \n \n);\n\nexport const enhance = compose(\n setDisplayName('Saving'),\n // fastCompare,\n defaultProps({\n intlNamespace: 'usf',\n }),\n withBreakpoints,\n withProps(stylesheet),\n);\n\nexport default enhance(PureSaving);\n","import { withProps } from '@team-griffin/rehook';\nimport { createStructuredSelector } from 'reselect';\nimport * as r from 'ramda';\nimport { LegalText } from '@ux/product';\nimport pureEnhance from '@ux/pure-enhance';\n\nconst enhance = pureEnhance('LegalText', [\n withProps(createStructuredSelector({\n interval: r.path([ 'pricingStrategy', 'pricingTier', 'paymentInterval' ]),\n term: r.path([ 'pricingStrategy', 'pricingTier', 'term' ]),\n })),\n]);\n\nexport default enhance(LegalText);\n","import * as r from 'ramda';\nimport * as rA from 'ramda-adjunct';\nimport { selectors } from '@ux/product';\n\nconst { getInterval } = selectors;\n\nexport const getDisplayPeriod = rA.dispatch([\n r.path([ 'pricingStrategy', 'paymentIntervalDisplay' ]),\n getInterval,\n]);\n\nexport default null;\n","import React from 'react';\nimport {\n mapProps,\n withProps,\n} from '@team-griffin/rehook';\nimport { FormattedMessage } from 'react-intl';\nimport { Display } from '@ux/typeface';\nimport Saving from 'components/common/Saving';\nimport {\n Heading04,\n Heading06,\n SubHeading02,\n} from '@ux/typography';\nimport stylesheet, { Styles } from './ProductPrice.stylesheet';\nimport { BreakpointProps, withBreakpointsHook } from '@ux/responsive';\nimport * as r from 'ramda';\nimport {\n isNotNilOrEmpty,\n} from '@team-griffin/capra';\nimport LegalText from './LegalText';\nimport Shortcode from 'components/Shortcode';\nimport Badge, { Kind as BadgeKind } from '@ux/badge';\nimport Prices from '@ux/prices';\nimport { RenewalPeriod, Product } from '@ux/product';\nimport {\n getDisplayPeriod,\n} from './utils';\nimport { RibbonProps } from 'domain/constants/ribbons';\nimport { Layout } from 'components/common/ProductPrice/constants';\nimport pureEnhance from '@ux/pure-enhance';\n\nconst hasSavingValue = r.propSatisfies(\n r.both(\n r.is(Object),\n r.has('value')\n ),\n 'saving',\n);\n\nconst hasBadge = r.anyPass([\n hasSavingValue,\n r.propEq('hasDiscount', true),\n r.propSatisfies(isNotNilOrEmpty, 'badge'),\n]);\n\n// returns true if we are in a viewMode not in given array\n// 0 = retail price with setup cost underneath (default)\n// 1 = no setup cost, price incs. upfront cost\n// 2 = no setup cost, just show retail\nconst excludeViewModes = (viewModes: number[], props: DefaultProps) => r.pipe(\n r.path([ 'pricingStrategy', 'viewMode' ]),\n //@ts-ignore\n r.includes(\n r.__,\n viewModes,\n ),\n r.not,\n // @ts-ignore\n)(props);\n\nconst shouldShowSetupFee = r.allPass([\n // check product has a setup fee\n r.propEq('hasUpFrontCost', true),\n // check whether showFee is not false\n r.propEq('showFee', true),\n //check we are in a valid view mode (0)\n (props) => excludeViewModes([ 1, 2 ], props),\n]);\n\n// eslint-disable-next-line no-underscore-dangle\nexport const __test__ = {\n shouldShowSetupFee,\n};\n\ninterface OuterProps extends RibbonProps {\n showFee?: boolean,\n showLegalCaveat?: boolean,\n price: number,\n priceLayout?: Layout,\n viewMode: number,\n currency: string,\n discountPerc: string,\n product: Product,\n pricingStrategy: {\n proposition?: string,\n paymentIntervalDisplay: number,\n viewMode: number,\n pricingTier: {\n paymentInterval: number,\n term: number,\n }\n },\n hasDiscount?: boolean,\n badge?: string,\n upFront?: number,\n legalText?: string,\n saving?: {\n type: string,\n value: number,\n currency: string,\n },\n displayInterval: number,\n interval: number,\n term: number,\n}\n\ninterface DefaultProps extends OuterProps {\n showFee: true,\n showLegalCaveat: true,\n}\n\nexport interface InnerProps extends DefaultProps, BreakpointProps {\n styles: Styles,\n proposition: string,\n hasProposition: boolean,\n hasSaving: boolean,\n showSetupFee: boolean,\n renewalPeriod: number,\n hasBadge: boolean,\n}\nconst PureProductPrice = ({\n theme,\n colorway,\n styles,\n currency,\n price,\n upFront,\n renewalPeriod,\n hasSaving,\n saving,\n badge,\n proposition,\n hasProposition,\n showSetupFee,\n showLegalCaveat,\n legalText,\n product,\n pricingStrategy,\n hasDiscount,\n discountPerc,\n}: InnerProps) => (\n
\n
\n \n \n \n \n \n \n \n {badge}\n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n ),\n renewal: (\n \n \n \n ),\n }}\n />\n \n
\n
\n \n \n \n \n \n \n ),\n }}\n />\n \n \n \n \n
\n \n
\n
\n
\n);\nconst enhance = pureEnhance(\n 'ProductPrice', {\n hooks: [\n // @ts-ignore\n mapProps(r.mergeRight({\n showFee: true,\n showLegalCaveat: true,\n })),\n withProps((ownerProps: DefaultProps) => ({\n proposition: r.path([ 'pricingStrategy', 'proposition' ], ownerProps),\n hasProposition: r.pathSatisfies(\n isNotNilOrEmpty,\n [ 'pricingStrategy', 'proposition' ],\n ownerProps\n ),\n hasSaving: hasSavingValue(ownerProps),\n showSetupFee: shouldShowSetupFee(ownerProps),\n renewalPeriod: getDisplayPeriod(ownerProps),\n hasBadge: hasBadge(ownerProps),\n })),\n withBreakpointsHook,\n withProps(stylesheet),\n ],\n }\n\n);\n\nexport default enhance(PureProductPrice);\n","import { useStyles } from '@team-griffin/stylr';\nimport { gu2px } from '@ux/theme-utils';\nimport {\n content,\n smallprint,\n} from '@ux/type-size';\nimport {\n percentage,\n modifier,\n} from '@ux/style-utils';\nimport { Layout } from 'components/common/ProductPrice/constants';\nimport { getTitleColor, getContrastColor } from 'presentation/utils/colorway';\nimport { InnerProps } from './ProductPrice';\nimport { CSSProperties } from 'react';\n\nexport interface Styles {\n root: CSSProperties,\n intro: CSSProperties,\n badge: CSSProperties,\n price: CSSProperties,\n setupFee: CSSProperties,\n fee: CSSProperties,\n renewal: CSSProperties,\n legalCaveat: CSSProperties,\n priceWrapper: CSSProperties,\n pricing: CSSProperties,\n}\nexport default ({\n theme,\n isMinSm,\n isMinLg,\n colorway,\n priceLayout,\n hasProposition,\n hasBadge,\n}: InnerProps) => {\n const {\n spacing,\n typography,\n } = theme;\n\n return useStyles({\n default: {\n root: {\n marginTop: gu2px(3, spacing),\n },\n intro: {\n color: getTitleColor(theme, colorway),\n marginTop: gu2px(2, spacing),\n ...content(typography),\n },\n badge: {\n marginLeft: gu2px(-1, spacing),\n },\n price: {\n color: getContrastColor(theme, colorway),\n marginRight: gu2px(1, spacing),\n },\n setupFee: {\n color: getTitleColor(theme, colorway),\n marginTop: gu2px(1, spacing),\n },\n fee: {\n color: getContrastColor(theme, colorway),\n },\n renewal: {\n color: getTitleColor(theme, colorway),\n },\n legalCaveat: {\n ...smallprint(typography),\n marginTop: gu2px(1, spacing),\n opacity: 0.9,\n },\n },\n [modifier('priceLayout', Layout.COMPACT)]: {\n priceWrapper: {\n display: 'flex',\n width: percentage(100),\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n pricing: {\n flex: 1,\n flexBasis: 'auto',\n textAlign: 'right',\n },\n setupFee: {\n textAlign: 'right',\n marginTop: 0,\n },\n },\n badgeAndNoProposition: {\n pricing: {\n marginTop: gu2px(2, spacing),\n },\n },\n }, [\n { isMinSm },\n { isMinLg },\n { priceLayout },\n { badgeAndNoProposition: hasBadge && !hasProposition && priceLayout !== Layout.COMPACT },\n ]);\n};","// @fabric\nimport pureEnhance from '@ux/pure-enhance';\nimport { withProps } from '@team-griffin/rehook';\nimport { createStructuredSelector } from 'reselect';\nimport { connect } from '@ux/fabric';\nimport ProductPrice from './ProductPrice';\nimport { selectors, productPrice } from '@ux/product';\nimport * as r from 'ramda';\n\nconst { shouldIncludeTax } = selectors;\n\nconst mapStateToProps = createStructuredSelector({\n includeTax: shouldIncludeTax,\n});\n\nconst enhance = pureEnhance('ConnectedProductPrice', [\n withProps(connect(mapStateToProps)),\n withProps(createStructuredSelector({\n displayInterval: r.path([ 'pricingStrategy', 'paymentIntervalDisplay' ]),\n viewMode: r.path([ 'pricingStrategy', 'viewMode' ]),\n interval: r.path([ 'pricingStrategy', 'pricingTier', 'paymentInterval' ]),\n term: r.path([ 'pricingStrategy', 'pricingTier', 'term' ]),\n })),\n productPrice(),\n]);\n\nexport default enhance(ProductPrice);\n","import ConnectedProductPrice from './ConnectedProductPrice';\nimport LegalText from './LegalText';\n\nexport {\n LegalText,\n};\n\nexport default ConnectedProductPrice;\n","export enum Layout {\n COMPACT = 'COMPACT',\n DEFAULT = 'DEFAULT',\n}\n\nexport default null;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Works also with strings.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.any\n * @example\n *\n * R.includes(3, [1, 2, 3]); //=> true\n * R.includes(4, [1, 2, 3]); //=> false\n * R.includes({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.includes([42], [[42]]); //=> true\n * R.includes('ba', 'banana'); //=>true\n */\n\nvar includes =\n/*#__PURE__*/\n_curry2(_includes);\n\nexport default includes;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeLeft, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeRight({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.mergeRight({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeRight(a, b) = {...a, ...b}\n */\n\nvar mergeRight =\n/*#__PURE__*/\n_curry2(function mergeRight(l, r) {\n return _objectAssign({}, l, r);\n});\n\nexport default mergeRight;"],"sourceRoot":""}