@redneckz/wildless-cms-uni-blocks 0.3.36 → 0.3.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +32 -10
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/dist/components/BlockContent.d.ts +2 -1
  5. package/dist/components/Blocks.d.ts +1 -0
  6. package/dist/components/Blocks.js +2 -0
  7. package/dist/components/Blocks.js.map +1 -1
  8. package/dist/components/ContentPage/ContentPage.js +7 -4
  9. package/dist/components/ContentPage/ContentPage.js.map +1 -1
  10. package/dist/components/GracePeriod/GracePeriod.d.ts +5 -0
  11. package/dist/components/GracePeriod/GracePeriod.js +21 -0
  12. package/dist/components/GracePeriod/GracePeriod.js.map +1 -0
  13. package/dist/components/GracePeriod/GracePeriodContent.d.ts +25 -0
  14. package/dist/components/GracePeriod/GracePeriodContent.js +2 -0
  15. package/dist/components/GracePeriod/GracePeriodContent.js.map +1 -0
  16. package/dist/components/Header/HeaderSubMenu.js +4 -0
  17. package/dist/components/Header/HeaderSubMenu.js.map +1 -1
  18. package/dist/components/Header/HeaderSubMenuObserver.js +5 -4
  19. package/dist/components/Header/HeaderSubMenuObserver.js.map +1 -1
  20. package/dist/components/MobileAppTile/MobileAppTile.js +1 -2
  21. package/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
  22. package/dist/ui-kit/Button/ButtonInner.js +1 -1
  23. package/dist/ui-kit/Button/ButtonInner.js.map +1 -1
  24. package/lib/common.css +1 -1
  25. package/lib/components/BlockContent.d.ts +2 -1
  26. package/lib/components/Blocks.d.ts +1 -0
  27. package/lib/components/Blocks.js +2 -0
  28. package/lib/components/Blocks.js.map +1 -1
  29. package/lib/components/ContentPage/ContentPage.js +7 -4
  30. package/lib/components/ContentPage/ContentPage.js.map +1 -1
  31. package/lib/components/GracePeriod/GracePeriod.d.ts +5 -0
  32. package/lib/components/GracePeriod/GracePeriod.fixture.d.ts +6 -0
  33. package/lib/components/GracePeriod/GracePeriod.js +19 -0
  34. package/lib/components/GracePeriod/GracePeriod.js.map +1 -0
  35. package/lib/components/GracePeriod/GracePeriodContent.d.ts +25 -0
  36. package/lib/components/GracePeriod/GracePeriodContent.js +2 -0
  37. package/lib/components/GracePeriod/GracePeriodContent.js.map +1 -0
  38. package/lib/components/Header/HeaderSubMenu.js +4 -0
  39. package/lib/components/Header/HeaderSubMenu.js.map +1 -1
  40. package/lib/components/Header/HeaderSubMenuObserver.js +5 -4
  41. package/lib/components/Header/HeaderSubMenuObserver.js.map +1 -1
  42. package/lib/components/MobileAppTile/MobileAppTile.js +1 -2
  43. package/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
  44. package/lib/ui-kit/Button/ButtonInner.js +1 -1
  45. package/lib/ui-kit/Button/ButtonInner.js.map +1 -1
  46. package/mobile/bundle/bundle.umd.js +9 -5
  47. package/mobile/bundle/bundle.umd.min.js +1 -1
  48. package/mobile/dist/components/BlockContent.d.ts +2 -1
  49. package/mobile/dist/components/ContentPage/ContentPage.js +7 -4
  50. package/mobile/dist/components/ContentPage/ContentPage.js.map +1 -1
  51. package/mobile/dist/components/GracePeriod/GracePeriod.d.ts +5 -0
  52. package/mobile/dist/components/GracePeriod/GracePeriod.js +21 -0
  53. package/mobile/dist/components/GracePeriod/GracePeriod.js.map +1 -0
  54. package/mobile/dist/components/GracePeriod/GracePeriodContent.d.ts +25 -0
  55. package/mobile/dist/components/GracePeriod/GracePeriodContent.js +2 -0
  56. package/mobile/dist/components/GracePeriod/GracePeriodContent.js.map +1 -0
  57. package/mobile/dist/components/Header/HeaderSubMenu.js +4 -0
  58. package/mobile/dist/components/Header/HeaderSubMenu.js.map +1 -1
  59. package/mobile/dist/components/Header/HeaderSubMenuObserver.js +5 -4
  60. package/mobile/dist/components/Header/HeaderSubMenuObserver.js.map +1 -1
  61. package/mobile/dist/ui-kit/Button/ButtonInner.js +1 -1
  62. package/mobile/dist/ui-kit/Button/ButtonInner.js.map +1 -1
  63. package/mobile/lib/components/BlockContent.d.ts +2 -1
  64. package/mobile/lib/components/ContentPage/ContentPage.js +7 -4
  65. package/mobile/lib/components/ContentPage/ContentPage.js.map +1 -1
  66. package/mobile/lib/components/GracePeriod/GracePeriod.d.ts +5 -0
  67. package/mobile/lib/components/GracePeriod/GracePeriod.js +19 -0
  68. package/mobile/lib/components/GracePeriod/GracePeriod.js.map +1 -0
  69. package/mobile/lib/components/GracePeriod/GracePeriodContent.d.ts +25 -0
  70. package/mobile/lib/components/GracePeriod/GracePeriodContent.js +2 -0
  71. package/mobile/lib/components/GracePeriod/GracePeriodContent.js.map +1 -0
  72. package/mobile/lib/components/Header/HeaderSubMenu.js +4 -0
  73. package/mobile/lib/components/Header/HeaderSubMenu.js.map +1 -1
  74. package/mobile/lib/components/Header/HeaderSubMenuObserver.js +5 -4
  75. package/mobile/lib/components/Header/HeaderSubMenuObserver.js.map +1 -1
  76. package/mobile/lib/ui-kit/Button/ButtonInner.js +1 -1
  77. package/mobile/lib/ui-kit/Button/ButtonInner.js.map +1 -1
  78. package/mobile/src/components/BlockContent.ts +2 -0
  79. package/mobile/src/components/ContentPage/ContentPage.page.json +94 -0
  80. package/mobile/src/components/ContentPage/ContentPage.tsx +10 -6
  81. package/mobile/src/components/GracePeriod/GracePeriod.example.json +85 -0
  82. package/mobile/src/components/GracePeriod/GracePeriod.tsx +70 -0
  83. package/mobile/src/components/GracePeriod/GracePeriodContent.ts +27 -0
  84. package/mobile/src/components/Header/HeaderSubMenu.tsx +5 -0
  85. package/mobile/src/components/Header/HeaderSubMenuObserver.ts +6 -4
  86. package/mobile/src/ui-kit/Button/ButtonInner.tsx +1 -1
  87. package/package.json +1 -1
  88. package/src/components/BlockContent.ts +2 -0
  89. package/src/components/Blocks.ts +2 -0
  90. package/src/components/ContentPage/ContentPage.page.json +94 -0
  91. package/src/components/ContentPage/ContentPage.tsx +10 -6
  92. package/src/components/GracePeriod/GracePeriod.example.json +85 -0
  93. package/src/components/GracePeriod/GracePeriod.fixture.tsx +109 -0
  94. package/src/components/GracePeriod/GracePeriod.tsx +70 -0
  95. package/src/components/GracePeriod/GracePeriodContent.ts +27 -0
  96. package/src/components/Header/HeaderSubMenu.tsx +5 -0
  97. package/src/components/Header/HeaderSubMenuObserver.ts +6 -4
  98. package/src/components/MobileAppTile/MobileAppTile.tsx +4 -5
  99. package/src/ui-kit/Button/ButtonInner.tsx +1 -1
