@gravity-ui/page-constructor 6.0.0-beta.0 → 6.0.0-beta.2
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/build/cjs/components/BackLink/BackLink.js +5 -2
- package/build/cjs/components/BackLink/BackLink.js.map +1 -1
- package/build/cjs/components/Button/Button.js +2 -3
- package/build/cjs/components/Button/Button.js.map +1 -1
- package/build/cjs/navigation/hooks/useActiveNavItem.d.ts +2 -2
- package/build/cjs/navigation/utils.d.ts +1 -1
- package/build/esm/components/BackLink/BackLink.js +5 -2
- package/build/esm/components/BackLink/BackLink.js.map +1 -1
- package/build/esm/components/Button/Button.js +3 -4
- package/build/esm/components/Button/Button.js.map +1 -1
- package/build/esm/navigation/hooks/useActiveNavItem.d.ts +2 -2
- package/build/esm/navigation/utils.d.ts +1 -1
- package/package.json +2 -2
|
@@ -28,7 +28,10 @@ function BackLink(props) {
|
|
|
28
28
|
history.push({ pathname: url });
|
|
29
29
|
}
|
|
30
30
|
}, [handleAnalytics, history, onClick, url]);
|
|
31
|
-
const
|
|
32
|
-
|
|
31
|
+
const buttonProps = {
|
|
32
|
+
href: shouldHandleBackAction ? undefined : url,
|
|
33
|
+
extraProps,
|
|
34
|
+
};
|
|
35
|
+
return ((0, jsx_runtime_1.jsxs)(uikit_1.Button, Object.assign({ className: className, view: theme === 'special' ? 'flat-contrast' : 'flat-secondary', size: size, onClick: shouldHandleBackAction ? backActionHandler : undefined, tabIndex: tabIndex }, buttonProps, { children: [(0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.ArrowLeft, size: 20 }), (0, jsx_runtime_1.jsx)("span", { children: title })] })));
|
|
33
36
|
}
|
|
34
37
|
//# sourceMappingURL=BackLink.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackLink.js","sourceRoot":"../../../../src","sources":["components/BackLink/BackLink.tsx"],"names":[],"mappings":";;AAsBA,
|
|
1
|
+
{"version":3,"file":"BackLink.js","sourceRoot":"../../../../src","sources":["components/BackLink/BackLink.tsx"],"names":[],"mappings":";;AAsBA,2BAmDC;;;AAzED,qDAA+B;AAE/B,6CAA4C;AAC5C,6CAA4F;AAE5F,4EAA8D;AAC9D,gDAAyC;AACzC,kDAAyD;AAezD,SAAwB,QAAQ,CAAC,KAAoB;IACjD,MAAM,EAAC,OAAO,EAAC,GAAG,KAAK,CAAC,UAAU,CAAC,iCAAe,CAAC,CAAC;IACpD,MAAM,EACF,GAAG,EACH,KAAK,EACL,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,GAAG,EACV,SAAS,EACT,sBAAsB,GAAG,KAAK,EAC9B,OAAO,EACP,QAAQ,EACR,UAAU,GACb,GAAG,KAAK,CAAC;IACV,MAAM,eAAe,GAAG,IAAA,oBAAY,EAAC,0BAAiB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAEzE,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QACnD,eAAe,EAAE,CAAC;QAElB,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO;QACX,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACd,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,EAAE,CAAC;QACrB,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,GAAG,EAAC,CAAC,CAAC;QAClC,CAAC;IACL,CAAC,EAAE,CAAC,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAE7C,MAAM,WAAW,GAAG;QAChB,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;QAC9C,UAAU;KACO,CAAC;IAEtB,OAAO,CACH,wBAAC,cAAM,kBACH,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,EAC9D,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,EAC/D,QAAQ,EAAE,QAAQ,IACd,WAAW,eAEf,uBAAC,YAAI,IAAC,IAAI,EAAE,iBAAS,EAAE,IAAI,EAAE,EAAE,GAAI,EACnC,2CAAO,KAAK,GAAQ,KACf,CACZ,CAAC;AACN,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {ArrowLeft} from '@gravity-ui/icons';\nimport {Button, ButtonSize, Icon, ButtonProps as UIKitButtonProps} from '@gravity-ui/uikit';\n\nimport {LocationContext} from '../../context/locationContext';\nimport {useAnalytics} from '../../hooks';\nimport {DefaultEventNames, Tabbable} from '../../models';\n\nexport type Theme = 'default' | 'special';\n\nexport interface BackLinkProps<T = HTMLElement> extends Tabbable {\n url: string;\n title: React.ReactNode;\n theme?: Theme;\n size?: ButtonSize;\n className?: string;\n shouldHandleBackAction?: boolean;\n onClick?: () => void;\n extraProps?: React.HTMLProps<T>;\n}\n\nexport default function BackLink(props: BackLinkProps) {\n const {history} = React.useContext(LocationContext);\n const {\n url,\n title,\n theme = 'default',\n size = 'l',\n className,\n shouldHandleBackAction = false,\n onClick,\n tabIndex,\n extraProps,\n } = props;\n const handleAnalytics = useAnalytics(DefaultEventNames.ShareButton, url);\n\n const backActionHandler = React.useCallback(async () => {\n handleAnalytics();\n\n if (!history) {\n return;\n }\n\n if (onClick) {\n onClick();\n }\n\n if (history.length > 1) {\n history.goBack();\n } else {\n history.push({pathname: url});\n }\n }, [handleAnalytics, history, onClick, url]);\n\n const buttonProps = {\n href: shouldHandleBackAction ? undefined : url,\n extraProps,\n } as UIKitButtonProps;\n\n return (\n <Button\n className={className}\n view={theme === 'special' ? 'flat-contrast' : 'flat-secondary'}\n size={size}\n onClick={shouldHandleBackAction ? backActionHandler : undefined}\n tabIndex={tabIndex}\n {...buttonProps}\n >\n <Icon data={ArrowLeft} size={20} />\n <span>{title}</span>\n </Button>\n );\n}\n"]}
|
|
@@ -32,7 +32,7 @@ const Button = (props) => {
|
|
|
32
32
|
const buttonClass = img
|
|
33
33
|
? b(Object.assign({ position: buttonImg.position }, buttonModifiers), className)
|
|
34
34
|
: b(Object.assign({}, buttonModifiers), className);
|
|
35
|
-
const buttonProps = Object.assign(Object.assign({}, rest), { onClick });
|
|
35
|
+
const buttonProps = Object.assign(Object.assign({}, rest), { href: url ? (0, utils_1.setUrlTld)(url, tld) : undefined, onClick });
|
|
36
36
|
if (theme === 'app-store' || theme === 'google-play') {
|
|
37
37
|
const platform = theme === 'app-store' ? uikit_1.Platform.IOS : uikit_1.Platform.ANDROID;
|
|
38
38
|
return (0, jsx_runtime_1.jsx)(components_1.StoreBadge, { className: buttonClass, platform: platform, href: url });
|
|
@@ -44,8 +44,7 @@ const Button = (props) => {
|
|
|
44
44
|
image = undefined;
|
|
45
45
|
}
|
|
46
46
|
const buttonTheme = theme === 'scale' ? 'accent' : theme;
|
|
47
|
-
|
|
48
|
-
return ((0, jsx_runtime_1.jsxs)(uikit_1.Button, Object.assign({ className: buttonClass, view: (0, utils_2.toCommonView)(buttonTheme), size: (0, utils_2.toCommonSize)(size), href: url ? (0, utils_1.setUrlTld)(url, tld) : undefined, title: urlTitle, width: width, component: buttonComponent }, buttonProps, { children: [icon && buttonImg.position === 'left' ? icon : null, (0, jsx_runtime_1.jsxs)("span", { className: b('content'), children: [image && buttonImg.position === 'left' ? image : null, (0, jsx_runtime_1.jsx)("span", { className: b('text'), children: text }), image && buttonImg.position === 'right' ? image : null] }), icon && buttonImg.position === 'right' ? icon : null] })));
|
|
47
|
+
return ((0, jsx_runtime_1.jsxs)(uikit_1.Button, Object.assign({ className: buttonClass, view: (0, utils_2.toCommonView)(buttonTheme), size: (0, utils_2.toCommonSize)(size), title: urlTitle, width: width }, buttonProps, { children: [icon && buttonImg.position === 'left' ? icon : null, (0, jsx_runtime_1.jsxs)("span", { className: b('content'), children: [image && buttonImg.position === 'left' ? image : null, (0, jsx_runtime_1.jsx)("span", { className: b('text'), children: text }), image && buttonImg.position === 'right' ? image : null] }), icon && buttonImg.position === 'right' ? icon : null] })));
|
|
49
48
|
};
|
|
50
49
|
exports.default = Button;
|
|
51
50
|
//# sourceMappingURL=Button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sourceRoot":"../../../../src","sources":["components/Button/Button.tsx"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAE/B,uDAAkD;AAClD,
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"../../../../src","sources":["components/Button/Button.tsx"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAE/B,uDAAkD;AAClD,6CAK2B;AAE3B,gFAAwE;AACxE,gDAAyC;AACzC,gDAAmC;AACnC,kDAAqF;AACrF,gDAA6C;AAE7C,0CAA4B;AAC5B,sCAA2F;AAU3F,MAAM,CAAC,GAAG,IAAA,aAAK,EAAC,cAAc,CAAC,CAAC;AAEhC,sCAAsC;AACtC,MAAM,MAAM,GAAG,CAAC,KAAkB,EAAE,EAAE;IAClC,MAAM,EAAC,GAAG,EAAC,GAAG,KAAK,CAAC,UAAU,CAAC,6BAAa,CAAC,CAAC;IAC9C,MAAM,EACF,SAAS,EACT,eAAe,EACf,IAAI,GAAG,GAAG,EACV,KAAK,GAAG,QAAQ,EAChB,GAAG,EACH,QAAQ,EACR,GAAG,EACH,OAAO,EAAE,aAAa,EACtB,IAAI,EACJ,KAAK,KAEL,KAAK,EADF,IAAI,kBACP,KAAK,EAZH,uGAYL,CAAQ,CAAC;IACV,MAAM,kBAAkB,GAAG,MAAM,CAAC;IAClC,MAAM,eAAe,GAAG,IAAA,oBAAY,EAAC,0BAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAC7B,CAAC,CAA0D,EAAE,EAAE;QAC3D,eAAe,CAAC,eAAe,CAAC,CAAC;QAEjC,IAAI,aAAa,EAAE,CAAC;YAChB,aAAa,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;IACL,CAAC,EACD,CAAC,eAAe,EAAE,eAAe,EAAE,aAAa,CAAC,CACpD,CAAC;IAEF,MAAM,eAAe,GAAG,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;IAE7C,MAAM,SAAS,GACX,GAAG,YAAY,MAAM;QACjB,CAAC,CAAC,EAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,kBAAkB,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAC;QAC5E,CAAC,CAAC,EAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAC,CAAC;IAEnD,MAAM,WAAW,GAAG,GAAG;QACnB,CAAC,CAAC,CAAC,iBAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAK,eAAe,GAAG,SAAS,CAAC;QAClE,CAAC,CAAC,CAAC,mBAAK,eAAe,GAAG,SAAS,CAAC,CAAC;IAEzC,MAAM,WAAW,mCACV,IAAI,KACP,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAA,iBAAS,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,EAC3C,OAAO,GACV,CAAC;IAEF,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,gBAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAQ,CAAC,OAAO,CAAC;QAEzE,OAAO,uBAAC,uBAAU,IAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAa,GAAI,CAAC;IAC3F,CAAC;IAED,IAAI,IAAI,CAAC;IACT,IAAI,KAAK,GAAG,GAAG,IAAI,CACf,gCAAK,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,IAAI,IAAA,WAAI,EAAC,WAAW,CAAC,GAAI,CAC9F,CAAC;IAEF,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrB,IAAI,GAAG,uBAAC,YAAI,IAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,cAAM,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,eAAO,GAAI,CAAC;QAC3E,KAAK,GAAG,SAAS,CAAC;IACtB,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IAEzD,OAAO,CACH,wBAAC,cAAY,kBACT,SAAS,EAAE,WAAW,EACtB,IAAI,EAAE,IAAA,oBAAY,EAAC,WAA6B,CAAC,EACjD,IAAI,EAAE,IAAA,oBAAY,EAAC,IAAqB,CAAC,EACzC,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,KAAK,IACP,WAAgC,eAEpC,IAAI,IAAI,SAAS,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EACpD,kCAAM,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,aACxB,KAAK,IAAI,SAAS,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EACtD,iCAAM,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,YAAG,IAAI,GAAQ,EACxC,KAAK,IAAI,SAAS,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IACpD,EACN,IAAI,IAAI,SAAS,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAC1C,CAClB,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,MAAM,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {StoreBadge} from '@gravity-ui/components';\nimport {\n Button as CommonButton,\n Icon,\n Platform,\n ButtonProps as UIKitButtonProps,\n} from '@gravity-ui/uikit';\n\nimport {LocaleContext} from '../../context/localeContext/localeContext';\nimport {useAnalytics} from '../../hooks';\nimport {Github} from '../../icons';\nimport {ButtonProps as ButtonParams, DefaultEventNames, QAProps} from '../../models';\nimport {block, setUrlTld} from '../../utils';\n\nimport {i18n} from './i18n';\nimport {ICON_QA, OldButtonSize, OldButtonTheme, toCommonSize, toCommonView} from './utils';\n\nimport './Button.scss';\n\nexport interface ButtonProps extends Omit<ButtonParams, 'url'>, QAProps {\n className?: string;\n url?: string;\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;\n}\n\nconst b = block('button-block');\n\n// eslint-disable-next-line complexity\nconst Button = (props: ButtonProps) => {\n const {tld} = React.useContext(LocaleContext);\n const {\n className,\n analyticsEvents,\n size = 'l',\n theme = 'normal',\n url,\n urlTitle,\n img,\n onClick: onClickOrigin,\n text,\n width,\n ...rest\n } = props;\n const defaultImgPosition = 'left';\n const handleAnalytics = useAnalytics(DefaultEventNames.Button, url);\n const onClick = React.useCallback(\n (e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => {\n handleAnalytics(analyticsEvents);\n\n if (onClickOrigin) {\n onClickOrigin(e);\n }\n },\n [handleAnalytics, analyticsEvents, onClickOrigin],\n );\n\n const buttonModifiers = {size, theme, width};\n\n const buttonImg =\n img instanceof Object\n ? {url: img.url, position: img.position || defaultImgPosition, alt: img.alt}\n : {url: img, position: defaultImgPosition};\n\n const buttonClass = img\n ? b({position: buttonImg.position, ...buttonModifiers}, className)\n : b({...buttonModifiers}, className);\n\n const buttonProps = {\n ...rest,\n href: url ? setUrlTld(url, tld) : undefined,\n onClick,\n };\n\n if (theme === 'app-store' || theme === 'google-play') {\n const platform = theme === 'app-store' ? Platform.IOS : Platform.ANDROID;\n\n return <StoreBadge className={buttonClass} platform={platform} href={url as string} />;\n }\n\n let icon;\n let image = img && (\n <img className={b('image')} src={buttonImg.url} alt={buttonImg.alt || i18n('image-alt')} />\n );\n\n if (theme === 'github') {\n icon = <Icon className={b('icon')} data={Github} size={24} qa={ICON_QA} />;\n image = undefined;\n }\n\n const buttonTheme = theme === 'scale' ? 'accent' : theme;\n\n return (\n <CommonButton\n className={buttonClass}\n view={toCommonView(buttonTheme as OldButtonTheme)}\n size={toCommonSize(size as OldButtonSize)}\n title={urlTitle}\n width={width}\n {...(buttonProps as UIKitButtonProps)}\n >\n {icon && buttonImg.position === 'left' ? icon : null}\n <span className={b('content')}>\n {image && buttonImg.position === 'left' ? image : null}\n <span className={b('text')}>{text}</span>\n {image && buttonImg.position === 'right' ? image : null}\n </span>\n {icon && buttonImg.position === 'right' ? icon : null}\n </CommonButton>\n );\n};\n\nexport default Button;\n"]}
|
|
@@ -23,7 +23,7 @@ declare const useActiveNavItem: (iconSize: number, leftItems: NavigationItemMode
|
|
|
23
23
|
analyticsEvents?: import("../../models/index.js").AnalyticsEventsProp;
|
|
24
24
|
size?: import("@gravity-ui/uikit").ButtonSize | undefined;
|
|
25
25
|
width?: import("@gravity-ui/uikit").ButtonWidth | undefined;
|
|
26
|
-
extraProps?: React.
|
|
26
|
+
extraProps?: React.AnchorHTMLAttributes<HTMLAnchorElement> | React.ButtonHTMLAttributes<HTMLButtonElement> | undefined;
|
|
27
27
|
} | {
|
|
28
28
|
type: import("../../models/index.js").NavigationItemType.Dropdown;
|
|
29
29
|
items: import("../../models/index.js").NavigationLinkItem[];
|
|
@@ -55,7 +55,7 @@ declare const useActiveNavItem: (iconSize: number, leftItems: NavigationItemMode
|
|
|
55
55
|
analyticsEvents?: import("../../models/index.js").AnalyticsEventsProp;
|
|
56
56
|
size?: import("@gravity-ui/uikit").ButtonSize | undefined;
|
|
57
57
|
width?: import("@gravity-ui/uikit").ButtonWidth | undefined;
|
|
58
|
-
extraProps?: React.
|
|
58
|
+
extraProps?: React.AnchorHTMLAttributes<HTMLAnchorElement> | React.ButtonHTMLAttributes<HTMLButtonElement> | undefined;
|
|
59
59
|
} | {
|
|
60
60
|
type: import("../../models/index.js").NavigationItemType.Dropdown;
|
|
61
61
|
items: import("../../models/index.js").NavigationLinkItem[];
|
|
@@ -29,7 +29,7 @@ export declare function getNavigationItemWithIconSize(iconSize?: number): (item:
|
|
|
29
29
|
analyticsEvents?: import("../models/index.js").AnalyticsEventsProp;
|
|
30
30
|
size?: import("@gravity-ui/uikit").ButtonSize | undefined;
|
|
31
31
|
width?: import("@gravity-ui/uikit").ButtonWidth | undefined;
|
|
32
|
-
extraProps?: React.
|
|
32
|
+
extraProps?: React.AnchorHTMLAttributes<HTMLAnchorElement> | React.ButtonHTMLAttributes<HTMLButtonElement> | undefined;
|
|
33
33
|
} | {
|
|
34
34
|
type: NavigationItemType.Dropdown;
|
|
35
35
|
items: NavigationLinkItem[];
|
|
@@ -24,7 +24,10 @@ export default function BackLink(props) {
|
|
|
24
24
|
history.push({ pathname: url });
|
|
25
25
|
}
|
|
26
26
|
}, [handleAnalytics, history, onClick, url]);
|
|
27
|
-
const
|
|
28
|
-
|
|
27
|
+
const buttonProps = {
|
|
28
|
+
href: shouldHandleBackAction ? undefined : url,
|
|
29
|
+
extraProps,
|
|
30
|
+
};
|
|
31
|
+
return (_jsxs(Button, Object.assign({ className: className, view: theme === 'special' ? 'flat-contrast' : 'flat-secondary', size: size, onClick: shouldHandleBackAction ? backActionHandler : undefined, tabIndex: tabIndex }, buttonProps, { children: [_jsx(Icon, { data: ArrowLeft, size: 20 }), _jsx("span", { children: title })] })));
|
|
29
32
|
}
|
|
30
33
|
//# sourceMappingURL=BackLink.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackLink.js","sourceRoot":"../../../../src","sources":["components/BackLink/BackLink.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAc,IAAI,
|
|
1
|
+
{"version":3,"file":"BackLink.js","sourceRoot":"../../../../src","sources":["components/BackLink/BackLink.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAc,IAAI,EAAkC,MAAM,mBAAmB,CAAC;AAE5F,OAAO,EAAC,eAAe,EAAC,+CAAsC;AAC9D,OAAO,EAAC,YAAY,EAAC,6BAAoB;AACzC,OAAO,EAAC,iBAAiB,EAAW,8BAAqB;AAezD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAoB;IACjD,MAAM,EAAC,OAAO,EAAC,GAAG,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IACpD,MAAM,EACF,GAAG,EACH,KAAK,EACL,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,GAAG,EACV,SAAS,EACT,sBAAsB,GAAG,KAAK,EAC9B,OAAO,EACP,QAAQ,EACR,UAAU,GACb,GAAG,KAAK,CAAC;IACV,MAAM,eAAe,GAAG,YAAY,CAAC,iBAAiB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAEzE,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QACnD,eAAe,EAAE,CAAC;QAElB,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO;QACX,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACd,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,EAAE,CAAC;QACrB,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,GAAG,EAAC,CAAC,CAAC;QAClC,CAAC;IACL,CAAC,EAAE,CAAC,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAE7C,MAAM,WAAW,GAAG;QAChB,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;QAC9C,UAAU;KACO,CAAC;IAEtB,OAAO,CACH,MAAC,MAAM,kBACH,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,EAC9D,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,EAC/D,QAAQ,EAAE,QAAQ,IACd,WAAW,eAEf,KAAC,IAAI,IAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,GAAI,EACnC,yBAAO,KAAK,GAAQ,KACf,CACZ,CAAC;AACN,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {ArrowLeft} from '@gravity-ui/icons';\nimport {Button, ButtonSize, Icon, ButtonProps as UIKitButtonProps} from '@gravity-ui/uikit';\n\nimport {LocationContext} from '../../context/locationContext';\nimport {useAnalytics} from '../../hooks';\nimport {DefaultEventNames, Tabbable} from '../../models';\n\nexport type Theme = 'default' | 'special';\n\nexport interface BackLinkProps<T = HTMLElement> extends Tabbable {\n url: string;\n title: React.ReactNode;\n theme?: Theme;\n size?: ButtonSize;\n className?: string;\n shouldHandleBackAction?: boolean;\n onClick?: () => void;\n extraProps?: React.HTMLProps<T>;\n}\n\nexport default function BackLink(props: BackLinkProps) {\n const {history} = React.useContext(LocationContext);\n const {\n url,\n title,\n theme = 'default',\n size = 'l',\n className,\n shouldHandleBackAction = false,\n onClick,\n tabIndex,\n extraProps,\n } = props;\n const handleAnalytics = useAnalytics(DefaultEventNames.ShareButton, url);\n\n const backActionHandler = React.useCallback(async () => {\n handleAnalytics();\n\n if (!history) {\n return;\n }\n\n if (onClick) {\n onClick();\n }\n\n if (history.length > 1) {\n history.goBack();\n } else {\n history.push({pathname: url});\n }\n }, [handleAnalytics, history, onClick, url]);\n\n const buttonProps = {\n href: shouldHandleBackAction ? undefined : url,\n extraProps,\n } as UIKitButtonProps;\n\n return (\n <Button\n className={className}\n view={theme === 'special' ? 'flat-contrast' : 'flat-secondary'}\n size={size}\n onClick={shouldHandleBackAction ? backActionHandler : undefined}\n tabIndex={tabIndex}\n {...buttonProps}\n >\n <Icon data={ArrowLeft} size={20} />\n <span>{title}</span>\n </Button>\n );\n}\n"]}
|
|
@@ -2,7 +2,7 @@ import { __rest } from "tslib";
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { StoreBadge } from '@gravity-ui/components';
|
|
5
|
-
import { Button as CommonButton, Icon, Platform } from '@gravity-ui/uikit';
|
|
5
|
+
import { Button as CommonButton, Icon, Platform, } from '@gravity-ui/uikit';
|
|
6
6
|
import { LocaleContext } from "../../context/localeContext/localeContext.js";
|
|
7
7
|
import { useAnalytics } from "../../hooks/index.js";
|
|
8
8
|
import { Github } from "../../icons/index.js";
|
|
@@ -31,7 +31,7 @@ const Button = (props) => {
|
|
|
31
31
|
const buttonClass = img
|
|
32
32
|
? b(Object.assign({ position: buttonImg.position }, buttonModifiers), className)
|
|
33
33
|
: b(Object.assign({}, buttonModifiers), className);
|
|
34
|
-
const buttonProps = Object.assign(Object.assign({}, rest), { onClick });
|
|
34
|
+
const buttonProps = Object.assign(Object.assign({}, rest), { href: url ? setUrlTld(url, tld) : undefined, onClick });
|
|
35
35
|
if (theme === 'app-store' || theme === 'google-play') {
|
|
36
36
|
const platform = theme === 'app-store' ? Platform.IOS : Platform.ANDROID;
|
|
37
37
|
return _jsx(StoreBadge, { className: buttonClass, platform: platform, href: url });
|
|
@@ -43,8 +43,7 @@ const Button = (props) => {
|
|
|
43
43
|
image = undefined;
|
|
44
44
|
}
|
|
45
45
|
const buttonTheme = theme === 'scale' ? 'accent' : theme;
|
|
46
|
-
|
|
47
|
-
return (_jsxs(CommonButton, Object.assign({ className: buttonClass, view: toCommonView(buttonTheme), size: toCommonSize(size), href: url ? setUrlTld(url, tld) : undefined, title: urlTitle, width: width, component: buttonComponent }, buttonProps, { children: [icon && buttonImg.position === 'left' ? icon : null, _jsxs("span", { className: b('content'), children: [image && buttonImg.position === 'left' ? image : null, _jsx("span", { className: b('text'), children: text }), image && buttonImg.position === 'right' ? image : null] }), icon && buttonImg.position === 'right' ? icon : null] })));
|
|
46
|
+
return (_jsxs(CommonButton, Object.assign({ className: buttonClass, view: toCommonView(buttonTheme), size: toCommonSize(size), title: urlTitle, width: width }, buttonProps, { children: [icon && buttonImg.position === 'left' ? icon : null, _jsxs("span", { className: b('content'), children: [image && buttonImg.position === 'left' ? image : null, _jsx("span", { className: b('text'), children: text }), image && buttonImg.position === 'right' ? image : null] }), icon && buttonImg.position === 'right' ? icon : null] })));
|
|
48
47
|
};
|
|
49
48
|
export default Button;
|
|
50
49
|
//# sourceMappingURL=Button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sourceRoot":"../../../../src","sources":["components/Button/Button.tsx"],"names":[],"mappings":";;AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"../../../../src","sources":["components/Button/Button.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {StoreBadge} from '@gravity-ui/components';\nimport {\n Button as CommonButton,\n Icon,\n Platform,\n ButtonProps as UIKitButtonProps,\n} from '@gravity-ui/uikit';\n\nimport {LocaleContext} from '../../context/localeContext/localeContext';\nimport {useAnalytics} from '../../hooks';\nimport {Github} from '../../icons';\nimport {ButtonProps as ButtonParams, DefaultEventNames, QAProps} from '../../models';\nimport {block, setUrlTld} from '../../utils';\n\nimport {i18n} from './i18n';\nimport {ICON_QA, OldButtonSize, OldButtonTheme, toCommonSize, toCommonView} from './utils';\n\nimport './Button.scss';\n\nexport interface ButtonProps extends Omit<ButtonParams, 'url'>, QAProps {\n className?: string;\n url?: string;\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;\n}\n\nconst b = block('button-block');\n\n// eslint-disable-next-line complexity\nconst Button = (props: ButtonProps) => {\n const {tld} = React.useContext(LocaleContext);\n const {\n className,\n analyticsEvents,\n size = 'l',\n theme = 'normal',\n url,\n urlTitle,\n img,\n onClick: onClickOrigin,\n text,\n width,\n ...rest\n } = props;\n const defaultImgPosition = 'left';\n const handleAnalytics = useAnalytics(DefaultEventNames.Button, url);\n const onClick = React.useCallback(\n (e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => {\n handleAnalytics(analyticsEvents);\n\n if (onClickOrigin) {\n onClickOrigin(e);\n }\n },\n [handleAnalytics, analyticsEvents, onClickOrigin],\n );\n\n const buttonModifiers = {size, theme, width};\n\n const buttonImg =\n img instanceof Object\n ? {url: img.url, position: img.position || defaultImgPosition, alt: img.alt}\n : {url: img, position: defaultImgPosition};\n\n const buttonClass = img\n ? b({position: buttonImg.position, ...buttonModifiers}, className)\n : b({...buttonModifiers}, className);\n\n const buttonProps = {\n ...rest,\n href: url ? setUrlTld(url, tld) : undefined,\n onClick,\n };\n\n if (theme === 'app-store' || theme === 'google-play') {\n const platform = theme === 'app-store' ? Platform.IOS : Platform.ANDROID;\n\n return <StoreBadge className={buttonClass} platform={platform} href={url as string} />;\n }\n\n let icon;\n let image = img && (\n <img className={b('image')} src={buttonImg.url} alt={buttonImg.alt || i18n('image-alt')} />\n );\n\n if (theme === 'github') {\n icon = <Icon className={b('icon')} data={Github} size={24} qa={ICON_QA} />;\n image = undefined;\n }\n\n const buttonTheme = theme === 'scale' ? 'accent' : theme;\n\n return (\n <CommonButton\n className={buttonClass}\n view={toCommonView(buttonTheme as OldButtonTheme)}\n size={toCommonSize(size as OldButtonSize)}\n title={urlTitle}\n width={width}\n {...(buttonProps as UIKitButtonProps)}\n >\n {icon && buttonImg.position === 'left' ? icon : null}\n <span className={b('content')}>\n {image && buttonImg.position === 'left' ? image : null}\n <span className={b('text')}>{text}</span>\n {image && buttonImg.position === 'right' ? image : null}\n </span>\n {icon && buttonImg.position === 'right' ? icon : null}\n </CommonButton>\n );\n};\n\nexport default Button;\n"]}
|
|
@@ -23,7 +23,7 @@ declare const useActiveNavItem: (iconSize: number, leftItems: NavigationItemMode
|
|
|
23
23
|
analyticsEvents?: import("../../index.js").AnalyticsEventsProp;
|
|
24
24
|
size?: import("@gravity-ui/uikit").ButtonSize | undefined;
|
|
25
25
|
width?: import("@gravity-ui/uikit").ButtonWidth | undefined;
|
|
26
|
-
extraProps?: React.
|
|
26
|
+
extraProps?: React.AnchorHTMLAttributes<HTMLAnchorElement> | React.ButtonHTMLAttributes<HTMLButtonElement> | undefined;
|
|
27
27
|
} | {
|
|
28
28
|
type: import("../../index.js").NavigationItemType.Dropdown;
|
|
29
29
|
items: import("../../index.js").NavigationLinkItem[];
|
|
@@ -55,7 +55,7 @@ declare const useActiveNavItem: (iconSize: number, leftItems: NavigationItemMode
|
|
|
55
55
|
analyticsEvents?: import("../../index.js").AnalyticsEventsProp;
|
|
56
56
|
size?: import("@gravity-ui/uikit").ButtonSize | undefined;
|
|
57
57
|
width?: import("@gravity-ui/uikit").ButtonWidth | undefined;
|
|
58
|
-
extraProps?: React.
|
|
58
|
+
extraProps?: React.AnchorHTMLAttributes<HTMLAnchorElement> | React.ButtonHTMLAttributes<HTMLButtonElement> | undefined;
|
|
59
59
|
} | {
|
|
60
60
|
type: import("../../index.js").NavigationItemType.Dropdown;
|
|
61
61
|
items: import("../../index.js").NavigationLinkItem[];
|
|
@@ -29,7 +29,7 @@ export declare function getNavigationItemWithIconSize(iconSize?: number): (item:
|
|
|
29
29
|
analyticsEvents?: import("../index.js").AnalyticsEventsProp;
|
|
30
30
|
size?: import("@gravity-ui/uikit").ButtonSize | undefined;
|
|
31
31
|
width?: import("@gravity-ui/uikit").ButtonWidth | undefined;
|
|
32
|
-
extraProps?: React.
|
|
32
|
+
extraProps?: React.AnchorHTMLAttributes<HTMLAnchorElement> | React.ButtonHTMLAttributes<HTMLButtonElement> | undefined;
|
|
33
33
|
} | {
|
|
34
34
|
type: NavigationItemType.Dropdown;
|
|
35
35
|
items: NavigationLinkItem[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gravity-ui/page-constructor",
|
|
3
|
-
"version": "6.0.0-beta.
|
|
3
|
+
"version": "6.0.0-beta.2",
|
|
4
4
|
"description": "Gravity UI Page Constructor",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "commonjs",
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
"@gravity-ui/prettier-config": "^1.1.0",
|
|
141
141
|
"@gravity-ui/stylelint-config": "^4.0.1",
|
|
142
142
|
"@gravity-ui/tsconfig": "^1.0.0",
|
|
143
|
-
"@gravity-ui/uikit": "^7.0.0-beta.
|
|
143
|
+
"@gravity-ui/uikit": "^7.0.0-beta.6",
|
|
144
144
|
"@playwright/experimental-ct-react": "^1.45.3",
|
|
145
145
|
"@playwright/test": "^1.45.3",
|
|
146
146
|
"@storybook/addon-actions": "8.0.5",
|