@redneckz/wildless-cms-uni-blocks 0.3.64 → 0.3.66
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 +9 -14
- package/bundle/bundle.umd.min.js +1 -1
- package/dist/components/Calculator/Calculator.js +5 -7
- package/dist/components/Calculator/Calculator.js.map +1 -1
- package/dist/components/Calculator/CalculatorContent.d.ts +52 -11
- package/dist/components/Calculator/renderCalculatorBlock.d.ts +2 -0
- package/dist/components/Calculator/renderCalculatorBlock.js +14 -0
- package/dist/components/Calculator/renderCalculatorBlock.js.map +1 -0
- package/dist/components/CreditCalculator/CreditCalculatorContent.d.ts +3 -0
- package/dist/components/GroupBlock/BlocksTypeProps.d.ts +2 -5
- package/dist/components/ProductGallery/ProductGallery.js +1 -1
- package/dist/content-page-repository/ContentPageRepository.d.ts +2 -1
- package/dist/content-page-repository/ContentPageRepository.js +16 -6
- package/dist/content-page-repository/ContentPageRepository.js.map +1 -1
- package/dist/icons/IconName.d.ts +1 -1
- package/dist/icons/IconName.js.map +1 -1
- package/dist/model/EmptyOptionType.d.ts +4 -0
- package/dist/model/EmptyOptionType.js +2 -0
- package/dist/model/EmptyOptionType.js.map +1 -0
- package/dist/types.d.ts +1 -1
- package/dist/ui-kit/BlocksList/BlocksListProps.d.ts +4 -7
- package/lib/common.css +1 -1
- package/lib/components/Calculator/Calculator.js +5 -7
- package/lib/components/Calculator/Calculator.js.map +1 -1
- package/lib/components/Calculator/CalculatorContent.d.ts +52 -11
- package/lib/components/Calculator/renderCalculatorBlock.d.ts +2 -0
- package/lib/components/Calculator/renderCalculatorBlock.js +11 -0
- package/lib/components/Calculator/renderCalculatorBlock.js.map +1 -0
- package/lib/components/CreditCalculator/CreditCalculatorContent.d.ts +3 -0
- package/lib/components/GroupBlock/BlocksTypeProps.d.ts +2 -5
- package/lib/components/ProductGallery/ProductGallery.js +1 -1
- package/lib/content-page-repository/ContentPageRepository.d.ts +2 -1
- package/lib/content-page-repository/ContentPageRepository.js +16 -6
- package/lib/content-page-repository/ContentPageRepository.js.map +1 -1
- package/lib/icons/IconName.d.ts +2 -2
- package/lib/icons/IconName.js.map +1 -1
- package/lib/model/EmptyOptionType.d.ts +4 -0
- package/lib/model/EmptyOptionType.js +2 -0
- package/lib/model/EmptyOptionType.js.map +1 -0
- package/lib/types.d.ts +1 -1
- package/lib/ui-kit/BlocksList/BlocksListProps.d.ts +4 -7
- package/mobile/dist/components/Calculator/Calculator.js +5 -7
- package/mobile/dist/components/Calculator/Calculator.js.map +1 -1
- package/mobile/dist/components/Calculator/CalculatorContent.d.ts +52 -11
- package/mobile/dist/components/Calculator/renderCalculatorBlock.d.ts +2 -0
- package/mobile/dist/components/Calculator/renderCalculatorBlock.js +14 -0
- package/mobile/dist/components/Calculator/renderCalculatorBlock.js.map +1 -0
- package/mobile/dist/components/CreditCalculator/CreditCalculatorContent.d.ts +3 -0
- package/mobile/dist/components/GroupBlock/BlocksTypeProps.d.ts +2 -5
- package/mobile/dist/content-page-repository/ContentPageRepository.d.ts +2 -1
- package/mobile/dist/content-page-repository/ContentPageRepository.js +16 -6
- package/mobile/dist/content-page-repository/ContentPageRepository.js.map +1 -1
- package/mobile/dist/icons/IconName.d.ts +2 -2
- package/mobile/dist/icons/IconName.js.map +1 -1
- package/mobile/dist/model/EmptyOptionType.d.ts +4 -0
- package/mobile/dist/model/EmptyOptionType.js +2 -0
- package/mobile/dist/model/EmptyOptionType.js.map +1 -0
- package/mobile/dist/types.d.ts +1 -1
- package/mobile/dist/ui-kit/BlocksList/BlocksListProps.d.ts +4 -7
- package/mobile/lib/components/Calculator/Calculator.js +5 -7
- package/mobile/lib/components/Calculator/Calculator.js.map +1 -1
- package/mobile/lib/components/Calculator/CalculatorContent.d.ts +52 -11
- package/mobile/lib/components/Calculator/renderCalculatorBlock.d.ts +2 -0
- package/mobile/lib/components/Calculator/renderCalculatorBlock.js +11 -0
- package/mobile/lib/components/Calculator/renderCalculatorBlock.js.map +1 -0
- package/mobile/lib/components/CreditCalculator/CreditCalculatorContent.d.ts +3 -0
- package/mobile/lib/components/GroupBlock/BlocksTypeProps.d.ts +2 -5
- package/mobile/lib/content-page-repository/ContentPageRepository.d.ts +2 -1
- package/mobile/lib/content-page-repository/ContentPageRepository.js +16 -6
- package/mobile/lib/content-page-repository/ContentPageRepository.js.map +1 -1
- package/mobile/lib/icons/IconName.d.ts +2 -2
- package/mobile/lib/icons/IconName.js.map +1 -1
- package/mobile/lib/model/EmptyOptionType.d.ts +4 -0
- package/mobile/lib/model/EmptyOptionType.js +2 -0
- package/mobile/lib/model/EmptyOptionType.js.map +1 -0
- package/mobile/lib/types.d.ts +1 -1
- package/mobile/lib/ui-kit/BlocksList/BlocksListProps.d.ts +4 -7
- package/mobile/src/components/Calculator/Calculator.example.json +21 -0
- package/mobile/src/components/Calculator/Calculator.tsx +6 -8
- package/mobile/src/components/Calculator/CalculatorContent.ts +53 -12
- package/mobile/src/components/Calculator/{renderCalculatorList.tsx → renderCalculatorBlock.tsx} +5 -17
- package/mobile/src/components/CreditCalculator/CreditCalculatorContent.ts +3 -0
- package/mobile/src/components/GroupBlock/BlocksTypeProps.ts +2 -6
- package/mobile/src/content-page-repository/ContentPageRepository.ts +26 -6
- package/mobile/src/icons/IconName.ts +4 -4
- package/mobile/src/model/EmptyOptionType.ts +4 -0
- package/mobile/src/types.ts +1 -1
- package/mobile/src/ui-kit/BlocksList/BlocksListProps.ts +4 -8
- package/package.json +2 -2
- package/src/components/Calculator/Calculator.example.json +21 -0
- package/src/components/Calculator/Calculator.tsx +6 -8
- package/src/components/Calculator/CalculatorContent.ts +53 -12
- package/src/components/Calculator/{renderCalculatorList.tsx → renderCalculatorBlock.tsx} +5 -17
- package/src/components/CreditCalculator/CreditCalculatorContent.ts +3 -0
- package/src/components/GroupBlock/BlocksTypeProps.ts +2 -6
- package/src/components/ProductGallery/ProductGallery.tsx +2 -2
- package/src/content-page-repository/ContentPageRepository.ts +26 -6
- package/src/icons/IconName.ts +1 -1
- package/src/model/EmptyOptionType.ts +4 -0
- package/src/types.ts +1 -1
- package/src/ui-kit/BlocksList/BlocksListProps.ts +4 -8
- package/dist/components/Calculator/renderCalculatorList.d.ts +0 -10
- package/dist/components/Calculator/renderCalculatorList.js +0 -17
- package/dist/components/Calculator/renderCalculatorList.js.map +0 -1
- package/lib/components/Calculator/renderCalculatorList.d.ts +0 -10
- package/lib/components/Calculator/renderCalculatorList.js +0 -14
- package/lib/components/Calculator/renderCalculatorList.js.map +0 -1
- package/mobile/dist/components/Calculator/renderCalculatorList.d.ts +0 -10
- package/mobile/dist/components/Calculator/renderCalculatorList.js +0 -17
- package/mobile/dist/components/Calculator/renderCalculatorList.js.map +0 -1
- package/mobile/lib/components/Calculator/renderCalculatorList.d.ts +0 -10
- package/mobile/lib/components/Calculator/renderCalculatorList.js +0 -14
- package/mobile/lib/components/Calculator/renderCalculatorList.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
2
|
import type { UniBlockProps } from '../../types';
|
|
3
|
-
import type { CalculatorContent, CalculatorBlockDef } from './CalculatorContent';
|
|
4
3
|
import { ArrowButton } from '../../ui-kit/Button/ArrowButton';
|
|
5
4
|
import { Img } from '../../ui-kit/Img/Img';
|
|
6
|
-
import {
|
|
5
|
+
import type { CalculatorBlockDef, CalculatorContent } from './CalculatorContent';
|
|
7
6
|
import { CalculatorNav } from './CalculatorContent';
|
|
7
|
+
import { renderCalculatorBlock } from './renderCalculatorBlock';
|
|
8
8
|
|
|
9
9
|
export interface CalculatorProps extends CalculatorContent, UniBlockProps {}
|
|
10
10
|
|
|
@@ -72,11 +72,9 @@ export const Calculator = JSX<CalculatorProps>(
|
|
|
72
72
|
style={{ transform: `translateX(-${activeSlideIndex}00%)` }}
|
|
73
73
|
role="list"
|
|
74
74
|
>
|
|
75
|
-
{
|
|
76
|
-
context,
|
|
77
|
-
|
|
78
|
-
blockCalcTabs,
|
|
79
|
-
})}
|
|
75
|
+
{blockCalcTabs?.length
|
|
76
|
+
? blockCalcTabs.map(renderCalculatorBlock({ context, className }))
|
|
77
|
+
: null}
|
|
80
78
|
</div>
|
|
81
79
|
</section>
|
|
82
80
|
);
|
|
@@ -99,7 +97,7 @@ function renderNavButton({ tab, i, activeSlideIndex, onClick }: NavButtonProps)
|
|
|
99
97
|
key={String(i)}
|
|
100
98
|
onClick={onClick}
|
|
101
99
|
aria-label={tab?.title}
|
|
102
|
-
className={`box-border font-sans relative border
|
|
100
|
+
className={`box-border font-sans relative border border-main-stroke cursor-pointer text-left border-b-0 flex
|
|
103
101
|
${btnClassName}`}
|
|
104
102
|
>
|
|
105
103
|
<Img
|
|
@@ -1,49 +1,96 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { EmptyOption } from '../../model/EmptyOptionType';
|
|
2
|
+
import type { Picture } from '../../model/Picture';
|
|
2
3
|
import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
|
|
3
4
|
|
|
4
5
|
export interface CommonCalculatorProps {
|
|
6
|
+
/** @title Кнопки */
|
|
5
7
|
buttons?: ButtonWithIconProps[];
|
|
6
8
|
}
|
|
7
9
|
|
|
10
|
+
/**
|
|
11
|
+
* TODO: данные из справочника
|
|
12
|
+
**/
|
|
8
13
|
export interface CreditCalculatorParams {
|
|
14
|
+
/** @hidden */
|
|
9
15
|
isSalary?: boolean;
|
|
16
|
+
/** @hidden */
|
|
10
17
|
isInsurance?: boolean;
|
|
18
|
+
/** @hidden */
|
|
11
19
|
isAnnuity?: boolean;
|
|
20
|
+
/** @hidden */
|
|
12
21
|
minSum?: number;
|
|
22
|
+
/** @hidden */
|
|
13
23
|
maxSum?: number;
|
|
24
|
+
/** @hidden */
|
|
14
25
|
minMonths?: number;
|
|
26
|
+
/** @hidden */
|
|
15
27
|
maxMonths?: number;
|
|
28
|
+
/** @hidden */
|
|
16
29
|
rateWithInsurance?: number;
|
|
30
|
+
/** @hidden */
|
|
17
31
|
rateWithoutInsurance?: number;
|
|
18
32
|
}
|
|
19
33
|
|
|
34
|
+
/**
|
|
35
|
+
* TODO: данные из справочника
|
|
36
|
+
**/
|
|
20
37
|
export interface MortgageCalculatorParams {
|
|
38
|
+
/** @hidden */
|
|
21
39
|
isAnnuity?: boolean;
|
|
40
|
+
/** @hidden */
|
|
22
41
|
minInitialContribution?: number;
|
|
42
|
+
/** @hidden */
|
|
23
43
|
minSum?: number;
|
|
44
|
+
/** @hidden */
|
|
24
45
|
maxSum?: number;
|
|
46
|
+
/** @hidden */
|
|
25
47
|
minMonths?: number;
|
|
48
|
+
/** @hidden */
|
|
26
49
|
maxMonths?: number;
|
|
50
|
+
/** @hidden */
|
|
27
51
|
rateWithInsurance?: number;
|
|
52
|
+
/** @hidden */
|
|
28
53
|
rateWithoutInsurance?: number;
|
|
29
54
|
}
|
|
30
55
|
|
|
56
|
+
/**
|
|
57
|
+
* TODO: данные из справочника
|
|
58
|
+
**/
|
|
31
59
|
export interface DepositCalculatorParams {
|
|
60
|
+
/** @hidden */
|
|
32
61
|
minSum?: number;
|
|
62
|
+
/** @hidden */
|
|
33
63
|
maxSum?: number;
|
|
64
|
+
/** @hidden */
|
|
34
65
|
minMonths?: number;
|
|
66
|
+
/** @hidden */
|
|
35
67
|
maxMonths?: number;
|
|
68
|
+
/** @hidden */
|
|
36
69
|
rate?: number;
|
|
37
70
|
}
|
|
38
71
|
|
|
72
|
+
/**
|
|
73
|
+
* TODO: данные из справочника
|
|
74
|
+
**/
|
|
75
|
+
|
|
39
76
|
export interface BonusCalculatorParams {
|
|
77
|
+
/** @hidden */
|
|
40
78
|
bonus?: number;
|
|
79
|
+
/** @hidden */
|
|
41
80
|
minSumTrip?: number;
|
|
81
|
+
/** @hidden */
|
|
42
82
|
maxSumTrip?: number;
|
|
83
|
+
/** @hidden */
|
|
43
84
|
minSumOther?: number;
|
|
85
|
+
/** @hidden */
|
|
44
86
|
maxSumOther?: number;
|
|
45
87
|
}
|
|
46
88
|
|
|
89
|
+
/**
|
|
90
|
+
* ? Общий интерфейс для всех типов калькуляторов?
|
|
91
|
+
* ? Используется во вложенных функциях. Может быть как то разбить это и вынести отсюда?
|
|
92
|
+
* @hidden
|
|
93
|
+
*/
|
|
47
94
|
export interface CalculatorParams {
|
|
48
95
|
isAnnuity?: boolean;
|
|
49
96
|
minSum?: number;
|
|
@@ -55,7 +102,7 @@ export interface CalculatorParams {
|
|
|
55
102
|
}
|
|
56
103
|
|
|
57
104
|
/**
|
|
58
|
-
* @title
|
|
105
|
+
* @title Кредитный калькулятор
|
|
59
106
|
* @default {"calcType": "CreditCalculatorForm"}
|
|
60
107
|
*/
|
|
61
108
|
export type CreditCalculatorParamsDef = CreditCalculatorParams &
|
|
@@ -64,7 +111,7 @@ export type CreditCalculatorParamsDef = CreditCalculatorParams &
|
|
|
64
111
|
};
|
|
65
112
|
|
|
66
113
|
/**
|
|
67
|
-
* @title
|
|
114
|
+
* @title Ипотечный калькулятор
|
|
68
115
|
* @default {"calcType": "MortgageCalculatorForm"}
|
|
69
116
|
*/
|
|
70
117
|
export type MortgageCalculatorParamsDef = MortgageCalculatorParams &
|
|
@@ -73,7 +120,7 @@ export type MortgageCalculatorParamsDef = MortgageCalculatorParams &
|
|
|
73
120
|
};
|
|
74
121
|
|
|
75
122
|
/**
|
|
76
|
-
* @title
|
|
123
|
+
* @title Калькулятор вкладов
|
|
77
124
|
* @default {"calcType": "DepositCalculatorForm"}
|
|
78
125
|
*/
|
|
79
126
|
export type DepositCalculatorParamsDef = DepositCalculatorParams &
|
|
@@ -82,7 +129,7 @@ export type DepositCalculatorParamsDef = DepositCalculatorParams &
|
|
|
82
129
|
};
|
|
83
130
|
|
|
84
131
|
/**
|
|
85
|
-
* @title
|
|
132
|
+
* @title Калькулятор бонусов
|
|
86
133
|
* @default {"calcType": "BonusCalculatorForm"}
|
|
87
134
|
*/
|
|
88
135
|
export type BonusCalculatorParamsDef = BonusCalculatorParams &
|
|
@@ -91,12 +138,7 @@ export type BonusCalculatorParamsDef = BonusCalculatorParams &
|
|
|
91
138
|
};
|
|
92
139
|
|
|
93
140
|
/**
|
|
94
|
-
* @title
|
|
95
|
-
*/
|
|
96
|
-
export type EmptyOption = null;
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* @title Калькулятор
|
|
141
|
+
* @title Настройки калькулятора
|
|
100
142
|
*/
|
|
101
143
|
export type CalculatorBlockDef =
|
|
102
144
|
| EmptyOption
|
|
@@ -121,7 +163,6 @@ export interface CalculatorNav {
|
|
|
121
163
|
*/
|
|
122
164
|
export interface CalculatorTab {
|
|
123
165
|
nav?: CalculatorNav;
|
|
124
|
-
/** @title Настройки калькулятора */
|
|
125
166
|
calculatorBlock?: CalculatorBlockDef;
|
|
126
167
|
}
|
|
127
168
|
|
|
@@ -9,15 +9,7 @@ type EmbeddableCalcBlocks = {
|
|
|
9
9
|
className?: string;
|
|
10
10
|
};
|
|
11
11
|
|
|
12
|
-
export const
|
|
13
|
-
blockCalcTabs,
|
|
14
|
-
context,
|
|
15
|
-
className,
|
|
16
|
-
}: EmbeddableCalcBlocks) => {
|
|
17
|
-
return blockCalcTabs?.length ? blockCalcTabs.map(renderBlock({ context, className })) : null;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
const renderBlock =
|
|
12
|
+
export const renderCalculatorBlock =
|
|
21
13
|
({ context, className }: any) =>
|
|
22
14
|
(blockCalcTabs: CalculatorBlockDef, i: number) => {
|
|
23
15
|
const type = blockCalcTabs?.calcType;
|
|
@@ -27,16 +19,12 @@ const renderBlock =
|
|
|
27
19
|
const EmbeddedBlock: JSXBlock<EmbeddableCalcProps> = EmbeddableCalcBlocks[type];
|
|
28
20
|
return (
|
|
29
21
|
<section
|
|
30
|
-
key={
|
|
31
|
-
className={`box-border relative flex
|
|
22
|
+
key={String(i)}
|
|
23
|
+
className={`box-border relative flex shrink-0 basis-full ${className}`}
|
|
32
24
|
role="listitem"
|
|
33
25
|
>
|
|
34
|
-
<div className=
|
|
35
|
-
<EmbeddedBlock
|
|
36
|
-
context={context}
|
|
37
|
-
{...blockCalcTabs}
|
|
38
|
-
className="!p-0 flex justify-between"
|
|
39
|
-
/>
|
|
26
|
+
<div className="box-border p-9 w-full">
|
|
27
|
+
<EmbeddedBlock context={context} {...blockCalcTabs} className="flex justify-between" />
|
|
40
28
|
</div>
|
|
41
29
|
</section>
|
|
42
30
|
);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { ContentPageContext } from '../../components/ContentPage/ContentPageContext';
|
|
1
2
|
import type { ProductBlockContent } from '../../components/ProductBlock/ProductBlockContent';
|
|
2
3
|
import type { ProductTileContent } from '../../components/ProductTile/ProductTileContent';
|
|
3
|
-
import {
|
|
4
|
+
import type { EmptyOption } from '../../model/EmptyOptionType';
|
|
4
5
|
|
|
5
6
|
export interface ActiveHandler {
|
|
6
7
|
context: ContentPageContext;
|
|
@@ -29,11 +30,6 @@ export type ProductBlockDef = ProductBlockContent &
|
|
|
29
30
|
export type ProductTileDef = ProductTileContent &
|
|
30
31
|
GroupBlockCommonProps & { blockType: 'ProductTile' };
|
|
31
32
|
|
|
32
|
-
/**
|
|
33
|
-
* @title Выберите блок
|
|
34
|
-
*/
|
|
35
|
-
export type EmptyOption = null;
|
|
36
|
-
|
|
37
33
|
/**
|
|
38
34
|
* @title Содержимое блока
|
|
39
35
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import type { UniBlockProps } from '../../types';
|
|
3
2
|
import type { BlockVersion } from '../../model/BlockVersion';
|
|
3
|
+
import type { UniBlockProps } from '../../types';
|
|
4
4
|
import type { ProductBlockInnerContent } from '../ProductBlock/ProductBlockContent';
|
|
5
5
|
import { ProductBlockInner } from '../ProductBlock/ProductBlockInner';
|
|
6
6
|
import type { ProductGalleryContent } from './ProductGalleryContent';
|
|
@@ -107,7 +107,7 @@ function renderNavButton({ slide, i, activeSlideIndex, onClick, version }) {
|
|
|
107
107
|
key={String(i)}
|
|
108
108
|
onClick={onClick}
|
|
109
109
|
aria-label={slide?.title}
|
|
110
|
-
className={`box-border font-sans relative overflow-hidden border
|
|
110
|
+
className={`box-border font-sans relative overflow-hidden border border-white/50 cursor-pointer text-left mx-1 grow basis-0
|
|
111
111
|
${btnClassName} ${additionalBorder}
|
|
112
112
|
`}
|
|
113
113
|
>
|
|
@@ -7,24 +7,43 @@ import { transformContentPage } from './transformContentPage';
|
|
|
7
7
|
const INDEX_PAGE_SLUG = 'index';
|
|
8
8
|
const find = util.promisify(glob);
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
const bySlug = (slug: string) => (content: ContentPageDef) => content.slug === slug;
|
|
11
|
+
const byCustomPageType = (type?: string) => (content: ContentPageDef) =>
|
|
12
|
+
type ? content._customPageType === type : !content._customPageType;
|
|
13
|
+
|
|
14
|
+
const not =
|
|
15
|
+
<Arg>(predicate: (_: Arg) => boolean) =>
|
|
16
|
+
(_: Arg) =>
|
|
17
|
+
!predicate(_);
|
|
18
|
+
|
|
11
19
|
export function ContentPageRepository({
|
|
12
20
|
contentDir = 'content',
|
|
13
21
|
publicDir = 'public',
|
|
14
22
|
}: Partial<TransformationOptions> = {}) {
|
|
15
|
-
async function
|
|
23
|
+
async function getAllContentPagesMap(): Promise<Record<string, ContentPageDef>> {
|
|
16
24
|
const pagePaths = await find(`${contentDir}/**/*.page.json`);
|
|
17
|
-
|
|
25
|
+
const pages = await Promise.all(pagePaths.map(readPage));
|
|
26
|
+
return pagePaths.reduce(
|
|
27
|
+
(result, path, i) => ({
|
|
28
|
+
...result,
|
|
29
|
+
[path]: pages[i],
|
|
30
|
+
}),
|
|
31
|
+
{},
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async function getAllContentPages(): Promise<ContentPageDef[]> {
|
|
36
|
+
return Object.values(await getAllContentPagesMap());
|
|
18
37
|
}
|
|
19
38
|
|
|
20
|
-
async function getSecondaryContentPages() {
|
|
39
|
+
async function getSecondaryContentPages(customPageType?: string) {
|
|
21
40
|
const pages = await getAllContentPages();
|
|
22
|
-
return pages.filter((
|
|
41
|
+
return pages.filter(not(bySlug(INDEX_PAGE_SLUG))).filter(byCustomPageType(customPageType));
|
|
23
42
|
}
|
|
24
43
|
|
|
25
44
|
async function getContentPageBySlug(slug: string): Promise<ContentPageDef | undefined> {
|
|
26
45
|
const pages = await getAllContentPages();
|
|
27
|
-
return pages.find((
|
|
46
|
+
return pages.find(bySlug(slug));
|
|
28
47
|
}
|
|
29
48
|
|
|
30
49
|
async function getIndexPage() {
|
|
@@ -43,6 +62,7 @@ export function ContentPageRepository({
|
|
|
43
62
|
}
|
|
44
63
|
|
|
45
64
|
return {
|
|
65
|
+
getAllContentPagesMap,
|
|
46
66
|
getAllContentPages,
|
|
47
67
|
getContentPageBySlug,
|
|
48
68
|
getSecondaryContentPages,
|
package/src/icons/IconName.ts
CHANGED
|
@@ -180,7 +180,7 @@ export enum IconTitleMap {
|
|
|
180
180
|
* @title Иконка
|
|
181
181
|
* @enumNames [
|
|
182
182
|
* "",
|
|
183
|
-
*
|
|
183
|
+
* 'Деньги', 'Самолет', 'Лого «Apple»', 'Стрелка \'Вниз\'', 'Стрелка', 'Стрелка', 'Стрелка вверх', 'Банкомат', 'Банк', 'Бургер', 'Бургер (белый)', 'Календарь 2', 'Скруглённый календарь', 'Календарь', 'Календарь с галочкой', 'Календарь белый', 'Кред. карта', 'Кред. карта под наклоном', 'Кред. карта с галочкой', 'Карта с драгоценностями', 'Машина', 'Деньги внутри кошелька', 'Кино', 'Часы', 'Крестик', 'Кресло', 'Кредитные карты', 'Скидка', 'Документ', 'Документ (одноцветный)', 'Документы', 'Документ с текстом', 'Доллар', 'Земля', 'Пустой кошелёк с возвратом', 'Пустой кошелёк', 'Пустой кошелёк (белый)', 'Евро', 'Геолокация', 'Зеркало', 'Глобус', 'Gps', 'Сетка', 'Сетка (белая)', 'Диаграмма роста', 'Скидка', 'JCB', 'Лупа', 'MasterCard', 'Минус', 'МИР', 'Деньги', 'Денежное страхование', 'Монитор и мобильный', 'Новый документ', 'Офис', 'Лого «Одноклассники»', 'Бизнес', 'Проценты (круг.)', 'Проценты', 'Проценты белые', 'Персональная карта', 'Лого «PlayMarket»', 'Плюс', 'Щит', 'Профиль, 2 персоны', 'Профиль', 'Тыква', 'Рубль (круг.)', 'Сейф', 'Безопасность', 'Подписанные документы', 'Маленькие часы', 'Звук', 'Лого «Telegram»', 'UnionPay', 'Пользователь', 'Visa', 'Лого «VK»', 'Пополнение карты', 'Кошелёк с плюсом', 'Кошелёк', 'Кошелёк с деньгами', 'Добавить продукт'
|
|
184
184
|
* ]
|
|
185
185
|
*/
|
|
186
186
|
export type IconName =
|
package/src/types.ts
CHANGED
|
@@ -45,12 +45,12 @@ export interface ContentPageMeta {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
export interface ContentPageDef extends ContentPageMeta {
|
|
48
|
+
_customPageType?: string;
|
|
48
49
|
style?: string[];
|
|
49
50
|
blocks?: BlockDef[];
|
|
50
51
|
slots?: SlotsMap;
|
|
51
52
|
likeControl?: boolean;
|
|
52
53
|
colorPalette?: ColorPalette;
|
|
53
|
-
_customPageType?: string;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
export interface UniBlockProps {
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
+
import { ContentPageContext } from '../../components/ContentPage/ContentPageContext';
|
|
1
2
|
import type { GalleryContent } from '../../components/Gallery/GalleryContent';
|
|
2
3
|
import type { HeadlineContent } from '../../components/Headline/HeadlineContent';
|
|
3
4
|
import type { LinkDocsContent } from '../../components/LinkDocs/LinkDocsContent';
|
|
5
|
+
import type { LinkListContent } from '../../components/LinkList/LinkListContent';
|
|
4
6
|
import type { MiniGalleryContent } from '../../components/MiniGallery/MiniGalleryContent';
|
|
5
7
|
import type { PictureTextContent } from '../../components/PictureText/PictureTextContent';
|
|
6
8
|
import type { ProductBlockContent } from '../../components/ProductBlock/ProductBlockContent';
|
|
7
9
|
import type { ProductTileContent } from '../../components/ProductTile/ProductTileContent';
|
|
8
10
|
import type { TextBlockContent } from '../../components/TextBlock/TextBlockContent';
|
|
9
11
|
import type { TileContent } from '../../components/Tile/TileContent';
|
|
10
|
-
import type {
|
|
11
|
-
import { ContentPageContext } from '../../components/ContentPage/ContentPageContext';
|
|
12
|
+
import type { EmptyOption } from '../../model/EmptyOptionType';
|
|
12
13
|
|
|
13
14
|
export interface ActiveHandler {
|
|
14
15
|
context: ContentPageContext;
|
|
@@ -65,7 +66,7 @@ export type TileBlockListDef = TileContent & { blockListType: 'Tile' };
|
|
|
65
66
|
export type ProductTileBlockListDef = ProductTileContent & { blockListType: 'ProductTile' };
|
|
66
67
|
|
|
67
68
|
/**
|
|
68
|
-
* @title
|
|
69
|
+
* @title Галерея
|
|
69
70
|
* @default {"blockListType": "Gallery"}
|
|
70
71
|
*/
|
|
71
72
|
export type GalleryBlockListDef = GalleryContent & { blockListType: 'Gallery' };
|
|
@@ -82,11 +83,6 @@ export type MiniGalleryBlockListDef = MiniGalleryContent & { blockListType: 'Min
|
|
|
82
83
|
*/
|
|
83
84
|
export type LinkListBlockListDef = LinkListContent & { blockListType: 'LinkList' };
|
|
84
85
|
|
|
85
|
-
/**
|
|
86
|
-
* @title Выберите блок
|
|
87
|
-
*/
|
|
88
|
-
export type EmptyOption = null;
|
|
89
|
-
|
|
90
86
|
/**
|
|
91
87
|
* @title Содержимое блока
|
|
92
88
|
*/
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { ContentPageContext } from '../../components/ContentPage/ContentPageContext';
|
|
2
|
-
import type { CalculatorBlockDef } from './CalculatorContent';
|
|
3
|
-
import { EmbeddableCalcBlocks } from './EmbeddableCalcBlocks';
|
|
4
|
-
declare type EmbeddableCalcBlocks = {
|
|
5
|
-
blockCalcTabs?: CalculatorBlockDef[];
|
|
6
|
-
context: ContentPageContext;
|
|
7
|
-
className?: string;
|
|
8
|
-
};
|
|
9
|
-
export declare const renderCalculatorList: ({ blockCalcTabs, context, className, }: EmbeddableCalcBlocks) => any[] | null;
|
|
10
|
-
export {};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
-
exports.renderCalculatorList = void 0;
|
|
3
|
-
const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
|
|
4
|
-
const EmbeddableCalcBlocks_1 = require("./EmbeddableCalcBlocks");
|
|
5
|
-
const renderCalculatorList = ({ blockCalcTabs, context, className, }) => {
|
|
6
|
-
return blockCalcTabs?.length ? blockCalcTabs.map(renderBlock({ context, className })) : null;
|
|
7
|
-
};
|
|
8
|
-
exports.renderCalculatorList = renderCalculatorList;
|
|
9
|
-
const renderBlock = ({ context, className }) => (blockCalcTabs, i) => {
|
|
10
|
-
const type = blockCalcTabs?.calcType;
|
|
11
|
-
if (!type || !(type in EmbeddableCalcBlocks_1.EmbeddableCalcBlocks)) {
|
|
12
|
-
return null;
|
|
13
|
-
}
|
|
14
|
-
const EmbeddedBlock = EmbeddableCalcBlocks_1.EmbeddableCalcBlocks[type];
|
|
15
|
-
return ((0, jsx_runtime_1.jsx)("section", { className: `box-border relative flex grow-0 shrink-0 basis-full ${className}`, role: "listitem", children: (0, jsx_runtime_1.jsx)("div", { className: `box-border p-9 w-full`, children: (0, jsx_runtime_1.jsx)(EmbeddedBlock, { context: context, ...blockCalcTabs, className: "!p-0 flex justify-between" }) }) }, `${String(i)}`));
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=renderCalculatorList.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"renderCalculatorList.js","sourceRoot":"","sources":["../../../src/components/Calculator/renderCalculatorList.tsx"],"names":[],"mappings":";;;AAGA,iEAAmF;AAQ5E,MAAM,oBAAoB,GAAG,CAAC,EACnC,aAAa,EACb,OAAO,EACP,SAAS,GACY,EAAE,EAAE;IACzB,OAAO,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/F,CAAC,CAAC;AANW,QAAA,oBAAoB,wBAM/B;AAEF,MAAM,WAAW,GACf,CAAC,EAAE,OAAO,EAAE,SAAS,EAAO,EAAE,EAAE,CAChC,CAAC,aAAiC,EAAE,CAAS,EAAE,EAAE;IAC/C,MAAM,IAAI,GAAG,aAAa,EAAE,QAAQ,CAAC;IACrC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,2CAAoB,CAAC,EAAE;QAC5C,OAAO,IAAI,CAAC;KACb;IACD,MAAM,aAAa,GAAkC,2CAAoB,CAAC,IAAI,CAAC,CAAC;IAChF,OAAO,CACL,oCAEE,SAAS,EAAE,uDAAuD,SAAS,EAAE,EAC7E,IAAI,EAAC,UAAU,YAEf,gCAAK,SAAS,EAAE,uBAAuB,YACrC,uBAAC,aAAa,IACZ,OAAO,EAAE,OAAO,KACZ,aAAa,EACjB,SAAS,EAAC,2BAA2B,GACrC,GACE,IAVD,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAWX,CACX,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { ContentPageContext } from '../../components/ContentPage/ContentPageContext';
|
|
2
|
-
import type { CalculatorBlockDef } from './CalculatorContent';
|
|
3
|
-
import { EmbeddableCalcBlocks } from './EmbeddableCalcBlocks';
|
|
4
|
-
declare type EmbeddableCalcBlocks = {
|
|
5
|
-
blockCalcTabs?: CalculatorBlockDef[];
|
|
6
|
-
context: ContentPageContext;
|
|
7
|
-
className?: string;
|
|
8
|
-
};
|
|
9
|
-
export declare const renderCalculatorList: ({ blockCalcTabs, context, className, }: EmbeddableCalcBlocks) => any[] | null;
|
|
10
|
-
export {};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
|
|
2
|
-
import { EmbeddableCalcBlocks } from './EmbeddableCalcBlocks.js';
|
|
3
|
-
export const renderCalculatorList = ({ blockCalcTabs, context, className, }) => {
|
|
4
|
-
return blockCalcTabs?.length ? blockCalcTabs.map(renderBlock({ context, className })) : null;
|
|
5
|
-
};
|
|
6
|
-
const renderBlock = ({ context, className }) => (blockCalcTabs, i) => {
|
|
7
|
-
const type = blockCalcTabs?.calcType;
|
|
8
|
-
if (!type || !(type in EmbeddableCalcBlocks)) {
|
|
9
|
-
return null;
|
|
10
|
-
}
|
|
11
|
-
const EmbeddedBlock = EmbeddableCalcBlocks[type];
|
|
12
|
-
return (_jsx("section", { className: `box-border relative flex grow-0 shrink-0 basis-full ${className}`, role: "listitem", children: _jsx("div", { className: `box-border p-9 w-full`, children: _jsx(EmbeddedBlock, { context: context, ...blockCalcTabs, className: "!p-0 flex justify-between" }) }) }, `${String(i)}`));
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=renderCalculatorList.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"renderCalculatorList.js","sourceRoot":"","sources":["../../../src/components/Calculator/renderCalculatorList.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,oBAAoB,EAAuB,MAAM,wBAAwB,CAAC;AAQnF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,aAAa,EACb,OAAO,EACP,SAAS,GACY,EAAE,EAAE;IACzB,OAAO,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/F,CAAC,CAAC;AAEF,MAAM,WAAW,GACf,CAAC,EAAE,OAAO,EAAE,SAAS,EAAO,EAAE,EAAE,CAChC,CAAC,aAAiC,EAAE,CAAS,EAAE,EAAE;IAC/C,MAAM,IAAI,GAAG,aAAa,EAAE,QAAQ,CAAC;IACrC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,oBAAoB,CAAC,EAAE;QAC5C,OAAO,IAAI,CAAC;KACb;IACD,MAAM,aAAa,GAAkC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAChF,OAAO,CACL,kBAEE,SAAS,EAAE,uDAAuD,SAAS,EAAE,EAC7E,IAAI,EAAC,UAAU,YAEf,cAAK,SAAS,EAAE,uBAAuB,YACrC,KAAC,aAAa,IACZ,OAAO,EAAE,OAAO,KACZ,aAAa,EACjB,SAAS,EAAC,2BAA2B,GACrC,GACE,IAVD,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAWX,CACX,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { ContentPageContext } from '../../components/ContentPage/ContentPageContext';
|
|
2
|
-
import type { CalculatorBlockDef } from './CalculatorContent';
|
|
3
|
-
import { EmbeddableCalcBlocks } from './EmbeddableCalcBlocks';
|
|
4
|
-
declare type EmbeddableCalcBlocks = {
|
|
5
|
-
blockCalcTabs?: CalculatorBlockDef[];
|
|
6
|
-
context: ContentPageContext;
|
|
7
|
-
className?: string;
|
|
8
|
-
};
|
|
9
|
-
export declare const renderCalculatorList: ({ blockCalcTabs, context, className, }: EmbeddableCalcBlocks) => any[] | null;
|
|
10
|
-
export {};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
-
exports.renderCalculatorList = void 0;
|
|
3
|
-
const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
|
|
4
|
-
const EmbeddableCalcBlocks_1 = require("./EmbeddableCalcBlocks");
|
|
5
|
-
const renderCalculatorList = ({ blockCalcTabs, context, className, }) => {
|
|
6
|
-
return blockCalcTabs?.length ? blockCalcTabs.map(renderBlock({ context, className })) : null;
|
|
7
|
-
};
|
|
8
|
-
exports.renderCalculatorList = renderCalculatorList;
|
|
9
|
-
const renderBlock = ({ context, className }) => (blockCalcTabs, i) => {
|
|
10
|
-
const type = blockCalcTabs?.calcType;
|
|
11
|
-
if (!type || !(type in EmbeddableCalcBlocks_1.EmbeddableCalcBlocks)) {
|
|
12
|
-
return null;
|
|
13
|
-
}
|
|
14
|
-
const EmbeddedBlock = EmbeddableCalcBlocks_1.EmbeddableCalcBlocks[type];
|
|
15
|
-
return ((0, jsx_runtime_1.jsx)("section", { className: `box-border relative flex grow-0 shrink-0 basis-full ${className}`, role: "listitem", children: (0, jsx_runtime_1.jsx)("div", { className: `box-border p-9 w-full`, children: (0, jsx_runtime_1.jsx)(EmbeddedBlock, { context: context, ...blockCalcTabs, className: "!p-0 flex justify-between" }) }) }, `${String(i)}`));
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=renderCalculatorList.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"renderCalculatorList.js","sourceRoot":"","sources":["../../../src/components/Calculator/renderCalculatorList.tsx"],"names":[],"mappings":";;;AAGA,iEAAmF;AAQ5E,MAAM,oBAAoB,GAAG,CAAC,EACnC,aAAa,EACb,OAAO,EACP,SAAS,GACY,EAAE,EAAE;IACzB,OAAO,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/F,CAAC,CAAC;AANW,QAAA,oBAAoB,wBAM/B;AAEF,MAAM,WAAW,GACf,CAAC,EAAE,OAAO,EAAE,SAAS,EAAO,EAAE,EAAE,CAChC,CAAC,aAAiC,EAAE,CAAS,EAAE,EAAE;IAC/C,MAAM,IAAI,GAAG,aAAa,EAAE,QAAQ,CAAC;IACrC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,2CAAoB,CAAC,EAAE;QAC5C,OAAO,IAAI,CAAC;KACb;IACD,MAAM,aAAa,GAAkC,2CAAoB,CAAC,IAAI,CAAC,CAAC;IAChF,OAAO,CACL,oCAEE,SAAS,EAAE,uDAAuD,SAAS,EAAE,EAC7E,IAAI,EAAC,UAAU,YAEf,gCAAK,SAAS,EAAE,uBAAuB,YACrC,uBAAC,aAAa,IACZ,OAAO,EAAE,OAAO,KACZ,aAAa,EACjB,SAAS,EAAC,2BAA2B,GACrC,GACE,IAVD,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAWX,CACX,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { ContentPageContext } from '../../components/ContentPage/ContentPageContext';
|
|
2
|
-
import type { CalculatorBlockDef } from './CalculatorContent';
|
|
3
|
-
import { EmbeddableCalcBlocks } from './EmbeddableCalcBlocks';
|
|
4
|
-
declare type EmbeddableCalcBlocks = {
|
|
5
|
-
blockCalcTabs?: CalculatorBlockDef[];
|
|
6
|
-
context: ContentPageContext;
|
|
7
|
-
className?: string;
|
|
8
|
-
};
|
|
9
|
-
export declare const renderCalculatorList: ({ blockCalcTabs, context, className, }: EmbeddableCalcBlocks) => any[] | null;
|
|
10
|
-
export {};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
|
|
2
|
-
import { EmbeddableCalcBlocks } from './EmbeddableCalcBlocks.js';
|
|
3
|
-
export const renderCalculatorList = ({ blockCalcTabs, context, className, }) => {
|
|
4
|
-
return blockCalcTabs?.length ? blockCalcTabs.map(renderBlock({ context, className })) : null;
|
|
5
|
-
};
|
|
6
|
-
const renderBlock = ({ context, className }) => (blockCalcTabs, i) => {
|
|
7
|
-
const type = blockCalcTabs?.calcType;
|
|
8
|
-
if (!type || !(type in EmbeddableCalcBlocks)) {
|
|
9
|
-
return null;
|
|
10
|
-
}
|
|
11
|
-
const EmbeddedBlock = EmbeddableCalcBlocks[type];
|
|
12
|
-
return (_jsx("section", { className: `box-border relative flex grow-0 shrink-0 basis-full ${className}`, role: "listitem", children: _jsx("div", { className: `box-border p-9 w-full`, children: _jsx(EmbeddedBlock, { context: context, ...blockCalcTabs, className: "!p-0 flex justify-between" }) }) }, `${String(i)}`));
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=renderCalculatorList.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"renderCalculatorList.js","sourceRoot":"","sources":["../../../src/components/Calculator/renderCalculatorList.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,oBAAoB,EAAuB,MAAM,wBAAwB,CAAC;AAQnF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,aAAa,EACb,OAAO,EACP,SAAS,GACY,EAAE,EAAE;IACzB,OAAO,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/F,CAAC,CAAC;AAEF,MAAM,WAAW,GACf,CAAC,EAAE,OAAO,EAAE,SAAS,EAAO,EAAE,EAAE,CAChC,CAAC,aAAiC,EAAE,CAAS,EAAE,EAAE;IAC/C,MAAM,IAAI,GAAG,aAAa,EAAE,QAAQ,CAAC;IACrC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,oBAAoB,CAAC,EAAE;QAC5C,OAAO,IAAI,CAAC;KACb;IACD,MAAM,aAAa,GAAkC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAChF,OAAO,CACL,kBAEE,SAAS,EAAE,uDAAuD,SAAS,EAAE,EAC7E,IAAI,EAAC,UAAU,YAEf,cAAK,SAAS,EAAE,uBAAuB,YACrC,KAAC,aAAa,IACZ,OAAO,EAAE,OAAO,KACZ,aAAa,EACjB,SAAS,EAAC,2BAA2B,GACrC,GACE,IAVD,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAWX,CACX,CAAC;AACJ,CAAC,CAAC"}
|