@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.
Files changed (118) hide show
  1. package/dist/lib/exports/utils.js +1 -1
  2. package/dist/lib/shared/dataLayers/index.js +1 -1
  3. package/dist/lib/shared/dataLayers/utils.js +2 -0
  4. package/dist/lib/shared/dataLayers/utils.js.map +1 -0
  5. package/dist/lib/shared/utils/extractTextFromHtml.js +2 -0
  6. package/dist/lib/shared/utils/extractTextFromHtml.js.map +1 -0
  7. package/dist/lib/shared/utils/index.js +1 -1
  8. package/dist/lib/widgets/banner/Banner.js.map +1 -1
  9. package/dist/lib/widgets/banner/ui/banners/BannerImageFull.js +1 -1
  10. package/dist/lib/widgets/banner/ui/banners/BannerImageFull.js.map +1 -1
  11. package/dist/lib/widgets/banner/ui/banners/BannerWithSeparateImg.js +1 -1
  12. package/dist/lib/widgets/banner/ui/banners/BannerWithSeparateImg.js.map +1 -1
  13. package/dist/lib/widgets/banner/ui/banners/ui/Buttons.js +1 -1
  14. package/dist/lib/widgets/banner/ui/banners/ui/Buttons.js.map +1 -1
  15. package/dist/lib/widgets/benefit/Benefit.js +1 -1
  16. package/dist/lib/widgets/benefit/Benefit.js.map +1 -1
  17. package/dist/lib/widgets/benefit/ui/BenefitItem.js +1 -1
  18. package/dist/lib/widgets/benefit/ui/BenefitItem.js.map +1 -1
  19. package/dist/lib/widgets/breadcrumbs/Breadcrumb.js +1 -1
  20. package/dist/lib/widgets/breadcrumbs/Breadcrumb.js.map +1 -1
  21. package/dist/lib/widgets/calculator/Calculator.js +1 -1
  22. package/dist/lib/widgets/calculator/Calculator.js.map +1 -1
  23. package/dist/lib/widgets/calculator/CalculatorView.js +1 -1
  24. package/dist/lib/widgets/calculator/CalculatorView.js.map +1 -1
  25. package/dist/lib/widgets/calculator/ui/CalculatorTabs.js +1 -1
  26. package/dist/lib/widgets/calculator/ui/CalculatorTabs.js.map +1 -1
  27. package/dist/lib/widgets/calculator/ui/calculatorInfo/CalculatorInfo.js +1 -1
  28. package/dist/lib/widgets/calculator/ui/calculatorInfo/CalculatorInfo.js.map +1 -1
  29. package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/AssistHint.js +1 -1
  30. package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/AssistHint.js.map +1 -1
  31. package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/CalculatorInfoFooter.js +1 -1
  32. package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/CalculatorInfoFooter.js.map +1 -1
  33. package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/InfoListItem.js +1 -1
  34. package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/InfoListItem.js.map +1 -1
  35. package/dist/lib/widgets/conditionBlock/ConditionBlock.js +1 -1
  36. package/dist/lib/widgets/conditionBlock/ConditionBlock.js.map +1 -1
  37. package/dist/lib/widgets/conditionBlock/ui/ConditionsWithCTA.js +1 -1
  38. package/dist/lib/widgets/conditionBlock/ui/ConditionsWithCTA.js.map +1 -1
  39. package/dist/lib/widgets/errorPage/ErrorPage.js +1 -1
  40. package/dist/lib/widgets/errorPage/ErrorPage.js.map +1 -1
  41. package/dist/lib/widgets/esia/Esia.js +1 -1
  42. package/dist/lib/widgets/esia/Esia.js.map +1 -1
  43. package/dist/lib/widgets/esia/ui/TextBlock.js +1 -1
  44. package/dist/lib/widgets/esia/ui/TextBlock.js.map +1 -1
  45. package/dist/lib/widgets/footer/ui/NavLinks.js +1 -1
  46. package/dist/lib/widgets/footer/ui/NavLinks.js.map +1 -1
  47. package/dist/lib/widgets/footer/ui/PhonesBlock.js +1 -1
  48. package/dist/lib/widgets/footer/ui/PhonesBlock.js.map +1 -1
  49. package/dist/lib/widgets/footer/ui/SiteMap.js +1 -1
  50. package/dist/lib/widgets/footer/ui/SiteMap.js.map +1 -1
  51. package/dist/lib/widgets/footer/ui/SocialLinks.js +1 -1
  52. package/dist/lib/widgets/footer/ui/SocialLinks.js.map +1 -1
  53. package/dist/lib/widgets/header/model/helpers.js +1 -1
  54. package/dist/lib/widgets/header/model/helpers.js.map +1 -1
  55. package/dist/lib/widgets/infoBlock/ui/LinksList.js +1 -1
  56. package/dist/lib/widgets/infoBlock/ui/LinksList.js.map +1 -1
  57. package/dist/lib/widgets/infoBlock/ui/RootContent.js +1 -1
  58. package/dist/lib/widgets/infoBlock/ui/RootContent.js.map +1 -1
  59. package/dist/lib/widgets/interLinking/InterLinking.js +1 -1
  60. package/dist/lib/widgets/interLinking/InterLinking.js.map +1 -1
  61. package/dist/lib/widgets/interLinking/ui/ColumnGroup.js +1 -1
  62. package/dist/lib/widgets/interLinking/ui/ColumnGroup.js.map +1 -1
  63. package/dist/lib/widgets/interLinking/ui/LinksList.js +1 -1
  64. package/dist/lib/widgets/interLinking/ui/LinksList.js.map +1 -1
  65. package/dist/lib/widgets/longBanner/LongBanner.js +1 -1
  66. package/dist/lib/widgets/longBanner/LongBanner.js.map +1 -1
  67. package/dist/lib/widgets/longBanner/ui/TextItem.js +1 -1
  68. package/dist/lib/widgets/longBanner/ui/TextItem.js.map +1 -1
  69. package/dist/lib/widgets/model/helpers.js +2 -2
  70. package/dist/lib/widgets/model/helpers.js.map +1 -1
  71. package/dist/lib/widgets/seoHeader/model/index.js +1 -1
  72. package/dist/lib/widgets/seoHeader/ui/desktop/CategoriesDesktop.js +1 -1
  73. package/dist/lib/widgets/seoHeader/ui/desktop/CategoriesDesktop.js.map +1 -1
  74. package/dist/lib/widgets/seoHeader/ui/desktop/CategoryTabs.js +1 -1
  75. package/dist/lib/widgets/seoHeader/ui/desktop/CategoryTabs.js.map +1 -1
  76. package/dist/lib/widgets/seoHeader/ui/desktop/rootTab/RootTab.js +1 -1
  77. package/dist/lib/widgets/seoHeader/ui/desktop/rootTab/RootTab.js.map +1 -1
  78. package/dist/lib/widgets/seoHeader/ui/desktop/tab/Tab.js +1 -1
  79. package/dist/lib/widgets/seoHeader/ui/desktop/tab/Tab.js.map +1 -1
  80. package/dist/lib/widgets/seoHeader/ui/desktop/tab/ui/content/TabContent.js +1 -1
  81. package/dist/lib/widgets/seoHeader/ui/desktop/tab/ui/content/TabContent.js.map +1 -1
  82. package/dist/lib/widgets/seoHeader/ui/mobile/menu/Menu.js +1 -1
  83. package/dist/lib/widgets/seoHeader/ui/mobile/menu/Menu.js.map +1 -1
  84. package/dist/lib/widgets/seoHeader/ui/mobile/menu/MenuItem.js +1 -1
  85. package/dist/lib/widgets/seoHeader/ui/mobile/menu/MenuItem.js.map +1 -1
  86. package/dist/lib/widgets/stepper/Stepper.js +1 -1
  87. package/dist/lib/widgets/stepper/Stepper.js.map +1 -1
  88. package/dist/lib/widgets/stepper/ui/StepperTabs.js +1 -1
  89. package/dist/lib/widgets/stepper/ui/StepperTabs.js.map +1 -1
  90. package/dist/lib/widgets/usefulInfo/ui/Tabs.js +1 -1
  91. package/dist/lib/widgets/usefulInfo/ui/Tabs.js.map +1 -1
  92. package/dist/lib/widgets/userFeedback/UserFeedback.js +1 -1
  93. package/dist/lib/widgets/userFeedback/UserFeedback.js.map +1 -1
  94. package/dist/lib/widgets/userFeedback/ui/SelectRating.js +1 -1
  95. package/dist/lib/widgets/userFeedback/ui/SelectRating.js.map +1 -1
  96. package/dist/stats.html +1 -1
  97. package/dist/types/lib/shared/dataLayers/index.d.ts +1 -0
  98. package/dist/types/lib/shared/dataLayers/utils.d.ts +33 -0
  99. package/dist/types/lib/shared/utils/extractTextFromHtml.d.ts +2 -0
  100. package/dist/types/lib/shared/utils/index.d.ts +1 -0
  101. package/dist/types/lib/widgets/banner/Banner.d.ts +1 -1
  102. package/dist/types/lib/widgets/banner/ui/banners/ui/Buttons.d.ts +2 -1
  103. package/dist/types/lib/widgets/benefit/ui/BenefitItem.d.ts +2 -1
  104. package/dist/types/lib/widgets/calculator/CalculatorView.d.ts +2 -1
  105. package/dist/types/lib/widgets/calculator/ui/CalculatorTabs.d.ts +2 -1
  106. package/dist/types/lib/widgets/calculator/ui/calculatorInfo/CalculatorInfo.d.ts +2 -1
  107. package/dist/types/lib/widgets/calculator/ui/calculatorInfo/ui/CalculatorInfoFooter.d.ts +2 -1
  108. package/dist/types/lib/widgets/conditionBlock/ConditionBlock.d.ts +2 -2
  109. package/dist/types/lib/widgets/conditionBlock/model/types.d.ts +1 -0
  110. package/dist/types/lib/widgets/esia/ui/TextBlock.d.ts +1 -2
  111. package/dist/types/lib/widgets/longBanner/LongBanner.d.ts +1 -2
  112. package/dist/types/lib/widgets/seoHeader/model/index.d.ts +0 -1
  113. package/dist/types/lib/widgets/stepper/Stepper.d.ts +2 -2
  114. package/dist/types/lib/widgets/stepper/ui/StepperTabs.d.ts +2 -1
  115. package/package.json +1 -1
  116. package/dist/lib/widgets/seoHeader/model/dataLayers.js +0 -2
  117. package/dist/lib/widgets/seoHeader/model/dataLayers.js.map +0 -1
  118. package/dist/types/lib/widgets/seoHeader/model/dataLayers.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"StepperTabs.js","sources":["../../../../../lib/widgets/stepper/ui/StepperTabs.tsx"],"sourcesContent":["import { type Dispatch, memo, type SetStateAction } from 'react'\nimport { cn } from '$/shared/utils'\n\nexport type StepperTabsClasses = {\n wrapper?: string\n tab?: string\n}\n\nexport interface StepperTab {\n tabName: string\n}\n\nexport type StepperTabValue = string | undefined\n\nexport interface StepperTabsProps {\n stepperTabs?: StepperTab[]\n activeStepper: StepperTabValue\n setActiveStepper: Dispatch<SetStateAction<StepperTabValue>>\n classes?: StepperTabsClasses\n}\n\nexport const StepperTabs = memo(({ stepperTabs, activeStepper, setActiveStepper, classes }: StepperTabsProps) => {\n return (\n <div className={cn('customScrollbar-y scrollHidden flex items-center gap-4 overflow-x-auto', classes?.wrapper)}>\n {stepperTabs?.map(({ tabName }) => (\n <button\n key={tabName}\n onClick={() => setActiveStepper(tabName)}\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': activeStepper === tabName },\n classes?.tab\n )}\n >\n {tabName}\n </button>\n ))}\n </div>\n )\n})\n"],"names":["StepperTabs","memo","stepperTabs","activeStepper","setActiveStepper","classes","jsx","cn","tabName"],"mappings":"sHAqBO,MAAMA,EAAcC,EAAK,CAAC,CAAE,YAAAC,EAAa,cAAAC,EAAe,iBAAAC,EAAkB,QAAAC,KAE7EC,EAAC,MAAA,CAAI,UAAWC,EAAG,yEAA0EF,GAAS,OAAO,EAC1G,SAAAH,GAAa,IAAI,CAAC,CAAE,QAAAM,KACnBF,EAAC,SAAA,CAEC,QAAS,IAAMF,EAAiBI,CAAO,EACvC,UAAWD,EACT,qOACA,CAAE,2CAA4CJ,IAAkBK,CAAA,EAChEH,GAAS,GAAA,EAGV,SAAAG,CAAA,EARIA,CAAA,CAUR,EACH,CAEH"}
