@redneckz/wildless-cms-uni-blocks 0.3.91 → 0.3.92
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/bundle/blocks.schema.json +1 -1
- package/bundle/bundle.umd.js +161 -30
- package/bundle/bundle.umd.min.js +1 -1
- package/cosmos-static/icons/PackA4.svg +1 -0
- package/dist/components/BlockContent.d.ts +4 -3
- package/dist/components/Blocks.d.ts +1 -0
- package/dist/components/Blocks.js +2 -0
- package/dist/components/Blocks.js.map +1 -1
- package/dist/components/Catalog/CatalogCard.js +17 -1
- package/dist/components/Catalog/CatalogCard.js.map +1 -1
- package/dist/components/Catalog/CatalogContent.d.ts +8 -2
- package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +5 -2
- package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
- package/dist/components/Footer/Contacts.js +3 -3
- package/dist/components/Footer/Contacts.js.map +1 -1
- package/dist/components/Footer/Footer.js +1 -1
- package/dist/components/Footer/Footer.js.map +1 -1
- package/dist/components/Footer/Footer.mobile.js +1 -1
- package/dist/components/Footer/Footer.mobile.js.map +1 -1
- package/dist/components/Footer/HorizontalNavigation.js +1 -1
- package/dist/components/Footer/HorizontalNavigation.js.map +1 -1
- package/dist/components/Footer/HorizontalNavigation.mobile.js +1 -1
- package/dist/components/Footer/HorizontalNavigation.mobile.js.map +1 -1
- package/dist/components/Footer/HorizontalNavigationLink.js +1 -1
- package/dist/components/Footer/HorizontalNavigationLink.js.map +1 -1
- package/dist/components/Footer/MediaButton.js +1 -1
- package/dist/components/Footer/MediaButton.js.map +1 -1
- package/dist/components/Footer/Sitemap.js +3 -3
- package/dist/components/Footer/Sitemap.js.map +1 -1
- package/dist/components/Footer/SocialMedia.js +1 -1
- package/dist/components/Footer/SocialMedia.js.map +1 -1
- package/dist/components/Footer/TextInformation.js +1 -1
- package/dist/components/Footer/TextInformation.js.map +1 -1
- package/dist/components/Footer/TextInformation.mobile.js +1 -1
- package/dist/components/Footer/TextInformation.mobile.js.map +1 -1
- package/dist/components/Footer/TextInformationLink.js +1 -1
- package/dist/components/Footer/TextInformationLink.js.map +1 -1
- package/dist/components/Header/Header.js +3 -1
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/Header/HeaderSecondaryMenu.js +1 -1
- package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/dist/components/Header/HeaderSubMenu.js +1 -1
- package/dist/components/LinkDocs/LinkDocs.js.map +1 -1
- package/dist/components/ProductBlock/ProductBlock.js +2 -3
- package/dist/components/ProductBlock/ProductBlock.js.map +1 -1
- package/dist/components/ProductBlock/renderBackwardButton.js +1 -1
- package/dist/components/ProductBlock/renderBackwardButton.js.map +1 -1
- package/dist/components/ProductTile/ProductTile.js +2 -2
- package/dist/components/ProductTile/ProductTile.js.map +1 -1
- package/dist/components/SafeDepositRental/SafeDepositRental.d.ts +5 -0
- package/dist/components/SafeDepositRental/SafeDepositRental.js +15 -0
- package/dist/components/SafeDepositRental/SafeDepositRental.js.map +1 -0
- package/dist/components/SafeDepositRental/SafeDepositRentalContent.d.ts +7 -0
- package/dist/components/SafeDepositRental/SafeDepositRentalContent.js +2 -0
- package/dist/components/SafeDepositRental/SafeDepositRentalContent.js.map +1 -0
- package/dist/components/SafeDepositRental/SafeDepositRentalForm.d.ts +12 -0
- package/dist/components/SafeDepositRental/SafeDepositRentalForm.js +72 -0
- package/dist/components/SafeDepositRental/SafeDepositRentalForm.js.map +1 -0
- package/dist/components/SafeDepositRental/SafeDepositRentalTotal.d.ts +8 -0
- package/dist/components/SafeDepositRental/SafeDepositRentalTotal.js +28 -0
- package/dist/components/SafeDepositRental/SafeDepositRentalTotal.js.map +1 -0
- package/dist/hooks/useSafeDepositRental.d.ts +2 -0
- package/dist/hooks/useSafeDepositRental.js +19 -0
- package/dist/hooks/useSafeDepositRental.js.map +1 -0
- package/dist/icons/IconName.d.ts +4 -2
- package/dist/icons/IconName.js +2 -0
- package/dist/icons/IconName.js.map +1 -1
- package/dist/ui-kit/Radio/Radio.d.ts +2 -0
- package/dist/ui-kit/Radio/Radio.js +6 -0
- package/dist/ui-kit/Radio/Radio.js.map +1 -0
- package/dist/ui-kit/Radio/RadioProps.d.ts +9 -0
- package/dist/ui-kit/Radio/RadioProps.js +2 -0
- package/dist/ui-kit/Radio/RadioProps.js.map +1 -0
- package/dist/ui-kit/SearchBar/SearchBarInner.js +1 -1
- package/dist/ui-kit/Select/Select.js +4 -1
- package/dist/ui-kit/Select/Select.js.map +1 -1
- package/lib/common.css +1 -1
- package/lib/components/BlockContent.d.ts +4 -3
- package/lib/components/Blocks.d.ts +1 -0
- package/lib/components/Blocks.js +2 -0
- package/lib/components/Blocks.js.map +1 -1
- package/lib/components/Catalog/CatalogCard.js +17 -1
- package/lib/components/Catalog/CatalogCard.js.map +1 -1
- package/lib/components/Catalog/CatalogContent.d.ts +8 -2
- package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +6 -3
- package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
- package/lib/components/Footer/Contacts.js +3 -3
- package/lib/components/Footer/Contacts.js.map +1 -1
- package/lib/components/Footer/Footer.js +1 -1
- package/lib/components/Footer/Footer.js.map +1 -1
- package/lib/components/Footer/Footer.mobile.js +1 -1
- package/lib/components/Footer/Footer.mobile.js.map +1 -1
- package/lib/components/Footer/HorizontalNavigation.js +1 -1
- package/lib/components/Footer/HorizontalNavigation.js.map +1 -1
- package/lib/components/Footer/HorizontalNavigation.mobile.js +1 -1
- package/lib/components/Footer/HorizontalNavigation.mobile.js.map +1 -1
- package/lib/components/Footer/HorizontalNavigationLink.js +1 -1
- package/lib/components/Footer/HorizontalNavigationLink.js.map +1 -1
- package/lib/components/Footer/MediaButton.js +1 -1
- package/lib/components/Footer/MediaButton.js.map +1 -1
- package/lib/components/Footer/Sitemap.js +3 -3
- package/lib/components/Footer/Sitemap.js.map +1 -1
- package/lib/components/Footer/SocialMedia.js +1 -1
- package/lib/components/Footer/SocialMedia.js.map +1 -1
- package/lib/components/Footer/TextInformation.js +1 -1
- package/lib/components/Footer/TextInformation.js.map +1 -1
- package/lib/components/Footer/TextInformation.mobile.js +1 -1
- package/lib/components/Footer/TextInformation.mobile.js.map +1 -1
- package/lib/components/Footer/TextInformationLink.js +1 -1
- package/lib/components/Footer/TextInformationLink.js.map +1 -1
- package/lib/components/Header/Header.js +3 -1
- package/lib/components/Header/Header.js.map +1 -1
- package/lib/components/Header/HeaderSecondaryMenu.js +1 -1
- package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/lib/components/Header/HeaderSubMenu.js +1 -1
- package/lib/components/LinkDocs/LinkDocs.js.map +1 -1
- package/lib/components/ProductBlock/ProductBlock.js +2 -3
- package/lib/components/ProductBlock/ProductBlock.js.map +1 -1
- package/lib/components/ProductBlock/renderBackwardButton.js +1 -1
- package/lib/components/ProductBlock/renderBackwardButton.js.map +1 -1
- package/lib/components/ProductTile/ProductTile.js +2 -2
- package/lib/components/ProductTile/ProductTile.js.map +1 -1
- package/lib/components/SafeDepositRental/SafeDepositRental.d.ts +5 -0
- package/lib/components/SafeDepositRental/SafeDepositRental.fixture.d.ts +5 -0
- package/lib/components/SafeDepositRental/SafeDepositRental.js +13 -0
- package/lib/components/SafeDepositRental/SafeDepositRental.js.map +1 -0
- package/lib/components/SafeDepositRental/SafeDepositRentalContent.d.ts +7 -0
- package/lib/components/SafeDepositRental/SafeDepositRentalContent.js +2 -0
- package/lib/components/SafeDepositRental/SafeDepositRentalContent.js.map +1 -0
- package/lib/components/SafeDepositRental/SafeDepositRentalForm.d.ts +12 -0
- package/lib/components/SafeDepositRental/SafeDepositRentalForm.js +68 -0
- package/lib/components/SafeDepositRental/SafeDepositRentalForm.js.map +1 -0
- package/lib/components/SafeDepositRental/SafeDepositRentalTotal.d.ts +8 -0
- package/lib/components/SafeDepositRental/SafeDepositRentalTotal.js +25 -0
- package/lib/components/SafeDepositRental/SafeDepositRentalTotal.js.map +1 -0
- package/lib/hooks/useSafeDepositRental.d.ts +2 -0
- package/lib/hooks/useSafeDepositRental.js +16 -0
- package/lib/hooks/useSafeDepositRental.js.map +1 -0
- package/lib/icons/IconName.d.ts +4 -2
- package/lib/icons/IconName.js +2 -0
- package/lib/icons/IconName.js.map +1 -1
- package/lib/ui-kit/Radio/Radio.d.ts +2 -0
- package/lib/ui-kit/Radio/Radio.js +4 -0
- package/lib/ui-kit/Radio/Radio.js.map +1 -0
- package/lib/ui-kit/Radio/RadioProps.d.ts +9 -0
- package/lib/ui-kit/Radio/RadioProps.js +2 -0
- package/lib/ui-kit/Radio/RadioProps.js.map +1 -0
- package/lib/ui-kit/SearchBar/SearchBarInner.js +1 -1
- package/lib/ui-kit/Select/Select.js +4 -1
- package/lib/ui-kit/Select/Select.js.map +1 -1
- package/mobile/bundle/bundle.umd.js +25 -22
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/dist/components/BlockContent.d.ts +4 -3
- package/mobile/dist/components/Catalog/CatalogCard.js +17 -1
- package/mobile/dist/components/Catalog/CatalogCard.js.map +1 -1
- package/mobile/dist/components/Catalog/CatalogContent.d.ts +8 -2
- package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +5 -2
- package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
- package/mobile/dist/components/Footer/Contacts.js +3 -3
- package/mobile/dist/components/Footer/Contacts.js.map +1 -1
- package/mobile/dist/components/Footer/Footer.js +1 -1
- package/mobile/dist/components/Footer/Footer.js.map +1 -1
- package/mobile/dist/components/Footer/HorizontalNavigation.js +1 -1
- package/mobile/dist/components/Footer/HorizontalNavigation.js.map +1 -1
- package/mobile/dist/components/Footer/HorizontalNavigationLink.js +1 -1
- package/mobile/dist/components/Footer/HorizontalNavigationLink.js.map +1 -1
- package/mobile/dist/components/Footer/MediaButton.js +1 -1
- package/mobile/dist/components/Footer/MediaButton.js.map +1 -1
- package/mobile/dist/components/Footer/Sitemap.js +3 -3
- package/mobile/dist/components/Footer/Sitemap.js.map +1 -1
- package/mobile/dist/components/Footer/TextInformation.js +1 -1
- package/mobile/dist/components/Footer/TextInformation.js.map +1 -1
- package/mobile/dist/components/Footer/TextInformationLink.js +1 -1
- package/mobile/dist/components/Footer/TextInformationLink.js.map +1 -1
- package/mobile/dist/components/Header/HeaderSecondaryMenu.js +1 -1
- package/mobile/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/mobile/dist/components/Header/HeaderSubMenu.js +1 -1
- package/mobile/dist/components/ProductBlock/renderBackwardButton.js +1 -1
- package/mobile/dist/components/ProductBlock/renderBackwardButton.js.map +1 -1
- package/mobile/dist/components/ProductTile/ProductTile.js +2 -2
- package/mobile/dist/components/ProductTile/ProductTile.js.map +1 -1
- package/mobile/dist/components/SafeDepositRental/SafeDepositRental.d.ts +5 -0
- package/mobile/dist/components/SafeDepositRental/SafeDepositRental.js +15 -0
- package/mobile/dist/components/SafeDepositRental/SafeDepositRental.js.map +1 -0
- package/mobile/dist/components/SafeDepositRental/SafeDepositRentalContent.d.ts +7 -0
- package/mobile/dist/components/SafeDepositRental/SafeDepositRentalContent.js +2 -0
- package/mobile/dist/components/SafeDepositRental/SafeDepositRentalContent.js.map +1 -0
- package/mobile/dist/components/SafeDepositRental/SafeDepositRentalForm.d.ts +12 -0
- package/mobile/dist/components/SafeDepositRental/SafeDepositRentalForm.js +72 -0
- package/mobile/dist/components/SafeDepositRental/SafeDepositRentalForm.js.map +1 -0
- package/mobile/dist/components/SafeDepositRental/SafeDepositRentalTotal.d.ts +8 -0
- package/mobile/dist/components/SafeDepositRental/SafeDepositRentalTotal.js +28 -0
- package/mobile/dist/components/SafeDepositRental/SafeDepositRentalTotal.js.map +1 -0
- package/mobile/dist/hooks/useSafeDepositRental.d.ts +2 -0
- package/mobile/dist/hooks/useSafeDepositRental.js +19 -0
- package/mobile/dist/hooks/useSafeDepositRental.js.map +1 -0
- package/mobile/dist/icons/IconName.d.ts +4 -2
- package/mobile/dist/icons/IconName.js +2 -0
- package/mobile/dist/icons/IconName.js.map +1 -1
- package/mobile/dist/ui-kit/Radio/Radio.d.ts +2 -0
- package/mobile/dist/ui-kit/Radio/Radio.js +6 -0
- package/mobile/dist/ui-kit/Radio/Radio.js.map +1 -0
- package/mobile/dist/ui-kit/Radio/RadioProps.d.ts +9 -0
- package/mobile/dist/ui-kit/Radio/RadioProps.js +2 -0
- package/mobile/dist/ui-kit/Radio/RadioProps.js.map +1 -0
- package/mobile/dist/ui-kit/SearchBar/SearchBarInner.js +1 -1
- package/mobile/dist/ui-kit/Select/Select.js +4 -1
- package/mobile/dist/ui-kit/Select/Select.js.map +1 -1
- package/mobile/lib/components/BlockContent.d.ts +4 -3
- package/mobile/lib/components/Catalog/CatalogCard.js +17 -1
- package/mobile/lib/components/Catalog/CatalogCard.js.map +1 -1
- package/mobile/lib/components/Catalog/CatalogContent.d.ts +8 -2
- package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +6 -3
- package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
- package/mobile/lib/components/Footer/Contacts.js +3 -3
- package/mobile/lib/components/Footer/Contacts.js.map +1 -1
- package/mobile/lib/components/Footer/Footer.js +1 -1
- package/mobile/lib/components/Footer/Footer.js.map +1 -1
- package/mobile/lib/components/Footer/HorizontalNavigation.js +1 -1
- package/mobile/lib/components/Footer/HorizontalNavigation.js.map +1 -1
- package/mobile/lib/components/Footer/HorizontalNavigationLink.js +1 -1
- package/mobile/lib/components/Footer/HorizontalNavigationLink.js.map +1 -1
- package/mobile/lib/components/Footer/MediaButton.js +1 -1
- package/mobile/lib/components/Footer/MediaButton.js.map +1 -1
- package/mobile/lib/components/Footer/Sitemap.js +3 -3
- package/mobile/lib/components/Footer/Sitemap.js.map +1 -1
- package/mobile/lib/components/Footer/TextInformation.js +1 -1
- package/mobile/lib/components/Footer/TextInformation.js.map +1 -1
- package/mobile/lib/components/Footer/TextInformationLink.js +1 -1
- package/mobile/lib/components/Footer/TextInformationLink.js.map +1 -1
- package/mobile/lib/components/Header/HeaderSecondaryMenu.js +1 -1
- package/mobile/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/mobile/lib/components/Header/HeaderSubMenu.js +1 -1
- package/mobile/lib/components/ProductBlock/renderBackwardButton.js +1 -1
- package/mobile/lib/components/ProductBlock/renderBackwardButton.js.map +1 -1
- package/mobile/lib/components/ProductTile/ProductTile.js +2 -2
- package/mobile/lib/components/ProductTile/ProductTile.js.map +1 -1
- package/mobile/lib/components/SafeDepositRental/SafeDepositRental.d.ts +5 -0
- package/mobile/lib/components/SafeDepositRental/SafeDepositRental.js +13 -0
- package/mobile/lib/components/SafeDepositRental/SafeDepositRental.js.map +1 -0
- package/mobile/lib/components/SafeDepositRental/SafeDepositRentalContent.d.ts +7 -0
- package/mobile/lib/components/SafeDepositRental/SafeDepositRentalContent.js +2 -0
- package/mobile/lib/components/SafeDepositRental/SafeDepositRentalContent.js.map +1 -0
- package/mobile/lib/components/SafeDepositRental/SafeDepositRentalForm.d.ts +12 -0
- package/mobile/lib/components/SafeDepositRental/SafeDepositRentalForm.js +68 -0
- package/mobile/lib/components/SafeDepositRental/SafeDepositRentalForm.js.map +1 -0
- package/mobile/lib/components/SafeDepositRental/SafeDepositRentalTotal.d.ts +8 -0
- package/mobile/lib/components/SafeDepositRental/SafeDepositRentalTotal.js +25 -0
- package/mobile/lib/components/SafeDepositRental/SafeDepositRentalTotal.js.map +1 -0
- package/mobile/lib/hooks/useSafeDepositRental.d.ts +2 -0
- package/mobile/lib/hooks/useSafeDepositRental.js +16 -0
- package/mobile/lib/hooks/useSafeDepositRental.js.map +1 -0
- package/mobile/lib/icons/IconName.d.ts +4 -2
- package/mobile/lib/icons/IconName.js +2 -0
- package/mobile/lib/icons/IconName.js.map +1 -1
- package/mobile/lib/ui-kit/Radio/Radio.d.ts +2 -0
- package/mobile/lib/ui-kit/Radio/Radio.js +4 -0
- package/mobile/lib/ui-kit/Radio/Radio.js.map +1 -0
- package/mobile/lib/ui-kit/Radio/RadioProps.d.ts +9 -0
- package/mobile/lib/ui-kit/Radio/RadioProps.js +2 -0
- package/mobile/lib/ui-kit/Radio/RadioProps.js.map +1 -0
- package/mobile/lib/ui-kit/SearchBar/SearchBarInner.js +1 -1
- package/mobile/lib/ui-kit/Select/Select.js +4 -1
- package/mobile/lib/ui-kit/Select/Select.js.map +1 -1
- package/mobile/src/components/BlockContent.ts +5 -3
- package/mobile/src/components/Catalog/Catalog.example.json +3 -3
- package/mobile/src/components/Catalog/CatalogCard.tsx +28 -1
- package/mobile/src/components/Catalog/CatalogContent.ts +8 -2
- package/mobile/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +14 -3
- package/mobile/src/components/Footer/Contacts.tsx +3 -6
- package/mobile/src/components/Footer/Footer.tsx +1 -1
- package/mobile/src/components/Footer/HorizontalNavigation.tsx +1 -1
- package/mobile/src/components/Footer/HorizontalNavigationLink.tsx +1 -1
- package/mobile/src/components/Footer/MediaButton.tsx +1 -1
- package/mobile/src/components/Footer/Sitemap.tsx +4 -4
- package/mobile/src/components/Footer/TextInformation.tsx +1 -1
- package/mobile/src/components/Footer/TextInformationLink.tsx +1 -1
- package/mobile/src/components/Header/HeaderSecondaryMenu.tsx +7 -5
- package/mobile/src/components/Header/HeaderSubMenu.tsx +1 -1
- package/mobile/src/components/ProductBlock/renderBackwardButton.tsx +1 -2
- package/mobile/src/components/ProductTile/ProductTile.tsx +2 -2
- package/mobile/src/components/SafeDepositRental/SafeDepositRental.example.json +0 -0
- package/mobile/src/components/SafeDepositRental/SafeDepositRental.tsx +33 -0
- package/mobile/src/components/SafeDepositRental/SafeDepositRentalContent.ts +7 -0
- package/mobile/src/components/SafeDepositRental/SafeDepositRentalForm.tsx +164 -0
- package/mobile/src/components/SafeDepositRental/SafeDepositRentalTotal.tsx +57 -0
- package/mobile/src/components/__snapshots__/Blocks.spec.tsx.snap +98 -14
- package/mobile/src/hooks/useSafeDepositRental.ts +21 -0
- package/mobile/src/icons/IconName.ts +4 -4
- package/mobile/src/icons/PackA4.svg +14 -0
- package/mobile/src/ui-kit/Radio/Radio.tsx +18 -0
- package/mobile/src/ui-kit/Radio/RadioProps.ts +8 -0
- package/mobile/src/ui-kit/SearchBar/SearchBarInner.tsx +1 -1
- package/mobile/src/ui-kit/Select/Select.tsx +6 -1
- package/package.json +1 -1
- package/src/components/BlockContent.ts +5 -3
- package/src/components/Blocks.ts +2 -0
- package/src/components/Catalog/Catalog.example.json +3 -3
- package/src/components/Catalog/CatalogCard.tsx +28 -1
- package/src/components/Catalog/CatalogContent.ts +8 -2
- package/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +14 -3
- package/src/components/Footer/Contacts.tsx +3 -6
- package/src/components/Footer/Footer.mobile.tsx +1 -1
- package/src/components/Footer/Footer.tsx +1 -1
- package/src/components/Footer/HorizontalNavigation.mobile.tsx +1 -1
- package/src/components/Footer/HorizontalNavigation.tsx +1 -1
- package/src/components/Footer/HorizontalNavigationLink.tsx +1 -1
- package/src/components/Footer/MediaButton.tsx +1 -1
- package/src/components/Footer/Sitemap.tsx +4 -4
- package/src/components/Footer/SocialMedia.tsx +1 -1
- package/src/components/Footer/TextInformation.mobile.tsx +1 -1
- package/src/components/Footer/TextInformation.tsx +1 -1
- package/src/components/Footer/TextInformationLink.tsx +1 -1
- package/src/components/Header/Header.tsx +3 -2
- package/src/components/Header/HeaderSecondaryMenu.tsx +7 -5
- package/src/components/Header/HeaderSubMenu.tsx +1 -1
- package/src/components/LinkDocs/LinkDocs.tsx +1 -1
- package/src/components/ProductBlock/ProductBlock.tsx +2 -10
- package/src/components/ProductBlock/renderBackwardButton.tsx +1 -2
- package/src/components/ProductTile/ProductTile.tsx +2 -2
- package/src/components/SafeDepositRental/SafeDepositRental.example.json +0 -0
- package/src/components/SafeDepositRental/SafeDepositRental.fixture.tsx +9 -0
- package/src/components/SafeDepositRental/SafeDepositRental.tsx +33 -0
- package/src/components/SafeDepositRental/SafeDepositRentalContent.ts +7 -0
- package/src/components/SafeDepositRental/SafeDepositRentalForm.tsx +164 -0
- package/src/components/SafeDepositRental/SafeDepositRentalTotal.tsx +57 -0
- package/src/components/__snapshots__/Blocks.spec.tsx.snap +98 -14
- package/src/hooks/useSafeDepositRental.ts +21 -0
- package/src/icons/IconName.ts +5 -3
- package/src/icons/PackA4.svg +14 -0
- package/src/ui-kit/Radio/Radio.tsx +18 -0
- package/src/ui-kit/Radio/RadioProps.ts +8 -0
- package/src/ui-kit/SearchBar/SearchBarInner.tsx +1 -1
- package/src/ui-kit/Select/Select.tsx +6 -1
- package/dist/components/ExchangeRateTile/renderButton.d.ts +0 -2
- package/dist/components/ExchangeRateTile/renderButton.js +0 -9
- package/dist/components/ExchangeRateTile/renderButton.js.map +0 -1
- package/lib/components/ExchangeRateTile/renderButton.d.ts +0 -2
- package/lib/components/ExchangeRateTile/renderButton.js +0 -6
- package/lib/components/ExchangeRateTile/renderButton.js.map +0 -1
- package/mobile/dist/components/ExchangeRateTile/renderButton.d.ts +0 -2
- package/mobile/dist/components/ExchangeRateTile/renderButton.js +0 -9
- package/mobile/dist/components/ExchangeRateTile/renderButton.js.map +0 -1
- package/mobile/lib/components/ExchangeRateTile/renderButton.d.ts +0 -2
- package/mobile/lib/components/ExchangeRateTile/renderButton.js +0 -6
- package/mobile/lib/components/ExchangeRateTile/renderButton.js.map +0 -1
- package/mobile/src/components/ExchangeRateTile/renderButton.tsx +0 -9
- package/src/components/ExchangeRateTile/renderButton.tsx +0 -9
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"button": {
|
|
16
16
|
"href": "",
|
|
17
17
|
"text": "Подробнее",
|
|
18
|
-
"target": "
|
|
18
|
+
"target": "_self",
|
|
19
19
|
"version": "primary"
|
|
20
20
|
}
|
|
21
21
|
},
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"button": {
|
|
33
33
|
"href": "",
|
|
34
34
|
"text": "Подробнее",
|
|
35
|
-
"target": "
|
|
35
|
+
"target": "_self",
|
|
36
36
|
"version": "primary"
|
|
37
37
|
}
|
|
38
38
|
},
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"button": {
|
|
50
50
|
"href": "",
|
|
51
51
|
"text": "Подробнее",
|
|
52
|
-
"target": "
|
|
52
|
+
"target": "_self",
|
|
53
53
|
"version": "primary"
|
|
54
54
|
}
|
|
55
55
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
2
|
import type { BlockVersion } from '../../model/BlockVersion';
|
|
3
|
+
import { Picture } from '../../model/Picture';
|
|
3
4
|
import type { UniBlockProps } from '../../types';
|
|
4
5
|
import { Button } from '../../ui-kit/Button/Button';
|
|
6
|
+
import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
|
|
5
7
|
import { Heading } from '../../ui-kit/Heading/Heading';
|
|
6
8
|
import { Img } from '../../ui-kit/Img/Img';
|
|
7
9
|
import type { CatalogCardType, CatalogProductColor } from './CatalogContent';
|
|
@@ -36,7 +38,7 @@ export const CatalogCard = JSX<CatalogCardProps>(
|
|
|
36
38
|
</div>
|
|
37
39
|
) : null}
|
|
38
40
|
{price ? <div className="text-h3 text-left">{price} ₽</div> : null}
|
|
39
|
-
{button
|
|
41
|
+
{button ? renderButton(button) : null}
|
|
40
42
|
</section>
|
|
41
43
|
);
|
|
42
44
|
},
|
|
@@ -48,3 +50,28 @@ const renderColorOption = (color: CatalogProductColor, i: number) => (
|
|
|
48
50
|
className={`w-6 h-6 ml-3 border border-solid border-main-divider rounded-full ${cardStyleMap[color]}`}
|
|
49
51
|
/>
|
|
50
52
|
);
|
|
53
|
+
|
|
54
|
+
const renderButton = (button: ButtonWithIconProps) => {
|
|
55
|
+
const { icon, iconRight, text } = button;
|
|
56
|
+
|
|
57
|
+
if (!text) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const leftIcon = renderButtonIcon(icon);
|
|
62
|
+
const rightIcon = renderButtonIcon(iconRight);
|
|
63
|
+
|
|
64
|
+
return (
|
|
65
|
+
<Button className="mt-5 w-full" appendLeft={leftIcon} appendRight={rightIcon} {...button} />
|
|
66
|
+
);
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
const renderButtonIcon = (buttonIcon?: Picture) => {
|
|
70
|
+
if (!buttonIcon || !buttonIcon.icon) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const iconWidth = buttonIcon?.size?.width ? `${buttonIcon.size.width}` : '24';
|
|
75
|
+
|
|
76
|
+
return <Img image={buttonIcon} width={iconWidth} height="24" asSVG />;
|
|
77
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import type { HeadlineCommonProps } from '../../model/HeadlineType';
|
|
1
2
|
import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
|
|
2
3
|
import type { ImageContent } from '../../ui-kit/Img/ImgProps';
|
|
3
|
-
import type { HeadlineCommonProps } from '../../model/HeadlineType';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* @enumNames ["Черный", "Белый"]
|
|
@@ -12,7 +12,13 @@ export interface CatalogCardType extends HeadlineCommonProps, ImageContent {
|
|
|
12
12
|
price?: number;
|
|
13
13
|
/** @title Доступные цвета */
|
|
14
14
|
colors?: CatalogProductColor[];
|
|
15
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* @title Кнопка
|
|
17
|
+
* @default {
|
|
18
|
+
* "icon": { "format": "webp", "size": { "width": 24, "height": 24 } },
|
|
19
|
+
* "iconRight" : { "format": "webp", "size": { "width": 24, "height": 24 } }
|
|
20
|
+
* }
|
|
21
|
+
*/
|
|
16
22
|
button?: ButtonWithIconProps;
|
|
17
23
|
}
|
|
18
24
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import { useLink } from '../../hooks/useLink';
|
|
2
3
|
import type { UniBlockProps } from '../../types';
|
|
4
|
+
import { Button } from '../../ui-kit/Button/Button';
|
|
3
5
|
import { ButtonProps } from '../../ui-kit/Button/ButtonProps';
|
|
4
6
|
import { calculateResult, formatValue } from './calculateResult';
|
|
5
7
|
import { callbackCurrencySelect } from './callbackCurrencySelect';
|
|
6
8
|
import { Currency } from './CurrencyProps';
|
|
7
|
-
import { renderButton } from './renderButton';
|
|
8
9
|
import { renderInput } from './renderInput';
|
|
9
|
-
|
|
10
10
|
export interface ExchangeCurrencyItem {
|
|
11
11
|
code?: Currency;
|
|
12
12
|
buy?: number;
|
|
@@ -27,6 +27,9 @@ export interface CalcState {
|
|
|
27
27
|
|
|
28
28
|
export const ExchangeCurrencyCalculator = JSX<ExchangeCurrencyCalculatorProps>(
|
|
29
29
|
({ context, className = '', currencyRatesBuy, currencyRatesSell, button }) => {
|
|
30
|
+
const { useRouter, handlerDecorator } = context;
|
|
31
|
+
const router = useRouter();
|
|
32
|
+
|
|
30
33
|
const [calcState, setCalcState] = context.useState<CalcState>({
|
|
31
34
|
inputSell: '',
|
|
32
35
|
inputBuy: '',
|
|
@@ -66,7 +69,15 @@ export const ExchangeCurrencyCalculator = JSX<ExchangeCurrencyCalculatorProps>(
|
|
|
66
69
|
calcState.selectSell,
|
|
67
70
|
),
|
|
68
71
|
})}
|
|
69
|
-
{button?.text ?
|
|
72
|
+
{button?.text ? (
|
|
73
|
+
<Button
|
|
74
|
+
className="py-4 mr-1"
|
|
75
|
+
version={button?.version}
|
|
76
|
+
{...useLink({ router, handlerDecorator }, button)}
|
|
77
|
+
>
|
|
78
|
+
{button.text}
|
|
79
|
+
</Button>
|
|
80
|
+
) : null}
|
|
70
81
|
</div>
|
|
71
82
|
);
|
|
72
83
|
},
|
|
@@ -40,7 +40,7 @@ const renderContact = (item: ContactInfo, index: number) => {
|
|
|
40
40
|
return (
|
|
41
41
|
<div className="mb-4" key={String(index)}>
|
|
42
42
|
<div>{renderText(type, text)}</div>
|
|
43
|
-
<div className="mt-1
|
|
43
|
+
<div className="mt-1 text-s-light text-secondary-text">{description}</div>
|
|
44
44
|
</div>
|
|
45
45
|
);
|
|
46
46
|
};
|
|
@@ -50,7 +50,7 @@ const renderText = (type: ContactInfo['type'], text = '') => {
|
|
|
50
50
|
case 'tel':
|
|
51
51
|
return (
|
|
52
52
|
<a
|
|
53
|
-
className="
|
|
53
|
+
className="text-h6 text-primary-text hover:text-primary-main no-underline"
|
|
54
54
|
href={`tel:${formatTel(text)}`}
|
|
55
55
|
>
|
|
56
56
|
{text}
|
|
@@ -58,10 +58,7 @@ const renderText = (type: ContactInfo['type'], text = '') => {
|
|
|
58
58
|
);
|
|
59
59
|
case 'email':
|
|
60
60
|
return (
|
|
61
|
-
<a
|
|
62
|
-
className="font-sans text-xl-light text-primary-text no-underline"
|
|
63
|
-
href={`mailto:${text}`}
|
|
64
|
-
>
|
|
61
|
+
<a className="text-xl-light text-primary-text no-underline" href={`mailto:${text}`}>
|
|
65
62
|
{text}
|
|
66
63
|
</a>
|
|
67
64
|
);
|
|
@@ -30,7 +30,7 @@ export const Footer = JSX<FooterProps>(
|
|
|
30
30
|
const dispositions = sitemap?.dispositions;
|
|
31
31
|
|
|
32
32
|
return (
|
|
33
|
-
<footer className={`px-4 py-[26px] bg-white ${className}`}>
|
|
33
|
+
<footer className={`font-sans px-4 py-[26px] bg-white ${className}`}>
|
|
34
34
|
<Contacts className="overflow-hidden" items={contacts} context={context} hasButton />
|
|
35
35
|
<Accordion
|
|
36
36
|
context={context}
|
|
@@ -30,7 +30,7 @@ export const Footer = JSX<FooterProps>(
|
|
|
30
30
|
<BlockWrapper
|
|
31
31
|
tag="footer"
|
|
32
32
|
context={context}
|
|
33
|
-
className={`p-9 bg-white ${className || ''}`}
|
|
33
|
+
className={`p-9 bg-white font-sans ${className || ''}`}
|
|
34
34
|
{...rest}
|
|
35
35
|
>
|
|
36
36
|
<div className="flex items-stretch gap-[54px] pb-[30px] xl:gap-8">
|
|
@@ -15,7 +15,7 @@ export const HorizontalNavigation = JSX<HorizontalNavigationProps>(
|
|
|
15
15
|
|
|
16
16
|
return (
|
|
17
17
|
<div className={className}>
|
|
18
|
-
<span className="text-primary-text font-
|
|
18
|
+
<span className="text-primary-text font-medium text-sm">{title}</span>
|
|
19
19
|
{links?.length ? (
|
|
20
20
|
<div className="flex flex-col gap-2 pt-3">
|
|
21
21
|
{links.map((_, i) => (
|
|
@@ -21,7 +21,7 @@ export const HorizontalNavigation = JSX<HorizontalNavigationProps>(
|
|
|
21
21
|
<HorizontalNavigationLink
|
|
22
22
|
key={String(i)}
|
|
23
23
|
index={i}
|
|
24
|
-
className="font-light max-w-[292px]"
|
|
24
|
+
className="font-l-light max-w-[292px]"
|
|
25
25
|
{...useLink({ router, handlerDecorator }, _)}
|
|
26
26
|
/>
|
|
27
27
|
))}
|
|
@@ -10,7 +10,7 @@ interface HorizontalNavigationLinkProps extends LinkProps {
|
|
|
10
10
|
export const HorizontalNavigationLink = JSX<Partial<HorizontalNavigationLinkProps>>(
|
|
11
11
|
({ className = '', index, text, href, target, onClick }) => (
|
|
12
12
|
<a
|
|
13
|
-
className={`
|
|
13
|
+
className={`text-secondary-text hover:text-primary-main inline-block no-underline ${className}`}
|
|
14
14
|
href={href}
|
|
15
15
|
target={target}
|
|
16
16
|
onClick={onClick}
|
|
@@ -51,7 +51,7 @@ export const MediaButton = JSX<MediaButtonProps>(({ href, version = 'primary' })
|
|
|
51
51
|
const classes =
|
|
52
52
|
version === 'secondary'
|
|
53
53
|
? 'bg-secondary-light hover:bg-secondary-hover'
|
|
54
|
-
: 'border-
|
|
54
|
+
: 'border-solid border-[1px] border-main-divider hover:border-transparent hover:bg-primary-main';
|
|
55
55
|
|
|
56
56
|
const isPrimary = version === 'primary';
|
|
57
57
|
|
|
@@ -19,7 +19,7 @@ export const Sitemap = JSX<SitemapProps>(({ className = '', items, context }) =>
|
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
return (
|
|
22
|
-
<div className={`flex items-start justify-between gap-
|
|
22
|
+
<div className={`flex items-start justify-between gap-[54px] xl:gap-5 ${className}`}>
|
|
23
23
|
{mergedItems?.map((_, i) => renderColumn(_, i, linkParams))}
|
|
24
24
|
</div>
|
|
25
25
|
);
|
|
@@ -29,9 +29,9 @@ const renderColumn = (c: TopMenuItem, index: number, { router, handlerDecorator
|
|
|
29
29
|
const { text, href, items, target } = c;
|
|
30
30
|
|
|
31
31
|
return (
|
|
32
|
-
<div key={String(index)} className="flex flex-col w-1/5 last:w-1/4 gap-
|
|
32
|
+
<div key={String(index)} className="flex flex-col w-1/5 last:w-1/4 gap-3.5">
|
|
33
33
|
<a
|
|
34
|
-
className="block
|
|
34
|
+
className="block leading-5 text-l text-primary-text hover:text-primary-main no-underline"
|
|
35
35
|
href={href}
|
|
36
36
|
target={target || '_self'}
|
|
37
37
|
>
|
|
@@ -50,7 +50,7 @@ interface ColumnItemProps extends LinkProps {
|
|
|
50
50
|
|
|
51
51
|
const ColumnItem = JSX<ColumnItemProps>(({ text, href, target, index }) => (
|
|
52
52
|
<a
|
|
53
|
-
className="block
|
|
53
|
+
className="block text-l-light text-secondary-text hover:text-primary-main no-underline"
|
|
54
54
|
href={href}
|
|
55
55
|
target={target || '_self'}
|
|
56
56
|
>
|
|
@@ -10,7 +10,7 @@ export const TextInformation = JSX<FooterLink>(({ className, links, context }) =
|
|
|
10
10
|
return (
|
|
11
11
|
<div className={`${className || ''}`}>
|
|
12
12
|
<div className="py-6">
|
|
13
|
-
<span className="font-
|
|
13
|
+
<span className="font-normal text-xs text-secondary-text">
|
|
14
14
|
{`\u00a9\u00A02000-${new Date().getFullYear()}\u00A0АО \u00ABРоссельхозбанк\u00BB Генеральная лицензия Банка России \u2116\u00A03349 от\u00A012.08.2015\u00A0г.`}
|
|
15
15
|
</span>
|
|
16
16
|
</div>
|
|
@@ -10,7 +10,7 @@ export const TextInformation = JSX<FooterLink>(({ className, links, context }) =
|
|
|
10
10
|
return (
|
|
11
11
|
<div className={`${className || ''}`}>
|
|
12
12
|
<div className="pt-5">
|
|
13
|
-
<span className="font-
|
|
13
|
+
<span className="font-light text-xs text-secondary-text">
|
|
14
14
|
{`\u00a9\u00A02000-${new Date().getFullYear()}\u00A0АО \u00ABРоссельхозбанк\u00BB Генеральная лицензия Банка России \u2116\u00A03349 от\u00A012.08.2015\u00A0г.`}
|
|
15
15
|
</span>
|
|
16
16
|
</div>
|
|
@@ -10,7 +10,7 @@ interface TextInformationLinkProps extends LinkProps {
|
|
|
10
10
|
export const TextInformationLink = JSX<Partial<TextInformationLinkProps>>(
|
|
11
11
|
({ className = '', index, text, href, target, onClick }) => (
|
|
12
12
|
<a
|
|
13
|
-
className={`
|
|
13
|
+
className={`text-xs text-secondary-text visited:text-secondary-text hover:text-primary-main inline-block no-underline max-w-[292px] ${className}`}
|
|
14
14
|
href={href}
|
|
15
15
|
target={target}
|
|
16
16
|
onClick={onClick}
|
|
@@ -35,8 +35,9 @@ export const Header = JSX<HeaderProps>(
|
|
|
35
35
|
const { handlerDecorator } = context;
|
|
36
36
|
|
|
37
37
|
const mergedItems = mergeTopItems(sitemap.topItems, topItems);
|
|
38
|
-
const
|
|
39
|
-
|
|
38
|
+
const [firstPortal] = mergedItems;
|
|
39
|
+
// Если по слагу невозможно понять к какому подпорталу этот слаг относиться, то выбираем первый подпортал.
|
|
40
|
+
const activeTopItem = mergedItems.find(isTopItemActive(router)) || firstPortal;
|
|
40
41
|
const topMenu = mergedItems.map((_, i) => (
|
|
41
42
|
<TopItem
|
|
42
43
|
key={String(i)}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import type { IconVersion } from '../../model/IconVersion';
|
|
3
2
|
import type { BgColorVersion } from '../../model/BgColorVersion';
|
|
3
|
+
import type { IconVersion } from '../../model/IconVersion';
|
|
4
4
|
import type { UniBlockProps } from '../../types';
|
|
5
5
|
import { Img } from '../../ui-kit/Img/Img';
|
|
6
6
|
import { TopItem } from '../../ui-kit/TopItem/TopItem';
|
|
@@ -50,22 +50,24 @@ export const HeaderSecondaryMenu = JSX<HeaderSecondaryMenuProps>(
|
|
|
50
50
|
bgColor={bgColor}
|
|
51
51
|
/>
|
|
52
52
|
<HeaderSecondaryMenuButton
|
|
53
|
-
className={`mr-5 ${COLORS_MAP[bgColor]}`}
|
|
53
|
+
className={`mr-5 group ${COLORS_MAP[bgColor]}`}
|
|
54
54
|
ariaLabel="Поиск по сайту"
|
|
55
55
|
>
|
|
56
56
|
<Img
|
|
57
57
|
image={{ icon: 'LoupeIcon', iconVersion: LINKS_ICON_VERSION_MAP[bgColor] }}
|
|
58
|
-
className="h-full"
|
|
58
|
+
className="h-full pointer-events-none"
|
|
59
|
+
imageClassName="group-hover:text-primary-main pointer-events-none"
|
|
59
60
|
asSVG
|
|
60
61
|
/>
|
|
61
62
|
</HeaderSecondaryMenuButton>
|
|
62
63
|
<HeaderSecondaryMenuButton
|
|
63
|
-
className={`${LINKS_COLORS_MAP[bgColor]} min-w-[32px] min-h-[32px]`}
|
|
64
|
+
className={`${LINKS_COLORS_MAP[bgColor]} group min-w-[32px] min-h-[32px]`}
|
|
64
65
|
ariaLabel="Дополнительные ссылки"
|
|
65
66
|
>
|
|
66
67
|
<Img
|
|
67
68
|
image={{ icon: 'GridIcon', iconVersion: LINKS_ICON_VERSION_MAP[bgColor] }}
|
|
68
|
-
className="h-full bg-
|
|
69
|
+
className="h-full bg-main-divider rounded-full pointer-events-none"
|
|
70
|
+
imageClassName="group-hover:text-primary-main"
|
|
69
71
|
asSVG
|
|
70
72
|
/>
|
|
71
73
|
</HeaderSecondaryMenuButton>
|
|
@@ -39,7 +39,7 @@ export const HeaderSubMenu = JSX<HeaderSubMenuProps>(({ context, subItems = [],
|
|
|
39
39
|
};
|
|
40
40
|
|
|
41
41
|
return (
|
|
42
|
-
<nav className="relative mt-
|
|
42
|
+
<nav className="relative mt-6">
|
|
43
43
|
<div className="overflow-hidden whitespace-nowrap mr-52 pb-3">
|
|
44
44
|
{subItems.map((_, i) => (
|
|
45
45
|
<IntersectionObserverTag
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
2
|
import type { UniBlockProps } from '../../types';
|
|
3
|
-
import type { LinkColumnsMode, LinkDocsContent } from './LinkDocsContent';
|
|
4
3
|
import { BlockWrapper } from '../../ui-kit/BlockWrapper';
|
|
5
4
|
import { Headline } from '../Headline/Headline';
|
|
5
|
+
import type { LinkColumnsMode, LinkDocsContent } from './LinkDocsContent';
|
|
6
6
|
import { LinkDocsList } from './LinkDocsList';
|
|
7
7
|
|
|
8
8
|
const linkColumnsModeStyleMap: Record<LinkColumnsMode, string> = {
|
|
@@ -36,10 +36,7 @@ export const ProductBlock = JSX<ProductBlockProps>((props) => {
|
|
|
36
36
|
return (
|
|
37
37
|
<BlockWrapper
|
|
38
38
|
context={context}
|
|
39
|
-
className={`font-sans overflow-hidden
|
|
40
|
-
${backwardButton?.text ? 'min-h-[542px] max-h-[542]' : 'min-h-[454px] max-h-[454px]'} ${
|
|
41
|
-
productBlockStyleMap[version]
|
|
42
|
-
} ${className}`}
|
|
39
|
+
className={`font-sans overflow-hidden p-[50px] box-border min-h-[528px] ${productBlockStyleMap[version]} ${className}`}
|
|
43
40
|
{...otherProps}
|
|
44
41
|
>
|
|
45
42
|
{backwardButton?.text
|
|
@@ -64,12 +61,7 @@ export const ProductBlock = JSX<ProductBlockProps>((props) => {
|
|
|
64
61
|
)}
|
|
65
62
|
</div>
|
|
66
63
|
) : null}
|
|
67
|
-
<ProductBlockInner
|
|
68
|
-
context={context}
|
|
69
|
-
version={version}
|
|
70
|
-
{...otherProps}
|
|
71
|
-
className={backwardButton?.text ? 'pb-[88px]' : ''}
|
|
72
|
-
/>
|
|
64
|
+
<ProductBlockInner context={context} version={version} {...otherProps} />
|
|
73
65
|
</BlockWrapper>
|
|
74
66
|
);
|
|
75
67
|
});
|
|
@@ -13,7 +13,7 @@ export function renderBackwardButton(
|
|
|
13
13
|
const backwardIcon = button?.icon || { icon: 'ArrowLeftIcon' };
|
|
14
14
|
|
|
15
15
|
return (
|
|
16
|
-
<div className={`flex items-center ${className}`}>
|
|
16
|
+
<div className={`flex items-center cursor-pointer ${className}`} onClick={onClick}>
|
|
17
17
|
<Button
|
|
18
18
|
version={version}
|
|
19
19
|
rounded
|
|
@@ -21,7 +21,6 @@ export function renderBackwardButton(
|
|
|
21
21
|
ariaLabel={text}
|
|
22
22
|
href={href}
|
|
23
23
|
target={target}
|
|
24
|
-
onClick={onClick}
|
|
25
24
|
>
|
|
26
25
|
<Img className="w-4 h-4" image={{ ...backwardIcon, iconVersion }} asSVG />
|
|
27
26
|
</Button>
|
|
@@ -57,7 +57,7 @@ export const ProductTile = JSX<ProductTileProps>(
|
|
|
57
57
|
<ButtonSection
|
|
58
58
|
context={context}
|
|
59
59
|
buttons={buttons}
|
|
60
|
-
className="flex self-end mt-5 gap-4 z-[1]"
|
|
60
|
+
className="flex self-end mt-5 gap-4 z-[1] text-l"
|
|
61
61
|
/>
|
|
62
62
|
) : null}
|
|
63
63
|
{image?.src ? <Img className="absolute right-0 bottom-0" image={image} /> : null}
|
|
@@ -96,7 +96,7 @@ function renderBenefitDescription(benefit: TextBenefit, i: number, version = 'pr
|
|
|
96
96
|
};
|
|
97
97
|
|
|
98
98
|
return (
|
|
99
|
-
<div key={String(i)} className={
|
|
99
|
+
<div key={String(i)} className={`text-m ${i ? 'mt-4' : ''} ${labelStyleMap[version]}`}>
|
|
100
100
|
{benefit.description}
|
|
101
101
|
</div>
|
|
102
102
|
);
|
|
File without changes
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { context } from '../../react/setup-fixture';
|
|
2
|
+
import { SafeDepositRental } from './SafeDepositRental';
|
|
3
|
+
export default {
|
|
4
|
+
default: (
|
|
5
|
+
<div className="container grid grid-cols-12 mb-1">
|
|
6
|
+
<SafeDepositRental className="col-span-12" context={context} />
|
|
7
|
+
</div>
|
|
8
|
+
),
|
|
9
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import { useSafeDepositRental } from '../../hooks/useSafeDepositRental';
|
|
3
|
+
import type { UniBlockProps } from '../../types';
|
|
4
|
+
import { BlockWrapper } from '../../ui-kit/BlockWrapper';
|
|
5
|
+
import type { SafeDepositRentalContent } from './SafeDepositRentalContent';
|
|
6
|
+
import { SafeDepositRentalForm } from './SafeDepositRentalForm';
|
|
7
|
+
import { SafeDepositRentalTotal } from './SafeDepositRentalTotal';
|
|
8
|
+
|
|
9
|
+
export interface SafeDepositRentalProps extends SafeDepositRentalContent, UniBlockProps {}
|
|
10
|
+
|
|
11
|
+
const DEFAULT_DAYS = 26;
|
|
12
|
+
|
|
13
|
+
export const SafeDepositRental = JSX<SafeDepositRentalProps>(
|
|
14
|
+
({ context, className = '', ...rest }) => {
|
|
15
|
+
const [days, setDays] = context.useState(DEFAULT_DAYS);
|
|
16
|
+
const data = useSafeDepositRental(context.useAsyncData);
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<BlockWrapper context={context} className={`bg-white px-8 py-12 ${className}`} {...rest}>
|
|
20
|
+
<div className="flex justify-between align-top mb-6">
|
|
21
|
+
{data?.cities?.length ? (
|
|
22
|
+
<SafeDepositRentalForm {...data} days={days} setDays={setDays} context={context} />
|
|
23
|
+
) : null}
|
|
24
|
+
<SafeDepositRentalTotal days={days} />
|
|
25
|
+
</div>
|
|
26
|
+
<p className="text-button font-light text-secondary-text">
|
|
27
|
+
Аренда СЯ, в случае проведения процедуры купли-продажи, с использованием наличных денег
|
|
28
|
+
или процедуры ипотечной сделки
|
|
29
|
+
</p>
|
|
30
|
+
</BlockWrapper>
|
|
31
|
+
);
|
|
32
|
+
},
|
|
33
|
+
);
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { UniBlockProps } from '../../types';
|
|
2
|
+
import { Button } from '../../ui-kit/Button/Button';
|
|
3
|
+
import { InputRange } from '../../ui-kit/InputRange/InputRange';
|
|
4
|
+
import { Radio } from '../../ui-kit/Radio/Radio';
|
|
5
|
+
import { Select } from '../../ui-kit/Select/Select';
|
|
6
|
+
import { SelectOption } from '../../ui-kit/Select/SelectOption';
|
|
7
|
+
|
|
8
|
+
export type SafeDepositRentalFormProps = UniBlockProps;
|
|
9
|
+
|
|
10
|
+
export const SafeDepositRentalForm = ({
|
|
11
|
+
cities,
|
|
12
|
+
cellDimensions,
|
|
13
|
+
cellOptions,
|
|
14
|
+
days,
|
|
15
|
+
setDays,
|
|
16
|
+
context,
|
|
17
|
+
}) => {
|
|
18
|
+
return (
|
|
19
|
+
<div className="flex-1 mr-9">
|
|
20
|
+
{cities.length ? renderCitiesOffices(cities, context) : null}
|
|
21
|
+
{renderRentalPeriod(days, setDays)}
|
|
22
|
+
{cellDimensions.length && cellOptions.length
|
|
23
|
+
? renderDimensionsOptions(cellDimensions, cellOptions, context)
|
|
24
|
+
: null}
|
|
25
|
+
<span className="text-secondary-text font-light">Тип договора</span>
|
|
26
|
+
<div className="flex justify-between items-center mt-5">
|
|
27
|
+
{renderRadioButtons(context)}
|
|
28
|
+
<Button text="Офисы на карте" version="primary" />
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
31
|
+
);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const renderCitiesOffices = (cities, context) => {
|
|
35
|
+
const [selectedCity, setSelectedCity] = context.useState(cities[0].city);
|
|
36
|
+
|
|
37
|
+
const setSelected = (_) => setSelectedCity(_);
|
|
38
|
+
|
|
39
|
+
const offices = cities.find((_) => _.city === selectedCity).offices;
|
|
40
|
+
|
|
41
|
+
return (
|
|
42
|
+
<div className="flex justify-between mb-6">
|
|
43
|
+
<div className="w-full mr-4">
|
|
44
|
+
{cities.length
|
|
45
|
+
? renderSelect({
|
|
46
|
+
data: cities,
|
|
47
|
+
field: 'city',
|
|
48
|
+
selected: selectedCity,
|
|
49
|
+
setSelected,
|
|
50
|
+
label: 'Город',
|
|
51
|
+
})
|
|
52
|
+
: null}
|
|
53
|
+
</div>
|
|
54
|
+
<div className="w-full">
|
|
55
|
+
{offices.length
|
|
56
|
+
? renderSelect({
|
|
57
|
+
data: offices,
|
|
58
|
+
field: 'office',
|
|
59
|
+
selected: offices[0],
|
|
60
|
+
setSelected,
|
|
61
|
+
label: 'Отделение',
|
|
62
|
+
})
|
|
63
|
+
: null}
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
);
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
const renderDimensionsOptions = (cellDimensions, cellOptions, context) => {
|
|
70
|
+
const [selectedDimension, setSelectedDimension] = context.useState(cellDimensions[0].dimension);
|
|
71
|
+
const [selectedOption, setSelectedOption] = context.useState(cellOptions[0].option);
|
|
72
|
+
|
|
73
|
+
return (
|
|
74
|
+
<div className="flex justify-between mb-6">
|
|
75
|
+
<div className="mr-4 w-full">
|
|
76
|
+
{cellDimensions.length
|
|
77
|
+
? renderSelect({
|
|
78
|
+
data: cellDimensions,
|
|
79
|
+
field: 'dimension',
|
|
80
|
+
selected: selectedDimension,
|
|
81
|
+
setSelected: setSelectedDimension,
|
|
82
|
+
label: 'Размер ячейки',
|
|
83
|
+
})
|
|
84
|
+
: null}
|
|
85
|
+
</div>
|
|
86
|
+
<div className="w-full">
|
|
87
|
+
{cellOptions.length
|
|
88
|
+
? renderSelect({
|
|
89
|
+
data: cellOptions,
|
|
90
|
+
field: 'option',
|
|
91
|
+
selected: selectedOption,
|
|
92
|
+
setSelected: setSelectedOption,
|
|
93
|
+
label: 'Параметры ячейки, мм (ВхШхД)',
|
|
94
|
+
})
|
|
95
|
+
: null}
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
);
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
interface SelectProps {
|
|
102
|
+
data: any[];
|
|
103
|
+
field: string;
|
|
104
|
+
selected: string;
|
|
105
|
+
setSelected: (value: string) => void;
|
|
106
|
+
label: string;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const renderSelect = (props: SelectProps) => {
|
|
110
|
+
const { data, field, selected, setSelected, label } = props;
|
|
111
|
+
|
|
112
|
+
return (
|
|
113
|
+
<div>
|
|
114
|
+
<span className="block font-light text-m mb-2">{label}</span>
|
|
115
|
+
<Select
|
|
116
|
+
className="h-14 border border-gray p-4 rounded-md text-m-sm w-full cursor-pointer"
|
|
117
|
+
value={selected}
|
|
118
|
+
onChange={(_) => setSelected(_)}
|
|
119
|
+
>
|
|
120
|
+
{data.map((_, i) => (
|
|
121
|
+
<SelectOption key={String(i)} value={_?.[field]}>
|
|
122
|
+
{_?.[field]}
|
|
123
|
+
</SelectOption>
|
|
124
|
+
))}
|
|
125
|
+
</Select>
|
|
126
|
+
</div>
|
|
127
|
+
);
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
export const renderRentalPeriod = (days, setDays) => {
|
|
131
|
+
const items = ['От 1 дня', 'До 365 дней'];
|
|
132
|
+
|
|
133
|
+
return (
|
|
134
|
+
<div className="mb-6">
|
|
135
|
+
<span className="block font-light text-m mb-[3px]">Срок аренды</span>
|
|
136
|
+
<InputRange min={1} max={365} value={days} items={items} onChange={setDays} />
|
|
137
|
+
</div>
|
|
138
|
+
);
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
const renderRadioButtons = (context) => {
|
|
142
|
+
const [selected, setSelected] = context.useState('option1');
|
|
143
|
+
const onChange = (_: React.ChangeEvent<HTMLInputElement>) => setSelected(_.target.value);
|
|
144
|
+
|
|
145
|
+
return (
|
|
146
|
+
<div>
|
|
147
|
+
<Radio
|
|
148
|
+
className="mb-2"
|
|
149
|
+
name="contractType"
|
|
150
|
+
text="Простое хранение"
|
|
151
|
+
value="option1"
|
|
152
|
+
checked={selected === 'option1'}
|
|
153
|
+
onChange={onChange}
|
|
154
|
+
/>
|
|
155
|
+
<Radio
|
|
156
|
+
name="contractType"
|
|
157
|
+
text="Сделка с недвижимостью"
|
|
158
|
+
value="option2"
|
|
159
|
+
checked={selected === 'option2'}
|
|
160
|
+
onChange={onChange}
|
|
161
|
+
/>
|
|
162
|
+
</div>
|
|
163
|
+
);
|
|
164
|
+
};
|