{"version":3,"file":"ImageWithProductFeature-Chunk-8161a99039fd1420edb0.js","mappings":"6NAoBA,MAsFA,EAtFwBA,IASX,IATY,MACvBC,EAAK,SACLC,EAAQ,IACRC,EAAG,eACHC,GAAiB,EAAK,cACtBC,EAAgB,WAAU,gBAC1BC,GAAkB,EAAK,WACvBC,EAAU,YACVC,GACMR,EACN,MAAMS,GAAWC,EAAAA,EAAAA,GAAc,MAE/B,OACEC,MAAAC,cAAA,OACEC,UAAU,qDACV,cAAaN,IAEXN,GAASC,IACTS,MAAAC,cAAA,OACEC,UAAW,gCACTV,GAAKW,KAAON,EACR,gBACA,mBAAkBF,EAAkB,gBAAkB,eAG5DK,MAAAC,cAAA,OAAKC,UAAU,2BACZZ,GAASU,MAAAC,cAAA,UAAKX,GACdG,GACCO,MAAAC,cAACG,EAAAA,EAAI,CACHC,KAAK,eACLC,eAAe,cACfC,KAAMT,EAAW,WAAa,cAInCP,GAAYS,MAAAC,cAAA,KAAGC,UAAWR,GAAgBH,GAC1CC,GAAKW,KAAON,GACXG,MAAAC,cAACO,EAAAA,EAAM,CACLC,KAAMjB,EACNkB,aAAcA,MACZC,EAAAA,EAAAA,GAAgB,CACdC,MAAO,gBACPC,aAAcrB,EAAIa,MAClB,EAEJH,UAAU,mBAKhBV,GAAKW,KAAON,IACZG,MAAAC,cAAA,OACEC,UAAWY,IACT,4EACAjB,EAAc,oBAAsB,mBAGrCA,GACCG,MAAAC,cAAA,OAAKC,UAAU,wBACbF,MAAAC,cAACc,EAAAA,EAAS,CACRC,GAAInB,EACJoB,UAAWC,EAAAA,EAAwBC,OAErCnB,MAAAC,cAACc,EAAAA,EAAS,CACRC,GAAInB,EACJoB,UAAWC,EAAAA,EAAwBE,SAIxC5B,GAAKW,MAAQN,GACZG,MAAAC,cAACO,EAAAA,EAAM,CACLC,KAAMjB,EACNkB,aAAcA,MACZC,EAAAA,EAAAA,GAAgB,CACdC,MAAO,gBACPC,aAAcrB,EAAIa,MAClB,KAMR,C,wECnFV,MA0FA,EA1FyBhB,IAcZ,IAda,eACxBgC,EAAc,YACdC,EAAW,SACXC,EAAQ,cACRC,EAAa,SACbC,EAAQ,WACRC,GAAa,EAAK,UAClBC,GAAY,EAAK,mBACjBC,EAAkB,wBAClBC,EAA0B,OAAM,eAChCC,EAAc,eACdC,EAAc,WACdnC,EAAU,YACVoC,GACM3C,EACN,MAAM,YACJ4C,EAAW,eACXC,EAAc,yBACdC,EAAwB,aACxBC,EAAY,MACZC,GACEf,EAEJ,MAAqB,iBAAVe,EACF,KAIPrC,MAAAC,cAAA,OACEC,UAAWY,IACTc,EACAD,EAAY,sBAAwB,WACpC,CACE,6BAA8BD,IAGlC,cAAa9B,IAEX8B,GACCO,EAAc,GAAKC,GACpBC,IACAnC,MAAAC,cAAA,QAAMC,UAAU,0BACbmB,GAAkBrB,MAAAC,cAAA,YAAOoB,GAEzBY,EAAc,GAAKC,GAClBlC,MAAAC,cAAAD,MAAAsC,SAAA,KACGb,GAAYzB,MAAAC,cAAA,QAAMC,UAAU,QAAQuB,GACrCzB,MAAAC,cAAA,QACEC,UAAU,4CACV,cAAY,qCAEXgC,IAKNC,GACCnC,MAAAC,cAAA,QACEC,UAAWY,IACT,CACE,eAAgBa,EAChB,gBAAiBM,EAAc,EAC/B,mBAAoBA,EAAc,IAAMD,GAE1CD,GAEF,cAAY,4BAEXI,KAMPZ,IAAca,GAAgBZ,IAC9BxB,MAAAC,cAAA,KACEC,UAAWY,IAAWgB,EAAgB,kBAAmB,CACvD,CAAC,GAAGD,MAA6BF,IAEnC,cAAY,mCAEXJ,GAAYA,EACZA,IAAaa,GAAgBZ,GAAiB,OAC7CY,GAAgBZ,GAAiBA,GAGnC,C,sTC7EV,MAiGA,EAjGYnC,IAeuB,IAftB,SACXkD,EAAQ,UACRrC,EAAS,SACTsC,GAAW,EAAK,SAChBC,EAAQ,KACRhC,EAAI,aACJC,EAAY,cACZgC,GAAgB,EAAI,KACpBnC,EAAOoC,EAAAA,EAASC,MAAK,KACrBC,GAAO,EAAK,QACZC,EAAO,KACPC,EAAI,YACJf,EAAW,WACXpC,KACGoD,GACyB3D,EAC5B,MAAM4D,EAAanC,IACjB,CACE,CAAC,+BACCkB,EAAc,GAAK,qCAChBc,IAAYI,EAAAA,EAAaC,QAE9B,CAAC,wDACCnB,EACI,GACA,iGACDc,IAAYI,EAAAA,EAAaC,SAAWT,EAEzC,CAAC,4BACCV,EAAc,GAAK,sCAEnBc,IAAYI,EAAAA,EAAaE,WAAaN,IAAYI,EAAAA,EAAaG,OAEjE,CAAC,gFACCrB,EACI,GACA,gGACDc,IAAYI,EAAAA,EAAaE,WAAaV,EAE3C,CAAC,4BACCV,EAAc,GAAK,sCAChBc,IAAYI,EAAAA,EAAaI,MAE9B,CAAC,qCACCtB,EACI,GACA,iGACDc,IAAYI,EAAAA,EAAaI,OAASZ,EAEvC,2BAA4BI,IAAYI,EAAAA,EAAaK,KAErD,8EACET,IAAYI,EAAAA,EAAaK,MAAQb,EAEnC,cAAenC,IAASoC,EAAAA,EAASa,OAASV,IAAYI,EAAAA,EAAaG,OAEnE,YAAa9C,IAASoC,EAAAA,EAASC,OAASE,IAAYI,EAAAA,EAAaG,OAEjE,uBAAwBX,GAE1BI,IAAYI,EAAAA,EAAaG,OAAS,gBAAkB,wBACpD,cACAnD,GAGF,OAAI2C,EAEA7C,MAAAC,cAAA,QAAMC,UAAW+C,EAAY,cAAarD,GACvCmD,GAKAtC,GAAMN,MAAQM,GAAMJ,MAAQkC,KAAcC,EAC/CxC,MAAAC,cAAA,KACEC,UAAWY,IAAW,kBAAmBmC,GACzCQ,KAAMhD,EAAKN,IACXuD,OAAQjD,EAAKiD,OACb,yBAAwBjB,EACxBkB,QAASjD,EACT,cAAad,GAEZ2C,GAAY9B,EAAKJ,MAGpBL,MAAAC,cAAA,SAAA2D,EAAA,GACMZ,EAAW,CACf9C,UAAW+C,EACXT,SAAUA,EACV,yBAAwBC,EACxB,cAAa7C,IAEZ2C,GAAYQ,EAEhB,C,0MCvGH,MAiQA,EAjQoB1D,IAoBP,IApBQ,WACnBwE,EAAU,SACVC,EAAQ,QACRC,EAAO,eACP1C,EAAc,sBACd2C,EAAqB,MACrBC,EAAK,YACLC,GAAc,EAAK,YACnBC,GAAc,EAAK,cACnBC,EAAa,KACb/D,EAAI,gBACJgE,EAAe,YACf/C,EAAW,eACXgD,EAAc,cACd9C,EAAa,aACb+C,EAAY,UACZC,EAAS,aACTC,EAAY,SACZlD,EAAQ,WACR3B,GACMP,EACN,MAAOqF,EAAWC,IAAYC,EAAAA,EAAAA,WAAS,GACjCC,GAAW9E,EAAAA,EAAAA,GAAc,OACxB+E,EAAcC,IAAmBH,EAAAA,EAAAA,UAAS,GAC3CI,GAASC,EAAAA,EAAAA,QAAuB,MAChCC,EAAmBC,KAAKC,UAAUX,GAAgB,IAElDY,EAA0BC,IACzBb,IAEL9D,EAAAA,EAAAA,GAAgB,CACdC,MAAO,cACPC,aAAcyE,EACdC,MAAO,EAACC,EAAAA,EAAAA,GAAqBf,KAC7B,EAGEgB,EAAwBA,KACvBhB,IAEL9D,EAAAA,EAAAA,GAAgB,CACdC,MAAO,aACP8E,UAAW,CACTC,SAAUlB,EAAakB,SACvBJ,MAAO,EAACC,EAAAA,EAAAA,GAAqBf,MAE/B,GAGJmB,EAAAA,EAAAA,YAAU,KACRb,EAAgBC,EAAOa,SAASC,cAAgB,EAAE,GACjD,IAEH,MAAMC,EAAe,CACnBC,MAAO,CACLC,GAAInB,GAENoB,QAAS,CAAED,EAAG,IAGVE,EAAc,CAClBH,MAAO,CAAEI,QAAS,GAClBF,QAAS,CAAEE,QAASvB,EAAW,EAAI,IAgB/BwB,GACHnC,IAAgBW,EAAY,KAC5BV,IAAgBU,GAAY,OAC7B,KAEF,OACE7E,MAAAC,cAAA,OACEqG,QAASA,IAAM3B,GAAS,GACxB4B,OAAQA,IAAM5B,GAAS,GACvB6B,aAAcA,IAAM7B,GAAS,GAC7B8B,aAAcA,IAAM9B,GAAS,GAE7B,2BAAyB,OACzB,eAAcO,EACdhF,UAAWY,IACT,yIACAqD,EAAc,MAAQ,6BACtBJ,GAEF,cAAanE,GAEZqE,GACCjE,MAAAC,cAACyG,EAAAA,EAAK,CACJzC,MAAOA,EACPF,QAAQ,iDACR4C,aAAa,mCAGfrC,GAAkBD,GAAmBE,IACrCvE,MAAAC,cAAA,OAAKC,UAAU,uEACbF,MAAAC,cAAC2G,EAAAA,EAAI,CACHhH,WAAW,mBACXoE,sBAAuBA,EACvBK,gBAAiBA,EACjB/C,YAAaA,EACbgD,eAAgBA,EAChBC,aAAcA,KAIpBvE,MAAAC,cAAA,OACEC,UAAWY,IACT,kEACA,CACE,iEACEoD,GAAeD,GAEnB,CACE,+BAAgCC,IAAgBD,KAIpDjE,MAAAC,cAAC4G,EAAAA,EAAOC,IAAG,CACTZ,QAAQ,UACRhG,UAAWY,IACT,+EACAoD,EACI,oBACA,2CAEN6C,QAASrC,IAAcG,EAAW,QAAU,UAC5CmC,SA1EY,CAClBhB,MAAO,CACLC,GAAI,GACJgB,MAAO,KAETf,QAAS,CAAED,EAAG,EAAGgB,MAAO,IAsElBC,WAAYC,EAAAA,GAEX3C,GACCxE,MAAAC,cAAA,KACEwD,KAAMW,GAAejE,KAAO0D,GAAY1D,IACxCwD,QAASA,KACHS,GAAejE,IACjBkF,EAAuB,mBAChBxB,GAAY1D,KAAKsF,GAAuB,EAEnD,aAAYpF,EACZH,UAAU,sBAEVF,MAAAC,cAACyG,EAAAA,EAAK,CACJzC,MAAOO,EACPT,QAAQ,qBACR4C,aAAa,+BACbS,MAAM,kCACNxH,WAAW,wBAGXsE,GACAlE,MAAAC,cAAC4G,EAAAA,EAAOC,IAAG,CACTZ,QAAQ,UACRa,QAASrC,IAAcG,EAAW,QAAU,UAC5CmC,SA5FI,CAClBhB,MAAO,CAAEI,QAAS,IAClBF,QAAS,CAAEE,QAAS,IA2FNlG,UAAU,oGAEVF,MAAAC,cAAA,OACEoH,IAAK,GAAGC,MACRC,IAAI,MACJrH,UAAU,+CAQtBF,MAAAC,cAAC4G,EAAAA,EAAOC,IAAG,CACTZ,QAAQ,UACRa,QAASrC,IAAcG,EAAW,QAAU,UAC5CmC,SAAUjB,EACVmB,WAAYC,EAAAA,EACZjH,UAAU,wFAET4D,GACC9D,MAAAC,cAAA,KACEC,UAAU,uBACV,cAAY,yBAEX4D,GAGJzD,GACCL,MAAAC,cAAA,KACEC,UAAWY,IAAW,qBAAsBuF,GAC5C,cAAY,qBAEXhG,GAIJiB,GAAaa,0BACZnC,MAAAC,cAACuH,EAAAA,EAAgB,CACflG,YAAaA,EACbC,SAAUA,EACVC,cAAeA,EACfH,eAAgBA,EAChBK,YAAU,EACVE,mBAAmB,UACnBhC,WAAW,oCAIfI,MAAAC,cAAC4G,EAAAA,EAAOC,IAAG,CACTZ,QAAQ,UACRa,QAASrC,IAAcG,EAAW,QAAU,UAC5CmC,SAAUb,EACVe,WAAY,CACVO,SAAU,IAEZC,IAAK1C,EACL9E,UAAU,mHACV,cAAY,2BAEXkE,GAAe/D,MAAQ+D,GAAejE,KACrCH,MAAAC,cAACO,EAAAA,EAAM,CACLC,KAAM2D,EACNuD,WAAS,EACTjH,aAAcA,IACZ2E,EAAuBjB,EAAc/D,MAAQ,cAE/CT,WAAW,4BAIdiE,GAAY1D,KAAO0D,GAAYxD,MAC9BL,MAAAC,cAAA,KACEwD,KAAMI,EAAW1D,IAEjB,sBAAoB,OACpB,eAAc+E,EACdhF,UAAU,cACV,cAAY,uBACZyD,QAAS8B,GAER5B,EAAWxD,SAMlB,C,qFC3QV,MA4EA,EA5EahB,IAAA,IAAC,sBACZ2E,EAAqB,YACrB1C,EAAW,gBACX+C,EAAe,eACfC,EAAc,aACdC,EAAY,WACZ3E,GACMP,EAAA,OACNW,MAAAC,cAAAD,MAAAsC,SAAA,KACG+B,GACCrE,MAAAC,cAAC2H,EAAAA,EAAG,CACF9E,QAASI,EAAAA,EAAaE,UACtBL,KAAMsB,EACN3B,eAAe,EACf9C,WAAYA,IAIf0B,GAAauG,SAAWC,EAAAA,EAAuBC,YAC9CxD,GAAcyD,iBACZhI,MAAAC,cAAC2H,EAAAA,EAAG,CACF9E,QAASI,EAAAA,EAAaE,UACtBV,eAAe,EACfK,KAAMwB,EAAayD,gBACnBpI,WAAYA,IAIjB0B,GAAauG,SAAWC,EAAAA,EAAuBG,SAC9C1D,GAAc2D,cACZlI,MAAAC,cAAC2H,EAAAA,EAAG,CACF9E,QAASI,EAAAA,EAAaE,UACtBV,eAAe,EACfK,KAAMwB,EAAa2D,aACnBtI,WAAYA,IAIjB0B,GAAauG,SAAWC,EAAAA,EAAuBK,UAC9C5D,GAAc6D,eACZpI,MAAAC,cAAC2H,EAAAA,EAAG,CACF9E,QAASI,EAAAA,EAAaE,UACtBV,eAAe,EACfK,KAAMwB,EAAa6D,cACnBxI,WAAYA,IAIjB0B,GAAa+G,mBACZ/G,EAAYuG,SAAWC,EAAAA,EAAuBQ,WAC9C/D,GAAcgE,gBACZvI,MAAAC,cAAC2H,EAAAA,EAAG,CACF9E,QAASI,EAAAA,EAAaE,UACtBV,eAAe,EACfK,KAAMwB,EAAagE,eACnB3I,WAAYA,OAKhB0B,GAAakH,sBACblH,EAAYW,YAAc,GAC1BqC,IAEAtE,MAAAC,cAAC2H,EAAAA,EAAG,CACF9E,QAASI,EAAAA,EAAaK,KACtBb,eAAe,EACfK,KAAM,GAAGuB,KACPN,EAAwB,GAAK1C,EAAYkH,uBAE3C5I,WAAYA,IAGf,C,oWCtEL,MA0FA,EA1FgCP,IAMA,IANC,MAC/B4E,EAAK,QACLwE,EAAO,MACPnJ,EAAK,KACLoJ,EAAI,IACJlJ,GACyBH,EACzB,MAAMS,GAAWC,EAAAA,EAAAA,GAAc,MACzB4I,IAAa1E,GAAOA,OAAO2E,SAC7B3E,EAAMA,MAAM2E,QAAQC,OAAS5E,EAAMA,MAAM2E,QAAQE,MAE/CC,GAA8BJ,IAAerJ,GAASoJ,GAAQlJ,GAAKW,MAClE6I,GAAuBH,OAAQI,KACpCC,EAAAA,EAAAA,KAEF,OACElJ,MAAAC,cAAA,WAASC,UAAU,+EAChB6I,GACC/I,MAAAC,cAACkJ,EAAAA,EAAe,CACd3J,IAAKA,EACLF,MAAOA,EACPC,SAAUmJ,EACV/I,iBAAe,IAInBK,MAAAC,cAAA,OACEC,UAAWY,IACT,qDACA,CAAE,QAASiI,KAGb/I,MAAAC,cAAA,OACEC,UAAWY,IACT,yDACA6H,EACI,+BACA,gCAGL1E,GACCjE,MAAAC,cAAA,OAAKC,UAAU,mBACbF,MAAAC,cAACmJ,EAAAA,EAAaxF,EAAA,GACRK,EAAK,CACToF,WACEpF,EAAMqF,MAAMC,YACR,CAACtF,EAAMqF,KAAKC,aACZ,GAEN5C,aAAa,mBAEd1C,EAAMuF,aACLxJ,MAAAC,cAAA,OACEyH,IAAKsB,EACL9I,UAAU,yCACVuJ,wBAAyB,CAAEC,OAAQzF,EAAMuF,iBAOnDxJ,MAAAC,cAAA,OACE0J,MAAO,CACLC,cACE9J,IAAamJ,EACT,EACAA,EAAyB,IAEjC/I,UAAWY,IACT,+DACA6H,GAAc,kCAGhB3I,MAAAC,cAAA,OACEC,UAAWY,IACT6H,EAAa,cAAgB,SAC7B,gBAGDF,GACCzI,MAAAC,cAAC4J,EAAAA,EAAWjG,EAAA,CAACG,QAAS4E,EAAa,SAAW,IAAQF,OAKtD,C,wDC9FP,MAAMqB,EAAS,CACpBC,OAAQ,CACN9D,EAAG,GACHG,QAAS,EACTc,WAAY,CACV8C,KAAM,CAAC,IAAM,IAAM,IAAM,KACzBvC,SAAU,KAGdwC,QAAS,CACPhE,EAAG,EACHG,QAAS,EACTc,WAAY,CACV8C,KAAM,CAAC,IAAM,IAAM,IAAM,KACzBvC,SAAU,MAKHN,EAAY,CACvBD,WAAY,CAAEgD,KAAM,YAAazC,SAAU,K,gDCpB7C,IAEWK,EAAsB,SAAtBA,GAAsB,OAAtBA,EAAsB,mBAAtBA,EAAsB,0BAAtBA,EAAsB,yBAAtBA,EAAsB,qBAAtBA,EAAsB,sBAAtBA,EAAsB,mBAAtBA,EAAsB,wBAAtBA,EAAsB,oBAAtBA,CAAsB,EAAtBA,GAAsB,IAWjC,S,oDCbK5E,EAAY,SAAZA,GAAY,OAAZA,EAAY,kBAAZA,EAAY,sBAAZA,EAAY,cAAZA,EAAY,YAAZA,EAAY,gBAAZA,CAAY,EAAZA,GAAY,IAQjB,S,gDCHA,MAoBA,EApB6BsC,CAC3Bf,EACA0F,KAEA,MAAM,KAAE9J,EAAI,GAAEW,EAAE,MAAEqB,EAAK,SAAE+H,EAAQ,MAAEC,EAAK,SAAEvG,EAAQ,QAAEwG,EAAO,SAAEC,GAC3D9F,EAEF,MAAO,CACL+F,UAAWnK,EACXoK,QAASzJ,EACTqB,QACA+H,WACAM,WAAYL,EACZM,cAAe7G,EACf8G,aAAcN,EACdO,MAAON,KACHJ,GAAe,CAAEW,eAAgBX,GACtC,C,YCtBHY,EAAOC,QAAU,2lC","sources":["webpack://nikon-client/./components/atoms/ComponentHeader/ComponentHeader.tsx","webpack://nikon-client/./components/atoms/PriceDisplayText/PriceDisplayText.tsx","webpack://nikon-client/./components/atoms/Tag/Tag.tsx","webpack://nikon-client/./components/molecules/ProductCard/ProductCard.tsx","webpack://nikon-client/./components/molecules/Tags/Tags.tsx","webpack://nikon-client/./components/organisms/ImageWithProductFeature/ImageWithProductFeature.tsx","webpack://nikon-client/./config/animations.config.ts","webpack://nikon-client/./models/enums/ProductStockStatusEnum.ts","webpack://nikon-client/./models/enums/TagTypesEnum.ts","webpack://nikon-client/./utility/helpers/mapToNewTrackingData.ts","webpack://nikon-client/./assets/hue.svg"],"sourcesContent":["import Button from '@atoms/Button/Button';\nimport Icon from '@atoms/Icon/Icon';\nimport NavButton from '@atoms/NavButton/NavButton';\nimport HorizontalDirectionEnum from '@models/enums/HorizontalDirectionEnum';\nimport { ILink } from '@models/ILink';\nimport updateDataLayer from '@utils/helpers/gtm';\nimport useMediaQuery from '@utils/hooks/useMediaQuery';\nimport classNames from 'classnames';\n\ninterface Props {\n title?: string;\n subtitle?: string;\n cta?: ILink;\n showYellowTick?: boolean;\n subtitleClass?: string;\n hasTextMaxWidth?: boolean;\n dataTestId?: string;\n navButtonId?: string;\n}\n\nconst ComponentHeader = ({\n title,\n subtitle,\n cta,\n showYellowTick = false,\n subtitleClass = 'body-one',\n hasTextMaxWidth = false,\n dataTestId,\n navButtonId,\n}: Props) => {\n const isMobile = useMediaQuery(1024);\n\n return (\n \n {(title || subtitle) && (\n \n
\n {title &&

{title}

}\n {showYellowTick && (\n \n )}\n
\n {subtitle &&

{subtitle}

}\n {cta?.url && navButtonId && (\n {\n updateDataLayer({\n event: 'selectContent',\n content_type: cta.name,\n });\n }}\n className=\"w-fit mt-1.5\"\n />\n )}\n \n )}\n {(cta?.url || navButtonId) && (\n \n {navButtonId && (\n
\n \n \n
\n )}\n {cta?.url && !navButtonId && (\n {\n updateDataLayer({\n event: 'selectContent',\n content_type: cta.name,\n });\n }}\n />\n )}\n \n )}\n \n );\n};\n\nexport default ComponentHeader;\n","import { IPricingData } from '@models/IPricingData';\nimport classNames from 'classnames';\n\ninterface Props {\n readonly centerText?: boolean;\n readonly fromPriceLabel?: string;\n readonly pricingData: IPricingData;\n readonly vatLabel?: string;\n readonly shippingLabel?: string;\n readonly rrpLabel?: string;\n readonly smallText?: boolean;\n readonly containerClassName?: string;\n readonly taxesTopMarginClassName?: string;\n readonly taxesClassName?: string;\n readonly priceClassName?: string;\n readonly dataTestId?: string;\n readonly isLightMode?: boolean;\n}\n\nconst PriceDisplayText = ({\n fromPriceLabel,\n pricingData,\n vatLabel,\n shippingLabel,\n rrpLabel,\n centerText = false,\n smallText = false,\n containerClassName,\n taxesTopMarginClassName = 'mt-2',\n taxesClassName,\n priceClassName,\n dataTestId,\n isLightMode,\n}: Props) => {\n const {\n amountSaved,\n formattedPrice,\n formattedCalculatedPrice,\n shippingCost,\n price,\n } = pricingData;\n\n if (typeof price !== 'number') {\n return null;\n }\n\n return (\n \n {(centerText ||\n (amountSaved > 0 && formattedPrice) ||\n formattedCalculatedPrice) && (\n \n {fromPriceLabel && {fromPriceLabel}}\n\n {amountSaved > 0 && formattedPrice && (\n <>\n {rrpLabel && {rrpLabel}}\n \n {formattedPrice}\n \n \n )}\n\n {formattedCalculatedPrice && (\n 0,\n 'dark:text-yellow': amountSaved > 0 && !isLightMode,\n },\n priceClassName\n )}\n data-testid=\"Price-Display-Text-Price\"\n >\n {formattedCalculatedPrice}\n \n )}\n \n )}\n\n {(vatLabel || (!shippingCost && shippingLabel)) && (\n \n {vatLabel && vatLabel}\n {vatLabel && !shippingCost && shippingLabel && ' + '}\n {!shippingCost && shippingLabel && shippingLabel}\n

\n )}\n \n );\n};\n\nexport default PriceDisplayText;\n","import SizeEnum from '@models/enums/SizeEnum';\nimport TagTypesEnum from '@models/enums/TagTypesEnum';\nimport { ILink } from '@models/ILink';\nimport classNames from 'classnames';\nimport {\n ButtonHTMLAttributes,\n DetailedHTMLProps,\n PropsWithChildren,\n} from 'react';\n\ninterface Props {\n readonly className?: string;\n readonly disabled?: boolean;\n readonly editHint?: string;\n readonly link?: ILink;\n readonly linkCallback?: () => void;\n readonly pointerStates?: boolean;\n readonly size?: Exclude;\n readonly tagType?: TagTypesEnum;\n readonly text?: string;\n readonly span?: boolean;\n readonly isLightMode?: boolean;\n readonly dataTestId?: string;\n}\n\ntype TagProps = Props &\n DetailedHTMLProps, HTMLButtonElement>;\n\nconst Tag = ({\n children,\n className,\n disabled = false,\n editHint,\n link,\n linkCallback,\n pointerStates = true,\n size = SizeEnum.Small,\n span = false,\n tagType,\n text,\n isLightMode,\n dataTestId,\n ...buttonProps\n}: PropsWithChildren) => {\n const tagClasses = classNames(\n {\n [`text-black-100 bg-grey-200 ${\n isLightMode ? '' : 'dark:bg-grey-600 dark:text-white'\n }`]: tagType === TagTypesEnum.Primary,\n //\n [`hover:bg-grey active:text-white active:bg-black-100 ${\n isLightMode\n ? ''\n : 'dark:hover:text-white dark:hover:bg-grey-500 dark:active:text-black-100 dark:active:bg-white'\n }`]: tagType === TagTypesEnum.Primary && pointerStates,\n //\n [`text-white bg-black-100 ${\n isLightMode ? '' : 'dark:bg-white dark:text-black-100'\n }`]:\n tagType === TagTypesEnum.Secondary || tagType === TagTypesEnum.Square,\n //\n [`hover:bg-grey hover:text-black-100 active:text-black-100 active:bg-grey-200 ${\n isLightMode\n ? ''\n : 'dark:hover:text-white dark:hover:bg-grey-500 dark:active:text-white dark:active:bg-grey-600'\n }`]: tagType === TagTypesEnum.Secondary && pointerStates,\n //\n [`text-black-100 bg-white ${\n isLightMode ? '' : 'dark:bg-black-100 dark:text-white'\n }`]: tagType === TagTypesEnum.Three,\n //\n [`hover:bg-grey active:bg-grey-400 ${\n isLightMode\n ? ''\n : 'dark:hover:text-white dark:hover:bg-grey-500 dark:active:text-black-100 dark:active:bg-white'\n }`]: tagType === TagTypesEnum.Three && pointerStates,\n //\n 'text-yellow bg-black-100': tagType === TagTypesEnum.Four,\n //\n 'hover:bg-grey hover:text-black-100 active:text-black-100 active:bg-grey-100':\n tagType === TagTypesEnum.Four && pointerStates,\n //\n 'py-2.5 px-5': size === SizeEnum.Large && tagType !== TagTypesEnum.Square,\n //\n 'px-4 py-1': size === SizeEnum.Small && tagType !== TagTypesEnum.Square,\n //\n 'pointer-events-none': !pointerStates,\n },\n tagType === TagTypesEnum.Square ? 'rounded-[3px]' : 'rounded-full body-two',\n 'select-none',\n className\n );\n\n if (span) {\n return (\n \n {text}\n \n );\n }\n\n return link?.url && (link?.name || children) && !disabled ? (\n \n {children || link.name}\n \n ) : (\n \n {children || text}\n \n );\n};\n\nexport default Tag;\n","import Hue from '@assets/hue.svg';\nimport Button from '@atoms/Button/Button';\nimport Image from '@atoms/Image/Image';\nimport PriceDisplayText from '@atoms/PriceDisplayText/PriceDisplayText';\nimport { easeInOut } from '@config/animations.config';\nimport { IProductCard } from '@models/IProductCard';\nimport Tags from '@molecules/Tags/Tags';\nimport updateDataLayer from '@utils/helpers/gtm';\nimport mapToNewTrackingData from '@utils/helpers/mapToNewTrackingData';\nimport useMediaQuery from '@utils/hooks/useMediaQuery';\nimport classNames from 'classnames';\nimport { motion } from 'framer-motion';\nimport { useEffect, useRef, useState } from 'react';\n\ninterface Props extends IProductCard {\n readonly classes?: string;\n readonly dataTestId?: string;\n}\n\nconst ProductCard = ({\n buyNowLink,\n category,\n classes,\n fromPriceLabel,\n hidePriceFromSavePill,\n image,\n isLargeCard = false,\n isSmallCard = false,\n learnMoreLink,\n name,\n newProductLabel,\n pricingData,\n savePriceLabel,\n shippingLabel,\n statusLabels,\n thumbnail,\n trackingData,\n vatLabel,\n dataTestId,\n}: Props) => {\n const [isHovered, setHover] = useState(false);\n const isXLarge = useMediaQuery(1440);\n const [ctaBoxHeight, setCtaBoxHeight] = useState(0);\n const ctaBox = useRef(null);\n const trackingDataJson = JSON.stringify(trackingData ?? '');\n\n const handleIntentToBuyEvent = (contentType: string) => {\n if (!trackingData) return;\n\n updateDataLayer({\n event: 'intentToBuy',\n content_type: contentType,\n items: [mapToNewTrackingData(trackingData)],\n });\n };\n\n const handleSelectItemEvent = () => {\n if (!trackingData) return;\n\n updateDataLayer({\n event: 'selectItem',\n ecommerce: {\n currency: trackingData.currency,\n items: [mapToNewTrackingData(trackingData)],\n },\n });\n };\n\n useEffect(() => {\n setCtaBoxHeight(ctaBox.current?.clientHeight || 0);\n }, []);\n\n const contVariants = {\n hover: {\n y: -ctaBoxHeight,\n },\n initial: { y: 0 },\n };\n\n const ctaVariants = {\n hover: { opacity: 1 },\n initial: { opacity: isXLarge ? 1 : 0 },\n };\n\n const imgVariants = {\n hover: {\n y: -15,\n scale: 1.1,\n },\n initial: { y: 0, scale: 1 },\n };\n\n const hueVariants = {\n hover: { opacity: 0.2 },\n initial: { opacity: 0 },\n };\n\n const titleSize =\n (isLargeCard && !isXLarge && 'h3') ||\n (isSmallCard && !isXLarge && 'h6') ||\n 'h5';\n\n return (\n setHover(true)}\n onBlur={() => setHover(false)}\n onMouseEnter={() => setHover(true)}\n onMouseLeave={() => setHover(false)}\n // eslint-disable-next-line react/no-unknown-property\n track-product-impression=\"true\"\n data-product={trackingDataJson}\n className={classNames(\n 'pointer-events-auto relative flex h-full w-full flex-col justify-end gap-5 overflow-hidden rounded-[10px] bg-grey-200 dark:bg-grey-600',\n isSmallCard ? 'p-5' : 'px-5 py-8 xl:px-7 xl:py-15',\n classes\n )}\n data-testid={dataTestId}\n >\n {image && (\n \n )}\n {(savePriceLabel || newProductLabel || statusLabels) && (\n
\n \n
\n )}\n \n \n {thumbnail && (\n {\n if (learnMoreLink?.url)\n handleIntentToBuyEvent('product picture');\n else if (buyNowLink?.url) handleSelectItemEvent();\n }}\n aria-label={name}\n className=\"flex h-full w-full\"\n >\n \n\n {!isLargeCard && (\n \n \n \n )}\n \n )}\n \n\n \n {category && (\n \n {category}\n

\n )}\n {name && (\n \n {name}\n

\n )}\n\n {pricingData?.formattedCalculatedPrice && (\n \n )}\n\n \n {learnMoreLink?.name && learnMoreLink?.url && (\n \n handleIntentToBuyEvent(learnMoreLink.name || 'Learn more')\n }\n dataTestId=\"Product-Card-Learn More\"\n />\n )}\n\n {buyNowLink?.url && buyNowLink?.name && (\n \n {buyNowLink.name}\n \n )}\n \n \n \n \n );\n};\n\nexport default ProductCard;\n","import Tag from '@atoms/Tag/Tag';\nimport ProductStockStatusEnum from '@models/enums/ProductStockStatusEnum';\nimport TagTypesEnum from '@models/enums/TagTypesEnum';\nimport { ITags } from '@models/ITags';\n\nconst Tags = ({\n hidePriceFromSavePill,\n pricingData,\n newProductLabel,\n savePriceLabel,\n statusLabels,\n dataTestId,\n}: ITags) => (\n <>\n {newProductLabel && (\n \n )}\n\n {pricingData?.status === ProductStockStatusEnum.OutOfStock &&\n statusLabels?.outOfStockLabel && (\n \n )}\n\n {pricingData?.status === ProductStockStatusEnum.SoldOut &&\n statusLabels?.soldOutLabel && (\n \n )}\n\n {pricingData?.status === ProductStockStatusEnum.PreOrder &&\n statusLabels?.preOrderLabel && (\n \n )}\n\n {pricingData?.isCommerceEnabled &&\n pricingData.status === ProductStockStatusEnum.BackOrder &&\n statusLabels?.backOrderLabel && (\n \n )}\n\n {!!(\n pricingData?.formattedAmountSaved &&\n pricingData.amountSaved > 0 &&\n savePriceLabel\n ) && (\n \n )}\n \n);\n\nexport default Tags;\n","import ComponentHeader from '@atoms/ComponentHeader/ComponentHeader';\nimport { IImageWithProductFeature } from '@models/IImageWithProductFeature';\nimport ImageLightBox from '@molecules/ImageLightBox/ImageLightBox';\nimport ProductCard from '@molecules/ProductCard/ProductCard';\nimport useMediaQuery from '@utils/hooks/useMediaQuery';\nimport useResizeObserver from '@utils/hooks/useResizeObserver';\nimport classNames from 'classnames';\n\nconst ImageWithProductFeature = ({\n image,\n product,\n title,\n body,\n cta,\n}: IImageWithProductFeature) => {\n const isMobile = useMediaQuery(1024);\n const isPortrait = image?.image?.desktop\n ? image.image.desktop.height > image.image.desktop.width\n : false;\n const isComponentHeaderDisplayed = !isPortrait && (title || body || cta?.url);\n const [imageDescriptionRef, { height: imageDescriptionHeight }] =\n useResizeObserver();\n\n return (\n
\n {isComponentHeaderDisplayed && (\n \n )}\n\n \n \n {image && (\n
\n \n {image.description && (\n \n )}\n
\n )}\n \n\n \n \n {product && (\n \n )}\n \n \n \n
\n );\n};\n\nexport default ImageWithProductFeature;\n","export const fadeUp = {\n hidden: {\n y: 30,\n opacity: 0,\n transition: {\n ease: [0.42, 0.46, 0.45, 0.99],\n duration: 0.5,\n },\n },\n visible: {\n y: 0,\n opacity: 1,\n transition: {\n ease: [0.42, 0.46, 0.45, 0.99],\n duration: 0.5,\n },\n },\n};\n\nexport const easeInOut = {\n transition: { type: 'easeinout', duration: 0.25 },\n};\n","// We get these values from the external stores, so they can't be changed unless they change also on the stores\n\nconst enum ProductStockStatusEnum {\n InStock = 'IN_STOCK',\n OutOfStock = 'OUT_OF_STOCK',\n ComingSoon = 'COMING_SOON',\n PreOrder = 'PRE_ORDER',\n BackOrder = 'BACKORDER',\n SoldOut = 'SOLD_OUT',\n DoNotShow = 'DO_NOT_SHOW',\n BtoBOnly = 'B2B_ONLY',\n}\n\nexport default ProductStockStatusEnum;\n","enum TagTypesEnum {\n Primary = 'PRIMARY',\n Secondary = 'SECONDARY',\n Three = 'THREE',\n Four = 'FOUR',\n Square = 'SQUARE',\n}\n\nexport default TagTypesEnum;\n","import {\n INewProductTrackingData,\n IProductTrackingData,\n} from '@models/IProductTrackingData';\n\nconst mapToNewTrackingData = (\n trackingData: IProductTrackingData,\n listingName?: string\n): INewProductTrackingData => {\n const { name, id, price, discount, brand, category, variant, position } =\n trackingData;\n\n return {\n item_name: name,\n item_id: id,\n price,\n discount,\n item_brand: brand,\n item_category: category,\n item_variant: variant,\n index: position,\n ...(listingName && { item_list_name: listingName }),\n };\n};\n\nexport default mapToNewTrackingData;\n","module.exports = \"data:image/svg+xml,%3csvg width='906' height='906' viewBox='0 0 906 906' fill='none' xmlns='http://www.w3.org/2000/svg'%3e %3cg opacity='0.5' filter='url(%23filter0_df_5839_100698)'%3e %3ccircle cx='453' cy='453' r='263' fill='%23FFDD00'/%3e %3c/g%3e %3cdefs%3e %3cfilter id='filter0_df_5839_100698' x='0' y='0' width='906' height='906' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'%3e %3cfeFlood flood-opacity='0' result='BackgroundImageFix'/%3e %3cfeColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/%3e %3cfeOffset dy='1.66516'/%3e %3cfeGaussianBlur stdDeviation='0.832579'/%3e %3cfeComposite in2='hardAlpha' operator='out'/%3e %3cfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0'/%3e %3cfeBlend mode='normal' in2='BackgroundImageFix' result='effect1_dropShadow_5839_100698'/%3e %3cfeBlend mode='normal' in='SourceGraphic' in2='effect1_dropShadow_5839_100698' result='shape'/%3e %3cfeGaussianBlur stdDeviation='95' result='effect2_foregroundBlur_5839_100698'/%3e %3c/filter%3e %3c/defs%3e %3c/svg%3e\""],"names":["_ref","title","subtitle","cta","showYellowTick","subtitleClass","hasTextMaxWidth","dataTestId","navButtonId","isMobile","useMediaQuery","React","createElement","className","url","Icon","name","colorClassName","size","Button","link","linkCallback","updateDataLayer","event","content_type","classNames","NavButton","id","direction","HorizontalDirectionEnum","Left","Right","fromPriceLabel","pricingData","vatLabel","shippingLabel","rrpLabel","centerText","smallText","containerClassName","taxesTopMarginClassName","taxesClassName","priceClassName","isLightMode","amountSaved","formattedPrice","formattedCalculatedPrice","shippingCost","price","Fragment","children","disabled","editHint","pointerStates","SizeEnum","Small","span","tagType","text","buttonProps","tagClasses","TagTypesEnum","Primary","Secondary","Square","Three","Four","Large","href","target","onClick","_extends","buyNowLink","category","classes","hidePriceFromSavePill","image","isLargeCard","isSmallCard","learnMoreLink","newProductLabel","savePriceLabel","statusLabels","thumbnail","trackingData","isHovered","setHover","useState","isXLarge","ctaBoxHeight","setCtaBoxHeight","ctaBox","useRef","trackingDataJson","JSON","stringify","handleIntentToBuyEvent","contentType","items","mapToNewTrackingData","handleSelectItemEvent","ecommerce","currency","useEffect","current","clientHeight","contVariants","hover","y","initial","ctaVariants","opacity","titleSize","onFocus","onBlur","onMouseEnter","onMouseLeave","Image","imageClasses","Tags","motion","div","animate","variants","scale","transition","easeInOut","sizes","src","Hue","alt","PriceDisplayText","duration","ref","secondary","Tag","status","ProductStockStatusEnum","OutOfStock","outOfStockLabel","SoldOut","soldOutLabel","PreOrder","preOrderLabel","isCommerceEnabled","BackOrder","backOrderLabel","formattedAmountSaved","product","body","isPortrait","desktop","height","width","isComponentHeaderDisplayed","imageDescriptionRef","imageDescriptionHeight","useResizeObserver","ComponentHeader","ImageLightBox","contentIds","meta","contentLink","description","dangerouslySetInnerHTML","__html","style","paddingBottom","ProductCard","fadeUp","hidden","ease","visible","type","listingName","discount","brand","variant","position","item_name","item_id","item_brand","item_category","item_variant","index","item_list_name","module","exports"],"sourceRoot":""}