1
+ {"version":3,"file":"StepperTabs.js","sources":["../../../../../lib/widgets/stepper/ui/StepperTabs.tsx"],"sourcesContent":["import { type Dispatch, memo, type SetStateAction } from 'react'\nimport { pushToDlTab } from '../../../shared/dataLayers'\nimport { cn, extractTextFromHtml } from '$/shared/utils'\n\nexport type StepperTabsClasses = {\n wrapper?: string\n tab?: string\n}\n\nexport interface StepperTab {\n tabName: string\n}\n\nexport type StepperTabValue = string | undefined\n\nexport interface StepperTabsProps {\n stepperTabs?: StepperTab[]\n activeStepper: StepperTabValue\n setActiveStepper: Dispatch<SetStateAction<StepperTabValue>>\n classes?: StepperTabsClasses\n headline?: string\n}\n\nexport const StepperTabs = memo(({ stepperTabs, activeStepper, setActiveStepper, classes, headline }: StepperTabsProps) => {\n return (\n <div className={cn('customScrollbar-y scrollHidden flex items-center gap-4 overflow-x-auto', classes?.wrapper)}>\n {stepperTabs?.map(({ tabName }) => (\n <button\n key={tabName}\n onClick={() => setActiveStepper(tabName)}\n onPointerDown={() => pushToDlTab(tabName, extractTextFromHtml(headline), 'stepper')}\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': activeStepper === tabName },\n classes?.tab\n )}\n >\n {tabName}\n </button>\n ))}\n </div>\n )\n})\n"],"names":["StepperTabs","memo","stepperTabs","activeStepper","setActiveStepper","classes","headline","jsx","cn","tabName","pushToDlTab","extractTextFromHtml"],"mappings":"2QAuBO,MAAMA,EAAcC,EAAK,CAAC,CAAE,YAAAC,EAAa,cAAAC,EAAe,iBAAAC,EAAkB,QAAAC,EAAS,SAAAC,KAEtFC,EAAC,MAAA,CAAI,UAAWC,EAAG,yEAA0EH,GAAS,OAAO,EAC1G,SAAAH,GAAa,IAAI,CAAC,CAAE,QAAAO,KACnBF,EAAC,SAAA,CAEC,QAAS,IAAMH,EAAiBK,CAAO,EACvC,cAAe,IAAMC,EAAYD,EAASE,EAAoBL,CAAQ,EAAG,SAAS,EAClF,UAAWE,EACT,qOACA,CAAE,2CAA4CL,IAAkBM,CAAA,EAChEJ,GAAS,GAAA,EAGV,SAAAI,CAAA,EATIA,CAAA,CAWR,EACH,CAEH"}
@@ -1,2 +1,2 @@
1
- import{jsx as a}from"react/jsx-runtime";import{cn as l}from"../../../shared/utils/cn.js";import{pushToDL as s}from"../../../shared/dataLayers/pushToDL.js";const b=({tabsShortInfo:t,activeTab:n,setActiveTab:c,classes:r,headline:i})=>{const m=(e,o)=>{c(o),s({event:"buttonClick",name:e,eventCategory:"click_block",eventAction:i,placement:"usefulInfo"})};return a("div",{className:l("hidden-scroll flex items-center gap-4 overflow-x-auto",r?.tabs),children:t&&t.map((e,o)=>a("button",{"aria-label":e.tabName,"data-layer-id":e?.dataLayers?.targetId,onClick:()=>m(e.tabName,o),className:l("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":n===o},r?.button),children:e.tabName},e.tabName))})};export{b as Tabs};
1
+ import{jsx as a}from"react/jsx-runtime";import{cn as l}from"../../../shared/utils/cn.js";import{pushToDlTab as s}from"../../../shared/dataLayers/utils.js";const c=({tabsShortInfo:o,activeTab:n,setActiveTab:i,classes:r,headline:m})=>a("div",{className:l("hidden-scroll flex items-center gap-4 overflow-x-auto",r?.tabs),children:o&&o.map((e,t)=>a("button",{"aria-label":e?.tabName,"data-layer-id":e?.dataLayers?.targetId,onClick:()=>i(t),onPointerDown:()=>s(e?.tabName,m,"usefulInfo"),className:l("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":n===t},r?.button),children:e?.tabName},e?.tabName))});export{c as Tabs};
2
2
  //# sourceMappingURL=Tabs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sources":["../../../../../lib/widgets/usefulInfo/ui/Tabs.tsx"],"sourcesContent":["import type { Dispatch, SetStateAction } from 'react'\nimport { pushToDL } from '../../../shared/dataLayers'\nimport { type UsefulInfoTab } from '../model'\nimport { cn } from '$/shared/utils'\n\nexport type TabsClasses = {\n tabs?: string\n button?: string\n}\n\ntype TabsShortInfo = Pick<UsefulInfoTab, 'tabName' | 'dataLayers'> & {}\n\nexport interface TabsProps {\n tabsShortInfo?: TabsShortInfo[]\n activeTab?: number\n setActiveTab: Dispatch<SetStateAction<number>>\n classes?: TabsClasses\n headline: string\n}\n\nexport const Tabs = ({ tabsShortInfo, activeTab, setActiveTab, classes, headline }: TabsProps) => {\n const handleClick = (tabName: string, tabIndex: number) => {\n setActiveTab(tabIndex)\n\n pushToDL({\n event: 'buttonClick',\n name: tabName,\n eventCategory: 'click_block',\n eventAction: headline,\n placement: 'usefulInfo'\n })\n }\n\n return (\n <div className={cn('hidden-scroll flex items-center gap-4 overflow-x-auto', classes?.tabs)}>\n {tabsShortInfo &&\n tabsShortInfo.map((tab, tabIndex) => (\n <button\n aria-label={tab.tabName}\n key={tab.tabName}\n data-layer-id={tab?.dataLayers?.targetId}\n onClick={() => handleClick(tab.tabName, tabIndex)}\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 {\n 'bg-icon-primary-default text-color-white': activeTab === tabIndex\n },\n classes?.button\n )}\n >\n {tab.tabName}\n </button>\n ))}\n </div>\n )\n}\n"],"names":["Tabs","tabsShortInfo","activeTab","setActiveTab","classes","headline","handleClick","tabName","tabIndex","pushToDL","jsx","cn","tab"],"mappings":"2JAoBO,MAAMA,EAAO,CAAC,CAAE,cAAAC,EAAe,UAAAC,EAAW,aAAAC,EAAc,QAAAC,EAAS,SAAAC,KAA0B,CAChG,MAAMC,EAAc,CAACC,EAAiBC,IAAqB,CACzDL,EAAaK,CAAQ,EAErBC,EAAS,CACP,MAAO,cACP,KAAMF,EACN,cAAe,cACf,YAAaF,EACb,UAAW,YAAA,CACZ,CACH,EAEA,OACEK,EAAC,MAAA,CAAI,UAAWC,EAAG,wDAAyDP,GAAS,IAAI,EACtF,SAAAH,GACCA,EAAc,IAAI,CAACW,EAAKJ,IACtBE,EAAC,SAAA,CACC,aAAYE,EAAI,QAEhB,gBAAeA,GAAK,YAAY,SAChC,QAAS,IAAMN,EAAYM,EAAI,QAASJ,CAAQ,EAChD,UAAWG,EACT,qOACA,CACE,2CAA4CT,IAAcM,CAAA,EAE5DJ,GAAS,MAAA,EAGV,SAAAQ,EAAI,OAAA,EAXAA,EAAI,OAAA,CAaZ,EACL,CAEJ"}
