@redneckz/wildless-cms-uni-blocks 0.12.13 → 0.13.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/bin/migration-scripts/0.12.12.js +48 -0
- package/bundle/EventBus/defaultEventBus.d.ts +4 -2
- package/bundle/EventBus/useLatestEvent.d.ts +2 -0
- package/bundle/blocks.schema.json +1 -1
- package/bundle/bundle.umd.js +450 -422
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/ApplicationForm/ApplicationFormContent.d.ts +2 -2
- package/bundle/components/Bonus/BonusContent.d.ts +2 -7
- package/bundle/components/BusinessBlock/BusinessBlockContent.d.ts +3 -2
- package/bundle/components/ButtonsBlock/ButtonsBlockContent.d.ts +2 -2
- package/bundle/components/Calculator/Calculator.mobile.d.ts +5 -0
- package/bundle/components/Calculator/CalculatorContent.d.ts +2 -2
- package/bundle/components/Calculator/CreditCalculatorForm.d.ts +1 -0
- package/bundle/components/Calculator/DepositCalculatorForm.d.ts +1 -1
- package/bundle/components/Calculator/RefinancingCalculatorForm.d.ts +1 -1
- package/bundle/components/Calculator/renderBinaryRadioButtonGroup.d.ts +2 -1
- package/bundle/components/Calculator/renderRate.d.ts +9 -0
- package/bundle/components/CardTransfer/CardTransferContent.d.ts +2 -2
- package/bundle/components/CarouselCard/CarouselCardContent.d.ts +3 -2
- package/bundle/components/CarouselCatalogCard/CarouselCatalogCardContent.d.ts +3 -2
- package/bundle/components/CarouselCatalogCard/CatalogCard.d.ts +2 -2
- package/bundle/components/CarouselProductCard/CarouselProductCardContent.d.ts +3 -2
- package/bundle/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -2
- package/bundle/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +4 -9
- package/bundle/components/ContactsBlock/ContactsBlockContent.d.ts +2 -2
- package/bundle/components/ContentPage/computeAPIFallback.d.ts +2 -2
- package/bundle/components/ErrorBlock/ErrorBlockContent.d.ts +2 -2
- package/bundle/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +2 -2
- package/bundle/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +2 -2
- package/bundle/components/Footer/FooterProps.d.ts +0 -2
- package/bundle/components/Footer/SocialMedia.d.ts +2 -2
- package/bundle/components/Header/HeaderProps.d.ts +0 -4
- package/bundle/components/Header/HeaderSecondaryMenu.d.ts +1 -1
- package/bundle/components/InsuranceAmountBlock/InsuranceAmountBlockContent.d.ts +2 -2
- package/bundle/components/InsuranceAmountBlock/InsuranceAmountBlockInner.d.ts +2 -2
- package/bundle/components/MobileAppTile/MobileAppTileContent.d.ts +2 -2
- package/bundle/components/MortgageFiltration/HotFilterRecord.d.ts +11 -0
- package/bundle/components/MortgageFiltration/MortgageFiltrationContent.d.ts +12 -0
- package/bundle/components/ProductBlock/ProductBlockContent.d.ts +2 -2
- package/bundle/components/ProductBlock/renderBackwardButton.d.ts +2 -2
- package/bundle/components/PromoTile/PromoTileContent.d.ts +2 -2
- package/bundle/components/RepresentativeOfficeInfo/RepresentativeOfficeInfoContent.d.ts +2 -2
- package/bundle/components/RollupItem/rollupIconVersion.mobile.d.ts +1 -1
- package/bundle/components/StepsBlock/StepsBlockContent.d.ts +6 -9
- package/bundle/components/Tabs/renderTabs.d.ts +12 -0
- package/bundle/components/TariffsTable/EmbeddableCellData.d.ts +3 -2
- package/bundle/components/TariffsTable/EmbeddableCellData.mobile.d.ts +3 -2
- package/bundle/components/TariffsTable/TariffsTableContent.d.ts +2 -2
- package/bundle/hooks/useForm.d.ts +1 -0
- package/bundle/hooks/useList.d.ts +10 -0
- package/bundle/hooks/useLocation.d.ts +1 -1
- package/bundle/hooks/useSWRResource.d.ts +1 -1
- package/bundle/icons/IconName.d.ts +3 -3
- package/bundle/services/sitemap/useSitemap.d.ts +3 -0
- package/bundle/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +2 -2
- package/bundle/ui-kit/Button/Button.d.ts +2 -2
- package/bundle/ui-kit/Button/ButtonContent.d.ts +19 -0
- package/bundle/ui-kit/Button/ButtonInner.d.ts +2 -7
- package/bundle/ui-kit/Button/ButtonProps.d.ts +4 -44
- package/bundle/ui-kit/Button/ButtonsSectionContent.d.ts +7 -0
- package/bundle/ui-kit/Button/renderButtonsSection.d.ts +2 -2
- package/{lib/ui-kit/Dialog → bundle/ui-kit/DialogManager}/CloseButton.d.ts +1 -1
- package/bundle/ui-kit/{Dialog → DialogManager}/Dialog.d.ts +0 -1
- package/bundle/ui-kit/DialogManager/DialogAction.d.ts +12 -0
- package/bundle/ui-kit/DialogManager/DialogManager.d.ts +2 -0
- package/bundle/ui-kit/DialogManager/useDialogManager.d.ts +10 -0
- package/bundle/ui-kit/InputRange/InputRangeProps.d.ts +1 -0
- package/bundle/ui-kit/ListControlProps.d.ts +4 -0
- package/bundle/ui-kit/LocationDialog/LocationDialog.d.ts +2 -3
- package/bundle/ui-kit/LocationDialog/renderForeignOffices.d.ts +5 -0
- package/bundle/ui-kit/LocationDialog/renderRegion.d.ts +3 -0
- package/bundle/ui-kit/LocationDialog/renderRegionGroup.d.ts +3 -0
- package/bundle/ui-kit/LocationDialog/useLocationDialog.d.ts +5 -0
- package/bundle/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +1 -0
- package/bundle/ui-kit/SearchDialog/SearchDialog.d.ts +1 -3
- package/bundle/ui-kit/SearchDialog/useSearchDialog.d.ts +6 -0
- package/bundle/ui-kit/TabsControl/ScrollableTabsControl.d.ts +2 -0
- package/bundle/ui-kit/TabsControl/TabItem.d.ts +11 -0
- package/bundle/ui-kit/TabsControl/TabsControl.d.ts +2 -0
- package/bundle/ui-kit/TabsControl/TabsControlProps.d.ts +6 -0
- package/bundle/ui-kit/TabsControl/renderTab.d.ts +4 -0
- package/bundle/utils/BoolComparator.d.ts +11 -0
- package/cosmos-static/icons/ArrowDownSolidIcon.svg +1 -1
- package/cosmos-static/icons/ArrowUpSolidIcon.svg +1 -1
- package/dist/EventBus/defaultEventBus.d.ts +4 -2
- package/dist/EventBus/defaultEventBus.js.map +1 -1
- package/dist/EventBus/useLatestEvent.d.ts +2 -0
- package/dist/EventBus/useLatestEvent.js +11 -0
- package/dist/EventBus/useLatestEvent.js.map +1 -0
- package/dist/components/ApplicationForm/ApplicationFormContent.d.ts +2 -2
- package/dist/components/Blocks.mobile.js +2 -0
- package/dist/components/Blocks.mobile.js.map +1 -1
- package/dist/components/Bonus/BonusContent.d.ts +2 -7
- package/dist/components/BusinessBlock/BusinessBlockContent.d.ts +3 -2
- package/dist/components/ButtonsBlock/ButtonsBlockContent.d.ts +2 -2
- package/dist/components/Calculator/BusinessDepositCalculatorForm.js +19 -13
- package/dist/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
- package/dist/components/Calculator/Calculator.mobile.d.ts +5 -0
- package/dist/components/Calculator/Calculator.mobile.js +33 -0
- package/dist/components/Calculator/Calculator.mobile.js.map +1 -0
- package/dist/components/Calculator/CalculatorContent.d.ts +2 -2
- package/dist/components/Calculator/CalculatorValueBlock.js +2 -1
- package/dist/components/Calculator/CalculatorValueBlock.js.map +1 -1
- package/dist/components/Calculator/CreditCalculatorForm.d.ts +1 -0
- package/dist/components/Calculator/CreditCalculatorForm.js +18 -11
- package/dist/components/Calculator/CreditCalculatorForm.js.map +1 -1
- package/dist/components/Calculator/DepositCalculatorForm.d.ts +1 -1
- package/dist/components/Calculator/DepositCalculatorForm.js +13 -11
- package/dist/components/Calculator/DepositCalculatorForm.js.map +1 -1
- package/dist/components/Calculator/RefinancingCalculatorForm.d.ts +1 -1
- package/dist/components/Calculator/RefinancingCalculatorForm.js +1 -0
- package/dist/components/Calculator/RefinancingCalculatorForm.js.map +1 -1
- package/dist/components/Calculator/renderBinaryRadioButtonGroup.d.ts +2 -1
- package/dist/components/Calculator/renderBinaryRadioButtonGroup.js +2 -1
- package/dist/components/Calculator/renderBinaryRadioButtonGroup.js.map +1 -1
- package/dist/components/Calculator/renderDaysInput.js +1 -1
- package/dist/components/Calculator/renderDaysInput.js.map +1 -1
- package/dist/components/Calculator/renderMonthsInput.js +1 -1
- package/dist/components/Calculator/renderMonthsInput.js.map +1 -1
- package/dist/components/Calculator/renderPaymentType.js +1 -0
- package/dist/components/Calculator/renderPaymentType.js.map +1 -1
- package/dist/components/Calculator/renderRate.d.ts +9 -0
- package/dist/components/Calculator/renderRate.js +16 -0
- package/dist/components/Calculator/renderRate.js.map +1 -0
- package/dist/components/CardTransfer/CardTransferContent.d.ts +2 -2
- package/dist/components/CarouselBankHistoryCard/CarouselBankHistoryCard.mobile.js +1 -1
- package/dist/components/CarouselBankHistoryCard/CarouselBankHistoryCard.mobile.js.map +1 -1
- package/dist/components/CarouselCard/CarouselCardContent.d.ts +3 -2
- package/dist/components/CarouselCatalogCard/CarouselCatalogCard.js +2 -2
- package/dist/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
- package/dist/components/CarouselCatalogCard/CarouselCatalogCardContent.d.ts +3 -2
- package/dist/components/CarouselCatalogCard/CatalogCard.d.ts +2 -2
- package/dist/components/CarouselCatalogCard/CatalogCard.js.map +1 -1
- package/dist/components/CarouselProductCard/CarouselProductCardContent.d.ts +3 -2
- package/dist/components/CarouselProgramsCard/CarouselProgramsCard.js +6 -7
- package/dist/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
- package/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -2
- package/dist/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +4 -9
- package/dist/components/ContactsBlock/ContactsBlockContent.d.ts +2 -2
- package/dist/components/ContentPage/ContentPage.js +2 -23
- package/dist/components/ContentPage/ContentPage.js.map +1 -1
- package/dist/components/ContentPage/computeAPIFallback.d.ts +2 -2
- package/dist/components/ContentPage/computeAPIFallback.js +10 -27
- package/dist/components/ContentPage/computeAPIFallback.js.map +1 -1
- package/dist/components/ErrorBlock/ErrorBlockContent.d.ts +2 -2
- package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +2 -2
- package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
- package/dist/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +2 -2
- package/dist/components/Footer/Footer.js +4 -2
- package/dist/components/Footer/Footer.js.map +1 -1
- package/dist/components/Footer/Footer.mobile.js +7 -4
- package/dist/components/Footer/Footer.mobile.js.map +1 -1
- package/dist/components/Footer/FooterProps.d.ts +0 -2
- package/dist/components/Footer/SocialMedia.d.ts +2 -2
- package/dist/components/Header/Header.js +5 -4
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/Header/Header.mobile.js +4 -3
- package/dist/components/Header/Header.mobile.js.map +1 -1
- package/dist/components/Header/HeaderProps.d.ts +0 -4
- package/dist/components/Header/HeaderSecondaryMenu.d.ts +1 -1
- package/dist/components/Header/HeaderSecondaryMenu.js +10 -9
- package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/dist/components/Header/HeaderSubMenu.js +1 -1
- package/dist/components/Header/HeaderSubMenu.js.map +1 -1
- package/dist/components/Header/HeaderTop.js +9 -6
- package/dist/components/Header/HeaderTop.js.map +1 -1
- package/dist/components/Header/findActiveSubItem.js.map +1 -0
- package/dist/components/Header/isHrefActive.js.map +1 -0
- package/dist/components/Header/isTopItemActive.js.map +1 -0
- package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockContent.d.ts +2 -2
- package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.d.ts +2 -2
- package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
- package/dist/components/MobileAppTile/MobileAppTile.js +1 -1
- package/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
- package/dist/components/MobileAppTile/MobileAppTileContent.d.ts +2 -2
- package/dist/components/MortgageFiltration/HotFilterRecord.d.ts +11 -0
- package/dist/components/MortgageFiltration/HotFilterRecord.js +5 -0
- package/dist/components/MortgageFiltration/HotFilterRecord.js.map +1 -0
- package/dist/components/MortgageFiltration/MortgageFiltration.js +24 -4
- package/dist/components/MortgageFiltration/MortgageFiltration.js.map +1 -1
- package/dist/components/MortgageFiltration/MortgageFiltrationContent.d.ts +12 -0
- package/dist/components/ProductBlock/ProductBlockContent.d.ts +2 -2
- package/dist/components/ProductBlock/renderBackwardButton.d.ts +2 -2
- package/dist/components/ProductBlock/renderBackwardButton.js.map +1 -1
- package/dist/components/PromoTile/PromoTileContent.d.ts +2 -2
- package/dist/components/RepresentativeOfficeInfo/RepresentativeOfficeInfoContent.d.ts +2 -2
- package/dist/components/RollupItem/RollupItem.js +1 -1
- package/dist/components/RollupItem/RollupItem.js.map +1 -1
- package/dist/components/RollupItem/renderRoundedIcon.mobile.js +1 -1
- package/dist/components/RollupItem/renderRoundedIcon.mobile.js.map +1 -1
- package/dist/components/RollupItem/rollupIconVersion.mobile.d.ts +1 -1
- package/dist/components/RollupItem/rollupIconVersion.mobile.js +1 -1
- package/dist/components/RollupItem/rollupIconVersion.mobile.js.map +1 -1
- package/dist/components/StepsBlock/StepsBlockContent.d.ts +6 -9
- package/dist/components/Tabs/Tabs.js +19 -24
- package/dist/components/Tabs/Tabs.js.map +1 -1
- package/dist/components/Tabs/renderTabs.d.ts +12 -0
- package/dist/components/Tabs/renderTabs.js +19 -0
- package/dist/components/Tabs/renderTabs.js.map +1 -0
- package/dist/components/TariffsTable/EmbeddableCellData.d.ts +3 -2
- package/dist/components/TariffsTable/EmbeddableCellData.js.map +1 -1
- package/dist/components/TariffsTable/EmbeddableCellData.mobile.d.ts +3 -2
- package/dist/components/TariffsTable/EmbeddableCellData.mobile.js.map +1 -1
- package/dist/components/TariffsTable/TariffsTableContent.d.ts +2 -2
- package/dist/hooks/useForm.d.ts +1 -0
- package/dist/hooks/useForm.js +5 -0
- package/dist/hooks/useForm.js.map +1 -1
- package/dist/hooks/useLink.js +3 -3
- package/dist/hooks/useLink.js.map +1 -1
- package/dist/hooks/useList.d.ts +10 -0
- package/dist/hooks/useList.js +13 -0
- package/dist/hooks/useList.js.map +1 -0
- package/dist/hooks/useLocation.d.ts +1 -1
- package/dist/hooks/useLocation.js +27 -16
- package/dist/hooks/useLocation.js.map +1 -1
- package/dist/hooks/useSWRResource.d.ts +1 -1
- package/dist/hooks/useSWRResource.js +2 -4
- package/dist/hooks/useSWRResource.js.map +1 -1
- package/dist/icons/IconName.d.ts +3 -3
- package/dist/icons/IconName.js +3 -3
- package/dist/icons/IconName.js.map +1 -1
- package/dist/services/sitemap/useSitemap.d.ts +3 -0
- package/dist/services/sitemap/useSitemap.js +7 -0
- package/dist/services/sitemap/useSitemap.js.map +1 -0
- package/dist/ui-kit/BaseFiltration/BaseFiltrationInner.js +2 -2
- package/dist/ui-kit/BaseFiltration/BaseFiltrationInner.js.map +1 -1
- package/dist/ui-kit/BaseFiltration/renderFiltrationForm.js +2 -2
- package/dist/ui-kit/BaseFiltration/renderFiltrationForm.js.map +1 -1
- package/dist/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +2 -2
- package/dist/ui-kit/BaseTile/BaseTile.js +1 -1
- package/dist/ui-kit/BaseTile/BaseTile.js.map +1 -1
- package/dist/ui-kit/BenefitsList/DefaultBenefitsList.js +5 -3
- package/dist/ui-kit/BenefitsList/DefaultBenefitsList.js.map +1 -1
- package/dist/ui-kit/Button/Button.d.ts +2 -2
- package/dist/ui-kit/Button/Button.js.map +1 -1
- package/dist/ui-kit/Button/ButtonContent.d.ts +19 -0
- package/dist/{model/Button.js → ui-kit/Button/ButtonContent.js} +1 -1
- package/dist/ui-kit/Button/ButtonContent.js.map +1 -0
- package/dist/ui-kit/Button/ButtonInner.d.ts +2 -7
- package/dist/ui-kit/Button/ButtonInner.js.map +1 -1
- package/dist/ui-kit/Button/ButtonProps.d.ts +4 -44
- package/dist/ui-kit/Button/ButtonsSectionContent.d.ts +7 -0
- package/dist/ui-kit/{LocationDialog/LocationDialogProps.js → Button/ButtonsSectionContent.js} +1 -1
- package/dist/ui-kit/Button/ButtonsSectionContent.js.map +1 -0
- package/dist/ui-kit/Button/renderButtonsSection.d.ts +2 -2
- package/dist/ui-kit/Button/renderButtonsSection.js.map +1 -1
- package/dist/ui-kit/CookiePopup/CookiePopup.js +6 -6
- package/dist/ui-kit/CookiePopup/CookiePopup.js.map +1 -1
- package/{bundle/ui-kit/Dialog → dist/ui-kit/DialogManager}/CloseButton.d.ts +1 -1
- package/{mobile/dist/ui-kit/Dialog → dist/ui-kit/DialogManager}/CloseButton.js +1 -1
- package/dist/ui-kit/DialogManager/CloseButton.js.map +1 -0
- package/dist/ui-kit/{Dialog → DialogManager}/Dialog.d.ts +0 -1
- package/dist/ui-kit/DialogManager/Dialog.js +17 -0
- package/dist/ui-kit/DialogManager/Dialog.js.map +1 -0
- package/dist/ui-kit/DialogManager/DialogAction.d.ts +12 -0
- package/dist/ui-kit/DialogManager/DialogAction.js.map +1 -0
- package/dist/ui-kit/DialogManager/DialogManager.d.ts +2 -0
- package/dist/ui-kit/DialogManager/DialogManager.js +61 -0
- package/dist/ui-kit/DialogManager/DialogManager.js.map +1 -0
- package/dist/ui-kit/DialogManager/useDialogManager.d.ts +10 -0
- package/dist/ui-kit/DialogManager/useDialogManager.js +10 -0
- package/dist/ui-kit/DialogManager/useDialogManager.js.map +1 -0
- package/dist/ui-kit/InputRange/InputRangeProps.d.ts +1 -0
- package/dist/ui-kit/ListControlProps.d.ts +4 -0
- package/dist/ui-kit/ListControlProps.js +2 -0
- package/dist/ui-kit/ListControlProps.js.map +1 -0
- package/dist/ui-kit/LocationDialog/LocationDialog.d.ts +2 -3
- package/dist/ui-kit/LocationDialog/LocationDialog.js +17 -26
- package/dist/ui-kit/LocationDialog/LocationDialog.js.map +1 -1
- package/dist/ui-kit/LocationDialog/renderForeignOffices.d.ts +5 -0
- package/dist/ui-kit/LocationDialog/renderForeignOffices.js +15 -0
- package/dist/ui-kit/LocationDialog/renderForeignOffices.js.map +1 -0
- package/dist/ui-kit/LocationDialog/renderRegion.d.ts +3 -0
- package/dist/ui-kit/LocationDialog/renderRegion.js +8 -0
- package/dist/ui-kit/LocationDialog/renderRegion.js.map +1 -0
- package/dist/ui-kit/LocationDialog/renderRegionGroup.d.ts +3 -0
- package/dist/ui-kit/LocationDialog/renderRegionGroup.js +8 -0
- package/dist/ui-kit/LocationDialog/renderRegionGroup.js.map +1 -0
- package/dist/ui-kit/LocationDialog/useLocationDialog.d.ts +5 -0
- package/dist/ui-kit/LocationDialog/useLocationDialog.js +14 -0
- package/dist/ui-kit/LocationDialog/useLocationDialog.js.map +1 -0
- package/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +1 -0
- package/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.js +2 -1
- package/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
- package/dist/ui-kit/SearchBar/SearchBar.js +6 -9
- package/dist/ui-kit/SearchBar/SearchBar.js.map +1 -1
- package/dist/ui-kit/SearchDialog/SearchDialog.d.ts +1 -3
- package/dist/ui-kit/SearchDialog/SearchDialog.js +8 -9
- package/dist/ui-kit/SearchDialog/SearchDialog.js.map +1 -1
- package/dist/ui-kit/SearchDialog/useSearchDialog.d.ts +6 -0
- package/dist/ui-kit/SearchDialog/useSearchDialog.js +14 -0
- package/dist/ui-kit/SearchDialog/useSearchDialog.js.map +1 -0
- package/dist/ui-kit/SwipeListControl/SwipeListContainer.js +1 -1
- package/dist/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
- package/dist/ui-kit/TabsControl/ScrollableTabsControl.d.ts +2 -0
- package/dist/ui-kit/TabsControl/ScrollableTabsControl.js +17 -0
- package/dist/ui-kit/TabsControl/ScrollableTabsControl.js.map +1 -0
- package/dist/ui-kit/TabsControl/TabItem.d.ts +11 -0
- package/dist/ui-kit/TabsControl/TabItem.js +38 -0
- package/dist/ui-kit/TabsControl/TabItem.js.map +1 -0
- package/dist/ui-kit/TabsControl/TabsControl.d.ts +2 -0
- package/dist/ui-kit/TabsControl/TabsControl.js +8 -0
- package/dist/ui-kit/TabsControl/TabsControl.js.map +1 -0
- package/dist/ui-kit/TabsControl/TabsControlProps.d.ts +6 -0
- package/dist/ui-kit/TabsControl/TabsControlProps.js +2 -0
- package/dist/ui-kit/TabsControl/TabsControlProps.js.map +1 -0
- package/dist/ui-kit/TabsControl/renderTab.d.ts +4 -0
- package/dist/ui-kit/TabsControl/renderTab.js +7 -0
- package/dist/ui-kit/TabsControl/renderTab.js.map +1 -0
- package/dist/utils/BoolComparator.d.ts +11 -0
- package/dist/utils/BoolComparator.js +19 -0
- package/dist/utils/BoolComparator.js.map +1 -0
- package/lib/EventBus/defaultEventBus.d.ts +4 -2
- package/lib/EventBus/defaultEventBus.js.map +1 -1
- package/lib/EventBus/useLatestEvent.d.ts +2 -0
- package/lib/EventBus/useLatestEvent.js +8 -0
- package/lib/EventBus/useLatestEvent.js.map +1 -0
- package/lib/common.css +1 -1
- package/lib/components/ApplicationForm/ApplicationFormContent.d.ts +2 -2
- package/lib/components/Blocks.mobile.js +2 -0
- package/lib/components/Blocks.mobile.js.map +1 -1
- package/lib/components/Bonus/BonusContent.d.ts +2 -7
- package/lib/components/BusinessBlock/BusinessBlockContent.d.ts +3 -2
- package/lib/components/ButtonsBlock/ButtonsBlockContent.d.ts +2 -2
- package/lib/components/Calculator/BusinessDepositCalculatorForm.js +19 -13
- package/lib/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
- package/lib/components/Calculator/Calculator.fixture.mobile.d.ts +8 -0
- package/lib/components/Calculator/Calculator.mobile.d.ts +5 -0
- package/lib/components/Calculator/Calculator.mobile.js +31 -0
- package/lib/components/Calculator/Calculator.mobile.js.map +1 -0
- package/lib/components/Calculator/CalculatorContent.d.ts +2 -2
- package/lib/components/Calculator/CalculatorValueBlock.js +2 -1
- package/lib/components/Calculator/CalculatorValueBlock.js.map +1 -1
- package/lib/components/Calculator/CreditCalculatorForm.d.ts +1 -0
- package/lib/components/Calculator/CreditCalculatorForm.js +18 -11
- package/lib/components/Calculator/CreditCalculatorForm.js.map +1 -1
- package/lib/components/Calculator/DepositCalculatorForm.d.ts +1 -1
- package/lib/components/Calculator/DepositCalculatorForm.js +13 -11
- package/lib/components/Calculator/DepositCalculatorForm.js.map +1 -1
- package/lib/components/Calculator/RefinancingCalculatorForm.d.ts +1 -1
- package/lib/components/Calculator/RefinancingCalculatorForm.js +1 -0
- package/lib/components/Calculator/RefinancingCalculatorForm.js.map +1 -1
- package/lib/components/Calculator/renderBinaryRadioButtonGroup.d.ts +2 -2
- package/lib/components/Calculator/renderBinaryRadioButtonGroup.js +2 -1
- package/lib/components/Calculator/renderBinaryRadioButtonGroup.js.map +1 -1
- package/lib/components/Calculator/renderDaysInput.d.ts +0 -1
- package/lib/components/Calculator/renderDaysInput.js +1 -1
- package/lib/components/Calculator/renderDaysInput.js.map +1 -1
- package/lib/components/Calculator/renderFootnote.d.ts +0 -1
- package/lib/components/Calculator/renderInterestPayment.d.ts +0 -1
- package/lib/components/Calculator/renderMonthsInput.d.ts +0 -1
- package/lib/components/Calculator/renderMonthsInput.js +1 -1
- package/lib/components/Calculator/renderMonthsInput.js.map +1 -1
- package/lib/components/Calculator/renderPaymentType.d.ts +0 -1
- package/lib/components/Calculator/renderPaymentType.js +1 -0
- package/lib/components/Calculator/renderPaymentType.js.map +1 -1
- package/lib/components/Calculator/renderRate.d.ts +8 -0
- package/lib/components/Calculator/renderRate.js +13 -0
- package/lib/components/Calculator/renderRate.js.map +1 -0
- package/lib/components/Calculator/renderRegistrationType.d.ts +0 -1
- package/lib/components/CardTransfer/CardTransferContent.d.ts +2 -2
- package/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCard.mobile.js +1 -1
- package/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCard.mobile.js.map +1 -1
- package/lib/components/CarouselCard/CarouselCardContent.d.ts +3 -2
- package/lib/components/CarouselCatalogCard/CarouselCatalogCard.js +2 -2
- package/lib/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
- package/lib/components/CarouselCatalogCard/CarouselCatalogCardContent.d.ts +3 -2
- package/lib/components/CarouselCatalogCard/CatalogCard.d.ts +2 -2
- package/lib/components/CarouselCatalogCard/CatalogCard.js.map +1 -1
- package/lib/components/CarouselProductCard/CarouselProductCardContent.d.ts +3 -2
- package/lib/components/CarouselProgramsCard/CarouselProgramsCard.js +7 -8
- package/lib/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
- package/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -2
- package/lib/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +4 -9
- package/lib/components/ContactsBlock/ContactsBlockContent.d.ts +2 -2
- package/lib/components/ContentPage/ContentPage.js +2 -23
- package/lib/components/ContentPage/ContentPage.js.map +1 -1
- package/lib/components/ContentPage/computeAPIFallback.d.ts +2 -2
- package/lib/components/ContentPage/computeAPIFallback.js +8 -25
- package/lib/components/ContentPage/computeAPIFallback.js.map +1 -1
- package/lib/components/ErrorBlock/ErrorBlockContent.d.ts +2 -2
- package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +2 -2
- package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
- package/lib/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +2 -2
- package/lib/components/Footer/Footer.js +4 -2
- package/lib/components/Footer/Footer.js.map +1 -1
- package/lib/components/Footer/Footer.mobile.js +7 -4
- package/lib/components/Footer/Footer.mobile.js.map +1 -1
- package/lib/components/Footer/FooterProps.d.ts +0 -2
- package/lib/components/Footer/SocialMedia.d.ts +2 -2
- package/lib/components/Header/Header.js +5 -4
- package/lib/components/Header/Header.js.map +1 -1
- package/lib/components/Header/Header.mobile.js +4 -3
- package/lib/components/Header/Header.mobile.js.map +1 -1
- package/lib/components/Header/HeaderProps.d.ts +0 -4
- package/lib/components/Header/HeaderSecondaryMenu.d.ts +1 -1
- package/lib/components/Header/HeaderSecondaryMenu.js +10 -9
- package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/lib/components/Header/HeaderSubMenu.js +1 -1
- package/lib/components/Header/HeaderSubMenu.js.map +1 -1
- package/lib/components/Header/HeaderTop.js +9 -6
- package/lib/components/Header/HeaderTop.js.map +1 -1
- package/lib/components/Header/findActiveSubItem.js.map +1 -0
- package/lib/components/Header/isHrefActive.js.map +1 -0
- package/lib/components/Header/isTopItemActive.js.map +1 -0
- package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockContent.d.ts +2 -2
- package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.d.ts +2 -2
- package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
- package/lib/components/MobileAppTile/MobileAppTile.js +1 -1
- package/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
- package/lib/components/MobileAppTile/MobileAppTileContent.d.ts +2 -2
- package/lib/components/MortgageFiltration/HotFilterRecord.d.ts +11 -0
- package/lib/components/MortgageFiltration/HotFilterRecord.js +3 -0
- package/lib/components/MortgageFiltration/HotFilterRecord.js.map +1 -0
- package/lib/components/MortgageFiltration/MortgageFiltration.js +24 -4
- package/lib/components/MortgageFiltration/MortgageFiltration.js.map +1 -1
- package/lib/components/MortgageFiltration/MortgageFiltrationContent.d.ts +12 -0
- package/lib/components/ProductBlock/ProductBlockContent.d.ts +2 -2
- package/lib/components/ProductBlock/renderBackwardButton.d.ts +2 -2
- package/lib/components/ProductBlock/renderBackwardButton.js.map +1 -1
- package/lib/components/PromoTile/PromoTileContent.d.ts +2 -2
- package/lib/components/RepresentativeOfficeInfo/RepresentativeOfficeInfoContent.d.ts +2 -2
- package/lib/components/RollupItem/RollupItem.js +1 -1
- package/lib/components/RollupItem/RollupItem.js.map +1 -1
- package/lib/components/RollupItem/renderRoundedIcon.mobile.js +1 -1
- package/lib/components/RollupItem/renderRoundedIcon.mobile.js.map +1 -1
- package/lib/components/RollupItem/rollupIconVersion.mobile.d.ts +1 -1
- package/lib/components/RollupItem/rollupIconVersion.mobile.js +1 -1
- package/lib/components/RollupItem/rollupIconVersion.mobile.js.map +1 -1
- package/lib/components/StepsBlock/StepsBlockContent.d.ts +6 -9
- package/lib/components/Tabs/Tabs.js +20 -25
- package/lib/components/Tabs/Tabs.js.map +1 -1
- package/lib/components/Tabs/renderTabs.d.ts +11 -0
- package/lib/components/Tabs/renderTabs.js +16 -0
- package/lib/components/Tabs/renderTabs.js.map +1 -0
- package/lib/components/TariffsTable/EmbeddableCellData.d.ts +3 -2
- package/lib/components/TariffsTable/EmbeddableCellData.js.map +1 -1
- package/lib/components/TariffsTable/EmbeddableCellData.mobile.d.ts +3 -2
- package/lib/components/TariffsTable/EmbeddableCellData.mobile.js.map +1 -1
- package/lib/components/TariffsTable/TariffsTableContent.d.ts +2 -2
- package/lib/hooks/useForm.d.ts +1 -0
- package/lib/hooks/useForm.js +5 -0
- package/lib/hooks/useForm.js.map +1 -1
- package/lib/hooks/useLink.js +3 -3
- package/lib/hooks/useLink.js.map +1 -1
- package/lib/hooks/useList.d.ts +10 -0
- package/lib/hooks/useList.js +10 -0
- package/lib/hooks/useList.js.map +1 -0
- package/lib/hooks/useLocation.d.ts +1 -1
- package/lib/hooks/useLocation.js +28 -17
- package/lib/hooks/useLocation.js.map +1 -1
- package/lib/hooks/useSWRResource.d.ts +1 -1
- package/lib/hooks/useSWRResource.js +2 -4
- package/lib/hooks/useSWRResource.js.map +1 -1
- package/lib/icons/IconName.d.ts +3 -3
- package/lib/icons/IconName.js +3 -3
- package/lib/icons/IconName.js.map +1 -1
- package/lib/services/sitemap/useSitemap.d.ts +3 -0
- package/lib/services/sitemap/useSitemap.js +4 -0
- package/lib/services/sitemap/useSitemap.js.map +1 -0
- package/lib/ui-kit/BaseFiltration/BaseFiltrationInner.js +2 -2
- package/lib/ui-kit/BaseFiltration/BaseFiltrationInner.js.map +1 -1
- package/lib/ui-kit/BaseFiltration/renderFiltrationForm.js +2 -2
- package/lib/ui-kit/BaseFiltration/renderFiltrationForm.js.map +1 -1
- package/lib/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +2 -2
- package/lib/ui-kit/BaseTile/BaseTile.js +1 -1
- package/lib/ui-kit/BaseTile/BaseTile.js.map +1 -1
- package/lib/ui-kit/BenefitsList/DefaultBenefitsList.js +5 -3
- package/lib/ui-kit/BenefitsList/DefaultBenefitsList.js.map +1 -1
- package/lib/ui-kit/Button/Button.d.ts +2 -2
- package/lib/ui-kit/Button/Button.js.map +1 -1
- package/lib/ui-kit/Button/ButtonContent.d.ts +19 -0
- package/lib/ui-kit/Button/ButtonContent.js +2 -0
- package/lib/ui-kit/Button/ButtonContent.js.map +1 -0
- package/lib/ui-kit/Button/ButtonInner.d.ts +2 -7
- package/lib/ui-kit/Button/ButtonInner.js.map +1 -1
- package/lib/ui-kit/Button/ButtonProps.d.ts +4 -44
- package/lib/ui-kit/Button/ButtonsSectionContent.d.ts +7 -0
- package/lib/ui-kit/Button/ButtonsSectionContent.js +2 -0
- package/lib/ui-kit/Button/ButtonsSectionContent.js.map +1 -0
- package/lib/ui-kit/Button/renderButtonsSection.d.ts +2 -2
- package/lib/ui-kit/Button/renderButtonsSection.js.map +1 -1
- package/lib/ui-kit/CookiePopup/CookiePopup.js +6 -6
- package/lib/ui-kit/CookiePopup/CookiePopup.js.map +1 -1
- package/{dist/ui-kit/Dialog → lib/ui-kit/DialogManager}/CloseButton.d.ts +1 -1
- package/lib/ui-kit/{Dialog → DialogManager}/CloseButton.js +1 -1
- package/lib/ui-kit/DialogManager/CloseButton.js.map +1 -0
- package/lib/ui-kit/{Dialog → DialogManager}/Dialog.d.ts +0 -1
- package/lib/ui-kit/DialogManager/Dialog.js +15 -0
- package/lib/ui-kit/DialogManager/Dialog.js.map +1 -0
- package/lib/ui-kit/DialogManager/DialogAction.d.ts +12 -0
- package/lib/ui-kit/DialogManager/DialogAction.js.map +1 -0
- package/lib/ui-kit/DialogManager/DialogManager.d.ts +2 -0
- package/lib/ui-kit/DialogManager/DialogManager.js +59 -0
- package/lib/ui-kit/DialogManager/DialogManager.js.map +1 -0
- package/lib/ui-kit/DialogManager/useDialogManager.d.ts +10 -0
- package/lib/ui-kit/DialogManager/useDialogManager.js +7 -0
- package/lib/ui-kit/DialogManager/useDialogManager.js.map +1 -0
- package/lib/ui-kit/InputRange/InputRangeProps.d.ts +1 -0
- package/lib/ui-kit/ListControlProps.d.ts +4 -0
- package/lib/ui-kit/ListControlProps.js +2 -0
- package/lib/ui-kit/ListControlProps.js.map +1 -0
- package/lib/ui-kit/LocationDialog/LocationDialog.d.ts +2 -3
- package/lib/ui-kit/LocationDialog/LocationDialog.js +16 -25
- package/lib/ui-kit/LocationDialog/LocationDialog.js.map +1 -1
- package/lib/ui-kit/LocationDialog/renderForeignOffices.d.ts +5 -0
- package/lib/ui-kit/LocationDialog/renderForeignOffices.js +12 -0
- package/lib/ui-kit/LocationDialog/renderForeignOffices.js.map +1 -0
- package/lib/ui-kit/LocationDialog/renderRegion.d.ts +3 -0
- package/lib/ui-kit/LocationDialog/renderRegion.js +5 -0
- package/lib/ui-kit/LocationDialog/renderRegion.js.map +1 -0
- package/lib/ui-kit/LocationDialog/renderRegionGroup.d.ts +3 -0
- package/lib/ui-kit/LocationDialog/renderRegionGroup.js +5 -0
- package/lib/ui-kit/LocationDialog/renderRegionGroup.js.map +1 -0
- package/lib/ui-kit/LocationDialog/useLocationDialog.d.ts +5 -0
- package/lib/ui-kit/LocationDialog/useLocationDialog.js +11 -0
- package/lib/ui-kit/LocationDialog/useLocationDialog.js.map +1 -0
- package/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +1 -0
- package/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.js +2 -1
- package/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
- package/lib/ui-kit/SearchBar/SearchBar.js +6 -9
- package/lib/ui-kit/SearchBar/SearchBar.js.map +1 -1
- package/lib/ui-kit/SearchDialog/SearchDialog.d.ts +1 -3
- package/lib/ui-kit/SearchDialog/SearchDialog.js +7 -8
- package/lib/ui-kit/SearchDialog/SearchDialog.js.map +1 -1
- package/lib/ui-kit/SearchDialog/useSearchDialog.d.ts +6 -0
- package/lib/ui-kit/SearchDialog/useSearchDialog.js +11 -0
- package/lib/ui-kit/SearchDialog/useSearchDialog.js.map +1 -0
- package/lib/ui-kit/SwipeListControl/SwipeListContainer.js +1 -1
- package/lib/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
- package/lib/ui-kit/TabsControl/ScrollableTabsControl.d.ts +2 -0
- package/lib/ui-kit/TabsControl/ScrollableTabsControl.js +15 -0
- package/lib/ui-kit/TabsControl/ScrollableTabsControl.js.map +1 -0
- package/lib/ui-kit/TabsControl/TabItem.d.ts +11 -0
- package/lib/ui-kit/TabsControl/TabItem.js +36 -0
- package/lib/ui-kit/TabsControl/TabItem.js.map +1 -0
- package/lib/ui-kit/TabsControl/TabsControl.d.ts +2 -0
- package/lib/ui-kit/TabsControl/TabsControl.fixture.d.ts +8 -0
- package/lib/ui-kit/TabsControl/TabsControl.js +6 -0
- package/lib/ui-kit/TabsControl/TabsControl.js.map +1 -0
- package/lib/ui-kit/TabsControl/TabsControlProps.d.ts +6 -0
- package/lib/ui-kit/TabsControl/TabsControlProps.js +2 -0
- package/lib/ui-kit/TabsControl/TabsControlProps.js.map +1 -0
- package/lib/ui-kit/TabsControl/renderTab.d.ts +3 -0
- package/lib/ui-kit/TabsControl/renderTab.js +4 -0
- package/lib/ui-kit/TabsControl/renderTab.js.map +1 -0
- package/lib/utils/BoolComparator.d.ts +11 -0
- package/lib/utils/BoolComparator.js +12 -0
- package/lib/utils/BoolComparator.js.map +1 -0
- package/mobile/bundle/EventBus/defaultEventBus.d.ts +4 -2
- package/mobile/bundle/EventBus/useLatestEvent.d.ts +2 -0
- package/mobile/bundle/bundle.umd.js +975 -590
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/ApplicationForm/ApplicationFormContent.d.ts +2 -2
- package/mobile/bundle/components/Bonus/BonusContent.d.ts +2 -7
- package/mobile/bundle/components/BusinessBlock/BusinessBlockContent.d.ts +3 -2
- package/mobile/bundle/components/ButtonsBlock/ButtonsBlockContent.d.ts +2 -2
- package/mobile/bundle/components/Calculator/CalculatorContent.d.ts +2 -2
- package/mobile/bundle/components/Calculator/CreditCalculatorForm.d.ts +1 -0
- package/mobile/bundle/components/Calculator/DepositCalculatorForm.d.ts +1 -1
- package/mobile/bundle/components/Calculator/RefinancingCalculatorForm.d.ts +1 -1
- package/mobile/bundle/components/Calculator/renderBinaryRadioButtonGroup.d.ts +2 -1
- package/mobile/bundle/components/Calculator/renderRate.d.ts +9 -0
- package/mobile/bundle/components/CardTransfer/CardTransferContent.d.ts +2 -2
- package/mobile/bundle/components/CarouselCard/CarouselCardContent.d.ts +3 -2
- package/mobile/bundle/components/CarouselCatalogCard/CarouselCatalogCardContent.d.ts +3 -2
- package/mobile/bundle/components/CarouselCatalogCard/CatalogCard.d.ts +2 -2
- package/mobile/bundle/components/CarouselProductCard/CarouselProductCardContent.d.ts +3 -2
- package/mobile/bundle/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -2
- package/mobile/bundle/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +4 -9
- package/mobile/bundle/components/ContactsBlock/ContactsBlockContent.d.ts +2 -2
- package/mobile/bundle/components/ContentPage/computeAPIFallback.d.ts +2 -2
- package/mobile/bundle/components/ErrorBlock/ErrorBlockContent.d.ts +2 -2
- package/mobile/bundle/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +2 -2
- package/mobile/bundle/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +2 -2
- package/mobile/bundle/components/Footer/FooterProps.d.ts +0 -2
- package/mobile/bundle/components/Footer/SocialMedia.d.ts +2 -2
- package/mobile/bundle/components/Header/HeaderProps.d.ts +0 -4
- package/mobile/bundle/components/Header/HeaderSecondaryMenu.d.ts +1 -1
- package/mobile/bundle/components/InsuranceAmountBlock/InsuranceAmountBlockContent.d.ts +2 -2
- package/mobile/bundle/components/InsuranceAmountBlock/InsuranceAmountBlockInner.d.ts +2 -2
- package/mobile/bundle/components/MobileAppTile/MobileAppTileContent.d.ts +2 -2
- package/mobile/bundle/components/MortgageFiltration/HotFilterRecord.d.ts +11 -0
- package/mobile/bundle/components/MortgageFiltration/MortgageFiltrationContent.d.ts +12 -0
- package/mobile/bundle/components/ProductBlock/ProductBlockContent.d.ts +2 -2
- package/mobile/bundle/components/ProductBlock/renderBackwardButton.d.ts +2 -2
- package/mobile/bundle/components/PromoTile/PromoTileContent.d.ts +2 -2
- package/mobile/bundle/components/RepresentativeOfficeInfo/RepresentativeOfficeInfoContent.d.ts +2 -2
- package/mobile/bundle/components/RollupItem/rollupIconVersion.d.ts +1 -1
- package/mobile/bundle/components/StepsBlock/StepsBlockContent.d.ts +6 -9
- package/mobile/bundle/components/Tabs/renderTabs.d.ts +12 -0
- package/mobile/bundle/components/TariffsTable/EmbeddableCellData.d.ts +3 -2
- package/mobile/bundle/components/TariffsTable/TariffsTableContent.d.ts +2 -2
- package/mobile/bundle/hooks/useForm.d.ts +1 -0
- package/mobile/bundle/hooks/useList.d.ts +10 -0
- package/mobile/bundle/hooks/useLocation.d.ts +1 -1
- package/mobile/bundle/hooks/useSWRResource.d.ts +1 -1
- package/mobile/bundle/icons/IconName.d.ts +3 -3
- package/mobile/bundle/services/sitemap/useSitemap.d.ts +3 -0
- package/mobile/bundle/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +2 -2
- package/mobile/bundle/ui-kit/Button/Button.d.ts +2 -2
- package/mobile/bundle/ui-kit/Button/ButtonContent.d.ts +19 -0
- package/mobile/bundle/ui-kit/Button/ButtonInner.d.ts +2 -7
- package/mobile/bundle/ui-kit/Button/ButtonProps.d.ts +4 -44
- package/mobile/bundle/ui-kit/Button/ButtonsSectionContent.d.ts +7 -0
- package/mobile/bundle/ui-kit/Button/renderButtonsSection.d.ts +2 -2
- package/mobile/bundle/ui-kit/{Dialog → DialogManager}/CloseButton.d.ts +1 -1
- package/mobile/bundle/ui-kit/{Dialog → DialogManager}/Dialog.d.ts +0 -1
- package/mobile/bundle/ui-kit/DialogManager/DialogAction.d.ts +12 -0
- package/mobile/bundle/ui-kit/DialogManager/DialogManager.d.ts +2 -0
- package/mobile/bundle/ui-kit/DialogManager/useDialogManager.d.ts +10 -0
- package/mobile/bundle/ui-kit/InputRange/InputRangeProps.d.ts +1 -0
- package/mobile/bundle/ui-kit/ListControlProps.d.ts +4 -0
- package/mobile/bundle/ui-kit/LocationDialog/LocationDialog.d.ts +2 -3
- package/mobile/bundle/ui-kit/LocationDialog/renderForeignOffices.d.ts +5 -0
- package/mobile/bundle/ui-kit/LocationDialog/renderRegion.d.ts +3 -0
- package/mobile/bundle/ui-kit/LocationDialog/renderRegionGroup.d.ts +3 -0
- package/mobile/bundle/ui-kit/LocationDialog/useLocationDialog.d.ts +5 -0
- package/mobile/bundle/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +1 -0
- package/mobile/bundle/ui-kit/SearchDialog/SearchDialog.d.ts +1 -3
- package/mobile/bundle/ui-kit/SearchDialog/useSearchDialog.d.ts +6 -0
- package/mobile/bundle/ui-kit/TabsControl/ScrollableTabsControl.d.ts +2 -0
- package/mobile/bundle/ui-kit/TabsControl/TabItem.d.ts +11 -0
- package/mobile/bundle/ui-kit/TabsControl/TabsControl.d.ts +2 -0
- package/mobile/bundle/ui-kit/TabsControl/TabsControlProps.d.ts +6 -0
- package/mobile/bundle/ui-kit/TabsControl/renderTab.d.ts +4 -0
- package/mobile/bundle/utils/BoolComparator.d.ts +11 -0
- package/mobile/dist/EventBus/defaultEventBus.d.ts +4 -2
- package/mobile/dist/EventBus/defaultEventBus.js.map +1 -1
- package/mobile/dist/EventBus/useLatestEvent.d.ts +2 -0
- package/mobile/dist/EventBus/useLatestEvent.js +11 -0
- package/mobile/dist/EventBus/useLatestEvent.js.map +1 -0
- package/mobile/dist/components/ApplicationForm/ApplicationFormContent.d.ts +2 -2
- package/mobile/dist/components/Blocks.js +2 -0
- package/mobile/dist/components/Blocks.js.map +1 -1
- package/mobile/dist/components/Bonus/BonusContent.d.ts +2 -7
- package/mobile/dist/components/BusinessBlock/BusinessBlockContent.d.ts +3 -2
- package/mobile/dist/components/ButtonsBlock/ButtonsBlockContent.d.ts +2 -2
- package/mobile/dist/components/Calculator/BusinessDepositCalculatorForm.js +19 -13
- package/mobile/dist/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
- package/mobile/dist/components/Calculator/Calculator.js +27 -49
- package/mobile/dist/components/Calculator/Calculator.js.map +1 -1
- package/mobile/dist/components/Calculator/CalculatorContent.d.ts +2 -2
- package/mobile/dist/components/Calculator/CalculatorValueBlock.js +2 -1
- package/mobile/dist/components/Calculator/CalculatorValueBlock.js.map +1 -1
- package/mobile/dist/components/Calculator/CreditCalculatorForm.d.ts +1 -0
- package/mobile/dist/components/Calculator/CreditCalculatorForm.js +18 -11
- package/mobile/dist/components/Calculator/CreditCalculatorForm.js.map +1 -1
- package/mobile/dist/components/Calculator/DepositCalculatorForm.d.ts +1 -1
- package/mobile/dist/components/Calculator/DepositCalculatorForm.js +13 -11
- package/mobile/dist/components/Calculator/DepositCalculatorForm.js.map +1 -1
- package/mobile/dist/components/Calculator/RefinancingCalculatorForm.d.ts +1 -1
- package/mobile/dist/components/Calculator/RefinancingCalculatorForm.js +1 -0
- package/mobile/dist/components/Calculator/RefinancingCalculatorForm.js.map +1 -1
- package/mobile/dist/components/Calculator/renderBinaryRadioButtonGroup.d.ts +2 -1
- package/mobile/dist/components/Calculator/renderBinaryRadioButtonGroup.js +2 -1
- package/mobile/dist/components/Calculator/renderBinaryRadioButtonGroup.js.map +1 -1
- package/mobile/dist/components/Calculator/renderDaysInput.js +1 -1
- package/mobile/dist/components/Calculator/renderDaysInput.js.map +1 -1
- package/mobile/dist/components/Calculator/renderMonthsInput.js +1 -1
- package/mobile/dist/components/Calculator/renderMonthsInput.js.map +1 -1
- package/mobile/dist/components/Calculator/renderPaymentType.js +1 -0
- package/mobile/dist/components/Calculator/renderPaymentType.js.map +1 -1
- package/mobile/dist/components/Calculator/renderRate.d.ts +9 -0
- package/mobile/dist/components/Calculator/renderRate.js +16 -0
- package/mobile/dist/components/Calculator/renderRate.js.map +1 -0
- package/mobile/dist/components/CardTransfer/CardTransferContent.d.ts +2 -2
- package/mobile/dist/components/CarouselBankHistoryCard/CarouselBankHistoryCard.js +1 -1
- package/mobile/dist/components/CarouselBankHistoryCard/CarouselBankHistoryCard.js.map +1 -1
- package/mobile/dist/components/CarouselCard/CarouselCardContent.d.ts +3 -2
- package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCard.js +2 -2
- package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
- package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCardContent.d.ts +3 -2
- package/mobile/dist/components/CarouselCatalogCard/CatalogCard.d.ts +2 -2
- package/mobile/dist/components/CarouselCatalogCard/CatalogCard.js.map +1 -1
- package/mobile/dist/components/CarouselProductCard/CarouselProductCardContent.d.ts +3 -2
- package/mobile/dist/components/CarouselProgramsCard/CarouselProgramsCard.js +6 -7
- package/mobile/dist/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
- package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -2
- package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +4 -9
- package/mobile/dist/components/ContactsBlock/ContactsBlockContent.d.ts +2 -2
- package/mobile/dist/components/ContentPage/ContentPage.js +2 -23
- package/mobile/dist/components/ContentPage/ContentPage.js.map +1 -1
- package/mobile/dist/components/ContentPage/computeAPIFallback.d.ts +2 -2
- package/mobile/dist/components/ContentPage/computeAPIFallback.js +10 -27
- package/mobile/dist/components/ContentPage/computeAPIFallback.js.map +1 -1
- package/mobile/dist/components/ErrorBlock/ErrorBlockContent.d.ts +2 -2
- package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +2 -2
- package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
- package/mobile/dist/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +2 -2
- package/mobile/dist/components/Footer/Footer.js +7 -4
- package/mobile/dist/components/Footer/Footer.js.map +1 -1
- package/mobile/dist/components/Footer/FooterProps.d.ts +0 -2
- package/mobile/dist/components/Footer/SocialMedia.d.ts +2 -2
- package/mobile/dist/components/Header/Header.js +4 -3
- package/mobile/dist/components/Header/Header.js.map +1 -1
- package/mobile/dist/components/Header/HeaderProps.d.ts +0 -4
- package/mobile/dist/components/Header/HeaderSecondaryMenu.d.ts +1 -1
- package/mobile/dist/components/Header/HeaderSecondaryMenu.js +10 -9
- package/mobile/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/mobile/dist/components/Header/HeaderSubMenu.js +1 -1
- package/mobile/dist/components/Header/HeaderSubMenu.js.map +1 -1
- package/mobile/dist/components/Header/HeaderTop.js +9 -6
- package/mobile/dist/components/Header/HeaderTop.js.map +1 -1
- package/mobile/dist/components/Header/findActiveSubItem.js.map +1 -0
- package/mobile/dist/components/Header/isHrefActive.js.map +1 -0
- package/mobile/dist/components/Header/isTopItemActive.js.map +1 -0
- package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockContent.d.ts +2 -2
- package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.d.ts +2 -2
- package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
- package/mobile/dist/components/MobileAppTile/MobileAppTile.js +1 -1
- package/mobile/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
- package/mobile/dist/components/MobileAppTile/MobileAppTileContent.d.ts +2 -2
- package/mobile/dist/components/MortgageFiltration/HotFilterRecord.d.ts +11 -0
- package/mobile/dist/components/MortgageFiltration/HotFilterRecord.js +5 -0
- package/mobile/dist/components/MortgageFiltration/HotFilterRecord.js.map +1 -0
- package/mobile/dist/components/MortgageFiltration/MortgageFiltration.js +24 -4
- package/mobile/dist/components/MortgageFiltration/MortgageFiltration.js.map +1 -1
- package/mobile/dist/components/MortgageFiltration/MortgageFiltrationContent.d.ts +12 -0
- package/mobile/dist/components/ProductBlock/ProductBlockContent.d.ts +2 -2
- package/mobile/dist/components/ProductBlock/renderBackwardButton.d.ts +2 -2
- package/mobile/dist/components/ProductBlock/renderBackwardButton.js.map +1 -1
- package/mobile/dist/components/PromoTile/PromoTileContent.d.ts +2 -2
- package/mobile/dist/components/RepresentativeOfficeInfo/RepresentativeOfficeInfoContent.d.ts +2 -2
- package/mobile/dist/components/RollupItem/RollupItem.js +1 -1
- package/mobile/dist/components/RollupItem/RollupItem.js.map +1 -1
- package/mobile/dist/components/RollupItem/renderRoundedIcon.js +1 -1
- package/mobile/dist/components/RollupItem/renderRoundedIcon.js.map +1 -1
- package/mobile/dist/components/RollupItem/rollupIconVersion.d.ts +1 -1
- package/mobile/dist/components/RollupItem/rollupIconVersion.js +1 -1
- package/mobile/dist/components/RollupItem/rollupIconVersion.js.map +1 -1
- package/mobile/dist/components/StepsBlock/StepsBlockContent.d.ts +6 -9
- package/mobile/dist/components/Tabs/Tabs.js +19 -24
- package/mobile/dist/components/Tabs/Tabs.js.map +1 -1
- package/mobile/dist/components/Tabs/renderTabs.d.ts +12 -0
- package/mobile/dist/components/Tabs/renderTabs.js +19 -0
- package/mobile/dist/components/Tabs/renderTabs.js.map +1 -0
- package/mobile/dist/components/TariffsTable/EmbeddableCellData.d.ts +3 -2
- package/mobile/dist/components/TariffsTable/EmbeddableCellData.js.map +1 -1
- package/mobile/dist/components/TariffsTable/TariffsTableContent.d.ts +2 -2
- package/mobile/dist/hooks/useForm.d.ts +1 -0
- package/mobile/dist/hooks/useForm.js +5 -0
- package/mobile/dist/hooks/useForm.js.map +1 -1
- package/mobile/dist/hooks/useLink.js +3 -3
- package/mobile/dist/hooks/useLink.js.map +1 -1
- package/mobile/dist/hooks/useList.d.ts +10 -0
- package/mobile/dist/hooks/useList.js +13 -0
- package/mobile/dist/hooks/useList.js.map +1 -0
- package/mobile/dist/hooks/useLocation.d.ts +1 -1
- package/mobile/dist/hooks/useLocation.js +27 -16
- package/mobile/dist/hooks/useLocation.js.map +1 -1
- package/mobile/dist/hooks/useSWRResource.d.ts +1 -1
- package/mobile/dist/hooks/useSWRResource.js +2 -4
- package/mobile/dist/hooks/useSWRResource.js.map +1 -1
- package/mobile/dist/icons/IconName.d.ts +3 -3
- package/mobile/dist/icons/IconName.js +3 -3
- package/mobile/dist/icons/IconName.js.map +1 -1
- package/mobile/dist/services/sitemap/useSitemap.d.ts +3 -0
- package/mobile/dist/services/sitemap/useSitemap.js +7 -0
- package/mobile/dist/services/sitemap/useSitemap.js.map +1 -0
- package/mobile/dist/ui-kit/BaseFiltration/BaseFiltrationInner.js +2 -2
- package/mobile/dist/ui-kit/BaseFiltration/BaseFiltrationInner.js.map +1 -1
- package/mobile/dist/ui-kit/BaseFiltration/renderFiltrationForm.js +2 -2
- package/mobile/dist/ui-kit/BaseFiltration/renderFiltrationForm.js.map +1 -1
- package/mobile/dist/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +2 -2
- package/mobile/dist/ui-kit/BaseTile/BaseTile.js +1 -1
- package/mobile/dist/ui-kit/BaseTile/BaseTile.js.map +1 -1
- package/mobile/dist/ui-kit/BenefitsList/DefaultBenefitsList.js +5 -3
- package/mobile/dist/ui-kit/BenefitsList/DefaultBenefitsList.js.map +1 -1
- package/mobile/dist/ui-kit/Button/Button.d.ts +2 -2
- package/mobile/dist/ui-kit/Button/Button.js.map +1 -1
- package/mobile/dist/ui-kit/Button/ButtonContent.d.ts +19 -0
- package/mobile/dist/{model/Button.js → ui-kit/Button/ButtonContent.js} +1 -1
- package/mobile/dist/ui-kit/Button/ButtonContent.js.map +1 -0
- package/mobile/dist/ui-kit/Button/ButtonInner.d.ts +2 -7
- package/mobile/dist/ui-kit/Button/ButtonInner.js.map +1 -1
- package/mobile/dist/ui-kit/Button/ButtonProps.d.ts +4 -44
- package/mobile/dist/ui-kit/Button/ButtonsSectionContent.d.ts +7 -0
- package/mobile/dist/ui-kit/Button/ButtonsSectionContent.js +2 -0
- package/mobile/dist/ui-kit/Button/ButtonsSectionContent.js.map +1 -0
- package/mobile/dist/ui-kit/Button/renderButtonsSection.d.ts +2 -2
- package/mobile/dist/ui-kit/Button/renderButtonsSection.js.map +1 -1
- package/mobile/dist/ui-kit/CookiePopup/CookiePopup.js +6 -6
- package/mobile/dist/ui-kit/CookiePopup/CookiePopup.js.map +1 -1
- package/mobile/dist/ui-kit/DialogManager/CloseButton.d.ts +7 -0
- package/{dist/ui-kit/Dialog → mobile/dist/ui-kit/DialogManager}/CloseButton.js +1 -1
- package/mobile/dist/ui-kit/DialogManager/CloseButton.js.map +1 -0
- package/mobile/dist/ui-kit/DialogManager/Dialog.d.ts +7 -0
- package/mobile/dist/ui-kit/DialogManager/Dialog.js +17 -0
- package/mobile/dist/ui-kit/DialogManager/Dialog.js.map +1 -0
- package/mobile/dist/ui-kit/DialogManager/DialogAction.d.ts +12 -0
- package/mobile/dist/ui-kit/DialogManager/DialogAction.js.map +1 -0
- package/mobile/dist/ui-kit/DialogManager/DialogManager.d.ts +2 -0
- package/mobile/dist/ui-kit/DialogManager/DialogManager.js +61 -0
- package/mobile/dist/ui-kit/DialogManager/DialogManager.js.map +1 -0
- package/mobile/dist/ui-kit/DialogManager/useDialogManager.d.ts +10 -0
- package/mobile/dist/ui-kit/DialogManager/useDialogManager.js +10 -0
- package/mobile/dist/ui-kit/DialogManager/useDialogManager.js.map +1 -0
- package/mobile/dist/ui-kit/InputRange/InputRangeProps.d.ts +1 -0
- package/mobile/dist/ui-kit/ListControlProps.d.ts +4 -0
- package/mobile/dist/ui-kit/ListControlProps.js +2 -0
- package/mobile/dist/ui-kit/ListControlProps.js.map +1 -0
- package/mobile/dist/ui-kit/LocationDialog/LocationDialog.d.ts +2 -3
- package/mobile/dist/ui-kit/LocationDialog/LocationDialog.js +17 -26
- package/mobile/dist/ui-kit/LocationDialog/LocationDialog.js.map +1 -1
- package/mobile/dist/ui-kit/LocationDialog/renderForeignOffices.d.ts +5 -0
- package/mobile/dist/ui-kit/LocationDialog/renderForeignOffices.js +15 -0
- package/mobile/dist/ui-kit/LocationDialog/renderForeignOffices.js.map +1 -0
- package/mobile/dist/ui-kit/LocationDialog/renderRegion.d.ts +3 -0
- package/mobile/dist/ui-kit/LocationDialog/renderRegion.js +8 -0
- package/mobile/dist/ui-kit/LocationDialog/renderRegion.js.map +1 -0
- package/mobile/dist/ui-kit/LocationDialog/renderRegionGroup.d.ts +3 -0
- package/mobile/dist/ui-kit/LocationDialog/renderRegionGroup.js +8 -0
- package/mobile/dist/ui-kit/LocationDialog/renderRegionGroup.js.map +1 -0
- package/mobile/dist/ui-kit/LocationDialog/useLocationDialog.d.ts +5 -0
- package/mobile/dist/ui-kit/LocationDialog/useLocationDialog.js +14 -0
- package/mobile/dist/ui-kit/LocationDialog/useLocationDialog.js.map +1 -0
- package/mobile/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +1 -0
- package/mobile/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.js +2 -1
- package/mobile/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
- package/mobile/dist/ui-kit/SearchBar/SearchBar.js +6 -9
- package/mobile/dist/ui-kit/SearchBar/SearchBar.js.map +1 -1
- package/mobile/dist/ui-kit/SearchDialog/SearchDialog.d.ts +1 -3
- package/mobile/dist/ui-kit/SearchDialog/SearchDialog.js +8 -9
- package/mobile/dist/ui-kit/SearchDialog/SearchDialog.js.map +1 -1
- package/mobile/dist/ui-kit/SearchDialog/useSearchDialog.d.ts +6 -0
- package/mobile/dist/ui-kit/SearchDialog/useSearchDialog.js +14 -0
- package/mobile/dist/ui-kit/SearchDialog/useSearchDialog.js.map +1 -0
- package/mobile/dist/ui-kit/SwipeListControl/SwipeListContainer.js +1 -1
- package/mobile/dist/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
- package/mobile/dist/ui-kit/TabsControl/ScrollableTabsControl.d.ts +2 -0
- package/mobile/dist/ui-kit/TabsControl/ScrollableTabsControl.js +17 -0
- package/mobile/dist/ui-kit/TabsControl/ScrollableTabsControl.js.map +1 -0
- package/mobile/dist/ui-kit/TabsControl/TabItem.d.ts +11 -0
- package/mobile/dist/ui-kit/TabsControl/TabItem.js +38 -0
- package/mobile/dist/ui-kit/TabsControl/TabItem.js.map +1 -0
- package/mobile/dist/ui-kit/TabsControl/TabsControl.d.ts +2 -0
- package/mobile/dist/ui-kit/TabsControl/TabsControl.js +8 -0
- package/mobile/dist/ui-kit/TabsControl/TabsControl.js.map +1 -0
- package/mobile/dist/ui-kit/TabsControl/TabsControlProps.d.ts +6 -0
- package/mobile/dist/ui-kit/TabsControl/TabsControlProps.js +2 -0
- package/mobile/dist/ui-kit/TabsControl/TabsControlProps.js.map +1 -0
- package/mobile/dist/ui-kit/TabsControl/renderTab.d.ts +4 -0
- package/mobile/dist/ui-kit/TabsControl/renderTab.js +7 -0
- package/mobile/dist/ui-kit/TabsControl/renderTab.js.map +1 -0
- package/mobile/dist/utils/BoolComparator.d.ts +11 -0
- package/mobile/dist/utils/BoolComparator.js +19 -0
- package/mobile/dist/utils/BoolComparator.js.map +1 -0
- package/mobile/lib/EventBus/defaultEventBus.d.ts +4 -2
- package/mobile/lib/EventBus/defaultEventBus.js.map +1 -1
- package/mobile/lib/EventBus/useLatestEvent.d.ts +2 -0
- package/mobile/lib/EventBus/useLatestEvent.js +8 -0
- package/mobile/lib/EventBus/useLatestEvent.js.map +1 -0
- package/mobile/lib/common.css +1 -1
- package/mobile/lib/components/ApplicationForm/ApplicationFormContent.d.ts +2 -2
- package/mobile/lib/components/Blocks.js +2 -0
- package/mobile/lib/components/Blocks.js.map +1 -1
- package/mobile/lib/components/Bonus/BonusContent.d.ts +2 -7
- package/mobile/lib/components/BusinessBlock/BusinessBlockContent.d.ts +3 -2
- package/mobile/lib/components/ButtonsBlock/ButtonsBlockContent.d.ts +2 -2
- package/mobile/lib/components/Calculator/BusinessDepositCalculatorForm.js +19 -13
- package/mobile/lib/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
- package/mobile/lib/components/Calculator/Calculator.js +28 -50
- package/mobile/lib/components/Calculator/Calculator.js.map +1 -1
- package/mobile/lib/components/Calculator/CalculatorContent.d.ts +2 -2
- package/mobile/lib/components/Calculator/CalculatorValueBlock.js +2 -1
- package/mobile/lib/components/Calculator/CalculatorValueBlock.js.map +1 -1
- package/mobile/lib/components/Calculator/CreditCalculatorForm.d.ts +1 -0
- package/mobile/lib/components/Calculator/CreditCalculatorForm.js +18 -11
- package/mobile/lib/components/Calculator/CreditCalculatorForm.js.map +1 -1
- package/mobile/lib/components/Calculator/DepositCalculatorForm.d.ts +1 -1
- package/mobile/lib/components/Calculator/DepositCalculatorForm.js +13 -11
- package/mobile/lib/components/Calculator/DepositCalculatorForm.js.map +1 -1
- package/mobile/lib/components/Calculator/RefinancingCalculatorForm.d.ts +1 -1
- package/mobile/lib/components/Calculator/RefinancingCalculatorForm.js +1 -0
- package/mobile/lib/components/Calculator/RefinancingCalculatorForm.js.map +1 -1
- package/mobile/lib/components/Calculator/renderBinaryRadioButtonGroup.d.ts +2 -1
- package/mobile/lib/components/Calculator/renderBinaryRadioButtonGroup.js +2 -1
- package/mobile/lib/components/Calculator/renderBinaryRadioButtonGroup.js.map +1 -1
- package/mobile/lib/components/Calculator/renderDaysInput.js +1 -1
- package/mobile/lib/components/Calculator/renderDaysInput.js.map +1 -1
- package/mobile/lib/components/Calculator/renderMonthsInput.js +1 -1
- package/mobile/lib/components/Calculator/renderMonthsInput.js.map +1 -1
- package/mobile/lib/components/Calculator/renderPaymentType.js +1 -0
- package/mobile/lib/components/Calculator/renderPaymentType.js.map +1 -1
- package/mobile/lib/components/Calculator/renderRate.d.ts +9 -0
- package/mobile/lib/components/Calculator/renderRate.js +13 -0
- package/mobile/lib/components/Calculator/renderRate.js.map +1 -0
- package/mobile/lib/components/CardTransfer/CardTransferContent.d.ts +2 -2
- package/mobile/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCard.js +1 -1
- package/mobile/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCard.js.map +1 -1
- package/mobile/lib/components/CarouselCard/CarouselCardContent.d.ts +3 -2
- package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCard.js +2 -2
- package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
- package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCardContent.d.ts +3 -2
- package/mobile/lib/components/CarouselCatalogCard/CatalogCard.d.ts +2 -2
- package/mobile/lib/components/CarouselCatalogCard/CatalogCard.js.map +1 -1
- package/mobile/lib/components/CarouselProductCard/CarouselProductCardContent.d.ts +3 -2
- package/mobile/lib/components/CarouselProgramsCard/CarouselProgramsCard.js +7 -8
- package/mobile/lib/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
- package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -2
- package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +4 -9
- package/mobile/lib/components/ContactsBlock/ContactsBlockContent.d.ts +2 -2
- package/mobile/lib/components/ContentPage/ContentPage.js +2 -23
- package/mobile/lib/components/ContentPage/ContentPage.js.map +1 -1
- package/mobile/lib/components/ContentPage/computeAPIFallback.d.ts +2 -2
- package/mobile/lib/components/ContentPage/computeAPIFallback.js +8 -25
- package/mobile/lib/components/ContentPage/computeAPIFallback.js.map +1 -1
- package/mobile/lib/components/ErrorBlock/ErrorBlockContent.d.ts +2 -2
- package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +2 -2
- package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
- package/mobile/lib/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +2 -2
- package/mobile/lib/components/Footer/Footer.js +7 -4
- package/mobile/lib/components/Footer/Footer.js.map +1 -1
- package/mobile/lib/components/Footer/FooterProps.d.ts +0 -2
- package/mobile/lib/components/Footer/SocialMedia.d.ts +2 -2
- package/mobile/lib/components/Header/Header.js +4 -3
- package/mobile/lib/components/Header/Header.js.map +1 -1
- package/mobile/lib/components/Header/HeaderProps.d.ts +0 -4
- package/mobile/lib/components/Header/HeaderSecondaryMenu.d.ts +1 -1
- package/mobile/lib/components/Header/HeaderSecondaryMenu.js +10 -9
- package/mobile/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/mobile/lib/components/Header/HeaderSubMenu.js +1 -1
- package/mobile/lib/components/Header/HeaderSubMenu.js.map +1 -1
- package/mobile/lib/components/Header/HeaderTop.js +9 -6
- package/mobile/lib/components/Header/HeaderTop.js.map +1 -1
- package/mobile/lib/components/Header/findActiveSubItem.js.map +1 -0
- package/mobile/lib/components/Header/isHrefActive.js.map +1 -0
- package/mobile/lib/components/Header/isTopItemActive.js.map +1 -0
- package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockContent.d.ts +2 -2
- package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.d.ts +2 -2
- package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
- package/mobile/lib/components/MobileAppTile/MobileAppTile.js +1 -1
- package/mobile/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
- package/mobile/lib/components/MobileAppTile/MobileAppTileContent.d.ts +2 -2
- package/mobile/lib/components/MortgageFiltration/HotFilterRecord.d.ts +11 -0
- package/mobile/lib/components/MortgageFiltration/HotFilterRecord.js +3 -0
- package/mobile/lib/components/MortgageFiltration/HotFilterRecord.js.map +1 -0
- package/mobile/lib/components/MortgageFiltration/MortgageFiltration.js +24 -4
- package/mobile/lib/components/MortgageFiltration/MortgageFiltration.js.map +1 -1
- package/mobile/lib/components/MortgageFiltration/MortgageFiltrationContent.d.ts +12 -0
- package/mobile/lib/components/ProductBlock/ProductBlockContent.d.ts +2 -2
- package/mobile/lib/components/ProductBlock/renderBackwardButton.d.ts +2 -2
- package/mobile/lib/components/ProductBlock/renderBackwardButton.js.map +1 -1
- package/mobile/lib/components/PromoTile/PromoTileContent.d.ts +2 -2
- package/mobile/lib/components/RepresentativeOfficeInfo/RepresentativeOfficeInfoContent.d.ts +2 -2
- package/mobile/lib/components/RollupItem/RollupItem.js +1 -1
- package/mobile/lib/components/RollupItem/RollupItem.js.map +1 -1
- package/mobile/lib/components/RollupItem/renderRoundedIcon.js +1 -1
- package/mobile/lib/components/RollupItem/renderRoundedIcon.js.map +1 -1
- package/mobile/lib/components/RollupItem/rollupIconVersion.d.ts +1 -1
- package/mobile/lib/components/RollupItem/rollupIconVersion.js +1 -1
- package/mobile/lib/components/RollupItem/rollupIconVersion.js.map +1 -1
- package/mobile/lib/components/StepsBlock/StepsBlockContent.d.ts +6 -9
- package/mobile/lib/components/Tabs/Tabs.js +20 -25
- package/mobile/lib/components/Tabs/Tabs.js.map +1 -1
- package/mobile/lib/components/Tabs/renderTabs.d.ts +12 -0
- package/mobile/lib/components/Tabs/renderTabs.js +16 -0
- package/mobile/lib/components/Tabs/renderTabs.js.map +1 -0
- package/mobile/lib/components/TariffsTable/EmbeddableCellData.d.ts +3 -2
- package/mobile/lib/components/TariffsTable/EmbeddableCellData.js.map +1 -1
- package/mobile/lib/components/TariffsTable/TariffsTableContent.d.ts +2 -2
- package/mobile/lib/hooks/useForm.d.ts +1 -0
- package/mobile/lib/hooks/useForm.js +5 -0
- package/mobile/lib/hooks/useForm.js.map +1 -1
- package/mobile/lib/hooks/useLink.js +3 -3
- package/mobile/lib/hooks/useLink.js.map +1 -1
- package/mobile/lib/hooks/useList.d.ts +10 -0
- package/mobile/lib/hooks/useList.js +10 -0
- package/mobile/lib/hooks/useList.js.map +1 -0
- package/mobile/lib/hooks/useLocation.d.ts +1 -1
- package/mobile/lib/hooks/useLocation.js +28 -17
- package/mobile/lib/hooks/useLocation.js.map +1 -1
- package/mobile/lib/hooks/useSWRResource.d.ts +1 -1
- package/mobile/lib/hooks/useSWRResource.js +2 -4
- package/mobile/lib/hooks/useSWRResource.js.map +1 -1
- package/mobile/lib/icons/IconName.d.ts +3 -3
- package/mobile/lib/icons/IconName.js +3 -3
- package/mobile/lib/icons/IconName.js.map +1 -1
- package/mobile/lib/services/sitemap/useSitemap.d.ts +3 -0
- package/mobile/lib/services/sitemap/useSitemap.js +4 -0
- package/mobile/lib/services/sitemap/useSitemap.js.map +1 -0
- package/mobile/lib/ui-kit/BaseFiltration/BaseFiltrationInner.js +2 -2
- package/mobile/lib/ui-kit/BaseFiltration/BaseFiltrationInner.js.map +1 -1
- package/mobile/lib/ui-kit/BaseFiltration/renderFiltrationForm.js +2 -2
- package/mobile/lib/ui-kit/BaseFiltration/renderFiltrationForm.js.map +1 -1
- package/mobile/lib/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +2 -2
- package/mobile/lib/ui-kit/BaseTile/BaseTile.js +1 -1
- package/mobile/lib/ui-kit/BaseTile/BaseTile.js.map +1 -1
- package/mobile/lib/ui-kit/BenefitsList/DefaultBenefitsList.js +5 -3
- package/mobile/lib/ui-kit/BenefitsList/DefaultBenefitsList.js.map +1 -1
- package/mobile/lib/ui-kit/Button/Button.d.ts +2 -2
- package/mobile/lib/ui-kit/Button/Button.js.map +1 -1
- package/mobile/lib/ui-kit/Button/ButtonContent.d.ts +19 -0
- package/mobile/lib/ui-kit/Button/ButtonContent.js +2 -0
- package/mobile/lib/ui-kit/Button/ButtonContent.js.map +1 -0
- package/mobile/lib/ui-kit/Button/ButtonInner.d.ts +2 -7
- package/mobile/lib/ui-kit/Button/ButtonInner.js.map +1 -1
- package/mobile/lib/ui-kit/Button/ButtonProps.d.ts +4 -44
- package/mobile/lib/ui-kit/Button/ButtonsSectionContent.d.ts +7 -0
- package/mobile/lib/ui-kit/Button/ButtonsSectionContent.js +2 -0
- package/mobile/lib/ui-kit/Button/ButtonsSectionContent.js.map +1 -0
- package/mobile/lib/ui-kit/Button/renderButtonsSection.d.ts +2 -2
- package/mobile/lib/ui-kit/Button/renderButtonsSection.js.map +1 -1
- package/mobile/lib/ui-kit/CookiePopup/CookiePopup.js +6 -6
- package/mobile/lib/ui-kit/CookiePopup/CookiePopup.js.map +1 -1
- package/mobile/lib/ui-kit/DialogManager/CloseButton.d.ts +7 -0
- package/mobile/lib/ui-kit/{Dialog → DialogManager}/CloseButton.js +1 -1
- package/mobile/lib/ui-kit/DialogManager/CloseButton.js.map +1 -0
- package/mobile/lib/ui-kit/DialogManager/Dialog.d.ts +7 -0
- package/mobile/lib/ui-kit/DialogManager/Dialog.js +15 -0
- package/mobile/lib/ui-kit/DialogManager/Dialog.js.map +1 -0
- package/mobile/lib/ui-kit/DialogManager/DialogAction.d.ts +12 -0
- package/mobile/lib/ui-kit/DialogManager/DialogAction.js.map +1 -0
- package/mobile/lib/ui-kit/DialogManager/DialogManager.d.ts +2 -0
- package/mobile/lib/ui-kit/DialogManager/DialogManager.js +59 -0
- package/mobile/lib/ui-kit/DialogManager/DialogManager.js.map +1 -0
- package/mobile/lib/ui-kit/DialogManager/useDialogManager.d.ts +10 -0
- package/mobile/lib/ui-kit/DialogManager/useDialogManager.js +7 -0
- package/mobile/lib/ui-kit/DialogManager/useDialogManager.js.map +1 -0
- package/mobile/lib/ui-kit/InputRange/InputRangeProps.d.ts +1 -0
- package/mobile/lib/ui-kit/ListControlProps.d.ts +4 -0
- package/mobile/lib/ui-kit/ListControlProps.js +2 -0
- package/mobile/lib/ui-kit/ListControlProps.js.map +1 -0
- package/mobile/lib/ui-kit/LocationDialog/LocationDialog.d.ts +2 -3
- package/mobile/lib/ui-kit/LocationDialog/LocationDialog.js +16 -25
- package/mobile/lib/ui-kit/LocationDialog/LocationDialog.js.map +1 -1
- package/mobile/lib/ui-kit/LocationDialog/renderForeignOffices.d.ts +5 -0
- package/mobile/lib/ui-kit/LocationDialog/renderForeignOffices.js +12 -0
- package/mobile/lib/ui-kit/LocationDialog/renderForeignOffices.js.map +1 -0
- package/mobile/lib/ui-kit/LocationDialog/renderRegion.d.ts +3 -0
- package/mobile/lib/ui-kit/LocationDialog/renderRegion.js +5 -0
- package/mobile/lib/ui-kit/LocationDialog/renderRegion.js.map +1 -0
- package/mobile/lib/ui-kit/LocationDialog/renderRegionGroup.d.ts +3 -0
- package/mobile/lib/ui-kit/LocationDialog/renderRegionGroup.js +5 -0
- package/mobile/lib/ui-kit/LocationDialog/renderRegionGroup.js.map +1 -0
- package/mobile/lib/ui-kit/LocationDialog/useLocationDialog.d.ts +5 -0
- package/mobile/lib/ui-kit/LocationDialog/useLocationDialog.js +11 -0
- package/mobile/lib/ui-kit/LocationDialog/useLocationDialog.js.map +1 -0
- package/mobile/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +1 -0
- package/mobile/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.js +2 -1
- package/mobile/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
- package/mobile/lib/ui-kit/SearchBar/SearchBar.js +6 -9
- package/mobile/lib/ui-kit/SearchBar/SearchBar.js.map +1 -1
- package/mobile/lib/ui-kit/SearchDialog/SearchDialog.d.ts +1 -3
- package/mobile/lib/ui-kit/SearchDialog/SearchDialog.js +7 -8
- package/mobile/lib/ui-kit/SearchDialog/SearchDialog.js.map +1 -1
- package/mobile/lib/ui-kit/SearchDialog/useSearchDialog.d.ts +6 -0
- package/mobile/lib/ui-kit/SearchDialog/useSearchDialog.js +11 -0
- package/mobile/lib/ui-kit/SearchDialog/useSearchDialog.js.map +1 -0
- package/mobile/lib/ui-kit/SwipeListControl/SwipeListContainer.js +1 -1
- package/mobile/lib/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
- package/mobile/lib/ui-kit/TabsControl/ScrollableTabsControl.d.ts +2 -0
- package/mobile/lib/ui-kit/TabsControl/ScrollableTabsControl.js +15 -0
- package/mobile/lib/ui-kit/TabsControl/ScrollableTabsControl.js.map +1 -0
- package/mobile/lib/ui-kit/TabsControl/TabItem.d.ts +11 -0
- package/mobile/lib/ui-kit/TabsControl/TabItem.js +36 -0
- package/mobile/lib/ui-kit/TabsControl/TabItem.js.map +1 -0
- package/mobile/lib/ui-kit/TabsControl/TabsControl.d.ts +2 -0
- package/mobile/lib/ui-kit/TabsControl/TabsControl.js +6 -0
- package/mobile/lib/ui-kit/TabsControl/TabsControl.js.map +1 -0
- package/mobile/lib/ui-kit/TabsControl/TabsControlProps.d.ts +6 -0
- package/mobile/lib/ui-kit/TabsControl/TabsControlProps.js +2 -0
- package/mobile/lib/ui-kit/TabsControl/TabsControlProps.js.map +1 -0
- package/mobile/lib/ui-kit/TabsControl/renderTab.d.ts +4 -0
- package/mobile/lib/ui-kit/TabsControl/renderTab.js +4 -0
- package/mobile/lib/ui-kit/TabsControl/renderTab.js.map +1 -0
- package/mobile/lib/utils/BoolComparator.d.ts +11 -0
- package/mobile/lib/utils/BoolComparator.js +12 -0
- package/mobile/lib/utils/BoolComparator.js.map +1 -0
- package/mobile/src/EventBus/defaultEventBus.ts +4 -2
- package/mobile/src/EventBus/useLatestEvent.ts +16 -0
- package/mobile/src/components/ApplicationForm/ApplicationFormContent.ts +2 -2
- package/mobile/src/components/Blocks.ts +2 -0
- package/mobile/src/components/Bonus/BonusContent.ts +5 -9
- package/mobile/src/components/BusinessBlock/BusinessBlockContent.ts +3 -3
- package/mobile/src/components/ButtonsBlock/ButtonsBlockContent.ts +2 -2
- package/mobile/src/components/Calculator/BusinessDepositCalculatorForm.tsx +36 -41
- package/mobile/src/components/Calculator/Calculator.tsx +69 -118
- package/mobile/src/components/Calculator/CalculatorContent.ts +2 -2
- package/mobile/src/components/Calculator/CalculatorValueBlock.tsx +3 -1
- package/mobile/src/components/Calculator/CreditCalculatorForm.tsx +29 -27
- package/mobile/src/components/Calculator/DepositCalculatorForm.tsx +23 -16
- package/mobile/src/components/Calculator/RefinancingCalculatorForm.tsx +5 -2
- package/mobile/src/components/Calculator/renderBinaryRadioButtonGroup.tsx +4 -0
- package/mobile/src/components/Calculator/renderDaysInput.tsx +0 -1
- package/mobile/src/components/Calculator/renderMonthsInput.tsx +0 -1
- package/mobile/src/components/Calculator/renderPaymentType.tsx +1 -0
- package/mobile/src/components/Calculator/renderRate.tsx +37 -0
- package/mobile/src/components/CardTransfer/CardTransferContent.ts +2 -2
- package/mobile/src/components/CarouselBankHistoryCard/CarouselBankHistoryCard.tsx +1 -1
- package/mobile/src/components/CarouselCard/CarouselCardContent.ts +3 -3
- package/mobile/src/components/CarouselCatalogCard/CarouselCatalogCard.tsx +7 -6
- package/mobile/src/components/CarouselCatalogCard/CarouselCatalogCardContent.ts +3 -3
- package/mobile/src/components/CarouselCatalogCard/CatalogCard.ts +2 -2
- package/mobile/src/components/CarouselProductCard/CarouselProductCardContent.ts +2 -2
- package/mobile/src/components/CarouselProgramsCard/CarouselProgramsCard.tsx +15 -33
- package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts +2 -2
- package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCardContent.ts +4 -9
- package/mobile/src/components/ContactsBlock/ContactsBlockContent.ts +2 -2
- package/mobile/src/components/ContentPage/ContentPage.tsx +18 -54
- package/mobile/src/components/ContentPage/computeAPIFallback.ts +10 -27
- package/mobile/src/components/ErrorBlock/ErrorBlockContent.ts +2 -2
- package/mobile/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +2 -2
- package/mobile/src/components/ExchangeRateTile/ExchangeRateTileContent.ts +2 -2
- package/mobile/src/components/Footer/Footer.tsx +8 -8
- package/mobile/src/components/Footer/FooterProps.ts +1 -4
- package/mobile/src/components/Footer/SocialMedia.tsx +2 -2
- package/mobile/src/components/Header/Header.tsx +4 -3
- package/mobile/src/components/Header/HeaderProps.ts +1 -6
- package/mobile/src/components/Header/HeaderSecondaryMenu.tsx +13 -11
- package/mobile/src/components/Header/HeaderSubMenu.tsx +1 -1
- package/mobile/src/components/Header/HeaderTop.tsx +27 -14
- package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlockContent.ts +2 -2
- package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +2 -2
- package/mobile/src/components/MobileAppTile/MobileAppTile.tsx +2 -1
- package/mobile/src/components/MobileAppTile/MobileAppTileContent.ts +2 -2
- package/mobile/src/components/MortgageFiltration/HotFilterRecord.ts +14 -0
- package/mobile/src/components/MortgageFiltration/MortgageFiltration.example.json +54 -4
- package/mobile/src/components/MortgageFiltration/MortgageFiltration.tsx +51 -4
- package/mobile/src/components/MortgageFiltration/MortgageFiltrationContent.ts +13 -0
- package/mobile/src/components/ProductBlock/ProductBlockContent.ts +2 -2
- package/mobile/src/components/ProductBlock/renderBackwardButton.tsx +2 -2
- package/mobile/src/components/PromoTile/PromoTileContent.ts +2 -2
- package/mobile/src/components/RepresentativeOfficeInfo/RepresentativeOfficeInfoContent.ts +2 -2
- package/mobile/src/components/RollupItem/RollupItem.tsx +1 -1
- package/mobile/src/components/RollupItem/renderRoundedIcon.tsx +1 -1
- package/mobile/src/components/RollupItem/rollupIconVersion.tsx +1 -1
- package/mobile/src/components/StepsBlock/StepsBlockContent.ts +9 -9
- package/mobile/src/components/Tabs/Tabs.tsx +42 -53
- package/mobile/src/components/Tabs/renderTabs.tsx +37 -0
- package/mobile/src/components/TariffsTable/EmbeddableCellData.tsx +3 -2
- package/mobile/src/components/TariffsTable/TariffsTableContent.ts +2 -2
- package/mobile/src/hooks/useForm.ts +7 -0
- package/mobile/src/hooks/useLink.ts +3 -3
- package/mobile/src/hooks/useList.ts +24 -0
- package/mobile/src/hooks/useLocation.ts +34 -28
- package/mobile/src/hooks/useSWRResource.ts +9 -4
- package/mobile/src/icons/ArrowDownSolidIcon.svg +1 -1
- package/mobile/src/icons/ArrowUpSolidIcon.svg +1 -1
- package/mobile/src/icons/IconName.ts +4 -4
- package/mobile/src/services/sitemap/useSitemap.ts +7 -0
- package/mobile/src/ui-kit/BaseFiltration/BaseFiltrationInner.tsx +2 -2
- package/mobile/src/ui-kit/BaseFiltration/renderFiltrationForm.tsx +4 -4
- package/mobile/src/ui-kit/BaseProductTile/BaseProductTileContent.ts +2 -2
- package/mobile/src/ui-kit/BaseTile/BaseTile.tsx +1 -1
- package/mobile/src/ui-kit/BenefitsList/DefaultBenefitsList.tsx +8 -3
- package/mobile/src/ui-kit/Button/Button.tsx +14 -16
- package/mobile/src/ui-kit/Button/ButtonContent.ts +21 -0
- package/mobile/src/ui-kit/Button/ButtonInner.tsx +5 -9
- package/mobile/src/ui-kit/Button/ButtonProps.ts +4 -49
- package/mobile/src/ui-kit/Button/ButtonsSectionContent.ts +8 -0
- package/mobile/src/ui-kit/Button/renderButtonsSection.tsx +3 -3
- package/mobile/src/ui-kit/CookiePopup/CookiePopup.tsx +12 -17
- package/mobile/src/ui-kit/{Dialog → DialogManager}/CloseButton.tsx +3 -3
- package/mobile/src/ui-kit/DialogManager/Dialog.tsx +31 -0
- package/mobile/src/ui-kit/DialogManager/DialogAction.ts +15 -0
- package/mobile/src/ui-kit/DialogManager/DialogManager.tsx +85 -0
- package/mobile/src/ui-kit/DialogManager/useDialogManager.ts +14 -0
- package/mobile/src/ui-kit/InputRange/InputRangeProps.ts +1 -0
- package/mobile/src/ui-kit/ListControlProps.ts +5 -0
- package/mobile/src/ui-kit/LocationDialog/LocationDialog.tsx +57 -138
- package/mobile/src/ui-kit/LocationDialog/renderForeignOffices.tsx +37 -0
- package/mobile/src/ui-kit/LocationDialog/renderRegion.tsx +15 -0
- package/mobile/src/ui-kit/LocationDialog/renderRegionGroup.tsx +15 -0
- package/mobile/src/ui-kit/LocationDialog/useLocationDialog.tsx +11 -0
- package/mobile/src/ui-kit/RadioButtonGroup/RadioButtonGroup.tsx +10 -2
- package/mobile/src/ui-kit/SearchBar/SearchBar.tsx +14 -15
- package/mobile/src/ui-kit/SearchDialog/SearchDialog.tsx +8 -10
- package/mobile/src/ui-kit/SearchDialog/useSearchDialog.tsx +12 -0
- package/mobile/src/ui-kit/SwipeListControl/SwipeListContainer.tsx +1 -1
- package/mobile/src/ui-kit/TabsControl/ScrollableTabsControl.tsx +41 -0
- package/mobile/src/ui-kit/TabsControl/TabItem.tsx +81 -0
- package/mobile/src/ui-kit/TabsControl/TabsControl.tsx +12 -0
- package/mobile/src/ui-kit/TabsControl/TabsControlProps.ts +7 -0
- package/mobile/src/ui-kit/TabsControl/renderTab.tsx +15 -0
- package/mobile/src/utils/BoolComparator.ts +47 -0
- package/package.json +1 -1
- package/src/EventBus/defaultEventBus.ts +4 -2
- package/src/EventBus/useLatestEvent.ts +16 -0
- package/src/components/ApplicationForm/ApplicationFormContent.ts +2 -2
- package/src/components/Blocks.mobile.ts +2 -0
- package/src/components/Bonus/BonusContent.ts +5 -9
- package/src/components/BusinessBlock/BusinessBlock.fixture.tsx +2 -3
- package/src/components/BusinessBlock/BusinessBlockContent.ts +3 -3
- package/src/components/ButtonsBlock/ButtonsBlock.fixture.mobile.tsx +2 -2
- package/src/components/ButtonsBlock/ButtonsBlock.fixture.tsx +2 -2
- package/src/components/ButtonsBlock/ButtonsBlockContent.ts +2 -2
- package/src/components/Calculator/BusinessDepositCalculatorForm.tsx +36 -41
- package/src/components/Calculator/Calculator.fixture.mobile.tsx +114 -0
- package/src/components/Calculator/Calculator.fixture.tsx +2 -2
- package/src/components/Calculator/Calculator.mobile.tsx +85 -0
- package/src/components/Calculator/CalculatorContent.ts +2 -2
- package/src/components/Calculator/CalculatorValueBlock.tsx +3 -1
- package/src/components/Calculator/CreditCalculatorForm.tsx +29 -27
- package/src/components/Calculator/DepositCalculatorForm.tsx +23 -16
- package/src/components/Calculator/RefinancingCalculatorForm.tsx +5 -2
- package/src/components/Calculator/renderBinaryRadioButtonGroup.tsx +4 -0
- package/src/components/Calculator/renderDaysInput.tsx +0 -1
- package/src/components/Calculator/renderMonthsInput.tsx +0 -1
- package/src/components/Calculator/renderPaymentType.tsx +1 -0
- package/src/components/Calculator/renderRate.tsx +37 -0
- package/src/components/CardTransfer/CardTransferContent.ts +2 -2
- package/src/components/CarouselBankHistoryCard/CarouselBankHistoryCard.mobile.tsx +1 -1
- package/src/components/CarouselCard/CarouselCardContent.ts +3 -3
- package/src/components/CarouselCatalogCard/CarouselCatalogCard.tsx +7 -6
- package/src/components/CarouselCatalogCard/CarouselCatalogCardContent.ts +3 -3
- package/src/components/CarouselCatalogCard/CatalogCard.ts +2 -2
- package/src/components/CarouselProductCard/CarouselProductCard.fixture.tsx +3 -3
- package/src/components/CarouselProductCard/CarouselProductCardContent.ts +2 -2
- package/src/components/CarouselProgramsCard/CarouselProgramsCard.tsx +15 -33
- package/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts +2 -2
- package/src/components/CarouselTariffsCard/CarouselTariffsCard.fixture.mobile.tsx +3 -2
- package/src/components/CarouselTariffsCard/CarouselTariffsCard.fixture.tsx +4 -4
- package/src/components/CarouselTariffsCard/CarouselTariffsCardContent.ts +4 -9
- package/src/components/ContactsBlock/ContactsBlockContent.ts +2 -2
- package/src/components/ContentPage/ContentPage.tsx +18 -54
- package/src/components/ContentPage/computeAPIFallback.ts +10 -27
- package/src/components/ErrorBlock/ErrorBlockContent.ts +2 -2
- package/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +2 -2
- package/src/components/ExchangeRateTile/ExchangeRateTileContent.ts +2 -2
- package/src/components/Footer/Footer.fixture.mobile.tsx +3 -3
- package/src/components/Footer/Footer.fixture.tsx +3 -5
- package/src/components/Footer/Footer.mobile.tsx +8 -8
- package/src/components/Footer/Footer.tsx +5 -3
- package/src/components/Footer/FooterProps.ts +1 -4
- package/src/components/Footer/SocialMedia.tsx +2 -2
- package/src/components/Header/Header.fixture.mobile.tsx +14 -5
- package/src/components/Header/Header.fixture.tsx +13 -4
- package/src/components/Header/Header.mobile.tsx +4 -3
- package/src/components/Header/Header.tsx +7 -11
- package/src/components/Header/HeaderProps.ts +1 -6
- package/src/components/Header/HeaderSecondaryMenu.tsx +13 -11
- package/src/components/Header/HeaderSubMenu.tsx +1 -1
- package/src/components/Header/HeaderTop.tsx +27 -14
- package/src/components/InsuranceAmountBlock/InsuranceAmountBlock.fixture.tsx +2 -2
- package/src/components/InsuranceAmountBlock/InsuranceAmountBlockContent.ts +2 -2
- package/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +2 -2
- package/src/components/MobileAppTile/MobileAppTile.fixture.mobile.tsx +8 -19
- package/src/components/MobileAppTile/MobileAppTile.fixture.tsx +10 -12
- package/src/components/MobileAppTile/MobileAppTile.tsx +2 -1
- package/src/components/MobileAppTile/MobileAppTileContent.ts +2 -2
- package/src/components/MortgageFiltration/HotFilterRecord.ts +14 -0
- package/src/components/MortgageFiltration/MortgageFiltration.example.json +54 -4
- package/src/components/MortgageFiltration/MortgageFiltration.fixture.tsx +51 -14
- package/src/components/MortgageFiltration/MortgageFiltration.tsx +51 -4
- package/src/components/MortgageFiltration/MortgageFiltrationContent.ts +13 -0
- package/src/components/ProductBlock/ProductBlock.fixture.mobile.tsx +2 -2
- package/src/components/ProductBlock/ProductBlock.fixture.tsx +4 -4
- package/src/components/ProductBlock/ProductBlockContent.ts +2 -2
- package/src/components/ProductBlock/renderBackwardButton.tsx +2 -2
- package/src/components/ProductGallery/ProductGallery.fixture.mobile.tsx +3 -3
- package/src/components/ProductGallery/ProductGallery.fixture.tsx +3 -3
- package/src/components/PromoTile/PromoTileContent.ts +2 -2
- package/src/components/RepresentativeOfficeInfo/RepresentativeOfficeInfo.fixture.mobile.tsx +2 -2
- package/src/components/RepresentativeOfficeInfo/RepresentativeOfficeInfo.fixture.tsx +2 -2
- package/src/components/RepresentativeOfficeInfo/RepresentativeOfficeInfoContent.ts +2 -2
- package/src/components/RollupItem/RollupItem.tsx +1 -1
- package/src/components/RollupItem/renderRoundedIcon.mobile.tsx +1 -1
- package/src/components/RollupItem/rollupIconVersion.mobile.tsx +1 -1
- package/src/components/StepsBlock/StepsBlockContent.ts +9 -9
- package/src/components/Tabs/Tabs.tsx +42 -53
- package/src/components/Tabs/renderTabs.tsx +37 -0
- package/src/components/TariffsTable/EmbeddableCellData.mobile.tsx +3 -2
- package/src/components/TariffsTable/EmbeddableCellData.tsx +3 -2
- package/src/components/TariffsTable/TariffsTableContent.ts +2 -2
- package/src/hooks/useForm.ts +7 -0
- package/src/hooks/useLink.ts +3 -3
- package/src/hooks/useList.ts +24 -0
- package/src/hooks/useLocation.ts +34 -28
- package/src/hooks/useSWRResource.ts +9 -4
- package/src/icons/ArrowDownSolidIcon.svg +1 -1
- package/src/icons/ArrowUpSolidIcon.svg +1 -1
- package/src/icons/IconName.ts +4 -4
- package/src/services/sitemap/useSitemap.ts +7 -0
- package/src/ui-kit/BaseFiltration/BaseFiltrationInner.tsx +2 -2
- package/src/ui-kit/BaseFiltration/renderFiltrationForm.tsx +4 -4
- package/src/ui-kit/BaseProductTile/BaseProductTileContent.ts +2 -2
- package/src/ui-kit/BaseTile/BaseTile.tsx +1 -1
- package/src/ui-kit/BenefitsList/DefaultBenefitsList.tsx +8 -3
- package/src/ui-kit/Button/Button.tsx +14 -16
- package/src/ui-kit/Button/ButtonContent.ts +21 -0
- package/src/ui-kit/Button/ButtonInner.tsx +5 -9
- package/src/ui-kit/Button/ButtonProps.ts +4 -49
- package/src/ui-kit/Button/ButtonsSectionContent.ts +8 -0
- package/src/ui-kit/Button/renderButtonsSection.tsx +3 -3
- package/src/ui-kit/CookiePopup/CookiePopup.tsx +12 -17
- package/src/ui-kit/{Dialog → DialogManager}/CloseButton.tsx +3 -3
- package/src/ui-kit/DialogManager/Dialog.tsx +31 -0
- package/src/ui-kit/DialogManager/DialogAction.ts +15 -0
- package/src/ui-kit/DialogManager/DialogManager.tsx +85 -0
- package/src/ui-kit/DialogManager/useDialogManager.ts +14 -0
- package/src/ui-kit/InputRange/InputRangeProps.ts +1 -0
- package/src/ui-kit/ListControlProps.ts +5 -0
- package/src/ui-kit/LocationDialog/LocationDialog.fixture.tsx +1 -74
- package/src/ui-kit/LocationDialog/LocationDialog.tsx +57 -138
- package/src/ui-kit/LocationDialog/renderForeignOffices.tsx +37 -0
- package/src/ui-kit/LocationDialog/renderRegion.tsx +15 -0
- package/src/ui-kit/LocationDialog/renderRegionGroup.tsx +15 -0
- package/src/ui-kit/LocationDialog/useLocationDialog.tsx +11 -0
- package/src/ui-kit/RadioButtonGroup/RadioButtonGroup.tsx +10 -2
- package/src/ui-kit/SearchBar/SearchBar.tsx +14 -15
- package/src/ui-kit/SearchDialog/SearchDialog.tsx +8 -10
- package/src/ui-kit/SearchDialog/useSearchDialog.tsx +12 -0
- package/src/ui-kit/SwipeListControl/SwipeListContainer.tsx +1 -1
- package/src/ui-kit/TabsControl/ScrollableTabsControl.tsx +41 -0
- package/src/ui-kit/TabsControl/TabItem.tsx +81 -0
- package/src/ui-kit/TabsControl/TabsControl.fixture.tsx +103 -0
- package/src/ui-kit/TabsControl/TabsControl.tsx +12 -0
- package/src/ui-kit/TabsControl/TabsControlProps.ts +7 -0
- package/src/ui-kit/TabsControl/renderTab.tsx +15 -0
- package/src/utils/BoolComparator.ts +47 -0
- package/bundle/components/CarouselProgramsCard/programCardStyles.d.ts +0 -2
- package/bundle/components/CarouselProgramsCard/programCardStyles.mobile.d.ts +0 -2
- package/bundle/components/Tabs/CenteredTabs.d.ts +0 -7
- package/bundle/components/Tabs/LinkTab.d.ts +0 -9
- package/bundle/components/Tabs/ScrollableTabs.d.ts +0 -8
- package/bundle/components/Tabs/renderGroupTab.d.ts +0 -4
- package/bundle/components/Tabs/renderTab.d.ts +0 -11
- package/bundle/components/Tabs/tabItemClasses.d.ts +0 -11
- package/bundle/hooks/useCachedAsyncData.d.ts +0 -2
- package/bundle/model/Button.d.ts +0 -15
- package/bundle/ui-kit/BaseTile/getTileRightPadding.d.ts +0 -1
- package/bundle/ui-kit/Dialog/DialogAction.d.ts +0 -12
- package/bundle/ui-kit/Dialog/useDialog.d.ts +0 -4
- package/bundle/ui-kit/Dialog/useDialogHandlers.d.ts +0 -6
- package/bundle/ui-kit/Dialog/useDialogProps.d.ts +0 -7
- package/bundle/ui-kit/LocationDialog/LocationDialogProps.d.ts +0 -14
- package/dist/components/CarouselProgramsCard/programCardStyles.d.ts +0 -2
- package/dist/components/CarouselProgramsCard/programCardStyles.js +0 -5
- package/dist/components/CarouselProgramsCard/programCardStyles.js.map +0 -1
- package/dist/components/CarouselProgramsCard/programCardStyles.mobile.d.ts +0 -2
- package/dist/components/CarouselProgramsCard/programCardStyles.mobile.js +0 -5
- package/dist/components/CarouselProgramsCard/programCardStyles.mobile.js.map +0 -1
- package/dist/components/Tabs/CenteredTabs.d.ts +0 -7
- package/dist/components/Tabs/CenteredTabs.js +0 -7
- package/dist/components/Tabs/CenteredTabs.js.map +0 -1
- package/dist/components/Tabs/LinkTab.d.ts +0 -9
- package/dist/components/Tabs/LinkTab.js +0 -19
- package/dist/components/Tabs/LinkTab.js.map +0 -1
- package/dist/components/Tabs/ScrollableTabs.d.ts +0 -8
- package/dist/components/Tabs/ScrollableTabs.js +0 -17
- package/dist/components/Tabs/ScrollableTabs.js.map +0 -1
- package/dist/components/Tabs/renderGroupTab.d.ts +0 -4
- package/dist/components/Tabs/renderGroupTab.js +0 -20
- package/dist/components/Tabs/renderGroupTab.js.map +0 -1
- package/dist/components/Tabs/renderTab.d.ts +0 -11
- package/dist/components/Tabs/renderTab.js +0 -24
- package/dist/components/Tabs/renderTab.js.map +0 -1
- package/dist/components/Tabs/tabItemClasses.d.ts +0 -11
- package/dist/components/Tabs/tabItemClasses.js +0 -48
- package/dist/components/Tabs/tabItemClasses.js.map +0 -1
- package/dist/hooks/useCachedAsyncData.d.ts +0 -2
- package/dist/hooks/useCachedAsyncData.js +0 -25
- package/dist/hooks/useCachedAsyncData.js.map +0 -1
- package/dist/model/Button.d.ts +0 -15
- package/dist/model/Button.js.map +0 -1
- package/dist/services/sitemap/findActiveSubItem.js.map +0 -1
- package/dist/services/sitemap/isHrefActive.js.map +0 -1
- package/dist/services/sitemap/isTopItemActive.js.map +0 -1
- package/dist/ui-kit/BaseTile/getTileRightPadding.d.ts +0 -1
- package/dist/ui-kit/BaseTile/getTileRightPadding.js +0 -17
- package/dist/ui-kit/BaseTile/getTileRightPadding.js.map +0 -1
- package/dist/ui-kit/Dialog/CloseButton.js.map +0 -1
- package/dist/ui-kit/Dialog/Dialog.js +0 -22
- package/dist/ui-kit/Dialog/Dialog.js.map +0 -1
- package/dist/ui-kit/Dialog/DialogAction.d.ts +0 -12
- package/dist/ui-kit/Dialog/DialogAction.js.map +0 -1
- package/dist/ui-kit/Dialog/useDialog.d.ts +0 -4
- package/dist/ui-kit/Dialog/useDialog.js +0 -9
- package/dist/ui-kit/Dialog/useDialog.js.map +0 -1
- package/dist/ui-kit/Dialog/useDialogHandlers.d.ts +0 -6
- package/dist/ui-kit/Dialog/useDialogHandlers.js +0 -21
- package/dist/ui-kit/Dialog/useDialogHandlers.js.map +0 -1
- package/dist/ui-kit/Dialog/useDialogProps.d.ts +0 -7
- package/dist/ui-kit/Dialog/useDialogProps.js +0 -39
- package/dist/ui-kit/Dialog/useDialogProps.js.map +0 -1
- package/dist/ui-kit/LocationDialog/LocationDialogProps.d.ts +0 -14
- package/dist/ui-kit/LocationDialog/LocationDialogProps.js.map +0 -1
- package/lib/components/CarouselProgramsCard/programCardStyles.d.ts +0 -2
- package/lib/components/CarouselProgramsCard/programCardStyles.js +0 -3
- package/lib/components/CarouselProgramsCard/programCardStyles.js.map +0 -1
- package/lib/components/CarouselProgramsCard/programCardStyles.mobile.d.ts +0 -2
- package/lib/components/CarouselProgramsCard/programCardStyles.mobile.js +0 -3
- package/lib/components/CarouselProgramsCard/programCardStyles.mobile.js.map +0 -1
- package/lib/components/Tabs/CenteredTabs.d.ts +0 -7
- package/lib/components/Tabs/CenteredTabs.js +0 -5
- package/lib/components/Tabs/CenteredTabs.js.map +0 -1
- package/lib/components/Tabs/LinkTab.d.ts +0 -9
- package/lib/components/Tabs/LinkTab.js +0 -17
- package/lib/components/Tabs/LinkTab.js.map +0 -1
- package/lib/components/Tabs/ScrollableTabs.d.ts +0 -8
- package/lib/components/Tabs/ScrollableTabs.js +0 -15
- package/lib/components/Tabs/ScrollableTabs.js.map +0 -1
- package/lib/components/Tabs/renderGroupTab.d.ts +0 -3
- package/lib/components/Tabs/renderGroupTab.js +0 -17
- package/lib/components/Tabs/renderGroupTab.js.map +0 -1
- package/lib/components/Tabs/renderTab.d.ts +0 -10
- package/lib/components/Tabs/renderTab.js +0 -21
- package/lib/components/Tabs/renderTab.js.map +0 -1
- package/lib/components/Tabs/tabItemClasses.d.ts +0 -11
- package/lib/components/Tabs/tabItemClasses.js +0 -45
- package/lib/components/Tabs/tabItemClasses.js.map +0 -1
- package/lib/hooks/useCachedAsyncData.d.ts +0 -2
- package/lib/hooks/useCachedAsyncData.js +0 -22
- package/lib/hooks/useCachedAsyncData.js.map +0 -1
- package/lib/model/Button.d.ts +0 -15
- package/lib/model/Button.js +0 -2
- package/lib/model/Button.js.map +0 -1
- package/lib/services/sitemap/findActiveSubItem.js.map +0 -1
- package/lib/services/sitemap/isHrefActive.js.map +0 -1
- package/lib/services/sitemap/isTopItemActive.js.map +0 -1
- package/lib/ui-kit/BaseTile/getTileRightPadding.d.ts +0 -1
- package/lib/ui-kit/BaseTile/getTileRightPadding.js +0 -14
- package/lib/ui-kit/BaseTile/getTileRightPadding.js.map +0 -1
- package/lib/ui-kit/Dialog/CloseButton.js.map +0 -1
- package/lib/ui-kit/Dialog/Dialog.js +0 -20
- package/lib/ui-kit/Dialog/Dialog.js.map +0 -1
- package/lib/ui-kit/Dialog/DialogAction.d.ts +0 -12
- package/lib/ui-kit/Dialog/DialogAction.js.map +0 -1
- package/lib/ui-kit/Dialog/useDialog.d.ts +0 -4
- package/lib/ui-kit/Dialog/useDialog.js +0 -6
- package/lib/ui-kit/Dialog/useDialog.js.map +0 -1
- package/lib/ui-kit/Dialog/useDialogHandlers.d.ts +0 -6
- package/lib/ui-kit/Dialog/useDialogHandlers.js +0 -18
- package/lib/ui-kit/Dialog/useDialogHandlers.js.map +0 -1
- package/lib/ui-kit/Dialog/useDialogProps.d.ts +0 -7
- package/lib/ui-kit/Dialog/useDialogProps.js +0 -36
- package/lib/ui-kit/Dialog/useDialogProps.js.map +0 -1
- package/lib/ui-kit/LocationDialog/LocationDialogProps.d.ts +0 -14
- package/lib/ui-kit/LocationDialog/LocationDialogProps.js +0 -2
- package/lib/ui-kit/LocationDialog/LocationDialogProps.js.map +0 -1
- package/mobile/bundle/components/CarouselProgramsCard/programCardStyles.d.ts +0 -2
- package/mobile/bundle/components/Tabs/CenteredTabs.d.ts +0 -7
- package/mobile/bundle/components/Tabs/LinkTab.d.ts +0 -9
- package/mobile/bundle/components/Tabs/ScrollableTabs.d.ts +0 -8
- package/mobile/bundle/components/Tabs/renderGroupTab.d.ts +0 -4
- package/mobile/bundle/components/Tabs/renderTab.d.ts +0 -11
- package/mobile/bundle/components/Tabs/tabItemClasses.d.ts +0 -11
- package/mobile/bundle/hooks/useCachedAsyncData.d.ts +0 -2
- package/mobile/bundle/model/Button.d.ts +0 -15
- package/mobile/bundle/ui-kit/BaseTile/getTileRightPadding.d.ts +0 -1
- package/mobile/bundle/ui-kit/Dialog/DialogAction.d.ts +0 -12
- package/mobile/bundle/ui-kit/Dialog/useDialog.d.ts +0 -4
- package/mobile/bundle/ui-kit/Dialog/useDialogHandlers.d.ts +0 -6
- package/mobile/bundle/ui-kit/Dialog/useDialogProps.d.ts +0 -7
- package/mobile/bundle/ui-kit/LocationDialog/LocationDialogProps.d.ts +0 -14
- package/mobile/dist/components/CarouselProgramsCard/programCardStyles.d.ts +0 -2
- package/mobile/dist/components/CarouselProgramsCard/programCardStyles.js +0 -5
- package/mobile/dist/components/CarouselProgramsCard/programCardStyles.js.map +0 -1
- package/mobile/dist/components/Tabs/CenteredTabs.d.ts +0 -7
- package/mobile/dist/components/Tabs/CenteredTabs.js +0 -7
- package/mobile/dist/components/Tabs/CenteredTabs.js.map +0 -1
- package/mobile/dist/components/Tabs/LinkTab.d.ts +0 -9
- package/mobile/dist/components/Tabs/LinkTab.js +0 -19
- package/mobile/dist/components/Tabs/LinkTab.js.map +0 -1
- package/mobile/dist/components/Tabs/ScrollableTabs.d.ts +0 -8
- package/mobile/dist/components/Tabs/ScrollableTabs.js +0 -17
- package/mobile/dist/components/Tabs/ScrollableTabs.js.map +0 -1
- package/mobile/dist/components/Tabs/renderGroupTab.d.ts +0 -4
- package/mobile/dist/components/Tabs/renderGroupTab.js +0 -20
- package/mobile/dist/components/Tabs/renderGroupTab.js.map +0 -1
- package/mobile/dist/components/Tabs/renderTab.d.ts +0 -11
- package/mobile/dist/components/Tabs/renderTab.js +0 -24
- package/mobile/dist/components/Tabs/renderTab.js.map +0 -1
- package/mobile/dist/components/Tabs/tabItemClasses.d.ts +0 -11
- package/mobile/dist/components/Tabs/tabItemClasses.js +0 -48
- package/mobile/dist/components/Tabs/tabItemClasses.js.map +0 -1
- package/mobile/dist/hooks/useCachedAsyncData.d.ts +0 -2
- package/mobile/dist/hooks/useCachedAsyncData.js +0 -25
- package/mobile/dist/hooks/useCachedAsyncData.js.map +0 -1
- package/mobile/dist/model/Button.d.ts +0 -15
- package/mobile/dist/model/Button.js.map +0 -1
- package/mobile/dist/services/sitemap/findActiveSubItem.js.map +0 -1
- package/mobile/dist/services/sitemap/isHrefActive.js.map +0 -1
- package/mobile/dist/services/sitemap/isTopItemActive.js.map +0 -1
- package/mobile/dist/ui-kit/BaseTile/getTileRightPadding.d.ts +0 -1
- package/mobile/dist/ui-kit/BaseTile/getTileRightPadding.js +0 -17
- package/mobile/dist/ui-kit/BaseTile/getTileRightPadding.js.map +0 -1
- package/mobile/dist/ui-kit/Dialog/CloseButton.d.ts +0 -7
- package/mobile/dist/ui-kit/Dialog/CloseButton.js.map +0 -1
- package/mobile/dist/ui-kit/Dialog/Dialog.d.ts +0 -8
- package/mobile/dist/ui-kit/Dialog/Dialog.js +0 -22
- package/mobile/dist/ui-kit/Dialog/Dialog.js.map +0 -1
- package/mobile/dist/ui-kit/Dialog/DialogAction.d.ts +0 -12
- package/mobile/dist/ui-kit/Dialog/DialogAction.js.map +0 -1
- package/mobile/dist/ui-kit/Dialog/useDialog.d.ts +0 -4
- package/mobile/dist/ui-kit/Dialog/useDialog.js +0 -9
- package/mobile/dist/ui-kit/Dialog/useDialog.js.map +0 -1
- package/mobile/dist/ui-kit/Dialog/useDialogHandlers.d.ts +0 -6
- package/mobile/dist/ui-kit/Dialog/useDialogHandlers.js +0 -21
- package/mobile/dist/ui-kit/Dialog/useDialogHandlers.js.map +0 -1
- package/mobile/dist/ui-kit/Dialog/useDialogProps.d.ts +0 -7
- package/mobile/dist/ui-kit/Dialog/useDialogProps.js +0 -39
- package/mobile/dist/ui-kit/Dialog/useDialogProps.js.map +0 -1
- package/mobile/dist/ui-kit/LocationDialog/LocationDialogProps.d.ts +0 -14
- package/mobile/dist/ui-kit/LocationDialog/LocationDialogProps.js +0 -2
- package/mobile/dist/ui-kit/LocationDialog/LocationDialogProps.js.map +0 -1
- package/mobile/lib/components/CarouselProgramsCard/programCardStyles.d.ts +0 -2
- package/mobile/lib/components/CarouselProgramsCard/programCardStyles.js +0 -3
- package/mobile/lib/components/CarouselProgramsCard/programCardStyles.js.map +0 -1
- package/mobile/lib/components/Tabs/CenteredTabs.d.ts +0 -7
- package/mobile/lib/components/Tabs/CenteredTabs.js +0 -5
- package/mobile/lib/components/Tabs/CenteredTabs.js.map +0 -1
- package/mobile/lib/components/Tabs/LinkTab.d.ts +0 -9
- package/mobile/lib/components/Tabs/LinkTab.js +0 -17
- package/mobile/lib/components/Tabs/LinkTab.js.map +0 -1
- package/mobile/lib/components/Tabs/ScrollableTabs.d.ts +0 -8
- package/mobile/lib/components/Tabs/ScrollableTabs.js +0 -15
- package/mobile/lib/components/Tabs/ScrollableTabs.js.map +0 -1
- package/mobile/lib/components/Tabs/renderGroupTab.d.ts +0 -4
- package/mobile/lib/components/Tabs/renderGroupTab.js +0 -17
- package/mobile/lib/components/Tabs/renderGroupTab.js.map +0 -1
- package/mobile/lib/components/Tabs/renderTab.d.ts +0 -11
- package/mobile/lib/components/Tabs/renderTab.js +0 -21
- package/mobile/lib/components/Tabs/renderTab.js.map +0 -1
- package/mobile/lib/components/Tabs/tabItemClasses.d.ts +0 -11
- package/mobile/lib/components/Tabs/tabItemClasses.js +0 -45
- package/mobile/lib/components/Tabs/tabItemClasses.js.map +0 -1
- package/mobile/lib/hooks/useCachedAsyncData.d.ts +0 -2
- package/mobile/lib/hooks/useCachedAsyncData.js +0 -22
- package/mobile/lib/hooks/useCachedAsyncData.js.map +0 -1
- package/mobile/lib/model/Button.d.ts +0 -15
- package/mobile/lib/model/Button.js +0 -2
- package/mobile/lib/model/Button.js.map +0 -1
- package/mobile/lib/services/sitemap/findActiveSubItem.js.map +0 -1
- package/mobile/lib/services/sitemap/isHrefActive.js.map +0 -1
- package/mobile/lib/services/sitemap/isTopItemActive.js.map +0 -1
- package/mobile/lib/ui-kit/BaseTile/getTileRightPadding.d.ts +0 -1
- package/mobile/lib/ui-kit/BaseTile/getTileRightPadding.js +0 -14
- package/mobile/lib/ui-kit/BaseTile/getTileRightPadding.js.map +0 -1
- package/mobile/lib/ui-kit/Dialog/CloseButton.d.ts +0 -7
- package/mobile/lib/ui-kit/Dialog/CloseButton.js.map +0 -1
- package/mobile/lib/ui-kit/Dialog/Dialog.d.ts +0 -8
- package/mobile/lib/ui-kit/Dialog/Dialog.js +0 -20
- package/mobile/lib/ui-kit/Dialog/Dialog.js.map +0 -1
- package/mobile/lib/ui-kit/Dialog/DialogAction.d.ts +0 -12
- package/mobile/lib/ui-kit/Dialog/DialogAction.js.map +0 -1
- package/mobile/lib/ui-kit/Dialog/useDialog.d.ts +0 -4
- package/mobile/lib/ui-kit/Dialog/useDialog.js +0 -6
- package/mobile/lib/ui-kit/Dialog/useDialog.js.map +0 -1
- package/mobile/lib/ui-kit/Dialog/useDialogHandlers.d.ts +0 -6
- package/mobile/lib/ui-kit/Dialog/useDialogHandlers.js +0 -18
- package/mobile/lib/ui-kit/Dialog/useDialogHandlers.js.map +0 -1
- package/mobile/lib/ui-kit/Dialog/useDialogProps.d.ts +0 -7
- package/mobile/lib/ui-kit/Dialog/useDialogProps.js +0 -36
- package/mobile/lib/ui-kit/Dialog/useDialogProps.js.map +0 -1
- package/mobile/lib/ui-kit/LocationDialog/LocationDialogProps.d.ts +0 -14
- package/mobile/lib/ui-kit/LocationDialog/LocationDialogProps.js +0 -2
- package/mobile/lib/ui-kit/LocationDialog/LocationDialogProps.js.map +0 -1
- package/mobile/src/components/CarouselProgramsCard/programCardStyles.ts +0 -2
- package/mobile/src/components/Header/sitemap.wcms-resource.json +0 -144
- package/mobile/src/components/Tabs/CenteredTabs.tsx +0 -12
- package/mobile/src/components/Tabs/LinkTab.tsx +0 -47
- package/mobile/src/components/Tabs/ScrollableTabs.tsx +0 -46
- package/mobile/src/components/Tabs/renderGroupTab.tsx +0 -53
- package/mobile/src/components/Tabs/renderTab.tsx +0 -35
- package/mobile/src/components/Tabs/tabItemClasses.ts +0 -56
- package/mobile/src/hooks/useCachedAsyncData.ts +0 -37
- package/mobile/src/model/Button.ts +0 -16
- package/mobile/src/ui-kit/BaseTile/getTileRightPadding.ts +0 -12
- package/mobile/src/ui-kit/Dialog/Dialog.tsx +0 -46
- package/mobile/src/ui-kit/Dialog/DialogAction.ts +0 -14
- package/mobile/src/ui-kit/Dialog/useDialog.ts +0 -6
- package/mobile/src/ui-kit/Dialog/useDialogHandlers.ts +0 -28
- package/mobile/src/ui-kit/Dialog/useDialogProps.ts +0 -48
- package/mobile/src/ui-kit/LocationDialog/LocationDialogProps.ts +0 -21
- package/src/components/CarouselProgramsCard/programCardStyles.mobile.ts +0 -2
- package/src/components/CarouselProgramsCard/programCardStyles.ts +0 -2
- package/src/components/Header/sitemap.wcms-resource.json +0 -144
- package/src/components/Tabs/CenteredTabs.tsx +0 -12
- package/src/components/Tabs/LinkTab.tsx +0 -47
- package/src/components/Tabs/ScrollableTabs.tsx +0 -46
- package/src/components/Tabs/renderGroupTab.tsx +0 -53
- package/src/components/Tabs/renderTab.tsx +0 -35
- package/src/components/Tabs/tabItemClasses.ts +0 -56
- package/src/hooks/useCachedAsyncData.ts +0 -37
- package/src/model/Button.ts +0 -16
- package/src/ui-kit/BaseTile/getTileRightPadding.ts +0 -12
- package/src/ui-kit/Dialog/Dialog.tsx +0 -46
- package/src/ui-kit/Dialog/DialogAction.ts +0 -14
- package/src/ui-kit/Dialog/useDialog.ts +0 -6
- package/src/ui-kit/Dialog/useDialogHandlers.ts +0 -28
- package/src/ui-kit/Dialog/useDialogProps.ts +0 -48
- package/src/ui-kit/LocationDialog/LocationDialogProps.ts +0 -21
- /package/bundle/{services/sitemap → components/Header}/findActiveSubItem.d.ts +0 -0
- /package/bundle/{services/sitemap → components/Header}/isHrefActive.d.ts +0 -0
- /package/bundle/{services/sitemap → components/Header}/isTopItemActive.d.ts +0 -0
- /package/cosmos-static/icons/{ChevronLeft.svg → ChevronLeftIcon.svg} +0 -0
- /package/dist/{services/sitemap → components/Header}/findActiveSubItem.d.ts +0 -0
- /package/dist/{services/sitemap → components/Header}/findActiveSubItem.js +0 -0
- /package/dist/{services/sitemap → components/Header}/isHrefActive.d.ts +0 -0
- /package/dist/{services/sitemap → components/Header}/isHrefActive.js +0 -0
- /package/dist/{services/sitemap → components/Header}/isTopItemActive.d.ts +0 -0
- /package/dist/{services/sitemap → components/Header}/isTopItemActive.js +0 -0
- /package/dist/ui-kit/{Dialog → DialogManager}/DialogAction.js +0 -0
- /package/lib/{services/sitemap → components/Header}/findActiveSubItem.d.ts +0 -0
- /package/lib/{services/sitemap → components/Header}/findActiveSubItem.js +0 -0
- /package/lib/{services/sitemap → components/Header}/isHrefActive.d.ts +0 -0
- /package/lib/{services/sitemap → components/Header}/isHrefActive.js +0 -0
- /package/lib/{services/sitemap → components/Header}/isTopItemActive.d.ts +0 -0
- /package/lib/{services/sitemap → components/Header}/isTopItemActive.js +0 -0
- /package/lib/ui-kit/{Dialog → DialogManager}/DialogAction.js +0 -0
- /package/mobile/bundle/{services/sitemap → components/Header}/findActiveSubItem.d.ts +0 -0
- /package/mobile/bundle/{services/sitemap → components/Header}/isHrefActive.d.ts +0 -0
- /package/mobile/bundle/{services/sitemap → components/Header}/isTopItemActive.d.ts +0 -0
- /package/mobile/dist/{services/sitemap → components/Header}/findActiveSubItem.d.ts +0 -0
- /package/mobile/dist/{services/sitemap → components/Header}/findActiveSubItem.js +0 -0
- /package/mobile/dist/{services/sitemap → components/Header}/isHrefActive.d.ts +0 -0
- /package/mobile/dist/{services/sitemap → components/Header}/isHrefActive.js +0 -0
- /package/mobile/dist/{services/sitemap → components/Header}/isTopItemActive.d.ts +0 -0
- /package/mobile/dist/{services/sitemap → components/Header}/isTopItemActive.js +0 -0
- /package/mobile/dist/ui-kit/{Dialog → DialogManager}/DialogAction.js +0 -0
- /package/mobile/lib/{services/sitemap → components/Header}/findActiveSubItem.d.ts +0 -0
- /package/mobile/lib/{services/sitemap → components/Header}/findActiveSubItem.js +0 -0
- /package/mobile/lib/{services/sitemap → components/Header}/isHrefActive.d.ts +0 -0
- /package/mobile/lib/{services/sitemap → components/Header}/isHrefActive.js +0 -0
- /package/mobile/lib/{services/sitemap → components/Header}/isTopItemActive.d.ts +0 -0
- /package/mobile/lib/{services/sitemap → components/Header}/isTopItemActive.js +0 -0
- /package/mobile/lib/ui-kit/{Dialog → DialogManager}/DialogAction.js +0 -0
- /package/mobile/src/{services/sitemap → components/Header}/findActiveSubItem.ts +0 -0
- /package/mobile/src/{services/sitemap → components/Header}/isHrefActive.ts +0 -0
- /package/mobile/src/{services/sitemap → components/Header}/isTopItemActive.ts +0 -0
- /package/mobile/src/icons/{ChevronLeft.svg → ChevronLeftIcon.svg} +0 -0
- /package/src/{services/sitemap → components/Header}/findActiveSubItem.ts +0 -0
- /package/src/{services/sitemap → components/Header}/isHrefActive.ts +0 -0
- /package/src/{services/sitemap → components/Header}/isTopItemActive.ts +0 -0
- /package/src/icons/{ChevronLeft.svg → ChevronLeftIcon.svg} +0 -0
package/bundle/bundle.umd.js
CHANGED
|
@@ -386,6 +386,10 @@
|
|
|
386
386
|
onChange: handlersMap.current[fieldName],
|
|
387
387
|
};
|
|
388
388
|
}, [formState, isDirtyForm, dirtyFieldsMap]);
|
|
389
|
+
const update = useCallback((_) => {
|
|
390
|
+
setFormState(_);
|
|
391
|
+
setDirtyFieldsMap(_);
|
|
392
|
+
}, []);
|
|
389
393
|
const reset = useCallback(() => {
|
|
390
394
|
setFormState(initialState);
|
|
391
395
|
setDirtyForm(false);
|
|
@@ -401,6 +405,7 @@
|
|
|
401
405
|
{
|
|
402
406
|
isDirty: isDirtyForm || Object.values(dirtyFieldsMap).some(Boolean),
|
|
403
407
|
field,
|
|
408
|
+
update,
|
|
404
409
|
reset,
|
|
405
410
|
onSubmit: handleSubmit,
|
|
406
411
|
},
|
|
@@ -504,9 +509,10 @@
|
|
|
504
509
|
return data || EMPTY_VALUE$3;
|
|
505
510
|
}
|
|
506
511
|
|
|
507
|
-
const
|
|
508
|
-
open: (
|
|
512
|
+
const useDialogManager = () => ({
|
|
513
|
+
open: (dialog, options = {}) => defaultEventBus.fire('dialog', { type: 'open', dialog, ...options }),
|
|
509
514
|
close: () => defaultEventBus.fire('dialog', { type: 'close' }),
|
|
515
|
+
closeAll: () => defaultEventBus.fire('dialog', { type: 'close', all: true }),
|
|
510
516
|
});
|
|
511
517
|
|
|
512
518
|
const dirname = (path) => path?.split('/').slice(0, -1).join('/');
|
|
@@ -568,7 +574,7 @@
|
|
|
568
574
|
function useLink(params = {}) {
|
|
569
575
|
const { isRemote, basePath } = params;
|
|
570
576
|
const router = useRouter();
|
|
571
|
-
const {
|
|
577
|
+
const { closeAll } = useDialogManager();
|
|
572
578
|
return (props) => ({
|
|
573
579
|
...props,
|
|
574
580
|
href: isRemote && !basePath ? props.href : adjustHref(router)(props.href, basePath),
|
|
@@ -582,7 +588,7 @@
|
|
|
582
588
|
// Default routing
|
|
583
589
|
return;
|
|
584
590
|
}
|
|
585
|
-
|
|
591
|
+
closeAll();
|
|
586
592
|
// Client routing
|
|
587
593
|
ev?.preventDefault();
|
|
588
594
|
router.push(href);
|
|
@@ -1047,10 +1053,8 @@
|
|
|
1047
1053
|
});
|
|
1048
1054
|
|
|
1049
1055
|
const EMPTY_VALUE$1 = {};
|
|
1050
|
-
function useSWRResource(filename, fallback =
|
|
1051
|
-
const { data } = useAsyncData(`/wcms-resources/${filename}.json
|
|
1052
|
-
fallback,
|
|
1053
|
-
});
|
|
1056
|
+
function useSWRResource(filename, fallback = EMPTY_VALUE$1) {
|
|
1057
|
+
const { data } = useAsyncData(filename ? `/wcms-resources/${filename}.json` : null, fetchJSONUnsafe, { fallback });
|
|
1054
1058
|
return data || EMPTY_VALUE$1;
|
|
1055
1059
|
}
|
|
1056
1060
|
|
|
@@ -1386,7 +1390,8 @@
|
|
|
1386
1390
|
return isVisible ? (jsxs("div", { children: [canDec ? (jsx(ArrowButton, { className: `absolute z-40 ${btnClass[0]} ${className}`, onClick: dec, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043B\u0435\u0432\u043E", "data-block-control": "scroll-left", disabled: !canDec })) : null, canInc ? (jsx(ArrowButton, { className: `absolute z-40 rotate-180 ${btnClass[1]} ${className}`, onClick: inc, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E", "data-block-control": "scroll-right", disabled: !canInc })) : null] })) : null;
|
|
1387
1391
|
}
|
|
1388
1392
|
|
|
1389
|
-
const
|
|
1393
|
+
const calculatorValueBlockStyle = 'flex justify-between md:mb-7 md:flex-col';
|
|
1394
|
+
const CalculatorValueBlock = JSX(({ title, value, postfix = '', prefix, className = '' }) => (jsxs("div", { className: style(calculatorValueBlockStyle, className), children: [title ? (jsx(Text, { size: "text-l", font: "font-light", color: "text-secondary-text", children: title })) : null, value ? (jsx("div", { children: jsxs(Text, { size: "text-h3", children: [prefix, " ", toLocalNumberFormat(2)(Math.round(value)), " ", postfix] }) })) : (jsx("div", { children: jsx(Text, { size: "text-h3", children: "-" }) }))] })));
|
|
1390
1395
|
|
|
1391
1396
|
const DEFAULT_MIN_SUM$1 = 10000;
|
|
1392
1397
|
const DEFAULT_MAX_SUM$1 = 5000000;
|
|
@@ -1546,28 +1551,6 @@
|
|
|
1546
1551
|
})] }), jsx("div", { children: monthBonus >= 0 ? (jsx(Rate, { title: "\u0411\u0430\u043B\u043B\u043E\u0432 \u0437\u0430 \u043C\u0435\u0441\u044F\u0446", rate: monthBonus, rateBlockClassName: "tracking-[-14px]", fractionDigits: 0 })) : null }), jsxs("div", { className: "w-96", children: [yearBonus >= 0 ? jsx(CalculatorValueBlock, { title: "\u0411\u0430\u043B\u043B\u043E\u0432 \u0437\u0430 \u0433\u043E\u0434", value: yearBonus }) : null, renderButtonsSection(buttons, { className: 'mt-7', isVertical: true }), renderFootnote(footnote)] })] }));
|
|
1547
1552
|
});
|
|
1548
1553
|
|
|
1549
|
-
const STEP_DAYS = 1;
|
|
1550
|
-
const renderDaysInput = (props) => (jsx(InputRange, { className: "mt-7", items: [`От ${daysText(props.min || 0)}`, `До ${daysText(props.max || 0)}`], step: STEP_DAYS, ...props }));
|
|
1551
|
-
const daysText = (days) => `${days} ${Number(days) % 10 === 1 ? 'дня' : 'дней'}`;
|
|
1552
|
-
|
|
1553
|
-
const orientationStyleMap = {
|
|
1554
|
-
horizontal: 'gap-10',
|
|
1555
|
-
vertical: 'flex-col gap-3',
|
|
1556
|
-
};
|
|
1557
|
-
const RadioButtonGroup = JSX(({ items, checkedItem, onChange: onChangeCheckedItem, orientation = 'horizontal' }) => (jsx("div", { className: `flex ${orientationStyleMap[orientation]}`, children: items?.map(({ id, text }) => (jsx(Checkbox, { isRadio: true, text: text, value: checkedItem === id, onChange: () => onChangeCheckedItem && onChangeCheckedItem(id) }, String(id)))) })));
|
|
1558
|
-
|
|
1559
|
-
const renderBinaryRadioButtonGroup = ({ items, title, orientation = 'horizontal', value, onChange, }) => (jsxs("div", { children: [title ? (jsx("div", { className: "mb-3", children: jsx(Text, { color: "text-secondary-text", font: "font-light", children: title }) })) : null, jsx(RadioButtonGroup, { orientation: orientation, items: items, checkedItem: items[value ? 0 : 1].id, onChange: (_) => onChange && onChange(_ === items[0].id) })] }));
|
|
1560
|
-
|
|
1561
|
-
const renderInterestPayment = (props) => renderBinaryRadioButtonGroup({
|
|
1562
|
-
...props,
|
|
1563
|
-
items: [
|
|
1564
|
-
{ id: 'everyMonth', text: 'Ежемесячно' },
|
|
1565
|
-
{ id: 'atEndTerm', text: 'В конце срока' },
|
|
1566
|
-
],
|
|
1567
|
-
});
|
|
1568
|
-
|
|
1569
|
-
const UnknownRate = JSX(({ title = 'Ставка' }) => (jsxs("div", { children: [jsx(Text, { size: "text-l", font: "font-light", color: "text-secondary-text", children: title }), jsx("div", { className: "mt-2xs pt-2xs pl-lg pb-xs", children: jsx(Icon, { name: "PercentIcon", width: "90", height: "85" }) }), jsx("div", { className: "w-64 mt-m", children: jsxs(Paragraph, { size: "text-xl", font: "font-light", color: "text-primary-text", children: ["\u041F\u0440\u043E\u0446\u0435\u043D\u0442\u043D\u0430\u044F \u0441\u0442\u0430\u0432\u043A\u0430 \u0434\u043B\u044F \u0441\u0440\u043E\u043A\u0430 ", jsx("strong", { children: "1-30 \u0434\u043D\u0435\u0439" }), " \u0443\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u043E\u0431\u0440\u0430\u0449\u0435\u043D\u0438\u0438 \u0432 \u0411\u0430\u043D\u043A"] }) })] })));
|
|
1570
|
-
|
|
1571
1554
|
const defaultDiscriminator = (_) => _;
|
|
1572
1555
|
const maxBy = (discriminator = defaultDiscriminator) => (list) => list.reduceRight((a, b) => (discriminator(a) > discriminator(b) ? a : b));
|
|
1573
1556
|
const max = maxBy();
|
|
@@ -1658,6 +1641,37 @@
|
|
|
1658
1641
|
}
|
|
1659
1642
|
};
|
|
1660
1643
|
|
|
1644
|
+
const STEP_DAYS = 1;
|
|
1645
|
+
const renderDaysInput = (props) => (jsx(InputRange, { items: [`От ${daysText(props.min || 0)}`, `До ${daysText(props.max || 0)}`], step: STEP_DAYS, ...props }));
|
|
1646
|
+
const daysText = (days) => `${days} ${Number(days) % 10 === 1 ? 'дня' : 'дней'}`;
|
|
1647
|
+
|
|
1648
|
+
const orientationStyleMap = {
|
|
1649
|
+
horizontal: 'gap-10',
|
|
1650
|
+
vertical: 'flex-col gap-3',
|
|
1651
|
+
};
|
|
1652
|
+
const RadioButtonGroup = JSX(({ items, checkedItem, className, onChange: onChangeCheckedItem, orientation = 'horizontal', }) => (jsx("div", { className: style(`flex ${orientationStyleMap[orientation]}`, className), children: items?.map(({ id, text }) => (jsx(Checkbox, { isRadio: true, text: text, value: checkedItem === id, onChange: () => onChangeCheckedItem && onChangeCheckedItem(id) }, String(id)))) })));
|
|
1653
|
+
|
|
1654
|
+
const renderBinaryRadioButtonGroup = ({ items, title, orientation = 'horizontal', value, radioGroupClassName, onChange, }) => (jsxs("div", { children: [title ? (jsx("div", { className: "mb-3", children: jsx(Text, { color: "text-secondary-text", font: "font-light", children: title }) })) : null, jsx(RadioButtonGroup, { orientation: orientation, items: items, checkedItem: items[value ? 0 : 1].id, className: style('flex-col sm:flex-row', radioGroupClassName), onChange: (_) => onChange && onChange(_ === items[0].id) })] }));
|
|
1655
|
+
|
|
1656
|
+
const renderInterestPayment = (props) => renderBinaryRadioButtonGroup({
|
|
1657
|
+
...props,
|
|
1658
|
+
items: [
|
|
1659
|
+
{ id: 'everyMonth', text: 'Ежемесячно' },
|
|
1660
|
+
{ id: 'atEndTerm', text: 'В конце срока' },
|
|
1661
|
+
],
|
|
1662
|
+
});
|
|
1663
|
+
|
|
1664
|
+
const UnknownRate = JSX(({ title = 'Ставка' }) => (jsxs("div", { children: [jsx(Text, { size: "text-l", font: "font-light", color: "text-secondary-text", children: title }), jsx("div", { className: "mt-2xs pt-2xs pl-lg pb-xs", children: jsx(Icon, { name: "PercentIcon", width: "90", height: "85" }) }), jsx("div", { className: "w-64 mt-m", children: jsxs(Paragraph, { size: "text-xl", font: "font-light", color: "text-primary-text", children: ["\u041F\u0440\u043E\u0446\u0435\u043D\u0442\u043D\u0430\u044F \u0441\u0442\u0430\u0432\u043A\u0430 \u0434\u043B\u044F \u0441\u0440\u043E\u043A\u0430 ", jsx("strong", { children: "1-30 \u0434\u043D\u0435\u0439" }), " \u0443\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u043E\u0431\u0440\u0430\u0449\u0435\u043D\u0438\u0438 \u0432 \u0411\u0430\u043D\u043A"] }) })] })));
|
|
1665
|
+
|
|
1666
|
+
const renderDesktopRate = ({ rate, depositeName, isShowDepositeName }) => (jsx(Rate, { rate: rate, depositeName: depositeName, isShowDepositeName: isShowDepositeName, rateBlockClassName: "tracking-[-25px]", unit: "%" }));
|
|
1667
|
+
const renderMobileRate = ({ rate }) => (jsx(CalculatorValueBlock, { title: "\u0421\u0442\u0430\u0432\u043A\u0430", value: rate, postfix: "%" }));
|
|
1668
|
+
const renderRate = (props) => {
|
|
1669
|
+
if (props.isShowUnknownRate) {
|
|
1670
|
+
return jsx(UnknownRate, {});
|
|
1671
|
+
}
|
|
1672
|
+
return (jsxs("div", { children: [jsx("div", { className: "hidden md:block", children: renderDesktopRate(props) }), jsx("div", { className: "md:hidden", children: renderMobileRate(props) })] }));
|
|
1673
|
+
};
|
|
1674
|
+
|
|
1661
1675
|
const BusinessDepositCalculatorForm = JSX(({ className = '', sourceBookDir, buttons, footnote, bottomFootnote, isShowDepositeName }) => {
|
|
1662
1676
|
const [userInputParams, { field }] = useForm({
|
|
1663
1677
|
moneyValue: BUSINESS_DEFAULT_SUM,
|
|
@@ -1668,8 +1682,8 @@
|
|
|
1668
1682
|
isMonthlyInterestPayment: false,
|
|
1669
1683
|
});
|
|
1670
1684
|
const calculatorParams = useBusinessDepositCalculatorParams(userInputParams, sourceBookDir);
|
|
1671
|
-
const { income, finalSum, rate,
|
|
1672
|
-
return (jsxs("section", { className: className, children: [jsxs("div", { className: "flex justify-between", children: [jsxs("div", { className: "w-2/5", children: [renderWantedSumInput({
|
|
1685
|
+
const { income, finalSum, rate, isShowUnknownRate, depositeName } = calculatorParams;
|
|
1686
|
+
return (jsxs("section", { className: className, children: [jsxs("div", { className: "flex flex-col justify-between sm:flex-row", children: [jsxs("div", { className: "flex flex-col gap-y-m sm:w-2/5 sm:gap-y-lg", children: [renderWantedSumInput({
|
|
1673
1687
|
title: 'Сумма, ₽',
|
|
1674
1688
|
min: calculatorParams.minSum,
|
|
1675
1689
|
max: calculatorParams.maxSum,
|
|
@@ -1681,26 +1695,25 @@
|
|
|
1681
1695
|
max: calculatorParams.maxDays,
|
|
1682
1696
|
...field('daysValue'),
|
|
1683
1697
|
value: calculatorParams.daysValue,
|
|
1684
|
-
}), jsxs("div", { className: "
|
|
1698
|
+
}), jsxs("div", { className: "flex flex-col gap-xl justify-between sm:flex-row sm:gap-0", children: [renderBusinessDepositParamsForm(calculatorParams, field), renderInterestPayment({
|
|
1685
1699
|
title: 'Выплата процентов',
|
|
1686
1700
|
orientation: 'vertical',
|
|
1687
1701
|
...field('isMonthlyInterestPayment'),
|
|
1688
|
-
|
|
1702
|
+
radioGroupClassName: 'sm:flex-col',
|
|
1703
|
+
})] })] }), jsx("div", { className: "border-b border-main-divider my-xl sm:hidden" }), renderRate({
|
|
1704
|
+
rate,
|
|
1705
|
+
depositeName,
|
|
1706
|
+
isShowDepositeName,
|
|
1707
|
+
isShowUnknownRate,
|
|
1708
|
+
}), jsxs("div", { className: "flex flex-col gap-y-xl mt-3xl sm:gap-0 sm:w-96 sm:mt-0", children: [renderDepositResults(finalSum, income), renderButtonsSection(buttons, { isVertical: true }), jsx("div", { className: "sm:mt-2xl", children: renderFootnote(footnote) })] })] }), jsx("div", { className: "mt-lg", children: renderFootnote(bottomFootnote) })] }));
|
|
1689
1709
|
});
|
|
1690
|
-
const renderBusinessDepositParamsForm = (calculatorParams, field) => (jsxs("div", { children: [jsx(Checkbox, { text: "\u041F\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435", disabled: calculatorParams.isDisabledOperatingDeposit, ...field('isReplenished'), value: calculatorParams.isReplenished }), jsx(Checkbox, {
|
|
1710
|
+
const renderBusinessDepositParamsForm = (calculatorParams, field) => (jsxs("div", { className: "flex flex-col gap-y-xl sm:gap-y-s", children: [jsx(Checkbox, { text: "\u041F\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435", disabled: calculatorParams.isDisabledOperatingDeposit, ...field('isReplenished'), value: calculatorParams.isReplenished }), jsx(Checkbox, { disabled: calculatorParams.isDisabledOperatingDeposit, text: "\u0427\u0430\u0441\u0442\u0438\u0447\u043D\u043E\u0435 \u0441\u043D\u044F\u0442\u0438\u0435", ...field('isPartialWithdrawal'), value: calculatorParams.isPartialWithdrawal }), jsx(Checkbox, { text: "\u0418\u041F / \u043C\u0430\u043B\u043E\u0435 \u043F\u0440\u0435\u0434\u043F\u0440\u0438\u044F\u0442\u0438\u0435", ...field('isSmallBusiness'), value: calculatorParams.isSmallBusiness })] }));
|
|
1711
|
+
const renderDepositResults = (finalSum, income) => (jsxs("div", { className: "flex flex-col gap-2xl sm:gap-0", children: [jsx(CalculatorValueBlock, { title: "\u0414\u043E\u0445\u043E\u0434 \u0432 \u043A\u043E\u043D\u0446\u0435 \u0441\u0440\u043E\u043A\u0430", value: income, postfix: "\u20BD", prefix: "+" }), jsx(CalculatorValueBlock, { title: "\u0421\u0443\u043C\u043C\u0430 \u0432 \u043A\u043E\u043D\u0446\u0435 \u0441\u0440\u043E\u043A\u0430", value: finalSum, postfix: "\u20BD" })] }));
|
|
1691
1712
|
|
|
1692
1713
|
const STEP_MONTHS = 1;
|
|
1693
|
-
const renderMonthsInput = ({ min = 0, max = 0, availableMonths, ...rest }) => (jsx(InputRange, {
|
|
1714
|
+
const renderMonthsInput = ({ min = 0, max = 0, availableMonths, ...rest }) => (jsx(InputRange, { items: [`От ${monthText(min)}`, `До ${monthText(max)}`], step: STEP_MONTHS, ...(availableMonths?.length ? { list: availableMonths } : { min, max }), ...rest }));
|
|
1694
1715
|
const monthText = (month) => `${month} ${Number(month) % 10 === 1 ? 'месяца' : 'месяцев'}`;
|
|
1695
1716
|
|
|
1696
|
-
const renderPaymentType = (props) => renderBinaryRadioButtonGroup({
|
|
1697
|
-
...props,
|
|
1698
|
-
items: [
|
|
1699
|
-
{ id: 'annuity', text: 'Аннуитетный' },
|
|
1700
|
-
{ id: 'differential', text: 'Дифференцированный' },
|
|
1701
|
-
],
|
|
1702
|
-
});
|
|
1703
|
-
|
|
1704
1717
|
const checkCreditSourceBookRowCommonParams = (props) => checkRowParam$1({
|
|
1705
1718
|
...props,
|
|
1706
1719
|
fieldKey: 'isSalaryClient',
|
|
@@ -1799,7 +1812,16 @@
|
|
|
1799
1812
|
}), [userInputParams, data]);
|
|
1800
1813
|
};
|
|
1801
1814
|
|
|
1802
|
-
const
|
|
1815
|
+
const renderPaymentType = (props) => renderBinaryRadioButtonGroup({
|
|
1816
|
+
...props,
|
|
1817
|
+
radioGroupClassName: 'sm:flex-col',
|
|
1818
|
+
items: [
|
|
1819
|
+
{ id: 'annuity', text: 'Аннуитетный' },
|
|
1820
|
+
{ id: 'differential', text: 'Дифференцированный' },
|
|
1821
|
+
],
|
|
1822
|
+
});
|
|
1823
|
+
|
|
1824
|
+
const CreditCalculatorForm = JSX(({ className, sourceBookDir, buttons, footnote, paramsViewSettings, isMobile }) => {
|
|
1803
1825
|
const [userInputParams, { field }] = useForm({
|
|
1804
1826
|
isAnnuity: true,
|
|
1805
1827
|
isInsurance: true,
|
|
@@ -1810,7 +1832,12 @@
|
|
|
1810
1832
|
monthsValue: DEFAULT_MONTHS,
|
|
1811
1833
|
});
|
|
1812
1834
|
const calculatorParams = useCreditCalculatorParams(userInputParams, sourceBookDir, paramsViewSettings);
|
|
1813
|
-
|
|
1835
|
+
const paymentTypeElement = renderPaymentType({
|
|
1836
|
+
title: isMobile ? 'Тип платежа' : '',
|
|
1837
|
+
orientation: 'vertical',
|
|
1838
|
+
...field('isAnnuity'),
|
|
1839
|
+
});
|
|
1840
|
+
return (jsxs("section", { className: style('flex flex-col justify-between sm:flex-row', className), children: [jsxs("div", { className: "flex flex-col gap-y-m sm:w-2/5 sm:gap-y-lg", children: [renderWantedSumInput({
|
|
1814
1841
|
title: 'Сумма кредита, ₽',
|
|
1815
1842
|
step: 500,
|
|
1816
1843
|
min: calculatorParams.minSum,
|
|
@@ -1823,17 +1850,11 @@
|
|
|
1823
1850
|
max: calculatorParams.maxMonths,
|
|
1824
1851
|
...field('monthsValue'),
|
|
1825
1852
|
value: calculatorParams.monthsValue,
|
|
1826
|
-
}),
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
const renderRegistrationType = (props) => renderBinaryRadioButtonGroup({
|
|
1831
|
-
...props,
|
|
1832
|
-
items: [
|
|
1833
|
-
{ id: 'remote', text: 'Дистанционно' },
|
|
1834
|
-
{ id: 'office', text: 'Офис Банка' },
|
|
1835
|
-
],
|
|
1853
|
+
}), renderCreditParamsForm$1({ ...calculatorParams, ...paramsViewSettings }, field), jsx("div", { className: "mt-s sm:hidden", children: paymentTypeElement })] }), jsx("div", { className: "border-b border-main-divider mt-xl mb-3xl sm:hidden" }), renderRate({
|
|
1854
|
+
rate: calculatorParams.rate,
|
|
1855
|
+
}), jsxs("div", { className: "mt-6xl flex flex-col gap-lg sm:w-96 sm:mt-0 sm:gap-0", children: [jsx(CalculatorValueBlock, { title: "\u0415\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u044B\u0439 \u043F\u043B\u0430\u0442\u0435\u0436", value: calculatorParams.monthlyPayment, postfix: "\u20BD" }), jsx("div", { className: "hidden sm:block", children: paymentTypeElement }), renderButtonsSection(buttons, { className: 'mt-2xl', isVertical: true }), renderFootnote(footnote)] })] }));
|
|
1836
1856
|
});
|
|
1857
|
+
const renderCreditParamsForm$1 = (params, field) => (jsxs("div", { className: "gap-xl flex flex-col sm:gap-s", children: [params.isShowSalaryClient ? (jsx(Checkbox, { text: `Получаю зарплату на счёт\nв Россельхозбанке`, ...field('isSalaryClient'), value: params.isSalaryClient, className: "whitespace-pre-line sm:whitespace-normal" })) : null, params.isShowStateEmployee ? (jsx(Checkbox, { text: "\u0420\u0430\u0431\u043E\u0442\u0430\u044E \u0432 \u0431\u044E\u0434\u0436\u0435\u0442\u043D\u043E\u0439 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", ...field('isStateEmployee'), value: params.isStateEmployee })) : null, params.isShowPensionClient ? (jsx(Checkbox, { text: "\u041F\u043E\u043B\u0443\u0447\u0430\u044E \u043F\u0435\u043D\u0441\u0438\u044E \u043D\u0430 \u043A\u0430\u0440\u0442\u0443 \u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A\u0430", ...field('isPensionClient'), value: params.isPensionClient })) : null, params.isShowInsurance ? (jsx(Checkbox, { text: "\u041A\u043E\u043C\u043F\u043B\u0435\u043A\u0441\u043D\u0430\u044F \u0441\u0442\u0440\u0430\u0445\u043E\u0432\u0430\u044F \u0437\u0430\u0449\u0438\u0442\u0430", ...field('isInsurance'), value: params.isInsurance })) : null] }));
|
|
1837
1858
|
|
|
1838
1859
|
const arrayByRange = (start, stop, step = 1) => Array.from({ length: Math.abs(stop - start) / step + 1 }, (value, index) => stop >= start ? start + index * step : start - index * step);
|
|
1839
1860
|
|
|
@@ -1889,6 +1910,14 @@
|
|
|
1889
1910
|
const checkRowByParam = ({ row, userInputParams, paramKey, isExclude }) => isExclude || userInputParams[paramKey] === row[paramKey];
|
|
1890
1911
|
const getMiddleMonth = (minMonths, maxMonths) => minMonths + Math.round((maxMonths - minMonths) / 2);
|
|
1891
1912
|
|
|
1913
|
+
const renderRegistrationType = (props) => renderBinaryRadioButtonGroup({
|
|
1914
|
+
...props,
|
|
1915
|
+
items: [
|
|
1916
|
+
{ id: 'remote', text: 'Дистанционно' },
|
|
1917
|
+
{ id: 'office', text: 'Офис Банка' },
|
|
1918
|
+
],
|
|
1919
|
+
});
|
|
1920
|
+
|
|
1892
1921
|
const DepositCalculatorForm = JSX(({ className, sourceBookDir, buttons, footnote, paramsViewSettings }) => {
|
|
1893
1922
|
const [userInputParams, { field }] = useForm({
|
|
1894
1923
|
moneyValue: DEPOSIT_DEFAULT_SUM,
|
|
@@ -1897,12 +1926,12 @@
|
|
|
1897
1926
|
isRemoteRegistration: false,
|
|
1898
1927
|
});
|
|
1899
1928
|
const calculatorParams = useDepositCalculatorParams(userInputParams, sourceBookDir, paramsViewSettings);
|
|
1900
|
-
const { defaultMonth, income, finalSum
|
|
1929
|
+
const { defaultMonth, rate, income, finalSum } = calculatorParams;
|
|
1901
1930
|
const { onChange: setMonthsValue } = field('monthsValue');
|
|
1902
1931
|
useEffect(() => {
|
|
1903
1932
|
setMonthsValue && setMonthsValue(defaultMonth);
|
|
1904
1933
|
}, [defaultMonth]);
|
|
1905
|
-
return (jsxs("section", { className: style('flex justify-between', className), children: [jsxs("div", { className: "w-2/5", children: [renderWantedSumInput({
|
|
1934
|
+
return (jsxs("section", { className: style('flex flex-col justify-between sm:flex-row', className), children: [jsxs("div", { className: "flex flex-col gap-lg sm:w-2/5", children: [renderWantedSumInput({
|
|
1906
1935
|
title: 'Сумма, ₽',
|
|
1907
1936
|
min: calculatorParams.minSum,
|
|
1908
1937
|
max: calculatorParams.maxSum,
|
|
@@ -1915,7 +1944,9 @@
|
|
|
1915
1944
|
availableMonths: calculatorParams.availableMonths,
|
|
1916
1945
|
...field('monthsValue'),
|
|
1917
1946
|
value: calculatorParams.monthsValue,
|
|
1918
|
-
}), jsx("div", { className: "
|
|
1947
|
+
}), jsx("div", { className: "flex flex-col gap-y-2xl", children: renderDepositParamsForm({ ...calculatorParams, ...paramsViewSettings }, field) })] }), jsx("div", { className: "border-b border-main-divider mt-lg mb-2xl md:hidden" }), renderRate({
|
|
1948
|
+
rate,
|
|
1949
|
+
}), jsxs("div", { className: "mt-2xl flex flex-col gap-y-2xl sm:w-96 sm:gap-y-0 sm:mt-0", children: [jsx(CalculatorValueBlock, { title: "\u0414\u043E\u0445\u043E\u0434 \u0432 \u043A\u043E\u043D\u0446\u0435 \u0441\u0440\u043E\u043A\u0430", value: income, postfix: "\u20BD", prefix: "+" }), jsx(CalculatorValueBlock, { title: "\u0421\u0443\u043C\u043C\u0430 \u0432 \u043A\u043E\u043D\u0446\u0435 \u0441\u0440\u043E\u043A\u0430", value: finalSum, postfix: "\u20BD" }), renderButtonsSection(buttons, { isVertical: true }), renderFootnote(footnote)] })] }));
|
|
1919
1950
|
});
|
|
1920
1951
|
const renderDepositParamsForm = (params, field) => (jsxs("div", { className: "flex flex-col gap-y-2xl", children: [params.isShowMonthlyInterestPayment
|
|
1921
1952
|
? renderInterestPayment({
|
|
@@ -2046,6 +2077,7 @@
|
|
|
2046
2077
|
max: calculatorParams.maxMonths,
|
|
2047
2078
|
...field('monthsValue'),
|
|
2048
2079
|
value: calculatorParams.monthsValue,
|
|
2080
|
+
className: 'mt-2xl',
|
|
2049
2081
|
}), jsx("div", { className: style('mt-7', calculatorParams.isExtraMoney ? 'mb-3' : ''), children: renderCreditParamsForm({ ...calculatorParams, ...paramsViewSettings }, field) }), calculatorParams.isExtraMoney
|
|
2050
2082
|
? renderWantedSumInput({
|
|
2051
2083
|
title: 'Дополнительная сумма, ₽ ',
|
|
@@ -2228,7 +2260,7 @@
|
|
|
2228
2260
|
return (jsx("div", { className: `inline-block snap-always box-border ${className}`, style: style, "aria-current": Boolean(idx === activeIndex), ref: ref, children: children }));
|
|
2229
2261
|
});
|
|
2230
2262
|
|
|
2231
|
-
const childStyleMap = ['min-w-full', 'min-w-
|
|
2263
|
+
const childStyleMap = ['min-w-full', '@lg:min-w-[50%]', '@lg:min-w-[33.3%]', '@lg:min-w-[25%]'];
|
|
2232
2264
|
const SwipeListContainer = JSX(({ className = '', containerRef, activeIndex, visibleItemCount = 0, gap = 0, padding = 0, listType = 'horizontal-list', snapAlign = 'snap-center', minHeight, children, onVisibleItemsChange, onVisibleIndicesChange, }) => {
|
|
2233
2265
|
const observerOptions = {
|
|
2234
2266
|
sensitivity: 1,
|
|
@@ -2435,8 +2467,8 @@
|
|
|
2435
2467
|
black: 'bg-black',
|
|
2436
2468
|
white: 'bg-white',
|
|
2437
2469
|
};
|
|
2438
|
-
const CarouselCatalogCard = JSX(({ className = '', title, description, image, price, button, colors, ...rest }) => (jsxs(BlockWrapper, { className: style('flex flex-col justify-left
|
|
2439
|
-
const renderColorOption = (color, i) => (jsx("div", { role: "figure", className: `w-6 h-6 ml-
|
|
2470
|
+
const CarouselCatalogCard = JSX(({ className = '', title, description, image, price, button, colors, ...rest }) => (jsxs(BlockWrapper, { className: style('flex flex-col justify-left', className), defaultPadding: "p-2xl", ...rest, children: [image?.src ? jsx(Img, { className: "flex justify-center mb-xl", image: image }) : null, jsx(Headline, { title: title, description: description, headlineVersion: "XS", isPadding: false, align: "text-left", className: "mb-m" }), colors?.length ? (jsxs("div", { className: "flex text-secondary-text mb-m", children: [jsx("div", { className: "mr-xs", children: jsx(Text, { size: "text-s", align: "text-left", font: "font-light", children: "\u0426\u0432\u0435\u0442\u0430:" }) }), colors.map(renderColorOption)] })) : null, price ? (jsxs(Text, { size: "text-h3", align: "text-left", children: [price, "\u00A0\u20BD"] })) : null, renderButtonsSection([button], { buttonClassName: 'w-full mt-lg' })] })));
|
|
2471
|
+
const renderColorOption = (color, i) => (jsx("div", { role: "figure", className: `w-6 h-6 ml-s border border-solid border-main-divider rounded-full ${cardStyleMap[color]}` }, String(i)));
|
|
2440
2472
|
|
|
2441
2473
|
const LinkWrapper = JSX(({ className = '', href, target, isRemote = false, children }) => {
|
|
2442
2474
|
const link = useLink({ isRemote });
|
|
@@ -2454,7 +2486,7 @@
|
|
|
2454
2486
|
center: 'self-center',
|
|
2455
2487
|
end: 'self-end',
|
|
2456
2488
|
};
|
|
2457
|
-
const BaseTile = JSX(({ className, defaultPadding, padding, title = '', insetTitle = '', buttons, leftImage, rightImage, imageAlign, backImage, children, }) => (jsxs("div", { className: style('relative flex flex-col gap-3xl font-sans overflow-hidden', padding || defaultPadding, className), children: [title ? jsx("div", { className: "relative", children: title }) : null, jsxs("div", { className: "grow relative flex flex-wrap @xl:flex-nowrap justify-between items-stretch gap-3xl", children: [renderImageContainer(leftImage, { imageAlign }), jsxs("div", { className: style('flex flex-col gap-3xl max-w-[600px] xl:max-w-[728px]', leftImage ? '' : 'grow'), children: [insetTitle, jsx("div", { className: "grow", children: children }), backImage ? (jsx("div", { className: "mx-auto sm:absolute sm:-z-10 sm:-bottom-4 sm:-right-4", children: backImage })) : null, buttons] }), renderImageContainer(rightImage, { className: '-order-1 @xl:order-1', imageAlign })] })] })));
|
|
2489
|
+
const BaseTile = JSX(({ className, defaultPadding, padding, title = '', insetTitle = '', buttons, leftImage, rightImage, imageAlign, backImage, children, }) => (jsxs("div", { className: style('relative flex flex-col gap-3xl font-sans overflow-hidden', padding || defaultPadding, className), children: [title ? jsx("div", { className: "relative", children: title }) : null, jsxs("div", { className: "grow relative flex flex-wrap @xl:flex-nowrap justify-around @xl:justify-between items-stretch gap-3xl", children: [renderImageContainer(leftImage, { imageAlign }), jsxs("div", { className: style('flex flex-col gap-3xl max-w-[600px] xl:max-w-[728px]', leftImage ? '' : 'grow'), children: [insetTitle, jsx("div", { className: "grow", children: children }), backImage ? (jsx("div", { className: "mx-auto sm:absolute sm:-z-10 sm:-bottom-4 sm:-right-4", children: backImage })) : null, buttons] }), renderImageContainer(rightImage, { className: '-order-1 @xl:order-1', imageAlign })] })] })));
|
|
2458
2490
|
const renderImageContainer = (image, { className, imageAlign }) => image ? (jsx("div", { className: style('flex-shrink-0', imageAlign && imageAlignmentMap[imageAlign], className), children: image })) : null;
|
|
2459
2491
|
|
|
2460
2492
|
const getItemListFontSize = (colValue) => (colValue === 1 ? 'text-h6' : 'text-l');
|
|
@@ -2520,11 +2552,60 @@
|
|
|
2520
2552
|
const renderAdditionalDescription = (additionalDescription) => additionalDescription ? (jsx(Text, { size: "text-m", font: "font-light", color: "text-secondary-text group-data-secondary:text-white/80", children: additionalDescription })) : null;
|
|
2521
2553
|
const renderItems = (items, isDotted, version = 'primary') => items?.length ? (jsx(List, { className: style('text-s', version === 'primary' ? '!text-secondary-text' : ''), items: items.filter((item) => item?.text).map((item) => item.text), isDotted: isDotted, listItemSize: "S" })) : null;
|
|
2522
2554
|
|
|
2523
|
-
const
|
|
2524
|
-
|
|
2555
|
+
const sum = (list = []) => list.reduce((a, b) => a + b, 0);
|
|
2556
|
+
|
|
2557
|
+
const avg = (items = []) => (items?.length ? sum(items) / items.length : 0);
|
|
2558
|
+
|
|
2559
|
+
const deviation = (items) => items?.length ? Math.sqrt(Math.abs(avg(items.map((_) => _ ** 2)) - avg(items) ** 2)) : 0;
|
|
2560
|
+
|
|
2561
|
+
const renderBenefitIcon = (icon, benefitsVersion = 'normal') => icon ? (jsx("div", { className: style('w-12 h-12 min-w-12 box-border flex items-center justify-center rounded-icon', benefitsVersion === 'normal'
|
|
2562
|
+
? 'bg-secondary-light text-primary-main'
|
|
2563
|
+
: 'bg-primary-main text-black group-data-secondary:bg-white/30 group-data-secondary:text-black'), children: jsx(Img, { className: "w-6 h-6", image: { ...icon, iconVersion: icon.iconVersion || benefitsVersion } }) })) : null;
|
|
2564
|
+
|
|
2565
|
+
const RichText = JSX((props) => {
|
|
2566
|
+
const { __html = '', richVersion = '' } = props;
|
|
2567
|
+
return (jsx("div", { className: style(richVersion, 'md-container'), dangerouslySetInnerHTML: { __html } }));
|
|
2568
|
+
});
|
|
2569
|
+
|
|
2570
|
+
const renderBenefitDescription = (description, i) => description ? (jsx(Paragraph, { font: "font-light", size: "text-m", color: "text-secondary-text group-data-secondary:text-white", children: description }, `description-${i}`)) : null;
|
|
2525
2571
|
|
|
2526
|
-
const
|
|
2527
|
-
|
|
2572
|
+
const renderBenefitLabel = (label, i) => label ? (jsx(Text, { color: "text-primary-text group-data-secondary:text-white", size: "text-h6", children: label }, `label-${i}`)) : null;
|
|
2573
|
+
|
|
2574
|
+
const renderBenefitText = (_, i) => _.type === 'rte' && '__html' in _ && _.__html ? (jsx(RichText, { ..._ }, `rte-${i}`)) : ([
|
|
2575
|
+
'label' in _ ? renderBenefitLabel(_.label, i) : null,
|
|
2576
|
+
'description' in _ ? renderBenefitDescription(_.description, i) : null,
|
|
2577
|
+
]);
|
|
2578
|
+
|
|
2579
|
+
const BenefitItem = JSX(({ className, benefitsVersion, ..._ }) => (jsxs("div", { className: style('flex gap-m', 'description' in _ && _.description ? 'items-start' : 'items-center', className), children: ['icon' in _ ? renderBenefitIcon(_.icon, benefitsVersion) : null, jsx("div", { children: renderBenefitText(_) })] })));
|
|
2580
|
+
|
|
2581
|
+
const MAX_BENEFITS_LEN_DEVIATION = 16;
|
|
2582
|
+
const benefitLength = (_) => _.type === 'rte'
|
|
2583
|
+
? _?.__html?.length || 0
|
|
2584
|
+
: Math.max(_?.label?.length || 0, _?.description?.length || 0);
|
|
2585
|
+
const isDistortedBenefits = (benefits) => deviation(benefits.map(benefitLength)) > MAX_BENEFITS_LEN_DEVIATION;
|
|
2586
|
+
const hasIcon = (_) => _ && 'icon' in _ && _.icon && (_.icon.icon || _.icon.src);
|
|
2587
|
+
const isTextualBenefits = (benefits) => !benefits.some(hasIcon);
|
|
2588
|
+
const DefaultBenefitsList = JSX(({ className, benefitsVersion = 'normal', benefits }) => benefits?.length ? (jsx("div", { className: style('flex gap-x-m gap-y-s', isDistortedBenefits(benefits) || isTextualBenefits(benefits) ? 'flex-col' : 'flex-wrap', className), children: benefits.map((_, i) => (jsx(BenefitItem, { benefitsVersion: benefitsVersion, ..._ }, String(i)))) })) : null);
|
|
2589
|
+
|
|
2590
|
+
const TabularBenefitsList = JSX(({ className, benefits }) => benefits?.length ? (jsx("div", { className: style('grid grid-cols-[max-content_1fr] auto-rows-auto items-baseline gap-x-m gap-y-xs', className), children: benefits.flatMap(renderBenefitText) })) : null);
|
|
2591
|
+
|
|
2592
|
+
const BenefitsList = JSX(({ isTabularBenefits, ...rest }) => isTabularBenefits ? jsx(TabularBenefitsList, { ...rest }) : jsx(DefaultBenefitsList, { ...rest }));
|
|
2593
|
+
|
|
2594
|
+
const Tags = JSX(({ className, tags }) => tags?.length ? (jsx("div", { className: style('flex flex-wrap gap-xs', className), role: "list", children: tags.map(renderTag) })) : null);
|
|
2595
|
+
const renderTag = (tag, key) => (jsx("div", { className: "py-2 px-2.5 border-solid border rounded-md border-gray", role: "listitem", children: jsx(Text, { size: "text-m", font: "font-light", children: tag }) }, String(key)));
|
|
2596
|
+
|
|
2597
|
+
const BaseProductTile = JSX(({ className, padding, defaultPadding, title, description, headlineVersion = 'L', align = 'text-left', isInsetTitle = true, benefitsVersion, isTabularBenefits, benefits, __html, items, isDotted = true, listItemSize, tags, buttons, image, imageOptions: { imageAlign = 'end', directionRight = true, isBackground } = {}, children, }) => {
|
|
2598
|
+
const img = image?.src ? jsx(Img, { image: image }) : null;
|
|
2599
|
+
const headline = (jsx(Headline, { title: title, description: description, headlineVersion: headlineVersion, align: align, isPadding: false }));
|
|
2600
|
+
return (jsx(BaseTile, { className: className, padding: padding, defaultPadding: defaultPadding, ...(isInsetTitle ? { insetTitle: headline } : { title: headline }), ...(isBackground ? { backImage: img } : leftOrRightImage(img, directionRight)), imageAlign: imageAlign, buttons: renderButtonsSection(buttons), children: jsxs("div", { className: "flex flex-col gap-xl", children: [jsx(BenefitsList, { benefitsVersion: benefitsVersion, isTabularBenefits: isTabularBenefits, benefits: benefits }), __html ? jsx(RichText, { __html: __html }) : null, items?.length ? (jsx(List, { items: items, isDotted: isDotted, listItemSize: listItemSize })) : null, children, tags?.length ? jsx(Tags, { tags: tags }) : null] }) }));
|
|
2601
|
+
});
|
|
2602
|
+
const leftOrRightImage = (img, directionRight) => directionRight ? { rightImage: img } : { leftImage: img };
|
|
2603
|
+
|
|
2604
|
+
const CarouselProgramsCard = JSX(({ className, title, icon, list, href, target, ...rest }) => (jsx(BlockWrapper, { className: className, defaultPadding: "p-3xl", ...rest, children: jsx(LinkWrapper, { className: "flex items-center h-full", href: href, target: target, children: jsx(BaseProductTile, { title: title, headlineVersion: "XS", image: icon, imageOptions: { directionRight: false, imageAlign: 'center' }, benefits: list?.map((_) => ({
|
|
2605
|
+
type: 'default',
|
|
2606
|
+
label: _.title,
|
|
2607
|
+
description: _.description,
|
|
2608
|
+
})) }) }) })));
|
|
2528
2609
|
|
|
2529
2610
|
const buttonSizeStyles = {
|
|
2530
2611
|
default: 'w-14 h-14',
|
|
@@ -2584,11 +2665,6 @@
|
|
|
2584
2665
|
return (jsx(BlockWrapper, { className: style('relative min-h-[218px] group-data-gray:bg-main-divider/50', className), defaultPadding: "p-0", ...rest, children: jsx(LinkWrapper, { href: href, target: target, className: "h-full", children: jsx(BaseTile, { className: "h-full", defaultPadding: "p-m", padding: padding, title: title ? (jsx(Headline, { title: title, description: description, headlineVersion: "S", isPadding: false, align: align })) : null, backImage: icon?.icon || icon?.src ? jsx(Img, { image: icon }) : null, buttons: socialMedia.length ? jsx(SocialMedia, { media: socialMedia }) : null, children: items.length ? jsx(List, { items: items, listItemSize: "S" }) : null }) }) }));
|
|
2585
2666
|
});
|
|
2586
2667
|
|
|
2587
|
-
const RichText = JSX((props) => {
|
|
2588
|
-
const { __html = '', richVersion = '' } = props;
|
|
2589
|
-
return (jsx("div", { className: style(richVersion, 'md-container'), dangerouslySetInnerHTML: { __html } }));
|
|
2590
|
-
});
|
|
2591
|
-
|
|
2592
2668
|
const CarouselRichTextCard = JSX(({ className = '', __html, richVersion = 'striped', ...rest }) => (jsx(BlockWrapper, { className: className, ...rest, children: jsx(RichText, { __html: __html, richVersion: richVersion }) })));
|
|
2593
2669
|
|
|
2594
2670
|
const Foldable = JSX(({ className = '', isFoldButtonOnTop = false, unfoldedByDefault = false, renderFoldableSection, renderFoldButton, }) => {
|
|
@@ -2759,8 +2835,8 @@
|
|
|
2759
2835
|
const [visibleBlocks, hiddenBlocks] = topItemsCount > 0
|
|
2760
2836
|
? [blocksToRender.slice(0, topItemsCount), blocksToRender.slice(topItemsCount)]
|
|
2761
2837
|
: [blocksToRender, []];
|
|
2762
|
-
return (jsxs("div", { children: [jsx("div", { className: style(blocksToRender.length ? 'hidden' : 'block'), children: notFound ? renderNotFound(notFound) : null }), jsxs("div", { className: style(blocksToRender.length ? '' : 'hidden'), children: [jsx("div", { className: style('mb-
|
|
2763
|
-
return (jsx(FoldableSection, { className: style(resultsGridStyle, isUnfolded ? 'mb-
|
|
2838
|
+
return (jsxs("div", { children: [jsx("div", { className: style(blocksToRender.length ? 'hidden' : 'block'), children: notFound ? renderNotFound(notFound) : null }), jsxs("div", { className: style(blocksToRender.length ? '' : 'hidden'), children: [jsx("div", { className: style('mb-2xs', resultsGridStyle), children: renderBlocksList(visibleBlocks, { ...rest.options, parent: block }) }), jsx(Foldable, { renderFoldableSection: ({ isUnfolded }) => {
|
|
2839
|
+
return (jsx(FoldableSection, { className: style(resultsGridStyle, isUnfolded ? 'mb-2xs' : ''), isUnfolded: isUnfolded, children: renderBlocksList(hiddenBlocks, { ...rest.options, parent: block }) }));
|
|
2764
2840
|
}, renderFoldButton: ({ isUnfolded, onToggle }) => (jsx(DefaultFoldButton, { className: style(topItemsCount < 1 ? 'hidden' : ''), disabled: !hiddenBlocks?.length, label: label, icon: ICONS[Number(isUnfolded)], dataTheme: rest.options?.page?.colorPalette, onClick: onToggle })) })] })] }));
|
|
2765
2841
|
});
|
|
2766
2842
|
function renderNotFound({ title, description }) {
|
|
@@ -2783,7 +2859,7 @@
|
|
|
2783
2859
|
return items.map((item) => (jsx(SlideCheckbox, { text: item.title, value: [value].flatMap((_) => _).includes(item.value), onChange: () => handleChange(item.value), type: multiple ? 'checkbox' : 'radio' }, item.value)));
|
|
2784
2860
|
});
|
|
2785
2861
|
|
|
2786
|
-
const renderFiltrationForm = ({ field, reset, filtrationSchema, resetButton, children, }) => (jsxs("form", { className: "flex justify-between bg-white p-
|
|
2862
|
+
const renderFiltrationForm = ({ field, reset, filtrationSchema, resetButton, children, }) => (jsxs("form", { className: "flex justify-between bg-white p-4xl mb-2xs", children: [jsxs("div", { className: "flex gap-5xl", children: [children, Object.entries(filtrationSchema).map(renderFormItem(field))] }), resetButton ? (jsx("div", { children: jsx(Button, { className: "w-72 ml-s", onClick: reset, ...resetButton }) })) : null] }));
|
|
2787
2863
|
const renderFormItem = (field) => ([key, item]) => {
|
|
2788
2864
|
const type = item?.type;
|
|
2789
2865
|
switch (type) {
|
|
@@ -2796,7 +2872,7 @@
|
|
|
2796
2872
|
const renderCheckboxes = (key, field) => (item) => {
|
|
2797
2873
|
const options = item?.items?.enum?.map((e, i) => ({ value: e, title: item?.items?.enumNames?.[i] || '' })) ||
|
|
2798
2874
|
[];
|
|
2799
|
-
return (jsxs("div", { children: [item?.title ? (jsx("div", { className: "mb-
|
|
2875
|
+
return (jsxs("div", { children: [item?.title ? (jsx("div", { className: "mb-m", children: jsx(Text, { size: "text-m", font: "font-light", color: "text-secondary-text", children: item.title }) })) : null, jsx(SlideCheckboxGroup, { items: options, multiple: true, ...field(key) })] }, key));
|
|
2800
2876
|
};
|
|
2801
2877
|
|
|
2802
2878
|
const initialFiltrationState$1 = {
|
|
@@ -2903,7 +2979,7 @@
|
|
|
2903
2979
|
};
|
|
2904
2980
|
|
|
2905
2981
|
const icon = { icon: 'GpsIcon' };
|
|
2906
|
-
const CurrentLocation
|
|
2982
|
+
const CurrentLocation = JSX(({ className = '', address }) => (jsxs("div", { className: `flex gap-s ${className}`, children: [jsx(RoundedIcon, { ...icon, iconBgVersion: "primary" }), jsxs("div", { className: "space-y-2xs", children: [address ? jsx("p", { className: "text-primary-main text-l", children: address }) : null, jsx("p", { className: "text-secondary-text text-m", children: "\u041A\u0443\u0440\u0441 \u0443\u043A\u0430\u0437\u0430\u043D \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u043D\u043D\u043E\u0433\u043E \u043E\u0444\u0438\u0441\u0430" })] })] })));
|
|
2907
2983
|
|
|
2908
2984
|
const roundTo = (value, precision = 2) => {
|
|
2909
2985
|
const factor = 10 ** precision;
|
|
@@ -3046,12 +3122,14 @@
|
|
|
3046
3122
|
currencyRatesBuy.unshift({ currency: { currency: Currency.RUB } });
|
|
3047
3123
|
const currencyRatesSell = currencyRates.filter((_) => _.saleExchangeRate);
|
|
3048
3124
|
currencyRatesSell.push({ currency: { currency: Currency.RUB } });
|
|
3049
|
-
return (jsx(BlockWrapper, { className: style('box-border min-h-80', className), ...rest, children: jsx(BaseTile, { className: "h-full", title: jsx(Heading, { headingType: "h4", title: title, className: "whitespace-pre-wrap" }), children: jsxs("div", { className: "flex gap-6xl flex-wrap", children: [jsxs("div", { children: [currencyRates ? (jsx(CurrencyTable, { className: "mb-xl", exchangeCurrencyItems: currencyRates })) : null, jsx(CurrentLocation
|
|
3125
|
+
return (jsx(BlockWrapper, { className: style('box-border min-h-80', className), ...rest, children: jsx(BaseTile, { className: "h-full", title: jsx(Heading, { headingType: "h4", title: title, className: "whitespace-pre-wrap" }), children: jsxs("div", { className: "flex gap-6xl flex-wrap", children: [jsxs("div", { children: [currencyRates ? (jsx(CurrencyTable, { className: "mb-xl", exchangeCurrencyItems: currencyRates })) : null, jsx(CurrentLocation, { address: exchangeRates?.address })] }), currencyRates.length && currencyRatesBuy.length && currencyRatesSell.length ? (jsx(ExchangeCurrencyCalculator, { className: "grow", currencyRatesBuy: currencyRatesBuy, currencyRatesSell: currencyRatesSell, button: button })) : null] }) }) }));
|
|
3050
3126
|
});
|
|
3051
3127
|
const getCurrencyRates = (currencies) => {
|
|
3052
3128
|
return currencies?.filter((_) => _?.currency?.id === 1 || _?.currency?.id === 2) || [];
|
|
3053
3129
|
};
|
|
3054
3130
|
|
|
3131
|
+
const useSitemap = (fallback) => useSWRResource(projectSettings.SITEMAP || 'sitemap', fallback);
|
|
3132
|
+
|
|
3055
3133
|
const ICON_VERSION_MAP = {
|
|
3056
3134
|
'bg-white': 'color',
|
|
3057
3135
|
transparent: 'white',
|
|
@@ -3077,26 +3155,14 @@
|
|
|
3077
3155
|
|
|
3078
3156
|
const Logo = JSX(({ className = '', href = '/', logo, children = logo?.title, targetBlank, bgColor = 'bg-white', showTitle = true, }) => (jsxs("a", { className: style('inline-flex items-center font-sans no-underline', className), href: href, target: targetBlank ? '_blank' : '_self', "aria-label": logo?.title || 'Россельхозбанк', children: [renderImage$1(bgColor, logo?.image, { width: '40', height: '45' }), showTitle ? renderTitle(children || logo?.title, bgColor) : null] })));
|
|
3079
3157
|
|
|
3080
|
-
const CloseButton = JSX(({ className,
|
|
3158
|
+
const CloseButton = JSX(({ className, onClose }) => (jsx("button", { className: style('flex justify-center items-center w-12 h-12 p-1 bg-transparent border-none', className), onClick: onClose, title: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C", children: jsx(Img, { image: { icon: 'CloseIcon' }, width: "24", height: "24" }) })));
|
|
3081
3159
|
|
|
3082
|
-
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
switch (action.type) {
|
|
3089
|
-
case 'open':
|
|
3090
|
-
onOpen && onOpen(action);
|
|
3091
|
-
break;
|
|
3092
|
-
case 'close':
|
|
3093
|
-
onClose && onClose();
|
|
3094
|
-
break;
|
|
3095
|
-
default:
|
|
3096
|
-
assertUnreachable(action);
|
|
3097
|
-
}
|
|
3098
|
-
}), [onOpen, onClose]);
|
|
3099
|
-
}
|
|
3160
|
+
const SearchInput = JSX(({ className, value, autoFocus, onChange, onFocus }) => {
|
|
3161
|
+
const handleChange = useCallback((ev) => {
|
|
3162
|
+
onChange && onChange(ev.target?.value || '');
|
|
3163
|
+
}, [onChange]);
|
|
3164
|
+
return (jsxs("div", { className: style('font-sans relative', className), role: "form", children: [jsx("div", { className: "absolute h-full flex items-center pl-m pointer-events-none", children: jsx(Img, { image: { icon: 'LoupeIcon' }, width: "24", height: "24" }) }), jsx("input", { className: style('h-12 pl-12 w-full text-l text-black outline-none box-border', 'border border-solid rounded-md border-gray hover:border-primary-hover active:border-primary-text focus:border-primary-text'), value: value, type: "text", name: "search-bar-input", placeholder: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0441\u0430\u0439\u0442\u0443", autoFocus: autoFocus, onChange: handleChange, onFocus: onFocus })] }));
|
|
3165
|
+
});
|
|
3100
3166
|
|
|
3101
3167
|
const useDebouncedEffect = (effect, deps, delay = 300) => useEffect(() => {
|
|
3102
3168
|
const timerId = setTimeout(effect, delay);
|
|
@@ -3183,8 +3249,6 @@
|
|
|
3183
3249
|
return acc;
|
|
3184
3250
|
};
|
|
3185
3251
|
|
|
3186
|
-
const sum = (list = []) => list.reduce((a, b) => a + b, 0);
|
|
3187
|
-
|
|
3188
3252
|
const MIN_TERM_LEN = 3;
|
|
3189
3253
|
const tokenize = (text) => text
|
|
3190
3254
|
.toLowerCase()
|
|
@@ -3250,52 +3314,14 @@
|
|
|
3250
3314
|
};
|
|
3251
3315
|
const fetchSearchIndex = async (...basePathList) => (await Promise.allSettled(basePathList.map((basePath) => fetchJSON(joinPath(basePath, '/', SEARCH_INDEX_FILENAME))))).map((_) => (_.status === 'fulfilled' ? _.value : {}));
|
|
3252
3316
|
|
|
3253
|
-
const Dialog = JSX(({ className,
|
|
3254
|
-
|
|
3255
|
-
const handleEscape = ({ key }) => {
|
|
3256
|
-
if (key === 'Escape') {
|
|
3257
|
-
onClose && onClose();
|
|
3258
|
-
}
|
|
3259
|
-
};
|
|
3260
|
-
globalThis.document?.addEventListener('keydown', handleEscape);
|
|
3261
|
-
return () => {
|
|
3262
|
-
globalThis.document?.removeEventListener('keydown', handleEscape);
|
|
3263
|
-
};
|
|
3264
|
-
}, [onClose]);
|
|
3265
|
-
return isOpened ? (jsx("div", { className: style('fixed inset-0 bg-white text-l font-light z-50 overflow-x-hidden overflow-y-scroll no-scrollbar', className), role: "dialog", children: jsxs("div", { className: "relative container pb-6xl min-h-full", children: [jsxs("div", { className: "sticky bg-white pt-xl top-0", children: [jsx(CloseButton, { className: "absolute top-0 -right-6xl", onClick: onClose }), head] }), children] }) })) : null;
|
|
3266
|
-
});
|
|
3267
|
-
|
|
3268
|
-
function useDialogProps(id, isOpenedOnInit = false) {
|
|
3269
|
-
const [isOpened, { setTrue: open, setFalse: close }] = useBool(isOpenedOnInit);
|
|
3270
|
-
const [params, setParams] = useState({ id });
|
|
3271
|
-
const wasOpened = useRef(isOpened);
|
|
3272
|
-
wasOpened.current ||= isOpened;
|
|
3273
|
-
const handleOpen = useCallback((_) => {
|
|
3274
|
-
if (_.id === id) {
|
|
3275
|
-
setParams(_);
|
|
3276
|
-
open();
|
|
3277
|
-
}
|
|
3278
|
-
else {
|
|
3279
|
-
close();
|
|
3280
|
-
}
|
|
3281
|
-
}, [id]);
|
|
3317
|
+
const Dialog = JSX(({ className, head, children, onClose }) => {
|
|
3318
|
+
const { close } = useDialogManager();
|
|
3282
3319
|
const handleClose = useCallback(() => {
|
|
3283
3320
|
close();
|
|
3284
|
-
|
|
3285
|
-
}, []);
|
|
3286
|
-
|
|
3287
|
-
|
|
3288
|
-
onClose: close,
|
|
3289
|
-
});
|
|
3290
|
-
return {
|
|
3291
|
-
...params,
|
|
3292
|
-
isOpened,
|
|
3293
|
-
wasOpened: wasOpened.current,
|
|
3294
|
-
open,
|
|
3295
|
-
close,
|
|
3296
|
-
onClose: handleClose,
|
|
3297
|
-
};
|
|
3298
|
-
}
|
|
3321
|
+
onClose && onClose();
|
|
3322
|
+
}, [onClose]);
|
|
3323
|
+
return (jsxs("div", { className: style('relative min-h-full bg-white', className), children: [jsxs("div", { className: "sticky py-xl top-0 bg-white", children: [jsx(CloseButton, { className: "absolute top-0 right-0", onClose: handleClose }), jsx("div", { className: "container", children: head })] }), jsx("div", { className: "container pb-6xl", children: children })] }));
|
|
3324
|
+
});
|
|
3299
3325
|
|
|
3300
3326
|
const Sitemap = JSX(({ className, topItems }) => {
|
|
3301
3327
|
const link = useLink({ isRemote: true });
|
|
@@ -3312,25 +3338,17 @@
|
|
|
3312
3338
|
return (jsx("a", { className: style('text-l font-light text-secondary-text hover:text-primary-main no-underline', 'overflow-x-hidden overflow-ellipsis whitespace-nowrap'), href: href, target: target || '_self', onClick: onClick, children: text || `Раздел ${index}` }));
|
|
3313
3339
|
});
|
|
3314
3340
|
|
|
3315
|
-
const
|
|
3316
|
-
const
|
|
3317
|
-
onChange && onChange(ev.target?.value || '');
|
|
3318
|
-
}, [onChange]);
|
|
3319
|
-
return (jsxs("div", { className: style('font-sans relative', className), role: "form", children: [jsx("div", { className: "absolute h-full flex items-center pl-m pointer-events-none", children: jsx(Img, { image: { icon: 'LoupeIcon' }, width: "24", height: "24" }) }), jsx("input", { className: style('h-12 pl-12 w-full text-l text-black outline-none box-border', 'border border-solid rounded-md border-gray hover:border-primary-hover active:border-primary-text focus:border-primary-text'), value: value, type: "text", name: "search-bar-input", placeholder: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0441\u0430\u0439\u0442\u0443", autoFocus: autoFocus, onChange: handleChange, onFocus: onFocus })] }));
|
|
3320
|
-
});
|
|
3321
|
-
|
|
3322
|
-
const SEARCH_DIALOG_ID = 'search';
|
|
3323
|
-
const SearchDialog = JSX(({ topItems }) => {
|
|
3324
|
-
const dialogProps = useDialogProps(SEARCH_DIALOG_ID);
|
|
3341
|
+
const SearchDialog = JSX(({ initialQuery }) => {
|
|
3342
|
+
const { topItems } = useSitemap();
|
|
3325
3343
|
const basePathList = useMemo(() => topItems?.map((_) => _.href || '/'), [topItems]);
|
|
3326
3344
|
const [searchResult, searchInputProps] = useSearch({
|
|
3327
3345
|
basePathList,
|
|
3328
|
-
initialQuery
|
|
3329
|
-
wasOpened:
|
|
3346
|
+
initialQuery,
|
|
3347
|
+
wasOpened: false,
|
|
3330
3348
|
});
|
|
3331
3349
|
const searchItems = useMemo(() => combineTopItemsAndSearchResult(topItems)(searchResult), [topItems, searchResult]);
|
|
3332
3350
|
useEffect(() => printSearchItems(searchItems), [searchItems]); // Temp
|
|
3333
|
-
return (jsx(Dialog, {
|
|
3351
|
+
return (jsx(Dialog, { head: jsx(SearchInput, { autoFocus: true, ...searchInputProps }), children: jsx(Sitemap, { topItems: searchItems }) }));
|
|
3334
3352
|
});
|
|
3335
3353
|
const combineTopItemsAndSearchResult = (topItems) => (searchResult) => topItems?.length && searchResult?.length
|
|
3336
3354
|
? zip(topItems, searchResult).map(([_, portalSearchResult]) => ({
|
|
@@ -3347,19 +3365,26 @@
|
|
|
3347
3365
|
}
|
|
3348
3366
|
}
|
|
3349
3367
|
|
|
3368
|
+
const useSearchDialog = () => {
|
|
3369
|
+
const { open, close } = useDialogManager();
|
|
3370
|
+
return {
|
|
3371
|
+
open: (props = {}, options = {}) => open(jsx(SearchDialog, { ...props }), options),
|
|
3372
|
+
close,
|
|
3373
|
+
};
|
|
3374
|
+
};
|
|
3375
|
+
|
|
3350
3376
|
const MIN_QUERY_LEN = 3;
|
|
3351
3377
|
const SearchBar$1 = JSX(({ className }) => {
|
|
3352
3378
|
const [value, setValue] = useState('');
|
|
3353
3379
|
const resetQueryOnDialogClose = useCallback(() => setValue(''), []);
|
|
3354
|
-
|
|
3355
|
-
const { open } = useDialog(SEARCH_DIALOG_ID);
|
|
3380
|
+
const { open } = useSearchDialog();
|
|
3356
3381
|
const handleInitialInputChange = useCallback((_) => {
|
|
3357
3382
|
setValue(_);
|
|
3358
3383
|
if (isQueryLongEnough(_)) {
|
|
3359
|
-
open(_);
|
|
3384
|
+
open({ initialQuery: _ }, { onClose: resetQueryOnDialogClose });
|
|
3360
3385
|
}
|
|
3361
|
-
}, []);
|
|
3362
|
-
return (jsxs("div", { className: className, children: [jsx(SearchInput, { value: value, onChange: handleInitialInputChange }), jsx(CloseButton, { className: "absolute top-2 right-3 sm:hidden",
|
|
3386
|
+
}, [resetQueryOnDialogClose]);
|
|
3387
|
+
return (jsxs("div", { className: className, children: [jsx(SearchInput, { value: value, onChange: handleInitialInputChange }), jsx(CloseButton, { className: "absolute top-2 right-3 sm:hidden", onClose: resetQueryOnDialogClose })] }));
|
|
3363
3388
|
});
|
|
3364
3389
|
const isQueryLongEnough = (_) => _ && _.length >= MIN_QUERY_LEN;
|
|
3365
3390
|
|
|
@@ -3399,9 +3424,10 @@
|
|
|
3399
3424
|
const TextInformation = JSX(({ className = '', links }) => (jsxs("div", { className: className, children: [jsx("div", { className: "pt-lg", children: jsx(Text, { size: "text-xs", font: "font-light", color: "text-secondary-text", children: `\u00a9\u00A02000-${new Date().getFullYear()}\u00A0АО \u00ABРоссельхозбанк\u00BB Генеральная лицензия Банка России \u2116\u00A03349 от\u00A012.08.2015\u00A0г.` }) }), links?.length ? (jsx("div", { className: "flex flex-col sm:flex-row justify-start items-start gap-x-lg gap-y-xs pt-lg", children: links.map((_, i) => (jsx(TextInformationLink, { index: i, ..._ }, String(i)))) })) : null] })));
|
|
3400
3425
|
|
|
3401
3426
|
const LEFT_COL_WIDTH = 'w-52';
|
|
3402
|
-
const Footer = JSX(({ className,
|
|
3427
|
+
const Footer = JSX(({ className, ...rest }) => {
|
|
3428
|
+
const { topItems } = useSitemap(rest.options?.page?.fallback);
|
|
3403
3429
|
const { documents, relatedEnterprises, contacts, socialMedia, mobileApps, logo } = useSWRResource(projectSettings.FOOTER || 'footer', rest.options?.page?.fallback);
|
|
3404
|
-
return (jsxs(BlockWrapper, { tag: "footer", className: className, ...rest, children: [jsxs("div", { className: "flex items-stretch gap-3xl pb-3xl ", children: [jsx(Logo, { className: LEFT_COL_WIDTH, logo: logo }), jsx(SearchBar$1, { className: "grow" })] }), jsxs("div", { className: "flex items-stretch gap-6xl", children: [jsxs("div", { className: `${LEFT_COL_WIDTH} flex flex-col shrink-0 overflow-hidden space-y-xl`, children: [jsx(Contacts, { items: contacts }), jsx(SocialMedia, { media: socialMedia, children: "\u0421\u043E\u0446\u0441\u0435\u0442\u0438" }), jsx(SocialMedia, { media: mobileApps, children: "\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435" })] }), jsx(Sitemap, { className: "flex-grow", topItems:
|
|
3430
|
+
return (jsxs(BlockWrapper, { tag: "footer", className: className, ...rest, children: [jsxs("div", { className: "flex items-stretch gap-3xl pb-3xl ", children: [jsx(Logo, { className: LEFT_COL_WIDTH, logo: logo }), jsx(SearchBar$1, { className: "grow" })] }), jsxs("div", { className: "flex items-stretch gap-6xl", children: [jsxs("div", { className: `${LEFT_COL_WIDTH} flex flex-col shrink-0 overflow-hidden space-y-xl`, children: [jsx(Contacts, { items: contacts }), jsx(SocialMedia, { media: socialMedia, children: "\u0421\u043E\u0446\u0441\u0435\u0442\u0438" }), jsx(SocialMedia, { media: mobileApps, children: "\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435" })] }), jsx(Sitemap, { className: "flex-grow", topItems: topItems })] }), jsx(HorizontalNavigation, { className: "mt-xl", links: relatedEnterprises }), jsx(TextInformation, { links: documents })] }));
|
|
3405
3431
|
});
|
|
3406
3432
|
|
|
3407
3433
|
const GracePeriod = JSX(({ className = '', title, description, calendar, ...rest }) => (jsxs(BlockWrapper, { className: className, defaultPadding: "p-6xl", ...rest, children: [jsx(Headline, { className: "mb-4", title: title, description: description, headlineVersion: "M", isPadding: false }), calendar ? renderCalendar(calendar) : null] })));
|
|
@@ -3420,10 +3446,6 @@
|
|
|
3420
3446
|
const renderMonthNames = (item, colSize) => item.month?.map((_, i) => (jsx("div", { style: { flexBasis: `${colSize}%` }, children: _.text }, `monthName-${i}`)));
|
|
3421
3447
|
const renderMonthImages = (item) => item.month?.map((_) => _.image?.src ? (jsx("div", { className: "h-[207px] border-r pr-3 mr-3 border-main-divider last:border-r-0 last:pr-0 last:mr-0", children: jsx(Img, { image: _.image, className: "flex" }) }, `monthImage-${_.image.src}`)) : null);
|
|
3422
3448
|
|
|
3423
|
-
const isHrefActive = (router) => ({ href }) => withoutQuery(isURL(href) ? router.href : router.pathname).startsWith(withoutQuery(href));
|
|
3424
|
-
|
|
3425
|
-
const isTopItemActive = (router) => isHrefActive(projectSettings.BASE_PATH ? { pathname: projectSettings.BASE_PATH } : router);
|
|
3426
|
-
|
|
3427
3449
|
const TopItem = JSX(({ className = '', active, flat, children, ...rest }) => {
|
|
3428
3450
|
const link = useLink({ isRemote: true });
|
|
3429
3451
|
const { href, target, text, onClick } = link(rest);
|
|
@@ -3436,6 +3458,48 @@
|
|
|
3436
3458
|
? 'text-primary-main'
|
|
3437
3459
|
: style(flat ? 'text-primary-text' : 'text-secondary-text', 'hover:text-primary-main'), 'group-data-transparent:text-white group-data-transparent:hover:text-primary-hover');
|
|
3438
3460
|
|
|
3461
|
+
const useLatestEvent = (eventBus, type, initialEvent) => {
|
|
3462
|
+
const [latestEvent, setLatestEvent] = useState(initialEvent || null);
|
|
3463
|
+
useEffect(() => eventBus.subscribe(type, (_) => setLatestEvent(_)), [eventBus, type]);
|
|
3464
|
+
const fireEvent = useCallback((_) => eventBus.fire(type, _), [eventBus, type]);
|
|
3465
|
+
return [latestEvent, fireEvent];
|
|
3466
|
+
};
|
|
3467
|
+
|
|
3468
|
+
const REGION_URL = '/api/v1/region';
|
|
3469
|
+
const LOCATION_STORAGE_KEY = 'location';
|
|
3470
|
+
function useLocation(defaultLocation = 'Москва') {
|
|
3471
|
+
const [currentLocation, fireCurrentLocation] = useLatestEvent(defaultEventBus, 'location', restoreLocation() ?? { name: defaultLocation });
|
|
3472
|
+
const selectCurrentLocation = useCallback((_) => {
|
|
3473
|
+
storeLocation(_);
|
|
3474
|
+
fireCurrentLocation(_);
|
|
3475
|
+
}, []);
|
|
3476
|
+
const { data } = useAsyncData(REGION_URL, fetchJSONUnsafe);
|
|
3477
|
+
useEffect(() => {
|
|
3478
|
+
if (data && !hasStoredLocation()) {
|
|
3479
|
+
fireCurrentLocation(data);
|
|
3480
|
+
}
|
|
3481
|
+
}, [data]);
|
|
3482
|
+
return [currentLocation ?? { name: defaultLocation }, selectCurrentLocation];
|
|
3483
|
+
}
|
|
3484
|
+
const hasStoredLocation = () => Boolean(globalThis.localStorage?.getItem(LOCATION_STORAGE_KEY));
|
|
3485
|
+
const restoreLocation = () => {
|
|
3486
|
+
try {
|
|
3487
|
+
const data = globalThis.localStorage?.getItem(LOCATION_STORAGE_KEY);
|
|
3488
|
+
return data && JSON.parse(data);
|
|
3489
|
+
}
|
|
3490
|
+
catch (ex) {
|
|
3491
|
+
return null;
|
|
3492
|
+
}
|
|
3493
|
+
};
|
|
3494
|
+
const storeLocation = (_) => {
|
|
3495
|
+
try {
|
|
3496
|
+
globalThis.localStorage?.setItem(LOCATION_STORAGE_KEY, JSON.stringify(_));
|
|
3497
|
+
}
|
|
3498
|
+
catch (ex) {
|
|
3499
|
+
// Do nothing
|
|
3500
|
+
}
|
|
3501
|
+
};
|
|
3502
|
+
|
|
3439
3503
|
const REGIONS_URL = '/api/v1/regions';
|
|
3440
3504
|
function useRegions() {
|
|
3441
3505
|
const { data } = useAsyncData(REGIONS_URL, fetchJSONUnsafe);
|
|
@@ -3452,44 +3516,53 @@
|
|
|
3452
3516
|
return result;
|
|
3453
3517
|
};
|
|
3454
3518
|
|
|
3519
|
+
const renderForeignOffices = (foreignOffices) => foreignOffices?.length ? (jsxs("div", { className: "border-t border-main-divider mt-2xs pt-2xs", children: [jsx("div", { className: "mb-m", children: jsx(Text, { size: "text-m", font: "font-light", color: "text-secondary-text", children: "\u041F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u0437\u0430 \u0440\u0443\u0431\u0435\u0436\u043E\u043C:" }) }), jsx("div", { className: "flex gap-10", children: foreignOffices.map((office, i) => (jsx(ForeignOffice, { ...office }, String(i)))) })] })) : null;
|
|
3520
|
+
const ForeignOffice = JSX(({ icon, ...rest }) => {
|
|
3521
|
+
const link = useLink();
|
|
3522
|
+
const { text, target, href, onClick } = link(rest);
|
|
3523
|
+
return (jsxs("div", { className: "flex gap-x-3", children: [icon ? jsx(Img, { pathPrefix: "/wcms-resources/", image: icon }) : null, text ? (jsx("a", { className: "hover:text-primary-hover", href: href, target: target, onClick: onClick, children: text })) : null] }));
|
|
3524
|
+
});
|
|
3525
|
+
|
|
3526
|
+
const renderRegion = (onChangeLocation) => (region) => (jsx("div", { className: "mb-2xs", children: jsx("button", { className: "cursor-pointer hover:text-primary-hover", onClick: () => {
|
|
3527
|
+
onChangeLocation && onChangeLocation(region);
|
|
3528
|
+
}, children: region.name || '' }) }, region.id));
|
|
3529
|
+
|
|
3530
|
+
const renderRegionGroup = (onChangeLocation) => ([letter, regions]) => (jsxs("div", { className: "break-inside-avoid mb-2xl w-56", children: [jsx("div", { className: "mb-s", children: jsx(Text, { size: "text-h6", children: letter }) }), regions.map(renderRegion(onChangeLocation))] }, letter));
|
|
3531
|
+
|
|
3455
3532
|
const SearchBar = JSX(({ className, searchTerm, onSearch }) => {
|
|
3456
3533
|
return (jsxs("form", { className: `font-sans relative ${className}`, children: [jsx("div", { className: "absolute rounded h-full flex items-center justify-center pl-4 max-w-44 gap-3.5 pointer-events-none", children: searchTerm ? null : (jsx("label", { htmlFor: "search-bar-input", className: `text-secondary-text `, children: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0444\u0438\u043B\u0438\u0430\u043B\u0430\u043C" })) }), jsx("input", { id: "search-bar-input", className: `h-12 pl-4 w-full peer text-l text-black border border-solid rounded-md box-border
|
|
3457
3534
|
outline-none border-gray hover:border-primary-hover active:border-primary-text focus:border-primary-text`, value: searchTerm, onChange: (e) => onSearch(e.target.value.toLowerCase()), type: "text", name: "location-search-bar-input" })] }));
|
|
3458
3535
|
});
|
|
3459
3536
|
|
|
3460
3537
|
const SEARCH_TERM_MIN_LENGTH = 3;
|
|
3461
|
-
const
|
|
3462
|
-
|
|
3463
|
-
const
|
|
3538
|
+
const LocationDialog = JSX(() => {
|
|
3539
|
+
const { defaultLocation, foreignOffices } = useSitemap();
|
|
3540
|
+
const [currentLocation, selectCurrentLocation] = useLocation(defaultLocation);
|
|
3464
3541
|
const [query, setQuery] = useState('');
|
|
3465
3542
|
const regions = cleanUpRegions(useRegions()).sort((a, b) => a.name.localeCompare(b.name));
|
|
3466
3543
|
const regionsGroupByLetter = groupBy(regions, regionFirstLetter);
|
|
3544
|
+
const { close } = useDialogManager();
|
|
3467
3545
|
const handleChangeLocation = useCallback((region) => {
|
|
3468
|
-
|
|
3469
|
-
|
|
3470
|
-
}, [
|
|
3471
|
-
return (jsxs(Dialog, {
|
|
3546
|
+
selectCurrentLocation(region);
|
|
3547
|
+
close();
|
|
3548
|
+
}, []);
|
|
3549
|
+
return (jsxs(Dialog, { head: jsxs("div", { children: [currentLocation ? (jsxs("div", { className: "mb-s", children: [jsx(Text, { size: "text-l", font: "font-light", children: "\u0421\u0435\u0439\u0447\u0430\u0441 \u0432\u044B\u0431\u0440\u0430\u043D:\u00A0" }), jsx("button", { onClick: () => selectCurrentLocation(currentLocation), children: jsx(Text, { color: "text-primary-main", children: currentLocation.name }) })] })) : null, jsx(SearchBar, { onSearch: setQuery, searchTerm: query })] }), children: [query && query.length >= SEARCH_TERM_MIN_LENGTH ? (jsx("div", { children: regions
|
|
3472
3550
|
.filter(({ name }) => name && jaroWinklerDistance(name.toLowerCase())(query.toLowerCase()) >= 0.8)
|
|
3473
|
-
.map(renderRegion(handleChangeLocation)) })) : (jsx("div", { className: "columns-5", children: Array.from(regionsGroupByLetter.entries()).map(renderRegionGroup(handleChangeLocation)) })),
|
|
3551
|
+
.map(renderRegion(handleChangeLocation)) })) : (jsx("div", { className: "columns-5", children: Array.from(regionsGroupByLetter.entries()).map(renderRegionGroup(handleChangeLocation)) })), renderForeignOffices(foreignOffices)] }));
|
|
3474
3552
|
});
|
|
3475
3553
|
const regionFirstLetter = (region) => region.name?.charAt(0) || '';
|
|
3476
3554
|
const cleanUpRegions = (regions) => regions.map((region) => ({
|
|
3477
3555
|
...region,
|
|
3478
3556
|
name: region.name?.replace(/республика|область|край'/gi, '').trim() || '',
|
|
3479
3557
|
}));
|
|
3480
|
-
|
|
3481
|
-
|
|
3482
|
-
|
|
3483
|
-
|
|
3484
|
-
|
|
3485
|
-
|
|
3486
|
-
|
|
3487
|
-
|
|
3488
|
-
const ForeignOffice = JSX(({ icon, ...rest }) => {
|
|
3489
|
-
const link = useLink();
|
|
3490
|
-
const { text, target, href, onClick } = link(rest);
|
|
3491
|
-
return (jsxs("div", { className: "flex gap-x-3", children: [icon ? jsx(Img, { pathPrefix: "/wcms-resources/", image: icon }) : null, text ? (jsx("a", { className: "hover:text-primary-hover", href: href, target: target, onClick: onClick, children: text })) : null] }));
|
|
3492
|
-
});
|
|
3558
|
+
|
|
3559
|
+
const useLocationDialog = () => {
|
|
3560
|
+
const { open, close } = useDialogManager();
|
|
3561
|
+
return {
|
|
3562
|
+
open: (options = {}) => open(jsx(LocationDialog, {}), options),
|
|
3563
|
+
close,
|
|
3564
|
+
};
|
|
3565
|
+
};
|
|
3493
3566
|
|
|
3494
3567
|
const BUTTON_SIZE_STYLE = {
|
|
3495
3568
|
default: 'w-6 h-6',
|
|
@@ -3499,15 +3572,18 @@
|
|
|
3499
3572
|
? 'w-8 h-8 text-secondary-light hover:text-secondary-hove'
|
|
3500
3573
|
: `${BUTTON_SIZE_STYLE[buttonSize]} text-primary-text hover:text-primary-main`, 'group-data-transparent:text-white', className), type: "button", disabled: disabled, "aria-label": ariaLabel, onClick: onClick, children: jsx(Img, { image: image, className: style('h-full', isRounded ? 'bg-main-divider/20 rounded-full' : ''), imageClassName: "group-hover/btn:text-primary-hover group-hover/btn:invert-0" }) })));
|
|
3501
3574
|
|
|
3502
|
-
const HeaderSecondaryMenu = JSX(({ className, version,
|
|
3575
|
+
const HeaderSecondaryMenu = JSX(({ className, version, officesLink, defaultLocation }) => {
|
|
3503
3576
|
const iconVersion = version === 'transparent' ? 'white' : 'black';
|
|
3504
|
-
const
|
|
3505
|
-
const
|
|
3506
|
-
const
|
|
3507
|
-
const
|
|
3508
|
-
|
|
3577
|
+
const [currentLocation] = useLocation(defaultLocation);
|
|
3578
|
+
const searchDialog = useSearchDialog();
|
|
3579
|
+
const openSearchDialog = useCallback(() => searchDialog.open(), []);
|
|
3580
|
+
const locationDialog = useLocationDialog();
|
|
3581
|
+
const openLocationDialog = useCallback(() => locationDialog.open(), []);
|
|
3582
|
+
return (jsxs("div", { className: style('flex items-center gap-5', className), children: [jsx(TopItem, { flat: true, href: "#", text: currentLocation?.name, onClick: openLocationDialog }), officesLink ? jsx(TopItem, { flat: true, href: officesLink, text: "\u041E\u0444\u0438\u0441\u044B \u0438 \u0431\u0430\u043D\u043A\u043E\u043C\u0430\u0442\u044B" }) : null, jsx(HeaderSecondaryMenuButton, { image: { icon: 'LoupeIcon', iconVersion }, ariaLabel: "\u041F\u043E\u0438\u0441\u043A", onClick: openSearchDialog })] }));
|
|
3509
3583
|
});
|
|
3510
3584
|
|
|
3585
|
+
const isHrefActive = (router) => ({ href }) => withoutQuery(isURL(href) ? router.href : router.pathname).startsWith(withoutQuery(href));
|
|
3586
|
+
|
|
3511
3587
|
const findActiveSubItem = (router) => (items = []) => {
|
|
3512
3588
|
const possibleActiveSubItems = items?.filter(isHrefActive(router));
|
|
3513
3589
|
return possibleActiveSubItems?.length
|
|
@@ -3628,15 +3704,17 @@
|
|
|
3628
3704
|
const handleIntersectionActivation = (index) => (prev) => Math.max(prev, index + 1);
|
|
3629
3705
|
const handleIntersectionDeactivation = (index) => (prev) => Math.min(prev, index);
|
|
3630
3706
|
|
|
3707
|
+
const isTopItemActive = (router) => isHrefActive(projectSettings.BASE_PATH ? { pathname: projectSettings.BASE_PATH } : router);
|
|
3708
|
+
|
|
3631
3709
|
const BG_COLOR_TO_BLOCK_VERSION = {
|
|
3632
3710
|
'bg-white': 'primary',
|
|
3633
3711
|
transparent: 'transparent',
|
|
3634
3712
|
};
|
|
3635
|
-
const Header = JSX(({ className, bgColor = 'bg-white', version = BG_COLOR_TO_BLOCK_VERSION[bgColor],
|
|
3713
|
+
const Header = JSX(({ className, bgColor = 'bg-white', version = BG_COLOR_TO_BLOCK_VERSION[bgColor], ...rest }) => {
|
|
3636
3714
|
const router = useRouter();
|
|
3637
|
-
const { topItems, logo, officesLink, internetBankUrl } =
|
|
3715
|
+
const { topItems, logo, officesLink, internetBankUrl, defaultLocation } = useSitemap(rest.options?.page?.fallback);
|
|
3638
3716
|
const activeTopItem = topItems?.find(isTopItemActive(router));
|
|
3639
|
-
return (jsx(BlockWrapper, { tag: "header", className: style('pt-3xl px-20', activeTopItem?.items?.length ? 'pb-m' : 'pb-lg', className), defaultPadding: "", version: version, ...rest, children: jsxs("div", { className: "container", children: [jsxs("div", { className: "flex items-center", children: [jsx(Logo, { className: "mr-3xl", bgColor: bgColor, logo: logo }), topItems?.map((_, i) => (jsx(TopItem, { active: _ === activeTopItem, ..._ }, String(i)))), jsx(HeaderSecondaryMenu, { version: version, className: "ml-auto",
|
|
3717
|
+
return (jsx(BlockWrapper, { tag: "header", className: style('pt-3xl px-20', activeTopItem?.items?.length ? 'pb-m' : 'pb-lg', className), defaultPadding: "", version: version, ...rest, children: jsxs("div", { className: "container", children: [jsxs("div", { className: "flex items-center", children: [jsx(Logo, { className: "mr-3xl", bgColor: bgColor, logo: logo }), topItems?.map((_, i) => (jsx(TopItem, { active: _ === activeTopItem, ..._ }, String(i)))), jsx(HeaderSecondaryMenu, { version: version, className: "ml-auto", officesLink: officesLink, defaultLocation: defaultLocation })] }), jsx("div", { className: style('mt-xl h-px bg-main-divider', version === 'transparent' ? 'opacity-30' : '') }), activeTopItem?.items?.length ? (jsx(HeaderSubMenu, { subItems: activeTopItem.items, version: version, internetBankUrl: internetBankUrl })) : null] }) }));
|
|
3640
3718
|
});
|
|
3641
3719
|
|
|
3642
3720
|
const gapStyles = {
|
|
@@ -3825,13 +3903,78 @@
|
|
|
3825
3903
|
|
|
3826
3904
|
const MobileAppTile = JSX(({ className, padding, alignTitle = 'left', buttons = [], description, headingType = 'h4', image, items, qr, title = 'Мобильное приложение', version = 'primary', ...rest }) => {
|
|
3827
3905
|
const containerStyle = version === 'secondary' ? 'p-m min-w-32' : 'min-w-24';
|
|
3828
|
-
return (jsx(BlockWrapper, { className: style('min-h-80', className), padding: "p-0", version: version, ...rest, children: jsxs(BaseTile, { className: "h-full", padding: padding, defaultPadding: "p-6xl", title: title ? (jsx(Heading, { headingType: headingType, title: title, className: style('whitespace-pre-wrap', AlignText[alignTitle]) })) : null, buttons: renderButtonsSection(buttons, { isVertical: buttons.length > 4 }), children: [renderDescription$1(description), jsxs("div", { className: "flex flex-1 flex-wrap gap-m items-center", children: [qr?.src ? (jsx("div", { className: style('flex justify-center bg-white rounded-md', containerStyle), children: jsx(Img, { className: "w-fit", image: qr }) })) : null, renderList$1(items), image?.src ? jsx(Img, { image: image }) : null] })] }) }));
|
|
3906
|
+
return (jsx(BlockWrapper, { className: style('min-h-80', className), padding: "p-0", version: version, ...rest, children: jsxs(BaseTile, { className: "h-full", padding: padding, defaultPadding: "p-6xl", title: title ? (jsx(Heading, { headingType: headingType, title: title, className: style('whitespace-pre-wrap', AlignText[alignTitle]) })) : null, rightImage: image?.src ? jsx(Img, { className: "hidden lg:block", image: image }) : null, buttons: renderButtonsSection(buttons, { isVertical: buttons.length > 4 }), children: [renderDescription$1(description), jsxs("div", { className: "flex flex-1 flex-wrap gap-m items-center", children: [qr?.src ? (jsx("div", { className: style('flex justify-center bg-white rounded-md', containerStyle), children: jsx(Img, { className: "w-fit", image: qr }) })) : null, renderList$1(items), image?.src ? jsx(Img, { className: "lg:hidden", image: image }) : null] })] }) }));
|
|
3829
3907
|
});
|
|
3830
3908
|
|
|
3831
|
-
const
|
|
3832
|
-
|
|
3833
|
-
|
|
3834
|
-
|
|
3909
|
+
const tabPaddingStyleMap = {
|
|
3910
|
+
default: 'px-xs',
|
|
3911
|
+
underlined: 'px-m',
|
|
3912
|
+
rounded: 'px-lg rounded-md',
|
|
3913
|
+
};
|
|
3914
|
+
const tabTextStyle = 'text-secondary-text hover:text-primary-main';
|
|
3915
|
+
const activeTabTextStyleMap = {
|
|
3916
|
+
default: 'text-black sm:text-white',
|
|
3917
|
+
underlined: 'text-primary-main border-b-2',
|
|
3918
|
+
rounded: 'text-white',
|
|
3919
|
+
};
|
|
3920
|
+
const tabBgStyleMap = {
|
|
3921
|
+
default: 'bg-white',
|
|
3922
|
+
underlined: 'bg-white',
|
|
3923
|
+
rounded: 'bg-transparent',
|
|
3924
|
+
};
|
|
3925
|
+
const activeTabBgStyleMap = {
|
|
3926
|
+
default: 'sm:bg-primary-main',
|
|
3927
|
+
underlined: 'bg-white',
|
|
3928
|
+
rounded: 'bg-primary-main',
|
|
3929
|
+
};
|
|
3930
|
+
const TabItem = JSX(({ item = {}, isActive, onClick, type = 'default' }) => {
|
|
3931
|
+
const link = useLink();
|
|
3932
|
+
const handleClick = () => {
|
|
3933
|
+
onClick && onClick(item);
|
|
3934
|
+
};
|
|
3935
|
+
const { text, ...linkProps } = link({ ...item, onClick: handleClick });
|
|
3936
|
+
const Tag = item.href ? 'a' : 'div';
|
|
3937
|
+
return (jsx(Tag, { className: style('h-12', 'block flex-1', 'cursor-pointer', tabPaddingStyleMap[type], isActive ? activeTabBgStyleMap[type] : tabBgStyleMap[type]), role: "tab", "aria-selected": isActive, ...linkProps, children: jsx("div", { className: style('h-full', 'flex justify-center items-center', 'text-center whitespace-nowrap', isActive ? activeTabTextStyleMap[type] : tabTextStyle), children: jsx(Text, { size: "text-m", children: text }) }) }));
|
|
3938
|
+
});
|
|
3939
|
+
|
|
3940
|
+
const renderTab = (activeTab, onClick, type) => (tab, i) => (jsx(TabItem, { isActive: tab === activeTab, onClick: onClick, type: type, item: tab }, String(i)));
|
|
3941
|
+
|
|
3942
|
+
const TabsControl = JSX(({ className, tabsType = 'default', items = [], value, onChange }) => (jsx("div", { className: style('flex gap-x-2xs overflow-x-auto no-scrollbar', className), role: "tablist", children: items.map(renderTab(value, onChange, tabsType)) })));
|
|
3943
|
+
|
|
3944
|
+
const scalarCmp = (a, b) => a === b;
|
|
3945
|
+
const arrCmp = (cmp = scalarCmp) => (a, b) => a === b || Boolean(a && b && a.length === b.length && a.every((_, i) => cmp(_, b[i])));
|
|
3946
|
+
const objCmp = (cmp) => (a, b) => a === b ||
|
|
3947
|
+
Boolean(a &&
|
|
3948
|
+
b &&
|
|
3949
|
+
Object.keys(a).length === Object.keys(b).length &&
|
|
3950
|
+
Object.entries(a).every(([key, value]) => cmp(value, b[key])));
|
|
3951
|
+
function combineBoolCmps(...comparators) {
|
|
3952
|
+
return (a, b) => comparators.some((cmp) => cmp(a, b));
|
|
3953
|
+
}
|
|
3954
|
+
|
|
3955
|
+
const hotFilterRecordCmp = objCmp(combineBoolCmps(scalarCmp, arrCmp()));
|
|
3956
|
+
|
|
3957
|
+
const initialFiltrationState = {
|
|
3958
|
+
categories: [],
|
|
3959
|
+
extraOptions: [],
|
|
3960
|
+
propertyType: [],
|
|
3961
|
+
stage: [],
|
|
3962
|
+
};
|
|
3963
|
+
const MortgageFiltration = JSX(({ className, hotFilters = [], filtrationSchema = {}, resetButton, ...rest }) => {
|
|
3964
|
+
const [filtrationState, { field, reset, update: replaceFiltrationState }] = useForm(initialFiltrationState);
|
|
3965
|
+
const normalizedHotFilters = useMemo(() => hotFilters.map(({ text }) => ({
|
|
3966
|
+
text,
|
|
3967
|
+
})), [hotFilters]);
|
|
3968
|
+
const [hotFilterIndex, setHotFilterIndex] = useState(0);
|
|
3969
|
+
const handleHotFilterSelect = useCallback((_) => {
|
|
3970
|
+
setHotFilterIndex(normalizedHotFilters.indexOf(_));
|
|
3971
|
+
replaceFiltrationState(hotFilters[normalizedHotFilters.indexOf(_)].filter || initialFiltrationState);
|
|
3972
|
+
}, [normalizedHotFilters]);
|
|
3973
|
+
useEffect(() => {
|
|
3974
|
+
const suggestedHotFilterIndex = hotFilters.findIndex((_) => hotFilterRecordCmp(_.filter, filtrationState));
|
|
3975
|
+
setHotFilterIndex(suggestedHotFilterIndex !== -1 ? suggestedHotFilterIndex : 0);
|
|
3976
|
+
}, [hotFilters, filtrationState]);
|
|
3977
|
+
return (jsxs(BlockWrapper, { className: style(className), defaultPadding: "p-0", version: "transparent", ...rest, children: [jsx(TabsControl, { className: "mb-2xs", items: normalizedHotFilters, value: normalizedHotFilters[hotFilterIndex], onChange: handleHotFilterSelect }), renderFiltrationForm({ field, reset, filtrationSchema, resetButton }), jsx(BaseFiltrationInner, { filtrationState: filtrationState, ...rest })] }));
|
|
3835
3978
|
});
|
|
3836
3979
|
MortgageFiltration.childrenTypes = ['ProductTile'];
|
|
3837
3980
|
MortgageFiltration.childSchema = (content) => content?.filtrationSchema || {};
|
|
@@ -4194,46 +4337,6 @@
|
|
|
4194
4337
|
|
|
4195
4338
|
const ParagraphBlock = JSX(({ text, size, align, font, children, ...rest }) => (jsx(BlockWrapper, { defaultPadding: "p-0", ...rest, children: jsx(Paragraph, { size: size, align: align, font: font, children: text || children }) })));
|
|
4196
4339
|
|
|
4197
|
-
const avg = (items = []) => (items?.length ? sum(items) / items.length : 0);
|
|
4198
|
-
|
|
4199
|
-
const deviation = (items) => items?.length ? Math.sqrt(Math.abs(avg(items.map((_) => _ ** 2)) - avg(items) ** 2)) : 0;
|
|
4200
|
-
|
|
4201
|
-
const renderBenefitIcon = (icon, benefitsVersion = 'normal') => icon ? (jsx("div", { className: style('w-12 h-12 min-w-12 box-border flex items-center justify-center rounded-icon', benefitsVersion === 'normal'
|
|
4202
|
-
? 'bg-secondary-light text-primary-main'
|
|
4203
|
-
: 'bg-primary-main text-black group-data-secondary:bg-white/30 group-data-secondary:text-black'), children: jsx(Img, { className: "w-6 h-6", image: { ...icon, iconVersion: icon.iconVersion || benefitsVersion } }) })) : null;
|
|
4204
|
-
|
|
4205
|
-
const renderBenefitDescription = (description, i) => description ? (jsx(Paragraph, { font: "font-light", size: "text-m", color: "text-secondary-text group-data-secondary:text-white", children: description }, `description-${i}`)) : null;
|
|
4206
|
-
|
|
4207
|
-
const renderBenefitLabel = (label, i) => label ? (jsx(Text, { color: "text-primary-text group-data-secondary:text-white", size: "text-h6", children: label }, `label-${i}`)) : null;
|
|
4208
|
-
|
|
4209
|
-
const renderBenefitText = (_, i) => _.type === 'rte' && '__html' in _ && _.__html ? (jsx(RichText, { ..._ }, `rte-${i}`)) : ([
|
|
4210
|
-
'label' in _ ? renderBenefitLabel(_.label, i) : null,
|
|
4211
|
-
'description' in _ ? renderBenefitDescription(_.description, i) : null,
|
|
4212
|
-
]);
|
|
4213
|
-
|
|
4214
|
-
const BenefitItem = JSX(({ className, benefitsVersion, ..._ }) => (jsxs("div", { className: style('flex gap-m', 'description' in _ && _.description ? 'items-start' : 'items-center', className), children: ['icon' in _ ? renderBenefitIcon(_.icon, benefitsVersion) : null, jsx("div", { children: renderBenefitText(_) })] })));
|
|
4215
|
-
|
|
4216
|
-
const MAX_BENEFITS_LEN_DEVIATION = 16;
|
|
4217
|
-
const benefitLength = (_) => _.type === 'rte'
|
|
4218
|
-
? _.__html?.length || 0
|
|
4219
|
-
: Math.max(_.label?.length || 0, _.description?.length || 0);
|
|
4220
|
-
const isDistortedBenefits = (benefits) => deviation(benefits.map(benefitLength)) > MAX_BENEFITS_LEN_DEVIATION;
|
|
4221
|
-
const DefaultBenefitsList = JSX(({ className, benefitsVersion = 'normal', benefits }) => benefits?.length ? (jsx("div", { className: style('flex gap-x-m gap-y-s', isDistortedBenefits(benefits) ? 'flex-col' : 'flex-wrap', className), children: benefits.map((_, i) => (jsx(BenefitItem, { benefitsVersion: benefitsVersion, ..._ }, String(i)))) })) : null);
|
|
4222
|
-
|
|
4223
|
-
const TabularBenefitsList = JSX(({ className, benefits }) => benefits?.length ? (jsx("div", { className: style('grid grid-cols-[max-content_1fr] auto-rows-auto items-baseline gap-x-m gap-y-xs', className), children: benefits.flatMap(renderBenefitText) })) : null);
|
|
4224
|
-
|
|
4225
|
-
const BenefitsList = JSX(({ isTabularBenefits, ...rest }) => isTabularBenefits ? jsx(TabularBenefitsList, { ...rest }) : jsx(DefaultBenefitsList, { ...rest }));
|
|
4226
|
-
|
|
4227
|
-
const Tags = JSX(({ className, tags }) => tags?.length ? (jsx("div", { className: style('flex flex-wrap gap-xs', className), role: "list", children: tags.map(renderTag) })) : null);
|
|
4228
|
-
const renderTag = (tag, key) => (jsx("div", { className: "py-2 px-2.5 border-solid border rounded-md border-gray", role: "listitem", children: jsx(Text, { size: "text-m", font: "font-light", children: tag }) }, String(key)));
|
|
4229
|
-
|
|
4230
|
-
const BaseProductTile = JSX(({ className, padding, defaultPadding, title, description, headlineVersion = 'L', align = 'text-left', isInsetTitle = true, benefitsVersion, isTabularBenefits, benefits, __html, items, isDotted = true, listItemSize, tags, buttons, image, imageOptions: { imageAlign = 'end', directionRight = true, isBackground } = {}, children, }) => {
|
|
4231
|
-
const img = image?.src ? jsx(Img, { image: image }) : null;
|
|
4232
|
-
const headline = (jsx(Headline, { title: title, description: description, headlineVersion: headlineVersion, align: align, isPadding: false }));
|
|
4233
|
-
return (jsx(BaseTile, { className: className, padding: padding, defaultPadding: defaultPadding, ...(isInsetTitle ? { insetTitle: headline } : { title: headline }), ...(isBackground ? { backImage: img } : leftOrRightImage(img, directionRight)), imageAlign: imageAlign, buttons: renderButtonsSection(buttons), children: jsxs("div", { className: "flex flex-col gap-xl", children: [jsx(BenefitsList, { benefitsVersion: benefitsVersion, isTabularBenefits: isTabularBenefits, benefits: benefits }), __html ? jsx(RichText, { __html: __html }) : null, items?.length ? (jsx(List, { items: items, isDotted: isDotted, listItemSize: listItemSize })) : null, children, tags?.length ? jsx(Tags, { tags: tags }) : null] }) }));
|
|
4234
|
-
});
|
|
4235
|
-
const leftOrRightImage = (img, directionRight) => directionRight ? { rightImage: img } : { leftImage: img };
|
|
4236
|
-
|
|
4237
4340
|
const renderInsuranceSumMonth = (sum, monthLimit) => sum || monthLimit ? (jsxs("div", { className: "flex flex-wrap xl:flex-nowrap xl:bg-main-divider xl:rounded-md p-xs gap-xl", children: [Number(sum) > 0 ? renderValueBlock('Страховая сумма:', sum) : null, Number(monthLimit) > 0 ? renderValueBlock('Ежемесячный лимит:', monthLimit) : null] })) : null;
|
|
4238
4341
|
const renderValueBlock = (title, value = 0) => (jsxs("div", { className: "basis-full flex flex-col-reverse sm:flex-row sm:justify-between items-baseline whitespace-pre", children: [jsx(Text, { font: "font-light", size: "text-l", children: title }), jsxs(Text, { size: "text-h6", color: "text-primary-text", children: [toLocalNumberFormat(2)(value), " \u20BD"] })] }));
|
|
4239
4342
|
|
|
@@ -4340,7 +4443,7 @@
|
|
|
4340
4443
|
})) : (jsx(DefaultFoldButton, { label: label, icon: isUnfolded ? 'ArrowUpIcon' : 'ArrowDownIcon', onClick: onToggle }));
|
|
4341
4444
|
};
|
|
4342
4445
|
const renderPrimaryFoldButton = ({ label, labelIconBgVersion, icon, onToggle, labelIcon, }) => {
|
|
4343
|
-
return (jsxs("button", { className: style('border-none bg-transparent flex justify-between items-center w-full group/button', labelIcon?.icon ? 'py-xs' : 'py-lg'), onClick: onToggle, children: [jsxs("div", { className: "flex items-center group-hover/button:text-primary-main gap-s", children: [renderRoundedIcon(), label ? (jsx(Text, { size: "text-h6", font: "font-normal", children: label })) : null] }), icon ? jsx(Icon, { name: icon, iconVersion: rollupIconVersion, width: "24", height: "24" }) : null] }));
|
|
4446
|
+
return (jsxs("button", { className: style('border-none bg-transparent flex justify-between items-center w-full group/button', labelIcon?.icon ? 'py-xs' : 'py-lg'), onClick: onToggle, children: [jsxs("div", { className: "flex items-center text-start group-hover/button:text-primary-main gap-s", children: [renderRoundedIcon(), label ? (jsx(Text, { size: "text-h6", font: "font-normal", children: label })) : null] }), icon ? jsx(Icon, { name: icon, iconVersion: rollupIconVersion, width: "24", height: "24" }) : null] }));
|
|
4344
4447
|
};
|
|
4345
4448
|
|
|
4346
4449
|
const WrapperSelect = JSX(({ data, fieldLabel, fieldValue, selected, placeholder = '', setSelected, label }) => {
|
|
@@ -4540,106 +4643,30 @@
|
|
|
4540
4643
|
exclude: ['SwipeListControlBlock'],
|
|
4541
4644
|
};
|
|
4542
4645
|
|
|
4543
|
-
const
|
|
4544
|
-
const
|
|
4545
|
-
|
|
4546
|
-
|
|
4547
|
-
|
|
4548
|
-
|
|
4549
|
-
const INACTIVE_TEXT_CLASSES = 'text-secondary-text sm:group-hover/btn:text-primary-main';
|
|
4550
|
-
const TAB_CLASSES = {
|
|
4551
|
-
block: {
|
|
4552
|
-
scrollable: {
|
|
4553
|
-
active: `inline-flex px-4 grow whitespace-nowrap ${LINK_CLASSES} ${SCROLLABLE_ACTIVE_LINK_CLASSES}`,
|
|
4554
|
-
default: `inline-flex px-4 grow whitespace-nowrap ${LINK_CLASSES} ${INACTIVE_LINK_CLASSES}`,
|
|
4555
|
-
},
|
|
4556
|
-
centered: {
|
|
4557
|
-
active: `px-4 rounded-md ${LINK_CLASSES} ${WIDESCREEN_ACTIVE_LINK_CLASSES} whitespace-nowrap`,
|
|
4558
|
-
default: `px-4 rounded-md ${LINK_CLASSES} group/btn bg-transparent whitespace-nowrap`,
|
|
4559
|
-
},
|
|
4560
|
-
wideScreen: {
|
|
4561
|
-
active: `${LINK_CLASSES} ${WIDESCREEN_ACTIVE_LINK_CLASSES} whitespace-nowrap`,
|
|
4562
|
-
default: `${LINK_CLASSES} ${INACTIVE_LINK_CLASSES} whitespace-nowrap`,
|
|
4563
|
-
},
|
|
4564
|
-
},
|
|
4565
|
-
text: {
|
|
4566
|
-
scrollable: {
|
|
4567
|
-
active: `${TEXT_CLASSES} flex items-center h-full border-0 border-b-2`,
|
|
4568
|
-
default: `${TEXT_CLASSES} ${INACTIVE_TEXT_CLASSES}`,
|
|
4569
|
-
},
|
|
4570
|
-
centered: {
|
|
4571
|
-
active: `${TEXT_CLASSES} ${ACTIVE_TEXT_CLASSES}`,
|
|
4572
|
-
default: `${TEXT_CLASSES} ${INACTIVE_TEXT_CLASSES}`,
|
|
4573
|
-
},
|
|
4574
|
-
wideScreen: {
|
|
4575
|
-
active: `${TEXT_CLASSES} ${ACTIVE_TEXT_CLASSES} text-black px-2.5 bg-white sm:bg-primary-main sm:text-white`,
|
|
4576
|
-
default: `${TEXT_CLASSES} ${INACTIVE_TEXT_CLASSES} px-2.5 bg-white`,
|
|
4577
|
-
},
|
|
4578
|
-
},
|
|
4579
|
-
};
|
|
4580
|
-
const getTabClassName = (type, active, tabsMode) => {
|
|
4581
|
-
const styleActive = active ? 'active' : 'default';
|
|
4582
|
-
const mode = tabsMode || 'wideScreen';
|
|
4583
|
-
return TAB_CLASSES[type][mode][styleActive];
|
|
4584
|
-
};
|
|
4585
|
-
|
|
4586
|
-
const LinkTab = JSX((props) => {
|
|
4587
|
-
const { tab, currentTab, onClick, tabsMode } = props;
|
|
4588
|
-
const active = currentTab?.type === 'link' && currentTab.href === tab.href;
|
|
4589
|
-
const link = useLink();
|
|
4590
|
-
const adjustedProps = link(tab);
|
|
4591
|
-
const handleClick = (ev) => {
|
|
4592
|
-
adjustedProps.onClick(ev);
|
|
4593
|
-
onClick(tab);
|
|
4594
|
-
};
|
|
4595
|
-
return (jsx("div", { className: getTabClassName('block', active, tabsMode), role: "tab", "aria-selected": active, onClick: () => onClick(tab), children: jsx("a", { role: "tab", className: style('flex flex-1 items-center justify-center h-full', getTabClassName('text', active, tabsMode)), target: tab.target, href: adjustedProps.href, onClick: handleClick, children: jsx("span", { children: tab.text }) }) }));
|
|
4646
|
+
const scrollButtonStyle = 'hidden sm:flex absolute z-40 top-0';
|
|
4647
|
+
const ScrollableTabsControl = JSX(({ className, items = [], value, onChange, tabsType }) => {
|
|
4648
|
+
const [containerRef, scroll] = useSwipeListScroll({
|
|
4649
|
+
itemCount: items?.length || 0,
|
|
4650
|
+
});
|
|
4651
|
+
return (jsxs("div", { className: style('relative overflow-x-auto no-scrollbar', className), role: "tablist", children: [jsx(SwipeListContainer, { containerRef: containerRef, snapAlign: "snap-start", onVisibleIndicesChange: scroll.handleVisibleIndicesChange, children: items.map(renderTab(value, onChange, tabsType)) }), scroll.canScrollLeft ? (jsx(ScrollLeftButton, { className: style('left-6', scrollButtonStyle), onClick: scroll.scrollLeft })) : null, scroll.canScrollRight ? (jsx(ScrollRightButton, { className: style('right-6', scrollButtonStyle), onClick: scroll.scrollRight })) : null] }));
|
|
4596
4652
|
});
|
|
4597
4653
|
|
|
4598
|
-
const
|
|
4599
|
-
|
|
4600
|
-
|
|
4601
|
-
|
|
4602
|
-
|
|
4603
|
-
|
|
4604
|
-
|
|
4605
|
-
|
|
4606
|
-
return (jsx("div", { className: getTabClassName('block', active, tabsMode), role: "tab", "aria-selected": active, onClick: () => onClick(tab), children: jsxs("div", { className: style('flex flex-1 items-center justify-center h-full', getTabClassName('text', active, tabsMode)), children: [jsx("span", { children: tab.title }), showCounter && count ? renderCount(tabsMode, count, active) : null] }) }, `group-${String(i)}`));
|
|
4607
|
-
};
|
|
4608
|
-
const renderCount = (tabsMode, count, active) => {
|
|
4609
|
-
return (jsx("div", { className: style(BADGE_CLASSES, active && tabsMode !== 'scrollable' ? LIGHT_BADGE_CLASSES : DARK_BADGE_CLASSES), children: count }));
|
|
4610
|
-
};
|
|
4611
|
-
|
|
4612
|
-
const renderTab = ({ page, showCounter, ...rest }) => (tab, i) => {
|
|
4613
|
-
const type = tab.type;
|
|
4614
|
-
if (!(type === 'group' || type === 'link')) {
|
|
4615
|
-
return null;
|
|
4616
|
-
}
|
|
4617
|
-
switch (type) {
|
|
4618
|
-
case 'group':
|
|
4619
|
-
return renderGroupTab({ page, showCounter, ...rest })(tab, i);
|
|
4620
|
-
case 'link': {
|
|
4621
|
-
return jsx(LinkTab, { tab: tab, ...rest }, String(i));
|
|
4622
|
-
}
|
|
4654
|
+
const renderTabs = ({ tabsMode, ...props }) => {
|
|
4655
|
+
switch (tabsMode) {
|
|
4656
|
+
case 'wideScreen':
|
|
4657
|
+
return jsx(TabsControl, { ...props });
|
|
4658
|
+
case 'centered':
|
|
4659
|
+
return (jsx("div", { className: "flex", children: jsx(TabsControl, { className: "m-auto p-xs rounded-md bg-main-gray", tabsType: "rounded", ...props }) }));
|
|
4660
|
+
case 'scrollable':
|
|
4661
|
+
return (jsx("div", { className: "flex", children: jsx(ScrollableTabsControl, { className: "m-auto", tabsType: "underlined", ...props }) }));
|
|
4623
4662
|
default:
|
|
4624
|
-
|
|
4663
|
+
return null;
|
|
4625
4664
|
}
|
|
4626
|
-
return null;
|
|
4627
4665
|
};
|
|
4628
4666
|
|
|
4629
|
-
const
|
|
4630
|
-
|
|
4631
|
-
|
|
4632
|
-
const ScrollableTabs = JSX((props) => {
|
|
4633
|
-
const { tabs, ...rest } = props;
|
|
4634
|
-
const [containerRef, scroll] = useSwipeListScroll({
|
|
4635
|
-
itemCount: tabs?.length || 0,
|
|
4636
|
-
});
|
|
4637
|
-
return (jsxs("div", { className: "relative max-w-full m-auto", children: [jsx("div", { className: `font-sans max-w-full w-full overflow-hidden relative bg-white`, children: jsx(SwipeListContainer, { containerRef: containerRef, snapAlign: "snap-start", onVisibleIndicesChange: scroll.handleVisibleIndicesChange, children: tabs?.map(renderTab({ ...rest })) }) }), scroll.canScrollLeft ? (jsx(ScrollLeftButton, { className: `${scrollButtonStyle} left-6`, onClick: scroll.scrollLeft })) : null, scroll.canScrollRight ? (jsx(ScrollRightButton, { className: `${scrollButtonStyle} rotate-180 right-6`, onClick: scroll.scrollRight })) : null] }));
|
|
4638
|
-
});
|
|
4639
|
-
|
|
4640
|
-
const Tabs = JSX((props) => {
|
|
4641
|
-
const { className = '', isSticky, tabs, ...rest } = props;
|
|
4642
|
-
const [currentTab, setCurrentTab] = useState(tabs ? tabs[0] : undefined);
|
|
4667
|
+
const Tabs = JSX(({ className = '', isSticky, tabs = [], tabsMode, ...rest }) => {
|
|
4668
|
+
const normalizedTabs = useMemo(() => tabs.map(normalizeTab), [tabs]);
|
|
4669
|
+
const [activeTabIndex, setActiveTabIndex] = useState(0);
|
|
4643
4670
|
useEffect(() => {
|
|
4644
4671
|
if (!tabs || !tabs[0]) {
|
|
4645
4672
|
return;
|
|
@@ -4647,27 +4674,23 @@
|
|
|
4647
4674
|
fireTabEvent(tabs[0]);
|
|
4648
4675
|
}, []);
|
|
4649
4676
|
useEffect(() => {
|
|
4650
|
-
|
|
4651
|
-
|
|
4677
|
+
const activeTab = tabs[activeTabIndex];
|
|
4678
|
+
if (activeTab?.type === 'group') {
|
|
4679
|
+
defaultEventBus.subject('tab', { type: activeTab.type, label: activeTab.ref });
|
|
4652
4680
|
}
|
|
4653
|
-
}, [
|
|
4654
|
-
const
|
|
4655
|
-
|
|
4656
|
-
|
|
4681
|
+
}, [tabs, activeTabIndex]);
|
|
4682
|
+
const handleChange = useCallback((_) => {
|
|
4683
|
+
const index = normalizedTabs.indexOf(_);
|
|
4684
|
+
setActiveTabIndex(index);
|
|
4685
|
+
fireTabEvent(tabs[index]);
|
|
4657
4686
|
}, []);
|
|
4658
|
-
return (jsx(BlockWrapper, { className: style(
|
|
4687
|
+
return (jsx(BlockWrapper, { className: style(isSticky ? 'sticky top-1 z-20' : '', className), defaultPadding: "p-0", ...rest, children: renderTabs({
|
|
4688
|
+
items: normalizedTabs,
|
|
4689
|
+
onChange: handleChange,
|
|
4690
|
+
value: normalizedTabs[activeTabIndex],
|
|
4691
|
+
tabsMode,
|
|
4692
|
+
}) }));
|
|
4659
4693
|
});
|
|
4660
|
-
const renderTabs = ({ tabsMode, tabs, ...rest }) => {
|
|
4661
|
-
switch (tabsMode) {
|
|
4662
|
-
case 'wideScreen':
|
|
4663
|
-
return tabs?.map(renderTab({ tabsMode, ...rest }));
|
|
4664
|
-
case 'centered':
|
|
4665
|
-
return jsx(CenteredTabs, { tabs: tabs, tabsMode: tabsMode, ...rest });
|
|
4666
|
-
case 'scrollable':
|
|
4667
|
-
return jsx(ScrollableTabs, { tabs: tabs, tabsMode: tabsMode, ...rest });
|
|
4668
|
-
}
|
|
4669
|
-
return null;
|
|
4670
|
-
};
|
|
4671
4694
|
const fireTabEvent = (tab) => {
|
|
4672
4695
|
if (tab.type === 'group') {
|
|
4673
4696
|
defaultEventBus.fire('tab', { type: tab.type, label: tab.ref });
|
|
@@ -4676,6 +4699,7 @@
|
|
|
4676
4699
|
defaultEventBus.fire('tab', { type: tab.type, label: tab.href });
|
|
4677
4700
|
}
|
|
4678
4701
|
};
|
|
4702
|
+
const normalizeTab = (_) => (_?.type === 'group' ? { text: _.title } : _);
|
|
4679
4703
|
|
|
4680
4704
|
const DIVIDER_CLASSES = 'border-main-divider border border-t-0 border-x-0';
|
|
4681
4705
|
const FIRST_CELL_CLASSES = 'w-[354px] flex-shrink-0';
|
|
@@ -4942,52 +4966,6 @@
|
|
|
4942
4966
|
ExchangeRateOffice,
|
|
4943
4967
|
};
|
|
4944
4968
|
|
|
4945
|
-
const STORAGE_DEFAULT_TTL = 86400000; // 24 * 60 * 60 * 1000
|
|
4946
|
-
function useCachedAsyncData(key, fetcher, storage = globalThis?.localStorage) {
|
|
4947
|
-
const cachedFetcher = useCallback(async (...args) => {
|
|
4948
|
-
const storageKey = `async:${key}`;
|
|
4949
|
-
const storageData = storage.getItem(storageKey);
|
|
4950
|
-
const cachedData = getParsedData(storageData);
|
|
4951
|
-
if (cachedData) {
|
|
4952
|
-
return cachedData;
|
|
4953
|
-
}
|
|
4954
|
-
const data = await fetcher(...args);
|
|
4955
|
-
storage.setItem(storageKey, JSON.stringify({ data, timestamp: Date.now() }));
|
|
4956
|
-
return data;
|
|
4957
|
-
}, [key, fetcher]);
|
|
4958
|
-
return useAsyncData(key, cachedFetcher);
|
|
4959
|
-
}
|
|
4960
|
-
function getParsedData(storageData) {
|
|
4961
|
-
const { data = null, timestamp = null } = storageData ? JSON.parse(storageData) : {};
|
|
4962
|
-
return data && Date.now() - timestamp < STORAGE_DEFAULT_TTL ? data : undefined;
|
|
4963
|
-
}
|
|
4964
|
-
|
|
4965
|
-
const REGION_URL = '/api/v1/region';
|
|
4966
|
-
function useLocation(defaultLocation = 'Москва') {
|
|
4967
|
-
const currentLocation = getLocalStorageLocation();
|
|
4968
|
-
const [location, setLocation] = useState(currentLocation?.region ?? { name: defaultLocation });
|
|
4969
|
-
const { data } = useCachedAsyncData(REGION_URL, fetchJSONUnsafe);
|
|
4970
|
-
useEffect(() => {
|
|
4971
|
-
setLocation(currentLocation?.region && currentLocation?.manual
|
|
4972
|
-
? currentLocation.region
|
|
4973
|
-
: data || { name: defaultLocation });
|
|
4974
|
-
}, [data]);
|
|
4975
|
-
const onChangeLocation = useCallback((region) => {
|
|
4976
|
-
globalThis.localStorage?.setItem('location', JSON.stringify({ manual: true, region }));
|
|
4977
|
-
setLocation(region);
|
|
4978
|
-
}, []);
|
|
4979
|
-
return [location, onChangeLocation];
|
|
4980
|
-
}
|
|
4981
|
-
const getLocalStorageLocation = () => {
|
|
4982
|
-
const localStorageLocation = globalThis.localStorage?.getItem('location');
|
|
4983
|
-
try {
|
|
4984
|
-
return localStorageLocation ? JSON.parse(localStorageLocation) : null;
|
|
4985
|
-
}
|
|
4986
|
-
catch (_) {
|
|
4987
|
-
return null;
|
|
4988
|
-
}
|
|
4989
|
-
};
|
|
4990
|
-
|
|
4991
4969
|
const debounce = (fn, delay = 600) => {
|
|
4992
4970
|
let timerId;
|
|
4993
4971
|
const debouncedCallback = (...args) => {
|
|
@@ -5046,7 +5024,7 @@
|
|
|
5046
5024
|
const COOKIE_DIALOG_ID = 'cookie';
|
|
5047
5025
|
const DIALOG_INITIAL_DELAY = 3 * 1000;
|
|
5048
5026
|
const CookiePopup = JSX(({ termLink, personalDataPolicyLink }) => {
|
|
5049
|
-
const {
|
|
5027
|
+
const [opened, { setTrue: open, setFalse: close }] = useBool();
|
|
5050
5028
|
useDebouncedEffect(() => {
|
|
5051
5029
|
if (!globalThis.localStorage?.getItem(COOKIE_DIALOG_ID)) {
|
|
5052
5030
|
open();
|
|
@@ -5055,10 +5033,75 @@
|
|
|
5055
5033
|
const handleClose = useCallback(() => {
|
|
5056
5034
|
globalThis.localStorage?.setItem(COOKIE_DIALOG_ID, 'true');
|
|
5057
5035
|
close();
|
|
5036
|
+
}, []);
|
|
5037
|
+
return opened ? (jsx("div", { className: "container fixed left-0 right-0 bottom-0 z-50", children: jsxs("div", { className: "bg-white m-xl p-xl rounded-md flex sm:items-center shadow-[0_4px_25px_rgba(0,0,0,0.07)]", children: [jsx("div", { className: "sm:flex-1", children: jsxs(Paragraph, { size: "text-s", font: "font-light", color: "text-primary-text", children: ["\u0410\u041E \u00AB\u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A\u00BB \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442", jsx(LinkWrapper, { isRemote: true, className: linkWrapperStyle(termLink?.href), ...termLink, children: "cookie" }), "(\u0444\u0430\u0439\u043B\u044B \u0441 \u0434\u0430\u043D\u043D\u044B\u043C\u0438 \u043E \u043F\u0440\u043E\u0448\u043B\u044B\u0445 \u043F\u043E\u0441\u0435\u0449\u0435\u043D\u0438\u044F\u0445 \u0441\u0430\u0439\u0442\u0430) \u0434\u043B\u044F \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043E\u0432 \u0438 \u0443\u0434\u043E\u0431\u0441\u0442\u0432\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439. \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0437\u0430\u043F\u0440\u0435\u0442\u0438\u0442\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435 cookie \u0432 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0445 \u0441\u0432\u043E\u0435\u0433\u043E \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430.", jsx(LinkWrapper, { isRemote: true, className: linkWrapperStyle(personalDataPolicyLink?.href), ...personalDataPolicyLink, children: "\u041E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430 \u0412\u0430\u0448\u0438\u0445 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445" }), "\u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0441\u044F \u0432 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0442\u0440\u0435\u0431\u043E\u0432\u0430\u043D\u0438\u044F\u043C\u0438 \u0424\u0435\u0434\u0435\u0440\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0437\u0430\u043A\u043E\u043D\u0430 \u043E\u0442 27.07.2006 \u2116 152-\u04243 \u00AB\u041E \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445\u00BB."] }) }), jsx("div", { className: "ml-s sm:ml-0 w-24 flex justify-end", children: jsx(CloseButton, { className: "bg-main-gray rounded-md", onClose: handleClose }) })] }) })) : null;
|
|
5038
|
+
});
|
|
5039
|
+
const linkWrapperStyle = (href) => style('inline mx-1', href ? 'text-green-dark' : '');
|
|
5040
|
+
|
|
5041
|
+
function useList(initialList = []) {
|
|
5042
|
+
const [list, setList] = useState(initialList);
|
|
5043
|
+
const push = useCallback((item) => setList((_) => [..._, item]), []);
|
|
5044
|
+
const pop = useCallback(() => setList((_) => _.slice(0, -1)), []);
|
|
5045
|
+
const remove = useCallback((item) => setList((_) => _.filter((currentItem) => currentItem !== item)), []);
|
|
5046
|
+
const clear = useCallback(() => setList([]), []);
|
|
5047
|
+
return [list, { setList, push, pop, remove, clear }];
|
|
5048
|
+
}
|
|
5049
|
+
|
|
5050
|
+
function assertUnreachable(x) {
|
|
5051
|
+
throw new Error(x);
|
|
5052
|
+
}
|
|
5053
|
+
|
|
5054
|
+
const DialogManager = JSX(() => {
|
|
5055
|
+
const [dialogs, { push, pop, clear }] = useList();
|
|
5056
|
+
const closeAll = useCallback(() => {
|
|
5057
|
+
for (const _ of dialogs) {
|
|
5058
|
+
_.onClose && _.onClose();
|
|
5059
|
+
}
|
|
5060
|
+
clear();
|
|
5061
|
+
}, [dialogs]);
|
|
5062
|
+
const close = useCallback(() => {
|
|
5063
|
+
const _ = dialogs[dialogs.length - 1];
|
|
5064
|
+
_?.onClose && _.onClose();
|
|
5065
|
+
pop();
|
|
5066
|
+
}, [dialogs]);
|
|
5067
|
+
useEffect(() => defaultEventBus.subscribe('dialog', (action) => {
|
|
5068
|
+
switch (action.type) {
|
|
5069
|
+
case 'open':
|
|
5070
|
+
push(action);
|
|
5071
|
+
break;
|
|
5072
|
+
case 'close':
|
|
5073
|
+
if (action.all) {
|
|
5074
|
+
closeAll();
|
|
5075
|
+
}
|
|
5076
|
+
else {
|
|
5077
|
+
close();
|
|
5078
|
+
}
|
|
5079
|
+
break;
|
|
5080
|
+
default:
|
|
5081
|
+
assertUnreachable(action);
|
|
5082
|
+
}
|
|
5083
|
+
}), [closeAll, close]);
|
|
5084
|
+
useEffect(() => {
|
|
5085
|
+
const handleEscape = ({ key }) => {
|
|
5086
|
+
if (key === 'Escape') {
|
|
5087
|
+
close();
|
|
5088
|
+
}
|
|
5089
|
+
};
|
|
5090
|
+
globalThis.document?.addEventListener('keydown', handleEscape);
|
|
5091
|
+
return () => {
|
|
5092
|
+
globalThis.document?.removeEventListener('keydown', handleEscape);
|
|
5093
|
+
};
|
|
5058
5094
|
}, [close]);
|
|
5059
|
-
|
|
5095
|
+
useEffect(() => {
|
|
5096
|
+
if (dialogs.length) {
|
|
5097
|
+
globalThis.document?.body.classList.add('no-scrollbar');
|
|
5098
|
+
}
|
|
5099
|
+
else {
|
|
5100
|
+
globalThis.document?.body.classList.remove('no-scrollbar');
|
|
5101
|
+
}
|
|
5102
|
+
}, [dialogs]);
|
|
5103
|
+
return dialogs.length ? (jsx("div", { className: "fixed inset-0 z-50", role: "dialog", children: dialogs.map(({ dialog, id }, i) => (jsx("div", { className: style('absolute inset-0 overflow-x-hidden overflow-y-scroll no-scrollbar', i === dialogs.length - 1 ? '' : 'hidden'), children: dialog }, String(id || i)))) })) : null;
|
|
5060
5104
|
});
|
|
5061
|
-
const getStyleLinkWrapper = (href) => ['inline mx-1', href ? 'text-green-dark' : ''];
|
|
5062
5105
|
|
|
5063
5106
|
const api = LikeAPI();
|
|
5064
5107
|
function useLikeService(pagePath) {
|
|
@@ -5110,23 +5153,8 @@
|
|
|
5110
5153
|
blockDecorator,
|
|
5111
5154
|
parent: data,
|
|
5112
5155
|
};
|
|
5113
|
-
const sitemap = useSWRResource(projectSettings.SITEMAP || 'sitemap', data?.fallback);
|
|
5114
|
-
const [location, onChangeLocation] = useLocation(sitemap?.defaultLocation);
|
|
5115
5156
|
useBlockRouterProvider();
|
|
5116
|
-
|
|
5117
|
-
useDialogHandlers({
|
|
5118
|
-
onOpen: setSomeDialogOpened,
|
|
5119
|
-
onClose: resetSomeDialogOpened,
|
|
5120
|
-
});
|
|
5121
|
-
return (jsxs("section", { className: style('relative @container', pageStyle, className, isSomeDialogOpened ? 'overflow-hidden h-screen' : ''), "data-theme": colorPalette, children: [slots?.header ? (jsx("div", { className: "relative z-10 mb-5 shadow-[0_8px_32px_0px_#00000014]", children: renderBlocksList(slots?.header, {
|
|
5122
|
-
...options,
|
|
5123
|
-
slotName: 'header',
|
|
5124
|
-
extraProps: { sitemap, location },
|
|
5125
|
-
}) })) : null, jsxs("div", { className: "container @lg:grid @lg:grid-cols-12 @lg:gap-1", children: [renderChildren({ block: data, options, extraProps: { className: 'scroll-mt-12' } }), renderBlocksList(slots?.footer, {
|
|
5126
|
-
...options,
|
|
5127
|
-
slotName: 'footer',
|
|
5128
|
-
extraProps: { sitemap, location },
|
|
5129
|
-
})] }), likeControl ? renderLikeControl() : null, jsx(CookiePopup, { termLink: { href: '/pd-policy#cookie', target: '_blank' }, personalDataPolicyLink: { href: '/pd-policy', target: '_blank' } }), jsx(SearchDialog, { topItems: sitemap?.topItems }), jsx(LocationDialog, { currentLocation: location, foreignOffices: sitemap?.foreignOffices, onChangeLocation: onChangeLocation })] }));
|
|
5157
|
+
return (jsxs("div", { children: [jsxs("section", { className: style('relative @container', pageStyle, className), "data-theme": colorPalette, children: [slots?.header ? (jsx("div", { className: "relative z-10 mb-5 shadow-[0_8px_32px_0px_#00000014]", children: renderBlocksList(slots?.header, { ...options, slotName: 'header' }) })) : null, jsxs("div", { className: "container @lg:grid @lg:grid-cols-12 @lg:gap-1", children: [renderChildren({ block: data, options, extraProps: { className: 'scroll-mt-12' } }), renderBlocksList(slots?.footer, { ...options, slotName: 'footer' })] }), likeControl ? renderLikeControl() : null] }), jsx(DialogManager, {}), jsx(CookiePopup, { termLink: { href: '/pd-policy#cookie', target: '_blank' }, personalDataPolicyLink: { href: '/pd-policy', target: '_blank' } })] }));
|
|
5130
5158
|
});
|
|
5131
5159
|
ContentPage.childrenTypes = [];
|
|
5132
5160
|
ContentPage.slots = () => ['header', 'footer'];
|
|
@@ -5134,7 +5162,7 @@
|
|
|
5134
5162
|
return (jsx("div", { className: "flex items-end absolute bottom-0 right-0 h-full pointer-events-none", children: jsx(LikeControl, { className: "rounded-tl-3xl sticky bottom-0 pointer-events-auto" }) }));
|
|
5135
5163
|
}
|
|
5136
5164
|
|
|
5137
|
-
const packageVersion = "0.
|
|
5165
|
+
const packageVersion = "0.13.0";
|
|
5138
5166
|
|
|
5139
5167
|
exports.Blocks = Blocks;
|
|
5140
5168
|
exports.ContentPage = ContentPage;
|