{"version":3,"file":"static/chunks/394.307ec3f8061a51f8.js","mappings":"iuFAqBO,IAsCyBA,EAtCnBC,GAAaC,EAAAA,EAAAA,SAAOC,EAAAA,GAAc,Y,8DAArBD,C,IAKDE,EAAAA,GAAAA,SAGAA,EAAAA,GAAAA,SAGAA,EAAAA,GAAAA,QAWZC,GAAMH,EAAAA,EAAAA,SAAOI,EAAAA,YAAW,Y,uDAAlBJ,C,IAEME,EAAAA,GAAAA,QAKZG,GAAML,EAAAA,EAAAA,SAAOM,EAAAA,YAAW,Y,uDAAlBN,C,KAINO,EAAaP,EAAAA,QAAAA,IAAAA,WAAU,C,8DAAVA,C,KACpBF,SAAAA,G,OAAKA,EAAEU,iBACHC,EAAAA,EAAAA,KAAG,IACiBC,EAAAA,GAAaZ,EAAEU,kBACjCC,EAAAA,EAAAA,KAAG,IACkC,QAAjBX,EAAAA,EAAEa,uBAAe,IAAjBb,EAAAA,EAAqB,kBAGhCA,SAAAA,G,OAAKA,EAAEc,aAAed,EAAEc,aAAe,KAAO,OACpDd,SAAAA,G,IAAMA,EAA+BA,EAAhC,QAAU,QAATA,EAAAA,EAAEe,eAAO,IAATf,OAAAA,EAAAA,EAAWgB,UAAW,SAAkB,QAAThB,EAAAA,EAAEe,eAAO,IAATf,OAAAA,EAAAA,EAAWiB,YAAa,QAGtDjB,SAAAA,G,MAA0B,QAArBA,EAAEkB,eAA2B,SAAW,QAG1Cd,EAAAA,GAAAA,QAInBJ,SAAAA,G,OAAKmB,EAAAA,EAAAA,IAAqBnB,EAAG,sBAGtBoB,EAAUlB,EAAAA,QAAAA,IAAAA,WAAU,C,2DAAVA,C,KACLF,SAAAA,G,OAAKA,EAAEqB,WAAa,OAAoB,OAAbrB,EAAEqB,WAAW,8BAA8B,iBAIlFrB,SAAAA,G,OAAKsB,EAAAA,EAAAA,IAAYtB,MACjBA,SAAAA,G,OAAKmB,EAAAA,EAAAA,IAAqBnB,EAAG,gBAGtBuB,EAAOrB,EAAAA,QAAAA,IAAAA,WAAU,C,wDAAVA,C,KASdF,SAAAA,G,OAAKmB,EAAAA,EAAAA,IAAqBnB,EAAG,YAGtBwB,EAActB,EAAAA,QAAAA,IAAAA,WAAU,C,+DAAVA,C,KAIduB,EAAQvB,EAAAA,QAAAA,IAAAA,WAAU,C,yDAAVA,C,KAKfF,SAAAA,G,OAAKmB,EAAAA,EAAAA,IAAqBnB,EAAG,YAGtB0B,EAAOxB,EAAAA,QAAAA,IAAAA,WAAU,C,wDAAVA,C,KAIdF,SAAAA,G,OAAKmB,EAAAA,EAAAA,IAAqBnB,EAAG,WAUtB2B,GAPSzB,EAAAA,QAAAA,IAAAA,WAAU,C,0DAAVA,C,KAIhBF,SAAAA,G,OAAKmB,EAAAA,EAAAA,IAAqBnB,EAAG,uBAGPE,EAAAA,QAAAA,IAAAA,WAAU,C,iEAAVA,C,KAGfF,SAAAA,G,MAA0B,UAArBA,EAAEkB,eAA6B,IAAM,QACzClB,SAAAA,G,MAA0B,QAArBA,EAAEkB,eACU,SAArBlB,EAAEkB,eAA4B,aAAe,aACjD,IAEmBd,EAAAA,GAAAA,QAKnBJ,SAAAA,G,OAAKmB,EAAAA,EAAAA,IAAqBnB,EAAG,QAAS,eAG/B4B,EAAc1B,EAAAA,QAAAA,IAAAA,WAAU,C,gEAAVA,C,KChC3B,EAxFkB,Y,IACd2B,EAAO,EAAPA,QACAC,EAAO,EAAPA,QACAC,EAAY,EAAZA,aACAC,EAAO,EAAPA,QACAC,EAAiB,EAAjBA,kBACAZ,EAAU,EAAVA,WACAa,EAAqB,EAArBA,sBAG0BC,GAAAA,EAAAA,EAAAA,UAAS,IAA5BC,EAAmBD,EAAY,GAAxBE,EAAYF,EAAY,GAWtC,OATAG,EAAAA,EAAAA,YAAU,WACN,GAAmC,GAA/BC,OAAOC,KAAKV,GAASW,OAAzB,CACA,IAAMC,EAAOH,OAAOC,KAAKV,GAASa,QAAQC,MAAM,KAAKD,QAAQE,MAAM,QAAQ,GACrEC,GAAkBC,EAAAA,EAAAA,GAAoBjB,EAAS,kBAAmBC,QAC1CiB,IAA1BF,EAAgBJ,IAChBL,GAASY,EAAAA,EAAAA,GAAoBH,EAAgBJ,GAAOX,OAEzD,CAACD,EAASG,EAAmBF,KAG5B,SAACmB,GAAU,gCAACC,GAAItB,GAAaE,GAAY,CAAEV,WAAYA,IAAgBa,GAAqB,C,UACxF,SAACgB,EAAa,C,UACN,SAACA,EAAM,C,SAEM,OAALd,QAAK,IAALA,OAAAA,EAAAA,EAAOgB,KAAI,SAACC,G,OACR,SAACH,EAAM,CAAeI,IAAKD,EAAKE,WAAWC,MAAOC,GAAI,GAAIN,GAAIE,EAAKK,S,UAC/D,UAACR,GAAa,gBACVrC,gBAAiBwC,EAAKE,WAAW1C,gBACjCH,gBAAiB2C,EAAKE,WAAWlC,WACjCP,aAAcuC,EAAKE,WAAWzC,aAC9BC,QAAS,CACLE,WAAYoC,EAAKE,WAAWI,kBAC5B3C,SAAUqC,EAAKE,WAAWK,iBAE9B1C,eAAgBmC,EAAKQ,MAAMN,WAAWO,UAAUC,WAC5CV,EAAKtB,cAAY,C,WAErB,SAACmB,GAAe,gBACZhC,eAAgBmC,EAAKQ,MAAMN,WAAWO,UAAUC,WAC5CV,EAAKtB,cAAY,C,UAErB,SAACmB,EAAc,C,UACX,SAACA,GAAO,kBAAKG,EAAKtB,cAAY,C,SACzBsB,EAAKQ,MAAMN,WAAWS,SACjB,SAACC,EAAAA,EAAS,CAACC,QAASb,EAAKQ,MAAMN,WAAWY,MAAQ,GAAgBd,OAAbzC,EAAAA,IAAwC,OAA3ByC,EAAKQ,MAAMN,WAAWY,M,UACtF,SAACC,MAAG,CAACC,IAAK,GAAgBhB,OAAbzC,EAAAA,IAA2C,OAA9ByC,EAAKQ,MAAMN,WAAWS,SAAWM,IAAKjB,EAAKQ,MAAMN,WAAWe,SAExF,SAACC,EAAAA,GAAgB,CAACf,MAAO,GAAIgB,OAAQ,GAAIxC,QAASA,aAKpE,UAACkB,EAAc,C,WACX,SAACA,GAAQ,kBACDG,EAAKtB,cAAY,CACrB0C,wBAAyB,CAAEC,OAAQrB,EAAK5B,MAAM8B,WAAWoB,iBAE7D,SAACzB,GAAO,kBACAG,EAAKtB,cAAY,CACrB0C,wBAAyB,CAAEC,OAAQrB,EAAK3B,KAAK6B,WAAWoB,iBAE5D,SAACC,EAAAA,EAAM,CACHC,OAAQ,GAAW,OAARhD,EAAQ,WACnBiD,KAAMzB,EAAKuB,OAAOrB,WAAWuB,KAC7BC,cAAe1B,EAAKuB,OAAOrB,WAAWwB,cACtCC,YAAa3B,EAAKuB,OAAOrB,WAAWyB,YACpCC,UAAW5B,EAAKuB,OAAOrB,WAAW0B,UAClCC,WAAY7B,EAAKuB,OAAOlD,KAAK6B,WAAWS,QACxCnD,gBAAiBwC,EAAKuB,OAAOrB,WAAW1C,gBACxCsE,qBAAsB9B,EAAKuB,OAAOrB,WAAW4B,qBAC7CpD,aAAcsB,EAAKtB,aACnBqD,MAAO/B,EAAKuB,OAAOrB,WAAW8B,UAC9BC,aAAa,EACbC,gBAAiBlC,EAAKuB,OAAOrB,WAAWgC,0BAhD3ClC,EAAKF,gB,osBC7B3C,IAAMqC,EAAatF,EAAAA,QAAAA,IAAAA,WAAU,C,8DAAVA,C,KACXF,SAAAA,G,OAAKA,EAAEyF,OAAS,eAAiB,UACzBzF,SAAAA,G,OAAKA,EAAEoF,MAAQpF,EAAEoF,MAAQ,UAMnCM,GAAcxF,EAAAA,EAAAA,SAAOyF,EAAAA,YAAW,Y,+DAAlBzF,C,KACdF,SAAAA,G,OAAKA,EAAEsF,YAAc,OAAS,WAGnBtF,SAAAA,G,OAAKA,EAAEa,mBACXb,SAAAA,G,OAAKA,EAAEa,mBAGCb,SAAAA,G,OAAKA,EAAEmF,wBACXnF,SAAAA,G,OAAKA,EAAEmF,wBAGzBnF,SAAAA,G,OAAKmB,EAAAA,EAAAA,IAAqBnB,EAAG,GAA0B,OAAvBA,EAAE4F,UAAY,cAGvCC,EAAa3F,EAAAA,QAAAA,KAAAA,WAAW,C,8DAAXA,C,KACpBF,SAAAA,G,OAAKA,EAAE4F,UAAWzE,EAAAA,EAAAA,IAAqBnB,EAAG,GAAwB,OAArBA,EAAE4F,SAAW,WAAazE,EAAAA,EAAAA,IAAqBnB,EAAG,kBCsErG,EAnFe,Y,IACX6E,EAAM,EAANA,OACAiB,EAAI,EAAJA,KACAZ,EAAU,EAAVA,WACAJ,EAAI,EAAJA,KACAC,EAAa,EAAbA,cACAC,EAAW,EAAXA,YACAjD,EAAY,EAAZA,aACAkD,EAAS,EAATA,UACAc,EAAkB,EAAlBA,mBACAC,EAAS,EAATA,UAAS,IACTC,SAAAA,OAAQ,IAAG,GAAK,EAChBpF,EAAe,EAAfA,gBACAsE,EAAoB,EAApBA,qBAAoB,IACpBC,MAAAA,OAAK,IAAG,SAAM,MACdE,YAAAA,OAAW,IAAG,GAAK,MACnBC,gBAAAA,OAAe,IAAG,GAAK,EACvBK,EAAQ,EAARA,SAEMM,GAAeC,EAAAA,EAAAA,cAAY,WAC7B,GAAInB,EACA,IACI,IAAMoB,EAAOC,SAASC,cAAc,IAAgB,OAAZtB,IACpC,OAAJoB,QAAI,IAAJA,GAAAA,EAAMG,eAAe,CAAEC,MAAO,QAASC,SAAU,WACnD,MAAOC,GACLC,EAAAA,GAAwBD,MAGjC,CAAC1B,IAEE4B,GAAiBT,EAAAA,EAAAA,cAAY,WAC/B,GAAIlB,EAAW,CACX,MAAmDA,EAA3C4B,SAAAA,OAAQ,IAAG,KAAE,IAA8B5B,EAA5B6B,OAAAA,OAAM,IAAG,KAAE,IAAiB7B,EAAf8B,MAEpC,GAAIF,GAAYC,SAFyB,IAAG,KAAE,GAEb,CAC7B,IAAME,GAAQ,gBACVA,MAAO,WACJ/B,GAAS,CACZ4B,SAAUA,GAAY,GACtBC,OAAQA,GAAU,MAGtBG,EAAAA,EAAAA,GAAcD,OAGvB,CAAC/B,IAEJ,OACI,SAACO,EAAU,CAAC0B,QAASN,EAAgBZ,UAAWA,EAAWP,OAAQQ,EAAUb,MAAOA,E,SAC/EN,GACO,SAACqC,IAAI,CAACrC,KAAMA,EAAMsC,UAAQ,E,UACtB,SAAC1B,GAAW,gBACRvC,GAAI0B,EACJiB,KAAMA,GAAQuB,EAAAA,SAAAA,OACdC,OAAQvC,EAAgB,cAAW/B,EACnCuE,IAAI,+BACJC,cAAY,WACZ3G,gBAAiBA,EACjBsE,qBAAsBA,EACtBS,SAAUA,EACVN,YAAaA,EACbU,UAAWT,EAAkB,qBAAuB,IAChDxD,GAAY,C,UAEhB,SAAC8D,GAAU,kBAAK9D,GAAY,CAAE6D,SAAUA,E,SAAWV,GAAc,gDAGzE,SAACQ,GAAW,gBACRI,KAAMA,GAAQuB,EAAAA,SAAAA,OACdH,QAASnB,GAAsBG,EAC/BrF,gBAAiBA,EACjBsE,qBAAsBA,EACtBS,SAAUA,EACVN,YAAaA,GACTvD,GAAY,C,UAEhB,SAAC8D,GAAU,kBAAK9D,GAAY,CAAE6D,SAAUA,E,SAAWV,GAAc,iD,gHCpG5EnC,EAAsB,SAAC0E,EAAiCC,EAAmB3F,G,kBAIhF,IAAMS,EAAOmF,EAAE/E,MAAM,KACrB,IAAoC,IAAhCJ,EAAK,GAAGoF,QAAQF,GAAmB,iBACvClF,EAAK,GAAKA,EAAK,GAAGK,MAAM,QAAQ,GAChC,IAAMgF,EAAWrF,EAAKA,EAAKC,OAAS,GAAGI,MAAM,QAAQ,GACrDiF,EAAUH,GAAG5F,cAAiB,UAAC8F,EAAY9F,EAAaS,EAAKuF,KAAK,KAAKC,SACvExF,EAAKyF,QAAO,SAAUC,EAAKC,EAAKC,GAC5B,OAAOF,EAAIC,KAASD,EAAIC,GAAOE,MAAMC,OAAO9F,EAAK4F,EAAQ,KAAQ5F,EAAKC,OAAS,GAAK2F,EAAQN,EAAUH,GAAK,GAAM,MAClHY,IAVDT,EAAYU,KAAKC,MAAMD,KAAKE,UAAUjB,IACtCc,EAAS,GACf,IAAK,IAAMZ,KAAKG,EAAU,EAAD,GAUzB,OAAOS,GAGEtF,EAAsB,SAACnB,EAAoCC,G,kBAEhE,IAAM4G,EAAaC,IACf7G,GACA,SAACsB,EAAM8E,GACH,OAA6C,IAAtCA,EAAIP,QAAQ9F,EAAQ6F,GAAGkB,aAGhCC,EAAc,GACpB,IAAK,IAAMC,KAAKJ,EACRI,IAAMjH,EAAQ6F,GAAGkB,SACjBC,EAAYhH,EAAQ6F,GAAGqB,MAAMnG,MAAM,QAAQ,IAAM8F,EAAWI,GAE5DD,EAAYC,EAAEE,QAAQnH,EAAQ6F,GAAGkB,SAAW,IAAK,KAAOF,EAAWI,GAG3EjH,EAAQ6F,GAAG5F,aAAeQ,OAAO2G,OAAOJ,GACxChH,EAAQ6F,GAAGjE,SAAW5B,EAAQ6F,GAAGxE,GAAG8F,QAAQ,mBAAoB,SAASA,QAAQ,IAAK,MAhB1F,IAAK,IAAMtB,KAAK7F,EAAQ,EAAD,GAkBvB,OAAOS,OAAO4G,OAAOrH,K,gDCpBzB,IAlBgB,SAAUsH,GACtB,IAAIlF,EAAUkF,EAAGlF,QAASmF,EAAWD,EAAGC,SACpCC,GAAQC,EAAAA,EAAAA,UAAQ,WAChB,IAAIH,EACAI,EAAsF,QAA7EJ,EAAkB,OAAbC,QAAkC,IAAbA,OAAsB,EAASA,EAASI,aAA0B,IAAPL,OAAgB,EAASA,EAAG/E,IAC9H,QAAImF,GAEqB,QADLA,EAAM5G,MAAM,KAAK8G,QAItC,CAACL,IACJ,OAAO,IAAaC,GACd,UAACK,UAAO,CAACC,WAAW,E,WAClB,SAACC,SAAM,CAACC,OAAQ5F,EAAS4B,KAAK,eAC7BuD,MAEH,qB,SAAGA","sources":["webpack://_N_E/./src/components/LandingBlock/BlockGrid/styled.tsx","webpack://_N_E/./src/components/LandingBlock/BlockGrid/index.tsx","webpack://_N_E/./src/components/LandingBlock/Common/Button/styled.tsx","webpack://_N_E/./src/components/LandingBlock/Common/Button/index.tsx","webpack://_N_E/./src/services/blocks/prepareBlocks.ts","webpack://_N_E/./node_modules/@r1-frontend/ui-react/components/WebpImage/index.jsx"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport { FlexBoxCol, FlexBoxRow } from '@r1-frontend/ui-react/components/layouts/flexBoxGrid';\nimport GridContainer from '@r1-frontend/ui-react/components/layouts/gridContainer';\nimport { blockMargin, breakPoints, CSSPropWithBreakpoints, styleWithBreakPoints } from '~/src/components/LandingBlock/styled';\nimport { IMG_DOMAIN } from '~/src/services/blocks/templates';\n\nexport interface IGridStyles {\n Grid: CSSPropWithBreakpoints\n [key: string]: CSSPropWithBreakpoints;\n}\n\ninterface IGridColumnStyles {\n Image: CSSPropWithBreakpoints;\n Text: CSSPropWithBreakpoints;\n}\n\ninterface IPadding {\n horizontal?: number;\n vertical?: number;\n}\n\nexport const StyledGrid = styled(GridContainer)`\n display: flex;\n max-width: 100%;\n width: 1568px;\n \n @media (max-width: ${breakPoints.wDesktop}) {\n width: 1280px;\n }\n @media (max-width: ${breakPoints.sDesktop}) {\n width: 1000px;\n }\n @media (max-width: ${breakPoints.mobile}) {\n width: 768px;\n padding-left: 16px;\n padding-right: 16px;\n }\n @media (max-width: 767px) {\n width: 100%;\n justify-content: center;\n }\n`;\n\nexport const Col = styled(FlexBoxCol)`\n margin-bottom: 15px;\n @media (max-width: ${breakPoints.mobile}) {\n padding: 0;\n }\n`;\n\nexport const Row = styled(FlexBoxRow)`\n width: 100%;\n`;\n\nexport const ColWrapper = styled.div<{backgroundColor?: string, backgroundImage?: string, borderRadius?: number, padding?: IPadding, imagePlacement?: string}>`\n ${p => p.backgroundImage\n ? css`\n background: url(${IMG_DOMAIN}${p.backgroundImage}) no-repeat center / cover;;\n ` : css`\n background-color: ${p.backgroundColor ?? 'transparent' };\n `\n }\n border-radius: ${p => p.borderRadius ? p.borderRadius + 'px' : '0' };\n padding: ${p => +p.padding?.vertical + 'px ' + +p.padding?.horizontal + 'px'};\n height: 100%;\n display: flex;\n flex-direction: ${p => p.imagePlacement === 'top' ? 'column' : 'row'};\n overflow: hidden;\n\n @media (max-width: ${breakPoints.mobile}) {\n flex-direction: column;\n }\n \n ${p => styleWithBreakPoints(p, 'BlockGridColumn')};\n`;\n\nexport const Wrapper = styled.div`\n background: ${p => p.background ? `url(${p.background}) no-repeat center / cover` : 'transparent'};\n width: 100%;\n padding: 14px 0 32px;\n \n ${p => blockMargin(p)}; \n ${p => styleWithBreakPoints(p, 'BlockGrid')};\n`;\n\nexport const Icon = styled.div`\n display: flex;\n object-fit: contain;\n \n img {\n width: 100%;\n margin-bottom: -6px;\n }\n \n ${p => styleWithBreakPoints(p, 'Image')};\n`;\n\nexport const IconWrapper = styled.div`\n display: flex;\n`;\n\nexport const Title = styled.div`\n margin-top: 12px;\n & p {\n margin-bottom: 0;\n }\n ${p => styleWithBreakPoints(p, 'Title')};\n`;\n\nexport const Text = styled.div`\n margin-top: 8px;\n margin-bottom: 24px;\n \n ${p => styleWithBreakPoints(p, 'Text')};\n`;\n\nexport const Header = styled.div`\n margin-top: 0;\n margin-bottom: 32px;\n \n ${p => styleWithBreakPoints(p, 'BlockGrid.Header')};\n`;\n\nexport const ImageWrapper = styled.div<{ imagePlacement?: string }>`\n display: flex;\n align-items: center;\n order: ${p => p.imagePlacement === 'right' ? '2' : '-1'};\n margin: ${p => p.imagePlacement !== 'top'\n ? p.imagePlacement === 'left' ? '0 10px 0 0' : '0 0 0 10px'\n : 0};\n \n @media (max-width: ${breakPoints.mobile}) {\n order: -1;\n margin: 0px\n }\n \n ${p => styleWithBreakPoints(p, 'Image', 'justify')};\n`;\n\nexport const TextWrapper = styled.div`\n display: flex;\n flex-direction: column;\n order: 1;\n`;\n","import { useEffect, useState } from 'react';\nimport Button from '~/src/components/LandingBlock/Common/Button';\nimport { prepareBlockColumns, prepareColumnStyles } from '~/src/services/blocks/prepareBlocks';\nimport { INormalizedLandingElement } from '~/src/services/projects';\nimport { ImagePlaceholder } from '~/src/components/LandingBlock/styled';\nimport { IMG_DOMAIN } from '~/src/services/blocks/templates';\nimport WebpImage from '@r1-frontend/ui-react/components/WebpImage';\nimport * as ST from './styled';\n\ninterface IGridProps {\n blockId: string;\n columns: INormalizedLandingElement;\n customStyles: any;\n isAdmin?: boolean;\n currentBreakpoint?: string;\n background?: string;\n additionalBlockConfig?: any;\n}\n\nconst BlockGrid = ({\n blockId,\n columns,\n customStyles,\n isAdmin,\n currentBreakpoint,\n background,\n additionalBlockConfig,\n}: IGridProps): JSX.Element => {\n\n const [items, setItems] = useState([]);\n\n useEffect(() => {\n if (Object.keys(columns).length == 0) return;\n const root = Object.keys(columns).shift().split('.').shift().match(/\\w+/g)[0];\n const preparedColumns = prepareBlockColumns(columns, 'BlockGridColumn', customStyles);\n if (preparedColumns[root] !== undefined) {\n setItems(prepareColumnStyles(preparedColumns[root], customStyles));\n }\n }, [columns, currentBreakpoint, customStyles]);\n\n return (\n \n \n \n {\n items?.map((item) => (\n \n \n \n \n \n {item.Image.properties.content\n ? \n {item.Image.properties.alt}/\n \n : \n }\n \n \n \n \n \n \n \n \n \n \n ))\n }\n \n \n \n );\n};\n\nexport default BlockGrid;\n","import styled from 'styled-components';\nimport { styleWithBreakPoints } from '~/src/components/LandingBlock/styled';\nimport { BaseButton } from '@r1-frontend/ui-react/components/buttons/baseButton';\n\ninterface IBtnWrapProps {\n inline: boolean;\n align?: string;\n}\n\nexport interface IBtnProps {\n backgroundColor?: string;\n backgroundHoverColor?: string;\n buttonTextColor?: string;\n propName?: string;\n isAutoWidth?: boolean;\n}\n\nexport const ButtonWrap = styled.div`\n display: ${p => p.inline ? 'inline-block' : 'flex' };\n justify-content: ${p => p.align ? p.align : 'left'};\n & a {\n text-decoration: none;\n }\n`;\n\nexport const ButtonStyle = styled(BaseButton)`\n width: ${p => p.isAutoWidth ? 'auto' : '235px' };\n position: relative;\n z-index: 8;\n background-color: ${p => p.backgroundColor};\n border-color: ${p => p.backgroundColor};\n \n &:hover {\n background-color: ${p => p.backgroundHoverColor};\n border-color: ${p => p.backgroundHoverColor};\n }\n \n ${p => styleWithBreakPoints(p, `${p.propName || 'Button'}`)};\n`;\n\nexport const ButtonText = styled.span`\n ${p => p.propName ? styleWithBreakPoints(p, `${p.propName + '.Text'}`) : styleWithBreakPoints(p, 'Button.Text')};\n`;\n","import { ReactElement, useCallback } from 'react';\nimport Link from 'next/link';\nimport * as Sentry from '@sentry/node';\nimport { dataLayerPush } from '@r1-frontend/ui-react/components/helpers';\nimport { ButtonWrap, ButtonStyle, ButtonText } from './styled';\nimport { TAnalytics } from '~/src/services/blocks/configs/Part/analyticsPartConfig';\nimport { btnTypes } from '@r1-frontend/ui-react/components/buttons/baseButton';\n\nexport interface IButtonProps {\n elemId: string,\n type?: btnTypes,\n buttonText?: string | React.ReactNode | ReactElement;\n href?: string,\n isTargetBlank?: boolean,\n idForScroll?: string,\n analytics?: TAnalytics,\n customStyles?: Record,\n buttonClickHandler?: () => void,\n className?: string,\n isInline?: boolean;\n backgroundColor?: string;\n backgroundHoverColor?: string;\n align?: 'left' | 'right' | 'center';\n isAutoWidth?: boolean;\n enableCalltouch?: boolean;\n propName?: string;\n}\n\nconst Button = ({\n elemId,\n type,\n buttonText,\n href,\n isTargetBlank,\n idForScroll,\n customStyles,\n analytics,\n buttonClickHandler,\n className,\n isInline = false,\n backgroundColor,\n backgroundHoverColor,\n align = 'left',\n isAutoWidth = false,\n enableCalltouch = false,\n propName,\n}: IButtonProps): JSX.Element => {\n const clickHandler = useCallback(() => {\n if (idForScroll) {\n try {\n const elem = document.querySelector(`#${idForScroll}`);\n elem?.scrollIntoView({ block: 'start', behavior: 'smooth' });\n } catch (err) {\n Sentry.captureException(err);\n }\n }\n }, [idForScroll]);\n\n const onSendGtmEvent = useCallback(() => {\n if (analytics) {\n const { category = '', action = '', label = '' } = analytics;\n\n if (category || action || label) {\n const event = {\n event: 'UAevent',\n ...analytics,\n category: category || '',\n action: action || '',\n };\n\n dataLayerPush(event);\n }\n }\n }, [analytics]);\n\n return (\n \n {href\n ? \n \n {buttonText || 'Купить'}\n \n \n : \n {buttonText || 'Купить'}\n \n }\n \n );\n};\n\nexport default Button;\n","import pickBy from 'lodash/pickBy';\nimport { INormalizedLandingElement } from '~/src/services/projects';\n\n// TODO: погрумить, возможно эти методы можно более эффективно написать\nexport const prepareBlockColumns = (data: INormalizedLandingElement, blockName: string, customStyles: any) => {\n const tempProps = JSON.parse(JSON.stringify(data));\n const result = {};\n for (const i in tempProps) {\n const keys = i.split('.');\n if (keys[1].indexOf(blockName) === -1) continue;\n keys[0] = keys[0].match(/\\w+/g)[0];\n const blockKey = keys[keys.length - 1].match(/\\w+/g)[0];\n tempProps[i].customStyles = { [blockKey] : customStyles[keys.join('.').trim()] };\n keys.reduce(function (acc, key, index) {\n return acc[key] || (acc[key] = isNaN(Number(keys[index + 1])) ? (keys.length - 1 == index ? tempProps[i] : {}) : []);\n }, result);\n }\n return result;\n};\n\nexport const prepareColumnStyles = (columns: INormalizedLandingElement, customStyles: any) => {\n for (const i in columns) {\n const tempStyles = pickBy(\n customStyles,\n (item, key) => {\n return key.indexOf(columns[i].renderId) !== -1;\n },\n );\n const customStyle = {};\n for (const j in tempStyles) {\n if (j === columns[i].renderId) {\n customStyle[columns[i].title.match(/\\w+/g)[0]] = tempStyles[j];\n } else {\n customStyle[j.replace(columns[i].renderId + '.', '')] = tempStyles[j];\n }\n }\n columns[i].customStyles = Object.assign(customStyle);\n columns[i].scrollId = columns[i].id.replace(/(\\w*)\\[(\\d*)\\]/mg, '$1-$2').replace('.', '-');\n }\n return Object.values(columns);\n};\n","import React, { useMemo } from 'react';\nvar WebpImage = function (_a) {\n var urlWebp = _a.urlWebp, children = _a.children;\n var isSvg = useMemo(function () {\n var _a;\n var image = (_a = children === null || children === void 0 ? void 0 : children.props) === null || _a === void 0 ? void 0 : _a.src;\n if (image) {\n var extension = image.split('.').pop();\n return extension === 'svg';\n }\n return false;\n }, [children]);\n return (urlWebp && !isSvg)\n ? \n \n {children}\n \n : <>{children};\n};\nexport default WebpImage;\n"],"names":["p","StyledGrid","styled","GridContainer","breakPoints","Col","FlexBoxCol","Row","FlexBoxRow","ColWrapper","backgroundImage","css","IMG_DOMAIN","backgroundColor","borderRadius","padding","vertical","horizontal","imagePlacement","styleWithBreakPoints","Wrapper","background","blockMargin","Icon","IconWrapper","Title","Text","ImageWrapper","TextWrapper","blockId","columns","customStyles","isAdmin","currentBreakpoint","additionalBlockConfig","useState","items","setItems","useEffect","Object","keys","length","root","shift","split","match","preparedColumns","prepareBlockColumns","undefined","prepareColumnStyles","ST","id","map","item","sm","properties","width","xs","scrollId","paddingHorizontal","paddingVertical","Image","customize","placement","content","WebpImage","urlWebp","webp","img","src","alt","ImagePlaceholder","height","dangerouslySetInnerHTML","__html","htmlContent","Button","elemId","href","isTargetBlank","idForScroll","analytics","buttonText","backgroundHoverColor","align","textAlign","isAutoWidth","enableCalltouch","ButtonWrap","inline","ButtonStyle","BaseButton","propName","ButtonText","type","buttonClickHandler","className","isInline","clickHandler","useCallback","elem","document","querySelector","scrollIntoView","block","behavior","err","Sentry","onSendGtmEvent","category","action","label","event","dataLayerPush","onClick","Link","passHref","btnTypes","target","rel","data-testid","data","blockName","i","indexOf","blockKey","tempProps","join","trim","reduce","acc","key","index","isNaN","Number","result","JSON","parse","stringify","tempStyles","pickBy","renderId","customStyle","j","title","replace","assign","values","_a","children","isSvg","useMemo","image","props","pop","picture","draggable","source","srcSet"],"sourceRoot":""}