@redneckz/wildless-cms-uni-blocks 0.14.152 → 0.14.154
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 +31 -12
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/TabsLayout/TabsLayoutRedirectSection.d.ts +6 -0
- package/bundle/components/TabsLayout/useScrollToTab.d.ts +2 -0
- package/bundle/icons/IconName.d.ts +2 -2
- package/cosmos-static/icons/HuaweiIcon.svg +1 -1
- package/cosmos-static/icons/sprites.svg +1 -1
- package/dist/components/TabsLayout/TabsLayout.js +5 -6
- package/dist/components/TabsLayout/TabsLayout.js.map +1 -1
- package/dist/components/TabsLayout/TabsLayoutRedirectSection.d.ts +6 -0
- package/dist/components/TabsLayout/TabsLayoutRedirectSection.js +27 -0
- package/dist/components/TabsLayout/TabsLayoutRedirectSection.js.map +1 -0
- package/dist/components/TabsLayout/useScrollToTab.d.ts +2 -0
- package/dist/components/TabsLayout/useScrollToTab.js +17 -0
- package/dist/components/TabsLayout/useScrollToTab.js.map +1 -0
- package/dist/icons/IconName.d.ts +2 -2
- package/dist/icons/IconName.js +2 -2
- package/dist/icons/IconName.js.map +1 -1
- package/lib/components/TabsLayout/TabsLayout.js +6 -7
- package/lib/components/TabsLayout/TabsLayout.js.map +1 -1
- package/lib/components/TabsLayout/TabsLayoutRedirectSection.d.ts +6 -0
- package/lib/components/TabsLayout/TabsLayoutRedirectSection.js +25 -0
- package/lib/components/TabsLayout/TabsLayoutRedirectSection.js.map +1 -0
- package/lib/components/TabsLayout/useScrollToTab.d.ts +2 -0
- package/lib/components/TabsLayout/useScrollToTab.js +14 -0
- package/lib/components/TabsLayout/useScrollToTab.js.map +1 -0
- package/lib/icons/IconName.d.ts +2 -2
- package/lib/icons/IconName.js +2 -2
- package/lib/icons/IconName.js.map +1 -1
- package/mobile/bundle/bundle.umd.js +31 -12
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/TabsLayout/TabsLayoutRedirectSection.d.ts +6 -0
- package/mobile/bundle/components/TabsLayout/useScrollToTab.d.ts +2 -0
- package/mobile/bundle/icons/IconName.d.ts +2 -2
- package/mobile/dist/components/TabsLayout/TabsLayout.js +5 -6
- package/mobile/dist/components/TabsLayout/TabsLayout.js.map +1 -1
- package/mobile/dist/components/TabsLayout/TabsLayoutRedirectSection.d.ts +6 -0
- package/mobile/dist/components/TabsLayout/TabsLayoutRedirectSection.js +27 -0
- package/mobile/dist/components/TabsLayout/TabsLayoutRedirectSection.js.map +1 -0
- package/mobile/dist/components/TabsLayout/useScrollToTab.d.ts +2 -0
- package/mobile/dist/components/TabsLayout/useScrollToTab.js +17 -0
- package/mobile/dist/components/TabsLayout/useScrollToTab.js.map +1 -0
- package/mobile/dist/icons/IconName.d.ts +2 -2
- package/mobile/dist/icons/IconName.js +2 -2
- package/mobile/dist/icons/IconName.js.map +1 -1
- package/mobile/lib/components/TabsLayout/TabsLayout.js +6 -7
- package/mobile/lib/components/TabsLayout/TabsLayout.js.map +1 -1
- package/mobile/lib/components/TabsLayout/TabsLayoutRedirectSection.d.ts +6 -0
- package/mobile/lib/components/TabsLayout/TabsLayoutRedirectSection.js +25 -0
- package/mobile/lib/components/TabsLayout/TabsLayoutRedirectSection.js.map +1 -0
- package/mobile/lib/components/TabsLayout/useScrollToTab.d.ts +2 -0
- package/mobile/lib/components/TabsLayout/useScrollToTab.js +14 -0
- package/mobile/lib/components/TabsLayout/useScrollToTab.js.map +1 -0
- package/mobile/lib/icons/IconName.d.ts +2 -2
- package/mobile/lib/icons/IconName.js +2 -2
- package/mobile/lib/icons/IconName.js.map +1 -1
- package/mobile/src/components/TabsLayout/TabsLayout.tsx +6 -7
- package/mobile/src/components/TabsLayout/TabsLayoutRedirectSection.tsx +32 -0
- package/mobile/src/components/TabsLayout/useScrollToTab.ts +16 -0
- package/mobile/src/icons/HuaweiIcon.svg +3 -1
- package/mobile/src/icons/IconName.ts +3 -3
- package/package.json +1 -1
- package/src/components/TabsLayout/TabsLayout.tsx +6 -7
- package/src/components/TabsLayout/TabsLayoutRedirectSection.tsx +32 -0
- package/src/components/TabsLayout/useScrollToTab.ts +16 -0
- package/src/icons/HuaweiIcon.svg +3 -1
- package/src/icons/IconName.ts +2 -3
- package/bundle/components/TabsLayout/TabsLayoutRedirectTab.d.ts +0 -6
- package/dist/components/TabsLayout/TabsLayoutRedirectTab.d.ts +0 -6
- package/dist/components/TabsLayout/TabsLayoutRedirectTab.js +0 -17
- package/dist/components/TabsLayout/TabsLayoutRedirectTab.js.map +0 -1
- package/lib/components/TabsLayout/TabsLayoutRedirectTab.d.ts +0 -6
- package/lib/components/TabsLayout/TabsLayoutRedirectTab.js +0 -15
- package/lib/components/TabsLayout/TabsLayoutRedirectTab.js.map +0 -1
- package/mobile/bundle/components/TabsLayout/TabsLayoutRedirectTab.d.ts +0 -6
- package/mobile/dist/components/TabsLayout/TabsLayoutRedirectTab.d.ts +0 -6
- package/mobile/dist/components/TabsLayout/TabsLayoutRedirectTab.js +0 -17
- package/mobile/dist/components/TabsLayout/TabsLayoutRedirectTab.js.map +0 -1
- package/mobile/lib/components/TabsLayout/TabsLayoutRedirectTab.d.ts +0 -6
- package/mobile/lib/components/TabsLayout/TabsLayoutRedirectTab.js +0 -15
- package/mobile/lib/components/TabsLayout/TabsLayoutRedirectTab.js.map +0 -1
- package/mobile/src/components/TabsLayout/TabsLayoutRedirectTab.tsx +0 -26
- package/src/components/TabsLayout/TabsLayoutRedirectTab.tsx +0 -26
|
@@ -159,7 +159,7 @@ export declare enum IconTitleMap {
|
|
|
159
159
|
HeartIcon = "\u0421\u0435\u0440\u0434\u0446\u0435",
|
|
160
160
|
HeartTickIcon = "\u0421\u0435\u0440\u0434\u0446\u0435\u0431\u0435\u0435\u043D\u0438\u0435",
|
|
161
161
|
HouseIcon = "\u0418\u043F\u043E\u0442\u0435\u043A\u0430",
|
|
162
|
-
HuaweiIcon = "\u041B\u043E\u0433\u043E
|
|
162
|
+
HuaweiIcon = "\u041B\u043E\u0433\u043E 'Huawei'",
|
|
163
163
|
LockIcon = "\u0417\u0430\u043C\u043E\u043A",
|
|
164
164
|
LogoIcon = "Logo",
|
|
165
165
|
LoupeIcon = "\u041B\u0443\u043F\u0430",
|
|
@@ -212,7 +212,7 @@ export declare enum IconTitleMap {
|
|
|
212
212
|
* @title Иконка
|
|
213
213
|
* @enumNames [
|
|
214
214
|
* "",
|
|
215
|
-
* 'Достижение', 'Деньги', 'Лого «Apple»', 'Стрелка \'Вниз\'', 'Стрелка сплошная \'Вниз\'', 'Стрелка \'Влево\'', 'Стрелка \'Вправо\'', 'Стрелка \'Вверх-право\'', 'Стрелка \'Вверх\'', 'Стрелка сплошная \'Вверх\'', 'Банкомат', 'Банк', 'Белорусский флаг', 'Портфель', 'Здание с деревом', 'Бургер', 'Скруглённый календарь', 'Календарь', 'Календарь с галочкой', 'Кред. карта', 'Кред. карта под наклоном', 'Карта', 'Кред. карта с галочкой', 'Инвестиции', 'Диаграмма (в круге)', 'Деньги внутри кошелька', 'Стрелка \'Влево\'', 'Клиент', 'Крестик', 'Монеты', 'Конвертирование', 'Копирование', 'Здание суда', 'Кубок', 'Разработка', 'Скидка', 'Скачать документ', 'Документ', 'Доллар', 'Зелёная \'галочка\' в круге', 'Зелёная \'галочка\'', 'Лого «Дзен»', 'Пустой кошелёк с возвратом', 'Пустой кошелёк', 'Евро', 'Факс', 'FullScreenIcon', 'Геолокация', 'Глобус', 'Gps', 'Сетка (белая)', 'HeadphonesIcon', 'Сердце', 'Сердцебеение', 'Ипотека', 'Лого
|
|
215
|
+
* 'Достижение', 'Деньги', 'Лого «Apple»', 'Стрелка \'Вниз\'', 'Стрелка сплошная \'Вниз\'', 'Стрелка \'Влево\'', 'Стрелка \'Вправо\'', 'Стрелка \'Вверх-право\'', 'Стрелка \'Вверх\'', 'Стрелка сплошная \'Вверх\'', 'Банкомат', 'Банк', 'Белорусский флаг', 'Портфель', 'Здание с деревом', 'Бургер', 'Скруглённый календарь', 'Календарь', 'Календарь с галочкой', 'Кред. карта', 'Кред. карта под наклоном', 'Карта', 'Кред. карта с галочкой', 'Инвестиции', 'Диаграмма (в круге)', 'Деньги внутри кошелька', 'Стрелка \'Влево\'', 'Клиент', 'Крестик', 'Монеты', 'Конвертирование', 'Копирование', 'Здание суда', 'Кубок', 'Разработка', 'Скидка', 'Скачать документ', 'Документ', 'Доллар', 'Зелёная \'галочка\' в круге', 'Зелёная \'галочка\'', 'Лого «Дзен»', 'Пустой кошелёк с возвратом', 'Пустой кошелёк', 'Евро', 'Факс', 'FullScreenIcon', 'Геолокация', 'Глобус', 'Gps', 'Сетка (белая)', 'HeadphonesIcon', 'Сердце', 'Сердцебеение', 'Ипотека', 'Лого \'Huawei\'', 'Замок', 'Logo', 'Лупа', 'MagnifierIcon', 'E-mail', 'Маркер карты', 'Маркер карты РСХБ', 'Иконка Развёрнутая карта', 'Минус', 'Деньги', 'Денежное страхование', 'Монитор и мобильный', 'Новый документ', 'Колокольчик нотификаций', 'Лого «Одноклассники»', 'Пачка бумаги А4', 'Бизнес', 'Проценты (круг.)', 'PercentIcon', 'Персональная карта', 'Звонящий телефон', 'Телефон', 'Лого «PlayMarket»', 'Плюс в круге', 'Плюс', 'Профиль, 2 персоны', 'Профиль', 'Ошибка', 'Ок', 'Рубль (круг.)', 'Лого «Rutube»', 'Сейф', 'Безопасность', 'Безопасность', 'Подписанные документы', 'Маленькие часы', 'Кольцо', 'Лого «Telegram»', 'Самолётик', 'Пользователь в рамке', 'Пользователь', 'Лого «VK»', 'Кошелёк с плюсом', 'Кошелёк', 'Кошелёк с деньгами', 'Лого «Youtube»'
|
|
216
216
|
* ]
|
|
217
217
|
*/
|
|
218
218
|
export declare type IconName = '' | 'AchievementIcon' | 'ActualBalanceIcon' | 'AppleIcon' | 'ArrowDownIcon' | 'ArrowDownSolidIcon' | 'ArrowLeftIcon' | 'ArrowRightIcon' | 'ArrowTopRightIcon' | 'ArrowUpIcon' | 'ArrowUpSolidIcon' | 'AtmIcon' | 'BankIcon' | 'BelarusianFlag' | 'BriefcaseIcon' | 'BuildingIcon' | 'BurgerIcon' | 'CalendarCircleIcon' | 'CalendarIcon' | 'CalendarTickIcon' | 'CardIcon' | 'CardPosIcon' | 'CardSendIcon' | 'CardTickIcon' | 'ChartIcon' | 'ChartRoundIcon' | 'ChartSquareIcon' | 'ChevronLeftIcon' | 'ClientIcon' | 'CloseIcon' | 'CoinIcon' | 'ConvertCardIcon' | 'CopyIcon' | 'CourtHouseIcon' | 'CupIcon' | 'DevIcon' | 'DiscountShapeIcon' | 'DocDownloadIcon' | 'DocIcon' | 'DollarIcon' | 'DoneIcon' | 'DoneSimpleIcon' | 'DzenIcon' | 'EmptyWalletChangeIcon' | 'EmptyWalletIcon' | 'EuroIcon' | 'FaxIcon' | 'FullScreenIcon' | 'GeolocationIcon' | 'GlobalIcon' | 'GpsIcon' | 'GridIcon' | 'HeadphonesIcon' | 'HeartIcon' | 'HeartTickIcon' | 'HouseIcon' | 'HuaweiIcon' | 'LockIcon' | 'LogoIcon' | 'LoupeIcon' | 'MagnifierIcon' | 'MailIcon' | 'MapMarkerClusterIcon' | 'MapMarkerSingleIcon' | 'MapOpenedIcon' | 'MinusIcon' | 'MoneyIcon' | 'MoneyInsuranceIcon' | 'MonitorMobileIcon' | 'NewDocIcon' | 'NotificationBingIcon' | 'OkIcon' | 'PackA4Icon' | 'PassSendIcon' | 'PercentageRoundIcon' | 'PercentIcon' | 'PersonalCardIcon' | 'PhoneCallingIcon' | 'PhoneIcon' | 'PlayMarketIcon' | 'PlusCircleIcon' | 'PlusIcon' | 'Profile2UserIcon' | 'ProfileIcon' | 'ResponseFailIcon' | 'ResponseOKIcon' | 'RoundRubleIcon' | 'RutubeIcon' | 'SafeIcon' | 'SecurityСardIcon' | 'ShieldTickIcon' | 'SignDocsIcon' | 'SmallClockIcon' | 'SoundIcon' | 'TelegramIcon' | 'UserGeoLocationIcon' | 'UserSquareIcon' | 'UserTickIcon' | 'VKIcon' | 'WalletAddIcon' | 'WalletIcon' | 'WalletWithMoneyIcon' | 'YoutubeIcon';
|
|
@@ -12,20 +12,19 @@ const style_1 = require("../../utils/style");
|
|
|
12
12
|
const CarouselScrollButtons_1 = require("../Carousel/CarouselScrollButtons");
|
|
13
13
|
const alignTabStyle_1 = require("./alignTabStyle");
|
|
14
14
|
const TabsLayoutButton_1 = require("./TabsLayoutButton");
|
|
15
|
-
const
|
|
15
|
+
const TabsLayoutRedirectSection_1 = require("./TabsLayoutRedirectSection");
|
|
16
|
+
const useScrollToTab_1 = require("./useScrollToTab");
|
|
16
17
|
exports.TabsLayout = (0, uni_jsx_1.JSX)(({ className = '', tabs = [], block, tabAlign, ...rest }) => {
|
|
17
18
|
const [activeTabIndex, setActiveTabIndex] = (0, hooks_1.useState)(getInitSelectedIndex(tabs));
|
|
18
19
|
const slotName = getSlotName(tabs[activeTabIndex], activeTabIndex);
|
|
19
20
|
const itemCount = tabs.length;
|
|
20
21
|
const [activeSlideIndex, { inc: incActiveSlideIndex, dec: decActiveSlideIndex }] = (0, useCarouselControls_1.useCarouselControls)({ itemCount }, activeTabIndex);
|
|
21
22
|
const [containerRef, scroll] = (0, useSwipeListScroll_1.useSwipeListScroll)({ itemCount });
|
|
22
|
-
(0,
|
|
23
|
-
|
|
24
|
-
}, []);
|
|
25
|
-
return ((0, jsx_runtime_1.jsxs)(BlockWrapper_1.BlockWrapper, { className: (0, style_1.style)(className), defaultPadding: "p-0", ...rest, children: [(0, jsx_runtime_1.jsxs)("div", { className: "relative border-b-8 border-primary-main", children: [(0, jsx_runtime_1.jsx)(SwipeListContainer_1.SwipeListContainer, { itemClassName: "flex", containerRef: containerRef, snapAlign: "snap-end", gap: 8, onVisibleIndicesChange: scroll.handleVisibleIndicesChange, children: tabs.map(renderTabButton(activeTabIndex, setActiveTabIndex, tabAlign)) }), (0, jsx_runtime_1.jsx)(CarouselScrollButtons_1.CarouselScrollButtons, { scroll: scroll, arrowsPadded: true, onScrollLeft: decActiveSlideIndex, onScrollRight: incActiveSlideIndex, activeIndex: activeSlideIndex, itemCount: itemCount })] }), (0, jsx_runtime_1.jsx)("div", { className: "space-y-px @5xl:space-y-0 @5xl:grid @5xl:grid-cols-12 @5xl:gap-2xs", children: tabs[activeTabIndex]?.href ? ((0, jsx_runtime_1.jsx)(TabsLayoutRedirectTab_1.TabsLayoutRedirectTab, { tab: tabs[activeTabIndex] })) : ((0, renderBlockList_1.renderBlocksList)(block?.slots?.[slotName], { ...rest?.options, slotName })) })] }));
|
|
23
|
+
(0, useScrollToTab_1.useScrollToTab)(activeTabIndex, scroll);
|
|
24
|
+
return ((0, jsx_runtime_1.jsxs)(BlockWrapper_1.BlockWrapper, { className: (0, style_1.style)(className), defaultPadding: "p-0", ...rest, children: [(0, jsx_runtime_1.jsxs)("div", { className: "relative border-b-8 border-primary-main", children: [(0, jsx_runtime_1.jsx)(SwipeListContainer_1.SwipeListContainer, { itemClassName: "flex", containerRef: containerRef, snapAlign: "snap-end", gap: 8, onVisibleIndicesChange: scroll.handleVisibleIndicesChange, children: tabs.map(renderTabButton(activeTabIndex, setActiveTabIndex, tabAlign)) }), (0, jsx_runtime_1.jsx)(CarouselScrollButtons_1.CarouselScrollButtons, { scroll: scroll, arrowsPadded: true, onScrollLeft: decActiveSlideIndex, onScrollRight: incActiveSlideIndex, activeIndex: activeSlideIndex, itemCount: itemCount })] }), (0, jsx_runtime_1.jsx)("div", { className: "space-y-px @5xl:space-y-0 @5xl:grid @5xl:grid-cols-12 @5xl:gap-2xs", children: tabs[activeTabIndex]?.href ? ((0, jsx_runtime_1.jsx)(TabsLayoutRedirectSection_1.TabsLayoutRedirectSection, { tab: tabs[activeTabIndex] })) : ((0, renderBlockList_1.renderBlocksList)(block?.slots?.[slotName], { ...rest?.options, slotName })) })] }));
|
|
26
25
|
});
|
|
27
26
|
exports.TabsLayout.slots = ({ tabs }) => tabs?.filter((_) => !_.href).map(getSlotName) || [];
|
|
28
|
-
exports.TabsLayout.childrenTypes = { exclude: ['TabsLayout'] };
|
|
27
|
+
exports.TabsLayout.childrenTypes = { exclude: ['TabsLayout'] }; //TODO: fix this on wcms
|
|
29
28
|
const getSlotName = (tab, index) => tab?.title || `Слот №${index}`;
|
|
30
29
|
const getInitSelectedIndex = (tabs) => tabs.reduce((selectedIndex, tab, i) => (tab.selected ? i : selectedIndex), 0);
|
|
31
30
|
const renderTabButton = (activeTabIndex, onClick, tabAlign = 'start') => (tab, i) => ((0, jsx_runtime_1.jsx)(TabsLayoutButton_1.TabsLayoutButton, { className: alignTabStyle_1.alignTabStyle[tabAlign], tab: tab, isActive: activeTabIndex === i, onClick: () => onClick(i) }, String(i)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabsLayout.js","sourceRoot":"","sources":["../../../src/components/TabsLayout/TabsLayout.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,
|
|
1
|
+
{"version":3,"file":"TabsLayout.js","sourceRoot":"","sources":["../../../src/components/TabsLayout/TabsLayout.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
exports.TabsLayoutRedirectSection = void 0;
|
|
3
|
+
const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
|
|
4
|
+
const uni_jsx_1 = require("@redneckz/uni-jsx");
|
|
5
|
+
const useDebouncedEffect_1 = require("@redneckz/uni-jsx/lib/hooks/useDebouncedEffect");
|
|
6
|
+
const useLink_1 = require("../../hooks/useLink");
|
|
7
|
+
const Shimmer_1 = require("../../ui-kit/Shimmer/Shimmer");
|
|
8
|
+
const url_1 = require("../../utils/url");
|
|
9
|
+
const REDIRECT_DELAY = 0.8 * 1000;
|
|
10
|
+
exports.TabsLayoutRedirectSection = (0, uni_jsx_1.JSX)(({ tab }) => {
|
|
11
|
+
const link = (0, useLink_1.useLink)();
|
|
12
|
+
const { onClick } = link({
|
|
13
|
+
...tab,
|
|
14
|
+
onClick: () => {
|
|
15
|
+
/**
|
|
16
|
+
* In the current implementation of useLink, there is no follow-by-link method,
|
|
17
|
+
* and default routing won't work if the link is external.
|
|
18
|
+
*/
|
|
19
|
+
if (tab.href && !(0, url_1.isLocalURL)(tab.href)) {
|
|
20
|
+
globalThis.location.href = tab.href;
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
(0, useDebouncedEffect_1.useDebouncedEffect)(onClick, [], REDIRECT_DELAY);
|
|
25
|
+
return (0, jsx_runtime_1.jsx)(Shimmer_1.Shimmer, { className: "col-span-12 p-xl", size: 5 });
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=TabsLayoutRedirectSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabsLayoutRedirectSection.js","sourceRoot":"","sources":["../../../src/components/TabsLayout/TabsLayoutRedirectSection.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,uFAAoF;AACpF,iDAA8C;AAC9C,0DAAuD;AACvD,yCAA6C;AAG7C,MAAM,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC;AAMrB,QAAA,yBAAyB,GAAG,IAAA,aAAG,EAAiC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IACvF,MAAM,IAAI,GAAG,IAAA,iBAAO,GAAE,CAAC;IACvB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACvB,GAAG,GAAG;QACN,OAAO,EAAE,GAAG,EAAE;YACZ;;;eAGG;YACH,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,IAAA,gBAAU,EAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACrC,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;aACrC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,IAAA,uCAAkB,EAAC,OAAO,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;IAEhD,OAAO,uBAAC,iBAAO,IAAC,SAAS,EAAC,kBAAkB,EAAC,IAAI,EAAE,CAAC,GAAI,CAAC;AAC3D,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
exports.useScrollToTab = void 0;
|
|
3
|
+
const hooks_1 = require("@redneckz/uni-jsx/lib/hooks");
|
|
4
|
+
const useBool_1 = require("@redneckz/uni-jsx/lib/hooks/useBool");
|
|
5
|
+
const useScrollToTab = (activeTabIndex, scroll) => {
|
|
6
|
+
const [initState, { setTrue: setInitStateTrue }] = (0, useBool_1.useBool)(false);
|
|
7
|
+
(0, hooks_1.useEffect)(() => {
|
|
8
|
+
scroll.scrollTo(activeTabIndex, {
|
|
9
|
+
behavior: initState ? 'smooth' : 'auto',
|
|
10
|
+
block: 'nearest',
|
|
11
|
+
inline: 'center',
|
|
12
|
+
});
|
|
13
|
+
!initState && setInitStateTrue();
|
|
14
|
+
}, [activeTabIndex, initState]);
|
|
15
|
+
};
|
|
16
|
+
exports.useScrollToTab = useScrollToTab;
|
|
17
|
+
//# sourceMappingURL=useScrollToTab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useScrollToTab.js","sourceRoot":"","sources":["../../../src/components/TabsLayout/useScrollToTab.ts"],"names":[],"mappings":";;AAAA,uDAAwD;AACxD,iEAA8D;AAGvD,MAAM,cAAc,GAAG,CAAC,cAAsB,EAAE,MAAuB,EAAE,EAAE;IAChF,MAAM,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,GAAG,IAAA,iBAAO,EAAC,KAAK,CAAC,CAAC;IAElE,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE;YAC9B,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;YACvC,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;QACH,CAAC,SAAS,IAAI,gBAAgB,EAAE,CAAC;IACnC,CAAC,EAAE,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC;AAXW,QAAA,cAAc,kBAWzB"}
|
|
@@ -159,7 +159,7 @@ export declare enum IconTitleMap {
|
|
|
159
159
|
HeartIcon = "\u0421\u0435\u0440\u0434\u0446\u0435",
|
|
160
160
|
HeartTickIcon = "\u0421\u0435\u0440\u0434\u0446\u0435\u0431\u0435\u0435\u043D\u0438\u0435",
|
|
161
161
|
HouseIcon = "\u0418\u043F\u043E\u0442\u0435\u043A\u0430",
|
|
162
|
-
HuaweiIcon = "\u041B\u043E\u0433\u043E
|
|
162
|
+
HuaweiIcon = "\u041B\u043E\u0433\u043E 'Huawei'",
|
|
163
163
|
LockIcon = "\u0417\u0430\u043C\u043E\u043A",
|
|
164
164
|
LogoIcon = "Logo",
|
|
165
165
|
LoupeIcon = "\u041B\u0443\u043F\u0430",
|
|
@@ -212,7 +212,7 @@ export declare enum IconTitleMap {
|
|
|
212
212
|
* @title Иконка
|
|
213
213
|
* @enumNames [
|
|
214
214
|
* "",
|
|
215
|
-
* 'Достижение', 'Деньги', 'Лого «Apple»', 'Стрелка \'Вниз\'', 'Стрелка сплошная \'Вниз\'', 'Стрелка \'Влево\'', 'Стрелка \'Вправо\'', 'Стрелка \'Вверх-право\'', 'Стрелка \'Вверх\'', 'Стрелка сплошная \'Вверх\'', 'Банкомат', 'Банк', 'Белорусский флаг', 'Портфель', 'Здание с деревом', 'Бургер', 'Скруглённый календарь', 'Календарь', 'Календарь с галочкой', 'Кред. карта', 'Кред. карта под наклоном', 'Карта', 'Кред. карта с галочкой', 'Инвестиции', 'Диаграмма (в круге)', 'Деньги внутри кошелька', 'Стрелка \'Влево\'', 'Клиент', 'Крестик', 'Монеты', 'Конвертирование', 'Копирование', 'Здание суда', 'Кубок', 'Разработка', 'Скидка', 'Скачать документ', 'Документ', 'Доллар', 'Зелёная \'галочка\' в круге', 'Зелёная \'галочка\'', 'Лого «Дзен»', 'Пустой кошелёк с возвратом', 'Пустой кошелёк', 'Евро', 'Факс', 'FullScreenIcon', 'Геолокация', 'Глобус', 'Gps', 'Сетка (белая)', 'HeadphonesIcon', 'Сердце', 'Сердцебеение', 'Ипотека', 'Лого
|
|
215
|
+
* 'Достижение', 'Деньги', 'Лого «Apple»', 'Стрелка \'Вниз\'', 'Стрелка сплошная \'Вниз\'', 'Стрелка \'Влево\'', 'Стрелка \'Вправо\'', 'Стрелка \'Вверх-право\'', 'Стрелка \'Вверх\'', 'Стрелка сплошная \'Вверх\'', 'Банкомат', 'Банк', 'Белорусский флаг', 'Портфель', 'Здание с деревом', 'Бургер', 'Скруглённый календарь', 'Календарь', 'Календарь с галочкой', 'Кред. карта', 'Кред. карта под наклоном', 'Карта', 'Кред. карта с галочкой', 'Инвестиции', 'Диаграмма (в круге)', 'Деньги внутри кошелька', 'Стрелка \'Влево\'', 'Клиент', 'Крестик', 'Монеты', 'Конвертирование', 'Копирование', 'Здание суда', 'Кубок', 'Разработка', 'Скидка', 'Скачать документ', 'Документ', 'Доллар', 'Зелёная \'галочка\' в круге', 'Зелёная \'галочка\'', 'Лого «Дзен»', 'Пустой кошелёк с возвратом', 'Пустой кошелёк', 'Евро', 'Факс', 'FullScreenIcon', 'Геолокация', 'Глобус', 'Gps', 'Сетка (белая)', 'HeadphonesIcon', 'Сердце', 'Сердцебеение', 'Ипотека', 'Лого \'Huawei\'', 'Замок', 'Logo', 'Лупа', 'MagnifierIcon', 'E-mail', 'Маркер карты', 'Маркер карты РСХБ', 'Иконка Развёрнутая карта', 'Минус', 'Деньги', 'Денежное страхование', 'Монитор и мобильный', 'Новый документ', 'Колокольчик нотификаций', 'Лого «Одноклассники»', 'Пачка бумаги А4', 'Бизнес', 'Проценты (круг.)', 'PercentIcon', 'Персональная карта', 'Звонящий телефон', 'Телефон', 'Лого «PlayMarket»', 'Плюс в круге', 'Плюс', 'Профиль, 2 персоны', 'Профиль', 'Ошибка', 'Ок', 'Рубль (круг.)', 'Лого «Rutube»', 'Сейф', 'Безопасность', 'Безопасность', 'Подписанные документы', 'Маленькие часы', 'Кольцо', 'Лого «Telegram»', 'Самолётик', 'Пользователь в рамке', 'Пользователь', 'Лого «VK»', 'Кошелёк с плюсом', 'Кошелёк', 'Кошелёк с деньгами', 'Лого «Youtube»'
|
|
216
216
|
* ]
|
|
217
217
|
*/
|
|
218
218
|
export declare type IconName = '' | 'AchievementIcon' | 'ActualBalanceIcon' | 'AppleIcon' | 'ArrowDownIcon' | 'ArrowDownSolidIcon' | 'ArrowLeftIcon' | 'ArrowRightIcon' | 'ArrowTopRightIcon' | 'ArrowUpIcon' | 'ArrowUpSolidIcon' | 'AtmIcon' | 'BankIcon' | 'BelarusianFlag' | 'BriefcaseIcon' | 'BuildingIcon' | 'BurgerIcon' | 'CalendarCircleIcon' | 'CalendarIcon' | 'CalendarTickIcon' | 'CardIcon' | 'CardPosIcon' | 'CardSendIcon' | 'CardTickIcon' | 'ChartIcon' | 'ChartRoundIcon' | 'ChartSquareIcon' | 'ChevronLeftIcon' | 'ClientIcon' | 'CloseIcon' | 'CoinIcon' | 'ConvertCardIcon' | 'CopyIcon' | 'CourtHouseIcon' | 'CupIcon' | 'DevIcon' | 'DiscountShapeIcon' | 'DocDownloadIcon' | 'DocIcon' | 'DollarIcon' | 'DoneIcon' | 'DoneSimpleIcon' | 'DzenIcon' | 'EmptyWalletChangeIcon' | 'EmptyWalletIcon' | 'EuroIcon' | 'FaxIcon' | 'FullScreenIcon' | 'GeolocationIcon' | 'GlobalIcon' | 'GpsIcon' | 'GridIcon' | 'HeadphonesIcon' | 'HeartIcon' | 'HeartTickIcon' | 'HouseIcon' | 'HuaweiIcon' | 'LockIcon' | 'LogoIcon' | 'LoupeIcon' | 'MagnifierIcon' | 'MailIcon' | 'MapMarkerClusterIcon' | 'MapMarkerSingleIcon' | 'MapOpenedIcon' | 'MinusIcon' | 'MoneyIcon' | 'MoneyInsuranceIcon' | 'MonitorMobileIcon' | 'NewDocIcon' | 'NotificationBingIcon' | 'OkIcon' | 'PackA4Icon' | 'PassSendIcon' | 'PercentageRoundIcon' | 'PercentIcon' | 'PersonalCardIcon' | 'PhoneCallingIcon' | 'PhoneIcon' | 'PlayMarketIcon' | 'PlusCircleIcon' | 'PlusIcon' | 'Profile2UserIcon' | 'ProfileIcon' | 'ResponseFailIcon' | 'ResponseOKIcon' | 'RoundRubleIcon' | 'RutubeIcon' | 'SafeIcon' | 'SecurityСardIcon' | 'ShieldTickIcon' | 'SignDocsIcon' | 'SmallClockIcon' | 'SoundIcon' | 'TelegramIcon' | 'UserGeoLocationIcon' | 'UserSquareIcon' | 'UserTickIcon' | 'VKIcon' | 'WalletAddIcon' | 'WalletIcon' | 'WalletWithMoneyIcon' | 'YoutubeIcon';
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.IconTitleMap = exports.IconMap = exports.IconsWithoutInversion = void 0;
|
|
5
5
|
exports.IconsWithoutInversion = new Set([
|
|
6
|
-
'ActualBalanceIcon', 'BelarusianFlag', 'ChartIcon', 'ChevronLeftIcon', 'ClientIcon', 'DollarIcon', 'DoneIcon', 'EuroIcon', 'FullScreenIcon', 'HeadphonesIcon', 'HeartIcon', 'HouseIcon', '
|
|
6
|
+
'ActualBalanceIcon', 'BelarusianFlag', 'ChartIcon', 'ChevronLeftIcon', 'ClientIcon', 'DollarIcon', 'DoneIcon', 'EuroIcon', 'FullScreenIcon', 'HeadphonesIcon', 'HeartIcon', 'HouseIcon', 'MagnifierIcon', 'MapMarkerClusterIcon', 'MapMarkerSingleIcon', 'MapOpenedIcon', 'MoneyInsuranceIcon', 'NewDocIcon', 'PackA4Icon', 'PassSendIcon', 'PercentIcon', 'ResponseFailIcon', 'ResponseOKIcon', 'SignDocsIcon', 'SoundIcon'
|
|
7
7
|
]);
|
|
8
8
|
var IconMap;
|
|
9
9
|
(function (IconMap) {
|
|
@@ -167,7 +167,7 @@ var IconTitleMap;
|
|
|
167
167
|
IconTitleMap["HeartIcon"] = "\u0421\u0435\u0440\u0434\u0446\u0435";
|
|
168
168
|
IconTitleMap["HeartTickIcon"] = "\u0421\u0435\u0440\u0434\u0446\u0435\u0431\u0435\u0435\u043D\u0438\u0435";
|
|
169
169
|
IconTitleMap["HouseIcon"] = "\u0418\u043F\u043E\u0442\u0435\u043A\u0430";
|
|
170
|
-
IconTitleMap["HuaweiIcon"] = "\u041B\u043E\u0433\u043E
|
|
170
|
+
IconTitleMap["HuaweiIcon"] = "\u041B\u043E\u0433\u043E 'Huawei'";
|
|
171
171
|
IconTitleMap["LockIcon"] = "\u0417\u0430\u043C\u043E\u043A";
|
|
172
172
|
IconTitleMap["LogoIcon"] = "Logo";
|
|
173
173
|
IconTitleMap["LoupeIcon"] = "\u041B\u0443\u043F\u0430";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconName.js","sourceRoot":"","sources":["../../src/icons/IconName.ts"],"names":[],"mappings":"AACA,0BAA0B;AAC1B,uCAAuC;;;AAE1B,QAAA,qBAAqB,GAAG,IAAI,GAAG,CAAC;IAC3C,mBAAmB,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"IconName.js","sourceRoot":"","sources":["../../src/icons/IconName.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
|
|
2
2
|
import { JSX } from '@redneckz/uni-jsx';
|
|
3
|
-
import {
|
|
3
|
+
import { useState } from '@redneckz/uni-jsx/lib/hooks';
|
|
4
4
|
import { renderBlocksList } from '../../BlockRenderer/renderBlockList.js';
|
|
5
5
|
import { useCarouselControls } from '../../hooks/useCarouselControls.js';
|
|
6
6
|
import { BlockWrapper } from '../../ui-kit/BlockWrapper.js';
|
|
@@ -10,20 +10,19 @@ import { style } from '../../utils/style.js';
|
|
|
10
10
|
import { CarouselScrollButtons } from '../Carousel/CarouselScrollButtons.js';
|
|
11
11
|
import { alignTabStyle } from './alignTabStyle.js';
|
|
12
12
|
import { TabsLayoutButton } from './TabsLayoutButton.js';
|
|
13
|
-
import {
|
|
13
|
+
import { TabsLayoutRedirectSection } from './TabsLayoutRedirectSection.js';
|
|
14
|
+
import { useScrollToTab } from './useScrollToTab.js';
|
|
14
15
|
export const TabsLayout = JSX(({ className = '', tabs = [], block, tabAlign, ...rest }) => {
|
|
15
16
|
const [activeTabIndex, setActiveTabIndex] = useState(getInitSelectedIndex(tabs));
|
|
16
17
|
const slotName = getSlotName(tabs[activeTabIndex], activeTabIndex);
|
|
17
18
|
const itemCount = tabs.length;
|
|
18
19
|
const [activeSlideIndex, { inc: incActiveSlideIndex, dec: decActiveSlideIndex }] = useCarouselControls({ itemCount }, activeTabIndex);
|
|
19
20
|
const [containerRef, scroll] = useSwipeListScroll({ itemCount });
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}, []);
|
|
23
|
-
return (_jsxs(BlockWrapper, { className: style(className), defaultPadding: "p-0", ...rest, children: [_jsxs("div", { className: "relative border-b-8 border-primary-main", children: [_jsx(SwipeListContainer, { itemClassName: "flex", containerRef: containerRef, snapAlign: "snap-end", gap: 8, onVisibleIndicesChange: scroll.handleVisibleIndicesChange, children: tabs.map(renderTabButton(activeTabIndex, setActiveTabIndex, tabAlign)) }), _jsx(CarouselScrollButtons, { scroll: scroll, arrowsPadded: true, onScrollLeft: decActiveSlideIndex, onScrollRight: incActiveSlideIndex, activeIndex: activeSlideIndex, itemCount: itemCount })] }), _jsx("div", { className: "space-y-px @5xl:space-y-0 @5xl:grid @5xl:grid-cols-12 @5xl:gap-2xs", children: tabs[activeTabIndex]?.href ? (_jsx(TabsLayoutRedirectTab, { tab: tabs[activeTabIndex] })) : (renderBlocksList(block?.slots?.[slotName], { ...rest?.options, slotName })) })] }));
|
|
21
|
+
useScrollToTab(activeTabIndex, scroll);
|
|
22
|
+
return (_jsxs(BlockWrapper, { className: style(className), defaultPadding: "p-0", ...rest, children: [_jsxs("div", { className: "relative border-b-8 border-primary-main", children: [_jsx(SwipeListContainer, { itemClassName: "flex", containerRef: containerRef, snapAlign: "snap-end", gap: 8, onVisibleIndicesChange: scroll.handleVisibleIndicesChange, children: tabs.map(renderTabButton(activeTabIndex, setActiveTabIndex, tabAlign)) }), _jsx(CarouselScrollButtons, { scroll: scroll, arrowsPadded: true, onScrollLeft: decActiveSlideIndex, onScrollRight: incActiveSlideIndex, activeIndex: activeSlideIndex, itemCount: itemCount })] }), _jsx("div", { className: "space-y-px @5xl:space-y-0 @5xl:grid @5xl:grid-cols-12 @5xl:gap-2xs", children: tabs[activeTabIndex]?.href ? (_jsx(TabsLayoutRedirectSection, { tab: tabs[activeTabIndex] })) : (renderBlocksList(block?.slots?.[slotName], { ...rest?.options, slotName })) })] }));
|
|
24
23
|
});
|
|
25
24
|
TabsLayout.slots = ({ tabs }) => tabs?.filter((_) => !_.href).map(getSlotName) || [];
|
|
26
|
-
TabsLayout.childrenTypes = { exclude: ['TabsLayout'] };
|
|
25
|
+
TabsLayout.childrenTypes = { exclude: ['TabsLayout'] }; //TODO: fix this on wcms
|
|
27
26
|
const getSlotName = (tab, index) => tab?.title || `Слот №${index}`;
|
|
28
27
|
const getInitSelectedIndex = (tabs) => tabs.reduce((selectedIndex, tab, i) => (tab.selected ? i : selectedIndex), 0);
|
|
29
28
|
const renderTabButton = (activeTabIndex, onClick, tabAlign = 'start') => (tab, i) => (_jsx(TabsLayoutButton, { className: alignTabStyle[tabAlign], tab: tab, isActive: activeTabIndex === i, onClick: () => onClick(i) }, String(i)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabsLayout.js","sourceRoot":"","sources":["../../../src/components/TabsLayout/TabsLayout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"TabsLayout.js","sourceRoot":"","sources":["../../../src/components/TabsLayout/TabsLayout.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
|
|
2
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
3
|
+
import { useDebouncedEffect } from '@redneckz/uni-jsx/lib/hooks/useDebouncedEffect';
|
|
4
|
+
import { useLink } from '../../hooks/useLink.js';
|
|
5
|
+
import { Shimmer } from '../../ui-kit/Shimmer/Shimmer.js';
|
|
6
|
+
import { isLocalURL } from '../../utils/url.js';
|
|
7
|
+
const REDIRECT_DELAY = 0.8 * 1000;
|
|
8
|
+
export const TabsLayoutRedirectSection = JSX(({ tab }) => {
|
|
9
|
+
const link = useLink();
|
|
10
|
+
const { onClick } = link({
|
|
11
|
+
...tab,
|
|
12
|
+
onClick: () => {
|
|
13
|
+
/**
|
|
14
|
+
* In the current implementation of useLink, there is no follow-by-link method,
|
|
15
|
+
* and default routing won't work if the link is external.
|
|
16
|
+
*/
|
|
17
|
+
if (tab.href && !isLocalURL(tab.href)) {
|
|
18
|
+
globalThis.location.href = tab.href;
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
useDebouncedEffect(onClick, [], REDIRECT_DELAY);
|
|
23
|
+
return _jsx(Shimmer, { className: "col-span-12 p-xl", size: 5 });
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=TabsLayoutRedirectSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabsLayoutRedirectSection.js","sourceRoot":"","sources":["../../../src/components/TabsLayout/TabsLayoutRedirectSection.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,MAAM,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC;AAMlC,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAiC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IACvF,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACvB,GAAG,GAAG;QACN,OAAO,EAAE,GAAG,EAAE;YACZ;;;eAGG;YACH,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACrC,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;aACrC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;IAEhD,OAAO,KAAC,OAAO,IAAC,SAAS,EAAC,kBAAkB,EAAC,IAAI,EAAE,CAAC,GAAI,CAAC;AAC3D,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useEffect } from '@redneckz/uni-jsx/lib/hooks';
|
|
2
|
+
import { useBool } from '@redneckz/uni-jsx/lib/hooks/useBool';
|
|
3
|
+
export const useScrollToTab = (activeTabIndex, scroll) => {
|
|
4
|
+
const [initState, { setTrue: setInitStateTrue }] = useBool(false);
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
scroll.scrollTo(activeTabIndex, {
|
|
7
|
+
behavior: initState ? 'smooth' : 'auto',
|
|
8
|
+
block: 'nearest',
|
|
9
|
+
inline: 'center',
|
|
10
|
+
});
|
|
11
|
+
!initState && setInitStateTrue();
|
|
12
|
+
}, [activeTabIndex, initState]);
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=useScrollToTab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useScrollToTab.js","sourceRoot":"","sources":["../../../src/components/TabsLayout/useScrollToTab.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAG9D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,cAAsB,EAAE,MAAuB,EAAE,EAAE;IAChF,MAAM,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAElE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE;YAC9B,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;YACvC,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;QACH,CAAC,SAAS,IAAI,gBAAgB,EAAE,CAAC;IACnC,CAAC,EAAE,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC"}
|
|
@@ -159,7 +159,7 @@ export declare enum IconTitleMap {
|
|
|
159
159
|
HeartIcon = "\u0421\u0435\u0440\u0434\u0446\u0435",
|
|
160
160
|
HeartTickIcon = "\u0421\u0435\u0440\u0434\u0446\u0435\u0431\u0435\u0435\u043D\u0438\u0435",
|
|
161
161
|
HouseIcon = "\u0418\u043F\u043E\u0442\u0435\u043A\u0430",
|
|
162
|
-
HuaweiIcon = "\u041B\u043E\u0433\u043E
|
|
162
|
+
HuaweiIcon = "\u041B\u043E\u0433\u043E 'Huawei'",
|
|
163
163
|
LockIcon = "\u0417\u0430\u043C\u043E\u043A",
|
|
164
164
|
LogoIcon = "Logo",
|
|
165
165
|
LoupeIcon = "\u041B\u0443\u043F\u0430",
|
|
@@ -212,7 +212,7 @@ export declare enum IconTitleMap {
|
|
|
212
212
|
* @title Иконка
|
|
213
213
|
* @enumNames [
|
|
214
214
|
* "",
|
|
215
|
-
* 'Достижение', 'Деньги', 'Лого «Apple»', 'Стрелка \'Вниз\'', 'Стрелка сплошная \'Вниз\'', 'Стрелка \'Влево\'', 'Стрелка \'Вправо\'', 'Стрелка \'Вверх-право\'', 'Стрелка \'Вверх\'', 'Стрелка сплошная \'Вверх\'', 'Банкомат', 'Банк', 'Белорусский флаг', 'Портфель', 'Здание с деревом', 'Бургер', 'Скруглённый календарь', 'Календарь', 'Календарь с галочкой', 'Кред. карта', 'Кред. карта под наклоном', 'Карта', 'Кред. карта с галочкой', 'Инвестиции', 'Диаграмма (в круге)', 'Деньги внутри кошелька', 'Стрелка \'Влево\'', 'Клиент', 'Крестик', 'Монеты', 'Конвертирование', 'Копирование', 'Здание суда', 'Кубок', 'Разработка', 'Скидка', 'Скачать документ', 'Документ', 'Доллар', 'Зелёная \'галочка\' в круге', 'Зелёная \'галочка\'', 'Лого «Дзен»', 'Пустой кошелёк с возвратом', 'Пустой кошелёк', 'Евро', 'Факс', 'FullScreenIcon', 'Геолокация', 'Глобус', 'Gps', 'Сетка (белая)', 'HeadphonesIcon', 'Сердце', 'Сердцебеение', 'Ипотека', 'Лого
|
|
215
|
+
* 'Достижение', 'Деньги', 'Лого «Apple»', 'Стрелка \'Вниз\'', 'Стрелка сплошная \'Вниз\'', 'Стрелка \'Влево\'', 'Стрелка \'Вправо\'', 'Стрелка \'Вверх-право\'', 'Стрелка \'Вверх\'', 'Стрелка сплошная \'Вверх\'', 'Банкомат', 'Банк', 'Белорусский флаг', 'Портфель', 'Здание с деревом', 'Бургер', 'Скруглённый календарь', 'Календарь', 'Календарь с галочкой', 'Кред. карта', 'Кред. карта под наклоном', 'Карта', 'Кред. карта с галочкой', 'Инвестиции', 'Диаграмма (в круге)', 'Деньги внутри кошелька', 'Стрелка \'Влево\'', 'Клиент', 'Крестик', 'Монеты', 'Конвертирование', 'Копирование', 'Здание суда', 'Кубок', 'Разработка', 'Скидка', 'Скачать документ', 'Документ', 'Доллар', 'Зелёная \'галочка\' в круге', 'Зелёная \'галочка\'', 'Лого «Дзен»', 'Пустой кошелёк с возвратом', 'Пустой кошелёк', 'Евро', 'Факс', 'FullScreenIcon', 'Геолокация', 'Глобус', 'Gps', 'Сетка (белая)', 'HeadphonesIcon', 'Сердце', 'Сердцебеение', 'Ипотека', 'Лого \'Huawei\'', 'Замок', 'Logo', 'Лупа', 'MagnifierIcon', 'E-mail', 'Маркер карты', 'Маркер карты РСХБ', 'Иконка Развёрнутая карта', 'Минус', 'Деньги', 'Денежное страхование', 'Монитор и мобильный', 'Новый документ', 'Колокольчик нотификаций', 'Лого «Одноклассники»', 'Пачка бумаги А4', 'Бизнес', 'Проценты (круг.)', 'PercentIcon', 'Персональная карта', 'Звонящий телефон', 'Телефон', 'Лого «PlayMarket»', 'Плюс в круге', 'Плюс', 'Профиль, 2 персоны', 'Профиль', 'Ошибка', 'Ок', 'Рубль (круг.)', 'Лого «Rutube»', 'Сейф', 'Безопасность', 'Безопасность', 'Подписанные документы', 'Маленькие часы', 'Кольцо', 'Лого «Telegram»', 'Самолётик', 'Пользователь в рамке', 'Пользователь', 'Лого «VK»', 'Кошелёк с плюсом', 'Кошелёк', 'Кошелёк с деньгами', 'Лого «Youtube»'
|
|
216
216
|
* ]
|
|
217
217
|
*/
|
|
218
218
|
export declare type IconName = '' | 'AchievementIcon' | 'ActualBalanceIcon' | 'AppleIcon' | 'ArrowDownIcon' | 'ArrowDownSolidIcon' | 'ArrowLeftIcon' | 'ArrowRightIcon' | 'ArrowTopRightIcon' | 'ArrowUpIcon' | 'ArrowUpSolidIcon' | 'AtmIcon' | 'BankIcon' | 'BelarusianFlag' | 'BriefcaseIcon' | 'BuildingIcon' | 'BurgerIcon' | 'CalendarCircleIcon' | 'CalendarIcon' | 'CalendarTickIcon' | 'CardIcon' | 'CardPosIcon' | 'CardSendIcon' | 'CardTickIcon' | 'ChartIcon' | 'ChartRoundIcon' | 'ChartSquareIcon' | 'ChevronLeftIcon' | 'ClientIcon' | 'CloseIcon' | 'CoinIcon' | 'ConvertCardIcon' | 'CopyIcon' | 'CourtHouseIcon' | 'CupIcon' | 'DevIcon' | 'DiscountShapeIcon' | 'DocDownloadIcon' | 'DocIcon' | 'DollarIcon' | 'DoneIcon' | 'DoneSimpleIcon' | 'DzenIcon' | 'EmptyWalletChangeIcon' | 'EmptyWalletIcon' | 'EuroIcon' | 'FaxIcon' | 'FullScreenIcon' | 'GeolocationIcon' | 'GlobalIcon' | 'GpsIcon' | 'GridIcon' | 'HeadphonesIcon' | 'HeartIcon' | 'HeartTickIcon' | 'HouseIcon' | 'HuaweiIcon' | 'LockIcon' | 'LogoIcon' | 'LoupeIcon' | 'MagnifierIcon' | 'MailIcon' | 'MapMarkerClusterIcon' | 'MapMarkerSingleIcon' | 'MapOpenedIcon' | 'MinusIcon' | 'MoneyIcon' | 'MoneyInsuranceIcon' | 'MonitorMobileIcon' | 'NewDocIcon' | 'NotificationBingIcon' | 'OkIcon' | 'PackA4Icon' | 'PassSendIcon' | 'PercentageRoundIcon' | 'PercentIcon' | 'PersonalCardIcon' | 'PhoneCallingIcon' | 'PhoneIcon' | 'PlayMarketIcon' | 'PlusCircleIcon' | 'PlusIcon' | 'Profile2UserIcon' | 'ProfileIcon' | 'ResponseFailIcon' | 'ResponseOKIcon' | 'RoundRubleIcon' | 'RutubeIcon' | 'SafeIcon' | 'SecurityСardIcon' | 'ShieldTickIcon' | 'SignDocsIcon' | 'SmallClockIcon' | 'SoundIcon' | 'TelegramIcon' | 'UserGeoLocationIcon' | 'UserSquareIcon' | 'UserTickIcon' | 'VKIcon' | 'WalletAddIcon' | 'WalletIcon' | 'WalletWithMoneyIcon' | 'YoutubeIcon';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Generated. Do not touch
|
|
2
2
|
/* eslint-disable max-len, max-lines */
|
|
3
3
|
export const IconsWithoutInversion = new Set([
|
|
4
|
-
'ActualBalanceIcon', 'BelarusianFlag', 'ChartIcon', 'ChevronLeftIcon', 'ClientIcon', 'DollarIcon', 'DoneIcon', 'EuroIcon', 'FullScreenIcon', 'HeadphonesIcon', 'HeartIcon', 'HouseIcon', '
|
|
4
|
+
'ActualBalanceIcon', 'BelarusianFlag', 'ChartIcon', 'ChevronLeftIcon', 'ClientIcon', 'DollarIcon', 'DoneIcon', 'EuroIcon', 'FullScreenIcon', 'HeadphonesIcon', 'HeartIcon', 'HouseIcon', 'MagnifierIcon', 'MapMarkerClusterIcon', 'MapMarkerSingleIcon', 'MapOpenedIcon', 'MoneyInsuranceIcon', 'NewDocIcon', 'PackA4Icon', 'PassSendIcon', 'PercentIcon', 'ResponseFailIcon', 'ResponseOKIcon', 'SignDocsIcon', 'SoundIcon'
|
|
5
5
|
]);
|
|
6
6
|
export var IconMap;
|
|
7
7
|
(function (IconMap) {
|
|
@@ -165,7 +165,7 @@ export var IconTitleMap;
|
|
|
165
165
|
IconTitleMap["HeartIcon"] = "\u0421\u0435\u0440\u0434\u0446\u0435";
|
|
166
166
|
IconTitleMap["HeartTickIcon"] = "\u0421\u0435\u0440\u0434\u0446\u0435\u0431\u0435\u0435\u043D\u0438\u0435";
|
|
167
167
|
IconTitleMap["HouseIcon"] = "\u0418\u043F\u043E\u0442\u0435\u043A\u0430";
|
|
168
|
-
IconTitleMap["HuaweiIcon"] = "\u041B\u043E\u0433\u043E
|
|
168
|
+
IconTitleMap["HuaweiIcon"] = "\u041B\u043E\u0433\u043E 'Huawei'";
|
|
169
169
|
IconTitleMap["LockIcon"] = "\u0417\u0430\u043C\u043E\u043A";
|
|
170
170
|
IconTitleMap["LogoIcon"] = "Logo";
|
|
171
171
|
IconTitleMap["LoupeIcon"] = "\u041B\u0443\u043F\u0430";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconName.js","sourceRoot":"","sources":["../../src/icons/IconName.ts"],"names":[],"mappings":"AACA,0BAA0B;AAC1B,uCAAuC;AAEvC,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IAC3C,mBAAmB,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"IconName.js","sourceRoot":"","sources":["../../src/icons/IconName.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import {
|
|
2
|
+
import { useState } from '@redneckz/uni-jsx/lib/hooks';
|
|
3
3
|
import { renderBlocksList } from '../../BlockRenderer/renderBlockList';
|
|
4
4
|
import { useCarouselControls } from '../../hooks/useCarouselControls';
|
|
5
5
|
import { type Align } from '../../model/Align';
|
|
@@ -12,7 +12,8 @@ import { CarouselScrollButtons } from '../Carousel/CarouselScrollButtons';
|
|
|
12
12
|
import { alignTabStyle } from './alignTabStyle';
|
|
13
13
|
import { TabsLayoutButton } from './TabsLayoutButton';
|
|
14
14
|
import { type Tab, type TabsLayoutContent } from './TabsLayoutContent';
|
|
15
|
-
import {
|
|
15
|
+
import { TabsLayoutRedirectSection } from './TabsLayoutRedirectSection';
|
|
16
|
+
import { useScrollToTab } from './useScrollToTab';
|
|
16
17
|
|
|
17
18
|
export interface TabsLayoutProps extends TabsLayoutContent, UniBlockProps {}
|
|
18
19
|
|
|
@@ -29,9 +30,7 @@ export const TabsLayout: JSXBlock<TabsLayoutProps> = JSX<TabsLayoutProps>(
|
|
|
29
30
|
|
|
30
31
|
const [containerRef, scroll] = useSwipeListScroll<HTMLDivElement>({ itemCount });
|
|
31
32
|
|
|
32
|
-
|
|
33
|
-
scroll.scrollTo(activeTabIndex, { behavior: 'auto' });
|
|
34
|
-
}, []);
|
|
33
|
+
useScrollToTab(activeTabIndex, scroll);
|
|
35
34
|
|
|
36
35
|
return (
|
|
37
36
|
<BlockWrapper className={style(className)} defaultPadding="p-0" {...rest}>
|
|
@@ -56,7 +55,7 @@ export const TabsLayout: JSXBlock<TabsLayoutProps> = JSX<TabsLayoutProps>(
|
|
|
56
55
|
</div>
|
|
57
56
|
<div className="space-y-px @5xl:space-y-0 @5xl:grid @5xl:grid-cols-12 @5xl:gap-2xs">
|
|
58
57
|
{tabs[activeTabIndex]?.href ? (
|
|
59
|
-
<
|
|
58
|
+
<TabsLayoutRedirectSection tab={tabs[activeTabIndex]} />
|
|
60
59
|
) : (
|
|
61
60
|
renderBlocksList(block?.slots?.[slotName], { ...rest?.options, slotName })
|
|
62
61
|
)}
|
|
@@ -67,7 +66,7 @@ export const TabsLayout: JSXBlock<TabsLayoutProps> = JSX<TabsLayoutProps>(
|
|
|
67
66
|
);
|
|
68
67
|
|
|
69
68
|
TabsLayout.slots = ({ tabs }) => tabs?.filter((_) => !_.href).map(getSlotName) || [];
|
|
70
|
-
TabsLayout.childrenTypes = { exclude: ['TabsLayout'] };
|
|
69
|
+
TabsLayout.childrenTypes = { exclude: ['TabsLayout'] }; //TODO: fix this on wcms
|
|
71
70
|
|
|
72
71
|
const getSlotName = (tab: Tab, index: number): string => tab?.title || `Слот №${index}`;
|
|
73
72
|
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import { useDebouncedEffect } from '@redneckz/uni-jsx/lib/hooks/useDebouncedEffect';
|
|
3
|
+
import { useLink } from '../../hooks/useLink';
|
|
4
|
+
import { Shimmer } from '../../ui-kit/Shimmer/Shimmer';
|
|
5
|
+
import { isLocalURL } from '../../utils/url';
|
|
6
|
+
import { type Tab } from './TabsLayoutContent';
|
|
7
|
+
|
|
8
|
+
const REDIRECT_DELAY = 0.8 * 1000;
|
|
9
|
+
|
|
10
|
+
interface TabsLayoutRedirectSectionProps {
|
|
11
|
+
tab: Tab;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const TabsLayoutRedirectSection = JSX<TabsLayoutRedirectSectionProps>(({ tab }) => {
|
|
15
|
+
const link = useLink();
|
|
16
|
+
const { onClick } = link({
|
|
17
|
+
...tab,
|
|
18
|
+
onClick: () => {
|
|
19
|
+
/**
|
|
20
|
+
* In the current implementation of useLink, there is no follow-by-link method,
|
|
21
|
+
* and default routing won't work if the link is external.
|
|
22
|
+
*/
|
|
23
|
+
if (tab.href && !isLocalURL(tab.href)) {
|
|
24
|
+
globalThis.location.href = tab.href;
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
useDebouncedEffect(onClick, [], REDIRECT_DELAY);
|
|
30
|
+
|
|
31
|
+
return <Shimmer className="col-span-12 p-xl" size={5} />;
|
|
32
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { useEffect } from '@redneckz/uni-jsx/lib/hooks';
|
|
2
|
+
import { useBool } from '@redneckz/uni-jsx/lib/hooks/useBool';
|
|
3
|
+
import { type SwipeListScroll } from '../../ui-kit/SwipeListControl/useSwipeListScroll';
|
|
4
|
+
|
|
5
|
+
export const useScrollToTab = (activeTabIndex: number, scroll: SwipeListScroll) => {
|
|
6
|
+
const [initState, { setTrue: setInitStateTrue }] = useBool(false);
|
|
7
|
+
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
scroll.scrollTo(activeTabIndex, {
|
|
10
|
+
behavior: initState ? 'smooth' : 'auto',
|
|
11
|
+
block: 'nearest',
|
|
12
|
+
inline: 'center',
|
|
13
|
+
});
|
|
14
|
+
!initState && setInitStateTrue();
|
|
15
|
+
}, [activeTabIndex, initState]);
|
|
16
|
+
};
|
|
@@ -1 +1,3 @@
|
|
|
1
|
-
<svg title="Лого
|
|
1
|
+
<svg title="Лого 'Huawei'" isInverse="true" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28">
|
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.471 1.4c-5.177 0-7.07 1.894-7.07 7.07V19.53c0 5.176 1.893 7.07 7.07 7.07h11.055c5.177 0 7.074-1.894 7.074-7.07V8.47c0-5.176-1.893-7.07-7.07-7.07H8.47z"
|
|
3
|
+
/><path fill-rule="evenodd" clip-rule="evenodd" d="M12.393 16.015h1.012l-.508-1.18-.504 1.18zm-.249.595-.3.687h-.683L12.614 14h.59l1.448 3.297h-.702l-.296-.687h-1.51zm10.997.685h.66V14h-.66v3.295zm-2.63-1.416h1.218v-.6h-1.217v-.676h1.767v-.6h-2.427v3.294h2.49v-.601h-1.83v-.817zm-2.623.39L17.138 14h-.546l-.748 2.269-.73-2.267h-.712l1.15 3.297h.554l.75-2.166.75 2.166h.56l1.146-3.297h-.694l-.73 2.267zm-7.736-.38c0 .536-.266.822-.75.822-.486 0-.754-.294-.754-.845v-1.864H7.98v1.886c0 .928.516 1.46 1.414 1.46.908 0 1.428-.542 1.428-1.487V14h-.669v1.888zM6.382 14h.669v3.3h-.67v-1.34h-1.51v1.34H4.2V14h.67v1.33h1.51V14zM14 9.8a4.205 4.205 0 0 1-4.2-4.2h.594a3.61 3.61 0 0 0 3.607 3.607 3.61 3.61 0 0 0 3.607-3.606h.593c0 2.316-1.884 4.2-4.2 4.2z" fill="currentColor"/></svg>
|