@redneckz/wildless-cms-uni-blocks 0.3.30 → 0.3.31
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 +15 -26
- package/bundle/bundle.umd.min.js +1 -1
- package/dist/components/Accordion/Accordion.js +2 -6
- package/dist/components/Accordion/Accordion.js.map +1 -1
- package/dist/components/Accordion/AccordionContent.d.ts +3 -3
- package/dist/components/Accordion/AccordionItem.js +4 -11
- package/dist/components/Accordion/AccordionItem.js.map +1 -1
- package/dist/components/Accordion/AccordionItem.mobile.js +6 -3
- package/dist/components/Accordion/AccordionItem.mobile.js.map +1 -1
- package/dist/components/Accordion/AccordionItemInner.js +2 -2
- package/dist/components/Accordion/AccordionItemInner.js.map +1 -1
- package/dist/components/Accordion/AccordionItemInner.mobile.js +2 -3
- package/dist/components/Accordion/AccordionItemInner.mobile.js.map +1 -1
- package/dist/components/Footer/MediaButton.js +1 -1
- package/dist/components/Footer/MediaButton.js.map +1 -1
- package/dist/components/Header/Header.js +1 -1
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/OtherProducts/OtherProductsContent.d.ts +3 -12
- package/dist/components/TextBlock/TextBlockContent.d.ts +1 -1
- package/dist/ui-kit/BlocksList/EmbeddableBlocks.mobile.d.ts +8 -0
- package/dist/ui-kit/BlocksList/EmbeddableBlocks.mobile.js +17 -0
- package/dist/ui-kit/BlocksList/EmbeddableBlocks.mobile.js.map +1 -0
- package/dist/ui-kit/BlocksList/renderBlocksList.d.ts +2 -4
- package/dist/ui-kit/BlocksList/renderBlocksList.js +3 -3
- package/dist/ui-kit/BlocksList/renderBlocksList.js.map +1 -1
- package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
- package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
- package/dist/ui-kit/SwipeListControl/utils/getScrollPoints.js +7 -1
- package/dist/ui-kit/SwipeListControl/utils/getScrollPoints.js.map +1 -1
- package/lib/common.css +1 -1
- package/lib/components/Accordion/Accordion.js +2 -6
- package/lib/components/Accordion/Accordion.js.map +1 -1
- package/lib/components/Accordion/AccordionContent.d.ts +3 -3
- package/lib/components/Accordion/AccordionItem.js +4 -11
- package/lib/components/Accordion/AccordionItem.js.map +1 -1
- package/lib/components/Accordion/AccordionItem.mobile.js +6 -3
- package/lib/components/Accordion/AccordionItem.mobile.js.map +1 -1
- package/lib/components/Accordion/AccordionItemInner.js +2 -2
- package/lib/components/Accordion/AccordionItemInner.js.map +1 -1
- package/lib/components/Accordion/AccordionItemInner.mobile.js +2 -3
- package/lib/components/Accordion/AccordionItemInner.mobile.js.map +1 -1
- package/lib/components/Footer/MediaButton.js +1 -1
- package/lib/components/Footer/MediaButton.js.map +1 -1
- package/lib/components/Header/Header.js +1 -1
- package/lib/components/Header/Header.js.map +1 -1
- package/lib/components/OtherProducts/OtherProductsContent.d.ts +3 -12
- package/lib/components/TextBlock/TextBlockContent.d.ts +1 -1
- package/lib/ui-kit/BlocksList/EmbeddableBlocks.mobile.d.ts +8 -0
- package/lib/ui-kit/BlocksList/EmbeddableBlocks.mobile.js +15 -0
- package/lib/ui-kit/BlocksList/EmbeddableBlocks.mobile.js.map +1 -0
- package/lib/ui-kit/BlocksList/renderBlocksList.d.ts +2 -4
- package/lib/ui-kit/BlocksList/renderBlocksList.js +3 -3
- package/lib/ui-kit/BlocksList/renderBlocksList.js.map +1 -1
- package/lib/ui-kit/SwipeListControl/SwipeListControl.fixture.mobile.d.ts +3 -0
- package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
- package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
- package/lib/ui-kit/SwipeListControl/utils/getScrollPoints.d.ts +4 -1
- package/lib/ui-kit/SwipeListControl/utils/getScrollPoints.js +7 -1
- package/lib/ui-kit/SwipeListControl/utils/getScrollPoints.js.map +1 -1
- package/mobile/bundle/bundle.umd.js +76 -184
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/dist/components/Accordion/AccordionContent.d.ts +3 -3
- package/mobile/dist/components/Accordion/AccordionItem.js +6 -3
- package/mobile/dist/components/Accordion/AccordionItem.js.map +1 -1
- package/mobile/dist/components/Accordion/AccordionItemInner.js +2 -3
- package/mobile/dist/components/Accordion/AccordionItemInner.js.map +1 -1
- package/mobile/dist/components/Footer/MediaButton.js +1 -1
- package/mobile/dist/components/Footer/MediaButton.js.map +1 -1
- package/mobile/dist/components/OtherProducts/OtherProductsContent.d.ts +3 -12
- package/mobile/dist/components/TextBlock/TextBlockContent.d.ts +1 -1
- package/mobile/dist/ui-kit/BlocksList/EmbeddableBlocks.d.ts +0 -4
- package/mobile/dist/ui-kit/BlocksList/EmbeddableBlocks.js +0 -8
- package/mobile/dist/ui-kit/BlocksList/EmbeddableBlocks.js.map +1 -1
- package/mobile/dist/ui-kit/BlocksList/renderBlocksList.d.ts +2 -4
- package/mobile/dist/ui-kit/BlocksList/renderBlocksList.js +3 -3
- package/mobile/dist/ui-kit/BlocksList/renderBlocksList.js.map +1 -1
- package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
- package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
- package/mobile/dist/ui-kit/SwipeListControl/utils/getScrollPoints.js +7 -1
- package/mobile/dist/ui-kit/SwipeListControl/utils/getScrollPoints.js.map +1 -1
- package/mobile/lib/components/Accordion/AccordionContent.d.ts +3 -3
- package/mobile/lib/components/Accordion/AccordionItem.js +6 -3
- package/mobile/lib/components/Accordion/AccordionItem.js.map +1 -1
- package/mobile/lib/components/Accordion/AccordionItemInner.js +2 -3
- package/mobile/lib/components/Accordion/AccordionItemInner.js.map +1 -1
- package/mobile/lib/components/Footer/MediaButton.js +1 -1
- package/mobile/lib/components/Footer/MediaButton.js.map +1 -1
- package/mobile/lib/components/OtherProducts/OtherProductsContent.d.ts +3 -12
- package/mobile/lib/components/TextBlock/TextBlockContent.d.ts +1 -1
- package/mobile/lib/ui-kit/BlocksList/EmbeddableBlocks.d.ts +0 -4
- package/mobile/lib/ui-kit/BlocksList/EmbeddableBlocks.js +0 -8
- package/mobile/lib/ui-kit/BlocksList/EmbeddableBlocks.js.map +1 -1
- package/mobile/lib/ui-kit/BlocksList/renderBlocksList.d.ts +2 -4
- package/mobile/lib/ui-kit/BlocksList/renderBlocksList.js +3 -3
- package/mobile/lib/ui-kit/BlocksList/renderBlocksList.js.map +1 -1
- package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
- package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
- package/mobile/lib/ui-kit/SwipeListControl/utils/getScrollPoints.js +7 -1
- package/mobile/lib/ui-kit/SwipeListControl/utils/getScrollPoints.js.map +1 -1
- package/mobile/src/components/Accordion/Accordion.example.json +3 -0
- package/mobile/src/components/Accordion/AccordionContent.ts +4 -5
- package/mobile/src/components/Accordion/AccordionItem.tsx +32 -27
- package/mobile/src/components/Accordion/AccordionItemInner.tsx +8 -11
- package/mobile/src/components/Footer/MediaButton.tsx +1 -1
- package/mobile/src/components/Header/Header.example.json +3 -0
- package/mobile/src/components/OtherProducts/OtherProductsContent.ts +3 -12
- package/mobile/src/components/TextBlock/TextBlockContent.ts +1 -1
- package/mobile/src/ui-kit/BlocksList/EmbeddableBlocks.tsx +0 -8
- package/mobile/src/ui-kit/BlocksList/renderBlocksList.tsx +4 -12
- package/mobile/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +1 -1
- package/mobile/src/ui-kit/SwipeListControl/utils/getScrollPoints.spec.ts +18 -0
- package/mobile/src/ui-kit/SwipeListControl/utils/getScrollPoints.ts +10 -2
- package/package.json +1 -1
- package/src/components/Accordion/Accordion.example.json +3 -0
- package/src/components/Accordion/Accordion.fixture.mobile.tsx +1 -0
- package/src/components/Accordion/Accordion.fixture.tsx +2 -0
- package/src/components/Accordion/Accordion.tsx +4 -17
- package/src/components/Accordion/AccordionContent.ts +4 -5
- package/src/components/Accordion/AccordionItem.mobile.tsx +32 -27
- package/src/components/Accordion/AccordionItem.tsx +23 -49
- package/src/components/Accordion/AccordionItemInner.mobile.tsx +8 -11
- package/src/components/Accordion/AccordionItemInner.tsx +8 -10
- package/src/components/Footer/MediaButton.tsx +1 -1
- package/src/components/Header/Header.example.json +3 -0
- package/src/components/Header/Header.tsx +8 -1
- package/src/components/OtherProducts/OtherProducts.fixture.tsx +61 -6
- package/src/components/OtherProducts/OtherProductsContent.ts +3 -12
- package/src/components/TextBlock/TextBlockContent.ts +1 -1
- package/src/ui-kit/BlocksList/EmbeddableBlocks.mobile.tsx +15 -0
- package/src/ui-kit/BlocksList/renderBlocksList.tsx +4 -12
- package/src/ui-kit/SwipeListControl/SwipeListControl.fixture.mobile.tsx +24 -6
- package/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +1 -1
- package/src/ui-kit/SwipeListControl/utils/getScrollPoints.spec.ts +18 -0
- package/src/ui-kit/SwipeListControl/utils/getScrollPoints.ts +10 -2
|
@@ -5,8 +5,14 @@ exports.getScrollPoints = void 0;
|
|
|
5
5
|
Returns array of tuples consisting of [start, end] boundary scrollLeft values.
|
|
6
6
|
*/
|
|
7
7
|
const getScrollPoints = ({ gap, padding, clientWidth, scrollWidth, childElementCount, itemWidth, }) => {
|
|
8
|
-
const scrollItemWidth = itemWidth + gap;
|
|
9
8
|
const scrollableDistance = scrollWidth - clientWidth;
|
|
9
|
+
if (childElementCount === 2) {
|
|
10
|
+
return [
|
|
11
|
+
[0, scrollableDistance],
|
|
12
|
+
[scrollableDistance, scrollWidth],
|
|
13
|
+
];
|
|
14
|
+
}
|
|
15
|
+
const scrollItemWidth = itemWidth + gap;
|
|
10
16
|
const edgeScrollDistance = clientWidth - gap - padding;
|
|
11
17
|
const lastScrollableIdx = childElementCount - 2;
|
|
12
18
|
const scrollPoints = new Array(childElementCount)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getScrollPoints.js","sourceRoot":"","sources":["../../../../src/ui-kit/SwipeListControl/utils/getScrollPoints.ts"],"names":[],"mappings":";;AAAA;;;EAGE;AACK,MAAM,eAAe,GAAG,CAAC,EAC9B,GAAG,EACH,OAAO,EACP,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,SAAS,GAQV,
|
|
1
|
+
{"version":3,"file":"getScrollPoints.js","sourceRoot":"","sources":["../../../../src/ui-kit/SwipeListControl/utils/getScrollPoints.ts"],"names":[],"mappings":";;AAAA;;;EAGE;AACK,MAAM,eAAe,GAAG,CAAC,EAC9B,GAAG,EACH,OAAO,EACP,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,SAAS,GAQV,EAAsB,EAAE;IACvB,MAAM,kBAAkB,GAAG,WAAW,GAAG,WAAW,CAAC;IAErD,IAAI,iBAAiB,KAAK,CAAC,EAAE;QAC3B,OAAO;YACL,CAAC,CAAC,EAAE,kBAAkB,CAAC;YACvB,CAAC,kBAAkB,EAAE,WAAW,CAAC;SAClC,CAAC;KACH;IAED,MAAM,eAAe,GAAG,SAAS,GAAG,GAAG,CAAC;IACxC,MAAM,kBAAkB,GAAG,WAAW,GAAG,GAAG,GAAG,OAAO,CAAC;IAEvD,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,CAAC,CAAC;IAChD,MAAM,YAAY,GAAuB,IAAI,KAAK,CAAC,iBAAiB,CAAC;SAClE,IAAI,CAAC,CAAC,CAAC;SACP,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CACd,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,iBAAiB;QACpC,CAAC,CAAC;YACE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACrD,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB;SAClD;QACH,CAAC,CAAC;YACE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,eAAe,GAAG,kBAAkB;YAChD,GAAG,GAAG,eAAe,GAAG,kBAAkB;SAC3C,CACN,CAAC;IACJ,YAAY,CAAC,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;IAExE,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AA5CW,QAAA,eAAe,mBA4C1B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { BlockDef
|
|
1
|
+
import type { BlockDef } from '../../ui-kit/BlocksList/BlocksListProps';
|
|
2
2
|
import type { BlockVersion } from '../../model/BlockVersion';
|
|
3
|
+
import type { IconName } from '../../icons/IconName';
|
|
3
4
|
/**
|
|
4
5
|
* @title Элемент списка
|
|
5
6
|
*/
|
|
@@ -20,8 +21,7 @@ export interface AccordionItemCommonProps {
|
|
|
20
21
|
* @default false
|
|
21
22
|
*/
|
|
22
23
|
bordered?: boolean;
|
|
23
|
-
|
|
24
|
-
columns?: ColumnsCount;
|
|
24
|
+
labelIcon?: IconName;
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
27
|
* @title Аккордеон
|
|
@@ -3,13 +3,16 @@ import { JSX } from '@redneckz/uni-jsx';
|
|
|
3
3
|
import { Icon } from '../../ui-kit/Icon/Icon.js';
|
|
4
4
|
import { AccordionItemInner } from './AccordionItemInner.js';
|
|
5
5
|
import { useActiveHandler } from './useActiveHandler.js';
|
|
6
|
-
export const AccordionItem = JSX(({ label, blocks, bordered, context }) => {
|
|
6
|
+
export const AccordionItem = JSX(({ label, labelIcon, blocks, bordered, context }) => {
|
|
7
7
|
const { hasContent, icon, handleToggle } = useActiveHandler({
|
|
8
8
|
context,
|
|
9
9
|
blocks,
|
|
10
10
|
});
|
|
11
|
-
return (_jsxs("li", { className: `${bordered
|
|
11
|
+
return (_jsxs("li", { className: `${borderedLiClass(bordered)} border-solid border-main-divider`, children: [_jsxs("button", { className: `border-none bg-transparent flex justify-between text-left w-full font-sans text-primary-text
|
|
12
12
|
${bordered ? '' : 'py-[14px] px-0'}
|
|
13
|
-
${hasContent ? 'group cursor-pointer' : ''}`, onClick: handleToggle, children: [
|
|
13
|
+
${hasContent ? 'group cursor-pointer' : ''}`, onClick: handleToggle, children: [_jsxs("span", { className: `text-m-title-xs pr-2.5 font-medium flex ${hasContent ? 'group-hover:text-primary-main' : ''}`, children: [labelIcon ? (_jsx(Icon, { name: labelIcon, width: "24", height: "24", asSVG: true, className: "mr-3" })) : null, label] }), hasContent ? _jsx(Icon, { name: icon, width: "24", height: "24", asSVG: true }) : null] }), hasContent ? _jsx(AccordionItemInner, { blocks: blocks, context: context }) : null] }));
|
|
14
14
|
});
|
|
15
|
+
function borderedLiClass(bordered) {
|
|
16
|
+
return bordered ? 'border p-4 rounded mb-4' : 'border-0 border-b last:border-b-0';
|
|
17
|
+
}
|
|
15
18
|
//# sourceMappingURL=AccordionItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccordionItem.js","sourceRoot":"","sources":["../../../src/components/Accordion/AccordionItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"AccordionItem.js","sourceRoot":"","sources":["../../../src/components/Accordion/AccordionItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAC9B,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IAClD,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,gBAAgB,CAAC;QAC1D,OAAO;QACP,MAAM;KACP,CAAC,CAAC;IAEH,OAAO,CACL,cAAI,SAAS,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,mCAAmC,aAC5E,kBACE,SAAS,EAAE;YACT,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB;YAChC,UAAU,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,EAAE,EAC5C,OAAO,EAAE,YAAY,aAErB,gBACE,SAAS,EAAE,2CACT,UAAU,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,EACjD,EAAE,aAED,SAAS,CAAC,CAAC,CAAC,CACX,KAAC,IAAI,IAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,QAAC,SAAS,EAAC,MAAM,GAAG,CACxE,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,IACD,EACN,UAAU,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,SAAG,CAAC,CAAC,CAAC,IAAI,IAC/D,EACR,UAAU,CAAC,CAAC,CAAC,KAAC,kBAAkB,IAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC,CAAC,CAAC,IAAI,IAC1E,CACN,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,SAAS,eAAe,CAAC,QAAQ;IAC/B,OAAO,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,mCAAmC,CAAC;AACpF,CAAC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
|
|
2
2
|
import { JSX } from '@redneckz/uni-jsx';
|
|
3
3
|
import { renderBlocksList } from '../../ui-kit/BlocksList/renderBlocksList.js';
|
|
4
|
-
export const AccordionItemInner = JSX(({ blocks, context
|
|
4
|
+
export const AccordionItemInner = JSX(({ blocks, context }) => {
|
|
5
5
|
const className = 'mb-5 last:mb-0 first:mt-2';
|
|
6
|
-
|
|
7
|
-
return (_jsx("div", { className: "transition-all duration-300 max-h-0 overflow-hidden group-last:last:pb-0", children: renderBlocksList({ context, className, columns, blocks, version }) }));
|
|
6
|
+
return (_jsx("div", { className: "transition-all duration-300 max-h-0 overflow-hidden group-last:last:pb-0", children: renderBlocksList({ context, className, blocks }) }));
|
|
8
7
|
});
|
|
9
8
|
//# sourceMappingURL=AccordionItemInner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccordionItemInner.js","sourceRoot":"","sources":["../../../src/components/Accordion/AccordionItemInner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAE5E,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"AccordionItemInner.js","sourceRoot":"","sources":["../../../src/components/Accordion/AccordionItemInner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAE5E,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAqB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IAChF,MAAM,SAAS,GAAG,2BAA2B,CAAC;IAC9C,OAAO,CACL,cAAK,SAAS,EAAC,0EAA0E,YACtF,gBAAgB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAC7C,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -16,6 +16,6 @@ export const MediaButton = JSX(({ href }) => {
|
|
|
16
16
|
const { icon, width, height, label } = ICONS_MAP.find(({ origins }) => origins.some((_) => href?.includes(_))) || {};
|
|
17
17
|
if (!icon)
|
|
18
18
|
return null;
|
|
19
|
-
return (_jsx("a", { className: "flex items-center justify-center border border-solid border-main-divider rounded-full no-underline outline-none w-[
|
|
19
|
+
return (_jsx("a", { className: "flex items-center justify-center border border-solid border-main-divider rounded-full no-underline outline-none w-[40px] h-[40px] box-border hover:text-primary-main", href: href, "aria-label": label, target: "_blank", rel: "noopener noreferrer", children: Icon && (_jsx(Icon, { name: icon, width: width, height: height, asSVG: true, className: "block", color: "none" })) }));
|
|
20
20
|
});
|
|
21
21
|
//# sourceMappingURL=MediaButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaButton.js","sourceRoot":"","sources":["../../../src/components/Footer/MediaButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAG9C,MAAM,SAAS,GAMV;IACH;QACE,OAAO,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC;QACjC,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;KACf;IACD,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;IAC1F,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;CAC9F,CAAC;AAMF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAmB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC5D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAClC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEhF,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,OAAO,CACL,YACE,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"MediaButton.js","sourceRoot":"","sources":["../../../src/components/Footer/MediaButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAG9C,MAAM,SAAS,GAMV;IACH;QACE,OAAO,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC;QACjC,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;KACf;IACD,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;IAC1F,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;CAC9F,CAAC;AAMF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAmB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC5D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAClC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEhF,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,OAAO,CACL,YACE,SAAS,EAAC,sKAAsK,EAChL,IAAI,EAAE,IAAI,gBACE,KAAK,EACjB,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,YAExB,IAAI,IAAI,CACP,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,QAAC,SAAS,EAAC,OAAO,EAAC,KAAK,EAAC,MAAM,GAAG,CACxF,GACC,CACL,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -14,11 +14,6 @@ export interface blockItemCommonProps {
|
|
|
14
14
|
isExpanded?: boolean;
|
|
15
15
|
/** @title Блоки */
|
|
16
16
|
blocks?: BlockDef[];
|
|
17
|
-
/**
|
|
18
|
-
* @title Отображать/скрывать обводку элемента
|
|
19
|
-
* @default false
|
|
20
|
-
*/
|
|
21
|
-
bordered?: boolean;
|
|
22
17
|
columns?: ColumnsCount;
|
|
23
18
|
}
|
|
24
19
|
/**
|
|
@@ -27,13 +22,9 @@ export interface blockItemCommonProps {
|
|
|
27
22
|
export interface OtherProductsContent {
|
|
28
23
|
/** @title Заголовок */
|
|
29
24
|
title?: string;
|
|
30
|
-
/** @title Список */
|
|
31
|
-
blockItems?: blockItemCommonProps[];
|
|
32
|
-
/** @title Подзаголовок */
|
|
33
|
-
description?: string;
|
|
34
25
|
/**
|
|
35
|
-
* @title
|
|
36
|
-
* @
|
|
26
|
+
* @title Список
|
|
27
|
+
* @maxItems 10
|
|
37
28
|
*/
|
|
38
|
-
|
|
29
|
+
blockItems?: blockItemCommonProps[];
|
|
39
30
|
}
|
|
@@ -20,6 +20,6 @@ export interface TextBlockContent {
|
|
|
20
20
|
iconVersion?: TextBlockIconVersion;
|
|
21
21
|
image?: Picture;
|
|
22
22
|
blockVersion?: TextBlockVersion;
|
|
23
|
-
/** @title
|
|
23
|
+
/** @title Буллиты */ isDotted?: boolean;
|
|
24
24
|
/** @title Список (моб.) */ items?: string[];
|
|
25
25
|
}
|
|
@@ -2,11 +2,7 @@ export declare const EmbeddableBlocks: {
|
|
|
2
2
|
Headline: (props: import("@redneckz/uni-jsx").PropsWithChildren<import("../../components/Headline/Headline").HeadlineProps, any>, context?: any) => any;
|
|
3
3
|
LinkDocs: (props: import("@redneckz/uni-jsx").PropsWithChildren<import("../../components/LinkDocs/LinkDocs").LinkDocsProps, any>, context?: any) => any;
|
|
4
4
|
TextBlock: (props: import("@redneckz/uni-jsx").PropsWithChildren<import("../../components/TextBlock/TextBlock").TextBlockProps, any>, context?: any) => any;
|
|
5
|
-
PictureText: (props: import("@redneckz/uni-jsx").PropsWithChildren<import("../../components/PictureText/PictureText").PictureTextProps, any>, context?: any) => any;
|
|
6
5
|
ProductBlock: (props: import("@redneckz/uni-jsx").PropsWithChildren<import("../../components/ProductBlock/ProductBlock").ProductBlockProps, any>, context?: any) => any;
|
|
7
|
-
Tile: (props: import("@redneckz/uni-jsx").PropsWithChildren<import("../../components/Tile/Tile").TileProps, any>, context?: any) => any;
|
|
8
|
-
ProductTile: (props: import("@redneckz/uni-jsx").PropsWithChildren<import("../../components/ProductTile/ProductTile").ProductTileProps, any>, context?: any) => any;
|
|
9
6
|
Gallery: (props: import("@redneckz/uni-jsx").PropsWithChildren<import("../../components/Gallery/GalleryProps").GalleryProps, any>, context?: any) => any;
|
|
10
|
-
MiniGallery: (props: import("@redneckz/uni-jsx").PropsWithChildren<import("../../components/MiniGallery/MiniGallery").MiniGalleryProps, any>, context?: any) => any;
|
|
11
7
|
LinkList: (props: import("@redneckz/uni-jsx").PropsWithChildren<import("../../components/LinkList/LinkList").LinkListProps, any>, context?: any) => any;
|
|
12
8
|
};
|
|
@@ -1,23 +1,15 @@
|
|
|
1
1
|
import { Headline } from '../../components/Headline/Headline.js';
|
|
2
2
|
import { LinkDocs } from '../../components/LinkDocs/LinkDocs.js';
|
|
3
|
-
import { PictureText } from '../../components/PictureText/PictureText.js';
|
|
4
3
|
import { ProductBlock } from '../../components/ProductBlock/ProductBlock.js';
|
|
5
4
|
import { TextBlock } from '../../components/TextBlock/TextBlock.js';
|
|
6
|
-
import { Tile } from '../../components/Tile/Tile.js';
|
|
7
|
-
import { ProductTile } from '../../components/ProductTile/ProductTile.js';
|
|
8
5
|
import { Gallery } from '../../components/Gallery/Gallery.js';
|
|
9
|
-
import { MiniGallery } from '../../components/MiniGallery/MiniGallery.js';
|
|
10
6
|
import { LinkList } from '../../components/LinkList/LinkList.js';
|
|
11
7
|
export const EmbeddableBlocks = {
|
|
12
8
|
Headline,
|
|
13
9
|
LinkDocs,
|
|
14
10
|
TextBlock,
|
|
15
|
-
PictureText,
|
|
16
11
|
ProductBlock,
|
|
17
|
-
Tile,
|
|
18
|
-
ProductTile,
|
|
19
12
|
Gallery,
|
|
20
|
-
MiniGallery,
|
|
21
13
|
LinkList,
|
|
22
14
|
};
|
|
23
15
|
//# sourceMappingURL=EmbeddableBlocks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmbeddableBlocks.js","sourceRoot":"","sources":["../../../src/ui-kit/BlocksList/EmbeddableBlocks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"EmbeddableBlocks.js","sourceRoot":"","sources":["../../../src/ui-kit/BlocksList/EmbeddableBlocks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,OAAO;IACP,QAAQ;CACT,CAAC"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import type { ContentPageContext } from '../../components/ContentPage/ContentPageContext';
|
|
2
2
|
import type { BlockDef, ColumnsCount } from './BlocksListProps';
|
|
3
|
-
import { BlockVersion } from '../../model/BlockVersion';
|
|
4
3
|
declare type EmbeddableBlocksProps = {
|
|
5
4
|
blocks?: BlockDef[];
|
|
6
5
|
context: ContentPageContext;
|
|
7
6
|
columns?: ColumnsCount;
|
|
8
7
|
className?: string;
|
|
9
|
-
version?: BlockVersion;
|
|
10
8
|
};
|
|
11
|
-
export declare const renderBlocksList: ({ blocks, context, className, columns
|
|
12
|
-
export declare const renderBlock: ({ context, columns, className
|
|
9
|
+
export declare const renderBlocksList: ({ blocks, context, className, columns }: EmbeddableBlocksProps) => any[] | null;
|
|
10
|
+
export declare const renderBlock: ({ context, columns, className }: EmbeddableBlocksProps) => (block: BlockDef, i: number) => any;
|
|
13
11
|
export {};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
|
|
2
2
|
import { EmbeddableBlocks } from './EmbeddableBlocks.js';
|
|
3
|
-
export const renderBlocksList = ({ blocks, context, className, columns
|
|
4
|
-
export const renderBlock = ({ context, columns, className
|
|
3
|
+
export const renderBlocksList = ({ blocks, context, className, columns }) => blocks?.length ? blocks.map(renderBlock({ context, className, columns })) : null;
|
|
4
|
+
export const renderBlock = ({ context, columns, className }) => (block, i) => {
|
|
5
5
|
const type = block?.blockListType;
|
|
6
6
|
if (!type || !(type in EmbeddableBlocks)) {
|
|
7
7
|
return null;
|
|
8
8
|
}
|
|
9
9
|
const columnsCountClass = columns === 2 ? 'w-1/2' : '';
|
|
10
10
|
const EmbeddedBlock = EmbeddableBlocks[type];
|
|
11
|
-
return (_jsx("div", { className: `${className} ${columnsCountClass}`, children: _jsx(EmbeddedBlock, { context: context, ...block,
|
|
11
|
+
return (_jsx("div", { className: `${className} ${columnsCountClass}`, children: _jsx(EmbeddedBlock, { context: context, ...block, className: "!p-0" }) }, `block_${i}`));
|
|
12
12
|
};
|
|
13
13
|
//# sourceMappingURL=renderBlocksList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderBlocksList.js","sourceRoot":"","sources":["../../../src/ui-kit/BlocksList/renderBlocksList.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"renderBlocksList.js","sourceRoot":"","sources":["../../../src/ui-kit/BlocksList/renderBlocksList.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAStD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAyB,EAAE,EAAE,CACjG,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAEnF,MAAM,CAAC,MAAM,WAAW,GACtB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAyB,EAAE,EAAE,CAC3D,CAAC,KAAe,EAAE,CAAS,EAAE,EAAE;IAC7B,MAAM,IAAI,GAAG,KAAK,EAAE,aAAa,CAAC;IAClC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,gBAAgB,CAAC,EAAE;QACxC,OAAO,IAAI,CAAC;KACb;IACD,MAAM,iBAAiB,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,MAAM,aAAa,GAAa,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,CACL,cAAK,SAAS,EAAE,GAAG,SAAS,IAAI,iBAAiB,EAAE,YACjD,KAAC,aAAa,IAAC,OAAO,EAAE,OAAO,KAAM,KAAK,EAAE,SAAS,EAAC,MAAM,GAAG,IADP,SAAS,CAAC,EAAE,CAEhE,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -12,7 +12,7 @@ export const SwipeListControlDots = JSX(({ children, activeIndex, indexFraction,
|
|
|
12
12
|
}
|
|
13
13
|
const contentContainer = e.currentTarget.parentElement
|
|
14
14
|
?.previousElementSibling;
|
|
15
|
-
contentContainer?.children[idx]?.scrollIntoView({ behavior: 'smooth' });
|
|
15
|
+
contentContainer?.children[idx]?.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
|
|
16
16
|
};
|
|
17
17
|
return showDots && children?.length ? (_jsx("div", { className: "flex gap-2 mx-auto mt-5 w-fit", children: children?.map((_, idx) => (_jsx("div", { onClick: handleClick(idx), className: `${DOT_STYLES}`, style: getDotStyles(idx, activeIndex, indexFraction), "aria-hidden": true }, String(idx)))) })) : null;
|
|
18
18
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwipeListControlDots.js","sourceRoot":"","sources":["../../../src/ui-kit/SwipeListControl/SwipeListControlDots.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,MAAM,UAAU,GAAG,yEAAyE,CAAC;AAC7F,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAQtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CACrC,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE;IACrD,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,CAAQ,EAAE,EAAE;QAChD,IAAI,GAAG,KAAK,WAAW,EAAE;YACvB,OAAO;SACR;QAED,MAAM,gBAAgB,GAAI,CAAC,CAAC,aAA6B,CAAC,aAAa;YACrE,EAAE,sBAAsB,CAAC;QAE3B,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"SwipeListControlDots.js","sourceRoot":"","sources":["../../../src/ui-kit/SwipeListControl/SwipeListControlDots.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,MAAM,UAAU,GAAG,yEAAyE,CAAC;AAC7F,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAQtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CACrC,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE;IACrD,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,CAAQ,EAAE,EAAE;QAChD,IAAI,GAAG,KAAK,WAAW,EAAE;YACvB,OAAO;SACR;QAED,MAAM,gBAAgB,GAAI,CAAC,CAAC,aAA6B,CAAC,aAAa;YACrE,EAAE,sBAAsB,CAAC;QAE3B,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5F,CAAC,CAAC;IAEF,OAAO,QAAQ,IAAI,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CACpC,cAAK,SAAS,EAAC,+BAA+B,YAC3C,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CACzB,cAEE,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,EACzB,SAAS,EAAE,GAAG,UAAU,EAAE,EAC1B,KAAK,EAAE,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,aAAa,CAAC,yBAH/C,MAAM,CAAC,GAAG,CAAC,CAKhB,CACH,CAAC,GACE,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CACF,CAAC;AAEF,MAAM,YAAY,GAAG,CACnB,UAAkB,EAClB,WAAmB,EACnB,aAAqB,EACU,EAAE;IACjC,IAAI,UAAU,GAAG,WAAW,IAAI,UAAU,GAAG,WAAW,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE1E,MAAM,YAAY,GAAG,CAAC,GAAG,aAAa,CAAC;IACvC,MAAM,aAAa,GAAG,aAAa,CAAC;IAEpC,OAAO,UAAU,KAAK,WAAW;QAC/B,CAAC,CAAC;YACE,OAAO,EAAE,GAAG,gBAAgB,GAAG,yBAAyB,GAAG,YAAY,EAAE;YACzE,KAAK,EAAE,GAAG,cAAc,GAAG,uBAAuB,GAAG,YAAY,IAAI;SACtE;QACH,CAAC,CAAC;YACE,OAAO,EAAE,GAAG,gBAAgB,GAAG,yBAAyB,GAAG,aAAa,EAAE;YAC1E,KAAK,EAAE,GAAG,cAAc,GAAG,uBAAuB,GAAG,aAAa,IAAI;SACvE,CAAC;AACR,CAAC,CAAC"}
|
|
@@ -3,8 +3,14 @@
|
|
|
3
3
|
Returns array of tuples consisting of [start, end] boundary scrollLeft values.
|
|
4
4
|
*/
|
|
5
5
|
export const getScrollPoints = ({ gap, padding, clientWidth, scrollWidth, childElementCount, itemWidth, }) => {
|
|
6
|
-
const scrollItemWidth = itemWidth + gap;
|
|
7
6
|
const scrollableDistance = scrollWidth - clientWidth;
|
|
7
|
+
if (childElementCount === 2) {
|
|
8
|
+
return [
|
|
9
|
+
[0, scrollableDistance],
|
|
10
|
+
[scrollableDistance, scrollWidth],
|
|
11
|
+
];
|
|
12
|
+
}
|
|
13
|
+
const scrollItemWidth = itemWidth + gap;
|
|
8
14
|
const edgeScrollDistance = clientWidth - gap - padding;
|
|
9
15
|
const lastScrollableIdx = childElementCount - 2;
|
|
10
16
|
const scrollPoints = new Array(childElementCount)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getScrollPoints.js","sourceRoot":"","sources":["../../../../src/ui-kit/SwipeListControl/utils/getScrollPoints.ts"],"names":[],"mappings":"AAAA;;;EAGE;AACF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,GAAG,EACH,OAAO,EACP,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,SAAS,GAQV,
|
|
1
|
+
{"version":3,"file":"getScrollPoints.js","sourceRoot":"","sources":["../../../../src/ui-kit/SwipeListControl/utils/getScrollPoints.ts"],"names":[],"mappings":"AAAA;;;EAGE;AACF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,GAAG,EACH,OAAO,EACP,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,SAAS,GAQV,EAAsB,EAAE;IACvB,MAAM,kBAAkB,GAAG,WAAW,GAAG,WAAW,CAAC;IAErD,IAAI,iBAAiB,KAAK,CAAC,EAAE;QAC3B,OAAO;YACL,CAAC,CAAC,EAAE,kBAAkB,CAAC;YACvB,CAAC,kBAAkB,EAAE,WAAW,CAAC;SAClC,CAAC;KACH;IAED,MAAM,eAAe,GAAG,SAAS,GAAG,GAAG,CAAC;IACxC,MAAM,kBAAkB,GAAG,WAAW,GAAG,GAAG,GAAG,OAAO,CAAC;IAEvD,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,CAAC,CAAC;IAChD,MAAM,YAAY,GAAuB,IAAI,KAAK,CAAC,iBAAiB,CAAC;SAClE,IAAI,CAAC,CAAC,CAAC;SACP,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CACd,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,iBAAiB;QACpC,CAAC,CAAC;YACE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACrD,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB;SAClD;QACH,CAAC,CAAC;YACE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,eAAe,GAAG,kBAAkB;YAChD,GAAG,GAAG,eAAe,GAAG,kBAAkB;SAC3C,CACN,CAAC;IACJ,YAAY,CAAC,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;IAExE,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"accordionItems": [
|
|
4
4
|
{
|
|
5
5
|
"label": "Аккордеон 1",
|
|
6
|
+
"labelIcon": "CardIcon",
|
|
6
7
|
"blocks": [
|
|
7
8
|
{
|
|
8
9
|
"blockListType": "TextBlock",
|
|
@@ -18,6 +19,7 @@
|
|
|
18
19
|
},
|
|
19
20
|
{
|
|
20
21
|
"label": "Аккордеон 2",
|
|
22
|
+
"labelIcon": "CardIcon",
|
|
21
23
|
"blocks": [
|
|
22
24
|
{
|
|
23
25
|
"blockListType": "TextBlock",
|
|
@@ -33,6 +35,7 @@
|
|
|
33
35
|
},
|
|
34
36
|
{
|
|
35
37
|
"label": "Аккордеон 3",
|
|
38
|
+
"labelIcon": "CardIcon",
|
|
36
39
|
"blocks": [
|
|
37
40
|
{
|
|
38
41
|
"blockListType": "TextBlock",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { BlockDef
|
|
1
|
+
import type { BlockDef } from '../../ui-kit/BlocksList/BlocksListProps';
|
|
2
2
|
import type { BlockVersion } from '../../model/BlockVersion';
|
|
3
|
+
import type { IconName } from '../../icons/IconName';
|
|
3
4
|
/**
|
|
4
5
|
* @title Элемент списка
|
|
5
6
|
*/
|
|
@@ -20,9 +21,7 @@ export interface AccordionItemCommonProps {
|
|
|
20
21
|
* @default false
|
|
21
22
|
*/
|
|
22
23
|
bordered?: boolean; // TODO: только для мобильной версии
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
columns?: ColumnsCount;
|
|
24
|
+
labelIcon?: IconName; // TODO: только для мобильной версии
|
|
26
25
|
}
|
|
27
26
|
|
|
28
27
|
/**
|
|
@@ -35,7 +34,7 @@ export interface AccordionContent {
|
|
|
35
34
|
/** @title Список */
|
|
36
35
|
accordionItems?: AccordionItemCommonProps[];
|
|
37
36
|
/** @title Описание */
|
|
38
|
-
description?: string;
|
|
37
|
+
description?: string;
|
|
39
38
|
/**
|
|
40
39
|
* @title Отображать/скрывать обводку у элемента списка
|
|
41
40
|
* @default false
|
|
@@ -7,34 +7,39 @@ import { useActiveHandler } from './useActiveHandler';
|
|
|
7
7
|
|
|
8
8
|
export interface AccordionItemProps extends AccordionItemCommonProps, UniBlockProps {}
|
|
9
9
|
|
|
10
|
-
export const AccordionItem = JSX<AccordionItemProps>(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
export const AccordionItem = JSX<AccordionItemProps>(
|
|
11
|
+
({ label, labelIcon, blocks, bordered, context }) => {
|
|
12
|
+
const { hasContent, icon, handleToggle } = useActiveHandler({
|
|
13
|
+
context,
|
|
14
|
+
blocks,
|
|
15
|
+
});
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
} border-solid border-main-divider`}
|
|
21
|
-
>
|
|
22
|
-
<button
|
|
23
|
-
className={`border-none bg-transparent flex justify-between text-left w-full font-sans text-primary-text
|
|
17
|
+
return (
|
|
18
|
+
<li className={`${borderedLiClass(bordered)} border-solid border-main-divider`}>
|
|
19
|
+
<button
|
|
20
|
+
className={`border-none bg-transparent flex justify-between text-left w-full font-sans text-primary-text
|
|
24
21
|
${bordered ? '' : 'py-[14px] px-0'}
|
|
25
22
|
${hasContent ? 'group cursor-pointer' : ''}`}
|
|
26
|
-
|
|
27
|
-
>
|
|
28
|
-
<span
|
|
29
|
-
className={`text-m-title-xs pr-2.5 font-medium ${
|
|
30
|
-
hasContent ? 'group-hover:text-primary-main' : ''
|
|
31
|
-
}`}
|
|
23
|
+
onClick={handleToggle}
|
|
32
24
|
>
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
25
|
+
<span
|
|
26
|
+
className={`text-m-title-xs pr-2.5 font-medium flex ${
|
|
27
|
+
hasContent ? 'group-hover:text-primary-main' : ''
|
|
28
|
+
}`}
|
|
29
|
+
>
|
|
30
|
+
{labelIcon ? (
|
|
31
|
+
<Icon name={labelIcon} width="24" height="24" asSVG className="mr-3" />
|
|
32
|
+
) : null}
|
|
33
|
+
{label}
|
|
34
|
+
</span>
|
|
35
|
+
{hasContent ? <Icon name={icon} width="24" height="24" asSVG /> : null}
|
|
36
|
+
</button>
|
|
37
|
+
{hasContent ? <AccordionItemInner blocks={blocks} context={context} /> : null}
|
|
38
|
+
</li>
|
|
39
|
+
);
|
|
40
|
+
},
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
function borderedLiClass(bordered) {
|
|
44
|
+
return bordered ? 'border p-4 rounded mb-4' : 'border-0 border-b last:border-b-0';
|
|
45
|
+
}
|
|
@@ -2,14 +2,11 @@ import { JSX } from '@redneckz/uni-jsx';
|
|
|
2
2
|
import type { AccordionItemProps } from './AccordionItem';
|
|
3
3
|
import { renderBlocksList } from '../../ui-kit/BlocksList/renderBlocksList';
|
|
4
4
|
|
|
5
|
-
export const AccordionItemInner = JSX<AccordionItemProps>(
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
);
|
|
14
|
-
},
|
|
15
|
-
);
|
|
5
|
+
export const AccordionItemInner = JSX<AccordionItemProps>(({ blocks, context }) => {
|
|
6
|
+
const className = 'mb-5 last:mb-0 first:mt-2';
|
|
7
|
+
return (
|
|
8
|
+
<div className="transition-all duration-300 max-h-0 overflow-hidden group-last:last:pb-0">
|
|
9
|
+
{renderBlocksList({ context, className, blocks })}
|
|
10
|
+
</div>
|
|
11
|
+
);
|
|
12
|
+
});
|
|
@@ -32,7 +32,7 @@ export const MediaButton = JSX<MediaButtonProps>(({ href }) => {
|
|
|
32
32
|
|
|
33
33
|
return (
|
|
34
34
|
<a
|
|
35
|
-
className="flex items-center justify-center border border-solid border-main-divider rounded-full no-underline outline-none w-[
|
|
35
|
+
className="flex items-center justify-center border border-solid border-main-divider rounded-full no-underline outline-none w-[40px] h-[40px] box-border hover:text-primary-main"
|
|
36
36
|
href={href}
|
|
37
37
|
aria-label={label}
|
|
38
38
|
target="_blank"
|
|
@@ -15,11 +15,6 @@ export interface blockItemCommonProps {
|
|
|
15
15
|
isExpanded?: boolean;
|
|
16
16
|
/** @title Блоки */
|
|
17
17
|
blocks?: BlockDef[];
|
|
18
|
-
/**
|
|
19
|
-
* @title Отображать/скрывать обводку элемента
|
|
20
|
-
* @default false
|
|
21
|
-
*/
|
|
22
|
-
bordered?: boolean; // TODO: только для мобильной версии
|
|
23
18
|
columns?: ColumnsCount;
|
|
24
19
|
}
|
|
25
20
|
|
|
@@ -29,13 +24,9 @@ export interface blockItemCommonProps {
|
|
|
29
24
|
export interface OtherProductsContent {
|
|
30
25
|
/** @title Заголовок */
|
|
31
26
|
title?: string;
|
|
32
|
-
/** @title Список */
|
|
33
|
-
blockItems?: blockItemCommonProps[];
|
|
34
|
-
/** @title Подзаголовок */
|
|
35
|
-
description?: string; // TODO: только для мобильной версии
|
|
36
27
|
/**
|
|
37
|
-
* @title
|
|
38
|
-
* @
|
|
28
|
+
* @title Список
|
|
29
|
+
* @maxItems 10
|
|
39
30
|
*/
|
|
40
|
-
|
|
31
|
+
blockItems?: blockItemCommonProps[];
|
|
41
32
|
}
|
|
@@ -23,7 +23,7 @@ export interface TextBlockContent {
|
|
|
23
23
|
iconVersion?: TextBlockIconVersion;
|
|
24
24
|
image?: Picture;
|
|
25
25
|
blockVersion?: TextBlockVersion;
|
|
26
|
-
/** @title
|
|
26
|
+
/** @title Буллиты */ // TODO: mobile prop
|
|
27
27
|
isDotted?: boolean;
|
|
28
28
|
/** @title Список (моб.) */ // TODO: mobile prop
|
|
29
29
|
items?: string[];
|
|
@@ -1,23 +1,15 @@
|
|
|
1
1
|
import { Headline } from '../../components/Headline/Headline';
|
|
2
2
|
import { LinkDocs } from '../../components/LinkDocs/LinkDocs';
|
|
3
|
-
import { PictureText } from '../../components/PictureText/PictureText';
|
|
4
3
|
import { ProductBlock } from '../../components/ProductBlock/ProductBlock';
|
|
5
4
|
import { TextBlock } from '../../components/TextBlock/TextBlock';
|
|
6
|
-
import { Tile } from '../../components/Tile/Tile';
|
|
7
|
-
import { ProductTile } from '../../components/ProductTile/ProductTile';
|
|
8
5
|
import { Gallery } from '../../components/Gallery/Gallery';
|
|
9
|
-
import { MiniGallery } from '../../components/MiniGallery/MiniGallery';
|
|
10
6
|
import { LinkList } from '../../components/LinkList/LinkList';
|
|
11
7
|
|
|
12
8
|
export const EmbeddableBlocks = {
|
|
13
9
|
Headline,
|
|
14
10
|
LinkDocs,
|
|
15
11
|
TextBlock,
|
|
16
|
-
PictureText,
|
|
17
12
|
ProductBlock,
|
|
18
|
-
Tile,
|
|
19
|
-
ProductTile,
|
|
20
13
|
Gallery,
|
|
21
|
-
MiniGallery,
|
|
22
14
|
LinkList,
|
|
23
15
|
};
|
|
@@ -2,27 +2,19 @@ import type { JSXBlock } from '../../components/ContentPage/ContentPage';
|
|
|
2
2
|
import type { ContentPageContext } from '../../components/ContentPage/ContentPageContext';
|
|
3
3
|
import type { BlockDef, ColumnsCount } from './BlocksListProps';
|
|
4
4
|
import { EmbeddableBlocks } from './EmbeddableBlocks';
|
|
5
|
-
import { BlockVersion } from '../../model/BlockVersion';
|
|
6
5
|
|
|
7
6
|
type EmbeddableBlocksProps = {
|
|
8
7
|
blocks?: BlockDef[];
|
|
9
8
|
context: ContentPageContext;
|
|
10
9
|
columns?: ColumnsCount;
|
|
11
10
|
className?: string;
|
|
12
|
-
version?: BlockVersion;
|
|
13
11
|
};
|
|
14
12
|
|
|
15
|
-
export const renderBlocksList = ({
|
|
16
|
-
blocks,
|
|
17
|
-
context,
|
|
18
|
-
className,
|
|
19
|
-
columns,
|
|
20
|
-
version,
|
|
21
|
-
}: EmbeddableBlocksProps) =>
|
|
22
|
-
blocks?.length ? blocks.map(renderBlock({ context, className, columns, version })) : null;
|
|
13
|
+
export const renderBlocksList = ({ blocks, context, className, columns }: EmbeddableBlocksProps) =>
|
|
14
|
+
blocks?.length ? blocks.map(renderBlock({ context, className, columns })) : null;
|
|
23
15
|
|
|
24
16
|
export const renderBlock =
|
|
25
|
-
({ context, columns, className
|
|
17
|
+
({ context, columns, className }: EmbeddableBlocksProps) =>
|
|
26
18
|
(block: BlockDef, i: number) => {
|
|
27
19
|
const type = block?.blockListType;
|
|
28
20
|
if (!type || !(type in EmbeddableBlocks)) {
|
|
@@ -32,7 +24,7 @@ export const renderBlock =
|
|
|
32
24
|
const EmbeddedBlock: JSXBlock = EmbeddableBlocks[type];
|
|
33
25
|
return (
|
|
34
26
|
<div className={`${className} ${columnsCountClass}`} key={`block_${i}`}>
|
|
35
|
-
<EmbeddedBlock context={context} {...block}
|
|
27
|
+
<EmbeddedBlock context={context} {...block} className="!p-0" />
|
|
36
28
|
</div>
|
|
37
29
|
);
|
|
38
30
|
};
|
|
@@ -22,7 +22,7 @@ export const SwipeListControlDots = JSX<SwipeListControlDotsProps>(
|
|
|
22
22
|
const contentContainer = (e.currentTarget as HTMLElement).parentElement
|
|
23
23
|
?.previousElementSibling;
|
|
24
24
|
|
|
25
|
-
contentContainer?.children[idx]?.scrollIntoView({ behavior: 'smooth' });
|
|
25
|
+
contentContainer?.children[idx]?.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
|
|
26
26
|
};
|
|
27
27
|
|
|
28
28
|
return showDots && children?.length ? (
|
|
@@ -17,8 +17,26 @@ const scrollPoints: [number, number][] = [
|
|
|
17
17
|
[1414, 1914],
|
|
18
18
|
];
|
|
19
19
|
|
|
20
|
+
const twoItemsScrollPointsProps = {
|
|
21
|
+
gap: 14,
|
|
22
|
+
padding: 16,
|
|
23
|
+
clientWidth: 414,
|
|
24
|
+
scrollWidth: 794,
|
|
25
|
+
childElementCount: 2,
|
|
26
|
+
itemWidth: 380,
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const twoItemsScrollPoints: [number, number][] = [
|
|
30
|
+
[0, 380],
|
|
31
|
+
[380, 794],
|
|
32
|
+
];
|
|
33
|
+
|
|
20
34
|
describe('getScrollPoints', () => {
|
|
21
35
|
it('should return array containing scroll breakpoints delimiting each child', () => {
|
|
22
36
|
expect(getScrollPoints(props)).toEqual(scrollPoints);
|
|
23
37
|
});
|
|
38
|
+
|
|
39
|
+
it('should correctly handle case with 2 items in container', () => {
|
|
40
|
+
expect(getScrollPoints(twoItemsScrollPointsProps)).toEqual(twoItemsScrollPoints);
|
|
41
|
+
});
|
|
24
42
|
});
|
|
@@ -16,9 +16,17 @@ export const getScrollPoints = ({
|
|
|
16
16
|
scrollWidth: number;
|
|
17
17
|
childElementCount: number;
|
|
18
18
|
itemWidth: number;
|
|
19
|
-
}) => {
|
|
20
|
-
const scrollItemWidth = itemWidth + gap;
|
|
19
|
+
}): [number, number][] => {
|
|
21
20
|
const scrollableDistance = scrollWidth - clientWidth;
|
|
21
|
+
|
|
22
|
+
if (childElementCount === 2) {
|
|
23
|
+
return [
|
|
24
|
+
[0, scrollableDistance],
|
|
25
|
+
[scrollableDistance, scrollWidth],
|
|
26
|
+
];
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const scrollItemWidth = itemWidth + gap;
|
|
22
30
|
const edgeScrollDistance = clientWidth - gap - padding;
|
|
23
31
|
|
|
24
32
|
const lastScrollableIdx = childElementCount - 2;
|