1
+ {"version":3,"file":"Tabs.js","sources":["../../../../../lib/widgets/usefulInfo/ui/Tabs.tsx"],"sourcesContent":["import type { Dispatch, SetStateAction } from 'react'\nimport { pushToDlTab } from '../../../shared/dataLayers'\nimport { type UsefulInfoTab } from '../model'\nimport { cn } from '$/shared/utils'\n\nexport type TabsClasses = {\n tabs?: string\n button?: string\n}\n\ntype TabsShortInfo = Pick<UsefulInfoTab, 'tabName' | 'dataLayers'> & {}\n\nexport interface TabsProps {\n tabsShortInfo?: TabsShortInfo[]\n activeTab?: number\n setActiveTab: Dispatch<SetStateAction<number>>\n classes?: TabsClasses\n headline: string\n}\n\nexport const Tabs = ({ tabsShortInfo, activeTab, setActiveTab, classes, headline }: TabsProps) => {\n return (\n <div className={cn('hidden-scroll flex items-center gap-4 overflow-x-auto', classes?.tabs)}>\n {tabsShortInfo &&\n tabsShortInfo.map((tab, tabIndex) => (\n <button\n aria-label={tab?.tabName}\n key={tab?.tabName}\n data-layer-id={tab?.dataLayers?.targetId}\n onClick={() => setActiveTab(tabIndex)}\n onPointerDown={() => pushToDlTab(tab?.tabName, headline, 'usefulInfo')}\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 {\n 'bg-icon-primary-default text-color-white': activeTab === tabIndex\n },\n classes?.button\n )}\n >\n {tab?.tabName}\n </button>\n ))}\n </div>\n )\n}\n"],"names":["Tabs","tabsShortInfo","activeTab","setActiveTab","classes","headline","jsx","cn","tab","tabIndex","pushToDlTab"],"mappings":"2JAoBO,MAAMA,EAAO,CAAC,CAAE,cAAAC,EAAe,UAAAC,EAAW,aAAAC,EAAc,QAAAC,EAAS,SAAAC,KAEpEC,EAAC,MAAA,CAAI,UAAWC,EAAG,wDAAyDH,GAAS,IAAI,EACtF,SAAAH,GACCA,EAAc,IAAI,CAACO,EAAKC,IACtBH,EAAC,SAAA,CACC,aAAYE,GAAK,QAEjB,gBAAeA,GAAK,YAAY,SAChC,QAAS,IAAML,EAAaM,CAAQ,EACpC,cAAe,IAAMC,EAAYF,GAAK,QAASH,EAAU,YAAY,EACrE,UAAWE,EACT,qOACA,CACE,2CAA4CL,IAAcO,CAAA,EAE5DL,GAAS,MAAA,EAGV,SAAAI,GAAK,OAAA,EAZDA,GAAK,OAAA,CAcb,EACL"}
@@ -1,2 +1,2 @@
1
- import{jsx as t}from"react/jsx-runtime";import{useState as o}from"react";import{useRating as c}from"./model/hooks/useRating.js";import{cn as l}from"../../shared/utils/cn.js";import{FeedbackTrigger as n}from"./ui/FeedbackTrigger.js";import{Finally as m}from"./ui/Finally.js";import{UserReview as f}from"./ui/UserReview.js";import{SelectRating as d}from"./ui/SelectRating.js";import{Popover as g}from"../../shared/ui/popover/Popover.js";const p=({formStep:s,setFormStep:i,ratingProps:r,...e})=>{switch(s){case"rating":return t(d,{...r,classes:e.classes?.selectRating,...e.selectRatingStepProps});case"review":return t(f,{submitCallback:e.submitCallback,setFormStep:i,rating:r.selectedRating,classes:e.classes?.userReview,...e.userReviewStepProps});case"finally":return t(m,{classes:e.classes?.finally,...e.finallyStepProps})}},P=s=>{const[i,r]=o("rating"),e=c(r),{classes:a}=s;return t("div",{className:l("fixed right-5 top-[80%] z-[1000]",a?.root),children:t(g,{side:"top",align:"end",sideOffset:10,withArrow:!1,withCloseBtn:!1,classes:{content:"max-w-[330px] w-[330px] p-6"},triggerElement:t(n,{}),...s?.popoverProps,children:t("div",{className:l("w-full",a?.wrapper),children:p({formStep:i,setFormStep:r,ratingProps:e,...s})})})})};export{P as UserFeedback,P as default};
1
+ import{jsx as t}from"react/jsx-runtime";import{useState as l}from"react";import{useRating as n}from"./model/hooks/useRating.js";import{cn as o}from"../../shared/utils/cn.js";import{FeedbackTrigger as c}from"./ui/FeedbackTrigger.js";import{Finally as m}from"./ui/Finally.js";import{UserReview as f}from"./ui/UserReview.js";import{SelectRating as p}from"./ui/SelectRating.js";import{Popover as d}from"../../shared/ui/popover/Popover.js";import{pushToDlTooltip as g}from"../../shared/dataLayers/utils.js";const u=({formStep:r,setFormStep:i,ratingProps:s,...e})=>{switch(r){case"rating":return t(p,{...s,classes:e.classes?.selectRating,...e.selectRatingStepProps});case"review":return t(f,{submitCallback:e.submitCallback,setFormStep:i,rating:s.selectedRating,classes:e.classes?.userReview,...e.userReviewStepProps});case"finally":return t(m,{classes:e.classes?.finally,...e.finallyStepProps})}},y=r=>{const[i,s]=l("rating"),e=n(s),{classes:a}=r;return t("div",{className:o("fixed right-5 top-[80%] z-[1000]",a?.root),children:t(d,{onPointerDown:()=>g("userFeedbackTrigger","userFeedback"),side:"top",align:"end",sideOffset:10,withArrow:!1,withCloseBtn:!1,classes:{content:"max-w-[330px] w-[330px] p-6"},triggerElement:t(c,{}),...r?.popoverProps,children:t("div",{className:o("w-full",a?.wrapper),children:u({formStep:i,setFormStep:s,ratingProps:e,...r})})})})};export{y as UserFeedback,y as default};
2
2
  //# sourceMappingURL=UserFeedback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserFeedback.js","sources":["../../../../lib/widgets/userFeedback/UserFeedback.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { type FormStep, type FormStepSetter, type SubmitCallback, useRating, type UseRatingReturn } from './model'\nimport {\n FeedbackTrigger,\n Finally,\n type FinallyClasses,\n type FinallyProps,\n SelectRating,\n type SelectRatingClasses,\n type SelectRatingProps,\n UserReview,\n type UserReviewClasses,\n type UserReviewProps\n} from './ui'\nimport { Popover, type PopoverProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type RenderFormStep = UserFeedbackProps & {\n formStep: FormStep\n setFormStep: FormStepSetter\n ratingProps: UseRatingReturn\n submitCallback: SubmitCallback\n}\n\nconst renderFormStep = ({ formStep, setFormStep, ratingProps, ...props }: RenderFormStep) => {\n switch (formStep) {\n case 'rating':\n return <SelectRating {...ratingProps} classes={props.classes?.selectRating} {...props.selectRatingStepProps} />\n\n case 'review':\n return (\n <UserReview\n submitCallback={props.submitCallback}\n setFormStep={setFormStep}\n rating={ratingProps.selectedRating}\n classes={props.classes?.userReview}\n {...props.userReviewStepProps}\n />\n )\n\n case 'finally':\n return <Finally classes={props.classes?.finally} {...props.finallyStepProps} />\n }\n}\n\ntype UserFeedbackClasses = {\n root?: string\n wrapper?: string\n selectRating?: SelectRatingClasses\n userReview?: UserReviewClasses\n finally?: FinallyClasses\n}\n\nexport type UserFeedbackProps = {\n submitCallback: SubmitCallback\n selectRatingStepProps?: SelectRatingProps\n userReviewStepProps?: Pick<UserReviewProps, 'title' | 'subtitle'>\n finallyStepProps?: FinallyProps\n classes?: UserFeedbackClasses\n popoverProps?: PopoverProps\n}\n\nexport const UserFeedback = (props: UserFeedbackProps) => {\n const [formStep, setFormStep] = useState<FormStep>('rating')\n const ratingProps = useRating(setFormStep)\n const { classes } = props\n\n return (\n <div className={cn('fixed right-5 top-[80%] z-[1000]', classes?.root)}>\n <Popover\n side='top'\n align='end'\n sideOffset={10}\n withArrow={false}\n withCloseBtn={false}\n classes={{\n content: 'max-w-[330px] w-[330px] p-6'\n }}\n triggerElement={<FeedbackTrigger />}\n {...props?.popoverProps}\n >\n <div className={cn('w-full', classes?.wrapper)}>{renderFormStep({ formStep, setFormStep, ratingProps, ...props })}</div>\n </Popover>\n </div>\n )\n}\n\nexport default UserFeedback\n"],"names":["renderFormStep","formStep","setFormStep","ratingProps","props","jsx","SelectRating","UserReview","Finally","UserFeedback","useState","useRating","classes","cn","Popover","FeedbackTrigger"],"mappings":"mbAwBA,MAAMA,EAAiB,CAAC,CAAE,SAAAC,EAAU,YAAAC,EAAa,YAAAC,EAAa,GAAGC,KAA4B,CAC3F,OAAQH,EAAA,CACN,IAAK,SACH,OAAOI,EAACC,EAAA,CAAc,GAAGH,EAAa,QAASC,EAAM,SAAS,aAAe,GAAGA,EAAM,qBAAA,CAAuB,EAE/G,IAAK,SACH,OACEC,EAACE,EAAA,CACC,eAAgBH,EAAM,eACtB,YAAAF,EACA,OAAQC,EAAY,eACpB,QAASC,EAAM,SAAS,WACvB,GAAGA,EAAM,mBAAA,CAAA,EAIhB,IAAK,UACH,OAAOC,EAACG,GAAQ,QAASJ,EAAM,SAAS,QAAU,GAAGA,EAAM,iBAAkB,CAAA,CAEnF,EAmBaK,EAAgBL,GAA6B,CACxD,KAAM,CAACH,EAAUC,CAAW,EAAIQ,EAAmB,QAAQ,EACrDP,EAAcQ,EAAUT,CAAW,EACnC,CAAE,QAAAU,GAAYR,EAEpB,SACG,MAAA,CAAI,UAAWS,EAAG,mCAAoCD,GAAS,IAAI,EAClE,SAAAP,EAACS,EAAA,CACC,KAAK,MACL,MAAM,MACN,WAAY,GACZ,UAAW,GACX,aAAc,GACd,QAAS,CACP,QAAS,6BAAA,EAEX,iBAAiBC,EAAA,EAAgB,EAChC,GAAGX,GAAO,aAEX,WAAC,MAAA,CAAI,UAAWS,EAAG,SAAUD,GAAS,OAAO,EAAI,SAAAZ,EAAe,CAAE,SAAAC,EAAU,YAAAC,EAAa,YAAAC,EAAa,GAAGC,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,EAEtH,CAEJ"}
