{"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:///./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/@ux/prices/dist/es/prices.js","webpack:///../node_modules/ramda/es/includes.js","webpack:///../node_modules/ramda/es/mergeRight.js"],"names":["enhance","pureEnhance","hocs","errorBoundary","theme","colorway","product","currency","pricingStrategy","footerText","billboardProps","additionalText","ProductPrice","showLegalCaveat","bespoke","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","styles","children","createElement","component","style","isPercentage","r","isFixed","Saving","intlNamespace","id","values","saving","compose","setDisplayName","defaultProps","withBreakpoints","withProps","useStyles","marginLeft","gu2px","percentage","fontWeight","verticalAlign","fixed","textDecoration","type","BadgeKind","createStructuredSelector","interval","term","LegalText","getInterval","selectors","getDisplayPeriod","rA","hasSavingValue","hasBadge","isNotNilOrEmpty","shouldShowSetupFee","props","viewModes","excludeViewModes","hooks","mapProps","showFee","ownerProps","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","amount","period","shouldIncludeTax","mapStateToProps","includeTax","connect","displayInterval","viewMode","productPrice","ConnectedProductPrice","shouldUseDecimalDenomination","round","Math","Prices","useDecimalDenomination","concat","market","getMarket","ConnectedPrices","enhance$1","includes","mergeRight","l"],"mappings":"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","file":"pex-static/17.7114993e874c2a9edb85.chunk.js","sourcesContent":["import React 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 pureEnhance from '@ux/pure-enhance';\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\nconst enhance = pureEnhance(\n 'BillboardProduct',\n {\n hocs: [\n errorBoundary,\n ],\n }\n);\n\nexport default enhance(PureBillboardProduct);\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 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 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 _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":""}