@redneckz/wildless-cms-uni-blocks 0.6.24 → 0.6.26
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 +97 -58
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/BenefitsBlock/BenefitsBlock.d.ts +2 -1
- package/bundle/components/Catalog/CatalogContent.d.ts +2 -0
- package/bundle/components/ContentPage/computeAPIFallback.d.ts +1 -1
- package/bundle/components/ContentPage/normalizePage.d.ts +1 -1
- package/bundle/components/Header/HeaderContent.d.ts +1 -2
- package/bundle/components/InvestmentGallery/InvestmentGallery.d.ts +5 -0
- package/bundle/components/InvestmentGallery/InvestmentGalleryCard.d.ts +7 -0
- package/bundle/components/InvestmentGallery/InvestmentGalleryContent.d.ts +50 -0
- package/bundle/content-page-repository/ContentPageRepository.d.ts +12 -9
- package/bundle/model/BorderVersion.d.ts +6 -0
- package/bundle/services/sitemap/useSitemap.d.ts +2 -2
- package/bundle/ui-kit/CurrencyInput/{adjustValue .d.ts → adjustValue.d.ts} +0 -0
- package/dist/components/BenefitsBlock/BenefitsBlock.d.ts +2 -1
- package/dist/components/BenefitsBlock/BenefitsBlock.js +5 -9
- package/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
- package/dist/components/Blocks.js +2 -0
- package/dist/components/Blocks.js.map +1 -1
- package/dist/components/Catalog/CatalogContent.d.ts +2 -0
- package/dist/components/ContentPage/computeAPIFallback.d.ts +1 -1
- package/dist/components/ContentPage/computeAPIFallback.js +1 -1
- package/dist/components/ContentPage/computeAPIFallback.js.map +1 -1
- package/dist/components/ContentPage/normalizeBlock.js +4 -8
- package/dist/components/ContentPage/normalizeBlock.js.map +1 -1
- package/dist/components/ContentPage/normalizeBlock.mobile.js +4 -8
- package/dist/components/ContentPage/normalizeBlock.mobile.js.map +1 -1
- package/dist/components/ContentPage/normalizePage.d.ts +1 -1
- package/dist/components/ContentPage/normalizePage.js +1 -6
- package/dist/components/ContentPage/normalizePage.js.map +1 -1
- package/dist/components/Header/Header.js +9 -9
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/Header/Header.mobile.js +6 -6
- package/dist/components/Header/Header.mobile.js.map +1 -1
- package/dist/components/Header/HeaderContent.d.ts +1 -2
- package/dist/components/InvestmentGallery/InvestmentGallery.d.ts +5 -0
- package/dist/components/InvestmentGallery/InvestmentGallery.js +40 -0
- package/dist/components/InvestmentGallery/InvestmentGallery.js.map +1 -0
- package/dist/components/InvestmentGallery/InvestmentGalleryCard.d.ts +7 -0
- package/dist/components/InvestmentGallery/InvestmentGalleryCard.js +24 -0
- package/dist/components/InvestmentGallery/InvestmentGalleryCard.js.map +1 -0
- package/dist/components/InvestmentGallery/InvestmentGalleryContent.d.ts +50 -0
- package/dist/components/InvestmentGallery/InvestmentGalleryContent.js +2 -0
- package/dist/components/InvestmentGallery/InvestmentGalleryContent.js.map +1 -0
- package/dist/components/PictureText/PictureText.js +2 -2
- package/dist/components/PictureText/PictureText.js.map +1 -1
- package/dist/components/ProductGallery/ProductGallery.js +2 -2
- package/dist/components/ProductGallery/ProductGallery.js.map +1 -1
- package/dist/components/Recommendation/Recommendation.js +7 -5
- package/dist/components/Recommendation/Recommendation.js.map +1 -1
- package/dist/components/StepsBlock/StepsBlock.mobile.js +1 -5
- package/dist/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
- package/dist/content-page-repository/ContentPageRepository.d.ts +12 -9
- package/dist/content-page-repository/ContentPageRepository.js +24 -35
- package/dist/content-page-repository/ContentPageRepository.js.map +1 -1
- package/dist/model/BorderVersion.d.ts +6 -0
- package/dist/model/BorderVersion.js +7 -0
- package/dist/model/BorderVersion.js.map +1 -0
- package/dist/services/sitemap/useSitemap.d.ts +2 -2
- package/dist/services/sitemap/useSitemap.js.map +1 -1
- package/dist/ui-kit/BenefitItem/BenefitItem.js +3 -3
- package/dist/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
- package/dist/ui-kit/Breadcrumb.js +1 -8
- package/dist/ui-kit/Breadcrumb.js.map +1 -1
- package/dist/ui-kit/CurrencyInput/CurrencyInput.js +1 -1
- package/dist/ui-kit/CurrencyInput/CurrencyInput.js.map +1 -1
- package/dist/ui-kit/CurrencyInput/{adjustValue .d.ts → adjustValue.d.ts} +0 -0
- package/{mobile/dist/ui-kit/CurrencyInput/adjustValue .js → dist/ui-kit/CurrencyInput/adjustValue.js} +1 -1
- package/dist/ui-kit/CurrencyInput/adjustValue.js.map +1 -0
- package/dist/ui-kit/Tags/Tags.js +2 -2
- package/dist/ui-kit/Tags/Tags.js.map +1 -1
- package/lib/common.css +1 -1
- package/lib/components/BenefitsBlock/BenefitsBlock.d.ts +2 -1
- package/lib/components/BenefitsBlock/BenefitsBlock.js +5 -9
- package/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
- package/lib/components/Blocks.js +2 -0
- package/lib/components/Blocks.js.map +1 -1
- package/lib/components/Catalog/CatalogContent.d.ts +2 -0
- package/lib/components/ContentPage/computeAPIFallback.d.ts +1 -1
- package/lib/components/ContentPage/computeAPIFallback.js +1 -1
- package/lib/components/ContentPage/computeAPIFallback.js.map +1 -1
- package/lib/components/ContentPage/normalizeBlock.js +4 -8
- package/lib/components/ContentPage/normalizeBlock.js.map +1 -1
- package/lib/components/ContentPage/normalizeBlock.mobile.js +4 -8
- package/lib/components/ContentPage/normalizeBlock.mobile.js.map +1 -1
- package/lib/components/ContentPage/normalizePage.d.ts +1 -1
- package/lib/components/ContentPage/normalizePage.js +1 -6
- package/lib/components/ContentPage/normalizePage.js.map +1 -1
- package/lib/components/Header/Header.js +9 -9
- package/lib/components/Header/Header.js.map +1 -1
- package/lib/components/Header/Header.mobile.js +6 -6
- package/lib/components/Header/Header.mobile.js.map +1 -1
- package/lib/components/Header/HeaderContent.d.ts +1 -2
- package/lib/components/InvestmentGallery/InvestmentGallery.d.ts +5 -0
- package/lib/components/InvestmentGallery/InvestmentGallery.fixture.d.ts +7 -0
- package/lib/components/InvestmentGallery/InvestmentGallery.js +38 -0
- package/lib/components/InvestmentGallery/InvestmentGallery.js.map +1 -0
- package/lib/components/InvestmentGallery/InvestmentGalleryCard.d.ts +7 -0
- package/lib/components/InvestmentGallery/InvestmentGalleryCard.js +22 -0
- package/lib/components/InvestmentGallery/InvestmentGalleryCard.js.map +1 -0
- package/lib/components/InvestmentGallery/InvestmentGalleryContent.d.ts +50 -0
- package/lib/components/InvestmentGallery/InvestmentGalleryContent.js +2 -0
- package/lib/components/InvestmentGallery/InvestmentGalleryContent.js.map +1 -0
- package/lib/components/PictureText/PictureText.js +2 -2
- package/lib/components/PictureText/PictureText.js.map +1 -1
- package/lib/components/ProductGallery/ProductGallery.js +2 -2
- package/lib/components/ProductGallery/ProductGallery.js.map +1 -1
- package/lib/components/Recommendation/Recommendation.js +7 -5
- package/lib/components/Recommendation/Recommendation.js.map +1 -1
- package/lib/components/StepsBlock/StepsBlock.mobile.js +1 -5
- package/lib/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
- package/lib/content-page-repository/ContentPageRepository.d.ts +12 -9
- package/lib/content-page-repository/ContentPageRepository.js +24 -35
- package/lib/content-page-repository/ContentPageRepository.js.map +1 -1
- package/lib/model/BorderVersion.d.ts +6 -0
- package/lib/model/BorderVersion.js +5 -0
- package/lib/model/BorderVersion.js.map +1 -0
- package/lib/services/sitemap/useSitemap.d.ts +2 -2
- package/lib/services/sitemap/useSitemap.js.map +1 -1
- package/lib/ui-kit/BenefitItem/BenefitItem.js +3 -3
- package/lib/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
- package/lib/ui-kit/Breadcrumb.js +1 -8
- package/lib/ui-kit/Breadcrumb.js.map +1 -1
- package/lib/ui-kit/CurrencyInput/CurrencyInput.js +1 -1
- package/lib/ui-kit/CurrencyInput/CurrencyInput.js.map +1 -1
- package/lib/ui-kit/CurrencyInput/{adjustValue .d.ts → adjustValue.d.ts} +0 -0
- package/lib/ui-kit/CurrencyInput/{adjustValue .js → adjustValue.js} +1 -1
- package/lib/ui-kit/CurrencyInput/adjustValue.js.map +1 -0
- package/lib/ui-kit/Tags/Tags.js +2 -2
- package/lib/ui-kit/Tags/Tags.js.map +1 -1
- package/mobile/bundle/bundle.umd.js +9 -13
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/BenefitsBlock/BenefitsBlock.d.ts +2 -1
- package/mobile/bundle/components/Catalog/CatalogContent.d.ts +2 -0
- package/mobile/bundle/components/ContentPage/computeAPIFallback.d.ts +1 -1
- package/mobile/bundle/components/ContentPage/normalizePage.d.ts +1 -1
- package/mobile/bundle/components/Header/HeaderContent.d.ts +1 -2
- package/mobile/bundle/components/InvestmentGallery/InvestmentGallery.d.ts +5 -0
- package/mobile/bundle/components/InvestmentGallery/InvestmentGalleryCard.d.ts +7 -0
- package/mobile/bundle/components/InvestmentGallery/InvestmentGalleryContent.d.ts +50 -0
- package/mobile/bundle/content-page-repository/ContentPageRepository.d.ts +12 -9
- package/mobile/bundle/model/BorderVersion.d.ts +6 -0
- package/mobile/bundle/services/sitemap/useSitemap.d.ts +2 -2
- package/mobile/bundle/ui-kit/CurrencyInput/{adjustValue .d.ts → adjustValue.d.ts} +0 -0
- package/mobile/dist/components/BenefitsBlock/BenefitsBlock.d.ts +2 -1
- package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js +5 -9
- package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
- package/mobile/dist/components/Catalog/CatalogContent.d.ts +2 -0
- package/mobile/dist/components/ContentPage/computeAPIFallback.d.ts +1 -1
- package/mobile/dist/components/ContentPage/computeAPIFallback.js +1 -1
- package/mobile/dist/components/ContentPage/computeAPIFallback.js.map +1 -1
- package/mobile/dist/components/ContentPage/normalizeBlock.js +4 -8
- package/mobile/dist/components/ContentPage/normalizeBlock.js.map +1 -1
- package/mobile/dist/components/ContentPage/normalizePage.d.ts +1 -1
- package/mobile/dist/components/ContentPage/normalizePage.js +1 -6
- package/mobile/dist/components/ContentPage/normalizePage.js.map +1 -1
- package/mobile/dist/components/Header/Header.js +6 -6
- package/mobile/dist/components/Header/Header.js.map +1 -1
- package/mobile/dist/components/Header/HeaderContent.d.ts +1 -2
- package/mobile/dist/components/InvestmentGallery/InvestmentGallery.d.ts +5 -0
- package/mobile/dist/components/InvestmentGallery/InvestmentGallery.js +40 -0
- package/mobile/dist/components/InvestmentGallery/InvestmentGallery.js.map +1 -0
- package/mobile/dist/components/InvestmentGallery/InvestmentGalleryCard.d.ts +7 -0
- package/mobile/dist/components/InvestmentGallery/InvestmentGalleryCard.js +24 -0
- package/mobile/dist/components/InvestmentGallery/InvestmentGalleryCard.js.map +1 -0
- package/mobile/dist/components/InvestmentGallery/InvestmentGalleryContent.d.ts +50 -0
- package/mobile/dist/components/InvestmentGallery/InvestmentGalleryContent.js +2 -0
- package/mobile/dist/components/InvestmentGallery/InvestmentGalleryContent.js.map +1 -0
- package/mobile/dist/components/PictureText/PictureText.js +2 -2
- package/mobile/dist/components/PictureText/PictureText.js.map +1 -1
- package/mobile/dist/components/Recommendation/Recommendation.js +7 -5
- package/mobile/dist/components/Recommendation/Recommendation.js.map +1 -1
- package/mobile/dist/components/StepsBlock/StepsBlock.js +1 -5
- package/mobile/dist/components/StepsBlock/StepsBlock.js.map +1 -1
- package/mobile/dist/content-page-repository/ContentPageRepository.d.ts +12 -9
- package/mobile/dist/content-page-repository/ContentPageRepository.js +24 -35
- package/mobile/dist/content-page-repository/ContentPageRepository.js.map +1 -1
- package/mobile/dist/model/BorderVersion.d.ts +6 -0
- package/mobile/dist/model/BorderVersion.js +7 -0
- package/mobile/dist/model/BorderVersion.js.map +1 -0
- package/mobile/dist/services/sitemap/useSitemap.d.ts +2 -2
- package/mobile/dist/services/sitemap/useSitemap.js.map +1 -1
- package/mobile/dist/ui-kit/BenefitItem/BenefitItem.js +3 -3
- package/mobile/dist/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
- package/mobile/dist/ui-kit/Breadcrumb.js +1 -8
- package/mobile/dist/ui-kit/Breadcrumb.js.map +1 -1
- package/mobile/dist/ui-kit/CurrencyInput/CurrencyInput.js +1 -1
- package/mobile/dist/ui-kit/CurrencyInput/CurrencyInput.js.map +1 -1
- package/mobile/dist/ui-kit/CurrencyInput/{adjustValue .d.ts → adjustValue.d.ts} +0 -0
- package/{dist/ui-kit/CurrencyInput/adjustValue .js → mobile/dist/ui-kit/CurrencyInput/adjustValue.js} +1 -1
- package/mobile/dist/ui-kit/CurrencyInput/adjustValue.js.map +1 -0
- package/mobile/dist/ui-kit/Tags/Tags.js +2 -2
- package/mobile/dist/ui-kit/Tags/Tags.js.map +1 -1
- package/mobile/lib/components/BenefitsBlock/BenefitsBlock.d.ts +2 -1
- package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js +5 -9
- package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
- package/mobile/lib/components/Catalog/CatalogContent.d.ts +2 -0
- package/mobile/lib/components/ContentPage/computeAPIFallback.d.ts +1 -1
- package/mobile/lib/components/ContentPage/computeAPIFallback.js +1 -1
- package/mobile/lib/components/ContentPage/computeAPIFallback.js.map +1 -1
- package/mobile/lib/components/ContentPage/normalizeBlock.js +4 -8
- package/mobile/lib/components/ContentPage/normalizeBlock.js.map +1 -1
- package/mobile/lib/components/ContentPage/normalizePage.d.ts +1 -1
- package/mobile/lib/components/ContentPage/normalizePage.js +1 -6
- package/mobile/lib/components/ContentPage/normalizePage.js.map +1 -1
- package/mobile/lib/components/Header/Header.js +6 -6
- package/mobile/lib/components/Header/Header.js.map +1 -1
- package/mobile/lib/components/Header/HeaderContent.d.ts +1 -2
- package/mobile/lib/components/InvestmentGallery/InvestmentGallery.d.ts +5 -0
- package/mobile/lib/components/InvestmentGallery/InvestmentGallery.js +38 -0
- package/mobile/lib/components/InvestmentGallery/InvestmentGallery.js.map +1 -0
- package/mobile/lib/components/InvestmentGallery/InvestmentGalleryCard.d.ts +7 -0
- package/mobile/lib/components/InvestmentGallery/InvestmentGalleryCard.js +22 -0
- package/mobile/lib/components/InvestmentGallery/InvestmentGalleryCard.js.map +1 -0
- package/mobile/lib/components/InvestmentGallery/InvestmentGalleryContent.d.ts +50 -0
- package/mobile/lib/components/InvestmentGallery/InvestmentGalleryContent.js +2 -0
- package/mobile/lib/components/InvestmentGallery/InvestmentGalleryContent.js.map +1 -0
- package/mobile/lib/components/PictureText/PictureText.js +2 -2
- package/mobile/lib/components/PictureText/PictureText.js.map +1 -1
- package/mobile/lib/components/Recommendation/Recommendation.js +7 -5
- package/mobile/lib/components/Recommendation/Recommendation.js.map +1 -1
- package/mobile/lib/components/StepsBlock/StepsBlock.js +1 -5
- package/mobile/lib/components/StepsBlock/StepsBlock.js.map +1 -1
- package/mobile/lib/content-page-repository/ContentPageRepository.d.ts +12 -9
- package/mobile/lib/content-page-repository/ContentPageRepository.js +24 -35
- package/mobile/lib/content-page-repository/ContentPageRepository.js.map +1 -1
- package/mobile/lib/model/BorderVersion.d.ts +6 -0
- package/mobile/lib/model/BorderVersion.js +5 -0
- package/mobile/lib/model/BorderVersion.js.map +1 -0
- package/mobile/lib/services/sitemap/useSitemap.d.ts +2 -2
- package/mobile/lib/services/sitemap/useSitemap.js.map +1 -1
- package/mobile/lib/ui-kit/BenefitItem/BenefitItem.js +3 -3
- package/mobile/lib/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
- package/mobile/lib/ui-kit/Breadcrumb.js +1 -8
- package/mobile/lib/ui-kit/Breadcrumb.js.map +1 -1
- package/mobile/lib/ui-kit/CurrencyInput/CurrencyInput.js +1 -1
- package/mobile/lib/ui-kit/CurrencyInput/CurrencyInput.js.map +1 -1
- package/mobile/lib/ui-kit/CurrencyInput/{adjustValue .d.ts → adjustValue.d.ts} +0 -0
- package/mobile/lib/ui-kit/CurrencyInput/{adjustValue .js → adjustValue.js} +1 -1
- package/mobile/lib/ui-kit/CurrencyInput/adjustValue.js.map +1 -0
- package/mobile/lib/ui-kit/Tags/Tags.js +2 -2
- package/mobile/lib/ui-kit/Tags/Tags.js.map +1 -1
- package/mobile/src/components/BenefitsBlock/BenefitsBlock.tsx +14 -21
- package/mobile/src/components/Catalog/CatalogContent.ts +2 -0
- package/mobile/src/components/ContentPage/computeAPIFallback.ts +20 -21
- package/mobile/src/components/ContentPage/normalizeBlock.ts +15 -18
- package/mobile/src/components/ContentPage/normalizePage.ts +2 -7
- package/mobile/src/components/Header/Header.tsx +11 -11
- package/mobile/src/components/Header/HeaderContent.ts +1 -2
- package/mobile/src/components/InvestmentGallery/InvestmentGallery.example.json +64 -0
- package/mobile/src/components/InvestmentGallery/InvestmentGallery.tsx +103 -0
- package/mobile/src/components/InvestmentGallery/InvestmentGallery.ui.json +11 -0
- package/mobile/src/components/InvestmentGallery/InvestmentGalleryCard.tsx +91 -0
- package/mobile/src/components/InvestmentGallery/InvestmentGalleryContent.ts +54 -0
- package/mobile/src/components/PictureText/PictureText.tsx +3 -3
- package/mobile/src/components/Recommendation/Recommendation.tsx +9 -7
- package/mobile/src/components/StepsBlock/StepsBlock.tsx +1 -7
- package/mobile/src/content-page-repository/ContentPageRepository.ts +27 -45
- package/mobile/src/model/BorderVersion.ts +10 -0
- package/mobile/src/services/sitemap/useSitemap.ts +4 -4
- package/mobile/src/ui-kit/BenefitItem/BenefitItem.tsx +6 -5
- package/mobile/src/ui-kit/Breadcrumb.tsx +8 -11
- package/mobile/src/ui-kit/CurrencyInput/CurrencyInput.tsx +1 -1
- package/mobile/src/ui-kit/CurrencyInput/{adjustValue .ts → adjustValue.ts} +0 -0
- package/mobile/src/ui-kit/Tags/Tags.tsx +3 -5
- package/package.json +1 -1
- package/src/components/BenefitsBlock/BenefitsBlock.tsx +14 -21
- package/src/components/Blocks.ts +2 -0
- package/src/components/Catalog/CatalogContent.ts +2 -0
- package/src/components/ContentPage/computeAPIFallback.ts +20 -21
- package/src/components/ContentPage/normalizeBlock.mobile.ts +15 -18
- package/src/components/ContentPage/normalizeBlock.ts +10 -12
- package/src/components/ContentPage/normalizePage.ts +2 -7
- package/src/components/Header/Header.mobile.tsx +11 -11
- package/src/components/Header/Header.tsx +17 -12
- package/src/components/Header/HeaderContent.ts +1 -2
- package/src/components/InvestmentGallery/InvestmentGallery.example.json +64 -0
- package/src/components/InvestmentGallery/InvestmentGallery.fixture.tsx +79 -0
- package/src/components/InvestmentGallery/InvestmentGallery.tsx +103 -0
- package/src/components/InvestmentGallery/InvestmentGallery.ui.json +11 -0
- package/src/components/InvestmentGallery/InvestmentGalleryCard.tsx +91 -0
- package/src/components/InvestmentGallery/InvestmentGalleryContent.ts +54 -0
- package/src/components/PictureText/PictureText.tsx +3 -3
- package/src/components/ProductGallery/ProductGallery.tsx +3 -4
- package/src/components/Recommendation/Recommendation.tsx +9 -7
- package/src/components/StepsBlock/StepsBlock.mobile.tsx +1 -7
- package/src/content-page-repository/ContentPageRepository.ts +27 -45
- package/src/model/BorderVersion.ts +10 -0
- package/src/services/sitemap/useSitemap.ts +4 -4
- package/src/ui-kit/BenefitItem/BenefitItem.tsx +6 -5
- package/src/ui-kit/Breadcrumb.tsx +8 -11
- package/src/ui-kit/CurrencyInput/CurrencyInput.tsx +1 -1
- package/src/ui-kit/CurrencyInput/{adjustValue .ts → adjustValue.ts} +0 -0
- package/src/ui-kit/Tags/Tags.tsx +3 -5
- package/dist/ui-kit/CurrencyInput/adjustValue .js.map +0 -1
- package/lib/ui-kit/CurrencyInput/adjustValue .js.map +0 -1
- package/mobile/dist/ui-kit/CurrencyInput/adjustValue .js.map +0 -1
- package/mobile/lib/ui-kit/CurrencyInput/adjustValue .js.map +0 -1
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import { useState } from '@redneckz/uni-jsx/lib/hooks';
|
|
3
|
+
import type { UniBlockProps } from '../../model/JSXBlock';
|
|
4
|
+
import type { BlockVersion } from '../../model/BlockVersion';
|
|
5
|
+
import { VersionStyleMap } from '../../model/BlockVersion';
|
|
6
|
+
import { BlockWrapper } from '../../ui-kit/BlockWrapper';
|
|
7
|
+
import { renderArrows } from '../../ui-kit/Button/renderArrows';
|
|
8
|
+
import { Heading } from '../../ui-kit/Heading/Heading';
|
|
9
|
+
import { InvestmentGalleryCard } from './InvestmentGalleryCard';
|
|
10
|
+
import type {
|
|
11
|
+
InvestmentGalleryCardTypes,
|
|
12
|
+
InvestmentGalleryContent,
|
|
13
|
+
} from './InvestmentGalleryContent';
|
|
14
|
+
import type { ContentPageContext } from '../ContentPage/ContentPageContext';
|
|
15
|
+
|
|
16
|
+
const BLUR_BLOCK_CLASSES = 'absolute top-0 bottom-0 w-[84px]';
|
|
17
|
+
const CARD_FULL_VIEW_COUNT = 1;
|
|
18
|
+
|
|
19
|
+
export interface InvestmentGalleryProps extends InvestmentGalleryContent, UniBlockProps {}
|
|
20
|
+
|
|
21
|
+
interface NavButtonsProps {
|
|
22
|
+
cardsCount: number;
|
|
23
|
+
activeCardIndex: number;
|
|
24
|
+
setActiveCardIndex: (number: number) => void;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export const InvestmentGallery = JSX<InvestmentGalleryProps>(
|
|
28
|
+
({ context, cards = [], className = '', title, version = 'primary', ...rest }) => {
|
|
29
|
+
const [activeCardIndex, setActiveCardIndex] = useState(0);
|
|
30
|
+
const cardWidth = 525;
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<BlockWrapper
|
|
34
|
+
context={context}
|
|
35
|
+
className={`relative font-sans p-9 overflow-hidden text-center
|
|
36
|
+
${VersionStyleMap[version]}
|
|
37
|
+
${className}`}
|
|
38
|
+
{...rest}
|
|
39
|
+
>
|
|
40
|
+
{title ? <Heading headingType="h3" className="mb-9" title={title} /> : null}
|
|
41
|
+
<div>
|
|
42
|
+
<div
|
|
43
|
+
className="flex duration-1000 gap-3.5"
|
|
44
|
+
style={{ transform: `translateX(-${activeCardIndex * cardWidth}px)` }}
|
|
45
|
+
role="list"
|
|
46
|
+
>
|
|
47
|
+
{cards?.length
|
|
48
|
+
? cards.map(renderInvestmentGalleryCard(context, className, version))
|
|
49
|
+
: null}
|
|
50
|
+
</div>
|
|
51
|
+
{renderNavButtons({
|
|
52
|
+
cardsCount: cards.length,
|
|
53
|
+
activeCardIndex,
|
|
54
|
+
setActiveCardIndex,
|
|
55
|
+
})}
|
|
56
|
+
</div>
|
|
57
|
+
<div
|
|
58
|
+
className={`${BLUR_BLOCK_CLASSES} left-0 ${
|
|
59
|
+
version === 'secondary' ? 'bg-opacity-from-main' : 'bg-opacity-from-white'
|
|
60
|
+
}`}
|
|
61
|
+
/>
|
|
62
|
+
<div
|
|
63
|
+
className={`${BLUR_BLOCK_CLASSES} right-0 ${
|
|
64
|
+
version === 'secondary' ? 'bg-opacity-to-main' : 'bg-opacity-to-white'
|
|
65
|
+
}`}
|
|
66
|
+
/>
|
|
67
|
+
</BlockWrapper>
|
|
68
|
+
);
|
|
69
|
+
},
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
const renderInvestmentGalleryCard =
|
|
73
|
+
(context: ContentPageContext, className: string, version?: BlockVersion) =>
|
|
74
|
+
(card: InvestmentGalleryCardTypes, i: number) =>
|
|
75
|
+
(
|
|
76
|
+
<InvestmentGalleryCard
|
|
77
|
+
key={String(i)}
|
|
78
|
+
className={className}
|
|
79
|
+
context={context}
|
|
80
|
+
version={version}
|
|
81
|
+
{...card}
|
|
82
|
+
/>
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
const renderNavButtons = ({ cardsCount, activeCardIndex, setActiveCardIndex }: NavButtonsProps) => {
|
|
86
|
+
const isUseSlider = cardsCount > CARD_FULL_VIEW_COUNT;
|
|
87
|
+
const showNextButton = isUseSlider && cardsCount - activeCardIndex > CARD_FULL_VIEW_COUNT;
|
|
88
|
+
const showPrevButton = isUseSlider && activeCardIndex > 0;
|
|
89
|
+
|
|
90
|
+
const handleNextClick = () => setActiveCardIndex(activeCardIndex + 1);
|
|
91
|
+
const handlePrevClick = () => setActiveCardIndex(activeCardIndex - 1);
|
|
92
|
+
|
|
93
|
+
return (
|
|
94
|
+
<div>
|
|
95
|
+
{renderArrows({
|
|
96
|
+
handler: [handlePrevClick, handleNextClick],
|
|
97
|
+
isShown: [showPrevButton, showNextButton],
|
|
98
|
+
btnClass: ['left-8', 'right-8'],
|
|
99
|
+
className: 'top-1/2 mt-3',
|
|
100
|
+
})}
|
|
101
|
+
</div>
|
|
102
|
+
);
|
|
103
|
+
};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import type { BlockVersion } from '../../model/BlockVersion';
|
|
3
|
+
import { BorderVersionStyleMap } from '../../model/BorderVersion';
|
|
4
|
+
import type { UniBlockProps } from '../../model/JSXBlock';
|
|
5
|
+
import { Description } from '../../ui-kit/Description/Description';
|
|
6
|
+
import { Heading } from '../../ui-kit/Heading/Heading';
|
|
7
|
+
import { Img } from '../../ui-kit/Img/Img';
|
|
8
|
+
import { BaseTile } from '../BaseTile/BaseTile';
|
|
9
|
+
import type {
|
|
10
|
+
CardColumnsMode,
|
|
11
|
+
CardListItem,
|
|
12
|
+
InvestmentGalleryCardTypes,
|
|
13
|
+
} from './InvestmentGalleryContent';
|
|
14
|
+
|
|
15
|
+
export interface RecommendationCardProps extends InvestmentGalleryCardTypes, UniBlockProps {
|
|
16
|
+
version?: BlockVersion;
|
|
17
|
+
}
|
|
18
|
+
const getItemListFontSize = (colValue?: string) => (colValue === 'single' ? 'text-h6' : 'text-l');
|
|
19
|
+
|
|
20
|
+
const cardColumnsModeStyleMap: Record<CardColumnsMode, string> = {
|
|
21
|
+
double: 'flex gap-y-2 gap-x-10 flex-wrap',
|
|
22
|
+
single: 'flex gap-y-2 flex-col',
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export const InvestmentGalleryCard = JSX<RecommendationCardProps>(
|
|
26
|
+
({
|
|
27
|
+
className = '',
|
|
28
|
+
columnsMode = 'double',
|
|
29
|
+
context,
|
|
30
|
+
description,
|
|
31
|
+
additionalDescription,
|
|
32
|
+
image,
|
|
33
|
+
cardList,
|
|
34
|
+
title,
|
|
35
|
+
version = 'primary',
|
|
36
|
+
}) => {
|
|
37
|
+
const tileTitle = title ? (
|
|
38
|
+
<Heading headingType="h4" as="h3" className="mb-3.5 z-10" title={title} />
|
|
39
|
+
) : null;
|
|
40
|
+
const tileImage = image?.src ? (
|
|
41
|
+
<Img className="absolute bottom-0 right-0 m-0" image={image} />
|
|
42
|
+
) : null;
|
|
43
|
+
|
|
44
|
+
return (
|
|
45
|
+
<section
|
|
46
|
+
className={`relative overflow-hidden text-left border border-solid box-border
|
|
47
|
+
p-9 min-w-[697px] min-h-[319px]
|
|
48
|
+
${BorderVersionStyleMap[version]}
|
|
49
|
+
${className}`}
|
|
50
|
+
role="listitem"
|
|
51
|
+
>
|
|
52
|
+
<BaseTile
|
|
53
|
+
context={context}
|
|
54
|
+
className="flex justify-between"
|
|
55
|
+
title={tileTitle}
|
|
56
|
+
image={tileImage}
|
|
57
|
+
>
|
|
58
|
+
<div className="flex flex-col justify-between">
|
|
59
|
+
<div className="flex itens-center justify-between mb-4">
|
|
60
|
+
{description ? <Description className="text-h6" description={description} /> : null}
|
|
61
|
+
{additionalDescription ? (
|
|
62
|
+
<div className="text-m-light text-secondary-text"> {additionalDescription} </div>
|
|
63
|
+
) : null}
|
|
64
|
+
</div>
|
|
65
|
+
{cardList?.length ? (
|
|
66
|
+
<div className={`${cardColumnsModeStyleMap[columnsMode]}`} role="list">
|
|
67
|
+
{renderCardList(cardList, columnsMode)}
|
|
68
|
+
</div>
|
|
69
|
+
) : null}
|
|
70
|
+
</div>
|
|
71
|
+
</BaseTile>
|
|
72
|
+
</section>
|
|
73
|
+
);
|
|
74
|
+
},
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
const renderCardList = (cardList: CardListItem[], columnsMode: string) =>
|
|
78
|
+
cardList.map((item, i) => (
|
|
79
|
+
<div
|
|
80
|
+
key={String(i)}
|
|
81
|
+
className={columnsMode === 'double' ? 'basis-[calc(50%-20px)]' : ''}
|
|
82
|
+
role="listitem"
|
|
83
|
+
>
|
|
84
|
+
{item?.parameter ? (
|
|
85
|
+
<span className={`pr-2.5 ${getItemListFontSize(columnsMode)}`}>{item.parameter}</span>
|
|
86
|
+
) : null}
|
|
87
|
+
{item?.parameterDesccription ? (
|
|
88
|
+
<span className="text-m-light text-secondary-text">{item.parameterDesccription}</span>
|
|
89
|
+
) : null}
|
|
90
|
+
</div>
|
|
91
|
+
));
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { BlockVersion } from '../../model/BlockVersion';
|
|
2
|
+
import type { Picture } from '../../model/Picture';
|
|
3
|
+
import type { HeadlineCommonProps, TitleProps } from '../../model/HeadlineType';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @title Количество колонок в списке
|
|
7
|
+
* @enumNames [
|
|
8
|
+
* "1 колонка",
|
|
9
|
+
* "2 колонки",
|
|
10
|
+
* ]
|
|
11
|
+
*/
|
|
12
|
+
export type CardColumnsMode = 'single' | 'double';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @title Карточка
|
|
16
|
+
*/
|
|
17
|
+
export interface InvestmentGalleryCardTypes extends HeadlineCommonProps {
|
|
18
|
+
/** @title Доп. описание карточки */
|
|
19
|
+
additionalDescription?: string;
|
|
20
|
+
/**
|
|
21
|
+
* @default {
|
|
22
|
+
* "format": "webp",
|
|
23
|
+
* "size": {
|
|
24
|
+
* "width": 290
|
|
25
|
+
* },
|
|
26
|
+
* "sources": [{
|
|
27
|
+
* "media": 1279,
|
|
28
|
+
* "width": 174,
|
|
29
|
+
* "format": "webp",
|
|
30
|
+
* "alignment": "southeast"
|
|
31
|
+
* }]
|
|
32
|
+
* }
|
|
33
|
+
*/
|
|
34
|
+
image?: Picture;
|
|
35
|
+
columnsMode?: CardColumnsMode;
|
|
36
|
+
/** @title Описание пункта */
|
|
37
|
+
cardList?: CardListItem[];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export interface CardListItem {
|
|
41
|
+
/** @title Параметр */
|
|
42
|
+
parameter?: string;
|
|
43
|
+
/** @title Описание */
|
|
44
|
+
parameterDesccription?: string;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @title Карточка
|
|
49
|
+
*/
|
|
50
|
+
export interface InvestmentGalleryContent extends TitleProps {
|
|
51
|
+
/** @title Карточки */
|
|
52
|
+
cards?: InvestmentGalleryCardTypes[];
|
|
53
|
+
version?: BlockVersion;
|
|
54
|
+
}
|
|
@@ -69,8 +69,8 @@ const renderBenefit = (version: BlockVersion) => (benefit: BenefitItemProps, i:
|
|
|
69
69
|
function renderInsuranceSumMonth(sum?: number, monthLimit?: number) {
|
|
70
70
|
return sum || monthLimit ? (
|
|
71
71
|
<div className="bg-main-divider rounded-md flex mt-7 gap-6 px-5 py-4">
|
|
72
|
-
{Number
|
|
73
|
-
{Number
|
|
72
|
+
{Number(sum) > 0 ? renderValueBlock('Страховая сумма:', sum, Boolean(monthLimit)) : null}
|
|
73
|
+
{Number(monthLimit) > 0
|
|
74
74
|
? renderValueBlock('Ежемесячный лимит:', monthLimit, Boolean(sum))
|
|
75
75
|
: null}
|
|
76
76
|
</div>
|
|
@@ -81,7 +81,7 @@ function renderValueBlock(title: string, sum = 0, isAnotherBlock = false) {
|
|
|
81
81
|
const widthStyle = isAnotherBlock ? 'w-fit' : 'w-full';
|
|
82
82
|
|
|
83
83
|
return (
|
|
84
|
-
<div className={`flex justify-between items-center gap-2 w-full ${widthStyle}`}>
|
|
84
|
+
<div className={`flex justify-between items-center gap-2 w-full whitespace-pre ${widthStyle}`}>
|
|
85
85
|
<span className="text-secondary-text text-l-light">{title}</span>
|
|
86
86
|
<span className="text-primary-main text-h6">{addSpacesBetweenNumbers(sum)} ₽</span>
|
|
87
87
|
</div>
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
2
|
import { useState } from '@redneckz/uni-jsx/lib/hooks';
|
|
3
3
|
import type { BlockVersion } from '../../model/BlockVersion';
|
|
4
|
+
import { BorderVersionStyleMap } from '../../model/BorderVersion';
|
|
4
5
|
import type { UniBlockProps } from '../../model/JSXBlock';
|
|
6
|
+
import { VersionStyleMap } from '../../model/BlockVersion';
|
|
5
7
|
import { BlockWrapper } from '../../ui-kit/BlockWrapper';
|
|
6
8
|
import { renderArrows } from '../../ui-kit/Button/renderArrows';
|
|
7
9
|
import { Heading } from '../../ui-kit/Heading/Heading';
|
|
@@ -16,17 +18,15 @@ const CARD_SHIFT = 525;
|
|
|
16
18
|
export interface RecommendationProps extends RecommendationContent, UniBlockProps {}
|
|
17
19
|
|
|
18
20
|
export const Recommendation = JSX<RecommendationProps>(
|
|
19
|
-
({ context, recommendations = [], className = '', title, version, ...rest }) => {
|
|
21
|
+
({ context, recommendations = [], className = '', title, version = 'primary', ...rest }) => {
|
|
20
22
|
const [activeCardIndex, setActiveCardIndex] = useState(0);
|
|
21
23
|
|
|
22
|
-
const blockClassName =
|
|
23
|
-
version === 'secondary' ? 'bg-primary-main text-white' : 'bg-white text-primary-text';
|
|
24
|
-
const cardClassName = version === 'secondary' ? 'border-white/50' : 'border-main-stroke';
|
|
25
|
-
|
|
26
24
|
return (
|
|
27
25
|
<BlockWrapper
|
|
28
26
|
context={context}
|
|
29
|
-
className={`relative font-sans p-9 overflow-hidden text-center
|
|
27
|
+
className={`relative font-sans p-9 overflow-hidden text-center
|
|
28
|
+
${VersionStyleMap[version]}
|
|
29
|
+
${className}`}
|
|
30
30
|
{...rest}
|
|
31
31
|
>
|
|
32
32
|
{title ? <Heading headingType="h3" className="mb-6" title={title} /> : null}
|
|
@@ -37,7 +37,9 @@ export const Recommendation = JSX<RecommendationProps>(
|
|
|
37
37
|
role="list"
|
|
38
38
|
>
|
|
39
39
|
{recommendations?.length
|
|
40
|
-
? recommendations.map(
|
|
40
|
+
? recommendations.map(
|
|
41
|
+
renderRecommendationCard(context, BorderVersionStyleMap[version], version),
|
|
42
|
+
)
|
|
41
43
|
: null}
|
|
42
44
|
</div>
|
|
43
45
|
{renderNavButtons({
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
2
|
import type { BlockVersion } from '../../model/BlockVersion';
|
|
3
|
-
import { IconVersion } from '../../model/IconVersion';
|
|
4
3
|
import type { UniBlockProps } from '../../model/JSXBlock';
|
|
5
4
|
import type { SizeVersion } from '../../model/SizeVersion';
|
|
6
5
|
import { Heading } from '../../ui-kit/Heading/Heading';
|
|
7
6
|
import { Img } from '../../ui-kit/Img/Img';
|
|
8
7
|
import { checkIsIconRenderable } from '../../utils/checkIsIconRenderable';
|
|
8
|
+
import { getIconWithVersion } from '../../utils/getIconWithVersion';
|
|
9
9
|
import type { Step, StepsBlockContent } from './StepsBlockContent';
|
|
10
10
|
import { STEPS_BLOCK_STYLE_MAPS } from './StepsBlockStyleMaps';
|
|
11
|
-
import { getIconWithVersion } from '../../utils/getIconWithVersion';
|
|
12
11
|
|
|
13
12
|
export interface StepsBlockProps extends StepsBlockContent, UniBlockProps {}
|
|
14
13
|
|
|
@@ -22,11 +21,6 @@ const STEPS_TILE_DESCRIPTION_HEIGHT_MAP: Record<SizeVersion, string> = {
|
|
|
22
21
|
small: 'min-h-[50px]',
|
|
23
22
|
};
|
|
24
23
|
|
|
25
|
-
const STEPS_SVG_VERSION_MAP: Record<BlockVersion, IconVersion> = {
|
|
26
|
-
primary: 'normal',
|
|
27
|
-
secondary: 'white',
|
|
28
|
-
};
|
|
29
|
-
|
|
30
24
|
export const StepsBlock = JSX<StepsBlockProps>(
|
|
31
25
|
({
|
|
32
26
|
className,
|
|
@@ -16,67 +16,49 @@ const not =
|
|
|
16
16
|
(_: Arg) =>
|
|
17
17
|
!predicate(_);
|
|
18
18
|
|
|
19
|
-
export
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
export class ContentPageRepository {
|
|
20
|
+
public static readonly inst = new ContentPageRepository();
|
|
21
|
+
|
|
22
|
+
private cache: Record<string, ContentPageDef> = {};
|
|
23
|
+
|
|
24
|
+
constructor(
|
|
25
|
+
private readonly options: TransformationOptions = {
|
|
26
|
+
contentDir: 'content',
|
|
27
|
+
publicDir: 'public',
|
|
28
|
+
},
|
|
29
|
+
) {}
|
|
26
30
|
|
|
27
|
-
async
|
|
28
|
-
|
|
29
|
-
const pages = await Promise.all(pagePaths.map(readPage));
|
|
30
|
-
|
|
31
|
-
return pagePaths.reduce(
|
|
32
|
-
(result, path, i) => ({
|
|
33
|
-
...result,
|
|
34
|
-
[path]: pages[i],
|
|
35
|
-
}),
|
|
36
|
-
{},
|
|
37
|
-
);
|
|
31
|
+
async listAllContentPages(): Promise<string[]> {
|
|
32
|
+
return find(`${this.options.contentDir}/**/*.page.json`);
|
|
38
33
|
}
|
|
39
34
|
|
|
40
|
-
async
|
|
41
|
-
|
|
35
|
+
async getAllContentPages(): Promise<ContentPageDef[]> {
|
|
36
|
+
const pagePaths = await this.listAllContentPages();
|
|
37
|
+
|
|
38
|
+
return Promise.all(pagePaths.map((_) => this.readPage(_)));
|
|
42
39
|
}
|
|
43
40
|
|
|
44
|
-
async
|
|
45
|
-
const pages = await getAllContentPages();
|
|
41
|
+
async getSecondaryContentPages(customPageType?: string): Promise<ContentPageDef[]> {
|
|
42
|
+
const pages = await this.getAllContentPages();
|
|
46
43
|
|
|
47
44
|
return pages.filter(not(bySlug(INDEX_PAGE_SLUG))).filter(byCustomPageType(customPageType));
|
|
48
45
|
}
|
|
49
46
|
|
|
50
|
-
async
|
|
51
|
-
const pages = await getAllContentPages();
|
|
47
|
+
async getContentPageBySlug(slug: string): Promise<ContentPageDef | undefined> {
|
|
48
|
+
const pages = await this.getAllContentPages();
|
|
52
49
|
|
|
53
50
|
return pages.find(bySlug(slug));
|
|
54
51
|
}
|
|
55
52
|
|
|
56
|
-
async
|
|
57
|
-
return
|
|
53
|
+
async getIndexPage(): Promise<ContentPageDef | undefined> {
|
|
54
|
+
return this.getContentPageBySlug(INDEX_PAGE_SLUG);
|
|
58
55
|
}
|
|
59
56
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
if (!(filePath in cache)) {
|
|
64
|
-
cache[filePath] = await transformContentPage(filePath, {
|
|
65
|
-
contentDir,
|
|
66
|
-
publicDir,
|
|
67
|
-
});
|
|
57
|
+
async readPage(filePath: string): Promise<ContentPageDef> {
|
|
58
|
+
if (!(filePath in this.cache)) {
|
|
59
|
+
this.cache[filePath] = await transformContentPage(filePath, this.options);
|
|
68
60
|
}
|
|
69
61
|
|
|
70
|
-
return cache[filePath];
|
|
62
|
+
return this.cache[filePath];
|
|
71
63
|
}
|
|
72
|
-
|
|
73
|
-
return {
|
|
74
|
-
listAllContentPages,
|
|
75
|
-
getAllContentPagesMap,
|
|
76
|
-
getAllContentPages,
|
|
77
|
-
getContentPageBySlug,
|
|
78
|
-
getSecondaryContentPages,
|
|
79
|
-
getIndexPage,
|
|
80
|
-
readPage,
|
|
81
|
-
};
|
|
82
64
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title Цвет бордера
|
|
3
|
+
* @enumNames ["Основной", "Второстепенный"]
|
|
4
|
+
*/
|
|
5
|
+
export type BorderVersion = 'primary' | 'secondary';
|
|
6
|
+
|
|
7
|
+
export const BorderVersionStyleMap: Record<BorderVersion, string> = {
|
|
8
|
+
primary: 'border-main-stroke',
|
|
9
|
+
secondary: 'border-white/50',
|
|
10
|
+
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { useAsyncData } from '@redneckz/uni-jsx/lib/hooks/useAsyncData';
|
|
2
|
-
import type { HeaderContent } from '../../components/Header/HeaderContent';
|
|
3
|
-
import { projectSettings } from '../../ProjectSettings';
|
|
4
2
|
import type { Fallback } from '../../model/Fallback';
|
|
3
|
+
import { projectSettings } from '../../ProjectSettings';
|
|
5
4
|
import { fetchJSONUnsafe } from '../../utils/fetchJSON';
|
|
5
|
+
import type { SitemapProps } from './SitemapProps';
|
|
6
6
|
|
|
7
|
-
export function useSitemap(fallback: Fallback = {}):
|
|
8
|
-
const { data } = useAsyncData<
|
|
7
|
+
export function useSitemap(fallback: Fallback = {}): SitemapProps {
|
|
8
|
+
const { data } = useAsyncData<SitemapProps>(
|
|
9
9
|
`/wcms-resources/${projectSettings.SITEMAP || 'sitemap'}.json`,
|
|
10
10
|
fetchJSONUnsafe,
|
|
11
11
|
{ fallback },
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
2
|
import type { BlockVersion } from '../../model/BlockVersion';
|
|
3
3
|
import type { IconVersion } from '../../model/IconVersion';
|
|
4
|
+
import { getIconWithVersion } from '../../utils/getIconWithVersion';
|
|
4
5
|
import { Img } from '../Img/Img';
|
|
5
6
|
import type { BenefitItemCommonProps, BenefitItemProps } from './BenefitItemProps';
|
|
6
|
-
import { getIconWithVersion } from '../../utils/getIconWithVersion';
|
|
7
|
-
|
|
8
|
-
export interface BenefitGeneralProps extends BenefitItemProps, BenefitItemCommonProps {}
|
|
9
7
|
|
|
10
8
|
const titleStyleMap: Record<BlockVersion, string> = {
|
|
11
9
|
primary: 'text-primary-text',
|
|
12
10
|
secondary: 'text-white',
|
|
13
11
|
};
|
|
12
|
+
|
|
14
13
|
const descStyleMap: Record<BlockVersion, string> = {
|
|
15
14
|
primary: 'text-secondary-text',
|
|
16
15
|
secondary: 'text-white',
|
|
17
16
|
};
|
|
18
17
|
|
|
18
|
+
export interface BenefitGeneralProps extends BenefitItemProps, BenefitItemCommonProps {}
|
|
19
|
+
|
|
19
20
|
export const BenefitItem = JSX<BenefitGeneralProps>((props) => {
|
|
20
21
|
const {
|
|
21
22
|
className = '',
|
|
@@ -31,7 +32,7 @@ export const BenefitItem = JSX<BenefitGeneralProps>((props) => {
|
|
|
31
32
|
return (
|
|
32
33
|
<div className={`flex gap-5 ${listItemAlign} ${className}`}>
|
|
33
34
|
{icon ? (
|
|
34
|
-
<div className={
|
|
35
|
+
<div className={getBenefitIconBgStyle(version, benefitsVersion)}>
|
|
35
36
|
<Img className="w-6 h-6" image={getIconWithVersion(icon, calcVersion)} asSVG />
|
|
36
37
|
</div>
|
|
37
38
|
) : null}
|
|
@@ -45,7 +46,7 @@ export const BenefitItem = JSX<BenefitGeneralProps>((props) => {
|
|
|
45
46
|
);
|
|
46
47
|
});
|
|
47
48
|
|
|
48
|
-
function
|
|
49
|
+
function getBenefitIconBgStyle(version: BlockVersion, benefitsVersion: IconVersion) {
|
|
49
50
|
let bgColorStyle = 'bg-primary-main text-black';
|
|
50
51
|
|
|
51
52
|
if (version === 'secondary') {
|
|
@@ -7,15 +7,12 @@ export interface BreadcrumbProps extends LinkProps {
|
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
export const Breadcrumb = JSX<BreadcrumbProps>(
|
|
10
|
-
({ text, href, target, onClick, className = '', children }) =>
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
<
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
return <span className={className}>{text || children}</span>;
|
|
19
|
-
}
|
|
20
|
-
},
|
|
10
|
+
({ text, href, target, onClick, className = '', children }) =>
|
|
11
|
+
href ? (
|
|
12
|
+
<a className={`no-underline ${className}`} href={href} target={target} onClick={onClick}>
|
|
13
|
+
<span className={className}>{text || children}</span>
|
|
14
|
+
</a>
|
|
15
|
+
) : (
|
|
16
|
+
<span className={className}>{text || children}</span>
|
|
17
|
+
),
|
|
21
18
|
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
2
|
import { clamp } from '../../utils/clamp';
|
|
3
|
-
import { adjustValue, localNumberFormat } from './adjustValue
|
|
3
|
+
import { adjustValue, localNumberFormat } from './adjustValue';
|
|
4
4
|
import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
|
|
5
5
|
import { Input } from '../Input/Input';
|
|
6
6
|
import type { CurrencyInputProps } from './CurrencyInputProps';
|
|
File without changes
|
|
@@ -10,15 +10,13 @@ export const Tags = JSX<TagsProps>((props) => {
|
|
|
10
10
|
const { tags, className = '' } = props;
|
|
11
11
|
|
|
12
12
|
return tags?.length ? (
|
|
13
|
-
<div className={`flex flex-wrap gap-2 ${className}`}>
|
|
14
|
-
{tags.map((_, i) => renderTag(_, String(i)))}
|
|
15
|
-
</div>
|
|
13
|
+
<div className={`flex flex-wrap gap-2 ${className}`}>{tags.map(renderTag)}</div>
|
|
16
14
|
) : null;
|
|
17
15
|
});
|
|
18
16
|
|
|
19
|
-
const renderTag = (tag: string, key:
|
|
17
|
+
const renderTag = (tag: string, key: number) => (
|
|
20
18
|
<span
|
|
21
|
-
key={key}
|
|
19
|
+
key={String(key)}
|
|
22
20
|
className="text-m-light py-2 px-2.5 border-solid border rounded-md border-color-stroke"
|
|
23
21
|
>
|
|
24
22
|
{tag}
|
package/package.json
CHANGED
|
@@ -1,19 +1,12 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import
|
|
2
|
+
import { BlockVersion, VersionStyleMap } from '../../model/BlockVersion';
|
|
3
3
|
import type { UniBlockProps } from '../../model/JSXBlock';
|
|
4
4
|
import { BlockWrapper } from '../../ui-kit/BlockWrapper';
|
|
5
5
|
import { Heading } from '../../ui-kit/Heading/Heading';
|
|
6
6
|
import { Img } from '../../ui-kit/Img/Img';
|
|
7
|
+
import { getIconWithVersion } from '../../utils/getIconWithVersion';
|
|
7
8
|
import type { BenefitsBlockContent, ListBenefitDef, TextBenefitDef } from './BenefitsBlockContent';
|
|
8
9
|
import { BenefitBlockItemProps, DescriptionDef } from './BenefitsBlockContent';
|
|
9
|
-
import { getIconWithVersion } from '../../utils/getIconWithVersion';
|
|
10
|
-
|
|
11
|
-
export interface BenefitsBlockProps extends BenefitsBlockContent, UniBlockProps {}
|
|
12
|
-
|
|
13
|
-
const benefitsBlockStyleMap = {
|
|
14
|
-
primary: 'bg-white',
|
|
15
|
-
secondary: 'bg-primary-main',
|
|
16
|
-
};
|
|
17
10
|
|
|
18
11
|
const benefitsTextStyleMap = {
|
|
19
12
|
primary: '',
|
|
@@ -30,10 +23,12 @@ const benefitsIconStyleMap = {
|
|
|
30
23
|
secondary: 'bg-white/30 text-black',
|
|
31
24
|
};
|
|
32
25
|
|
|
26
|
+
interface BenefitsBlockProps extends BenefitsBlockContent, UniBlockProps {}
|
|
27
|
+
|
|
33
28
|
export const BenefitsBlock = JSX<BenefitsBlockProps>(
|
|
34
29
|
({ className = '', title, benefitList, version = 'primary', ...rest }) => (
|
|
35
30
|
<BlockWrapper
|
|
36
|
-
className={`font-sans text-primary-text p-12 flex flex-col items-center ${className} ${
|
|
31
|
+
className={`font-sans text-primary-text p-12 flex flex-col items-center ${className} ${VersionStyleMap[version]}`}
|
|
37
32
|
{...rest}
|
|
38
33
|
>
|
|
39
34
|
{title ? (
|
|
@@ -44,19 +39,17 @@ export const BenefitsBlock = JSX<BenefitsBlockProps>(
|
|
|
44
39
|
title={title}
|
|
45
40
|
/>
|
|
46
41
|
) : null}
|
|
47
|
-
{benefitList?.length ?
|
|
42
|
+
{benefitList?.length ? (
|
|
43
|
+
<div className="flex flex-wrap w-full justify-center gap-x-20 mt-8">
|
|
44
|
+
{benefitList.map(renderStep(version))}
|
|
45
|
+
</div>
|
|
46
|
+
) : null}
|
|
48
47
|
</BlockWrapper>
|
|
49
48
|
),
|
|
50
49
|
);
|
|
51
50
|
|
|
52
|
-
const renderBenefits = (benefitList: BenefitBlockItemProps[], version: BlockVersion) => (
|
|
53
|
-
<div className="flex flex-wrap w-full justify-center gap-x-20 mt-8">
|
|
54
|
-
{benefitList.map(renderStep(version))}
|
|
55
|
-
</div>
|
|
56
|
-
);
|
|
57
|
-
|
|
58
51
|
const renderStep = (version: BlockVersion) => (benefit: BenefitBlockItemProps, i: number) => {
|
|
59
|
-
const description =
|
|
52
|
+
const description = benefit.description;
|
|
60
53
|
|
|
61
54
|
return (
|
|
62
55
|
<div key={String(i)} className="flex items-center basis-1/2 max-w-[500px] mb-14">
|
|
@@ -78,8 +71,8 @@ const renderStep = (version: BlockVersion) => (benefit: BenefitBlockItemProps, i
|
|
|
78
71
|
);
|
|
79
72
|
};
|
|
80
73
|
|
|
81
|
-
const renderDescription = (description: DescriptionDef, version: BlockVersion) => {
|
|
82
|
-
const benefitType = description
|
|
74
|
+
const renderDescription = (description: DescriptionDef | undefined, version: BlockVersion) => {
|
|
75
|
+
const benefitType = description?.benefitType || null;
|
|
83
76
|
|
|
84
77
|
return description && benefitType ? (
|
|
85
78
|
<div className={`text-l-light mt-2 ${benefitsDescriptionStyleMap[version]}`}>
|
|
@@ -90,7 +83,7 @@ const renderDescription = (description: DescriptionDef, version: BlockVersion) =
|
|
|
90
83
|
) : null;
|
|
91
84
|
};
|
|
92
85
|
|
|
93
|
-
const renderTextBenefit = (description?: TextBenefitDef) =>
|
|
86
|
+
const renderTextBenefit = (description?: TextBenefitDef) => description?.name || null;
|
|
94
87
|
|
|
95
88
|
const renderListBenefit = (description?: ListBenefitDef) => {
|
|
96
89
|
const listStyleType = description?.bullets ? 'list-disc pl-6' : '';
|