@redneckz/wildless-cms-uni-blocks 0.14.893 → 0.14.895
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/api/LeadServiceAPI.d.ts +1 -0
- package/bundle/api/getSubmitBody.d.ts +96 -96
- package/bundle/blocks.schema.json +1 -1
- package/bundle/bundle.umd.js +39 -18
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/ApplicationForm/getInitialFormState.d.ts +1 -0
- package/bundle/model/InputTypes.d.ts +1 -1
- package/bundle/ui-kit/FormField/Fields/PartnerNameField.d.ts +2 -0
- package/bundle/ui-kit/FormField/Fields/PartnerSymbolCodeField.d.ts +2 -2
- package/bundle/ui-kit/FormField/NameFieldDef.d.ts +1 -1
- package/bundle/ui-kit/FormField/inputColumnStyle.d.ts +1 -1
- package/dist/api/LeadServiceAPI.d.ts +1 -0
- package/dist/api/LeadServiceAPI.js.map +1 -1
- package/dist/api/getSubmitBody.d.ts +96 -96
- package/dist/api/getSubmitBody.js +10 -4
- package/dist/api/getSubmitBody.js.map +1 -1
- package/dist/components/ApplicationForm/ApplicationForm.js +1 -1
- package/dist/components/ApplicationForm/ApplicationForm.js.map +1 -1
- package/dist/components/ApplicationForm/getFormatData.js +1 -1
- package/dist/components/ApplicationForm/getFormatData.js.map +1 -1
- package/dist/components/ApplicationForm/getInitialFormState.d.ts +1 -0
- package/dist/components/ApplicationForm/getInitialFormState.js.map +1 -1
- package/dist/model/InputTypes.d.ts +1 -1
- package/dist/retail/components/CaptchaDialog/CaptchaDialog.js +1 -1
- package/dist/retail/components/CaptchaDialog/CaptchaDialog.js.map +1 -1
- package/dist/ui-kit/FormField/Fields/PartnerNameField.d.ts +2 -0
- package/dist/ui-kit/FormField/Fields/PartnerNameField.js +19 -0
- package/dist/ui-kit/FormField/Fields/PartnerNameField.js.map +1 -0
- package/dist/ui-kit/FormField/Fields/PartnerSymbolCodeField.d.ts +2 -2
- package/dist/ui-kit/FormField/Fields/PartnerSymbolCodeField.js +10 -9
- package/dist/ui-kit/FormField/Fields/PartnerSymbolCodeField.js.map +1 -1
- package/dist/ui-kit/FormField/NameFieldDef.d.ts +1 -1
- package/dist/ui-kit/FormField/getField.js +2 -0
- package/dist/ui-kit/FormField/getField.js.map +1 -1
- package/dist/ui-kit/FormField/inputColumnStyle.d.ts +1 -1
- package/dist/ui-kit/FormField/inputColumnStyle.js +1 -1
- package/dist/ui-kit/FormField/inputColumnStyle.js.map +1 -1
- package/lib/api/LeadServiceAPI.d.ts +1 -0
- package/lib/api/LeadServiceAPI.js.map +1 -1
- package/lib/api/getSubmitBody.d.ts +96 -96
- package/lib/api/getSubmitBody.js +10 -4
- package/lib/api/getSubmitBody.js.map +1 -1
- package/lib/components/ApplicationForm/ApplicationForm.js +1 -1
- package/lib/components/ApplicationForm/ApplicationForm.js.map +1 -1
- package/lib/components/ApplicationForm/getFormatData.js +1 -1
- package/lib/components/ApplicationForm/getFormatData.js.map +1 -1
- package/lib/components/ApplicationForm/getInitialFormState.d.ts +1 -0
- package/lib/components/ApplicationForm/getInitialFormState.js.map +1 -1
- package/lib/model/InputTypes.d.ts +1 -1
- package/lib/retail/components/CaptchaDialog/CaptchaDialog.js +1 -1
- package/lib/retail/components/CaptchaDialog/CaptchaDialog.js.map +1 -1
- package/lib/ui-kit/FormField/Fields/PartnerNameField.d.ts +2 -0
- package/lib/ui-kit/FormField/Fields/PartnerNameField.js +17 -0
- package/lib/ui-kit/FormField/Fields/PartnerNameField.js.map +1 -0
- package/lib/ui-kit/FormField/Fields/PartnerSymbolCodeField.d.ts +2 -2
- package/lib/ui-kit/FormField/Fields/PartnerSymbolCodeField.js +11 -10
- package/lib/ui-kit/FormField/Fields/PartnerSymbolCodeField.js.map +1 -1
- package/lib/ui-kit/FormField/NameFieldDef.d.ts +1 -1
- package/lib/ui-kit/FormField/getField.js +2 -0
- package/lib/ui-kit/FormField/getField.js.map +1 -1
- package/lib/ui-kit/FormField/inputColumnStyle.d.ts +1 -1
- package/lib/ui-kit/FormField/inputColumnStyle.js +1 -1
- package/lib/ui-kit/FormField/inputColumnStyle.js.map +1 -1
- package/mobile/bundle/api/LeadServiceAPI.d.ts +1 -0
- package/mobile/bundle/api/getSubmitBody.d.ts +96 -96
- package/mobile/bundle/bundle.umd.js +39 -18
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/ApplicationForm/getInitialFormState.d.ts +1 -0
- package/mobile/bundle/model/InputTypes.d.ts +1 -1
- package/mobile/bundle/ui-kit/FormField/Fields/PartnerNameField.d.ts +2 -0
- package/mobile/bundle/ui-kit/FormField/Fields/PartnerSymbolCodeField.d.ts +2 -2
- package/mobile/bundle/ui-kit/FormField/NameFieldDef.d.ts +1 -1
- package/mobile/bundle/ui-kit/FormField/inputColumnStyle.d.ts +1 -1
- package/mobile/dist/api/LeadServiceAPI.d.ts +1 -0
- package/mobile/dist/api/LeadServiceAPI.js.map +1 -1
- package/mobile/dist/api/getSubmitBody.d.ts +96 -96
- package/mobile/dist/api/getSubmitBody.js +10 -4
- package/mobile/dist/api/getSubmitBody.js.map +1 -1
- package/mobile/dist/components/ApplicationForm/ApplicationForm.js +1 -1
- package/mobile/dist/components/ApplicationForm/ApplicationForm.js.map +1 -1
- package/mobile/dist/components/ApplicationForm/getFormatData.js +1 -1
- package/mobile/dist/components/ApplicationForm/getFormatData.js.map +1 -1
- package/mobile/dist/components/ApplicationForm/getInitialFormState.d.ts +1 -0
- package/mobile/dist/components/ApplicationForm/getInitialFormState.js.map +1 -1
- package/mobile/dist/model/InputTypes.d.ts +1 -1
- package/mobile/dist/retail/components/CaptchaDialog/CaptchaDialog.js +1 -1
- package/mobile/dist/retail/components/CaptchaDialog/CaptchaDialog.js.map +1 -1
- package/mobile/dist/ui-kit/FormField/Fields/PartnerNameField.d.ts +2 -0
- package/mobile/dist/ui-kit/FormField/Fields/PartnerNameField.js +19 -0
- package/mobile/dist/ui-kit/FormField/Fields/PartnerNameField.js.map +1 -0
- package/mobile/dist/ui-kit/FormField/Fields/PartnerSymbolCodeField.d.ts +2 -2
- package/mobile/dist/ui-kit/FormField/Fields/PartnerSymbolCodeField.js +10 -9
- package/mobile/dist/ui-kit/FormField/Fields/PartnerSymbolCodeField.js.map +1 -1
- package/mobile/dist/ui-kit/FormField/NameFieldDef.d.ts +1 -1
- package/mobile/dist/ui-kit/FormField/getField.js +2 -0
- package/mobile/dist/ui-kit/FormField/getField.js.map +1 -1
- package/mobile/dist/ui-kit/FormField/inputColumnStyle.d.ts +1 -1
- package/mobile/dist/ui-kit/FormField/inputColumnStyle.js +1 -1
- package/mobile/dist/ui-kit/FormField/inputColumnStyle.js.map +1 -1
- package/mobile/lib/api/LeadServiceAPI.d.ts +1 -0
- package/mobile/lib/api/LeadServiceAPI.js.map +1 -1
- package/mobile/lib/api/getSubmitBody.d.ts +96 -96
- package/mobile/lib/api/getSubmitBody.js +10 -4
- package/mobile/lib/api/getSubmitBody.js.map +1 -1
- package/mobile/lib/components/ApplicationForm/ApplicationForm.js +1 -1
- package/mobile/lib/components/ApplicationForm/ApplicationForm.js.map +1 -1
- package/mobile/lib/components/ApplicationForm/getFormatData.js +1 -1
- package/mobile/lib/components/ApplicationForm/getFormatData.js.map +1 -1
- package/mobile/lib/components/ApplicationForm/getInitialFormState.d.ts +1 -0
- package/mobile/lib/components/ApplicationForm/getInitialFormState.js.map +1 -1
- package/mobile/lib/model/InputTypes.d.ts +1 -1
- package/mobile/lib/retail/components/CaptchaDialog/CaptchaDialog.js +1 -1
- package/mobile/lib/retail/components/CaptchaDialog/CaptchaDialog.js.map +1 -1
- package/mobile/lib/ui-kit/FormField/Fields/PartnerNameField.d.ts +2 -0
- package/mobile/lib/ui-kit/FormField/Fields/PartnerNameField.js +17 -0
- package/mobile/lib/ui-kit/FormField/Fields/PartnerNameField.js.map +1 -0
- package/mobile/lib/ui-kit/FormField/Fields/PartnerSymbolCodeField.d.ts +2 -2
- package/mobile/lib/ui-kit/FormField/Fields/PartnerSymbolCodeField.js +11 -10
- package/mobile/lib/ui-kit/FormField/Fields/PartnerSymbolCodeField.js.map +1 -1
- package/mobile/lib/ui-kit/FormField/NameFieldDef.d.ts +1 -1
- package/mobile/lib/ui-kit/FormField/getField.js +2 -0
- package/mobile/lib/ui-kit/FormField/getField.js.map +1 -1
- package/mobile/lib/ui-kit/FormField/inputColumnStyle.d.ts +1 -1
- package/mobile/lib/ui-kit/FormField/inputColumnStyle.js +1 -1
- package/mobile/lib/ui-kit/FormField/inputColumnStyle.js.map +1 -1
- package/mobile/src/api/LeadServiceAPI.ts +1 -0
- package/mobile/src/api/getSubmitBody.ts +11 -3
- package/mobile/src/components/ApplicationForm/ApplicationForm.example.json +5 -1
- package/mobile/src/components/ApplicationForm/ApplicationForm.tsx +1 -1
- package/mobile/src/components/ApplicationForm/getFormatData.tsx +1 -0
- package/mobile/src/components/ApplicationForm/getInitialFormState.tsx +1 -0
- package/mobile/src/model/InputTypes.ts +1 -1
- package/mobile/src/retail/components/CaptchaDialog/CaptchaDialog.tsx +1 -1
- package/mobile/src/ui-kit/FormField/Fields/PartnerNameField.tsx +26 -0
- package/mobile/src/ui-kit/FormField/Fields/PartnerSymbolCodeField.tsx +19 -16
- package/mobile/src/ui-kit/FormField/NameFieldDef.ts +2 -1
- package/mobile/src/ui-kit/FormField/getField.tsx +2 -0
- package/mobile/src/ui-kit/FormField/inputColumnStyle.tsx +1 -1
- package/package.json +1 -1
- package/src/api/LeadServiceAPI.ts +1 -0
- package/src/api/getSubmitBody.ts +11 -3
- package/src/components/ApplicationForm/ApplicationForm.example.json +5 -1
- package/src/components/ApplicationForm/ApplicationForm.fixture.mobile.tsx +1 -1
- package/src/components/ApplicationForm/ApplicationForm.fixture.tsx +2 -2
- package/src/components/ApplicationForm/ApplicationForm.tsx +1 -1
- package/src/components/ApplicationForm/getFormatData.tsx +1 -0
- package/src/components/ApplicationForm/getInitialFormState.tsx +1 -0
- package/src/model/InputTypes.ts +1 -1
- package/src/retail/components/CaptchaDialog/CaptchaDialog.tsx +1 -1
- package/src/ui-kit/FormField/Fields/PartnerNameField.tsx +26 -0
- package/src/ui-kit/FormField/Fields/PartnerSymbolCodeField.tsx +19 -16
- package/src/ui-kit/FormField/NameFieldDef.ts +2 -1
- package/src/ui-kit/FormField/getField.tsx +2 -0
- package/src/ui-kit/FormField/inputColumnStyle.tsx +1 -1
|
@@ -1013,7 +1013,7 @@
|
|
|
1013
1013
|
const formatPhone = (phone) => phone?.replace(/[^+\d]/g, '');
|
|
1014
1014
|
|
|
1015
1015
|
const getSubmitBody = (body, isNaturalPerson, router) => {
|
|
1016
|
-
const { typeForm, region, phone = '', email, birthday, desiredMeetingDate, inn, innDadata, fullRegion, addressBranch, secondaryPhone = '', bankEmpolee, applicationDate, partnerSymbolCode, companyNameByInn, ...staticBody } = body;
|
|
1016
|
+
const { typeForm, region, phone = '', email, birthday, desiredMeetingDate, inn, innDadata, fullRegion, addressBranch, secondaryPhone = '', bankEmpolee, applicationDate, partnerSymbolCode, companyNameByInn, partnerName, ...staticBody } = body;
|
|
1017
1017
|
return {
|
|
1018
1018
|
typeForm,
|
|
1019
1019
|
...getRegion$1(region, isNaturalPerson),
|
|
@@ -1030,7 +1030,13 @@
|
|
|
1030
1030
|
...getSecondaryPhone(secondaryPhone),
|
|
1031
1031
|
}),
|
|
1032
1032
|
...addPageSlug(typeForm, router),
|
|
1033
|
-
...formatPFForm(typeForm, {
|
|
1033
|
+
...formatPFForm(typeForm, {
|
|
1034
|
+
innDadata,
|
|
1035
|
+
fullRegion,
|
|
1036
|
+
partnerSymbolCode,
|
|
1037
|
+
companyNameByInn,
|
|
1038
|
+
partnerName,
|
|
1039
|
+
}),
|
|
1034
1040
|
...staticBody,
|
|
1035
1041
|
};
|
|
1036
1042
|
};
|
|
@@ -1054,8 +1060,8 @@
|
|
|
1054
1060
|
? {
|
|
1055
1061
|
inn: data?.innDadata,
|
|
1056
1062
|
region: data?.fullRegion,
|
|
1057
|
-
|
|
1058
|
-
|
|
1063
|
+
partner: data?.partnerName,
|
|
1064
|
+
fullName: data?.companyNameByInn,
|
|
1059
1065
|
}
|
|
1060
1066
|
: {};
|
|
1061
1067
|
const addPageSlug = (typeForm, router) => typeForm === 'UNIVERSAL'
|
|
@@ -1657,7 +1663,7 @@
|
|
|
1657
1663
|
(async () => setCaptcha(URL.createObjectURL(await createCaptcha(phoneNumber))))();
|
|
1658
1664
|
}, []);
|
|
1659
1665
|
useEffect(handleCreateCaptcha, []);
|
|
1660
|
-
return (jsx(Dialog, { className: "my-6xl max-w-lg w-full min-h-fit mx-auto rounded-lg", head: jsx(Logo, {}), onClose:
|
|
1666
|
+
return (jsx(Dialog, { className: "my-6xl max-w-lg w-full min-h-fit mx-auto rounded-lg", head: jsx(Logo, {}), onClose: closeAll, children: jsxs("div", { className: "flex flex-col gap-lg items-center", children: [jsxs("div", { className: "flex", children: [jsx("img", { className: "grow", src: captcha }), jsx(Button, { className: "w-8", embedded: true, onClick: handleCreateCaptcha, children: jsx(Icon, { iconVersion: "normal", name: "RefreshIcon" }) })] }), jsx(Input, { className: "w-80", onChange: setCode, value: code, placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u043E\u0434 \u0441 \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438" }), hasError ? jsx("div", { className: "text-error", children: "\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043E\u0434" }) : null, jsxs("div", { className: "flex w-80 justify-between", children: [jsx(Button, { version: "secondary", onClick: closeAll, children: "\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F" }), jsx(SubmitButton$1, { version: "secondary", disabled: !code, onClick: handleCheckCaptcha, children: "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C" })] }), isLoading ? jsx(Loader, { blur: false }) : null] }) }));
|
|
1661
1667
|
});
|
|
1662
1668
|
|
|
1663
1669
|
const InputCode = JSX(({ values, setValues, hasError, errorText }) => {
|
|
@@ -2708,17 +2714,31 @@
|
|
|
2708
2714
|
|
|
2709
2715
|
const PartnerCommentsField = JSX(({ field, input }) => (jsx(InputControl, { ...field(input?.name ?? ''), placeholder: "\u0423\u043A\u0430\u0436\u0438\u0442\u0435 \u0438\u043D\u0442\u0435\u0440\u0435\u0441\u0443\u044E\u0449\u0438\u0439 \u0432\u0430\u0441 \u0432\u043E\u043F\u0440\u043E\u0441", isTextarea: true, ...input })));
|
|
2710
2716
|
|
|
2717
|
+
const UNKNOWN_PARTNER = 'Неизвестный партнёр';
|
|
2718
|
+
const PartnerNameField = UniBlock(({ field, input = {}, source }) => {
|
|
2719
|
+
const fieldPartnerSymbolCodeValue = field('partnerSymbolCode')?.value;
|
|
2720
|
+
useEffect(() => {
|
|
2721
|
+
const agentName = getAgentName(source?.agentsList, fieldPartnerSymbolCodeValue) || UNKNOWN_PARTNER;
|
|
2722
|
+
if (agentName) {
|
|
2723
|
+
field('partnerName')?.onChange?.(agentName);
|
|
2724
|
+
}
|
|
2725
|
+
}, [fieldPartnerSymbolCodeValue]);
|
|
2726
|
+
return jsx(InputControl, { ...field(input.name ?? ''), ...input, type: "hidden" });
|
|
2727
|
+
});
|
|
2728
|
+
const getAgentName = (agentsList = [], code = '') => agentsList.find(({ symbolCode }) => symbolCode === code)?.agentName ?? '';
|
|
2729
|
+
|
|
2730
|
+
const ID_NOT_FOUND = 'ID партнера не найден. Обратитесь к своему менеджеру';
|
|
2711
2731
|
const PartnerSymbolCodeField = UniBlock(({ field, input, source }) => {
|
|
2712
|
-
const agentsList = source?.agentsList;
|
|
2713
|
-
const { value: partnerCode } = field('partnerSymbolCode');
|
|
2732
|
+
const agentsList = source?.agentsList ?? [];
|
|
2714
2733
|
const [symbolCodeError, setSymbolCodeError] = useState('');
|
|
2715
|
-
const
|
|
2716
|
-
|
|
2717
|
-
|
|
2718
|
-
|
|
2719
|
-
|
|
2720
|
-
|
|
2721
|
-
|
|
2734
|
+
const [partnerCodeValue, setPartnerCodeValue] = useState('');
|
|
2735
|
+
const isPartnerCodeExist = (code) => agentsList.some(({ symbolCode }) => symbolCode === code);
|
|
2736
|
+
const handleInputChange = (value) => {
|
|
2737
|
+
setPartnerCodeValue(value);
|
|
2738
|
+
field('partnerSymbolCode')?.onChange?.(value);
|
|
2739
|
+
setSymbolCodeError(value && !isPartnerCodeExist(value) ? ID_NOT_FOUND : '');
|
|
2740
|
+
};
|
|
2741
|
+
return (jsx(InputControl, { label: "\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u043F\u0430\u0440\u0442\u043D\u0451\u0440\u0430", ...field(input?.name ?? ''), ...input, isInteger: true, value: partnerCodeValue, error: symbolCodeError || field('partnerSymbolCode')?.error, onChange: handleInputChange }));
|
|
2722
2742
|
});
|
|
2723
2743
|
|
|
2724
2744
|
const isPlaceholder = (_) => _ === '_';
|
|
@@ -2974,6 +2994,7 @@
|
|
|
2974
2994
|
partnerSymbolCode: (props) => (jsx(PartnerSymbolCodeField, { ...props, source: AGENTS_REF })),
|
|
2975
2995
|
innDadata: InnDadataField,
|
|
2976
2996
|
companyNameByInn: CompanyNameByInnField,
|
|
2997
|
+
partnerName: (props) => jsx(PartnerNameField, { ...props, source: AGENTS_REF }),
|
|
2977
2998
|
};
|
|
2978
2999
|
const getField = (field, params, externalInputs = {}) => (input, i) => {
|
|
2979
3000
|
const fieldsRegister = {
|
|
@@ -2984,7 +3005,7 @@
|
|
|
2984
3005
|
return shouldRenderField({ input, field }) && Component ? (jsx("div", { children: jsx(Component, { field: field, input: input, params: params }) }, i)) : null;
|
|
2985
3006
|
};
|
|
2986
3007
|
|
|
2987
|
-
const inputColumnStyles = (column) => column === 2 ? '@xl:grid-cols-2' : '@xl:grid-cols-1 gap-x-0';
|
|
3008
|
+
const inputColumnStyles = (column) => column === 2 ? '@xl:grid-cols-2 gap-x-m' : '@xl:grid-cols-1 gap-x-0';
|
|
2988
3009
|
|
|
2989
3010
|
const renderTitle = (title) => title ? (jsx("div", { className: "@xl:text-center @xl:col-span-2 mb-m", children: jsx(Text, { size: "text-h6", children: title }) })) : null;
|
|
2990
3011
|
|
|
@@ -3012,7 +3033,7 @@
|
|
|
3012
3033
|
|
|
3013
3034
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
3014
3035
|
const getFormatData = (data) => {
|
|
3015
|
-
const { acquiringType, onlineCheckout, posTerminal, amount, term, annualRevenue, serviceType, vedTypes, region, inn, sufferedFrom, situationDescription, applierType, ...usedData } = data;
|
|
3036
|
+
const { acquiringType, onlineCheckout, posTerminal, amount, term, annualRevenue, serviceType, vedTypes, region, inn, sufferedFrom, situationDescription, applierType, isPremium, ...usedData } = data;
|
|
3016
3037
|
const partnerComments = acquiringType || annualRevenue ? getPartnerComments(data) : null;
|
|
3017
3038
|
const formatData = {
|
|
3018
3039
|
...usedData,
|
|
@@ -3154,7 +3175,7 @@
|
|
|
3154
3175
|
typeForm,
|
|
3155
3176
|
})] }), isContacts ? renderContacts() : null] }));
|
|
3156
3177
|
});
|
|
3157
|
-
const renderSections = (sections, field, { typeForm, additionalParams }) => sections.map((_, i) => (jsxs("div", { className: style(inputColumnStyles(_.columns), 'grid
|
|
3178
|
+
const renderSections = (sections, field, { typeForm, additionalParams }) => sections.map((_, i) => (jsxs("div", { className: style(inputColumnStyles(_.columns), 'grid'), children: [renderTitle(_.title), (_?.inputs || [])?.map(getField(field, { typeForm, ...additionalParams }))] }, `section-${i}`)));
|
|
3158
3179
|
|
|
3159
3180
|
const NoConsentDialog = JSX(({ attempts, onClose = noop }) => {
|
|
3160
3181
|
const navigator = locationNavigator();
|
|
@@ -11382,7 +11403,7 @@
|
|
|
11382
11403
|
slots: () => [HEADER_SLOT, FOOTER_SLOT, STICKY_FOOTER_SLOT],
|
|
11383
11404
|
});
|
|
11384
11405
|
|
|
11385
|
-
const packageVersion = "0.14.
|
|
11406
|
+
const packageVersion = "0.14.894";
|
|
11386
11407
|
|
|
11387
11408
|
exports.Blocks = Blocks;
|
|
11388
11409
|
exports.ContentPage = ContentPage;
|