@redneckz/wildless-cms-uni-blocks 0.2.32 → 0.2.33
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/dist/ContentPageContext.d.ts +2 -1
- package/dist/Header/Header.js +3 -2
- package/dist/Header/Header.js.map +1 -1
- package/dist/ProductTile.js +6 -4
- package/dist/ProductTile.js.map +1 -1
- package/dist/useLink.d.ts +6 -3
- package/dist/useLink.js +6 -5
- package/dist/useLink.js.map +1 -1
- package/dist/utils/url.d.ts +2 -0
- package/dist/utils/url.js +20 -1
- package/dist/utils/url.js.map +1 -1
- package/lib/ContentPageContext.d.ts +2 -1
- package/lib/Header/Header.js +3 -2
- package/lib/Header/Header.js.map +1 -1
- package/lib/ProductTile.js +6 -4
- package/lib/ProductTile.js.map +1 -1
- package/lib/useLink.d.ts +6 -3
- package/lib/useLink.js +6 -5
- package/lib/useLink.js.map +1 -1
- package/lib/utils/url.d.ts +2 -0
- package/lib/utils/url.js +17 -0
- package/lib/utils/url.js.map +1 -1
- package/package.json +1 -1
|
@@ -11,9 +11,10 @@ export interface LikeService {
|
|
|
11
11
|
like: () => void;
|
|
12
12
|
dislike: () => void;
|
|
13
13
|
}
|
|
14
|
+
export declare type HandlerDecorator = <F extends Function>(handler: F) => F;
|
|
14
15
|
export interface ContentPageContext {
|
|
15
16
|
useRouter: () => Router;
|
|
16
17
|
useSitemap: () => HeaderContent;
|
|
17
18
|
useLikeService: () => LikeService;
|
|
18
|
-
handlerDecorator?:
|
|
19
|
+
handlerDecorator?: HandlerDecorator;
|
|
19
20
|
}
|
package/dist/Header/Header.js
CHANGED
|
@@ -13,12 +13,13 @@ const mergeTopItems_1 = require("./mergeTopItems");
|
|
|
13
13
|
exports.Header = (0, uni_jsx_1.JSX)(({ className, location, context, topItems }) => {
|
|
14
14
|
const router = context.useRouter();
|
|
15
15
|
const sitemap = context.useSitemap();
|
|
16
|
+
const { handlerDecorator } = context;
|
|
16
17
|
const mergedItems = (0, mergeTopItems_1.mergeTopItems)(sitemap.topItems, topItems);
|
|
17
18
|
const activeTopItem = mergedItems.find((0, isTopItemActive_1.isTopItemActive)(router));
|
|
18
19
|
const subItems = activeTopItem?.items;
|
|
19
20
|
const activeSubItem = subItems?.find((0, isSubItemActive_1.isSubItemActive)(router));
|
|
20
|
-
const topMenu = mergedItems.map((_, i) => ((0, jsx_runtime_1.jsx)(TopItem_1.TopItem, { active: _ === activeTopItem, ...(0, useLink_1.useLink)(
|
|
21
|
-
const subMenu = subItems?.map((_) => ((0, jsx_runtime_1.jsx)(HeaderItem_1.HeaderItem, { className: "mr-8", active: _ === activeSubItem, ...(0, useLink_1.useLink)(
|
|
21
|
+
const topMenu = mergedItems.map((_, i) => ((0, jsx_runtime_1.jsx)(TopItem_1.TopItem, { active: _ === activeTopItem, ...(0, useLink_1.useLink)({ router, handlerDecorator }, _) }, String(i))));
|
|
22
|
+
const subMenu = subItems?.map((_) => ((0, jsx_runtime_1.jsx)(HeaderItem_1.HeaderItem, { className: "mr-8", active: _ === activeSubItem, ...(0, useLink_1.useLink)({ router, handlerDecorator }, _) }, _.href)));
|
|
22
23
|
return ((0, jsx_runtime_1.jsxs)("div", { className: `pt-5 pb-8 px-20 bg-white rounded-bl-3xl rounded-br-3xl ${className || ''}`, children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center", children: [(0, jsx_runtime_1.jsx)(Logo_1.Logo, { className: "mr-8" }), topMenu, (0, jsx_runtime_1.jsx)(HeaderSecondaryMenu_1.HeaderSecondaryMenu, { location: location, className: "ml-auto" })] }), (0, jsx_runtime_1.jsx)("div", { className: "mt-5 h-[1px] bg-main-divider" }), (0, jsx_runtime_1.jsx)("div", { className: "mt-5", children: subMenu })] }));
|
|
23
24
|
});
|
|
24
25
|
//# sourceMappingURL=Header.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/Header/Header.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AAExC,qDAAkD;AAClD,yCAAsC;AACtC,+CAA4C;AAC5C,wCAAqC;AAErC,+DAA4D;AAC5D,uDAAoD;AACpD,uDAAoD;AACpD,mDAAgD;AAOnC,QAAA,MAAM,GAAG,IAAA,aAAG,EAAc,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IACpF,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAErC,MAAM,WAAW,GAAG,IAAA,6BAAa,EAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,IAAA,iCAAe,EAAC,MAAM,CAAC,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,aAAa,EAAE,KAAK,CAAC;IACtC,MAAM,aAAa,GAAG,QAAQ,EAAE,IAAI,CAAC,IAAA,iCAAe,EAAC,MAAM,CAAC,CAAC,CAAC;IAE9D,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACxC,uBAAC,iBAAO,
|
|
1
|
+
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/Header/Header.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AAExC,qDAAkD;AAClD,yCAAsC;AACtC,+CAA4C;AAC5C,wCAAqC;AAErC,+DAA4D;AAC5D,uDAAoD;AACpD,uDAAoD;AACpD,mDAAgD;AAOnC,QAAA,MAAM,GAAG,IAAA,aAAG,EAAc,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IACpF,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IACrC,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAErC,MAAM,WAAW,GAAG,IAAA,6BAAa,EAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,IAAA,iCAAe,EAAC,MAAM,CAAC,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,aAAa,EAAE,KAAK,CAAC;IACtC,MAAM,aAAa,GAAG,QAAQ,EAAE,IAAI,CAAC,IAAA,iCAAe,EAAC,MAAM,CAAC,CAAC,CAAC;IAE9D,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACxC,uBAAC,iBAAO,IAEN,MAAM,EAAE,CAAC,KAAK,aAAa,KACvB,IAAA,iBAAO,EAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAFvC,MAAM,CAAC,CAAC,CAAC,CAGd,CACH,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACnC,uBAAC,uBAAU,IAET,SAAS,EAAC,MAAM,EAChB,MAAM,EAAE,CAAC,KAAK,aAAa,KACvB,IAAA,iBAAO,EAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAHvC,CAAC,CAAC,IAAI,CAIX,CACH,CAAC,CAAC;IAEH,OAAO,CACL,iCAAK,SAAS,EAAE,0DAA0D,SAAS,IAAI,EAAE,EAAE,aACzF,iCAAK,SAAS,EAAC,mBAAmB,aAChC,uBAAC,WAAI,IAAC,SAAS,EAAC,MAAM,GAAG,EACxB,OAAO,EACR,uBAAC,yCAAmB,IAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAC,SAAS,GAAG,IAC3D,EACN,gCAAK,SAAS,EAAC,8BAA8B,GAAG,EAChD,gCAAK,SAAS,EAAC,MAAM,YAAE,OAAO,GAAO,IACjC,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
package/dist/ProductTile.js
CHANGED
|
@@ -12,14 +12,16 @@ const productBlockStyleMap = {
|
|
|
12
12
|
primary: 'bg-white text-primary-text',
|
|
13
13
|
secondary: 'bg-brand text-white',
|
|
14
14
|
};
|
|
15
|
-
exports.ProductTile = (0, uni_jsx_1.JSX)(({ className, context, title, description, breadcrumbs, benefits, buttons, image, items, version = 'primary' }) => {
|
|
16
|
-
|
|
15
|
+
exports.ProductTile = (0, uni_jsx_1.JSX)(({ className, context, title, description, breadcrumbs, benefits, buttons, image, items, version = 'primary', }) => {
|
|
16
|
+
const router = context.useRouter();
|
|
17
|
+
const { handlerDecorator } = context;
|
|
18
|
+
return ((0, jsx_runtime_1.jsxs)("section", { className: `font-sans p-9 rounded-[40px] flex justify-between items-stretch relative ${className || ''} ${productBlockStyleMap[version]}`, children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col", children: [breadcrumbs?.length ? ((0, jsx_runtime_1.jsx)("div", { className: "text-xs mb-6", children: join((0, jsx_runtime_1.jsx)("span", { className: "text-secondary mx-2", children: "/" }))(breadcrumbs.map((breadcrumb, i) => ((0, jsx_runtime_1.jsx)(Breadcrumb_1.Breadcrumb, { ...(0, useLink_1.useLink)({ router, handlerDecorator }, { className: 'text-secondary', ...breadcrumb }) }, String(i))))) })) : null, title && (0, jsx_runtime_1.jsx)("h1", { className: "font-medium text-title m-0 whitespace-pre-wrap", children: title }), description && ((0, jsx_runtime_1.jsx)("div", { className: "font-normal text-base max-w-[600px] mt-4", children: description })), benefits?.length ? ((0, jsx_runtime_1.jsx)("div", { className: "flex gap-6 mt-7", children: benefits.map(renderBenefit) })) : null, items?.length ? ((0, jsx_runtime_1.jsx)("section", { className: "space-y-2.5 mt-5", role: "list", children: items.map((_, i) => ((0, jsx_runtime_1.jsx)(BlockItem_1.BlockItem, { text: _, version: version }, String(i)))) })) : null, buttons?.length ? ((0, jsx_runtime_1.jsx)("div", { className: "flex mt-auto gap-4", children: buttons.map((button, index) => renderButton((0, useLink_1.useLink)({ router, handlerDecorator }, button), index)) })) : null] }), image && (0, jsx_runtime_1.jsx)(Img_1.Img, { image: image, className: "absolute bottom-9 right-9" })] }));
|
|
17
19
|
});
|
|
18
20
|
function renderBenefit(benefit, i) {
|
|
19
21
|
return ((0, jsx_runtime_1.jsxs)("div", { className: "flex gap-4 items-center", children: [benefit.icon && ((0, jsx_runtime_1.jsx)("div", { className: "h-11 w-11 min-w-11 min-h-11 bg-main rounded-full p-[10px] box-border", children: Icons_1.Icons[benefit.icon]() })), (0, jsx_runtime_1.jsxs)("div", { className: "flex gap-1 flex-col h-full", children: [(0, jsx_runtime_1.jsx)("h4", { className: "font-medium text-xl m-0", children: benefit.label }), benefit.description && ((0, jsx_runtime_1.jsx)("div", { className: "font-normal text-sm text-secondary", children: benefit.description }))] })] }, String(i)));
|
|
20
22
|
}
|
|
21
|
-
function renderButton(button, i
|
|
22
|
-
return button?.text ? ((0, jsx_runtime_1.jsx)(Button_1.Button, { ...
|
|
23
|
+
function renderButton(button, i) {
|
|
24
|
+
return button?.text ? ((0, jsx_runtime_1.jsx)(Button_1.Button, { ...button, className: "mt-8", version: button.version }, String(i))) : null;
|
|
23
25
|
}
|
|
24
26
|
function join(sep) {
|
|
25
27
|
return (list) => list.reduce((acc, el) => (acc.length ? acc.concat(sep, el) : [el]), []);
|
package/dist/ProductTile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductTile.js","sourceRoot":"","sources":["../src/ProductTile.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AAExC,mCAAgC;AAChC,+BAA4B;AAE5B,kDAA+C;AAE/C,4CAAyC;AACzC,oDAAkE;AAClE,uCAAoC;AAwBpC,MAAM,oBAAoB,GAAiC;IACzD,OAAO,EAAE,4BAA4B;IACrC,SAAS,EAAE,qBAAqB;CACjC,
|
|
1
|
+
{"version":3,"file":"ProductTile.js","sourceRoot":"","sources":["../src/ProductTile.tsx"],"names":[],"mappings":"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"}
|
package/dist/useLink.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { HandlerDecorator, Router } from './ContentPageContext';
|
|
2
2
|
import type { LinkContent } from './ui-kit/Link';
|
|
3
|
-
export declare function useLink({
|
|
3
|
+
export declare function useLink({ router, handlerDecorator, }: {
|
|
4
|
+
router: Router;
|
|
5
|
+
handlerDecorator?: HandlerDecorator;
|
|
6
|
+
}, link: Partial<LinkContent>): {
|
|
7
|
+
href: string | undefined;
|
|
4
8
|
onClick: (ev: MouseEvent) => void;
|
|
5
9
|
text?: string | undefined;
|
|
6
|
-
href?: string | undefined;
|
|
7
10
|
target?: string | undefined;
|
|
8
11
|
};
|
package/dist/useLink.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
2
|
exports.useLink = void 0;
|
|
3
|
+
const url_1 = require("./utils/url");
|
|
3
4
|
const defaultHandlerDecorator = (_) => _;
|
|
4
|
-
function useLink({
|
|
5
|
-
const
|
|
6
|
-
const { href, target } = link;
|
|
5
|
+
function useLink({ router, handlerDecorator = defaultHandlerDecorator, }, link) {
|
|
6
|
+
const href = (0, url_1.toRelativeHref)(link.href, router.href);
|
|
7
7
|
return {
|
|
8
8
|
...link,
|
|
9
|
+
href,
|
|
9
10
|
onClick: handlerDecorator((ev) => {
|
|
10
|
-
const isLocalHref = href && !
|
|
11
|
-
const isLocalTarget = !target || target === '_self';
|
|
11
|
+
const isLocalHref = href && !(0, url_1.isURL)(href);
|
|
12
|
+
const isLocalTarget = !link.target || link.target === '_self';
|
|
12
13
|
if (isLocalHref && isLocalTarget) {
|
|
13
14
|
ev.preventDefault();
|
|
14
15
|
router.push(href);
|
package/dist/useLink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLink.js","sourceRoot":"","sources":["../src/useLink.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"useLink.js","sourceRoot":"","sources":["../src/useLink.ts"],"names":[],"mappings":";;AAEA,qCAAoD;AAEpD,MAAM,uBAAuB,GAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAE3D,SAAgB,OAAO,CACrB,EACE,MAAM,EACN,gBAAgB,GAAG,uBAAuB,GACc,EAC1D,IAA0B;IAE1B,MAAM,IAAI,GAAG,IAAA,oBAAc,EAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD,OAAO;QACL,GAAG,IAAI;QACP,IAAI;QACJ,OAAO,EAAE,gBAAgB,CAAC,CAAC,EAAc,EAAE,EAAE;YAC3C,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,IAAA,WAAK,EAAC,IAAI,CAAC,CAAC;YACzC,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC;YAC9D,IAAI,WAAW,IAAI,aAAa,EAAE;gBAChC,EAAE,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnB;QACH,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AApBD,0BAoBC"}
|
package/dist/utils/url.d.ts
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
export declare const isURL: (href?: string | undefined) => boolean | undefined;
|
|
2
2
|
export declare const withoutQuery: (href?: string | undefined) => string;
|
|
3
|
+
export declare const getOrigin: (href?: string | undefined) => string | undefined;
|
|
4
|
+
export declare const toRelativeHref: (href?: string | undefined, baseURL?: string | undefined) => string | undefined;
|
package/dist/utils/url.js
CHANGED
|
@@ -1,7 +1,26 @@
|
|
|
1
1
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
-
exports.withoutQuery = exports.isURL = void 0;
|
|
2
|
+
exports.toRelativeHref = exports.getOrigin = exports.withoutQuery = exports.isURL = void 0;
|
|
3
3
|
const isURL = (href) => href?.includes('//');
|
|
4
4
|
exports.isURL = isURL;
|
|
5
5
|
const withoutQuery = (href) => (href || '').replace(/\/?\?.*/, '');
|
|
6
6
|
exports.withoutQuery = withoutQuery;
|
|
7
|
+
const getOrigin = (href) => {
|
|
8
|
+
if ((0, exports.isURL)(href)) {
|
|
9
|
+
const url = href;
|
|
10
|
+
const protoSeparator = '://';
|
|
11
|
+
const endOfProto = url.indexOf(protoSeparator);
|
|
12
|
+
const endOfOrigin = url.indexOf('/', endOfProto + protoSeparator.length);
|
|
13
|
+
return endOfOrigin !== -1 ? url.substring(0, endOfOrigin) : url;
|
|
14
|
+
}
|
|
15
|
+
return undefined;
|
|
16
|
+
};
|
|
17
|
+
exports.getOrigin = getOrigin;
|
|
18
|
+
const toRelativeHref = (href, baseURL) => {
|
|
19
|
+
if (!href) {
|
|
20
|
+
return href;
|
|
21
|
+
}
|
|
22
|
+
const origin = (0, exports.getOrigin)(baseURL);
|
|
23
|
+
return origin ? href.replace(origin, '') || '/' : href;
|
|
24
|
+
};
|
|
25
|
+
exports.toRelativeHref = toRelativeHref;
|
|
7
26
|
//# sourceMappingURL=url.js.map
|
package/dist/utils/url.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":";;AAAO,MAAM,KAAK,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AAAhD,QAAA,KAAK,SAA2C;AAEtD,MAAM,YAAY,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAAtE,QAAA,YAAY,gBAA0D"}
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":";;AAAO,MAAM,KAAK,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AAAhD,QAAA,KAAK,SAA2C;AAEtD,MAAM,YAAY,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAAtE,QAAA,YAAY,gBAA0D;AAE5E,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,EAAE;IACzC,IAAI,IAAA,aAAK,EAAC,IAAI,CAAC,EAAE;QACf,MAAM,GAAG,GAAG,IAAK,CAAC;QAClB,MAAM,cAAc,GAAG,KAAK,CAAC;QAC7B,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACzE,OAAO,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;KACjE;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AATW,QAAA,SAAS,aASpB;AAEK,MAAM,cAAc,GAAG,CAAC,IAAa,EAAE,OAAgB,EAAE,EAAE;IAChE,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,IAAI,CAAC;KACb;IACD,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,OAAO,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB"}
|
|
@@ -11,9 +11,10 @@ export interface LikeService {
|
|
|
11
11
|
like: () => void;
|
|
12
12
|
dislike: () => void;
|
|
13
13
|
}
|
|
14
|
+
export declare type HandlerDecorator = <F extends Function>(handler: F) => F;
|
|
14
15
|
export interface ContentPageContext {
|
|
15
16
|
useRouter: () => Router;
|
|
16
17
|
useSitemap: () => HeaderContent;
|
|
17
18
|
useLikeService: () => LikeService;
|
|
18
|
-
handlerDecorator?:
|
|
19
|
+
handlerDecorator?: HandlerDecorator;
|
|
19
20
|
}
|
package/lib/Header/Header.js
CHANGED
|
@@ -11,12 +11,13 @@ import { mergeTopItems } from './mergeTopItems.js';
|
|
|
11
11
|
export const Header = JSX(({ className, location, context, topItems }) => {
|
|
12
12
|
const router = context.useRouter();
|
|
13
13
|
const sitemap = context.useSitemap();
|
|
14
|
+
const { handlerDecorator } = context;
|
|
14
15
|
const mergedItems = mergeTopItems(sitemap.topItems, topItems);
|
|
15
16
|
const activeTopItem = mergedItems.find(isTopItemActive(router));
|
|
16
17
|
const subItems = activeTopItem?.items;
|
|
17
18
|
const activeSubItem = subItems?.find(isSubItemActive(router));
|
|
18
|
-
const topMenu = mergedItems.map((_, i) => (_jsx(TopItem, { active: _ === activeTopItem, ...useLink(
|
|
19
|
-
const subMenu = subItems?.map((_) => (_jsx(HeaderItem, { className: "mr-8", active: _ === activeSubItem, ...useLink(
|
|
19
|
+
const topMenu = mergedItems.map((_, i) => (_jsx(TopItem, { active: _ === activeTopItem, ...useLink({ router, handlerDecorator }, _) }, String(i))));
|
|
20
|
+
const subMenu = subItems?.map((_) => (_jsx(HeaderItem, { className: "mr-8", active: _ === activeSubItem, ...useLink({ router, handlerDecorator }, _) }, _.href)));
|
|
20
21
|
return (_jsxs("div", { className: `pt-5 pb-8 px-20 bg-white rounded-bl-3xl rounded-br-3xl ${className || ''}`, children: [_jsxs("div", { className: "flex items-center", children: [_jsx(Logo, { className: "mr-8" }), topMenu, _jsx(HeaderSecondaryMenu, { location: location, className: "ml-auto" })] }), _jsx("div", { className: "mt-5 h-[1px] bg-main-divider" }), _jsx("div", { className: "mt-5", children: subMenu })] }));
|
|
21
22
|
});
|
|
22
23
|
//# sourceMappingURL=Header.js.map
|
package/lib/Header/Header.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/Header/Header.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOhD,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAc,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IACpF,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAErC,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,aAAa,EAAE,KAAK,CAAC;IACtC,MAAM,aAAa,GAAG,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAE9D,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACxC,KAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/Header/Header.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOhD,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAc,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IACpF,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IACrC,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAErC,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,aAAa,EAAE,KAAK,CAAC;IACtC,MAAM,aAAa,GAAG,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAE9D,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACxC,KAAC,OAAO,IAEN,MAAM,EAAE,CAAC,KAAK,aAAa,KACvB,OAAO,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAFvC,MAAM,CAAC,CAAC,CAAC,CAGd,CACH,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACnC,KAAC,UAAU,IAET,SAAS,EAAC,MAAM,EAChB,MAAM,EAAE,CAAC,KAAK,aAAa,KACvB,OAAO,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAHvC,CAAC,CAAC,IAAI,CAIX,CACH,CAAC,CAAC;IAEH,OAAO,CACL,eAAK,SAAS,EAAE,0DAA0D,SAAS,IAAI,EAAE,EAAE,aACzF,eAAK,SAAS,EAAC,mBAAmB,aAChC,KAAC,IAAI,IAAC,SAAS,EAAC,MAAM,GAAG,EACxB,OAAO,EACR,KAAC,mBAAmB,IAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAC,SAAS,GAAG,IAC3D,EACN,cAAK,SAAS,EAAC,8BAA8B,GAAG,EAChD,cAAK,SAAS,EAAC,MAAM,YAAE,OAAO,GAAO,IACjC,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
package/lib/ProductTile.js
CHANGED
|
@@ -10,14 +10,16 @@ const productBlockStyleMap = {
|
|
|
10
10
|
primary: 'bg-white text-primary-text',
|
|
11
11
|
secondary: 'bg-brand text-white',
|
|
12
12
|
};
|
|
13
|
-
export const ProductTile = JSX(({ className, context, title, description, breadcrumbs, benefits, buttons, image, items, version = 'primary' }) => {
|
|
14
|
-
|
|
13
|
+
export const ProductTile = JSX(({ className, context, title, description, breadcrumbs, benefits, buttons, image, items, version = 'primary', }) => {
|
|
14
|
+
const router = context.useRouter();
|
|
15
|
+
const { handlerDecorator } = context;
|
|
16
|
+
return (_jsxs("section", { className: `font-sans p-9 rounded-[40px] flex justify-between items-stretch relative ${className || ''} ${productBlockStyleMap[version]}`, children: [_jsxs("div", { className: "flex flex-col", children: [breadcrumbs?.length ? (_jsx("div", { className: "text-xs mb-6", children: join(_jsx("span", { className: "text-secondary mx-2", children: "/" }))(breadcrumbs.map((breadcrumb, i) => (_jsx(Breadcrumb, { ...useLink({ router, handlerDecorator }, { className: 'text-secondary', ...breadcrumb }) }, String(i))))) })) : null, title && _jsx("h1", { className: "font-medium text-title m-0 whitespace-pre-wrap", children: title }), description && (_jsx("div", { className: "font-normal text-base max-w-[600px] mt-4", children: description })), benefits?.length ? (_jsx("div", { className: "flex gap-6 mt-7", children: benefits.map(renderBenefit) })) : null, items?.length ? (_jsx("section", { className: "space-y-2.5 mt-5", role: "list", children: items.map((_, i) => (_jsx(BlockItem, { text: _, version: version }, String(i)))) })) : null, buttons?.length ? (_jsx("div", { className: "flex mt-auto gap-4", children: buttons.map((button, index) => renderButton(useLink({ router, handlerDecorator }, button), index)) })) : null] }), image && _jsx(Img, { image: image, className: "absolute bottom-9 right-9" })] }));
|
|
15
17
|
});
|
|
16
18
|
function renderBenefit(benefit, i) {
|
|
17
19
|
return (_jsxs("div", { className: "flex gap-4 items-center", children: [benefit.icon && (_jsx("div", { className: "h-11 w-11 min-w-11 min-h-11 bg-main rounded-full p-[10px] box-border", children: Icons[benefit.icon]() })), _jsxs("div", { className: "flex gap-1 flex-col h-full", children: [_jsx("h4", { className: "font-medium text-xl m-0", children: benefit.label }), benefit.description && (_jsx("div", { className: "font-normal text-sm text-secondary", children: benefit.description }))] })] }, String(i)));
|
|
18
20
|
}
|
|
19
|
-
function renderButton(button, i
|
|
20
|
-
return button?.text ? (_jsx(Button, { ...
|
|
21
|
+
function renderButton(button, i) {
|
|
22
|
+
return button?.text ? (_jsx(Button, { ...button, className: "mt-8", version: button.version }, String(i))) : null;
|
|
21
23
|
}
|
|
22
24
|
function join(sep) {
|
|
23
25
|
return (list) => list.reduce((acc, el) => (acc.length ? acc.concat(sep, el) : [el]), []);
|
package/lib/ProductTile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductTile.js","sourceRoot":"","sources":["../src/ProductTile.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAmB,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC,MAAM,oBAAoB,GAAiC;IACzD,OAAO,EAAE,4BAA4B;IACrC,SAAS,EAAE,qBAAqB;CACjC,
|
|
1
|
+
{"version":3,"file":"ProductTile.js","sourceRoot":"","sources":["../src/ProductTile.tsx"],"names":[],"mappings":"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"}
|
package/lib/useLink.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { HandlerDecorator, Router } from './ContentPageContext';
|
|
2
2
|
import type { LinkContent } from './ui-kit/Link';
|
|
3
|
-
export declare function useLink({
|
|
3
|
+
export declare function useLink({ router, handlerDecorator, }: {
|
|
4
|
+
router: Router;
|
|
5
|
+
handlerDecorator?: HandlerDecorator;
|
|
6
|
+
}, link: Partial<LinkContent>): {
|
|
7
|
+
href: string | undefined;
|
|
4
8
|
onClick: (ev: MouseEvent) => void;
|
|
5
9
|
text?: string | undefined;
|
|
6
|
-
href?: string | undefined;
|
|
7
10
|
target?: string | undefined;
|
|
8
11
|
};
|
package/lib/useLink.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { isURL, toRelativeHref } from './utils/url.js';
|
|
1
2
|
const defaultHandlerDecorator = (_) => _;
|
|
2
|
-
export function useLink({
|
|
3
|
-
const
|
|
4
|
-
const { href, target } = link;
|
|
3
|
+
export function useLink({ router, handlerDecorator = defaultHandlerDecorator, }, link) {
|
|
4
|
+
const href = toRelativeHref(link.href, router.href);
|
|
5
5
|
return {
|
|
6
6
|
...link,
|
|
7
|
+
href,
|
|
7
8
|
onClick: handlerDecorator((ev) => {
|
|
8
|
-
const isLocalHref = href && !href
|
|
9
|
-
const isLocalTarget = !target || target === '_self';
|
|
9
|
+
const isLocalHref = href && !isURL(href);
|
|
10
|
+
const isLocalTarget = !link.target || link.target === '_self';
|
|
10
11
|
if (isLocalHref && isLocalTarget) {
|
|
11
12
|
ev.preventDefault();
|
|
12
13
|
router.push(href);
|
package/lib/useLink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLink.js","sourceRoot":"","sources":["../src/useLink.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useLink.js","sourceRoot":"","sources":["../src/useLink.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,uBAAuB,GAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAE3D,MAAM,UAAU,OAAO,CACrB,EACE,MAAM,EACN,gBAAgB,GAAG,uBAAuB,GACc,EAC1D,IAA0B;IAE1B,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD,OAAO;QACL,GAAG,IAAI;QACP,IAAI;QACJ,OAAO,EAAE,gBAAgB,CAAC,CAAC,EAAc,EAAE,EAAE;YAC3C,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC;YAC9D,IAAI,WAAW,IAAI,aAAa,EAAE;gBAChC,EAAE,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnB;QACH,CAAC,CAAC;KACH,CAAC;AACJ,CAAC"}
|
package/lib/utils/url.d.ts
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
export declare const isURL: (href?: string | undefined) => boolean | undefined;
|
|
2
2
|
export declare const withoutQuery: (href?: string | undefined) => string;
|
|
3
|
+
export declare const getOrigin: (href?: string | undefined) => string | undefined;
|
|
4
|
+
export declare const toRelativeHref: (href?: string | undefined, baseURL?: string | undefined) => string | undefined;
|
package/lib/utils/url.js
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
1
|
export const isURL = (href) => href?.includes('//');
|
|
2
2
|
export const withoutQuery = (href) => (href || '').replace(/\/?\?.*/, '');
|
|
3
|
+
export const getOrigin = (href) => {
|
|
4
|
+
if (isURL(href)) {
|
|
5
|
+
const url = href;
|
|
6
|
+
const protoSeparator = '://';
|
|
7
|
+
const endOfProto = url.indexOf(protoSeparator);
|
|
8
|
+
const endOfOrigin = url.indexOf('/', endOfProto + protoSeparator.length);
|
|
9
|
+
return endOfOrigin !== -1 ? url.substring(0, endOfOrigin) : url;
|
|
10
|
+
}
|
|
11
|
+
return undefined;
|
|
12
|
+
};
|
|
13
|
+
export const toRelativeHref = (href, baseURL) => {
|
|
14
|
+
if (!href) {
|
|
15
|
+
return href;
|
|
16
|
+
}
|
|
17
|
+
const origin = getOrigin(baseURL);
|
|
18
|
+
return origin ? href.replace(origin, '') || '/' : href;
|
|
19
|
+
};
|
|
3
20
|
//# sourceMappingURL=url.js.map
|
package/lib/utils/url.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAEnF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,EAAE;IACzC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;QACf,MAAM,GAAG,GAAG,IAAK,CAAC;QAClB,MAAM,cAAc,GAAG,KAAK,CAAC;QAC7B,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACzE,OAAO,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;KACjE;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAa,EAAE,OAAgB,EAAE,EAAE;IAChE,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,IAAI,CAAC;KACb;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC,CAAC"}
|