@@ -4,7 +4,7 @@ const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
4
4
  const uni_jsx_1 = require("@redneckz/uni-jsx");
5
5
  exports.ButtonInner = (0, uni_jsx_1.JSX)((props) => {
6
6
  const { text, aboveText, appendLeft } = props;
7
- return ((0, jsx_runtime_1.jsxs)("div", { className: getButtonStyle(props), children: [appendLeft ? appendLeft : null, isWithText(props) ? ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { className: "text-m-2xs font-light text-left", children: aboveText }), (0, jsx_runtime_1.jsx)("div", { className: "text-button-sm text-left", children: text })] })) : null] }));
7
+ return ((0, jsx_runtime_1.jsxs)("div", { className: getButtonStyle(props), children: [appendLeft ? appendLeft : null, isWithText(props) ? ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { className: "text-m-2xs font-light text-left", children: aboveText }), (0, jsx_runtime_1.jsx)("div", { className: "text-button text-left", children: text })] })) : null] }));
8
8
  });
9
9
  const getButtonStyle = (props) => {
10
10
  const { version, aboveText, rounded } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonInner.js","sourceRoot":"","sources":["../../../src/ui-kit/Button/ButtonInner.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AAQ3B,QAAA,WAAW,GAAG,IAAA,aAAG,EAAmB,CAAC,KAAK,EAAE,EAAE;IACzD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC9C,OAAO,CACL,iCAAK,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,aAClC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAC9B,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACnB,4CACE,gCAAK,SAAS,EAAC,iCAAiC,YAAE,SAAS,GAAO,EAClE,gCAAK,SAAS,EAAC,0BAA0B,YAAE,IAAI,GAAO,IAClD,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,KAAuB,EAAE,EAAE;IACjD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAE9C,IAAI,OAAO,KAAK,MAAM,EAAE;QACtB,OAAO,EAAE,CAAC;KACX;IAED,MAAM,aAAa,GAAG,cAAc,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAEvE,OAAO;QACL,kCAAkC;QAClC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW;QAC/C,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;KAC9B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAoB,EAAE,EAAE,CACvE,OAAO,CAAC,IAAI,IAAI,SAAS,IAAI,CAAC,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"ButtonInner.js","sourceRoot":"","sources":["../../../src/ui-kit/Button/ButtonInner.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AAQ3B,QAAA,WAAW,GAAG,IAAA,aAAG,EAAmB,CAAC,KAAK,EAAE,EAAE;IACzD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC9C,OAAO,CACL,iCAAK,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,aAClC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAC9B,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACnB,4CACE,gCAAK,SAAS,EAAC,iCAAiC,YAAE,SAAS,GAAO,EAClE,gCAAK,SAAS,EAAC,uBAAuB,YAAE,IAAI,GAAO,IAC/C,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,KAAuB,EAAE,EAAE;IACjD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAE9C,IAAI,OAAO,KAAK,MAAM,EAAE;QACtB,OAAO,EAAE,CAAC;KACX;IAED,MAAM,aAAa,GAAG,cAAc,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAEvE,OAAO;QACL,kCAAkC;QAClC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW;QAC/C,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;KAC9B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAoB,EAAE,EAAE,CACvE,OAAO,CAAC,IAAI,IAAI,SAAS,IAAI,CAAC,UAAU,CAAC,CAAC"}
@@ -3,6 +3,7 @@ import type { ComparisonTableContent } from './ComparisonTable/ComparisonTableCo
3
3
  import type { ExchangeRateTileContent } from './ExchangeRateTile/ExchangeRateTileContent';
4
4
  import type { FooterContent } from './Footer/FooterContent';
5
5
  import type { GalleryContent } from './Gallery/GalleryContent';
6
+ import type { GracePeriodContent } from './GracePeriod/GracePeriodContent';
6
7
  import type { HeaderContent } from './Header/HeaderContent';
7
8
  import type { LinkDocsContent } from './LinkDocs/LinkDocsContent';
8
9
  import type { LinkListContent } from './LinkList/LinkListContent';
@@ -22,4 +23,4 @@ import type { TileContent } from './Tile/TileContent';
22
23
  /**
23
24
  * @hidden
24
25
  */
25
- export declare type BlockContent = BenefitsBlockContent | ComparisonTableContent | ExchangeRateTileContent | FooterContent | GalleryContent | HeaderContent | LinkDocsContent | MobileAppTileContent | NavigatorTabsContent | PictureTextContent | PlaceholderContent | ProductBlockContent | ProductGalleryContent | ProductTileContent | PromoTileContent | StepsBlockContent | TariffsTableContent | TextBlockContent | TileContent | NavigationContent | LinkListContent;
26
+ export declare type BlockContent = BenefitsBlockContent | ComparisonTableContent | ExchangeRateTileContent | FooterContent | GalleryContent | GracePeriodContent | HeaderContent | LinkDocsContent | MobileAppTileContent | NavigatorTabsContent | PictureTextContent | PlaceholderContent | ProductBlockContent | ProductGalleryContent | ProductTileContent | PromoTileContent | StepsBlockContent | TariffsTableContent | TextBlockContent | TileContent | NavigationContent | LinkListContent;
@@ -1,17 +1,20 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
2
2
  import { JSX } from '@redneckz/uni-jsx';
3
3
  import { changeHashOnScroll } from '../../utils/changeHashOnScroll.js';
4
+ import { isSSR } from '../../utils/isSSR.js';
4
5
  import { LikeControl } from '../LikeControl/LikeControl.js';
5
6
  import { Placeholder } from '../Placeholder/Placeholder.js';
7
+ const isClient = !isSSR();
6
8
  const defaultBlockDecorator = ({ blockClassName, block, render }) => render({ blockClassName, block });
7
9
  export const ContentPage = JSX(({ className = '', context, blocksRegistry, data: { style: pageStyle, blocks, slots = {}, likeControl, colorPalette = 'pc' }, blockDecorator = defaultBlockDecorator, }) => {
8
10
  const { header } = slots;
9
11
  const router = context.useRouter();
10
12
  // listener is for NavigatorTabs
11
- globalThis.addEventListener('load', () => {
12
- const sectionsWithAnchors = globalThis.document.querySelectorAll('section[id]');
13
- globalThis.document.addEventListener('scroll', () => changeHashOnScroll(router, sectionsWithAnchors));
14
- });
13
+ isClient &&
14
+ globalThis.addEventListener('load', () => {
15
+ const sectionsWithAnchors = globalThis.document.querySelectorAll('section[id]');
16
+ globalThis.document.addEventListener('scroll', () => changeHashOnScroll(router, sectionsWithAnchors));
17
+ });
15
18
  return (_jsxs("section", { className: `relative ${style2className(pageStyle)} ${className}`, "data-theme": colorPalette, children: [header?.blocks?.length ? (_jsx("div", { className: `${style2className(header?.style)}`, children: header.blocks.map((block, i) => renderBlock({ block, blockDecorator, blocksRegistry, context }, i)) })) : null, blocks?.length ? (_jsx("div", { className: "container grid grid-cols-12 gap-1", children: blocks.map((block, i) => renderBlock({ block, blockDecorator, blocksRegistry, context }, i)) })) : null, likeControl && (_jsx("div", { className: "flex items-end absolute bottom-0 right-0 h-full pointer-events-none", children: _jsx(LikeControl, { className: "rounded-tl-lg sticky bottom-0 pointer-events-auto", context: context }, "LikeControl") }))] }));
16
19
  });
17
20
  function renderBlock({ block, blockDecorator, blocksRegistry, context }, i) {
@@ -1 +1 @@
1
- {"version":3,"file":"ContentPage.js","sourceRoot":"","sources":["../../../src/components/ContentPage/ContentPage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContentPage.js","sourceRoot":"","sources":["../../../src/components/ContentPage/ContentPage.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { UniBlockProps } from '../../types';
2
+ import type { GracePeriodContent } from './GracePeriodContent';
3
+ export interface GracePeriodProps extends GracePeriodContent, UniBlockProps {
4
+ }
5
+ export declare const GracePeriod: (props: import("@redneckz/uni-jsx").PropsWithChildren<GracePeriodProps, any>, context?: any) => any;
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
2
+ import { JSX } from '@redneckz/uni-jsx';
3
+ import { Heading } from '../../ui-kit/Heading/Heading.js';
4
+ import { Img } from '../../ui-kit/Img/Img.js';
5
+ export const GracePeriod = JSX(({ className = '', title, description, calendar, anchor = null }) => {
6
+ return (_jsxs("section", { className: `bg-white p-16 pt-12 ${className}`, id: anchor, children: [_jsx(Heading, { headingType: "h2", className: "text-center", title: title }), _jsx("div", { className: "font-light text-base-md text-center mt-3", children: description }), renderCalendar(calendar)] }));
7
+ });
8
+ const renderCalendar = (calendar) => {
9
+ const colCount = calendar.reduce((accumulator, currentValue) => accumulator + currentValue.month.length, 0) || 1;
10
+ const colSize = 100 / colCount;
11
+ const mappedCalendar = calendar.map((_) => ({
12
+ ..._,
13
+ flexBasis: `${_.month.length * colSize}%`,
14
+ }));
15
+ return (_jsxs("div", { className: "w-full flex flex-col justify-center mt-14", children: [_jsx("div", { className: "flex w-full mb-3 font-light text-m-title-md mb-3 text-center", children: mappedCalendar.map((_) => renderMonthNames(_, colSize)) }), _jsx("div", { className: "flex w-full", children: mappedCalendar.map((_, ind) => (_jsxs("div", { className: "pr-3 mr-3 border-r border-r-gray/100 last:border-r-0 last:pr-0 last:mr-0", style: { flexBasis: _.flexBasis }, children: [_jsx("div", { className: "flex", children: renderMonthImages(_) }), _jsxs("div", { className: "font-light text-sm text-primary-text mt-3", children: [_jsx("span", { children: _.blackText }), "\u2009", _jsx("span", { className: "text-primary-main", children: _.greenText })] })] }, `monthItem-${ind}`))) })] }));
16
+ };
17
+ const renderMonthNames = (item, colSize) => item.month.map((_) => (_jsx("div", { style: { flexBasis: `${colSize}%` }, children: _.name }, `monthName-${_.name}`)));
18
+ const renderMonthImages = (item) => item.month.map((_) => (_jsx("div", { className: "max-h-[207px] border-r-[1px] pr-3 mr-3 border-r-gray/100 last:border-r-0 last:pr-0 last:mr-0", children: _jsx(Img, { image: _.image, className: "flex" }) }, `monthImage-${_.image.src}`)));
19
+ //# sourceMappingURL=GracePeriod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GracePeriod.js","sourceRoot":"","sources":["../../../src/components/GracePeriod/GracePeriod.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAIxC,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAI3C,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAC5B,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE;IAClE,OAAO,CACL,mBAAS,SAAS,EAAE,uBAAuB,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,aAChE,KAAC,OAAO,IAAC,WAAW,EAAC,IAAI,EAAC,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,KAAK,GAAI,EAClE,cAAK,SAAS,EAAC,0CAA0C,YAAE,WAAW,GAAO,EAC5E,cAAc,CAAC,QAAQ,CAAC,IACjB,CACX,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,EAAE;IAClC,MAAM,QAAQ,GACZ,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,EAAE,CAAC,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAClG,MAAM,OAAO,GAAG,GAAG,GAAG,QAAQ,CAAC;IAE/B,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1C,GAAG,CAAC;QACJ,SAAS,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,GAAG;KAC1C,CAAC,CAAC,CAAC;IAEJ,OAAO,CACL,eAAK,SAAS,EAAC,2CAA2C,aACxD,cAAK,SAAS,EAAC,8DAA8D,YAC1E,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GACpD,EACN,cAAK,SAAS,EAAC,aAAa,YACzB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAC9B,eAEE,SAAS,EAAC,0EAA0E,EACpF,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,aAEjC,cAAK,SAAS,EAAC,MAAM,YAAE,iBAAiB,CAAC,CAAC,CAAC,GAAO,EAClD,eAAK,SAAS,EAAC,2CAA2C,aACxD,yBAAO,CAAC,CAAC,SAAS,GAAQ,YAC1B,eAAM,SAAS,EAAC,mBAAmB,YAAE,CAAC,CAAC,SAAS,GAAQ,IACpD,KARD,aAAa,GAAG,EAAE,CASnB,CACP,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACpB,cAAiC,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,OAAO,GAAG,EAAE,YACjE,CAAC,CAAC,IAAI,IADC,aAAa,CAAC,CAAC,IAAI,EAAE,CAEzB,CACP,CAAC,CAAC;AACL,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,EAAE,CACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACpB,cAEE,SAAS,EAAC,8FAA8F,YAExG,KAAC,GAAG,IAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAC,MAAM,GAAG,IAHnC,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAI5B,CACP,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { HeadingContent } from '../../ui-kit/Heading/HeadingContent';
2
+ import type { Picture } from '../../model/Picture';
3
+ interface Month {
4
+ /** @title Название месяца */
5
+ name?: string;
6
+ /** @title Изображение календарного месяца */
7
+ image?: Picture;
8
+ }
9
+ interface CalendarItem {
10
+ month?: Month[];
11
+ /** @title Основной текст */
12
+ blackText?: string;
13
+ /** @title Вспомогательный текст */
14
+ greenText?: string;
15
+ }
16
+ /**
17
+ * @title Льготный период
18
+ */
19
+ export interface GracePeriodContent extends HeadingContent {
20
+ /** @title Описание */
21
+ description?: string;
22
+ /** @title Календарь */
23
+ calendar?: CalendarItem[];
24
+ }
25
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=GracePeriodContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GracePeriodContent.js","sourceRoot":"","sources":["../../../src/components/GracePeriod/GracePeriodContent.ts"],"names":[],"mappings":""}
@@ -3,12 +3,16 @@ import { JSX } from '@redneckz/uni-jsx';
3
3
  import { useLink } from '../../hooks/useLink.js';
4
4
  import { findActiveSubItem } from '../../services/sitemap/findActiveSubItem.js';
5
5
  import { HeaderItem } from '../../ui-kit/HeaderItem/HeaderItem.js';
6
+ import { isSSR } from '../../utils/isSSR.js';
6
7
  import { headerSubMenuObserver } from './HeaderSubMenuObserver.js';
7
8
  export const HeaderSubMenu = JSX(({ context, subItems, bgColor }) => {
8
9
  const [subMenuIsShow, setHiddenMenuIsShow] = context.useState(false);
9
10
  const router = context.useRouter();
10
11
  const { handlerDecorator } = context;
11
12
  setTimeout(() => {
13
+ if (isSSR()) {
14
+ return;
15
+ }
12
16
  const headerSubMenu = globalThis.document.querySelectorAll('[data-item-name=header-submenu]');
13
17
  headerSubMenu.forEach((_) => {
14
18
  headerSubMenuObserver?.observe(_);
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderSubMenu.js","sourceRoot":"","sources":["../../../src/components/Header/HeaderSubMenu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HeaderSubMenu.js","sourceRoot":"","sources":["../../../src/components/Header/HeaderSubMenu.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { isSSR } from '../../utils/isSSR.js';
2
- export const headerSubMenuObserver = isSSR()
3
- ? undefined
4
- : new IntersectionObserver((entries) => {
2
+ const isClient = !isSSR();
3
+ export const headerSubMenuObserver = isClient
4
+ ? new IntersectionObserver((entries) => {
5
5
  const headerSubMenuButtonElement = window.document.querySelector('[data-header-submenu-visible=toggled]');
6
6
  const headerSubMenuItems = Array.from(window.document.querySelectorAll('[data-item-name=header-submenu]'));
7
7
  const dotsHeaderSubMenuItems = Array.from(window.document.querySelectorAll('[data-item-name=dots-header-submenu]'));
@@ -16,7 +16,8 @@ export const headerSubMenuObserver = isSSR()
16
16
  ? headerSubMenuButtonElement.classList.remove('hidden')
17
17
  : headerSubMenuButtonElement.classList.add('hidden');
18
18
  }
19
- }, { root: window.document, threshold: 1.0 });
19
+ }, { root: window.document, threshold: 1.0 })
20
+ : undefined;
20
21
  // TODO: add types
21
22
  const toggleVisibilityInItems = (visibilityList, items, className) => {
22
23
  const isReversed = className !== 'hidden';
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderSubMenuObserver.js","sourceRoot":"","sources":["../../../src/components/Header/HeaderSubMenuObserver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE;IAC1C,CAAC,CAAC,SAAS;IACX,CAAC,CAAC,IAAI,oBAAoB,CACtB,CAAC,OAAO,EAAE,EAAE;QACV,MAAM,0BAA0B,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAC9D,uCAAuC,CACxC,CAAC;QACF,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CACnC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,iCAAiC,CAAC,CACpE,CAAC;QACF,MAAM,sBAAsB,GAAG,KAAK,CAAC,IAAI,CACvC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,sCAAsC,CAAC,CACzE,CAAC;QACF,MAAM,cAAc,GAAG,EAAE,CAAC;QAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACpB,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;QACjE,CAAC,CAAC,CAAC;QACH,MAAM,yBAAyB,GAAG,uBAAuB,CACvD,cAAc,EACd,sBAAsB,EACtB,QAAQ,CACT,CAAC;QACF,uBAAuB,CAAC,cAAc,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;QACzE,IAAI,0BAA0B,EAAE;YAC9B,yBAAyB;gBACvB,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACvD,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SACxD;IACH,CAAC,EACD,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,CAC1C,CAAC;AAEN,kBAAkB;AAClB,MAAM,uBAAuB,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;IACnE,MAAM,UAAU,GAAG,SAAS,KAAK,QAAQ,CAAC;IAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACvE,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"HeaderSubMenuObserver.js","sourceRoot":"","sources":["../../../src/components/Header/HeaderSubMenuObserver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC;AAE1B,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ;IAC3C,CAAC,CAAC,IAAI,oBAAoB,CACtB,CAAC,OAAO,EAAE,EAAE;QACV,MAAM,0BAA0B,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAC9D,uCAAuC,CACxC,CAAC;QACF,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CACnC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,iCAAiC,CAAC,CACpE,CAAC;QACF,MAAM,sBAAsB,GAAG,KAAK,CAAC,IAAI,CACvC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,sCAAsC,CAAC,CACzE,CAAC;QACF,MAAM,cAAc,GAAG,EAAE,CAAC;QAC1B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACpB,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;QACjE,CAAC,CAAC,CAAC;QACH,MAAM,yBAAyB,GAAG,uBAAuB,CACvD,cAAc,EACd,sBAAsB,EACtB,QAAQ,CACT,CAAC;QACF,uBAAuB,CAAC,cAAc,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;QACzE,IAAI,0BAA0B,EAAE;YAC9B,yBAAyB;gBACvB,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACvD,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SACxD;IACH,CAAC,EACD,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,CAC1C;IACH,CAAC,CAAC,SAAS,CAAC;AAEd,kBAAkB;AAClB,MAAM,uBAAuB,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;IACnE,MAAM,UAAU,GAAG,SAAS,KAAK,QAAQ,CAAC;IAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACvE,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
2
2
  import { JSX } from '@redneckz/uni-jsx';
3
3
  export const ButtonInner = JSX((props) => {
4
4
  const { text, aboveText, appendLeft } = props;
5
- return (_jsxs("div", { className: getButtonStyle(props), children: [appendLeft ? appendLeft : null, isWithText(props) ? (_jsxs("div", { children: [_jsx("div", { className: "text-m-2xs font-light text-left", children: aboveText }), _jsx("div", { className: "text-button-sm text-left", children: text })] })) : null] }));
5
+ return (_jsxs("div", { className: getButtonStyle(props), children: [appendLeft ? appendLeft : null, isWithText(props) ? (_jsxs("div", { children: [_jsx("div", { className: "text-m-2xs font-light text-left", children: aboveText }), _jsx("div", { className: "text-button text-left", children: text })] })) : null] }));
6
6
  });
7
7
  const getButtonStyle = (props) => {
8
8
  const { version, aboveText, rounded } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonInner.js","sourceRoot":"","sources":["../../../src/ui-kit/Button/ButtonInner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAQxC,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAmB,CAAC,KAAK,EAAE,EAAE;IACzD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC9C,OAAO,CACL,eAAK,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,aAClC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAC9B,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACnB,0BACE,cAAK,SAAS,EAAC,iCAAiC,YAAE,SAAS,GAAO,EAClE,cAAK,SAAS,EAAC,0BAA0B,YAAE,IAAI,GAAO,IAClD,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,KAAuB,EAAE,EAAE;IACjD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAE9C,IAAI,OAAO,KAAK,MAAM,EAAE;QACtB,OAAO,EAAE,CAAC;KACX;IAED,MAAM,aAAa,GAAG,cAAc,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAEvE,OAAO;QACL,kCAAkC;QAClC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW;QAC/C,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;KAC9B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAoB,EAAE,EAAE,CACvE,OAAO,CAAC,IAAI,IAAI,SAAS,IAAI,CAAC,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"ButtonInner.js","sourceRoot":"","sources":["../../../src/ui-kit/Button/ButtonInner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAQxC,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAmB,CAAC,KAAK,EAAE,EAAE;IACzD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC9C,OAAO,CACL,eAAK,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,aAClC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAC9B,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACnB,0BACE,cAAK,SAAS,EAAC,iCAAiC,YAAE,SAAS,GAAO,EAClE,cAAK,SAAS,EAAC,uBAAuB,YAAE,IAAI,GAAO,IAC/C,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,KAAuB,EAAE,EAAE;IACjD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAE9C,IAAI,OAAO,KAAK,MAAM,EAAE;QACtB,OAAO,EAAE,CAAC;KACX;IAED,MAAM,aAAa,GAAG,cAAc,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAEvE,OAAO;QACL,kCAAkC;QAClC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW;QAC/C,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;KAC9B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAoB,EAAE,EAAE,CACvE,OAAO,CAAC,IAAI,IAAI,SAAS,IAAI,CAAC,UAAU,CAAC,CAAC"}
@@ -3,6 +3,7 @@ import type { ComparisonTableContent } from './ComparisonTable/ComparisonTableCo
3
3
  import type { ExchangeRateTileContent } from './ExchangeRateTile/ExchangeRateTileContent';
4
4
  import type { FooterContent } from './Footer/FooterContent';
5
5
  import type { GalleryContent } from './Gallery/GalleryContent';
6
+ import type { GracePeriodContent } from './GracePeriod/GracePeriodContent';
6
7
  import type { HeaderContent } from './Header/HeaderContent';
7
8
  import type { LinkDocsContent } from './LinkDocs/LinkDocsContent';
8
9
  import type { LinkListContent } from './LinkList/LinkListContent';
@@ -29,6 +30,7 @@ export type BlockContent =
29
30
  | ExchangeRateTileContent
30
31
  | FooterContent
31
32
  | GalleryContent
33
+ | GracePeriodContent
32
34
  | HeaderContent
33
35
  | LinkDocsContent
34
36
  | MobileAppTileContent
@@ -2025,6 +2025,100 @@
2025
2025
  ]
2026
2026
  }
2027
2027
  },
2028
+ {
2029
+ "type": "GracePeriod",
2030
+ "style": ["col-span-12"],
2031
+ "content": {
2032
+ "title": "Пример использования «Карты для покупок в рассрочку»:",
2033
+ "description": "Необязательное описание",
2034
+ "calendar": [
2035
+ {
2036
+ "blackText": "1 декабря — беспроцентный период",
2037
+ "greenText": "начинается с первого числа каждого месяца",
2038
+ "month": [
2039
+ {
2040
+ "name": "Август",
2041
+ "image": {
2042
+ "src": "calendar/august.png",
2043
+ "format": "webp",
2044
+ "size": {
2045
+ "width": 210,
2046
+ "height": "auto"
2047
+ },
2048
+ "alt": "Пример использования «Карты для покупок в рассрочку»"
2049
+ }
2050
+ }
2051
+ ]
2052
+ },
2053
+ {
2054
+ "blackText": "25 сентября и 25 октября — обязательный платеж 25 числа следующих месяцев",
2055
+ "greenText": "(минимальный платеж, 3% от суммы задолженности)",
2056
+ "month": [
2057
+ {
2058
+ "name": "Сентябрь",
2059
+ "image": {
2060
+ "src": "calendar/september.png",
2061
+ "format": "webp",
2062
+ "size": {
2063
+ "width": 210,
2064
+ "height": "auto"
2065
+ },
2066
+ "alt": "Пример использования «Карты для покупок в рассрочку»"
2067
+ }
2068
+ },
2069
+ {
2070
+ "name": "Октябрь",
2071
+ "image": {
2072
+ "src": "calendar/october.png",
2073
+ "format": "webp",
2074
+ "size": {
2075
+ "width": 210,
2076
+ "height": "auto"
2077
+ },
2078
+ "alt": "Пример использования «Карты для покупок в рассрочку»"
2079
+ }
2080
+ }
2081
+ ]
2082
+ },
2083
+ {
2084
+ "blackText": "25 ноября — последний день беспроцентного 3-х месячного периода",
2085
+ "greenText": "",
2086
+ "month": [
2087
+ {
2088
+ "name": "Ноябрь",
2089
+ "image": {
2090
+ "src": "calendar/november.png",
2091
+ "format": "webp",
2092
+ "size": {
2093
+ "width": 210,
2094
+ "height": "auto"
2095
+ },
2096
+ "alt": "Пример использования «Карты для покупок в рассрочку»"
2097
+ }
2098
+ }
2099
+ ]
2100
+ },
2101
+ {
2102
+ "blackText": "",
2103
+ "greenText": "25 декабря — обязательный платеж в соответствии с тарифом",
2104
+ "month": [
2105
+ {
2106
+ "name": "Декабрь",
2107
+ "image": {
2108
+ "src": "calendar/december.png",
2109
+ "format": "webp",
2110
+ "size": {
2111
+ "width": 210,
2112
+ "height": "auto"
2113
+ },
2114
+ "alt": "Пример использования «Карты для покупок в рассрочку»"
2115
+ }
2116
+ }
2117
+ ]
2118
+ }
2119
+ ]
2120
+ }
2121
+ },
2028
2122
  {
2029
2123
  "type": "Footer",
2030
2124
  "style": ["col-span-12"],
@@ -1,6 +1,7 @@
1
1
  import { JSX, PropsWithChildren } from '@redneckz/uni-jsx';
2
2
  import type { BlockDef, ContentPageDef, UniBlockProps } from '../../types';
3
3
  import { changeHashOnScroll } from '../../utils/changeHashOnScroll';
4
+ import { isSSR } from '../../utils/isSSR';
4
5
  import type { BlockContent } from '../BlockContent';
5
6
  import { LikeControl } from '../LikeControl/LikeControl';
6
7
  import { Placeholder } from '../Placeholder/Placeholder';
@@ -37,6 +38,8 @@ export interface RenderBlockFunc {
37
38
  context: ContentPageContext;
38
39
  }
39
40
 
41
+ const isClient = !isSSR();
42
+
40
43
  const defaultBlockDecorator: BlockDecorator = ({ blockClassName, block, render }) =>
41
44
  render({ blockClassName, block });
42
45
 
@@ -52,12 +55,13 @@ export const ContentPage = JSX<ContentPageProps>(
52
55
  const router = context.useRouter();
53
56
 
54
57
  // listener is for NavigatorTabs
55
- globalThis.addEventListener('load', () => {
56
- const sectionsWithAnchors = globalThis.document.querySelectorAll('section[id]');
57
- globalThis.document.addEventListener('scroll', () =>
58
- changeHashOnScroll(router, sectionsWithAnchors),
59
- );
60
- });
58
+ isClient &&
59
+ globalThis.addEventListener('load', () => {
60
+ const sectionsWithAnchors = globalThis.document.querySelectorAll('section[id]');
61
+ globalThis.document.addEventListener('scroll', () =>
62
+ changeHashOnScroll(router, sectionsWithAnchors),
63
+ );
64
+ });
61
65
 
62
66
  return (
63
67
  <section
@@ -0,0 +1,85 @@
1
+ {
2
+ "title": "Пример использования «Карты для покупок в рассрочку»:",
3
+ "description": "Описание",
4
+ "calendar": [
5
+ {
6
+ "blackText": "1 декабря — беспроцентный период",
7
+ "greenText": "начинается с первого числа каждого месяца",
8
+ "month": [
9
+ {
10
+ "name": "Август",
11
+ "image": {
12
+ "src": "calendar/august.png",
13
+ "format": "webp",
14
+ "size": {
15
+ "width": 210
16
+ },
17
+ "alt": "Пример использования «Карты для покупок в рассрочку»"
18
+ }
19
+ }
20
+ ]
21
+ },
22
+ {
23
+ "blackText": "25 сентября и 25 октября — обязательный платеж 25 числа следующих месяцев",
24
+ "greenText": "(минимальный платеж, 3% от суммы задолженности)",
25
+ "month": [
26
+ {
27
+ "name": "Сентябрь",
28
+ "image": {
29
+ "src": "calendar/september.png",
30
+ "format": "webp",
31
+ "size": {
32
+ "width": 210
33
+ },
34
+ "alt": "Пример использования «Карты для покупок в рассрочку»"
35
+ }
36
+ },
37
+ {
38
+ "name": "Октябрь",
39
+ "image": {
40
+ "src": "calendar/october.png",
41
+ "format": "webp",
42
+ "size": {
43
+ "width": 210
44
+ },
45
+ "alt": "Пример использования «Карты для покупок в рассрочку»"
46
+ }
47
+ }
48
+ ]
49
+ },
50
+ {
51
+ "blackText": "25 ноября — последний день беспроцентного 3-х месячного периода",
52
+ "greenText": "",
53
+ "month": [
54
+ {
55
+ "name": "Ноябрь",
56
+ "image": {
57
+ "src": "calendar/november.png",
58
+ "format": "webp",
59
+ "size": {
60
+ "width": 210
61
+ },
62
+ "alt": "Пример использования «Карты для покупок в рассрочку»"
63
+ }
64
+ }
65
+ ]
66
+ },
67
+ {
68
+ "blackText": "",
69
+ "greenText": "25 декабря — обязательный платеж в соответствии с тарифом",
70
+ "month": [
71
+ {
72
+ "name": "Декабрь",
73
+ "image": {
74
+ "src": "calendar/december.png",
75
+ "format": "webp",
76
+ "size": {
77
+ "width": 210
78
+ },
79
+ "alt": "Пример использования «Карты для покупок в рассрочку»"
80
+ }
81
+ }
82
+ ]
83
+ }
84
+ ]
85
+ }
@@ -0,0 +1,70 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import type { UniBlockProps } from '../../types';
3
+ import type { GracePeriodContent } from './GracePeriodContent';
4
+
5
+ import { Heading } from '../../ui-kit/Heading/Heading';
6
+ import { Img } from '../../ui-kit/Img/Img';
7
+
8
+ export interface GracePeriodProps extends GracePeriodContent, UniBlockProps {}
9
+
10
+ export const GracePeriod = JSX<GracePeriodProps>(
11
+ ({ className = '', title, description, calendar, anchor = null }) => {
12
+ return (
13
+ <section className={`bg-white p-16 pt-12 ${className}`} id={anchor}>
14
+ <Heading headingType="h2" className="text-center" title={title} />
15
+ <div className="font-light text-base-md text-center mt-3">{description}</div>
16
+ {renderCalendar(calendar)}
17
+ </section>
18
+ );
19
+ },
20
+ );
21
+
22
+ const renderCalendar = (calendar) => {
23
+ const colCount =
24
+ calendar.reduce((accumulator, currentValue) => accumulator + currentValue.month.length, 0) || 1;
25
+ const colSize = 100 / colCount;
26
+
27
+ const mappedCalendar = calendar.map((_) => ({
28
+ ..._,
29
+ flexBasis: `${_.month.length * colSize}%`,
30
+ }));
31
+
32
+ return (
33
+ <div className="w-full flex flex-col justify-center mt-14">
34
+ <div className="flex w-full mb-3 font-light text-m-title-md mb-3 text-center">
35
+ {mappedCalendar.map((_) => renderMonthNames(_, colSize))}
36
+ </div>
37
+ <div className="flex w-full">
38
+ {mappedCalendar.map((_, ind) => (
39
+ <div
40
+ key={`monthItem-${ind}`}
41
+ className="pr-3 mr-3 border-r border-r-gray/100 last:border-r-0 last:pr-0 last:mr-0"
42
+ style={{ flexBasis: _.flexBasis }}
43
+ >
44
+ <div className="flex">{renderMonthImages(_)}</div>
45
+ <div className="font-light text-sm text-primary-text mt-3">
46
+ <span>{_.blackText}</span>&thinsp;
47
+ <span className="text-primary-main">{_.greenText}</span>
48
+ </div>
49
+ </div>
50
+ ))}
51
+ </div>
52
+ </div>
53
+ );
54
+ };
55
+
56
+ const renderMonthNames = (item, colSize) =>
57
+ item.month.map((_) => (
58
+ <div key={`monthName-${_.name}`} style={{ flexBasis: `${colSize}%` }}>
59
+ {_.name}
60
+ </div>
61
+ ));
62
+ const renderMonthImages = (item) =>
63
+ item.month.map((_) => (
64
+ <div
65
+ key={`monthImage-${_.image.src}`}
66
+ className="max-h-[207px] border-r-[1px] pr-3 mr-3 border-r-gray/100 last:border-r-0 last:pr-0 last:mr-0"
67
+ >
68
+ <Img image={_.image} className="flex" />
69
+ </div>
70
+ ));
@@ -0,0 +1,27 @@
1
+ import type { HeadingContent } from '../../ui-kit/Heading/HeadingContent';
2
+ import type { Picture } from '../../model/Picture';
3
+
4
+ interface Month {
5
+ /** @title Название месяца */
6
+ name?: string;
7
+ /** @title Изображение календарного месяца */
8
+ image?: Picture;
9
+ }
10
+
11
+ interface CalendarItem {
12
+ month?: Month[];
13
+ /** @title Основной текст */
14
+ blackText?: string;
15
+ /** @title Вспомогательный текст */
16
+ greenText?: string;
17
+ }
18
+
19
+ /**
20
+ * @title Льготный период
21
+ */
22
+ export interface GracePeriodContent extends HeadingContent {
23
+ /** @title Описание */
24
+ description?: string;
25
+ /** @title Календарь */
26
+ calendar?: CalendarItem[];
27
+ }
@@ -4,6 +4,7 @@ import type { BgColorVersion } from '../../model/BgColorVersion';
4
4
  import type { LinkProps } from '../../model/LinkProps';
5
5
  import { findActiveSubItem } from '../../services/sitemap/findActiveSubItem';
6
6
  import { HeaderItem } from '../../ui-kit/HeaderItem/HeaderItem';
7
+ import { isSSR } from '../../utils/isSSR';
7
8
  import type { ContentPageContext } from '../ContentPage/ContentPageContext';
8
9
  import { headerSubMenuObserver } from './HeaderSubMenuObserver';
9
10
 
@@ -19,6 +20,10 @@ export const HeaderSubMenu = JSX<HeaderSubMenuProps>(({ context, subItems, bgCol
19
20
  const { handlerDecorator } = context;
20
21
 
21
22
  setTimeout(() => {
23
+ if (isSSR()) {
24
+ return;
25
+ }
26
+
22
27
  const headerSubMenu = globalThis.document.querySelectorAll('[data-item-name=header-submenu]');
23
28
  headerSubMenu.forEach((_) => {
24
29
  headerSubMenuObserver?.observe(_);
@@ -1,8 +1,9 @@
1
1
  import { isSSR } from '../../utils/isSSR';
2
2
 
3
- export const headerSubMenuObserver = isSSR()
4
- ? undefined
5
- : new IntersectionObserver(
3
+ const isClient = !isSSR();
4
+
5
+ export const headerSubMenuObserver = isClient
6
+ ? new IntersectionObserver(
6
7
  (entries) => {
7
8
  const headerSubMenuButtonElement = window.document.querySelector(
8
9
  '[data-header-submenu-visible=toggled]',
@@ -30,7 +31,8 @@ export const headerSubMenuObserver = isSSR()
30
31
  }
31
32
  },
32
33
  { root: window.document, threshold: 1.0 },
33
- );
34
+ )
35
+ : undefined;
34
36
 
35
37
  // TODO: add types
36
38
  const toggleVisibilityInItems = (visibilityList, items, className) => {
@@ -14,7 +14,7 @@ export const ButtonInner = JSX<ButtonInnerProps>((props) => {
14
14
  {isWithText(props) ? (
15
15
  <div>
16
16
  <div className="text-m-2xs font-light text-left">{aboveText}</div>
17
- <div className="text-button-sm text-left">{text}</div>
17
+ <div className="text-button text-left">{text}</div>
18
18
  </div>
19
19
  ) : null}
20
20
  </div>