1
+ {"version":3,"file":"UserFeedback.js","sources":["../../../../lib/widgets/userFeedback/UserFeedback.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { pushToDlTooltip } from '../../shared/dataLayers'\nimport { type FormStep, type FormStepSetter, type SubmitCallback, useRating, type UseRatingReturn } from './model'\nimport {\n FeedbackTrigger,\n Finally,\n type FinallyClasses,\n type FinallyProps,\n SelectRating,\n type SelectRatingClasses,\n type SelectRatingProps,\n UserReview,\n type UserReviewClasses,\n type UserReviewProps\n} from './ui'\nimport { Popover, type PopoverProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type RenderFormStep = UserFeedbackProps & {\n formStep: FormStep\n setFormStep: FormStepSetter\n ratingProps: UseRatingReturn\n submitCallback: SubmitCallback\n}\n\nconst renderFormStep = ({ formStep, setFormStep, ratingProps, ...props }: RenderFormStep) => {\n switch (formStep) {\n case 'rating':\n return <SelectRating {...ratingProps} classes={props.classes?.selectRating} {...props.selectRatingStepProps} />\n\n case 'review':\n return (\n <UserReview\n submitCallback={props.submitCallback}\n setFormStep={setFormStep}\n rating={ratingProps.selectedRating}\n classes={props.classes?.userReview}\n {...props.userReviewStepProps}\n />\n )\n\n case 'finally':\n return <Finally classes={props.classes?.finally} {...props.finallyStepProps} />\n }\n}\n\ntype UserFeedbackClasses = {\n root?: string\n wrapper?: string\n selectRating?: SelectRatingClasses\n userReview?: UserReviewClasses\n finally?: FinallyClasses\n}\n\nexport type UserFeedbackProps = {\n submitCallback: SubmitCallback\n selectRatingStepProps?: SelectRatingProps\n userReviewStepProps?: Pick<UserReviewProps, 'title' | 'subtitle'>\n finallyStepProps?: FinallyProps\n classes?: UserFeedbackClasses\n popoverProps?: PopoverProps\n}\n\nexport const UserFeedback = (props: UserFeedbackProps) => {\n const [formStep, setFormStep] = useState<FormStep>('rating')\n const ratingProps = useRating(setFormStep)\n const { classes } = props\n\n return (\n <div className={cn('fixed right-5 top-[80%] z-[1000]', classes?.root)}>\n <Popover\n onPointerDown={() => pushToDlTooltip('userFeedbackTrigger', 'userFeedback')}\n side='top'\n align='end'\n sideOffset={10}\n withArrow={false}\n withCloseBtn={false}\n classes={{\n content: 'max-w-[330px] w-[330px] p-6'\n }}\n triggerElement={<FeedbackTrigger />}\n {...props?.popoverProps}\n >\n <div className={cn('w-full', classes?.wrapper)}>{renderFormStep({ formStep, setFormStep, ratingProps, ...props })}</div>\n </Popover>\n </div>\n )\n}\n\nexport default UserFeedback\n"],"names":["renderFormStep","formStep","setFormStep","ratingProps","props","jsx","SelectRating","UserReview","Finally","UserFeedback","useState","useRating","classes","cn","Popover","pushToDlTooltip","FeedbackTrigger"],"mappings":"sfAyBA,MAAMA,EAAiB,CAAC,CAAE,SAAAC,EAAU,YAAAC,EAAa,YAAAC,EAAa,GAAGC,KAA4B,CAC3F,OAAQH,EAAA,CACN,IAAK,SACH,OAAOI,EAACC,EAAA,CAAc,GAAGH,EAAa,QAASC,EAAM,SAAS,aAAe,GAAGA,EAAM,qBAAA,CAAuB,EAE/G,IAAK,SACH,OACEC,EAACE,EAAA,CACC,eAAgBH,EAAM,eACtB,YAAAF,EACA,OAAQC,EAAY,eACpB,QAASC,EAAM,SAAS,WACvB,GAAGA,EAAM,mBAAA,CAAA,EAIhB,IAAK,UACH,OAAOC,EAACG,GAAQ,QAASJ,EAAM,SAAS,QAAU,GAAGA,EAAM,iBAAkB,CAAA,CAEnF,EAmBaK,EAAgBL,GAA6B,CACxD,KAAM,CAACH,EAAUC,CAAW,EAAIQ,EAAmB,QAAQ,EACrDP,EAAcQ,EAAUT,CAAW,EACnC,CAAE,QAAAU,GAAYR,EAEpB,SACG,MAAA,CAAI,UAAWS,EAAG,mCAAoCD,GAAS,IAAI,EAClE,SAAAP,EAACS,EAAA,CACC,cAAe,IAAMC,EAAgB,sBAAuB,cAAc,EAC1E,KAAK,MACL,MAAM,MACN,WAAY,GACZ,UAAW,GACX,aAAc,GACd,QAAS,CACP,QAAS,6BAAA,EAEX,iBAAiBC,EAAA,EAAgB,EAChC,GAAGZ,GAAO,aAEX,WAAC,MAAA,CAAI,UAAWS,EAAG,SAAUD,GAAS,OAAO,EAAI,SAAAZ,EAAe,CAAE,SAAAC,EAAU,YAAAC,EAAa,YAAAC,EAAa,GAAGC,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,EAEtH,CAEJ"}
@@ -1,2 +1,2 @@
1
- import{jsxs as a,jsx as r}from"react/jsx-runtime";import{cn as t}from"../../../shared/utils/cn.js";import{Icon as f}from"../../../shared/ui/icon/Icon.js";const p=Array(5).fill(0),u="Ваше мнение важно для нас!",g="Пожалуйста, оцените работу сайта, чтобы мы сделали его еще удобнее",k=({handleMouseLeave:n,hoveredRatings:i,selectedRating:o,handleSelectRating:c,handleMouseEnter:m,title:d=u,subtitle:s=g,classes:e})=>a("div",{className:t("flex flex-col items-center gap-4",e?.wrapper),children:[a("div",{className:t("flex flex-col gap-2 text-center",e?.textBlock),children:[r("p",{className:t("desk-body-medium-l",e?.title),children:d}),r("p",{className:t("desk-body-regular-l",e?.subtitle),children:s})]}),r("div",{className:t("flex items-center gap-2",e?.ratingsWrapper),children:p.map((h,l)=>r("button",{className:t("size-8",e?.ratingBtn),onMouseEnter:()=>m(l+1),onMouseLeave:()=>n(),onClick:()=>c(l+1),children:r(f,{name:"general/heart",className:t("fill-[#b0c0d2] transition-colors duration-12",e?.ratingIcon,{"fill-secondary-default":l<(i||o)})})},l))})]});export{k as SelectRating};
1
+ import{jsxs as l,jsx as r}from"react/jsx-runtime";import{cn as t}from"../../../shared/utils/cn.js";import{pushToDL as p}from"../../../shared/dataLayers/pushToDL.js";import{Icon as u}from"../../../shared/ui/icon/Icon.js";const f=Array(5).fill(0),g="Ваше мнение важно для нас!",b="Пожалуйста, оцените работу сайта, чтобы мы сделали его еще удобнее",y=({handleMouseLeave:o,hoveredRatings:a,selectedRating:i,handleSelectRating:c,handleMouseEnter:m,title:d=g,subtitle:s=b,classes:e})=>l("div",{className:t("flex flex-col items-center gap-4",e?.wrapper),children:[l("div",{className:t("flex flex-col gap-2 text-center",e?.textBlock),children:[r("p",{className:t("desk-body-medium-l",e?.title),children:d}),r("p",{className:t("desk-body-regular-l",e?.subtitle),children:s})]}),r("div",{className:t("flex items-center gap-2",e?.ratingsWrapper),children:f?.map((h,n)=>r("button",{onPointerDown:()=>p({event:"buttonClick",name:"userFeedbackVote",placement:"userFeedbackWidget"}),className:t("size-8",e?.ratingBtn),onMouseEnter:()=>m(n+1),onMouseLeave:()=>o(),onClick:()=>c(n+1),children:r(u,{name:"general/heart",className:t("fill-[#b0c0d2] transition-colors duration-12",e?.ratingIcon,{"fill-secondary-default":n<(a||i)})})},n))})]});export{y as SelectRating};
2
2
  //# sourceMappingURL=SelectRating.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectRating.js","sources":["../../../../../lib/widgets/userFeedback/ui/SelectRating.tsx"],"sourcesContent":["import type { UseRatingReturn } from '../model'\nimport { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nconst ratings = Array(5).fill(0)\nconst defaultTitle = 'Ваше мнение важно для нас!'\nconst defaultSubtitle = 'Пожалуйста, оцените работу сайта, чтобы мы сделали его еще удобнее'\n\nexport type SelectRatingClasses = {\n wrapper?: string\n textBlock?: string\n title?: string\n subtitle?: string\n ratingsWrapper?: string\n ratingBtn?: string\n ratingIcon?: string\n}\n\nexport interface SelectRatingProps {\n title?: string\n subtitle?: string\n classes?: SelectRatingClasses\n}\n\nexport const SelectRating = ({\n handleMouseLeave,\n hoveredRatings,\n selectedRating,\n handleSelectRating,\n handleMouseEnter,\n title = defaultTitle,\n subtitle = defaultSubtitle,\n classes\n}: SelectRatingProps & UseRatingReturn) => {\n return (\n <div className={cn('flex flex-col items-center gap-4', classes?.wrapper)}>\n <div className={cn('flex flex-col gap-2 text-center', classes?.textBlock)}>\n <p className={cn('desk-body-medium-l', classes?.title)}>{title}</p>\n <p className={cn('desk-body-regular-l', classes?.subtitle)}>{subtitle}</p>\n </div>\n\n <div className={cn('flex items-center gap-2', classes?.ratingsWrapper)}>\n {ratings.map((_, index) => (\n <button\n key={index}\n className={cn('size-8', classes?.ratingBtn)}\n onMouseEnter={() => handleMouseEnter(index + 1)}\n onMouseLeave={() => handleMouseLeave()}\n onClick={() => handleSelectRating(index + 1)}\n >\n <Icon\n name='general/heart'\n className={cn('fill-[#b0c0d2] transition-colors duration-12', classes?.ratingIcon, {\n 'fill-secondary-default': index < (hoveredRatings || selectedRating)\n })}\n />\n </button>\n ))}\n </div>\n </div>\n )\n}\n"],"names":["ratings","defaultTitle","defaultSubtitle","SelectRating","handleMouseLeave","hoveredRatings","selectedRating","handleSelectRating","handleMouseEnter","title","subtitle","classes","cn","jsxs","jsx","_","index","Icon"],"mappings":"0JAIA,MAAMA,EAAU,MAAM,CAAC,EAAE,KAAK,CAAC,EACzBC,EAAe,6BACfC,EAAkB,qEAkBXC,EAAe,CAAC,CAC3B,iBAAAC,EACA,eAAAC,EACA,eAAAC,EACA,mBAAAC,EACA,iBAAAC,EACA,MAAAC,EAAQR,EACR,SAAAS,EAAWR,EACX,QAAAS,CACF,MAEK,MAAA,CAAI,UAAWC,EAAG,mCAAoCD,GAAS,OAAO,EACrE,SAAA,CAAAE,EAAC,OAAI,UAAWD,EAAG,kCAAmCD,GAAS,SAAS,EACtE,SAAA,CAAAG,EAAC,KAAE,UAAWF,EAAG,qBAAsBD,GAAS,KAAK,EAAI,SAAAF,EAAM,EAC/DK,EAAC,KAAE,UAAWF,EAAG,sBAAuBD,GAAS,QAAQ,EAAI,SAAAD,CAAA,CAAS,CAAA,EACxE,EAEAI,EAAC,MAAA,CAAI,UAAWF,EAAG,0BAA2BD,GAAS,cAAc,EAClE,SAAAX,EAAQ,IAAI,CAACe,EAAGC,IACfF,EAAC,SAAA,CAEC,UAAWF,EAAG,SAAUD,GAAS,SAAS,EAC1C,aAAc,IAAMH,EAAiBQ,EAAQ,CAAC,EAC9C,aAAc,IAAMZ,EAAA,EACpB,QAAS,IAAMG,EAAmBS,EAAQ,CAAC,EAE3C,SAAAF,EAACG,EAAA,CACC,KAAK,gBACL,UAAWL,EAAG,+CAAgDD,GAAS,WAAY,CACjF,yBAA0BK,GAASX,GAAkBC,EAAA,CACtD,CAAA,CAAA,CACH,EAXKU,CAAA,CAaR,CAAA,CACH,CAAA,EACF"}
