@redneckz/wildless-cms-uni-blocks 0.3.65 → 0.3.67
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/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 +1 -1
- package/dist/model/IconVersion.d.ts +7 -0
- package/dist/types.d.ts +2 -2
- package/dist/ui-kit/InputRange/InputRangeProps.d.ts +2 -2
- package/dist/ui-kit/Tabs/TabsProps.d.ts +2 -2
- 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 +1 -1
- package/lib/model/IconVersion.d.ts +7 -0
- package/lib/types.d.ts +2 -2
- package/lib/ui-kit/InputRange/InputRangeProps.d.ts +2 -2
- package/lib/ui-kit/Tabs/TabsProps.d.ts +2 -2
- 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 +1 -1
- package/mobile/dist/model/IconVersion.d.ts +7 -0
- package/mobile/dist/types.d.ts +2 -2
- package/mobile/dist/ui-kit/InputRange/InputRangeProps.d.ts +2 -2
- package/mobile/dist/ui-kit/Tabs/TabsProps.d.ts +2 -2
- 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 +1 -1
- package/mobile/lib/model/IconVersion.d.ts +7 -0
- package/mobile/lib/types.d.ts +2 -2
- package/mobile/lib/ui-kit/InputRange/InputRangeProps.d.ts +2 -2
- package/mobile/lib/ui-kit/Tabs/TabsProps.d.ts +2 -2
- package/mobile/src/components/Calculator/Calculator.tsx +3 -3
- package/mobile/src/content-page-repository/ContentPageRepository.ts +26 -6
- package/mobile/src/icons/IconName.ts +4 -4
- package/mobile/src/model/EmptyOptionType.ts +1 -1
- package/mobile/src/model/IconVersion.ts +7 -0
- package/mobile/src/types.ts +2 -2
- package/mobile/src/ui-kit/InputRange/InputRangeProps.ts +2 -2
- package/mobile/src/ui-kit/Tabs/TabsProps.ts +2 -2
- package/package.json +2 -2
- package/src/components/Calculator/Calculator.tsx +3 -3
- package/src/content-page-repository/ContentPageRepository.ts +26 -6
- package/src/icons/IconName.ts +1 -1
- package/src/model/EmptyOptionType.ts +1 -1
- package/src/model/IconVersion.ts +7 -0
- package/src/types.ts +2 -2
- package/src/ui-kit/InputRange/InputRangeProps.ts +2 -2
- package/src/ui-kit/Tabs/TabsProps.ts +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import type { UniBlockProps } from '../../types';
|
|
2
|
+
import type { FuncReturnVoid, UniBlockProps } from '../../types';
|
|
3
3
|
import { ArrowButton } from '../../ui-kit/Button/ArrowButton';
|
|
4
4
|
import { Img } from '../../ui-kit/Img/Img';
|
|
5
5
|
import type { CalculatorBlockDef, CalculatorContent } from './CalculatorContent';
|
|
@@ -12,14 +12,14 @@ type TabsProps = {
|
|
|
12
12
|
tabsShift: number;
|
|
13
13
|
tabsNav: CalculatorNav[];
|
|
14
14
|
activeSlideIndex: number;
|
|
15
|
-
setActiveSlideIndex:
|
|
15
|
+
setActiveSlideIndex: FuncReturnVoid<number>;
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
type NavButtonProps = {
|
|
19
19
|
tab: CalculatorNav;
|
|
20
20
|
i: number;
|
|
21
21
|
activeSlideIndex: number;
|
|
22
|
-
onClick:
|
|
22
|
+
onClick: FuncReturnVoid<MouseEvent>;
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
const arrowBtnStyle =
|
|
@@ -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,
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
/* eslint-disable max-lines */
|
|
4
4
|
|
|
5
5
|
export enum IconMap {
|
|
6
|
-
ActualBalanceIcon =
|
|
6
|
+
ActualBalanceIcon = 'ActualBalanceIcon', AirPlane = 'AirPlane', AppleIcon = 'AppleIcon', ArrowDownIcon = 'ArrowDownIcon', ArrowLeftIcon = 'ArrowLeftIcon', ArrowsRewindRight = 'ArrowsRewindRight', ArrowUpIcon = 'ArrowUpIcon', AtmIcon = 'AtmIcon', BankIcon = 'BankIcon', BurgerIcon = 'BurgerIcon', BurgerIconWhite = 'BurgerIconWhite', Calendar2Icon = 'Calendar2Icon', CalendarCircleIcon = 'CalendarCircleIcon', CalendarIcon = 'CalendarIcon', CalendarTickIcon = 'CalendarTickIcon', CalendarWhiteIcon = 'CalendarWhiteIcon', CardIcon = 'CardIcon', CardPosIcon = 'CardPosIcon', CardTickIcon = 'CardTickIcon', CardWithGemIcon = 'CardWithGemIcon', CarIcon = 'CarIcon', ChartSquareIcon = 'ChartSquareIcon', CinemaIcon = 'CinemaIcon', ClockIcon = 'ClockIcon', CloseIcon = 'CloseIcon', ComfortableCompIcon = 'ComfortableCompIcon', CreditCardsIcon = 'CreditCardsIcon', DiscountShapeIcon = 'DiscountShapeIcon', DocIcon = 'DocIcon', DocIconMonoColor = 'DocIconMonoColor', DocsIcon = 'DocsIcon', DocumentTextIcon = 'DocumentTextIcon', DollarIcon = 'DollarIcon', EarthIcon = 'EarthIcon', EmptyWalletChangeIcon = 'EmptyWalletChangeIcon', EmptyWalletIcon = 'EmptyWalletIcon', EmptyWalletWhiteIcon = 'EmptyWalletWhiteIcon', EuroIcon = 'EuroIcon', GeolocationIcon = 'GeolocationIcon', GlassIcon = 'GlassIcon', GlobalIcon = 'GlobalIcon', GpsIcon = 'GpsIcon', GridIcon = 'GridIcon', GridIconWhite = 'GridIconWhite', InterestGrowthIcon = 'InterestGrowthIcon', InterestIcon = 'InterestIcon', JCBIcon = 'JCBIcon', LoupeIcon = 'LoupeIcon', MasterCardIcon = 'MasterCardIcon', MinusIcon = 'MinusIcon', MirIcon = 'MirIcon', MoneyIcon = 'MoneyIcon', MoneyInsuranceIcon = 'MoneyInsuranceIcon', MonitorMobileIcon = 'MonitorMobileIcon', NewDocIcon = 'NewDocIcon', OfficeIcon = 'OfficeIcon', OkIcon = 'OkIcon', PassSendIcon = 'PassSendIcon', PercentageRoundIcon = 'PercentageRoundIcon', PercentageSquareIcon = 'PercentageSquareIcon', PercentageSquareWhiteIcon = 'PercentageSquareWhiteIcon', PersonalCardIcon = 'PersonalCardIcon', PlayMarketIcon = 'PlayMarketIcon', PlusIcon = 'PlusIcon', PowerIcon = 'PowerIcon', Profile2UserIcon = 'Profile2UserIcon', ProfileIcon = 'ProfileIcon', PumpkinIcon = 'PumpkinIcon', RoundRubleIcon = 'RoundRubleIcon', SafeIcon = 'SafeIcon', ShieldTickIcon = 'ShieldTickIcon', SignDocsIcon = 'SignDocsIcon', SmallClockIcon = 'SmallClockIcon', SoundIcon = 'SoundIcon', TelegramIcon = 'TelegramIcon', UnionPayIcon = 'UnionPayIcon', UserTickIcon = 'UserTickIcon', VisaIcon = 'VisaIcon', VKIcon = 'VKIcon', WalletAdd2Icon = 'WalletAdd2Icon', WalletAddIcon = 'WalletAddIcon', WalletIcon = 'WalletIcon', WalletWithMoneyIcon = 'WalletWithMoneyIcon', WateringCan = 'WateringCan'
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
export enum IconTitleMap {
|
|
10
|
-
ActualBalanceIcon =
|
|
10
|
+
ActualBalanceIcon = 'Деньги', AirPlane = 'Самолет', AppleIcon = 'Лого «Apple»', ArrowDownIcon = 'Стрелка \'Вниз\'', ArrowLeftIcon = 'Стрелка', ArrowsRewindRight = 'Стрелка', ArrowUpIcon = 'Стрелка вверх', AtmIcon = 'Банкомат', BankIcon = 'Банк', BurgerIcon = 'Бургер', BurgerIconWhite = 'Бургер (белый)', Calendar2Icon = 'Календарь 2', CalendarCircleIcon = 'Скруглённый календарь', CalendarIcon = 'Календарь', CalendarTickIcon = 'Календарь с галочкой', CalendarWhiteIcon = 'Календарь белый', CardIcon = 'Кред. карта', CardPosIcon = 'Кред. карта под наклоном', CardTickIcon = 'Кред. карта с галочкой', CardWithGemIcon = 'Карта с драгоценностями', CarIcon = 'Машина', ChartSquareIcon = 'Деньги внутри кошелька', CinemaIcon = 'Кино', ClockIcon = 'Часы', CloseIcon = 'Крестик', ComfortableCompIcon = 'Кресло', CreditCardsIcon = 'Кредитные карты', DiscountShapeIcon = 'Скидка', DocIcon = 'Документ', DocIconMonoColor = 'Документ (одноцветный)', DocsIcon = 'Документы', DocumentTextIcon = 'Документ с текстом', DollarIcon = 'Доллар', EarthIcon = 'Земля', EmptyWalletChangeIcon = 'Пустой кошелёк с возвратом', EmptyWalletIcon = 'Пустой кошелёк', EmptyWalletWhiteIcon = 'Пустой кошелёк (белый)', EuroIcon = 'Евро', GeolocationIcon = 'Геолокация', GlassIcon = 'Зеркало', GlobalIcon = 'Глобус', GpsIcon = 'Gps', GridIcon = 'Сетка', GridIconWhite = 'Сетка (белая)', InterestGrowthIcon = 'Диаграмма роста', InterestIcon = 'Скидка', JCBIcon = 'JCB', LoupeIcon = 'Лупа', MasterCardIcon = 'MasterCard', MinusIcon = 'Минус', MirIcon = 'МИР', MoneyIcon = 'Деньги', MoneyInsuranceIcon = 'Денежное страхование', MonitorMobileIcon = 'Монитор и мобильный', NewDocIcon = 'Новый документ', OfficeIcon = 'Офис', OkIcon = 'Лого «Одноклассники»', PassSendIcon = 'Бизнес', PercentageRoundIcon = 'Проценты (круг.)', PercentageSquareIcon = 'Проценты', PercentageSquareWhiteIcon = 'Проценты белые', PersonalCardIcon = 'Персональная карта', PlayMarketIcon = 'Лого «PlayMarket»', PlusIcon = 'Плюс', PowerIcon = 'Щит', Profile2UserIcon = 'Профиль, 2 персоны', ProfileIcon = 'Профиль', PumpkinIcon = 'Тыква', RoundRubleIcon = 'Рубль (круг.)', SafeIcon = 'Сейф', ShieldTickIcon = 'Безопасность', SignDocsIcon = 'Подписанные документы', SmallClockIcon = 'Маленькие часы', SoundIcon = 'Звук', TelegramIcon = 'Лого «Telegram»', UnionPayIcon = 'UnionPay', UserTickIcon = 'Пользователь', VisaIcon = 'Visa', VKIcon = 'Лого «VK»', WalletAdd2Icon = 'Пополнение карты', WalletAddIcon = 'Кошелёк с плюсом', WalletIcon = 'Кошелёк', WalletWithMoneyIcon = 'Кошелёк с деньгами', WateringCan = 'Добавить продукт'
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
/**
|
|
@@ -15,7 +15,7 @@ export enum IconTitleMap {
|
|
|
15
15
|
* @title Иконка
|
|
16
16
|
* @enumNames [
|
|
17
17
|
* "",
|
|
18
|
-
*
|
|
18
|
+
* 'Деньги', 'Самолет', 'Лого «Apple»', 'Стрелка \'Вниз\'', 'Стрелка', 'Стрелка', 'Стрелка вверх', 'Банкомат', 'Банк', 'Бургер', 'Бургер (белый)', 'Календарь 2', 'Скруглённый календарь', 'Календарь', 'Календарь с галочкой', 'Календарь белый', 'Кред. карта', 'Кред. карта под наклоном', 'Кред. карта с галочкой', 'Карта с драгоценностями', 'Машина', 'Деньги внутри кошелька', 'Кино', 'Часы', 'Крестик', 'Кресло', 'Кредитные карты', 'Скидка', 'Документ', 'Документ (одноцветный)', 'Документы', 'Документ с текстом', 'Доллар', 'Земля', 'Пустой кошелёк с возвратом', 'Пустой кошелёк', 'Пустой кошелёк (белый)', 'Евро', 'Геолокация', 'Зеркало', 'Глобус', 'Gps', 'Сетка', 'Сетка (белая)', 'Диаграмма роста', 'Скидка', 'JCB', 'Лупа', 'MasterCard', 'Минус', 'МИР', 'Деньги', 'Денежное страхование', 'Монитор и мобильный', 'Новый документ', 'Офис', 'Лого «Одноклассники»', 'Бизнес', 'Проценты (круг.)', 'Проценты', 'Проценты белые', 'Персональная карта', 'Лого «PlayMarket»', 'Плюс', 'Щит', 'Профиль, 2 персоны', 'Профиль', 'Тыква', 'Рубль (круг.)', 'Сейф', 'Безопасность', 'Подписанные документы', 'Маленькие часы', 'Звук', 'Лого «Telegram»', 'UnionPay', 'Пользователь', 'Visa', 'Лого «VK»', 'Пополнение карты', 'Кошелёк с плюсом', 'Кошелёк', 'Кошелёк с деньгами', 'Добавить продукт'
|
|
19
19
|
* ]
|
|
20
20
|
*/
|
|
21
|
-
export type IconName =
|
|
21
|
+
export type IconName = '' | 'ActualBalanceIcon' | 'AirPlane' | 'AppleIcon' | 'ArrowDownIcon' | 'ArrowLeftIcon' | 'ArrowsRewindRight' | 'ArrowUpIcon' | 'AtmIcon' | 'BankIcon' | 'BurgerIcon' | 'BurgerIconWhite' | 'Calendar2Icon' | 'CalendarCircleIcon' | 'CalendarIcon' | 'CalendarTickIcon' | 'CalendarWhiteIcon' | 'CardIcon' | 'CardPosIcon' | 'CardTickIcon' | 'CardWithGemIcon' | 'CarIcon' | 'ChartSquareIcon' | 'CinemaIcon' | 'ClockIcon' | 'CloseIcon' | 'ComfortableCompIcon' | 'CreditCardsIcon' | 'DiscountShapeIcon' | 'DocIcon' | 'DocIconMonoColor' | 'DocsIcon' | 'DocumentTextIcon' | 'DollarIcon' | 'EarthIcon' | 'EmptyWalletChangeIcon' | 'EmptyWalletIcon' | 'EmptyWalletWhiteIcon' | 'EuroIcon' | 'GeolocationIcon' | 'GlassIcon' | 'GlobalIcon' | 'GpsIcon' | 'GridIcon' | 'GridIconWhite' | 'InterestGrowthIcon' | 'InterestIcon' | 'JCBIcon' | 'LoupeIcon' | 'MasterCardIcon' | 'MinusIcon' | 'MirIcon' | 'MoneyIcon' | 'MoneyInsuranceIcon' | 'MonitorMobileIcon' | 'NewDocIcon' | 'OfficeIcon' | 'OkIcon' | 'PassSendIcon' | 'PercentageRoundIcon' | 'PercentageSquareIcon' | 'PercentageSquareWhiteIcon' | 'PersonalCardIcon' | 'PlayMarketIcon' | 'PlusIcon' | 'PowerIcon' | 'Profile2UserIcon' | 'ProfileIcon' | 'PumpkinIcon' | 'RoundRubleIcon' | 'SafeIcon' | 'ShieldTickIcon' | 'SignDocsIcon' | 'SmallClockIcon' | 'SoundIcon' | 'TelegramIcon' | 'UnionPayIcon' | 'UserTickIcon' | 'VisaIcon' | 'VKIcon' | 'WalletAdd2Icon' | 'WalletAddIcon' | 'WalletIcon' | 'WalletWithMoneyIcon' | 'WateringCan';
|
package/mobile/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 {
|
|
@@ -73,4 +73,4 @@ export interface DaDataAddress {
|
|
|
73
73
|
city?: string | null;
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
export type
|
|
76
|
+
export type FuncReturnVoid<Input = unknown> = (value: Input) => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { FuncReturnVoid } from '../../types';
|
|
2
2
|
|
|
3
3
|
export interface InputRangeProps {
|
|
4
4
|
className?: string;
|
|
@@ -8,5 +8,5 @@ export interface InputRangeProps {
|
|
|
8
8
|
step?: number;
|
|
9
9
|
value?: number;
|
|
10
10
|
title?: string;
|
|
11
|
-
onChange?:
|
|
11
|
+
onChange?: FuncReturnVoid<number>;
|
|
12
12
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Picture } from '../../model/Picture';
|
|
2
|
-
import {
|
|
2
|
+
import { FuncReturnVoid } from '../../types';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* @title Вкладка
|
|
@@ -12,7 +12,7 @@ export interface Tab {
|
|
|
12
12
|
icon?: Picture;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
export type TabClickHandler =
|
|
15
|
+
export type TabClickHandler = FuncReturnVoid<number>;
|
|
16
16
|
|
|
17
17
|
export interface TabsProps {
|
|
18
18
|
tabs?: Tab[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redneckz/wildless-cms-uni-blocks",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.67",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "ЦК",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"scripts": {
|
|
73
73
|
"start": "npm run cosmos",
|
|
74
74
|
"start:mobile": "npm run cosmos:mobile",
|
|
75
|
-
"prebuild": "rimraf ./mobile/src",
|
|
75
|
+
"prebuild": "rimraf ./mobile/src && npm run build:icons",
|
|
76
76
|
"build": "npm run build:lib && npm run build:commonjs && npm run bundle && npm run build:style && npm run build:design && npm run size && npm run build:mobile",
|
|
77
77
|
"prebuild:mobile": "rimraf ./mobile/src && node ./scripts/prebuild-mobile.js ./src ./mobile",
|
|
78
78
|
"build:mobile": "npm run --prefix ./mobile build",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import type { UniBlockProps } from '../../types';
|
|
2
|
+
import type { FuncReturnVoid, UniBlockProps } from '../../types';
|
|
3
3
|
import { ArrowButton } from '../../ui-kit/Button/ArrowButton';
|
|
4
4
|
import { Img } from '../../ui-kit/Img/Img';
|
|
5
5
|
import type { CalculatorBlockDef, CalculatorContent } from './CalculatorContent';
|
|
@@ -12,14 +12,14 @@ type TabsProps = {
|
|
|
12
12
|
tabsShift: number;
|
|
13
13
|
tabsNav: CalculatorNav[];
|
|
14
14
|
activeSlideIndex: number;
|
|
15
|
-
setActiveSlideIndex:
|
|
15
|
+
setActiveSlideIndex: FuncReturnVoid<number>;
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
type NavButtonProps = {
|
|
19
19
|
tab: CalculatorNav;
|
|
20
20
|
i: number;
|
|
21
21
|
activeSlideIndex: number;
|
|
22
|
-
onClick:
|
|
22
|
+
onClick: FuncReturnVoid<MouseEvent>;
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
const arrowBtnStyle =
|
|
@@ -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/model/IconVersion.ts
CHANGED
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 {
|
|
@@ -73,4 +73,4 @@ export interface DaDataAddress {
|
|
|
73
73
|
city?: string | null;
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
export type
|
|
76
|
+
export type FuncReturnVoid<Input = unknown> = (value: Input) => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { FuncReturnVoid } from '../../types';
|
|
2
2
|
|
|
3
3
|
export interface InputRangeProps {
|
|
4
4
|
className?: string;
|
|
@@ -8,5 +8,5 @@ export interface InputRangeProps {
|
|
|
8
8
|
step?: number;
|
|
9
9
|
value?: number;
|
|
10
10
|
title?: string;
|
|
11
|
-
onChange?:
|
|
11
|
+
onChange?: FuncReturnVoid<number>;
|
|
12
12
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Picture } from '../../model/Picture';
|
|
2
|
-
import {
|
|
2
|
+
import { FuncReturnVoid } from '../../types';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* @title Вкладка
|
|
@@ -12,7 +12,7 @@ export interface Tab {
|
|
|
12
12
|
icon?: Picture;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
export type TabClickHandler =
|
|
15
|
+
export type TabClickHandler = FuncReturnVoid<number>;
|
|
16
16
|
|
|
17
17
|
export interface TabsProps {
|
|
18
18
|
tabs?: Tab[];
|