@scbt-ecom/ui 0.162.0 → 0.164.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/exports/utils.js +1 -1
- package/dist/lib/shared/dataLayers/index.js +1 -1
- package/dist/lib/shared/dataLayers/utils.js +2 -0
- package/dist/lib/shared/dataLayers/utils.js.map +1 -0
- package/dist/lib/shared/utils/extractTextFromHtml.js +2 -0
- package/dist/lib/shared/utils/extractTextFromHtml.js.map +1 -0
- package/dist/lib/shared/utils/index.js +1 -1
- package/dist/lib/widgets/banner/Banner.js.map +1 -1
- package/dist/lib/widgets/banner/ui/banners/BannerImageFull.js +1 -1
- package/dist/lib/widgets/banner/ui/banners/BannerImageFull.js.map +1 -1
- package/dist/lib/widgets/banner/ui/banners/BannerWithSeparateImg.js +1 -1
- package/dist/lib/widgets/banner/ui/banners/BannerWithSeparateImg.js.map +1 -1
- package/dist/lib/widgets/banner/ui/banners/ui/Buttons.js +1 -1
- package/dist/lib/widgets/banner/ui/banners/ui/Buttons.js.map +1 -1
- package/dist/lib/widgets/benefit/Benefit.js +1 -1
- package/dist/lib/widgets/benefit/Benefit.js.map +1 -1
- package/dist/lib/widgets/benefit/ui/BenefitItem.js +1 -1
- package/dist/lib/widgets/benefit/ui/BenefitItem.js.map +1 -1
- package/dist/lib/widgets/breadcrumbs/Breadcrumb.js +1 -1
- package/dist/lib/widgets/breadcrumbs/Breadcrumb.js.map +1 -1
- package/dist/lib/widgets/calculator/Calculator.js +1 -1
- package/dist/lib/widgets/calculator/Calculator.js.map +1 -1
- package/dist/lib/widgets/calculator/CalculatorView.js +1 -1
- package/dist/lib/widgets/calculator/CalculatorView.js.map +1 -1
- package/dist/lib/widgets/calculator/ui/CalculatorTabs.js +1 -1
- package/dist/lib/widgets/calculator/ui/CalculatorTabs.js.map +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorInfo/CalculatorInfo.js +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorInfo/CalculatorInfo.js.map +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/AssistHint.js +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/AssistHint.js.map +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/CalculatorInfoFooter.js +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/CalculatorInfoFooter.js.map +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/InfoListItem.js +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/InfoListItem.js.map +1 -1
- package/dist/lib/widgets/conditionBlock/ConditionBlock.js +1 -1
- package/dist/lib/widgets/conditionBlock/ConditionBlock.js.map +1 -1
- package/dist/lib/widgets/conditionBlock/ui/ConditionsWithCTA.js +1 -1
- package/dist/lib/widgets/conditionBlock/ui/ConditionsWithCTA.js.map +1 -1
- package/dist/lib/widgets/errorPage/ErrorPage.js +1 -1
- package/dist/lib/widgets/errorPage/ErrorPage.js.map +1 -1
- package/dist/lib/widgets/esia/Esia.js +1 -1
- package/dist/lib/widgets/esia/Esia.js.map +1 -1
- package/dist/lib/widgets/esia/ui/TextBlock.js +1 -1
- package/dist/lib/widgets/esia/ui/TextBlock.js.map +1 -1
- package/dist/lib/widgets/footer/ui/NavLinks.js +1 -1
- package/dist/lib/widgets/footer/ui/NavLinks.js.map +1 -1
- package/dist/lib/widgets/footer/ui/PhonesBlock.js +1 -1
- package/dist/lib/widgets/footer/ui/PhonesBlock.js.map +1 -1
- package/dist/lib/widgets/footer/ui/SiteMap.js +1 -1
- package/dist/lib/widgets/footer/ui/SiteMap.js.map +1 -1
- package/dist/lib/widgets/footer/ui/SocialLinks.js +1 -1
- package/dist/lib/widgets/footer/ui/SocialLinks.js.map +1 -1
- package/dist/lib/widgets/header/model/helpers.js +1 -1
- package/dist/lib/widgets/header/model/helpers.js.map +1 -1
- package/dist/lib/widgets/infoBlock/ui/LinksList.js +1 -1
- package/dist/lib/widgets/infoBlock/ui/LinksList.js.map +1 -1
- package/dist/lib/widgets/infoBlock/ui/RootContent.js +1 -1
- package/dist/lib/widgets/infoBlock/ui/RootContent.js.map +1 -1
- package/dist/lib/widgets/interLinking/InterLinking.js +1 -1
- package/dist/lib/widgets/interLinking/InterLinking.js.map +1 -1
- package/dist/lib/widgets/interLinking/ui/ColumnGroup.js +1 -1
- package/dist/lib/widgets/interLinking/ui/ColumnGroup.js.map +1 -1
- package/dist/lib/widgets/interLinking/ui/LinksList.js +1 -1
- package/dist/lib/widgets/interLinking/ui/LinksList.js.map +1 -1
- package/dist/lib/widgets/longBanner/LongBanner.js +1 -1
- package/dist/lib/widgets/longBanner/LongBanner.js.map +1 -1
- package/dist/lib/widgets/longBanner/ui/TextItem.js +1 -1
- package/dist/lib/widgets/longBanner/ui/TextItem.js.map +1 -1
- package/dist/lib/widgets/model/helpers.js +2 -2
- package/dist/lib/widgets/model/helpers.js.map +1 -1
- package/dist/lib/widgets/seoHeader/model/index.js +1 -1
- package/dist/lib/widgets/seoHeader/ui/desktop/CategoriesDesktop.js +1 -1
- package/dist/lib/widgets/seoHeader/ui/desktop/CategoriesDesktop.js.map +1 -1
- package/dist/lib/widgets/seoHeader/ui/desktop/CategoryTabs.js +1 -1
- package/dist/lib/widgets/seoHeader/ui/desktop/CategoryTabs.js.map +1 -1
- package/dist/lib/widgets/seoHeader/ui/desktop/rootTab/RootTab.js +1 -1
- package/dist/lib/widgets/seoHeader/ui/desktop/rootTab/RootTab.js.map +1 -1
- package/dist/lib/widgets/seoHeader/ui/desktop/tab/Tab.js +1 -1
- package/dist/lib/widgets/seoHeader/ui/desktop/tab/Tab.js.map +1 -1
- package/dist/lib/widgets/seoHeader/ui/desktop/tab/ui/content/TabContent.js +1 -1
- package/dist/lib/widgets/seoHeader/ui/desktop/tab/ui/content/TabContent.js.map +1 -1
- package/dist/lib/widgets/seoHeader/ui/mobile/menu/Menu.js +1 -1
- package/dist/lib/widgets/seoHeader/ui/mobile/menu/Menu.js.map +1 -1
- package/dist/lib/widgets/seoHeader/ui/mobile/menu/MenuItem.js +1 -1
- package/dist/lib/widgets/seoHeader/ui/mobile/menu/MenuItem.js.map +1 -1
- package/dist/lib/widgets/stepper/Stepper.js +1 -1
- package/dist/lib/widgets/stepper/Stepper.js.map +1 -1
- package/dist/lib/widgets/stepper/ui/StepperTabs.js +1 -1
- package/dist/lib/widgets/stepper/ui/StepperTabs.js.map +1 -1
- package/dist/lib/widgets/usefulInfo/ui/Tabs.js +1 -1
- package/dist/lib/widgets/usefulInfo/ui/Tabs.js.map +1 -1
- package/dist/lib/widgets/userFeedback/UserFeedback.js +1 -1
- package/dist/lib/widgets/userFeedback/UserFeedback.js.map +1 -1
- package/dist/lib/widgets/userFeedback/ui/SelectRating.js +1 -1
- package/dist/lib/widgets/userFeedback/ui/SelectRating.js.map +1 -1
- package/dist/stats.html +1 -1
- package/dist/types/lib/shared/dataLayers/index.d.ts +1 -0
- package/dist/types/lib/shared/dataLayers/utils.d.ts +33 -0
- package/dist/types/lib/shared/utils/extractTextFromHtml.d.ts +2 -0
- package/dist/types/lib/shared/utils/index.d.ts +1 -0
- package/dist/types/lib/widgets/banner/Banner.d.ts +1 -1
- package/dist/types/lib/widgets/banner/ui/banners/ui/Buttons.d.ts +2 -1
- package/dist/types/lib/widgets/benefit/ui/BenefitItem.d.ts +2 -1
- package/dist/types/lib/widgets/calculator/CalculatorView.d.ts +2 -1
- package/dist/types/lib/widgets/calculator/ui/CalculatorTabs.d.ts +2 -1
- package/dist/types/lib/widgets/calculator/ui/calculatorInfo/CalculatorInfo.d.ts +2 -1
- package/dist/types/lib/widgets/calculator/ui/calculatorInfo/ui/CalculatorInfoFooter.d.ts +2 -1
- package/dist/types/lib/widgets/conditionBlock/ConditionBlock.d.ts +2 -2
- package/dist/types/lib/widgets/conditionBlock/model/types.d.ts +1 -0
- package/dist/types/lib/widgets/esia/ui/TextBlock.d.ts +1 -2
- package/dist/types/lib/widgets/longBanner/LongBanner.d.ts +1 -2
- package/dist/types/lib/widgets/seoHeader/model/index.d.ts +0 -1
- package/dist/types/lib/widgets/stepper/Stepper.d.ts +2 -2
- package/dist/types/lib/widgets/stepper/ui/StepperTabs.d.ts +2 -1
- package/package.json +1 -1
- package/dist/lib/widgets/seoHeader/model/dataLayers.js +0 -2
- package/dist/lib/widgets/seoHeader/model/dataLayers.js.map +0 -1
- package/dist/types/lib/widgets/seoHeader/model/dataLayers.d.ts +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createPhoneNumber as e}from"../shared/utils/createPhoneNumber.js";import{scrollToElement as m}from"../shared/utils/scrollToElement.js";import{cn as
|
|
1
|
+
import{createPhoneNumber as e}from"../shared/utils/createPhoneNumber.js";import{scrollToElement as m}from"../shared/utils/scrollToElement.js";import{cn as p}from"../shared/utils/cn.js";import{isClient as a}from"../shared/utils/isClient.js";import{capitalize as s}from"../shared/utils/capitalize.js";import{mergeRefs as c}from"../shared/utils/mergeRefs.js";import{TypeGuards as d}from"../shared/utils/typeGuards.js";import{getUuid as u}from"../shared/utils/uuid.js";import{localStorageActions as T}from"../shared/utils/localStorageActions.js";import{assertUnreachable as y}from"../shared/utils/assertUnreachable.js";import{ErrorBoundary as C}from"../shared/utils/ErrorBoundary.js";import{sessionStorageActions as H}from"../shared/utils/sessionStorage.js";import{VariableContextHolder as U}from"../shared/utils/variableHolder/variableContextHolder.js";import{extractTextFromHtml as B}from"../shared/utils/extractTextFromHtml.js";export{C as ErrorBoundary,d as TypeGuards,U as VariableContextHolder,y as assertUnreachable,s as capitalize,p as cn,e as createPhoneNumber,B as extractTextFromHtml,u as getUuid,a as isClient,T as localStorageActions,c as mergeRefs,m as scrollToElement,H as sessionStorageActions};
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{pushToDL as
|
|
1
|
+
import{pushToDL as T}from"./pushToDL.js";import{pushToDlAccordion as h,pushToDlButton as l,pushToDlLink as s,pushToDlTab as D,pushToDlTooltip as r}from"./utils.js";export{T as pushToDL,h as pushToDlAccordion,l as pushToDlButton,s as pushToDlLink,D as pushToDlTab,r as pushToDlTooltip};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{pushToDL as n}from"./pushToDL.js";import{extractTextFromHtml as c}from"../utils/extractTextFromHtml.js";const v=(t,o,e)=>{n({event:"buttonClick",name:t,eventCategory:"click_menu",eventAction:o,placement:e})},k=(t,o,e)=>{n({event:"buttonClick",name:t,eventCategory:"click_block",eventAction:c(o),placement:e})},r=(t,o,e)=>{n({event:"buttonClick",name:t,eventCategory:"click_block",eventAction:c(o),placement:e})},u=(t,o,e)=>{n({event:"buttonClick",name:t,eventCategory:"click_block",eventAction:o,placement:e})},p=(t,o)=>{n({event:"buttonClick",name:"Tooltip",eventCategory:"click_tooltip",eventAction:c(t),placement:o})};export{u as pushToDlAccordion,k as pushToDlButton,v as pushToDlLink,r as pushToDlTab,p as pushToDlTooltip};
|
|
2
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../lib/shared/dataLayers/utils.ts"],"sourcesContent":["import { type AllowedWidgets } from '../../widgets'\nimport { extractTextFromHtml } from '../utils'\nimport { pushToDL } from './pushToDL'\n\n/**\n * @param name - название ссылки\n * @param link - ссылка\n * @param placement - в каком блоке находится ссылка, например seo-header, header, footer\n */\nexport const pushToDlLink = (name: string | undefined, link: string | undefined, placement: AllowedWidgets | string) => {\n pushToDL({\n event: 'buttonClick',\n name,\n eventCategory: 'click_menu',\n eventAction: link,\n placement\n })\n}\n\n/**\n * @param name - название кнопки\n * @param headline - заголовок блока в котором лежит кнопка\n * @param placement - в каком блоке находится кнопка, например seo-header, header, footer\n */\nexport const pushToDlButton = (name: string | undefined, headline: string | undefined, placement: AllowedWidgets | string) => {\n pushToDL({\n event: 'buttonClick',\n name,\n eventCategory: 'click_block',\n eventAction: extractTextFromHtml(headline),\n placement\n })\n}\n\n/**\n *\n * @param name - название таб-а\n * @param headline - заголовок блока в котором лежит таб\n * @param placement - в каком блоке находится таб, например seo-header, header, footer\n */\nexport const pushToDlTab = (name: string | undefined, headline: string | undefined, placement: AllowedWidgets | string) => {\n pushToDL({\n event: 'buttonClick',\n name,\n eventCategory: 'click_block',\n eventAction: extractTextFromHtml(headline),\n placement\n })\n}\n\n/**\n *\n * @param name - название аккорд иона\n * @param tabName - название таб-а, в котором был нажат аккорд ион\n * @param placement - в каком блоке находится аккорд ион, например seo-header, header, footer\n */\nexport const pushToDlAccordion = (name: string | undefined, tabName: string | undefined, placement: AllowedWidgets | string) => {\n pushToDL({\n event: 'buttonClick',\n name,\n eventCategory: 'click_block',\n eventAction: tabName,\n placement\n })\n}\n\n/**\n *\n * @param title - текст, который рядом с тул-типом, его сосед\n * @param placement - в каком блоке находится тул-тип, например seo-header, header, footer\n */\nexport const pushToDlTooltip = (title: string | undefined, placement: AllowedWidgets | string) => {\n pushToDL({\n event: 'buttonClick',\n name: 'Tooltip',\n eventCategory: 'click_tooltip',\n eventAction: extractTextFromHtml(title),\n placement\n })\n}\n"],"names":["pushToDlLink","name","link","placement","pushToDL","pushToDlButton","headline","extractTextFromHtml","pushToDlTab","pushToDlAccordion","tabName","pushToDlTooltip","title"],"mappings":"+GASO,MAAMA,EAAe,CAACC,EAA0BC,EAA0BC,IAAuC,CACtHC,EAAS,CACP,MAAO,cACP,KAAAH,EACA,cAAe,aACf,YAAaC,EACb,UAAAC,CAAA,CACD,CACH,EAOaE,EAAiB,CAACJ,EAA0BK,EAA8BH,IAAuC,CAC5HC,EAAS,CACP,MAAO,cACP,KAAAH,EACA,cAAe,cACf,YAAaM,EAAoBD,CAAQ,EACzC,UAAAH,CAAA,CACD,CACH,EAQaK,EAAc,CAACP,EAA0BK,EAA8BH,IAAuC,CACzHC,EAAS,CACP,MAAO,cACP,KAAAH,EACA,cAAe,cACf,YAAaM,EAAoBD,CAAQ,EACzC,UAAAH,CAAA,CACD,CACH,EAQaM,EAAoB,CAACR,EAA0BS,EAA6BP,IAAuC,CAC9HC,EAAS,CACP,MAAO,cACP,KAAAH,EACA,cAAe,cACf,YAAaS,EACb,UAAAP,CAAA,CACD,CACH,EAOaQ,EAAkB,CAACC,EAA2BT,IAAuC,CAChGC,EAAS,CACP,MAAO,cACP,KAAM,UACN,cAAe,gBACf,YAAaG,EAAoBK,CAAK,EACtC,UAAAT,CAAA,CACD,CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractTextFromHtml.js","sources":["../../../../lib/shared/utils/extractTextFromHtml.ts"],"sourcesContent":["export type HtmlString = string | undefined\n\nconst TECHNICAL_TAGS_REGEX = /<(script|style|iframe)[^>]*>[\\s\\S]*?<\\/\\1>/gi\n\nconst ALL_TAGS_REGEX = /<[^>]+>/g\n\nconst WHITESPACE_REGEX = /\\s+/g\n\nexport const extractTextFromHtml = (html: HtmlString): string => {\n if (!html) return ''\n\n const cleanContent = html.replace(TECHNICAL_TAGS_REGEX, '')\n\n const textOnly = cleanContent.replace(ALL_TAGS_REGEX, ' ')\n\n return textOnly.replace(WHITESPACE_REGEX, ' ').trim()\n}\n"],"names":["TECHNICAL_TAGS_REGEX","ALL_TAGS_REGEX","WHITESPACE_REGEX","extractTextFromHtml","html"],"mappings":"AAEA,MAAMA,EAAuB,+CAEvBC,EAAiB,WAEjBC,EAAmB,OAEZC,EAAuBC,GAC7BA,EAEgBA,EAAK,QAAQJ,EAAsB,EAAE,EAE5B,QAAQC,EAAgB,GAAG,EAEzC,QAAQC,EAAkB,GAAG,EAAE,KAAA,EAN7B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createPhoneNumber as e}from"./createPhoneNumber.js";import{scrollToElement as m}from"./scrollToElement.js";import{cn as
|
|
1
|
+
import{createPhoneNumber as e}from"./createPhoneNumber.js";import{scrollToElement as m}from"./scrollToElement.js";import{cn as p}from"./cn.js";import{isClient as a}from"./isClient.js";import{capitalize as s}from"./capitalize.js";import{mergeRefs as c}from"./mergeRefs.js";import{TypeGuards as d}from"./typeGuards.js";import{getUuid as u}from"./uuid.js";import{localStorageActions as T}from"./localStorageActions.js";import{assertUnreachable as y}from"./assertUnreachable.js";import{ErrorBoundary as C}from"./ErrorBoundary.js";import{sessionStorageActions as H}from"./sessionStorage.js";import{extractTextFromHtml as U}from"./extractTextFromHtml.js";import{VariableContextHolder as B}from"./variableHolder/variableContextHolder.js";export{C as ErrorBoundary,d as TypeGuards,B as VariableContextHolder,y as assertUnreachable,s as capitalize,p as cn,e as createPhoneNumber,U as extractTextFromHtml,u as getUuid,a as isClient,T as localStorageActions,c as mergeRefs,m as scrollToElement,H as sessionStorageActions};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Banner.js","sources":["../../../../lib/widgets/banner/Banner.tsx"],"sourcesContent":["import { type ReactElement } from 'react'\nimport { type BannerClasses, type ButtonsConfig } from './model'\nimport { BannerImageFull, BannerWithSeparateImg } from './ui'\nimport { type AdvantageClasses, type AdvantagesProps } from './ui/banners/ui'\nimport type { BackgroundBannerColors } from '$/shared/constants'\nimport { type ImagesPrimitive } from '$/shared/types/shared-types'\n\nexport interface BannerProps {\n headTitle: string
|
|
1
|
+
{"version":3,"file":"Banner.js","sources":["../../../../lib/widgets/banner/Banner.tsx"],"sourcesContent":["import { type ReactElement } from 'react'\nimport { type BannerClasses, type ButtonsConfig } from './model'\nimport { BannerImageFull, BannerWithSeparateImg } from './ui'\nimport { type AdvantageClasses, type AdvantagesProps } from './ui/banners/ui'\nimport type { BackgroundBannerColors } from '$/shared/constants'\nimport { type ImagesPrimitive } from '$/shared/types/shared-types'\n\nexport interface BannerProps {\n headTitle: string\n subtitle: string | ReactElement\n buttonsConfig: ButtonsConfig\n advantages?: AdvantagesProps\n variant?: 'separateImg' | 'fullImg'\n images: ImagesPrimitive\n backgroundColor?: BackgroundBannerColors\n classes?: BannerClasses & {\n advantages?: AdvantageClasses\n }\n}\n\nexport const Banner = ({ variant, ...props }: BannerProps) => {\n switch (variant) {\n case 'fullImg':\n return <BannerImageFull {...props} />\n default:\n return <BannerWithSeparateImg {...props} />\n }\n}\n\nexport default Banner\n"],"names":["Banner","variant","props","jsx","BannerImageFull","BannerWithSeparateImg"],"mappings":"wLAoBO,MAAMA,EAAS,CAAC,CAAE,QAAAC,EAAS,GAAGC,KAAyB,CAC5D,OAAQD,EAAA,CACN,IAAK,UACH,OAAOE,EAACC,EAAA,CAAiB,GAAGF,CAAA,CAAO,EACrC,QACE,OAAOC,EAACE,EAAA,CAAuB,GAAGH,CAAA,CAAO,CAAA,CAE/C"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as r,Fragment as h,jsx as e}from"react/jsx-runtime";import{cn as l}from"../../../../shared/utils/cn.js";import{Buttons as f}from"./ui/Buttons.js";import{Advantages as
|
|
1
|
+
import{jsxs as r,Fragment as h,jsx as e}from"react/jsx-runtime";import{cn as l}from"../../../../shared/utils/cn.js";import{Buttons as f}from"./ui/Buttons.js";import{Advantages as n}from"./ui/Advantages.js";import{useDevice as b}from"../../../../shared/hooks/useDevice.js";import{ResponsiveContainer as u}from"../../../../shared/ui/responsiveContainer/ResponsiveContainer.js";const j=({headTitle:i,subtitle:a,buttonsConfig:c,advantages:t,classes:o,images:d,backgroundColor:p})=>{const{isMobile:m}=b(),s=t?.details&&t?.details?.items.length>0;return r(h,{children:[r("section",{id:"banner","data-test-id":"banner",style:{backgroundColor:p??"#d9edff"},className:l("relative h-[552px] desktop:h-[456px]",o?.root),children:[e("div",{className:"absolute bottom-0 left-0 right-0 top-0 mx-auto h-full max-w-[1920px] desktop:h-[456px]",children:m?e("img",{loading:"eager",fetchPriority:"high",src:d?.mobile,className:"h-full w-full object-cover object-center",alt:d?.alt}):e("img",{loading:"eager",fetchPriority:"high",src:d?.desktop,alt:d?.alt,className:"h-full w-full object-cover object-center"})}),r(u,{className:l("h-full",o?.container),children:[e("div",{className:l("flex h-full",o?.wrapper),children:r("div",{className:l("flex w-[328px] flex-col gap-10 pt-6 desktop:w-full desktop:pt-20",o?.textBlock),children:[r("div",{className:"z-10 flex flex-col gap-4",children:[e("div",{dangerouslySetInnerHTML:{__html:i},className:l("mob-headline-bold-m text-color-dark desktop:desk-headline-bold-l",o?.title)}),e("div",{dangerouslySetInnerHTML:{__html:a},className:l("desk-body-regular-l text-color-dark",o?.subtitle)})]}),e(f,{headTitle:i,buttonConfig:c})]})}),t?.enabled&&s&&e(n,{classes:{root:"mobile:hidden desktop:absolute desktop:bottom-[-50px] desktop:right-1/2 desktop:translate-x-1/2 desktop:rounded-md desktop:p-0"},...t})]})]}),t?.enabled&&s&&e(n,{classes:{root:"px-4 pt-4 mobile:bg-color-white desktop:hidden"},...t})]})};export{j as BannerImageFull};
|
|
2
2
|
//# sourceMappingURL=BannerImageFull.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BannerImageFull.js","sources":["../../../../../../lib/widgets/banner/ui/banners/BannerImageFull.tsx"],"sourcesContent":["import { Advantages, Buttons } from './ui'\nimport { useDevice } from '$/shared/hooks'\nimport { ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\nimport { type BannerProps } from '$/widgets'\n\nexport const BannerImageFull = ({\n headTitle,\n subtitle,\n buttonsConfig,\n advantages,\n classes,\n images,\n backgroundColor\n}: Omit<BannerProps, 'bannerVariant'>) => {\n const { isMobile } = useDevice()\n\n const advantagesExist = advantages?.details && advantages?.details?.items.length > 0\n\n return (\n <>\n <section\n id='banner'\n data-test-id='banner'\n style={{ backgroundColor: backgroundColor ?? '#d9edff' }}\n className={cn('relative h-[552px] desktop:h-[456px]', classes?.root)}\n >\n <div className='absolute bottom-0 left-0 right-0 top-0 mx-auto h-full max-w-[1920px] desktop:h-[456px]'>\n {isMobile ? (\n <img\n loading='eager'\n fetchPriority='high'\n src={images?.mobile}\n className='h-full w-full object-cover object-center'\n alt={images?.alt}\n />\n ) : (\n <img\n loading='eager'\n fetchPriority='high'\n src={images?.desktop}\n alt={images?.alt}\n className='h-full w-full object-cover object-center'\n />\n )}\n </div>\n\n <ResponsiveContainer className={cn('h-full', classes?.container)}>\n <div className={cn('flex h-full', classes?.wrapper)}>\n <div className={cn('flex w-[328px] flex-col gap-10 pt-6 desktop:w-full desktop:pt-20', classes?.textBlock)}>\n <div className='z-10 flex flex-col gap-4'>\n <div\n dangerouslySetInnerHTML={{ __html: headTitle }}\n className={cn('mob-headline-bold-m text-color-dark desktop:desk-headline-bold-l', classes?.title)}\n />\n <div\n dangerouslySetInnerHTML={{ __html: subtitle }}\n className={cn('desk-body-regular-l text-color-dark', classes?.subtitle)}\n />\n </div>\n\n <Buttons buttonConfig={buttonsConfig} />\n </div>\n </div>\n\n {advantages?.enabled && advantagesExist && (\n <Advantages\n classes={{\n root: 'mobile:hidden desktop:absolute desktop:bottom-[-50px] desktop:right-1/2 desktop:translate-x-1/2 desktop:rounded-md desktop:p-0'\n }}\n {...advantages}\n />\n )}\n </ResponsiveContainer>\n </section>\n {advantages?.enabled && advantagesExist && (\n <Advantages\n classes={{\n root: 'px-4 pt-4 mobile:bg-color-white desktop:hidden'\n }}\n {...advantages}\n />\n )}\n </>\n )\n}\n"],"names":["BannerImageFull","headTitle","subtitle","buttonsConfig","advantages","classes","images","backgroundColor","isMobile","useDevice","advantagesExist","jsxs","Fragment","cn","jsx","ResponsiveContainer","Buttons","Advantages"],"mappings":"uXAMO,MAAMA,EAAkB,CAAC,CAC9B,UAAAC,EACA,SAAAC,EACA,cAAAC,EACA,WAAAC,EACA,QAAAC,EACA,OAAAC,EACA,gBAAAC,CACF,IAA0C,CACxC,KAAM,CAAE,SAAAC,CAAA,EAAaC,EAAA,EAEfC,EAAkBN,GAAY,SAAWA,GAAY,SAAS,MAAM,OAAS,EAEnF,OACEO,EAAAC,EAAA,CACE,SAAA,CAAAD,EAAC,UAAA,CACC,GAAG,SACH,eAAa,SACb,MAAO,CAAE,gBAAiBJ,GAAmB,SAAA,EAC7C,UAAWM,EAAG,uCAAwCR,GAAS,IAAI,EAEnE,SAAA,CAAAS,EAAC,MAAA,CAAI,UAAU,yFACZ,SAAAN,EACCM,EAAC,MAAA,CACC,QAAQ,QACR,cAAc,OACd,IAAKR,GAAQ,OACb,UAAU,2CACV,IAAKA,GAAQ,GAAA,CAAA,EAGfQ,EAAC,MAAA,CACC,QAAQ,QACR,cAAc,OACd,IAAKR,GAAQ,QACb,IAAKA,GAAQ,IACb,UAAU,0CAAA,CAAA,EAGhB,IAECS,EAAA,CAAoB,UAAWF,EAAG,SAAUR,GAAS,SAAS,EAC7D,SAAA,CAAAS,EAAC,MAAA,CAAI,UAAWD,EAAG,cAAeR,GAAS,OAAO,EAChD,SAAAM,EAAC,MAAA,CAAI,UAAWE,EAAG,mEAAoER,GAAS,SAAS,EACvG,SAAA,CAAAM,EAAC,MAAA,CAAI,UAAU,2BACb,SAAA,CAAAG,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQb,CAAA,EACnC,UAAWY,EAAG,mEAAoER,GAAS,KAAK,CAAA,CAAA,EAElGS,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQZ,CAAA,EACnC,UAAWW,EAAG,sCAAuCR,GAAS,QAAQ,CAAA,CAAA,CACxE,EACF,EAEAS,EAACE,EAAA,CAAQ,
|
|
1
|
+
{"version":3,"file":"BannerImageFull.js","sources":["../../../../../../lib/widgets/banner/ui/banners/BannerImageFull.tsx"],"sourcesContent":["import { Advantages, Buttons } from './ui'\nimport { useDevice } from '$/shared/hooks'\nimport { ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\nimport { type BannerProps } from '$/widgets'\n\nexport const BannerImageFull = ({\n headTitle,\n subtitle,\n buttonsConfig,\n advantages,\n classes,\n images,\n backgroundColor\n}: Omit<BannerProps, 'bannerVariant'>) => {\n const { isMobile } = useDevice()\n\n const advantagesExist = advantages?.details && advantages?.details?.items.length > 0\n\n return (\n <>\n <section\n id='banner'\n data-test-id='banner'\n style={{ backgroundColor: backgroundColor ?? '#d9edff' }}\n className={cn('relative h-[552px] desktop:h-[456px]', classes?.root)}\n >\n <div className='absolute bottom-0 left-0 right-0 top-0 mx-auto h-full max-w-[1920px] desktop:h-[456px]'>\n {isMobile ? (\n <img\n loading='eager'\n fetchPriority='high'\n src={images?.mobile}\n className='h-full w-full object-cover object-center'\n alt={images?.alt}\n />\n ) : (\n <img\n loading='eager'\n fetchPriority='high'\n src={images?.desktop}\n alt={images?.alt}\n className='h-full w-full object-cover object-center'\n />\n )}\n </div>\n\n <ResponsiveContainer className={cn('h-full', classes?.container)}>\n <div className={cn('flex h-full', classes?.wrapper)}>\n <div className={cn('flex w-[328px] flex-col gap-10 pt-6 desktop:w-full desktop:pt-20', classes?.textBlock)}>\n <div className='z-10 flex flex-col gap-4'>\n <div\n dangerouslySetInnerHTML={{ __html: headTitle }}\n className={cn('mob-headline-bold-m text-color-dark desktop:desk-headline-bold-l', classes?.title)}\n />\n <div\n dangerouslySetInnerHTML={{ __html: subtitle }}\n className={cn('desk-body-regular-l text-color-dark', classes?.subtitle)}\n />\n </div>\n\n <Buttons headTitle={headTitle} buttonConfig={buttonsConfig} />\n </div>\n </div>\n\n {advantages?.enabled && advantagesExist && (\n <Advantages\n classes={{\n root: 'mobile:hidden desktop:absolute desktop:bottom-[-50px] desktop:right-1/2 desktop:translate-x-1/2 desktop:rounded-md desktop:p-0'\n }}\n {...advantages}\n />\n )}\n </ResponsiveContainer>\n </section>\n {advantages?.enabled && advantagesExist && (\n <Advantages\n classes={{\n root: 'px-4 pt-4 mobile:bg-color-white desktop:hidden'\n }}\n {...advantages}\n />\n )}\n </>\n )\n}\n"],"names":["BannerImageFull","headTitle","subtitle","buttonsConfig","advantages","classes","images","backgroundColor","isMobile","useDevice","advantagesExist","jsxs","Fragment","cn","jsx","ResponsiveContainer","Buttons","Advantages"],"mappings":"uXAMO,MAAMA,EAAkB,CAAC,CAC9B,UAAAC,EACA,SAAAC,EACA,cAAAC,EACA,WAAAC,EACA,QAAAC,EACA,OAAAC,EACA,gBAAAC,CACF,IAA0C,CACxC,KAAM,CAAE,SAAAC,CAAA,EAAaC,EAAA,EAEfC,EAAkBN,GAAY,SAAWA,GAAY,SAAS,MAAM,OAAS,EAEnF,OACEO,EAAAC,EAAA,CACE,SAAA,CAAAD,EAAC,UAAA,CACC,GAAG,SACH,eAAa,SACb,MAAO,CAAE,gBAAiBJ,GAAmB,SAAA,EAC7C,UAAWM,EAAG,uCAAwCR,GAAS,IAAI,EAEnE,SAAA,CAAAS,EAAC,MAAA,CAAI,UAAU,yFACZ,SAAAN,EACCM,EAAC,MAAA,CACC,QAAQ,QACR,cAAc,OACd,IAAKR,GAAQ,OACb,UAAU,2CACV,IAAKA,GAAQ,GAAA,CAAA,EAGfQ,EAAC,MAAA,CACC,QAAQ,QACR,cAAc,OACd,IAAKR,GAAQ,QACb,IAAKA,GAAQ,IACb,UAAU,0CAAA,CAAA,EAGhB,IAECS,EAAA,CAAoB,UAAWF,EAAG,SAAUR,GAAS,SAAS,EAC7D,SAAA,CAAAS,EAAC,MAAA,CAAI,UAAWD,EAAG,cAAeR,GAAS,OAAO,EAChD,SAAAM,EAAC,MAAA,CAAI,UAAWE,EAAG,mEAAoER,GAAS,SAAS,EACvG,SAAA,CAAAM,EAAC,MAAA,CAAI,UAAU,2BACb,SAAA,CAAAG,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQb,CAAA,EACnC,UAAWY,EAAG,mEAAoER,GAAS,KAAK,CAAA,CAAA,EAElGS,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQZ,CAAA,EACnC,UAAWW,EAAG,sCAAuCR,GAAS,QAAQ,CAAA,CAAA,CACxE,EACF,EAEAS,EAACE,EAAA,CAAQ,UAAAf,EAAsB,aAAcE,CAAA,CAAe,CAAA,CAAA,CAC9D,CAAA,CACF,EAECC,GAAY,SAAWM,GACtBI,EAACG,EAAA,CACC,QAAS,CACP,KAAM,gIAAA,EAEP,GAAGb,CAAA,CAAA,CACN,CAAA,CAEJ,CAAA,CAAA,CAAA,EAEDA,GAAY,SAAWM,GACtBI,EAACG,EAAA,CACC,QAAS,CACP,KAAM,gDAAA,EAEP,GAAGb,CAAA,CAAA,CACN,EAEJ,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as d,jsx as e}from"react/jsx-runtime";import{cn as o}from"../../../../shared/utils/cn.js";import{Buttons as m}from"./ui/Buttons.js";import{Advantages as
|
|
1
|
+
import{jsxs as d,jsx as e}from"react/jsx-runtime";import{cn as o}from"../../../../shared/utils/cn.js";import{Buttons as m}from"./ui/Buttons.js";import{Advantages as s}from"./ui/Advantages.js";import{ResponsiveContainer as h}from"../../../../shared/ui/responsiveContainer/ResponsiveContainer.js";const u=({headTitle:i,subtitle:p,buttonsConfig:a,advantages:l,classes:t,images:r,backgroundColor:c})=>{const n=l?.details&&l?.details?.items.length>0;return d("section",{id:"banner",style:{backgroundColor:c??"#d9edff"},"data-test-id":"banner",className:o("",t?.root),children:[d(h,{className:o("relative desktop:h-[456px]",t?.container),children:[d("div",{className:o("flex flex-col desktop:flex-row desktop:justify-between",t?.wrapper),children:[d("div",{className:"flex flex-col desktop:gap-10 desktop:pt-20",children:[d("div",{className:o("flex flex-col gap-4 pt-6 desktop:pt-0",t?.textBlock),children:[e("div",{dangerouslySetInnerHTML:{__html:i},className:o("mob-headline-bold-m text-color-dark desktop:desk-headline-bold-l",t?.title)}),e("div",{dangerouslySetInnerHTML:{__html:p},className:o("desk-body-regular-l text-color-dark",t?.subtitle)})]}),e(m,{headTitle:i,buttonConfig:a,classes:{group:"z-10"}})]}),e("div",{className:o("relative flex h-[356px] justify-center desktop:hidden desktop:h-[456px] desktop:w-[550px]",t?.imageContainer),children:e("img",{loading:"eager",fetchpriority:"high",src:r?.mobile,alt:r?.alt,className:"h-full object-contain"})}),e("div",{className:o("relative flex h-[356px] justify-center mobile:hidden desktop:h-[456px] desktop:w-[550px]",t?.imageContainer),children:e("img",{loading:"eager",fetchpriority:"high",src:r?.desktop,alt:r?.alt,className:"h-full object-contain"})})]}),l?.enabled&&n&&e(s,{classes:{root:"mobile:hidden desktop:absolute desktop:bottom-[-50px] desktop:right-1/2 desktop:translate-x-1/2 desktop:rounded-md desktop:p-0"},...l})]}),l?.enabled&&n&&e(s,{classes:{root:"px-4 pt-4 mobile:bg-color-white desktop:hidden"},...l})]})};export{u as BannerWithSeparateImg};
|
|
2
2
|
//# sourceMappingURL=BannerWithSeparateImg.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BannerWithSeparateImg.js","sources":["../../../../../../lib/widgets/banner/ui/banners/BannerWithSeparateImg.tsx"],"sourcesContent":["/* eslint-disable react/no-unknown-property */\nimport { Advantages, Buttons } from './ui'\nimport { ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\nimport { type BannerProps } from '$/widgets'\n\nexport const BannerWithSeparateImg = ({\n headTitle,\n subtitle,\n buttonsConfig,\n advantages,\n classes,\n images,\n backgroundColor\n}: Omit<BannerProps, 'bannerVariant'>) => {\n const advantagesExist = advantages?.details && advantages?.details?.items.length > 0\n\n return (\n <section\n id='banner'\n style={{ backgroundColor: backgroundColor ?? '#d9edff' }}\n data-test-id='banner'\n className={cn('', classes?.root)}\n >\n <ResponsiveContainer className={cn('relative desktop:h-[456px]', classes?.container)}>\n <div className={cn('flex flex-col desktop:flex-row desktop:justify-between', classes?.wrapper)}>\n <div className='flex flex-col desktop:gap-10 desktop:pt-20'>\n <div className={cn('flex flex-col gap-4 pt-6 desktop:pt-0', classes?.textBlock)}>\n <div\n dangerouslySetInnerHTML={{ __html: headTitle }}\n className={cn('mob-headline-bold-m text-color-dark desktop:desk-headline-bold-l', classes?.title)}\n />\n <div\n dangerouslySetInnerHTML={{ __html: subtitle }}\n className={cn('desk-body-regular-l text-color-dark', classes?.subtitle)}\n />\n </div>\n\n <Buttons\n buttonConfig={buttonsConfig}\n classes={{\n group: 'z-10'\n }}\n />\n </div>\n\n <div\n className={cn(\n 'relative flex h-[356px] justify-center desktop:hidden desktop:h-[456px] desktop:w-[550px]',\n classes?.imageContainer\n )}\n >\n {/* @ts-expect-error fetchpriority */}\n <img loading='eager' fetchpriority='high' src={images?.mobile} alt={images?.alt} className='h-full object-contain' />\n </div>\n\n <div\n className={cn(\n 'relative flex h-[356px] justify-center mobile:hidden desktop:h-[456px] desktop:w-[550px]',\n classes?.imageContainer\n )}\n >\n {/* @ts-expect-error fetchpriority */}\n <img loading='eager' fetchpriority='high' src={images?.desktop} alt={images?.alt} className='h-full object-contain' />\n </div>\n </div>\n\n {advantages?.enabled && advantagesExist && (\n <Advantages\n classes={{\n root: 'mobile:hidden desktop:absolute desktop:bottom-[-50px] desktop:right-1/2 desktop:translate-x-1/2 desktop:rounded-md desktop:p-0'\n }}\n {...advantages}\n />\n )}\n </ResponsiveContainer>\n\n {advantages?.enabled && advantagesExist && (\n <Advantages\n classes={{\n root: 'px-4 pt-4 mobile:bg-color-white desktop:hidden'\n }}\n {...advantages}\n />\n )}\n </section>\n )\n}\n"],"names":["BannerWithSeparateImg","headTitle","subtitle","buttonsConfig","advantages","classes","images","backgroundColor","advantagesExist","jsxs","cn","ResponsiveContainer","jsx","Buttons","Advantages"],"mappings":"uSAMO,MAAMA,EAAwB,CAAC,CACpC,UAAAC,EACA,SAAAC,EACA,cAAAC,EACA,WAAAC,EACA,QAAAC,EACA,OAAAC,EACA,gBAAAC,CACF,IAA0C,CACxC,MAAMC,EAAkBJ,GAAY,SAAWA,GAAY,SAAS,MAAM,OAAS,EAEnF,OACEK,EAAC,UAAA,CACC,GAAG,SACH,MAAO,CAAE,gBAAiBF,GAAmB,SAAA,EAC7C,eAAa,SACb,UAAWG,EAAG,GAAIL,GAAS,IAAI,EAE/B,SAAA,CAAAI,EAACE,GAAoB,UAAWD,EAAG,6BAA8BL,GAAS,SAAS,EACjF,SAAA,CAAAI,EAAC,OAAI,UAAWC,EAAG,yDAA0DL,GAAS,OAAO,EAC3F,SAAA,CAAAI,EAAC,MAAA,CAAI,UAAU,6CACb,SAAA,CAAAA,EAAC,OAAI,UAAWC,EAAG,wCAAyCL,GAAS,SAAS,EAC5E,SAAA,CAAAO,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQX,CAAA,EACnC,UAAWS,EAAG,mEAAoEL,GAAS,KAAK,CAAA,CAAA,EAElGO,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQV,CAAA,EACnC,UAAWQ,EAAG,sCAAuCL,GAAS,QAAQ,CAAA,CAAA,CACxE,EACF,EAEAO,EAACC,EAAA,CACC,
|
|
1
|
+
{"version":3,"file":"BannerWithSeparateImg.js","sources":["../../../../../../lib/widgets/banner/ui/banners/BannerWithSeparateImg.tsx"],"sourcesContent":["/* eslint-disable react/no-unknown-property */\nimport { Advantages, Buttons } from './ui'\nimport { ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\nimport { type BannerProps } from '$/widgets'\n\nexport const BannerWithSeparateImg = ({\n headTitle,\n subtitle,\n buttonsConfig,\n advantages,\n classes,\n images,\n backgroundColor\n}: Omit<BannerProps, 'bannerVariant'>) => {\n const advantagesExist = advantages?.details && advantages?.details?.items.length > 0\n\n return (\n <section\n id='banner'\n style={{ backgroundColor: backgroundColor ?? '#d9edff' }}\n data-test-id='banner'\n className={cn('', classes?.root)}\n >\n <ResponsiveContainer className={cn('relative desktop:h-[456px]', classes?.container)}>\n <div className={cn('flex flex-col desktop:flex-row desktop:justify-between', classes?.wrapper)}>\n <div className='flex flex-col desktop:gap-10 desktop:pt-20'>\n <div className={cn('flex flex-col gap-4 pt-6 desktop:pt-0', classes?.textBlock)}>\n <div\n dangerouslySetInnerHTML={{ __html: headTitle }}\n className={cn('mob-headline-bold-m text-color-dark desktop:desk-headline-bold-l', classes?.title)}\n />\n <div\n dangerouslySetInnerHTML={{ __html: subtitle }}\n className={cn('desk-body-regular-l text-color-dark', classes?.subtitle)}\n />\n </div>\n\n <Buttons\n headTitle={headTitle}\n buttonConfig={buttonsConfig}\n classes={{\n group: 'z-10'\n }}\n />\n </div>\n\n <div\n className={cn(\n 'relative flex h-[356px] justify-center desktop:hidden desktop:h-[456px] desktop:w-[550px]',\n classes?.imageContainer\n )}\n >\n {/* @ts-expect-error fetchpriority */}\n <img loading='eager' fetchpriority='high' src={images?.mobile} alt={images?.alt} className='h-full object-contain' />\n </div>\n\n <div\n className={cn(\n 'relative flex h-[356px] justify-center mobile:hidden desktop:h-[456px] desktop:w-[550px]',\n classes?.imageContainer\n )}\n >\n {/* @ts-expect-error fetchpriority */}\n <img loading='eager' fetchpriority='high' src={images?.desktop} alt={images?.alt} className='h-full object-contain' />\n </div>\n </div>\n\n {advantages?.enabled && advantagesExist && (\n <Advantages\n classes={{\n root: 'mobile:hidden desktop:absolute desktop:bottom-[-50px] desktop:right-1/2 desktop:translate-x-1/2 desktop:rounded-md desktop:p-0'\n }}\n {...advantages}\n />\n )}\n </ResponsiveContainer>\n\n {advantages?.enabled && advantagesExist && (\n <Advantages\n classes={{\n root: 'px-4 pt-4 mobile:bg-color-white desktop:hidden'\n }}\n {...advantages}\n />\n )}\n </section>\n )\n}\n"],"names":["BannerWithSeparateImg","headTitle","subtitle","buttonsConfig","advantages","classes","images","backgroundColor","advantagesExist","jsxs","cn","ResponsiveContainer","jsx","Buttons","Advantages"],"mappings":"uSAMO,MAAMA,EAAwB,CAAC,CACpC,UAAAC,EACA,SAAAC,EACA,cAAAC,EACA,WAAAC,EACA,QAAAC,EACA,OAAAC,EACA,gBAAAC,CACF,IAA0C,CACxC,MAAMC,EAAkBJ,GAAY,SAAWA,GAAY,SAAS,MAAM,OAAS,EAEnF,OACEK,EAAC,UAAA,CACC,GAAG,SACH,MAAO,CAAE,gBAAiBF,GAAmB,SAAA,EAC7C,eAAa,SACb,UAAWG,EAAG,GAAIL,GAAS,IAAI,EAE/B,SAAA,CAAAI,EAACE,GAAoB,UAAWD,EAAG,6BAA8BL,GAAS,SAAS,EACjF,SAAA,CAAAI,EAAC,OAAI,UAAWC,EAAG,yDAA0DL,GAAS,OAAO,EAC3F,SAAA,CAAAI,EAAC,MAAA,CAAI,UAAU,6CACb,SAAA,CAAAA,EAAC,OAAI,UAAWC,EAAG,wCAAyCL,GAAS,SAAS,EAC5E,SAAA,CAAAO,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQX,CAAA,EACnC,UAAWS,EAAG,mEAAoEL,GAAS,KAAK,CAAA,CAAA,EAElGO,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQV,CAAA,EACnC,UAAWQ,EAAG,sCAAuCL,GAAS,QAAQ,CAAA,CAAA,CACxE,EACF,EAEAO,EAACC,EAAA,CACC,UAAAZ,EACA,aAAcE,EACd,QAAS,CACP,MAAO,MAAA,CACT,CAAA,CACF,EACF,EAEAS,EAAC,MAAA,CACC,UAAWF,EACT,4FACAL,GAAS,cAAA,EAIX,SAAAO,EAAC,MAAA,CAAI,QAAQ,QAAQ,cAAc,OAAO,IAAKN,GAAQ,OAAQ,IAAKA,GAAQ,IAAK,UAAU,uBAAA,CAAwB,CAAA,CAAA,EAGrHM,EAAC,MAAA,CACC,UAAWF,EACT,2FACAL,GAAS,cAAA,EAIX,SAAAO,EAAC,MAAA,CAAI,QAAQ,QAAQ,cAAc,OAAO,IAAKN,GAAQ,QAAS,IAAKA,GAAQ,IAAK,UAAU,uBAAA,CAAwB,CAAA,CAAA,CACtH,EACF,EAECF,GAAY,SAAWI,GACtBI,EAACE,EAAA,CACC,QAAS,CACP,KAAM,gIAAA,EAEP,GAAGV,CAAA,CAAA,CACN,EAEJ,EAECA,GAAY,SAAWI,GACtBI,EAACE,EAAA,CACC,QAAS,CACP,KAAM,gDAAA,EAEP,GAAGV,CAAA,CAAA,CACN,CAAA,CAAA,CAIR"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as i,jsx as l}from"react/jsx-runtime";import{cn as n}from"../../../../../shared/utils/cn.js";import{ButtonWithHandlers as s}from"../../../../buttonWithHandlers/ButtonWithHandlers.js";import{pushToDlButton as a}from"../../../../../shared/dataLayers/utils.js";const x=({buttonConfig:p,headTitle:r,classes:e})=>{const{primary:o,secondary:t}=p||{};return i("div",{className:n("grid-buttons-apply absolute bottom-6 left-1/2 flex w-full -translate-x-1/2 flex-col justify-self-center px-4 desktop:static desktop:left-auto desktop:max-w-full desktop:translate-x-0 desktop:flex-row desktop:justify-normal desktop:px-0",{"flex items-center gap-4":t?.enabled},e?.group),children:[o.enabled&&l(s,{onPointerDown:()=>a(o?.buttonContent?.children,r,"banner"),className:n("w-full desktop:max-w-[216px]",e?.primary),size:"lg",intent:"primary",...o.buttonContent}),t?.enabled&&l(s,{onPointerDown:()=>a(t?.buttonContent?.children,r,"banner"),intent:"secondary",size:"lg",className:n("w-full desktop:max-w-[216px]",e?.secondary),...t.buttonContent})]})};export{x as Buttons};
|
|
2
2
|
//# sourceMappingURL=Buttons.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Buttons.js","sources":["../../../../../../../lib/widgets/banner/ui/banners/ui/Buttons.tsx"],"sourcesContent":["import { ButtonWithHandlers } from '../../../../buttonWithHandlers'\nimport type { ButtonsConfig } from '../../../model'\nimport { cn } from '$/shared/utils'\n\nexport type ButtonsClasses = {\n group?: string\n primary?: string\n secondary?: string\n}\n\ninterface ButtonsProps {\n classes?: ButtonsClasses\n buttonConfig: ButtonsConfig\n}\n\nexport const Buttons = ({ buttonConfig, classes }: ButtonsProps) => {\n const { primary, secondary } = buttonConfig || {}\n\n return (\n <div\n className={cn(\n 'grid-buttons-apply absolute bottom-6 left-1/2 flex w-full -translate-x-1/2 flex-col justify-self-center px-4 desktop:static desktop:left-auto desktop:max-w-full desktop:translate-x-0 desktop:flex-row desktop:justify-normal desktop:px-0',\n { 'flex items-center gap-4': secondary?.enabled },\n classes?.group\n )}\n >\n {primary.enabled && (\n <ButtonWithHandlers\n className={cn('w-full desktop:max-w-[216px]', classes?.primary)}\n size='lg'\n intent='primary'\n {...primary.buttonContent}\n />\n )}\n {secondary?.enabled && (\n <ButtonWithHandlers\n intent='secondary'\n size='lg'\n className={cn('w-full desktop:max-w-[216px]', classes?.secondary)}\n {...secondary.buttonContent}\n />\n )}\n </div>\n )\n}\n"],"names":["Buttons","buttonConfig","classes","primary","secondary","jsxs","cn","jsx","ButtonWithHandlers"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Buttons.js","sources":["../../../../../../../lib/widgets/banner/ui/banners/ui/Buttons.tsx"],"sourcesContent":["import { pushToDlButton } from '../../../../../shared/dataLayers'\nimport { ButtonWithHandlers } from '../../../../buttonWithHandlers'\nimport type { ButtonsConfig } from '../../../model'\nimport { cn } from '$/shared/utils'\n\nexport type ButtonsClasses = {\n group?: string\n primary?: string\n secondary?: string\n}\n\ninterface ButtonsProps {\n classes?: ButtonsClasses\n buttonConfig: ButtonsConfig\n headTitle: string\n}\n\nexport const Buttons = ({ buttonConfig, headTitle, classes }: ButtonsProps) => {\n const { primary, secondary } = buttonConfig || {}\n\n return (\n <div\n className={cn(\n 'grid-buttons-apply absolute bottom-6 left-1/2 flex w-full -translate-x-1/2 flex-col justify-self-center px-4 desktop:static desktop:left-auto desktop:max-w-full desktop:translate-x-0 desktop:flex-row desktop:justify-normal desktop:px-0',\n { 'flex items-center gap-4': secondary?.enabled },\n classes?.group\n )}\n >\n {primary.enabled && (\n <ButtonWithHandlers\n onPointerDown={() => pushToDlButton(primary?.buttonContent?.children as string, headTitle, 'banner')}\n className={cn('w-full desktop:max-w-[216px]', classes?.primary)}\n size='lg'\n intent='primary'\n {...primary.buttonContent}\n />\n )}\n {secondary?.enabled && (\n <ButtonWithHandlers\n onPointerDown={() => pushToDlButton(secondary?.buttonContent?.children as string, headTitle, 'banner')}\n intent='secondary'\n size='lg'\n className={cn('w-full desktop:max-w-[216px]', classes?.secondary)}\n {...secondary.buttonContent}\n />\n )}\n </div>\n )\n}\n"],"names":["Buttons","buttonConfig","headTitle","classes","primary","secondary","jsxs","cn","jsx","ButtonWithHandlers","pushToDlButton"],"mappings":"8QAiBO,MAAMA,EAAU,CAAC,CAAE,aAAAC,EAAc,UAAAC,EAAW,QAAAC,KAA4B,CAC7E,KAAM,CAAE,QAAAC,EAAS,UAAAC,CAAA,EAAcJ,GAAgB,CAAA,EAE/C,OACEK,EAAC,MAAA,CACC,UAAWC,EACT,8OACA,CAAE,0BAA2BF,GAAW,OAAA,EACxCF,GAAS,KAAA,EAGV,SAAA,CAAAC,EAAQ,SACPI,EAACC,EAAA,CACC,cAAe,IAAMC,EAAeN,GAAS,eAAe,SAAoBF,EAAW,QAAQ,EACnG,UAAWK,EAAG,+BAAgCJ,GAAS,OAAO,EAC9D,KAAK,KACL,OAAO,UACN,GAAGC,EAAQ,aAAA,CAAA,EAGfC,GAAW,SACVG,EAACC,EAAA,CACC,cAAe,IAAMC,EAAeL,GAAW,eAAe,SAAoBH,EAAW,QAAQ,EACrG,OAAO,YACP,KAAK,KACL,UAAWK,EAAG,+BAAgCJ,GAAS,SAAS,EAC/D,GAAGE,EAAU,aAAA,CAAA,CAChB,CAAA,CAAA,CAIR"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as e,jsxs as n}from"react/jsx-runtime";import{cva as m}from"class-variance-authority";import{BenefitItem as a}from"./ui/BenefitItem.js";import{cn as o}from"../../shared/utils/cn.js";import{ResponsiveContainer as l}from"../../shared/ui/responsiveContainer/ResponsiveContainer.js";const p=m("grid gap-4",{variants:{variant:{twoCards:"grid-cols-1 mobile:grid-rows-[repeat(2,400px)] desktop:grid-cols-2",threeCards:"grid-cols-1 desktop:grid-cols-2",fourCards:"grid-cols-1 mobile:grid-rows-[400px,1fr,1fr,400px] desktop:grid-cols-3"}}}),x=({headline:i,details:s,variant:t,classes:r})=>e("section",{id:"benefit","data-test-id":"benefit",className:o(r?.root),children:n(l,{className:r?.container,children:[e("div",{dangerouslySetInnerHTML:{__html:i},className:o("mob-headline-bold-s mb-8 desktop:desk-headline-bold-m",r?.heading)}),e("ul",{className:o(p({variant:t}),r?.grid),children:s?.map(d=>e(a,{headline:i,variant:t,classes:r?.item,...d},d.title))})]})});export{x as Benefit,x as default};
|
|
2
2
|
//# sourceMappingURL=Benefit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Benefit.js","sources":["../../../../lib/widgets/benefit/Benefit.tsx"],"sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport { type Details } from './model/types'\nimport { BenefitItem, type BenefitItemClasses } from './ui/BenefitItem'\nimport { ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type BenefitClasses = {\n root?: string\n container?: string\n item?: BenefitItemClasses\n heading?: string\n grid?: string\n}\n\nconst gridConfig = cva('grid gap-4', {\n variants: {\n variant: {\n twoCards: 'grid-cols-1 mobile:grid-rows-[repeat(2,400px)] desktop:grid-cols-2',\n threeCards: 'grid-cols-1 desktop:grid-cols-2',\n fourCards: 'grid-cols-1 mobile:grid-rows-[400px,1fr,1fr,400px] desktop:grid-cols-3'\n }\n }\n})\n\nexport interface BenefitProps {\n headline: string\n classes?: BenefitClasses\n variant: 'twoCards' | 'threeCards' | 'fourCards'\n details: Details[]\n}\n\nexport const Benefit = ({ headline, details, variant, classes }: BenefitProps) => {\n return (\n <section id='benefit' data-test-id='benefit' className={cn(classes?.root)}>\n <ResponsiveContainer className={classes?.container}>\n <div\n dangerouslySetInnerHTML={{ __html: headline }}\n className={cn('mob-headline-bold-s mb-8 desktop:desk-headline-bold-m', classes?.heading)}\n />\n <ul className={cn(gridConfig({ variant }), classes?.grid)}>\n {details?.map((card) => (\n <BenefitItem variant={variant} key={card.title} classes={classes?.item} {...card} />\n ))}\n </ul>\n </ResponsiveContainer>\n </section>\n )\n}\n\nexport default Benefit\n"],"names":["gridConfig","cva","Benefit","headline","details","variant","classes","jsx","cn","jsxs","ResponsiveContainer","card","BenefitItem"],"mappings":"kSAgBA,MAAMA,EAAaC,EAAI,aAAc,CACnC,SAAU,CACR,QAAS,CACP,SAAU,qEACV,WAAY,kCACZ,UAAW,wEAAA,CACb,CAEJ,CAAC,EASYC,EAAU,CAAC,CAAE,SAAAC,EAAU,QAAAC,EAAS,QAAAC,EAAS,QAAAC,KAElDC,EAAC,UAAA,CAAQ,GAAG,UAAU,eAAa,UAAU,UAAWC,EAAGF,GAAS,IAAI,EACtE,SAAAG,EAACC,EAAA,CAAoB,UAAWJ,GAAS,UACvC,SAAA,CAAAC,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQJ,CAAA,EACnC,UAAWK,EAAG,wDAAyDF,GAAS,OAAO,CAAA,CAAA,EAEzFC,EAAC,KAAA,CAAG,UAAWC,EAAGR,EAAW,CAAE,QAAAK,CAAA,CAAS,EAAGC,GAAS,IAAI,EACrD,SAAAF,GAAS,IAAKO,GACbJ,EAACK,EAAA,CAAY,
|
|
1
|
+
{"version":3,"file":"Benefit.js","sources":["../../../../lib/widgets/benefit/Benefit.tsx"],"sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport { type Details } from './model/types'\nimport { BenefitItem, type BenefitItemClasses } from './ui/BenefitItem'\nimport { ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type BenefitClasses = {\n root?: string\n container?: string\n item?: BenefitItemClasses\n heading?: string\n grid?: string\n}\n\nconst gridConfig = cva('grid gap-4', {\n variants: {\n variant: {\n twoCards: 'grid-cols-1 mobile:grid-rows-[repeat(2,400px)] desktop:grid-cols-2',\n threeCards: 'grid-cols-1 desktop:grid-cols-2',\n fourCards: 'grid-cols-1 mobile:grid-rows-[400px,1fr,1fr,400px] desktop:grid-cols-3'\n }\n }\n})\n\nexport interface BenefitProps {\n headline: string\n classes?: BenefitClasses\n variant: 'twoCards' | 'threeCards' | 'fourCards'\n details: Details[]\n}\n\nexport const Benefit = ({ headline, details, variant, classes }: BenefitProps) => {\n return (\n <section id='benefit' data-test-id='benefit' className={cn(classes?.root)}>\n <ResponsiveContainer className={classes?.container}>\n <div\n dangerouslySetInnerHTML={{ __html: headline }}\n className={cn('mob-headline-bold-s mb-8 desktop:desk-headline-bold-m', classes?.heading)}\n />\n <ul className={cn(gridConfig({ variant }), classes?.grid)}>\n {details?.map((card) => (\n <BenefitItem headline={headline} variant={variant} key={card.title} classes={classes?.item} {...card} />\n ))}\n </ul>\n </ResponsiveContainer>\n </section>\n )\n}\n\nexport default Benefit\n"],"names":["gridConfig","cva","Benefit","headline","details","variant","classes","jsx","cn","jsxs","ResponsiveContainer","card","BenefitItem"],"mappings":"kSAgBA,MAAMA,EAAaC,EAAI,aAAc,CACnC,SAAU,CACR,QAAS,CACP,SAAU,qEACV,WAAY,kCACZ,UAAW,wEAAA,CACb,CAEJ,CAAC,EASYC,EAAU,CAAC,CAAE,SAAAC,EAAU,QAAAC,EAAS,QAAAC,EAAS,QAAAC,KAElDC,EAAC,UAAA,CAAQ,GAAG,UAAU,eAAa,UAAU,UAAWC,EAAGF,GAAS,IAAI,EACtE,SAAAG,EAACC,EAAA,CAAoB,UAAWJ,GAAS,UACvC,SAAA,CAAAC,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQJ,CAAA,EACnC,UAAWK,EAAG,wDAAyDF,GAAS,OAAO,CAAA,CAAA,EAEzFC,EAAC,KAAA,CAAG,UAAWC,EAAGR,EAAW,CAAE,QAAAK,CAAA,CAAS,EAAGC,GAAS,IAAI,EACrD,SAAAF,GAAS,IAAKO,GACbJ,EAACK,EAAA,CAAY,SAAAT,EAAoB,QAAAE,EAAmC,QAASC,GAAS,KAAO,GAAGK,CAAA,EAAxCA,EAAK,KAAyC,CACvG,CAAA,CACH,CAAA,CAAA,CACF,CAAA,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as n,jsx as r}from"react/jsx-runtime";import{cva as m}from"class-variance-authority";import{cn as t}from"../../../shared/utils/cn.js";import{ButtonWithHandlers as u}from"../../buttonWithHandlers/ButtonWithHandlers.js";import{pushToDlButton as x}from"../../../shared/dataLayers/utils.js";import{TypeGuards as k}from"../../../shared/utils/typeGuards.js";import{useDevice as y}from"../../../shared/hooks/useDevice.js";const h=m("flex flex-col justify-between overflow-hidden rounded-md bg-color-blue-grey-100 py-6 desktop:flex-row desktop:px-0 desktop:py-0",{variants:{variant:{twoCards:"",threeCards:"desktop:first:col-span-full",fourCards:"desktop:first:col-span-2 desktop:last:col-span-2"}}}),D=({subtitle:d,title:i,img:o,classes:e,button:l,variant:a,color:f,enabledMobileImage:s,headline:c})=>{const{isDesktop:p}=y();return n("li",{style:{backgroundColor:f??"#F3F4F7"},className:t(h({variant:a}),{"pb-0":s},{"pb-12":!s},e?.root),children:[n("div",{className:t("flex flex-col items-start justify-between px-4 desktop:px-8 desktop:py-8",e?.wrapper),children:[n("div",{className:t("flex flex-col gap-4",e?.textContainer),children:[r("div",{dangerouslySetInnerHTML:{__html:i},className:t("desktop:desk-title-bold-s",e?.title)}),r("div",{dangerouslySetInnerHTML:{__html:d},className:t("mob-body-regular-l text-icon-blue-grey-800 desktop:desk-body-regular-l",e?.subtitle)})]}),p&&l?.handlerOptions&&r(u,{onPointerDown:()=>x(l?.children,c,"benefit"),intent:"primary",className:t("desktop:w-[200px]",e?.button),size:"lg",...l})]}),(s||p)&&o&&r("div",{className:t("flex w-full justify-end",e?.imgContainer),children:o&&"url"in o&&k.isObject(o)?r("img",{className:t("h-[246px] object-cover",e?.img),src:o.url,alt:o.alt}):o})]},i)};export{D as BenefitItem};
|
|
2
2
|
//# sourceMappingURL=BenefitItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BenefitItem.js","sources":["../../../../../lib/widgets/benefit/ui/BenefitItem.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority'\nimport { type Details } from '../model/types'\nimport { useDevice } from '$/shared/hooks'\nimport { cn, TypeGuards } from '$/shared/utils'\nimport { ButtonWithHandlers } from '$/widgets/buttonWithHandlers'\n\nexport type BenefitItemClasses = {\n root?: string\n button?: string\n wrapper?: string\n textContainer?: string\n subtitle?: string\n img?: string\n imgContainer?: string\n title?: string\n}\n\nconst itemConfig = cva(\n 'flex flex-col justify-between overflow-hidden rounded-md bg-color-blue-grey-100 py-6 desktop:flex-row desktop:px-0 desktop:py-0',\n {\n variants: {\n variant: {\n twoCards: '',\n threeCards: 'desktop:first:col-span-full',\n fourCards: 'desktop:first:col-span-2 desktop:last:col-span-2'\n }\n }\n }\n)\n\nexport interface BenefitItemProps extends Details {\n classes?: BenefitItemClasses\n variant?: 'twoCards' | 'threeCards' | 'fourCards'\n}\n\nexport const BenefitItem = ({
|
|
1
|
+
{"version":3,"file":"BenefitItem.js","sources":["../../../../../lib/widgets/benefit/ui/BenefitItem.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority'\nimport { pushToDlButton } from '../../../shared/dataLayers'\nimport { type Details } from '../model/types'\nimport { useDevice } from '$/shared/hooks'\nimport { cn, TypeGuards } from '$/shared/utils'\nimport { ButtonWithHandlers } from '$/widgets/buttonWithHandlers'\n\nexport type BenefitItemClasses = {\n root?: string\n button?: string\n wrapper?: string\n textContainer?: string\n subtitle?: string\n img?: string\n imgContainer?: string\n title?: string\n}\n\nconst itemConfig = cva(\n 'flex flex-col justify-between overflow-hidden rounded-md bg-color-blue-grey-100 py-6 desktop:flex-row desktop:px-0 desktop:py-0',\n {\n variants: {\n variant: {\n twoCards: '',\n threeCards: 'desktop:first:col-span-full',\n fourCards: 'desktop:first:col-span-2 desktop:last:col-span-2'\n }\n }\n }\n)\n\nexport interface BenefitItemProps extends Details {\n classes?: BenefitItemClasses\n variant?: 'twoCards' | 'threeCards' | 'fourCards'\n headline: string\n}\n\nexport const BenefitItem = ({\n subtitle,\n title,\n img,\n classes,\n button,\n variant,\n color,\n enabledMobileImage,\n headline\n}: BenefitItemProps) => {\n const { isDesktop } = useDevice()\n\n return (\n <li\n key={title}\n style={{ backgroundColor: color ?? '#F3F4F7' }}\n className={cn(itemConfig({ variant }), { 'pb-0': enabledMobileImage }, { 'pb-12': !enabledMobileImage }, classes?.root)}\n >\n <div className={cn('flex flex-col items-start justify-between px-4 desktop:px-8 desktop:py-8', classes?.wrapper)}>\n <div className={cn('flex flex-col gap-4', classes?.textContainer)}>\n <div dangerouslySetInnerHTML={{ __html: title }} className={cn('desktop:desk-title-bold-s', classes?.title)} />\n <div\n dangerouslySetInnerHTML={{ __html: subtitle }}\n className={cn('mob-body-regular-l text-icon-blue-grey-800 desktop:desk-body-regular-l', classes?.subtitle)}\n />\n </div>\n\n {isDesktop && button?.handlerOptions && (\n <ButtonWithHandlers\n onPointerDown={() => pushToDlButton(button?.children as string, headline, 'benefit')}\n intent='primary'\n className={cn('desktop:w-[200px]', classes?.button)}\n size='lg'\n {...button}\n />\n )}\n </div>\n\n {(enabledMobileImage || isDesktop) && img && (\n <div className={cn('flex w-full justify-end', classes?.imgContainer)}>\n {img && 'url' in img && TypeGuards.isObject(img) ? (\n <img className={cn('h-[246px] object-cover', classes?.img)} src={img.url} alt={img.alt} />\n ) : (\n img\n )}\n </div>\n )}\n </li>\n )\n}\n"],"names":["itemConfig","cva","BenefitItem","subtitle","title","img","classes","button","variant","color","enabledMobileImage","headline","isDesktop","useDevice","jsxs","cn","jsx","ButtonWithHandlers","pushToDlButton","TypeGuards"],"mappings":"2aAkBA,MAAMA,EAAaC,EACjB,kIACA,CACE,SAAU,CACR,QAAS,CACP,SAAU,GACV,WAAY,8BACZ,UAAW,kDAAA,CACb,CACF,CAEJ,EAQaC,EAAc,CAAC,CAC1B,SAAAC,EACA,MAAAC,EACA,IAAAC,EACA,QAAAC,EACA,OAAAC,EACA,QAAAC,EACA,MAAAC,EACA,mBAAAC,EACA,SAAAC,CACF,IAAwB,CACtB,KAAM,CAAE,UAAAC,CAAA,EAAcC,EAAA,EAEtB,OACEC,EAAC,KAAA,CAEC,MAAO,CAAE,gBAAiBL,GAAS,SAAA,EACnC,UAAWM,EAAGf,EAAW,CAAE,QAAAQ,CAAA,CAAS,EAAG,CAAE,OAAQE,CAAA,EAAsB,CAAE,QAAS,CAACA,CAAA,EAAsBJ,GAAS,IAAI,EAEtH,SAAA,CAAAQ,EAAC,OAAI,UAAWC,EAAG,2EAA4ET,GAAS,OAAO,EAC7G,SAAA,CAAAQ,EAAC,OAAI,UAAWC,EAAG,sBAAuBT,GAAS,aAAa,EAC9D,SAAA,CAAAU,EAAC,MAAA,CAAI,wBAAyB,CAAE,OAAQZ,CAAA,EAAS,UAAWW,EAAG,4BAA6BT,GAAS,KAAK,CAAA,CAAG,EAC7GU,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQb,CAAA,EACnC,UAAWY,EAAG,yEAA0ET,GAAS,QAAQ,CAAA,CAAA,CAC3G,EACF,EAECM,GAAaL,GAAQ,gBACpBS,EAACC,EAAA,CACC,cAAe,IAAMC,EAAeX,GAAQ,SAAoBI,EAAU,SAAS,EACnF,OAAO,UACP,UAAWI,EAAG,oBAAqBT,GAAS,MAAM,EAClD,KAAK,KACJ,GAAGC,CAAA,CAAA,CACN,EAEJ,GAEEG,GAAsBE,IAAcP,GACpCW,EAAC,OAAI,UAAWD,EAAG,0BAA2BT,GAAS,YAAY,EAChE,SAAAD,GAAO,QAASA,GAAOc,EAAW,SAASd,CAAG,EAC7CW,EAAC,MAAA,CAAI,UAAWD,EAAG,yBAA0BT,GAAS,GAAG,EAAG,IAAKD,EAAI,IAAK,IAAKA,EAAI,GAAA,CAAK,EAExFA,CAAA,CAEJ,CAAA,CAAA,EA/BGD,CAAA,CAmCX"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as o,Fragment as
|
|
1
|
+
import{jsx as o,Fragment as a}from"react/jsx-runtime";import{cn as n}from"../../shared/utils/cn.js";import{pushToDlLink as i}from"../../shared/dataLayers/utils.js";const p=({breadcrumb:e,className:r,isLast:l,...t})=>o(a,{children:l?o("p",{className:n("desk-body-regular-m pointer-events-none text-color-tetriary",r),...t,children:e.label}):o("a",{onPointerDown:()=>i(e?.label,e?.path,"seoHeader"),href:e.path,className:n("desk-body-regular-m",r),...t,children:e.label})});export{p as Breadcrumb};
|
|
2
2
|
//# sourceMappingURL=Breadcrumb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumb.js","sources":["../../../../lib/widgets/breadcrumbs/Breadcrumb.tsx"],"sourcesContent":["import { pushToDlLink } from '
|
|
1
|
+
{"version":3,"file":"Breadcrumb.js","sources":["../../../../lib/widgets/breadcrumbs/Breadcrumb.tsx"],"sourcesContent":["import { pushToDlLink } from '../../shared/dataLayers'\nimport type { Breadcrumb as BreadcrumbType } from './hooks'\nimport { cn } from '$/shared/utils'\n\ntype BreadcrumbProps = React.AnchorHTMLAttributes<HTMLAnchorElement | HTMLDivElement> & {\n breadcrumb: BreadcrumbType\n isLast?: boolean\n}\n\nexport const Breadcrumb = ({ breadcrumb, className, isLast, ...props }: BreadcrumbProps) => {\n return (\n <>\n {isLast ? (\n <p className={cn('desk-body-regular-m pointer-events-none text-color-tetriary', className)} {...props}>\n {breadcrumb.label}\n </p>\n ) : (\n <a\n onPointerDown={() => pushToDlLink(breadcrumb?.label, breadcrumb?.path, 'seoHeader')}\n href={breadcrumb.path}\n className={cn('desk-body-regular-m', className)}\n {...props}\n >\n {breadcrumb.label}\n </a>\n )}\n </>\n )\n}\n"],"names":["Breadcrumb","breadcrumb","className","isLast","props","jsx","Fragment","cn","pushToDlLink"],"mappings":"oKASO,MAAMA,EAAa,CAAC,CAAE,WAAAC,EAAY,UAAAC,EAAW,OAAAC,EAAQ,GAAGC,KAE3DC,EAAAC,EAAA,CACG,SAAAH,EACCE,EAAC,IAAA,CAAE,UAAWE,EAAG,8DAA+DL,CAAS,EAAI,GAAGE,EAC7F,SAAAH,EAAW,MACd,EAEAI,EAAC,IAAA,CACC,cAAe,IAAMG,EAAaP,GAAY,MAAOA,GAAY,KAAM,WAAW,EAClF,KAAMA,EAAW,KACjB,UAAWM,EAAG,sBAAuBL,CAAS,EAC7C,GAAGE,EAEH,SAAAH,EAAW,KAAA,CAAA,EAGlB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as t,jsxs as f}from"react/jsx-runtime";import{useState as p,useMemo as C}from"react";import{CalculatorView as b}from"./CalculatorView.js";import{cn as
|
|
1
|
+
import{jsx as t,jsxs as f}from"react/jsx-runtime";import{useState as p,useMemo as C}from"react";import{CalculatorView as b}from"./CalculatorView.js";import{cn as l}from"../../shared/utils/cn.js";import{CalculatorTabs as h}from"./ui/CalculatorTabs.js";import{ResponsiveContainer as g}from"../../shared/ui/responsiveContainer/ResponsiveContainer.js";import{Heading as x}from"../../shared/ui/heading/Heading.js";const S=({calculators:o,headline:c,classes:a})=>{const e=o.length>1,[i,s]=p(e?o[0]?.name:""),m=C(()=>o?.map(({name:n,label:d})=>({name:n,label:d})),[o]),u=e?m?.findIndex(n=>n.name===i):0,r=o[u];return t("section",{id:"calculator","data-test-id":"calculator",className:l(a?.root),children:t(g,{className:l(a?.container),children:f("div",{className:l(a?.wrapper),children:[t(x,{className:l("mb-8 desktop:mb-12",a?.headline),as:"h2",children:c}),e&&t(h,{headline:c,calculatorTabs:m,activeCalculator:i,setActiveCalculator:s,classes:a?.calculatorTabs}),t(b,{name:r.name,label:r.label,calculatorInfoConfig:r.calculatorInfoConfig,calculatorFieldsConfig:r.calculatorFieldsConfig,classes:a?.calculatorView,headline:c})]})})})};export{S as Calculator,S as default};
|
|
2
2
|
//# sourceMappingURL=Calculator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calculator.js","sources":["../../../../lib/widgets/calculator/Calculator.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport { cn } from '../../shared/utils'\nimport { CalculatorView, type CalculatorViewClasses, type CalculatorViewProps } from './CalculatorView'\nimport { CalculatorTabs, type CalculatorTabsClasses, type CalculatorTabValue } from './ui'\nimport { Heading, ResponsiveContainer } from '$/shared/ui'\n\nexport type CalculatorClasses = {\n root?: string\n container?: string\n headline?: string\n wrapper?: string\n calculatorView?: CalculatorViewClasses\n calculatorTabs?: CalculatorTabsClasses\n}\n\nexport interface CalculatorProps {\n headline: string\n calculators: CalculatorViewProps[]\n classes?: CalculatorClasses\n}\n\nexport const Calculator = ({ calculators, headline, classes }: CalculatorProps) => {\n const shouldShowTabs = calculators.length > 1\n\n const [activeCalculator, setActiveCalculator] = useState<CalculatorTabValue>(shouldShowTabs ? calculators[0]?.name : '')\n\n const calculatorsTabs = useMemo(() => calculators?.map(({ name, label }) => ({ name, label })), [calculators])\n\n const currentCalculatorIndex = shouldShowTabs\n ? calculatorsTabs?.findIndex((tab) => tab.name === activeCalculator) // Активный калькулятор по значению таба\n : 0 // Берем первый калькулятор если табов нет\n\n const currentCalculator = calculators[currentCalculatorIndex]\n\n return (\n <section id='calculator' data-test-id='calculator' className={cn(classes?.root)}>\n <ResponsiveContainer className={cn(classes?.container)}>\n <div className={cn(classes?.wrapper)}>\n <Heading className={cn('mb-8 desktop:mb-12', classes?.headline)} as='h2'>\n {headline}\n </Heading>\n {shouldShowTabs && (\n <CalculatorTabs\n calculatorTabs={calculatorsTabs}\n activeCalculator={activeCalculator}\n setActiveCalculator={setActiveCalculator}\n classes={classes?.calculatorTabs}\n />\n )}\n\n <CalculatorView\n name={currentCalculator.name}\n label={currentCalculator.label}\n calculatorInfoConfig={currentCalculator.calculatorInfoConfig}\n calculatorFieldsConfig={currentCalculator.calculatorFieldsConfig}\n classes={classes?.calculatorView}\n />\n </div>\n </ResponsiveContainer>\n </section>\n )\n}\n\nexport default Calculator\n"],"names":["Calculator","calculators","headline","classes","shouldShowTabs","activeCalculator","setActiveCalculator","useState","calculatorsTabs","useMemo","name","label","currentCalculatorIndex","tab","currentCalculator","jsx","cn","ResponsiveContainer","jsxs","Heading","CalculatorTabs","CalculatorView"],"mappings":"yZAqBO,MAAMA,EAAa,CAAC,CAAE,YAAAC,EAAa,SAAAC,EAAU,QAAAC,KAA+B,CACjF,MAAMC,EAAiBH,EAAY,OAAS,EAEtC,CAACI,EAAkBC,CAAmB,EAAIC,EAA6BH,EAAiBH,EAAY,CAAC,GAAG,KAAO,EAAE,EAEjHO,EAAkBC,EAAQ,IAAMR,GAAa,IAAI,CAAC,CAAE,KAAAS,EAAM,MAAAC,CAAA,KAAa,CAAE,KAAAD,EAAM,MAAAC,CAAA,EAAQ,EAAG,CAACV,CAAW,CAAC,EAEvGW,EAAyBR,EAC3BI,GAAiB,UAAWK,GAAQA,EAAI,OAASR,CAAgB,EACjE,EAEES,EAAoBb,EAAYW,CAAsB,EAE5D,OACEG,EAAC,UAAA,CAAQ,GAAG,aAAa,eAAa,aAAa,UAAWC,EAAGb,GAAS,IAAI,EAC5E,SAAAY,EAACE,GAAoB,UAAWD,EAAGb,GAAS,SAAS,EACnD,SAAAe,EAAC,OAAI,UAAWF,EAAGb,GAAS,OAAO,EACjC,SAAA,CAAAY,EAACI,EAAA,CAAQ,UAAWH,EAAG,qBAAsBb,GAAS,QAAQ,EAAG,GAAG,KACjE,SAAAD,CAAA,CACH,EACCE,GACCW,EAACK,EAAA,CACC,
|
|
1
|
+
{"version":3,"file":"Calculator.js","sources":["../../../../lib/widgets/calculator/Calculator.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport { cn } from '../../shared/utils'\nimport { CalculatorView, type CalculatorViewClasses, type CalculatorViewProps } from './CalculatorView'\nimport { CalculatorTabs, type CalculatorTabsClasses, type CalculatorTabValue } from './ui'\nimport { Heading, ResponsiveContainer } from '$/shared/ui'\n\nexport type CalculatorClasses = {\n root?: string\n container?: string\n headline?: string\n wrapper?: string\n calculatorView?: CalculatorViewClasses\n calculatorTabs?: CalculatorTabsClasses\n}\n\nexport interface CalculatorProps {\n headline: string\n calculators: CalculatorViewProps[]\n classes?: CalculatorClasses\n}\n\nexport const Calculator = ({ calculators, headline, classes }: CalculatorProps) => {\n const shouldShowTabs = calculators.length > 1\n\n const [activeCalculator, setActiveCalculator] = useState<CalculatorTabValue>(shouldShowTabs ? calculators[0]?.name : '')\n\n const calculatorsTabs = useMemo(() => calculators?.map(({ name, label }) => ({ name, label })), [calculators])\n\n const currentCalculatorIndex = shouldShowTabs\n ? calculatorsTabs?.findIndex((tab) => tab.name === activeCalculator) // Активный калькулятор по значению таба\n : 0 // Берем первый калькулятор если табов нет\n\n const currentCalculator = calculators[currentCalculatorIndex]\n\n return (\n <section id='calculator' data-test-id='calculator' className={cn(classes?.root)}>\n <ResponsiveContainer className={cn(classes?.container)}>\n <div className={cn(classes?.wrapper)}>\n <Heading className={cn('mb-8 desktop:mb-12', classes?.headline)} as='h2'>\n {headline}\n </Heading>\n {shouldShowTabs && (\n <CalculatorTabs\n headline={headline}\n calculatorTabs={calculatorsTabs}\n activeCalculator={activeCalculator}\n setActiveCalculator={setActiveCalculator}\n classes={classes?.calculatorTabs}\n />\n )}\n\n <CalculatorView\n name={currentCalculator.name}\n label={currentCalculator.label}\n calculatorInfoConfig={currentCalculator.calculatorInfoConfig}\n calculatorFieldsConfig={currentCalculator.calculatorFieldsConfig}\n classes={classes?.calculatorView}\n headline={headline}\n />\n </div>\n </ResponsiveContainer>\n </section>\n )\n}\n\nexport default Calculator\n"],"names":["Calculator","calculators","headline","classes","shouldShowTabs","activeCalculator","setActiveCalculator","useState","calculatorsTabs","useMemo","name","label","currentCalculatorIndex","tab","currentCalculator","jsx","cn","ResponsiveContainer","jsxs","Heading","CalculatorTabs","CalculatorView"],"mappings":"yZAqBO,MAAMA,EAAa,CAAC,CAAE,YAAAC,EAAa,SAAAC,EAAU,QAAAC,KAA+B,CACjF,MAAMC,EAAiBH,EAAY,OAAS,EAEtC,CAACI,EAAkBC,CAAmB,EAAIC,EAA6BH,EAAiBH,EAAY,CAAC,GAAG,KAAO,EAAE,EAEjHO,EAAkBC,EAAQ,IAAMR,GAAa,IAAI,CAAC,CAAE,KAAAS,EAAM,MAAAC,CAAA,KAAa,CAAE,KAAAD,EAAM,MAAAC,CAAA,EAAQ,EAAG,CAACV,CAAW,CAAC,EAEvGW,EAAyBR,EAC3BI,GAAiB,UAAWK,GAAQA,EAAI,OAASR,CAAgB,EACjE,EAEES,EAAoBb,EAAYW,CAAsB,EAE5D,OACEG,EAAC,UAAA,CAAQ,GAAG,aAAa,eAAa,aAAa,UAAWC,EAAGb,GAAS,IAAI,EAC5E,SAAAY,EAACE,GAAoB,UAAWD,EAAGb,GAAS,SAAS,EACnD,SAAAe,EAAC,OAAI,UAAWF,EAAGb,GAAS,OAAO,EACjC,SAAA,CAAAY,EAACI,EAAA,CAAQ,UAAWH,EAAG,qBAAsBb,GAAS,QAAQ,EAAG,GAAG,KACjE,SAAAD,CAAA,CACH,EACCE,GACCW,EAACK,EAAA,CACC,SAAAlB,EACA,eAAgBM,EAChB,iBAAAH,EACA,oBAAAC,EACA,QAASH,GAAS,cAAA,CAAA,EAItBY,EAACM,EAAA,CACC,KAAMP,EAAkB,KACxB,MAAOA,EAAkB,MACzB,qBAAsBA,EAAkB,qBACxC,uBAAwBA,EAAkB,uBAC1C,QAASX,GAAS,eAClB,SAAAD,CAAA,CAAA,CACF,CAAA,CACF,EACF,EACF,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,jsxs as
|
|
1
|
+
import{jsx as e,jsxs as f}from"react/jsx-runtime";import{useEffect as p}from"react";import{FormProvider as d}from"react-hook-form";import{getCalculatorSchema as n,isFormula as h}from"./model/utils.js";import{localStorageActions as F}from"../../shared/utils/localStorageActions.js";import{evaluateFormula as g}from"./model/helpers.js";import{cn as x}from"../../shared/utils/cn.js";import{CalculatorFields as C}from"./ui/calculatorFields/CalculatorFields.js";import{CalculatorInfo as V}from"./ui/calculatorInfo/CalculatorInfo.js";import{useControlledForm as w}from"../../shared/hooks/useControlledForm.js";import{ZodUtils as b}from"../../shared/validation/utils/zodUtils.js";const N=({calculatorInfoConfig:l,calculatorFieldsConfig:a,classes:o,headline:s})=>{const m=n(a?.fieldsGroup),c=w({schema:m,mode:"onBlur",defaultValues:b.getZodDefaults(m)}),r=c.watch(),{rootValue:t}=l;p(()=>{F.setItem("calculatorData",r)},[r]);const i=h(t)?g(t.formula,r):t,u={...l,rootValue:i};return e(d,{...c,children:f("div",{className:x("flex items-start gap-16 mobile:flex-col mobile:items-center mobile:gap-8",o?.wrapper),children:[e(C,{...a,classes:o?.calculatorFields}),e(V,{...u,headline:s,classes:o?.calculatorInfo})]})})};export{N as CalculatorView};
|
|
2
2
|
//# sourceMappingURL=CalculatorView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalculatorView.js","sources":["../../../../lib/widgets/calculator/CalculatorView.tsx"],"sourcesContent":["import { useEffect } from 'react'\nimport { type FieldValues, FormProvider } from 'react-hook-form'\nimport { type CalculatorSchema, evaluateFormula, getCalculatorSchema, isFormula } from './model'\nimport {\n CalculatorFields,\n type CalculatorFieldsClasses,\n type CalculatorFieldsProps,\n CalculatorInfo,\n type CalculatorInfoClasses,\n type CalculatorInfoProps,\n type CalculatorTab\n} from './ui'\nimport { useControlledForm } from '$/shared/hooks'\nimport { cn, localStorageActions } from '$/shared/utils'\nimport { ZodUtils } from '$/shared/validation'\n\nexport type CalculatorViewClasses = {\n wrapper?: string\n calculatorFields?: CalculatorFieldsClasses\n calculatorInfo?: CalculatorInfoClasses\n}\n\nexport interface CalculatorViewProps<T extends FieldValues = FieldValues> extends CalculatorTab {\n calculatorInfoConfig: CalculatorInfoProps\n calculatorFieldsConfig: CalculatorFieldsProps<T>\n classes?: CalculatorViewClasses\n}\n\nexport const CalculatorView = <T extends FieldValues>({\n calculatorInfoConfig,\n calculatorFieldsConfig,\n classes\n}: CalculatorViewProps<T>) => {\n const calculatorSchema: CalculatorSchema = getCalculatorSchema(calculatorFieldsConfig?.fieldsGroup)\n\n const formMethods = useControlledForm({\n schema: calculatorSchema,\n mode: 'onBlur',\n defaultValues: ZodUtils.getZodDefaults(calculatorSchema)\n })\n\n const watchedFields = formMethods.watch()\n\n const { rootValue } = calculatorInfoConfig\n\n useEffect(() => {\n localStorageActions.setItem('calculatorData', watchedFields)\n }, [watchedFields])\n\n const calculatedValue = isFormula(rootValue) ? evaluateFormula(rootValue.formula, watchedFields) : rootValue\n\n const mergedCalcInfoConfig = { ...calculatorInfoConfig, rootValue: calculatedValue }\n\n return (\n <FormProvider {...formMethods}>\n <div className={cn('flex items-start gap-16 mobile:flex-col mobile:items-center mobile:gap-8', classes?.wrapper)}>\n <CalculatorFields {...calculatorFieldsConfig} classes={classes?.calculatorFields} />\n <CalculatorInfo {...mergedCalcInfoConfig} classes={classes?.calculatorInfo} />\n </div>\n </FormProvider>\n )\n}\n"],"names":["CalculatorView","calculatorInfoConfig","calculatorFieldsConfig","classes","calculatorSchema","getCalculatorSchema","formMethods","useControlledForm","ZodUtils","watchedFields","rootValue","useEffect","localStorageActions","calculatedValue","isFormula","evaluateFormula","mergedCalcInfoConfig","jsx","FormProvider","jsxs","cn","CalculatorFields","CalculatorInfo"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CalculatorView.js","sources":["../../../../lib/widgets/calculator/CalculatorView.tsx"],"sourcesContent":["import { useEffect } from 'react'\nimport { type FieldValues, FormProvider } from 'react-hook-form'\nimport { type CalculatorSchema, evaluateFormula, getCalculatorSchema, isFormula } from './model'\nimport {\n CalculatorFields,\n type CalculatorFieldsClasses,\n type CalculatorFieldsProps,\n CalculatorInfo,\n type CalculatorInfoClasses,\n type CalculatorInfoProps,\n type CalculatorTab\n} from './ui'\nimport { useControlledForm } from '$/shared/hooks'\nimport { cn, localStorageActions } from '$/shared/utils'\nimport { ZodUtils } from '$/shared/validation'\n\nexport type CalculatorViewClasses = {\n wrapper?: string\n calculatorFields?: CalculatorFieldsClasses\n calculatorInfo?: CalculatorInfoClasses\n}\n\nexport interface CalculatorViewProps<T extends FieldValues = FieldValues> extends CalculatorTab {\n calculatorInfoConfig: CalculatorInfoProps\n calculatorFieldsConfig: CalculatorFieldsProps<T>\n classes?: CalculatorViewClasses\n headline?: string\n}\n\nexport const CalculatorView = <T extends FieldValues>({\n calculatorInfoConfig,\n calculatorFieldsConfig,\n classes,\n headline\n}: CalculatorViewProps<T>) => {\n const calculatorSchema: CalculatorSchema = getCalculatorSchema(calculatorFieldsConfig?.fieldsGroup)\n\n const formMethods = useControlledForm({\n schema: calculatorSchema,\n mode: 'onBlur',\n defaultValues: ZodUtils.getZodDefaults(calculatorSchema)\n })\n\n const watchedFields = formMethods.watch()\n\n const { rootValue } = calculatorInfoConfig\n\n useEffect(() => {\n localStorageActions.setItem('calculatorData', watchedFields)\n }, [watchedFields])\n\n const calculatedValue = isFormula(rootValue) ? evaluateFormula(rootValue.formula, watchedFields) : rootValue\n\n const mergedCalcInfoConfig = { ...calculatorInfoConfig, rootValue: calculatedValue }\n\n return (\n <FormProvider {...formMethods}>\n <div className={cn('flex items-start gap-16 mobile:flex-col mobile:items-center mobile:gap-8', classes?.wrapper)}>\n <CalculatorFields {...calculatorFieldsConfig} classes={classes?.calculatorFields} />\n <CalculatorInfo {...mergedCalcInfoConfig} headline={headline} classes={classes?.calculatorInfo} />\n </div>\n </FormProvider>\n )\n}\n"],"names":["CalculatorView","calculatorInfoConfig","calculatorFieldsConfig","classes","headline","calculatorSchema","getCalculatorSchema","formMethods","useControlledForm","ZodUtils","watchedFields","rootValue","useEffect","localStorageActions","calculatedValue","isFormula","evaluateFormula","mergedCalcInfoConfig","jsx","FormProvider","jsxs","cn","CalculatorFields","CalculatorInfo"],"mappings":"iqBA6BO,MAAMA,EAAiB,CAAwB,CACpD,qBAAAC,EACA,uBAAAC,EACA,QAAAC,EACA,SAAAC,CACF,IAA8B,CAC5B,MAAMC,EAAqCC,EAAoBJ,GAAwB,WAAW,EAE5FK,EAAcC,EAAkB,CACpC,OAAQH,EACR,KAAM,SACN,cAAeI,EAAS,eAAeJ,CAAgB,CAAA,CACxD,EAEKK,EAAgBH,EAAY,MAAA,EAE5B,CAAE,UAAAI,GAAcV,EAEtBW,EAAU,IAAM,CACdC,EAAoB,QAAQ,iBAAkBH,CAAa,CAC7D,EAAG,CAACA,CAAa,CAAC,EAElB,MAAMI,EAAkBC,EAAUJ,CAAS,EAAIK,EAAgBL,EAAU,QAASD,CAAa,EAAIC,EAE7FM,EAAuB,CAAE,GAAGhB,EAAsB,UAAWa,CAAA,EAEnE,OACEI,EAACC,EAAA,CAAc,GAAGZ,EAChB,SAAAa,EAAC,MAAA,CAAI,UAAWC,EAAG,2EAA4ElB,GAAS,OAAO,EAC7G,SAAA,CAAAe,EAACI,EAAA,CAAkB,GAAGpB,EAAwB,QAASC,GAAS,iBAAkB,IACjFoB,EAAA,CAAgB,GAAGN,EAAsB,SAAAb,EAAoB,QAASD,GAAS,cAAA,CAAgB,CAAA,CAAA,CAClG,CAAA,CACF,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{memo as m}from"react";import{cn as
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{memo as m}from"react";import{cn as p}from"../../../shared/utils/cn.js";import{pushToDlTab as c}from"../../../shared/dataLayers/utils.js";const f=m(({calculatorTabs:l,activeCalculator:a,setActiveCalculator:n,headline:i,classes:r})=>e("div",{className:p("mb-8 flex items-center gap-4",r?.wrapper),children:l?.map(({name:o,label:t})=>e("button",{onPointerDown:()=>c(t,i,"calculator"),onClick:()=>n(o),className:p("mob-body-regular-m text-nowrap rounded-sm bg-color-blue-grey-100 px-3 py-1.5 text-color-secondary outline-1 outline-offset-4 outline-transparent desktop:desk-body-regular-l focus:outline-primary-focus desktop:px-4 desktop:py-3",{"bg-icon-primary-default text-color-white":a===o},r?.tab),children:t},o))}));export{f as CalculatorTabs};
|
|
2
2
|
//# sourceMappingURL=CalculatorTabs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalculatorTabs.js","sources":["../../../../../lib/widgets/calculator/ui/CalculatorTabs.tsx"],"sourcesContent":["import { type Dispatch, memo, type SetStateAction } from 'react'\nimport { cn } from '$/shared/utils'\n\nexport type CalculatorTabsClasses = {\n wrapper?: string\n tab?: string\n}\n\nexport interface CalculatorTab {\n name: string\n label: string\n}\n\nexport type CalculatorTabValue = CalculatorTab['name']\n\nexport interface CalculatorTabsProps {\n calculatorTabs?: CalculatorTab[]\n activeCalculator: CalculatorTabValue\n setActiveCalculator: Dispatch<SetStateAction<CalculatorTabValue>>\n classes?: CalculatorTabsClasses\n}\n\nexport const CalculatorTabs = memo(({ calculatorTabs, activeCalculator, setActiveCalculator, classes }: CalculatorTabsProps) => {\n
|
|
1
|
+
{"version":3,"file":"CalculatorTabs.js","sources":["../../../../../lib/widgets/calculator/ui/CalculatorTabs.tsx"],"sourcesContent":["import { type Dispatch, memo, type SetStateAction } from 'react'\nimport { pushToDlTab } from '../../../shared/dataLayers'\nimport { cn } from '$/shared/utils'\n\nexport type CalculatorTabsClasses = {\n wrapper?: string\n tab?: string\n}\n\nexport interface CalculatorTab {\n name: string\n label: string\n}\n\nexport type CalculatorTabValue = CalculatorTab['name']\n\nexport interface CalculatorTabsProps {\n calculatorTabs?: CalculatorTab[]\n activeCalculator: CalculatorTabValue\n setActiveCalculator: Dispatch<SetStateAction<CalculatorTabValue>>\n classes?: CalculatorTabsClasses\n headline: string\n}\n\nexport const CalculatorTabs = memo(\n ({ calculatorTabs, activeCalculator, setActiveCalculator, headline, classes }: CalculatorTabsProps) => {\n return (\n <div className={cn('mb-8 flex items-center gap-4', classes?.wrapper)}>\n {calculatorTabs?.map(({ name, label }) => (\n <button\n onPointerDown={() => pushToDlTab(label, headline, 'calculator')}\n key={name}\n onClick={() => setActiveCalculator(name)}\n className={cn(\n 'mob-body-regular-m text-nowrap rounded-sm bg-color-blue-grey-100 px-3 py-1.5 text-color-secondary outline-1 outline-offset-4 outline-transparent desktop:desk-body-regular-l focus:outline-primary-focus desktop:px-4 desktop:py-3',\n { 'bg-icon-primary-default text-color-white': activeCalculator === name },\n classes?.tab\n )}\n >\n {label}\n </button>\n ))}\n </div>\n )\n }\n)\n"],"names":["CalculatorTabs","memo","calculatorTabs","activeCalculator","setActiveCalculator","headline","classes","jsx","cn","name","label","pushToDlTab"],"mappings":"wLAwBO,MAAMA,EAAiBC,EAC5B,CAAC,CAAE,eAAAC,EAAgB,iBAAAC,EAAkB,oBAAAC,EAAqB,SAAAC,EAAU,QAAAC,KAEhEC,EAAC,MAAA,CAAI,UAAWC,EAAG,+BAAgCF,GAAS,OAAO,EAChE,SAAAJ,GAAgB,IAAI,CAAC,CAAE,KAAAO,EAAM,MAAAC,KAC5BH,EAAC,SAAA,CACC,cAAe,IAAMI,EAAYD,EAAOL,EAAU,YAAY,EAE9D,QAAS,IAAMD,EAAoBK,CAAI,EACvC,UAAWD,EACT,qOACA,CAAE,2CAA4CL,IAAqBM,CAAA,EACnEH,GAAS,GAAA,EAGV,SAAAI,CAAA,EARID,CAAA,CAUR,EACH,CAGN"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as n,jsx as l}from"react/jsx-runtime";import{cn as i}from"../../../../shared/utils/cn.js";import{CalculatedBlock as I}from"./ui/CalculatedBlock.js";import{CalculatorInfoHead as x}from"./ui/CalculatorInfoHead.js";import{CalculatorInfoBody as B}from"./ui/CalculatorInfoBody.js";import{CalculatorInfoFooter as C}from"./ui/CalculatorInfoFooter.js";const k=({rootDescription:c,bottomDescription:e,rootValue:t,title:m,subtitle:u,buttonsConfig:d,infoList:r,suffix:f,assistHint:a,headline:p,classes:o})=>n("div",{className:i("w-full max-w-[456px] rounded-md bg-color-blue-grey-100 p-8 mobile:px-4 mobile:py-8",o?.wrapper),children:[l(I,{suffix:f,rootValue:t,rootDescription:c,classes:o?.calculatedBlock}),l(x,{title:m,subtitle:u,classes:o?.calculatedInfoHead}),l(B,{withoutDivider:r.length>0||!!a,infoList:r,classes:o?.calculatorInfoBody}),l(C,{assistHint:a,headline:p,buttonsConfig:d,bottomDescription:e,classes:o?.calculatorInfoFooter})]});export{k as CalculatorInfo};
|
|
2
2
|
//# sourceMappingURL=CalculatorInfo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalculatorInfo.js","sources":["../../../../../../lib/widgets/calculator/ui/calculatorInfo/CalculatorInfo.tsx"],"sourcesContent":["import {\n CalculatedBlock,\n type CalculatedBlockClasses,\n type CalculatedBlockProps,\n type CalculatedInfoBodyProps,\n CalculatorInfoBody,\n type CalculatorInfoBodyClasses,\n CalculatorInfoFooter,\n type CalculatorInfoFooterClasses,\n type CalculatorInfoFooterProps,\n CalculatorInfoHead,\n type CalculatorInfoHeadClasses,\n type CalculatorInfoHeadProps\n} from './ui'\nimport { cn } from '$/shared/utils'\n\nexport type CalculatorInfoClasses = {\n wrapper?: string\n calculatedBlock?: CalculatedBlockClasses\n calculatedInfoHead?: CalculatorInfoHeadClasses\n calculatorInfoBody?: CalculatorInfoBodyClasses\n calculatorInfoFooter?: CalculatorInfoFooterClasses\n}\n\nexport interface CalculatorInfoProps\n extends Omit<CalculatedBlockProps, 'classes'>,\n Omit<CalculatorInfoHeadProps, 'classes'>,\n Omit<CalculatedInfoBodyProps, 'classes'>,\n Omit<CalculatorInfoFooterProps, 'classes'> {\n classes?: CalculatorInfoClasses\n}\n\nexport const CalculatorInfo = ({\n rootDescription,\n bottomDescription,\n rootValue,\n title,\n subtitle,\n buttonsConfig,\n infoList,\n suffix,\n assistHint,\n classes\n}: CalculatorInfoProps) => {\n return (\n <div className={cn('w-full max-w-[456px] rounded-md bg-color-blue-grey-100 p-8 mobile:px-4 mobile:py-8', classes?.wrapper)}>\n <CalculatedBlock\n suffix={suffix}\n rootValue={rootValue}\n rootDescription={rootDescription}\n classes={classes?.calculatedBlock}\n />\n <CalculatorInfoHead title={title} subtitle={subtitle} classes={classes?.calculatedInfoHead} />\n <CalculatorInfoBody\n withoutDivider={infoList.length > 0 || Boolean(assistHint)}\n infoList={infoList}\n classes={classes?.calculatorInfoBody}\n />\n <CalculatorInfoFooter\n assistHint={assistHint}\n buttonsConfig={buttonsConfig}\n bottomDescription={bottomDescription}\n classes={classes?.calculatorInfoFooter}\n />\n </div>\n )\n}\n"],"names":["CalculatorInfo","rootDescription","bottomDescription","rootValue","title","subtitle","buttonsConfig","infoList","suffix","assistHint","classes","cn","jsx","CalculatedBlock","CalculatorInfoHead","CalculatorInfoBody","CalculatorInfoFooter"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CalculatorInfo.js","sources":["../../../../../../lib/widgets/calculator/ui/calculatorInfo/CalculatorInfo.tsx"],"sourcesContent":["import {\n CalculatedBlock,\n type CalculatedBlockClasses,\n type CalculatedBlockProps,\n type CalculatedInfoBodyProps,\n CalculatorInfoBody,\n type CalculatorInfoBodyClasses,\n CalculatorInfoFooter,\n type CalculatorInfoFooterClasses,\n type CalculatorInfoFooterProps,\n CalculatorInfoHead,\n type CalculatorInfoHeadClasses,\n type CalculatorInfoHeadProps\n} from './ui'\nimport { cn } from '$/shared/utils'\n\nexport type CalculatorInfoClasses = {\n wrapper?: string\n calculatedBlock?: CalculatedBlockClasses\n calculatedInfoHead?: CalculatorInfoHeadClasses\n calculatorInfoBody?: CalculatorInfoBodyClasses\n calculatorInfoFooter?: CalculatorInfoFooterClasses\n}\n\nexport interface CalculatorInfoProps\n extends Omit<CalculatedBlockProps, 'classes'>,\n Omit<CalculatorInfoHeadProps, 'classes'>,\n Omit<CalculatedInfoBodyProps, 'classes'>,\n Omit<CalculatorInfoFooterProps, 'classes'> {\n classes?: CalculatorInfoClasses\n headline?: string\n}\n\nexport const CalculatorInfo = ({\n rootDescription,\n bottomDescription,\n rootValue,\n title,\n subtitle,\n buttonsConfig,\n infoList,\n suffix,\n assistHint,\n headline,\n classes\n}: CalculatorInfoProps) => {\n return (\n <div className={cn('w-full max-w-[456px] rounded-md bg-color-blue-grey-100 p-8 mobile:px-4 mobile:py-8', classes?.wrapper)}>\n <CalculatedBlock\n suffix={suffix}\n rootValue={rootValue}\n rootDescription={rootDescription}\n classes={classes?.calculatedBlock}\n />\n <CalculatorInfoHead title={title} subtitle={subtitle} classes={classes?.calculatedInfoHead} />\n <CalculatorInfoBody\n withoutDivider={infoList.length > 0 || Boolean(assistHint)}\n infoList={infoList}\n classes={classes?.calculatorInfoBody}\n />\n <CalculatorInfoFooter\n assistHint={assistHint}\n headline={headline}\n buttonsConfig={buttonsConfig}\n bottomDescription={bottomDescription}\n classes={classes?.calculatorInfoFooter}\n />\n </div>\n )\n}\n"],"names":["CalculatorInfo","rootDescription","bottomDescription","rootValue","title","subtitle","buttonsConfig","infoList","suffix","assistHint","headline","classes","cn","jsx","CalculatedBlock","CalculatorInfoHead","CalculatorInfoBody","CalculatorInfoFooter"],"mappings":"oWAiCO,MAAMA,EAAiB,CAAC,CAC7B,gBAAAC,EACA,kBAAAC,EACA,UAAAC,EACA,MAAAC,EACA,SAAAC,EACA,cAAAC,EACA,SAAAC,EACA,OAAAC,EACA,WAAAC,EACA,SAAAC,EACA,QAAAC,CACF,MAEK,MAAA,CAAI,UAAWC,EAAG,qFAAsFD,GAAS,OAAO,EACvH,SAAA,CAAAE,EAACC,EAAA,CACC,OAAAN,EACA,UAAAL,EACA,gBAAAF,EACA,QAASU,GAAS,eAAA,CAAA,IAEnBI,EAAA,CAAmB,MAAAX,EAAc,SAAAC,EAAoB,QAASM,GAAS,mBAAoB,EAC5FE,EAACG,EAAA,CACC,eAAgBT,EAAS,OAAS,GAAK,EAAQE,EAC/C,SAAAF,EACA,QAASI,GAAS,kBAAA,CAAA,EAEpBE,EAACI,EAAA,CACC,WAAAR,EACA,SAAAC,EACA,cAAAJ,EACA,kBAAAJ,EACA,QAASS,GAAS,oBAAA,CAAA,CACpB,EACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as l,jsx as r}from"react/jsx-runtime";import{cn as o}from"../../../../../shared/utils/cn.js";import{Icon as n}from"../../../../../shared/ui/icon/Icon.js";import{Popover as a}from"../../../../../shared/ui/popover/Popover.js";import{pushToDlTooltip as s}from"../../../../../shared/dataLayers/utils.js";const h=({iconName:m,text:i,hint:t,classes:e,popoverProps:c})=>l("div",{className:o("mb-6 flex items-center gap-2",e?.wrapper),children:[l("div",{className:o("flex items-center gap-1",e?.block),children:[r(n,{name:m,className:o("size-6 text-icon-blue-grey-800",e?.icon)}),r("p",{className:o("desk-body-regular-l text-color-tetriary",e?.description),children:i})]}),t&&r(a,{onPointerDown:()=>s(i,"calculator"),withCloseBtn:!1,triggerElement:r(n,{name:"info/helpCircle",className:"size-5 text-icon-blue-grey-600"}),...c,children:t})]});export{h as AssistHint};
|
|
2
2
|
//# sourceMappingURL=AssistHint.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistHint.js","sources":["../../../../../../../lib/widgets/calculator/ui/calculatorInfo/ui/AssistHint.tsx"],"sourcesContent":["import { type AllowedIcons, Icon, Popover, type PopoverProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type AssistHintClasses = {\n wrapper?: string\n block?: string\n icon?: string\n description?: string\n}\n\nexport interface AssistHintProps {\n iconName: AllowedIcons\n text: string\n hint?: string\n classes?: AssistHintClasses\n popoverProps?: PopoverProps\n}\n\nexport const AssistHint = ({ iconName, text, hint, classes, popoverProps }: AssistHintProps) => {\n return (\n <div className={cn('mb-6 flex items-center gap-2', classes?.wrapper)}>\n <div className={cn('flex items-center gap-1', classes?.block)}>\n <Icon name={iconName} className={cn('size-6 text-icon-blue-grey-800', classes?.icon)} />\n <p className={cn('desk-body-regular-l text-color-tetriary', classes?.description)}>{text}</p>\n </div>\n\n {hint && (\n <Popover\n withCloseBtn={false}\n triggerElement={<Icon name='info/helpCircle' className='size-5 text-icon-blue-grey-600' />}\n {...popoverProps}\n >\n {hint}\n </Popover>\n )}\n </div>\n )\n}\n"],"names":["AssistHint","iconName","text","hint","classes","popoverProps","cn","jsxs","jsx","Icon","Popover"],"mappings":"
|
|
1
|
+
{"version":3,"file":"AssistHint.js","sources":["../../../../../../../lib/widgets/calculator/ui/calculatorInfo/ui/AssistHint.tsx"],"sourcesContent":["import { pushToDlTooltip } from '../../../../../shared/dataLayers'\nimport { type AllowedIcons, Icon, Popover, type PopoverProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type AssistHintClasses = {\n wrapper?: string\n block?: string\n icon?: string\n description?: string\n}\n\nexport interface AssistHintProps {\n iconName: AllowedIcons\n text: string\n hint?: string\n classes?: AssistHintClasses\n popoverProps?: PopoverProps\n}\n\nexport const AssistHint = ({ iconName, text, hint, classes, popoverProps }: AssistHintProps) => {\n return (\n <div className={cn('mb-6 flex items-center gap-2', classes?.wrapper)}>\n <div className={cn('flex items-center gap-1', classes?.block)}>\n <Icon name={iconName} className={cn('size-6 text-icon-blue-grey-800', classes?.icon)} />\n <p className={cn('desk-body-regular-l text-color-tetriary', classes?.description)}>{text}</p>\n </div>\n\n {hint && (\n <Popover\n onPointerDown={() => pushToDlTooltip(text, 'calculator')}\n withCloseBtn={false}\n triggerElement={<Icon name='info/helpCircle' className='size-5 text-icon-blue-grey-600' />}\n {...popoverProps}\n >\n {hint}\n </Popover>\n )}\n </div>\n )\n}\n"],"names":["AssistHint","iconName","text","hint","classes","popoverProps","cn","jsxs","jsx","Icon","Popover","pushToDlTooltip"],"mappings":"wTAmBO,MAAMA,EAAa,CAAC,CAAE,SAAAC,EAAU,KAAAC,EAAM,KAAAC,EAAM,QAAAC,EAAS,aAAAC,OAEvD,MAAA,CAAI,UAAWC,EAAG,+BAAgCF,GAAS,OAAO,EACjE,SAAA,CAAAG,EAAC,OAAI,UAAWD,EAAG,0BAA2BF,GAAS,KAAK,EAC1D,SAAA,CAAAI,EAACC,EAAA,CAAK,KAAMR,EAAU,UAAWK,EAAG,iCAAkCF,GAAS,IAAI,EAAG,EACtFI,EAAC,KAAE,UAAWF,EAAG,0CAA2CF,GAAS,WAAW,EAAI,SAAAF,CAAA,CAAK,CAAA,EAC3F,EAECC,GACCK,EAACE,EAAA,CACC,cAAe,IAAMC,EAAgBT,EAAM,YAAY,EACvD,aAAc,GACd,eAAgBM,EAACC,EAAA,CAAK,KAAK,kBAAkB,UAAU,iCAAiC,EACvF,GAAGJ,EAEH,SAAAF,CAAA,CAAA,CACH,EAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as a,jsx as
|
|
1
|
+
import{jsxs as a,jsx as o}from"react/jsx-runtime";import{AssistHint as c}from"./AssistHint.js";import{cn as m}from"../../../../../shared/utils/cn.js";import{ButtonWithHandlers as p}from"../../../../buttonWithHandlers/ButtonWithHandlers.js";import{pushToDlButton as d}from"../../../../../shared/dataLayers/utils.js";const b=({assistHint:t,buttonsConfig:i,bottomDescription:e,classes:r,headline:n})=>a("div",{children:[t&&o(c,{...t,classes:r?.assistHint}),o("div",{className:m("flex items-center gap-4 mobile:flex-col",r?.buttonsWrapper),children:i?.map((l,s)=>o(p,{onPointerDown:()=>d(l?.children,n,"calculator"),className:"w-full",...l},s))}),e&&o("p",{className:m("desk-body-regular-m mt-4 text-color-secondary",r?.bottomDescription),children:e})]});export{b as CalculatorInfoFooter};
|
|
2
2
|
//# sourceMappingURL=CalculatorInfoFooter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalculatorInfoFooter.js","sources":["../../../../../../../lib/widgets/calculator/ui/calculatorInfo/ui/CalculatorInfoFooter.tsx"],"sourcesContent":["import { ButtonWithHandlers, type ButtonWithHandlersProps } from '../../../../buttonWithHandlers'\nimport { AssistHint, type AssistHintClasses, type AssistHintProps } from './AssistHint'\nimport { cn } from '$/shared/utils'\n\nexport type CalculatorInfoFooterClasses = {\n assistHint?: AssistHintClasses\n buttonsWrapper?: string\n bottomDescription?: string\n}\n\nexport interface CalculatorInfoFooterProps {\n assistHint?: AssistHintProps\n buttonsConfig: ButtonWithHandlersProps[]\n bottomDescription?: string\n classes?: CalculatorInfoFooterClasses\n}\n\nexport const CalculatorInfoFooter = ({
|
|
1
|
+
{"version":3,"file":"CalculatorInfoFooter.js","sources":["../../../../../../../lib/widgets/calculator/ui/calculatorInfo/ui/CalculatorInfoFooter.tsx"],"sourcesContent":["import { pushToDlButton } from '../../../../../shared/dataLayers'\nimport { ButtonWithHandlers, type ButtonWithHandlersProps } from '../../../../buttonWithHandlers'\nimport { AssistHint, type AssistHintClasses, type AssistHintProps } from './AssistHint'\nimport { cn } from '$/shared/utils'\n\nexport type CalculatorInfoFooterClasses = {\n assistHint?: AssistHintClasses\n buttonsWrapper?: string\n bottomDescription?: string\n}\n\nexport interface CalculatorInfoFooterProps {\n assistHint?: AssistHintProps\n buttonsConfig: ButtonWithHandlersProps[]\n bottomDescription?: string\n classes?: CalculatorInfoFooterClasses\n headline?: string\n}\n\nexport const CalculatorInfoFooter = ({\n assistHint,\n buttonsConfig,\n bottomDescription,\n classes,\n headline\n}: CalculatorInfoFooterProps) => {\n return (\n <div>\n {assistHint && <AssistHint {...assistHint} classes={classes?.assistHint} />}\n\n <div className={cn('flex items-center gap-4 mobile:flex-col', classes?.buttonsWrapper)}>\n {buttonsConfig?.map((button, index) => (\n <ButtonWithHandlers\n onPointerDown={() => pushToDlButton(button?.children as string, headline, 'calculator')}\n key={index}\n className='w-full'\n {...button}\n />\n ))}\n </div>\n {bottomDescription && (\n <p className={cn('desk-body-regular-m mt-4 text-color-secondary', classes?.bottomDescription)}>{bottomDescription}</p>\n )}\n </div>\n )\n}\n"],"names":["CalculatorInfoFooter","assistHint","buttonsConfig","bottomDescription","classes","headline","AssistHint","jsx","cn","button","index","ButtonWithHandlers","pushToDlButton"],"mappings":"2TAmBO,MAAMA,EAAuB,CAAC,CACnC,WAAAC,EACA,cAAAC,EACA,kBAAAC,EACA,QAAAC,EACA,SAAAC,CACF,MAEK,MAAA,CACE,SAAA,CAAAJ,KAAeK,EAAA,CAAY,GAAGL,EAAY,QAASG,GAAS,WAAY,EAEzEG,EAAC,MAAA,CAAI,UAAWC,EAAG,0CAA2CJ,GAAS,cAAc,EAClF,SAAAF,GAAe,IAAI,CAACO,EAAQC,IAC3BH,EAACI,EAAA,CACC,cAAe,IAAMC,EAAeH,GAAQ,SAAoBJ,EAAU,YAAY,EAEtF,UAAU,SACT,GAAGI,CAAA,EAFCC,CAAA,CAIR,EACH,EACCP,KACE,IAAA,CAAE,UAAWK,EAAG,gDAAiDJ,GAAS,iBAAiB,EAAI,SAAAD,CAAA,CAAkB,CAAA,EAEtH"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as t,jsx as e}from"react/jsx-runtime";import{formatValueToRenderInfoItem as a}from"../../../model/utils.js";import{cn as
|
|
1
|
+
import{jsxs as t,jsx as e}from"react/jsx-runtime";import{formatValueToRenderInfoItem as a}from"../../../model/utils.js";import{cn as n}from"../../../../../shared/utils/cn.js";import{Popover as c}from"../../../../../shared/ui/popover/Popover.js";import{pushToDlTooltip as d}from"../../../../../shared/dataLayers/utils.js";import{Icon as p}from"../../../../../shared/ui/icon/Icon.js";const b=({hint:r,value:l,label:o,mode:i,color:s="dark",accent:m=!1})=>t("div",{className:"flex items-center justify-between gap-4",children:[t("div",{className:"flex items-center gap-2",children:[e("p",{className:"desk-body-regular-l text-color-dark",children:o}),r&&e(c,{onPointerDown:()=>d(o,"calculator"),withCloseBtn:!1,triggerElement:e(p,{className:"size-5 text-icon-blue-grey-600",name:"info/helpCircle"}),children:e("p",{children:r})})]}),e("span",{className:n("desk-body-medium-l text-color-dark",{"[&&]:desk-title-bold-s":m,"text-color-primary-default":s==="blue"}),children:a(i,l)})]});export{b as InfoListItem};
|
|
2
2
|
//# sourceMappingURL=InfoListItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InfoListItem.js","sources":["../../../../../../../lib/widgets/calculator/ui/calculatorInfo/ui/InfoListItem.tsx"],"sourcesContent":["import { Icon, Popover } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\nimport { type CalculatorSuffix, type CalculatorValue, formatValueToRenderInfoItem } from '$/widgets/calculator/model'\n\nexport type InfoListItemMode = CalculatorSuffix | 'text'\nexport type InfoListItemColor = 'dark' | 'blue'\n\nexport interface InfoListItemCommon {\n label: string\n mode: InfoListItemMode\n hint?: string\n accent?: boolean\n color?: InfoListItemColor\n withFormula?: boolean\n}\n\nexport interface InfoListItemDTO extends InfoListItemCommon {\n value: CalculatorValue\n}\n\nexport interface InfoListItemProps extends InfoListItemCommon {\n value: string\n}\n\nexport const InfoListItem = ({ hint, value, label, mode, color = 'dark', accent = false }: InfoListItemProps) => {\n return (\n <div className='flex items-center justify-between gap-4'>\n <div className='flex items-center gap-2'>\n <p className='desk-body-regular-l text-color-dark'>{label}</p>\n {hint && (\n <Popover\n withCloseBtn={false}\n triggerElement={<Icon className='size-5 text-icon-blue-grey-600' name='info/helpCircle' />}\n >\n <p>{hint}</p>\n </Popover>\n )}\n </div>\n <span\n className={cn('desk-body-medium-l text-color-dark', {\n '[&&]:desk-title-bold-s': accent,\n 'text-color-primary-default': color === 'blue'\n })}\n >\n {formatValueToRenderInfoItem(mode, value)}\n </span>\n </div>\n )\n}\n"],"names":["InfoListItem","hint","value","label","mode","color","accent","jsxs","jsx","Popover","Icon","cn","formatValueToRenderInfoItem"],"mappings":"
|
|
1
|
+
{"version":3,"file":"InfoListItem.js","sources":["../../../../../../../lib/widgets/calculator/ui/calculatorInfo/ui/InfoListItem.tsx"],"sourcesContent":["import { pushToDlTooltip } from '../../../../../shared/dataLayers'\nimport { Icon, Popover } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\nimport { type CalculatorSuffix, type CalculatorValue, formatValueToRenderInfoItem } from '$/widgets/calculator/model'\n\nexport type InfoListItemMode = CalculatorSuffix | 'text'\nexport type InfoListItemColor = 'dark' | 'blue'\n\nexport interface InfoListItemCommon {\n label: string\n mode: InfoListItemMode\n hint?: string\n accent?: boolean\n color?: InfoListItemColor\n withFormula?: boolean\n}\n\nexport interface InfoListItemDTO extends InfoListItemCommon {\n value: CalculatorValue\n}\n\nexport interface InfoListItemProps extends InfoListItemCommon {\n value: string\n}\n\nexport const InfoListItem = ({ hint, value, label, mode, color = 'dark', accent = false }: InfoListItemProps) => {\n return (\n <div className='flex items-center justify-between gap-4'>\n <div className='flex items-center gap-2'>\n <p className='desk-body-regular-l text-color-dark'>{label}</p>\n {hint && (\n <Popover\n onPointerDown={() => pushToDlTooltip(label, 'calculator')}\n withCloseBtn={false}\n triggerElement={<Icon className='size-5 text-icon-blue-grey-600' name='info/helpCircle' />}\n >\n <p>{hint}</p>\n </Popover>\n )}\n </div>\n <span\n className={cn('desk-body-medium-l text-color-dark', {\n '[&&]:desk-title-bold-s': accent,\n 'text-color-primary-default': color === 'blue'\n })}\n >\n {formatValueToRenderInfoItem(mode, value)}\n </span>\n </div>\n )\n}\n"],"names":["InfoListItem","hint","value","label","mode","color","accent","jsxs","jsx","Popover","pushToDlTooltip","Icon","cn","formatValueToRenderInfoItem"],"mappings":"8XAyBO,MAAMA,EAAe,CAAC,CAAE,KAAAC,EAAM,MAAAC,EAAO,MAAAC,EAAO,KAAAC,EAAM,MAAAC,EAAQ,OAAQ,OAAAC,EAAS,MAE9EC,EAAC,MAAA,CAAI,UAAU,0CACb,SAAA,CAAAA,EAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAC,EAAC,IAAA,CAAE,UAAU,sCAAuC,SAAAL,EAAM,EACzDF,GACCO,EAACC,EAAA,CACC,cAAe,IAAMC,EAAgBP,EAAO,YAAY,EACxD,aAAc,GACd,eAAgBK,EAACG,EAAA,CAAK,UAAU,iCAAiC,KAAK,kBAAkB,EAExF,SAAAH,EAAC,KAAG,SAAAP,CAAA,CAAK,CAAA,CAAA,CACX,EAEJ,EACAO,EAAC,OAAA,CACC,UAAWI,EAAG,qCAAsC,CAClD,yBAA0BN,EAC1B,6BAA8BD,IAAU,MAAA,CACzC,EAEA,SAAAQ,EAA4BT,EAAMF,CAAK,CAAA,CAAA,CAC1C,EACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as i,jsxs as
|
|
1
|
+
import{jsx as i,jsxs as d}from"react/jsx-runtime";import{createElement as m}from"react";import{ConditionsWithCTA as s}from"./ui/ConditionsWithCTA.js";import{SingleCondition as c}from"./ui/SingleCondition.js";import{cn as e}from"../../shared/utils/cn.js";import{ResponsiveContainer as l}from"../../shared/ui/responsiveContainer/ResponsiveContainer.js";const N=({headline:r,classes:o,conditions:n,conditionsWithCTA:p})=>i("section",{id:"conditionBlock","data-test-id":"conditionBlock",className:o?.root,children:d(l,{className:e(o?.container,"max-w-[636px] desktop:max-w-[1140px]"),children:[i("div",{className:e("flex flex-col gap-6 desktop:items-start desktop:gap-12",o?.wrapper),children:i("div",{dangerouslySetInnerHTML:{__html:r},className:e("mob-headline-bold-s mb-6 text-color-dark desktop:desk-headline-bold-m desktop:mb-12",o?.headline)})}),d("div",{className:e("grid grid-cols-1 gap-4 desktop:grid-cols-[repeat(2,1fr)] desktop:gap-6",o?.conditionContainer),children:[i("div",{className:e("grid grid-cols-1 grid-rows-[repeat(3,minmax(136px,1fr))] gap-4 desktop:grid-cols-[repeat(2,minmax(353px,1fr))] desktop:grid-rows-[repeat(2,minmax(160px,1fr))] desktop:gap-6",o?.conditionWrapper),children:n?.map((t,a)=>m(c,{...t,key:t.description,index:a,classes:o?.condition}))}),i(s,{...p,headline:r,classes:o?.conditionsWithCTA})]})]})});export{N as ConditionBlock,N as default};
|
|
2
2
|
//# sourceMappingURL=ConditionBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConditionBlock.js","sources":["../../../../lib/widgets/conditionBlock/ConditionBlock.tsx"],"sourcesContent":["import { type HTMLAttributes
|
|
1
|
+
{"version":3,"file":"ConditionBlock.js","sources":["../../../../lib/widgets/conditionBlock/ConditionBlock.tsx"],"sourcesContent":["import { type HTMLAttributes } from 'react'\nimport { type ConditionType, type ConditionWitchCTAType } from './model/types'\nimport { ConditionsWithCTA, type ConditionsWithCTAClasses } from './ui/ConditionsWithCTA'\nimport { SingleCondition, type SingleConditionClasses } from './ui/SingleCondition'\nimport { ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type ConditionBlockClasses = {\n root?: string\n container?: string\n wrapper?: string\n headline?: string\n conditionWrapper?: string\n condition?: SingleConditionClasses\n conditionContainer?: string\n conditionsWithCTA?: ConditionsWithCTAClasses\n}\n\nexport interface ConditionBlockClassesProps<WithImages extends boolean> extends HTMLAttributes<HTMLDivElement> {\n headline: string\n conditions?: ConditionType<WithImages>[]\n classes?: ConditionBlockClasses\n conditionsWithCTA?: ConditionWitchCTAType\n}\n\nexport const ConditionBlock = <WithImages extends boolean>({\n headline,\n classes,\n conditions,\n conditionsWithCTA\n}: ConditionBlockClassesProps<WithImages>) => {\n return (\n <section id='conditionBlock' data-test-id='conditionBlock' className={classes?.root}>\n <ResponsiveContainer className={cn(classes?.container, 'max-w-[636px] desktop:max-w-[1140px]')}>\n <div className={cn('flex flex-col gap-6 desktop:items-start desktop:gap-12', classes?.wrapper)}>\n <div\n dangerouslySetInnerHTML={{ __html: headline }}\n className={cn(\n 'mob-headline-bold-s mb-6 text-color-dark desktop:desk-headline-bold-m desktop:mb-12',\n classes?.headline\n )}\n />\n </div>\n <div\n className={cn('grid grid-cols-1 gap-4 desktop:grid-cols-[repeat(2,1fr)] desktop:gap-6', classes?.conditionContainer)}\n >\n <div\n className={cn(\n 'grid grid-cols-1 grid-rows-[repeat(3,minmax(136px,1fr))] gap-4 desktop:grid-cols-[repeat(2,minmax(353px,1fr))] desktop:grid-rows-[repeat(2,minmax(160px,1fr))] desktop:gap-6',\n classes?.conditionWrapper\n )}\n >\n {conditions?.map((condition, index) => (\n <SingleCondition {...condition} key={condition.description} index={index} classes={classes?.condition} />\n ))}\n </div>\n <ConditionsWithCTA {...conditionsWithCTA} headline={headline} classes={classes?.conditionsWithCTA} />\n </div>\n </ResponsiveContainer>\n </section>\n )\n}\n\nexport default ConditionBlock\n"],"names":["ConditionBlock","headline","classes","conditions","conditionsWithCTA","jsxs","ResponsiveContainer","cn","jsx","condition","index","SingleCondition","ConditionsWithCTA"],"mappings":"+VAyBO,MAAMA,EAAiB,CAA6B,CACzD,SAAAC,EACA,QAAAC,EACA,WAAAC,EACA,kBAAAC,CACF,MAEK,UAAA,CAAQ,GAAG,iBAAiB,eAAa,iBAAiB,UAAWF,GAAS,KAC7E,SAAAG,EAACC,GAAoB,UAAWC,EAAGL,GAAS,UAAW,sCAAsC,EAC3F,SAAA,CAAAM,EAAC,OAAI,UAAWD,EAAG,yDAA0DL,GAAS,OAAO,EAC3F,SAAAM,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQP,CAAA,EACnC,UAAWM,EACT,sFACAL,GAAS,QAAA,CACX,CAAA,EAEJ,EACAG,EAAC,MAAA,CACC,UAAWE,EAAG,yEAA0EL,GAAS,kBAAkB,EAEnH,SAAA,CAAAM,EAAC,MAAA,CACC,UAAWD,EACT,+KACAL,GAAS,gBAAA,EAGV,YAAY,IAAI,CAACO,EAAWC,MAC1BC,EAAA,CAAiB,GAAGF,EAAW,IAAKA,EAAU,YAAa,MAAAC,EAAc,QAASR,GAAS,UAAW,CACxG,CAAA,CAAA,IAEFU,EAAA,CAAmB,GAAGR,EAAmB,SAAAH,EAAoB,QAASC,GAAS,iBAAA,CAAmB,CAAA,CAAA,CAAA,CACrG,CAAA,CACF,CAAA,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as r,jsx as o}from"react/jsx-runtime";import{cn as e}from"../../../shared/utils/cn.js";import{ButtonWithHandlers as p}from"../../buttonWithHandlers/ButtonWithHandlers.js";import{pushToDlButton as u}from"../../../shared/dataLayers/utils.js";const g=n=>{const{classes:t,firstRate:d,descriptionFirstRate:a,secondRate:i,descriptionSecondRate:c,mainDescription:s,button:l,headline:m}=n;return r("div",{className:e("relative flex flex-col overflow-hidden rounded-md bg-color-blue-grey-100 p-4 desktop:w-[386px] desktop:p-8",t?.conditionWitchCTAContainer),children:[r("div",{className:e("mb-3 flex flex-col gap-2"),children:[d&&o("div",{dangerouslySetInnerHTML:{__html:d},className:e("mob-title-bold-l text-color-primary-default desktop:desk-title-bold-l",t?.firstRate)}),o("div",{dangerouslySetInnerHTML:{__html:a??""},className:e("desk-body-regular-l text-color-dark",t?.descriptionFirstRate)})]}),r("div",{className:e("mb-6 flex flex-col gap-2 desktop:mb-11"),children:[i&&o("div",{dangerouslySetInnerHTML:{__html:i},className:e("mob-title-bold-l text-color-primary-default desktop:desk-title-bold-l",t?.secondRate)}),o("div",{dangerouslySetInnerHTML:{__html:c??""},className:e("desk-body-regular-l text-color-dark",t?.descriptionSecondRate)})]}),s&&o("div",{dangerouslySetInnerHTML:{__html:s},className:e("mob-body-regular-l mb-6 text-color-tetriary desktop:desk-body-regular-l",t?.mainDescription)}),l&&o(p,{onPointerDown:()=>u(l?.children,m,"conditionBlock"),intent:"primary",className:e("mt-auto w-full",t?.button),size:"lg",...l})]})};export{g as ConditionsWithCTA};
|
|
2
2
|
//# sourceMappingURL=ConditionsWithCTA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConditionsWithCTA.js","sources":["../../../../../lib/widgets/conditionBlock/ui/ConditionsWithCTA.tsx"],"sourcesContent":["import { cn } from '$/shared/utils'\nimport { ButtonWithHandlers } from '$/widgets/buttonWithHandlers'\nimport { type ConditionWitchCTAType } from '$/widgets/conditionBlock/model/types'\n\nexport type ConditionsWithCTAClasses = {\n conditionWitchCTAContainer?: string\n descriptionFirstRate?: string\n firstRate?: string\n secondRate?: string\n descriptionSecondRate?: string\n mainDescription?: string\n button?: string\n}\n\nexport const ConditionsWithCTA = (props: ConditionWitchCTAType) => {\n const { classes, firstRate, descriptionFirstRate, secondRate, descriptionSecondRate, mainDescription, button } = props\n\n return (\n <div\n className={cn(\n 'relative flex flex-col overflow-hidden rounded-md bg-color-blue-grey-100 p-4 desktop:w-[386px] desktop:p-8',\n classes?.conditionWitchCTAContainer\n )}\n >\n <div className={cn('mb-3 flex flex-col gap-2')}>\n {firstRate && (\n <div\n dangerouslySetInnerHTML={{ __html: firstRate }}\n className={cn('mob-title-bold-l text-color-primary-default desktop:desk-title-bold-l', classes?.firstRate)}\n />\n )}\n <div\n dangerouslySetInnerHTML={{ __html: descriptionFirstRate ?? '' }}\n className={cn('desk-body-regular-l text-color-dark', classes?.descriptionFirstRate)}\n />\n </div>\n <div className={cn('mb-6 flex flex-col gap-2 desktop:mb-11')}>\n {secondRate && (\n <div\n dangerouslySetInnerHTML={{ __html: secondRate }}\n className={cn('mob-title-bold-l text-color-primary-default desktop:desk-title-bold-l', classes?.secondRate)}\n />\n )}\n <div\n dangerouslySetInnerHTML={{ __html: descriptionSecondRate ?? '' }}\n className={cn('desk-body-regular-l text-color-dark', classes?.descriptionSecondRate)}\n />\n </div>\n {mainDescription && (\n <div\n dangerouslySetInnerHTML={{ __html: mainDescription }}\n className={cn('mob-body-regular-l mb-6 text-color-tetriary desktop:desk-body-regular-l', classes?.mainDescription)}\n />\n )}\n {button && <ButtonWithHandlers intent='primary'
|
|
1
|
+
{"version":3,"file":"ConditionsWithCTA.js","sources":["../../../../../lib/widgets/conditionBlock/ui/ConditionsWithCTA.tsx"],"sourcesContent":["import { pushToDlButton } from '../../../shared/dataLayers'\nimport { cn } from '$/shared/utils'\nimport { ButtonWithHandlers } from '$/widgets/buttonWithHandlers'\nimport { type ConditionWitchCTAType } from '$/widgets/conditionBlock/model/types'\n\nexport type ConditionsWithCTAClasses = {\n conditionWitchCTAContainer?: string\n descriptionFirstRate?: string\n firstRate?: string\n secondRate?: string\n descriptionSecondRate?: string\n mainDescription?: string\n button?: string\n}\n\nexport const ConditionsWithCTA = (props: ConditionWitchCTAType) => {\n const { classes, firstRate, descriptionFirstRate, secondRate, descriptionSecondRate, mainDescription, button, headline } = props\n\n return (\n <div\n className={cn(\n 'relative flex flex-col overflow-hidden rounded-md bg-color-blue-grey-100 p-4 desktop:w-[386px] desktop:p-8',\n classes?.conditionWitchCTAContainer\n )}\n >\n <div className={cn('mb-3 flex flex-col gap-2')}>\n {firstRate && (\n <div\n dangerouslySetInnerHTML={{ __html: firstRate }}\n className={cn('mob-title-bold-l text-color-primary-default desktop:desk-title-bold-l', classes?.firstRate)}\n />\n )}\n <div\n dangerouslySetInnerHTML={{ __html: descriptionFirstRate ?? '' }}\n className={cn('desk-body-regular-l text-color-dark', classes?.descriptionFirstRate)}\n />\n </div>\n <div className={cn('mb-6 flex flex-col gap-2 desktop:mb-11')}>\n {secondRate && (\n <div\n dangerouslySetInnerHTML={{ __html: secondRate }}\n className={cn('mob-title-bold-l text-color-primary-default desktop:desk-title-bold-l', classes?.secondRate)}\n />\n )}\n <div\n dangerouslySetInnerHTML={{ __html: descriptionSecondRate ?? '' }}\n className={cn('desk-body-regular-l text-color-dark', classes?.descriptionSecondRate)}\n />\n </div>\n {mainDescription && (\n <div\n dangerouslySetInnerHTML={{ __html: mainDescription }}\n className={cn('mob-body-regular-l mb-6 text-color-tetriary desktop:desk-body-regular-l', classes?.mainDescription)}\n />\n )}\n {button && (\n <ButtonWithHandlers\n onPointerDown={() => pushToDlButton(button?.children as string, headline, 'conditionBlock')}\n intent='primary'\n className={cn('mt-auto w-full', classes?.button)}\n size='lg'\n {...button}\n />\n )}\n </div>\n )\n}\n"],"names":["ConditionsWithCTA","props","classes","firstRate","descriptionFirstRate","secondRate","descriptionSecondRate","mainDescription","button","headline","jsxs","cn","jsx","ButtonWithHandlers","pushToDlButton"],"mappings":"4PAeO,MAAMA,EAAqBC,GAAiC,CACjE,KAAM,CAAE,QAAAC,EAAS,UAAAC,EAAW,qBAAAC,EAAsB,WAAAC,EAAY,sBAAAC,EAAuB,gBAAAC,EAAiB,OAAAC,EAAQ,SAAAC,CAAA,EAAaR,EAE3H,OACES,EAAC,MAAA,CACC,UAAWC,EACT,6GACAT,GAAS,0BAAA,EAGX,SAAA,CAAAQ,EAAC,MAAA,CAAI,UAAWC,EAAG,0BAA0B,EAC1C,SAAA,CAAAR,GACCS,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQT,CAAA,EACnC,UAAWQ,EAAG,wEAAyET,GAAS,SAAS,CAAA,CAAA,EAG7GU,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQR,GAAwB,EAAA,EAC3D,UAAWO,EAAG,sCAAuCT,GAAS,oBAAoB,CAAA,CAAA,CACpF,EACF,EACAQ,EAAC,MAAA,CAAI,UAAWC,EAAG,wCAAwC,EACxD,SAAA,CAAAN,GACCO,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQP,CAAA,EACnC,UAAWM,EAAG,wEAAyET,GAAS,UAAU,CAAA,CAAA,EAG9GU,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQN,GAAyB,EAAA,EAC5D,UAAWK,EAAG,sCAAuCT,GAAS,qBAAqB,CAAA,CAAA,CACrF,EACF,EACCK,GACCK,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQL,CAAA,EACnC,UAAWI,EAAG,0EAA2ET,GAAS,eAAe,CAAA,CAAA,EAGpHM,GACCI,EAACC,EAAA,CACC,cAAe,IAAMC,EAAeN,GAAQ,SAAoBC,EAAU,gBAAgB,EAC1F,OAAO,UACP,UAAWE,EAAG,iBAAkBT,GAAS,MAAM,EAC/C,KAAK,KACJ,GAAGM,CAAA,CAAA,CACN,CAAA,CAAA,CAIR"}
|