1
+ {"version":3,"file":"SelectRating.js","sources":["../../../../../lib/widgets/userFeedback/ui/SelectRating.tsx"],"sourcesContent":["import { pushToDL } from '../../../shared/dataLayers'\nimport type { UseRatingReturn } from '../model'\nimport { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nconst ratings = Array(5).fill(0)\nconst defaultTitle = 'Ваше мнение важно для нас!'\nconst defaultSubtitle = 'Пожалуйста, оцените работу сайта, чтобы мы сделали его еще удобнее'\n\nexport type SelectRatingClasses = {\n wrapper?: string\n textBlock?: string\n title?: string\n subtitle?: string\n ratingsWrapper?: string\n ratingBtn?: string\n ratingIcon?: string\n}\n\nexport interface SelectRatingProps {\n title?: string\n subtitle?: string\n classes?: SelectRatingClasses\n}\n\nexport const SelectRating = ({\n handleMouseLeave,\n hoveredRatings,\n selectedRating,\n handleSelectRating,\n handleMouseEnter,\n title = defaultTitle,\n subtitle = defaultSubtitle,\n classes\n}: SelectRatingProps & UseRatingReturn) => {\n return (\n <div className={cn('flex flex-col items-center gap-4', classes?.wrapper)}>\n <div className={cn('flex flex-col gap-2 text-center', classes?.textBlock)}>\n <p className={cn('desk-body-medium-l', classes?.title)}>{title}</p>\n <p className={cn('desk-body-regular-l', classes?.subtitle)}>{subtitle}</p>\n </div>\n\n <div className={cn('flex items-center gap-2', classes?.ratingsWrapper)}>\n {ratings?.map((_, index) => (\n <button\n key={index}\n onPointerDown={() =>\n pushToDL({\n event: 'buttonClick',\n name: 'userFeedbackVote',\n placement: 'userFeedbackWidget'\n })\n }\n className={cn('size-8', classes?.ratingBtn)}\n onMouseEnter={() => handleMouseEnter(index + 1)}\n onMouseLeave={() => handleMouseLeave()}\n onClick={() => handleSelectRating(index + 1)}\n >\n <Icon\n name='general/heart'\n className={cn('fill-[#b0c0d2] transition-colors duration-12', classes?.ratingIcon, {\n 'fill-secondary-default': index < (hoveredRatings || selectedRating)\n })}\n />\n </button>\n ))}\n </div>\n </div>\n )\n}\n"],"names":["ratings","defaultTitle","defaultSubtitle","SelectRating","handleMouseLeave","hoveredRatings","selectedRating","handleSelectRating","handleMouseEnter","title","subtitle","classes","cn","jsxs","jsx","_","index","pushToDL","Icon"],"mappings":"4NAKA,MAAMA,EAAU,MAAM,CAAC,EAAE,KAAK,CAAC,EACzBC,EAAe,6BACfC,EAAkB,qEAkBXC,EAAe,CAAC,CAC3B,iBAAAC,EACA,eAAAC,EACA,eAAAC,EACA,mBAAAC,EACA,iBAAAC,EACA,MAAAC,EAAQR,EACR,SAAAS,EAAWR,EACX,QAAAS,CACF,MAEK,MAAA,CAAI,UAAWC,EAAG,mCAAoCD,GAAS,OAAO,EACrE,SAAA,CAAAE,EAAC,OAAI,UAAWD,EAAG,kCAAmCD,GAAS,SAAS,EACtE,SAAA,CAAAG,EAAC,KAAE,UAAWF,EAAG,qBAAsBD,GAAS,KAAK,EAAI,SAAAF,EAAM,EAC/DK,EAAC,KAAE,UAAWF,EAAG,sBAAuBD,GAAS,QAAQ,EAAI,SAAAD,CAAA,CAAS,CAAA,EACxE,EAEAI,EAAC,MAAA,CAAI,UAAWF,EAAG,0BAA2BD,GAAS,cAAc,EAClE,SAAAX,GAAS,IAAI,CAACe,EAAGC,IAChBF,EAAC,SAAA,CAEC,cAAe,IACbG,EAAS,CACP,MAAO,cACP,KAAM,mBACN,UAAW,oBAAA,CACZ,EAEH,UAAWL,EAAG,SAAUD,GAAS,SAAS,EAC1C,aAAc,IAAMH,EAAiBQ,EAAQ,CAAC,EAC9C,aAAc,IAAMZ,EAAA,EACpB,QAAS,IAAMG,EAAmBS,EAAQ,CAAC,EAE3C,SAAAF,EAACI,EAAA,CACC,KAAK,gBACL,UAAWN,EAAG,+CAAgDD,GAAS,WAAY,CACjF,yBAA0BK,GAASX,GAAkBC,EAAA,CACtD,CAAA,CAAA,CACH,EAlBKU,CAAA,CAoBR,CAAA,CACH,CAAA,EACF"}