@servicetitan/navigation 11.0.0 → 11.1.1
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/components/badge-tag.js +7 -2
- package/dist/components/badge-tag.js.map +1 -1
- package/dist/components/counter-tag.js +10 -2
- package/dist/components/counter-tag.js.map +1 -1
- package/dist/components/header-navigation/header-navigation-content.js +44 -8
- package/dist/components/header-navigation/header-navigation-content.js.map +1 -1
- package/dist/components/header-navigation/header-navigation-links.js +49 -13
- package/dist/components/header-navigation/header-navigation-links.js.map +1 -1
- package/dist/components/header-navigation/header-navigation-stories.module.less.d.ts +3 -0
- package/dist/components/header-navigation/header-navigation.js +178 -46
- package/dist/components/header-navigation/header-navigation.js.map +1 -1
- package/dist/components/header-navigation/header-navigation.module.less.d.ts +22 -0
- package/dist/components/header-navigation/index.js +1 -0
- package/dist/components/header-navigation/index.js.map +1 -1
- package/dist/components/header-navigation/with-tooltip.js +7 -1
- package/dist/components/header-navigation/with-tooltip.js.map +1 -1
- package/dist/components/left-navigation/header-navigation-tiny-links.js +62 -15
- package/dist/components/left-navigation/header-navigation-tiny-links.js.map +1 -1
- package/dist/components/left-navigation/header-navigation-tiny.js +27 -2
- package/dist/components/left-navigation/header-navigation-tiny.js.map +1 -1
- package/dist/components/left-navigation/header-navigation-tiny.module.less.d.ts +15 -0
- package/dist/components/left-navigation/index.d.ts +1 -1
- package/dist/components/left-navigation/index.d.ts.map +1 -1
- package/dist/components/left-navigation/index.js +1 -1
- package/dist/components/left-navigation/index.js.map +1 -1
- package/dist/components/left-navigation/interface-internal.js +2 -1
- package/dist/components/left-navigation/interface-internal.js.map +1 -1
- package/dist/components/left-navigation/interface.js +2 -1
- package/dist/components/left-navigation/interface.js.map +1 -1
- package/dist/components/left-navigation/side-navigation-context.js +4 -3
- package/dist/components/left-navigation/side-navigation-context.js.map +1 -1
- package/dist/components/left-navigation/side-navigation-links-internal.js +76 -16
- package/dist/components/left-navigation/side-navigation-links-internal.js.map +1 -1
- package/dist/components/left-navigation/side-navigation-links.js +34 -13
- package/dist/components/left-navigation/side-navigation-links.js.map +1 -1
- package/dist/components/left-navigation/side-navigation.js +314 -85
- package/dist/components/left-navigation/side-navigation.js.map +1 -1
- package/dist/components/left-navigation/side-navigation.module.less.d.ts +48 -0
- package/dist/components/left-navigation/with-tooltip.js +12 -1
- package/dist/components/left-navigation/with-tooltip.js.map +1 -1
- package/dist/components/links.js +28 -7
- package/dist/components/links.js.map +1 -1
- package/dist/components/logo/logo-company-title.js +19 -3
- package/dist/components/logo/logo-company-title.js.map +1 -1
- package/dist/components/logo/logo-titan-text.js +50 -6
- package/dist/components/logo/logo-titan-text.js.map +1 -1
- package/dist/components/logo/logo-titan-text.module.less.d.ts +6 -0
- package/dist/components/logo/logo-titan.d.ts +1 -0
- package/dist/components/logo/logo-titan.d.ts.map +1 -1
- package/dist/components/logo/logo-titan.js +53 -8
- package/dist/components/logo/logo-titan.js.map +1 -1
- package/dist/components/profile-dropdown/profile-dropdown.d.ts.map +1 -1
- package/dist/components/profile-dropdown/profile-dropdown.js +174 -33
- package/dist/components/profile-dropdown/profile-dropdown.js.map +1 -1
- package/dist/components/profile-dropdown/profile-dropdown.module.less.d.ts +23 -0
- package/dist/components/profile-dropdown/profile-icon.js +49 -3
- package/dist/components/profile-dropdown/profile-icon.js.map +1 -1
- package/dist/components/titan-layout/index.d.ts +2 -2
- package/dist/components/titan-layout/index.d.ts.map +1 -1
- package/dist/components/titan-layout/index.js +1 -2
- package/dist/components/titan-layout/index.js.map +1 -1
- package/dist/components/titan-layout/interface-internal.js +2 -1
- package/dist/components/titan-layout/interface-internal.js.map +1 -1
- package/dist/components/titan-layout/interface.js +2 -1
- package/dist/components/titan-layout/interface.js.map +1 -1
- package/dist/components/titan-layout/layout-context.js +15 -6
- package/dist/components/titan-layout/layout-context.js.map +1 -1
- package/dist/components/titan-layout/layout-header-dark.d.ts +10 -0
- package/dist/components/titan-layout/layout-header-dark.d.ts.map +1 -0
- package/dist/components/titan-layout/layout-header-dark.js +146 -0
- package/dist/components/titan-layout/layout-header-dark.js.map +1 -0
- package/dist/components/titan-layout/layout-header-links.js +61 -15
- package/dist/components/titan-layout/layout-header-links.js.map +1 -1
- package/dist/components/titan-layout/layout-header.d.ts +2 -6
- package/dist/components/titan-layout/layout-header.d.ts.map +1 -1
- package/dist/components/titan-layout/layout-header.js +46 -2
- package/dist/components/titan-layout/layout-header.js.map +1 -1
- package/dist/components/titan-layout/layout-header.module.less +337 -83
- package/dist/components/titan-layout/layout-header.module.less.d.ts +35 -0
- package/dist/components/titan-layout/layout-logo.d.ts +5 -3
- package/dist/components/titan-layout/layout-logo.d.ts.map +1 -1
- package/dist/components/titan-layout/layout-logo.js +47 -9
- package/dist/components/titan-layout/layout-logo.js.map +1 -1
- package/dist/components/titan-layout/layout-logo.stories.d.ts +15 -4
- package/dist/components/titan-layout/layout-logo.stories.d.ts.map +1 -1
- package/dist/components/titan-layout/layout-profile.js +75 -23
- package/dist/components/titan-layout/layout-profile.js.map +1 -1
- package/dist/components/titan-layout/layout-sidebar-links-internal.js +162 -36
- package/dist/components/titan-layout/layout-sidebar-links-internal.js.map +1 -1
- package/dist/components/titan-layout/layout-sidebar-links.js +33 -13
- package/dist/components/titan-layout/layout-sidebar-links.js.map +1 -1
- package/dist/components/titan-layout/layout-sidebar.js +198 -34
- package/dist/components/titan-layout/layout-sidebar.js.map +1 -1
- package/dist/components/titan-layout/layout-sidebar.module.less +6 -2
- package/dist/components/titan-layout/layout-sidebar.module.less.d.ts +49 -0
- package/dist/components/titan-layout/notifications-context.js +20 -10
- package/dist/components/titan-layout/notifications-context.js.map +1 -1
- package/dist/components/titan-layout/titan-layout.d.ts +7 -8
- package/dist/components/titan-layout/titan-layout.d.ts.map +1 -1
- package/dist/components/titan-layout/titan-layout.js +271 -117
- package/dist/components/titan-layout/titan-layout.js.map +1 -1
- package/dist/components/titan-layout/titan-layout.module.less +7 -2
- package/dist/components/titan-layout/titan-layout.module.less.d.ts +17 -0
- package/dist/components/titan-layout/titan-layout.stories.d.ts +6 -0
- package/dist/components/titan-layout/titan-layout.stories.d.ts.map +1 -1
- package/dist/components/titan-layout/with-tooltip.d.ts +4 -1
- package/dist/components/titan-layout/with-tooltip.d.ts.map +1 -1
- package/dist/components/titan-layout/with-tooltip.js +13 -1
- package/dist/components/titan-layout/with-tooltip.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/test/data-stories.module.less.d.ts +3 -0
- package/dist/test/data.js +223 -90
- package/dist/test/data.js.map +1 -1
- package/dist/utils/counter-tag.js +2 -1
- package/dist/utils/counter-tag.js.map +1 -1
- package/dist/utils/navigation-context.js +12 -6
- package/dist/utils/navigation-context.js.map +1 -1
- package/dist/utils/navigation-legacy.js +2 -1
- package/dist/utils/navigation-legacy.js.map +1 -1
- package/dist/utils/navigation.js +2 -1
- package/dist/utils/navigation.js.map +1 -1
- package/dist/utils/side-nav.js +9 -6
- package/dist/utils/side-nav.js.map +1 -1
- package/dist/utils/use-breakpoint.js +11 -8
- package/dist/utils/use-breakpoint.js.map +1 -1
- package/package.json +4 -4
- package/src/components/left-navigation/index.ts +1 -1
- package/src/components/logo/logo-titan.tsx +3 -1
- package/src/components/profile-dropdown/profile-dropdown.tsx +8 -4
- package/src/components/titan-layout/index.ts +2 -2
- package/src/components/titan-layout/layout-header-dark.tsx +186 -0
- package/src/components/titan-layout/layout-header-links.tsx +1 -1
- package/src/components/titan-layout/layout-header.module.less +337 -83
- package/src/components/titan-layout/layout-header.module.less.d.ts +19 -2
- package/src/components/titan-layout/layout-header.tsx +13 -16
- package/src/components/titan-layout/layout-logo.stories.tsx +103 -15
- package/src/components/titan-layout/layout-logo.tsx +33 -36
- package/src/components/titan-layout/layout-profile.stories.tsx +1 -1
- package/src/components/titan-layout/layout-sidebar.module.less +6 -2
- package/src/components/titan-layout/layout-sidebar.tsx +1 -1
- package/src/components/titan-layout/titan-layout.module.less +7 -2
- package/src/components/titan-layout/titan-layout.module.less.d.ts +2 -1
- package/src/components/titan-layout/titan-layout.stories.tsx +80 -23
- package/src/components/titan-layout/titan-layout.tsx +96 -85
- package/src/components/titan-layout/with-tooltip.tsx +5 -2
- package/src/index.ts +4 -5
- package/dist/components/header-navigation/header-navigation-extra-stacked.stories.js +0 -13
- package/dist/components/header-navigation/header-navigation-extra-stacked.stories.js.map +0 -1
- package/dist/components/header-navigation/header-navigation-extra.stories.js +0 -29
- package/dist/components/header-navigation/header-navigation-extra.stories.js.map +0 -1
- package/dist/components/header-navigation/header-navigation-stacked.stories.js +0 -50
- package/dist/components/header-navigation/header-navigation-stacked.stories.js.map +0 -1
- package/dist/components/header-navigation/header-navigation.stories.js +0 -54
- package/dist/components/header-navigation/header-navigation.stories.js.map +0 -1
- package/dist/components/layout.stories.js +0 -29
- package/dist/components/layout.stories.js.map +0 -1
- package/dist/components/left-navigation/header-navigation-extra-tiny.stories.js +0 -13
- package/dist/components/left-navigation/header-navigation-extra-tiny.stories.js.map +0 -1
- package/dist/components/left-navigation/header-navigation-tiny.stories.js +0 -30
- package/dist/components/left-navigation/header-navigation-tiny.stories.js.map +0 -1
- package/dist/components/left-navigation/side-navigation.stories.js +0 -115
- package/dist/components/left-navigation/side-navigation.stories.js.map +0 -1
- package/dist/components/logo/logo.stories.js +0 -20
- package/dist/components/logo/logo.stories.js.map +0 -1
- package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.js +0 -13
- package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.js.map +0 -1
- package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.js +0 -13
- package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.js.map +0 -1
- package/dist/components/profile-dropdown/profile-dropdown.stories.js +0 -51
- package/dist/components/profile-dropdown/profile-dropdown.stories.js.map +0 -1
- package/dist/components/titan-layout/layout-logo.stories.js +0 -17
- package/dist/components/titan-layout/layout-logo.stories.js.map +0 -1
- package/dist/components/titan-layout/layout-profile.stories.js +0 -13
- package/dist/components/titan-layout/layout-profile.stories.js.map +0 -1
- package/dist/components/titan-layout/titan-layout.stories.js +0 -83
- package/dist/components/titan-layout/titan-layout.stories.js.map +0 -1
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export const __esModule: true;
|
|
2
|
+
export const calculating: string;
|
|
3
|
+
export const center: string;
|
|
4
|
+
export const heBottom: string;
|
|
5
|
+
export const heTopCenter: string;
|
|
6
|
+
export const heTopLeft: string;
|
|
7
|
+
export const heTopRight: string;
|
|
8
|
+
export const header: string;
|
|
9
|
+
export const headerStacked: string;
|
|
10
|
+
export const navigationIcon: string;
|
|
11
|
+
export const navigationItem: string;
|
|
12
|
+
export const navigationItemActive: string;
|
|
13
|
+
export const navigationItemCounter: string;
|
|
14
|
+
export const navigationItemCounterLong: string;
|
|
15
|
+
export const navigationItemMain: string;
|
|
16
|
+
export const navigationItemOverflow: string;
|
|
17
|
+
export const navigationItemTitle: string;
|
|
18
|
+
export const navigationLink: string;
|
|
19
|
+
export const navigationOverflow: string;
|
|
20
|
+
export const overflowPopover: string;
|
|
21
|
+
export const right: string;
|
|
22
|
+
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/header-navigation/index.ts"],"sourcesContent":["export * from './header-navigation';\n"],"names":[],"mappings":"AAAA,cAAc,sBAAsB"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Tooltip } from '@servicetitan/design-system';
|
|
3
|
-
export const withTooltip = (element, tooltip, direction = 'b')
|
|
3
|
+
export const withTooltip = (element, tooltip, direction = 'b')=>tooltip ? /*#__PURE__*/ _jsx(Tooltip, {
|
|
4
|
+
el: "div",
|
|
5
|
+
direction: direction,
|
|
6
|
+
text: tooltip,
|
|
7
|
+
children: element
|
|
8
|
+
}) : element;
|
|
9
|
+
|
|
4
10
|
//# sourceMappingURL=with-tooltip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/header-navigation/with-tooltip.tsx"],"sourcesContent":["import { Tooltip, TooltipPropsStrict } from '@servicetitan/design-system';\nimport { ReactNode } from 'react';\n\nexport const withTooltip = (\n element: ReactNode,\n tooltip: string | undefined,\n direction: TooltipPropsStrict['direction'] = 'b'\n) =>\n tooltip ? (\n <Tooltip el=\"div\" direction={direction} text={tooltip}>\n {element}\n </Tooltip>\n ) : (\n element\n );\n"],"names":["Tooltip","withTooltip","element","tooltip","direction","el","text"],"mappings":";AAAA,SAASA,OAAO,QAA4B,8BAA8B;AAG1E,OAAO,MAAMC,cAAc,CACvBC,SACAC,SACAC,YAA6C,GAAG,GAEhDD,wBACI,KAACH;QAAQK,IAAG;QAAMD,WAAWA;QAAWE,MAAMH;kBACzCD;SAGLA,QACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createElement as _createElement } from "react";
|
|
2
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { createElement as _createElement } from "react";
|
|
3
3
|
import { Icon } from '@servicetitan/anvil2';
|
|
4
4
|
import classNames from 'classnames';
|
|
5
5
|
import { Fragment, useContext } from 'react';
|
|
@@ -9,24 +9,71 @@ import { CounterTag } from '../counter-tag';
|
|
|
9
9
|
// use v1 tooltips due to bug with v2 in monolith
|
|
10
10
|
import { withTooltip } from '../header-navigation/with-tooltip';
|
|
11
11
|
import * as Styles from './header-navigation-tiny.module.less';
|
|
12
|
-
/** Content for navigation items */
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
/** Content for navigation items */ export const HeaderNavigationItemContent = ({ counterClassName, icon, iconActive, label, labelClassName, tag })=>{
|
|
13
|
+
return /*#__PURE__*/ _jsxs(Fragment, {
|
|
14
|
+
children: [
|
|
15
|
+
!!icon && /*#__PURE__*/ _jsx(Icon, {
|
|
16
|
+
svg: icon,
|
|
17
|
+
className: Styles.navigationIcon
|
|
18
|
+
}),
|
|
19
|
+
!!iconActive && /*#__PURE__*/ _jsx(Icon, {
|
|
20
|
+
svg: iconActive,
|
|
21
|
+
className: classNames(Styles.navigationIcon, Styles.navigationIconActive)
|
|
22
|
+
}),
|
|
23
|
+
!!label && /*#__PURE__*/ _jsx("span", {
|
|
24
|
+
className: classNames(Styles.navigationItemLabel, labelClassName),
|
|
25
|
+
children: label
|
|
26
|
+
}),
|
|
27
|
+
!!tag && /*#__PURE__*/ _jsx(CounterTag, {
|
|
28
|
+
data: tag,
|
|
29
|
+
className: classNames(Styles.navigationItemCounter, counterClassName),
|
|
30
|
+
longClassName: Styles.navigationItemCounterLong
|
|
31
|
+
})
|
|
32
|
+
]
|
|
33
|
+
});
|
|
15
34
|
};
|
|
16
|
-
/** Navigation extra item with link */
|
|
17
|
-
export const HeaderNavigationLink = ({ id, to, hint, tooltip, className, counter, icon, iconActive, iconClassName, iconComponent, iconName, isActive, label, labelClassName, tag, target, ...rest }) => {
|
|
35
|
+
/** Navigation extra item with link */ export const HeaderNavigationLink = ({ id, to, hint, tooltip, className, counter, icon, iconActive, iconClassName, iconComponent, iconName, isActive, label, labelClassName, tag, target, ...rest })=>{
|
|
18
36
|
const NavigationComponent = useContext(NavigationComponentContext);
|
|
19
|
-
return withTooltip(_createElement(NavigationComponent, {
|
|
37
|
+
return withTooltip(/*#__PURE__*/ _createElement(NavigationComponent, {
|
|
38
|
+
"data-cy": `navigation-link-${id}`,
|
|
39
|
+
"data-pendo": `navigation-link-${id}`,
|
|
40
|
+
...rest,
|
|
41
|
+
key: id,
|
|
42
|
+
to: to,
|
|
43
|
+
title: hint,
|
|
44
|
+
className: classNames(Styles.navigationLink, className, {
|
|
20
45
|
[Styles.navigationItemActive]: isActive === true,
|
|
21
|
-
[Styles.navigationItemIconState]: !!icon && !!iconActive
|
|
22
|
-
}),
|
|
23
|
-
|
|
46
|
+
[Styles.navigationItemIconState]: !!icon && !!iconActive
|
|
47
|
+
}),
|
|
48
|
+
isActive: typeof isActive === 'function' ? isActive : undefined,
|
|
49
|
+
activeClassName: Styles.navigationItemActive,
|
|
50
|
+
target: target
|
|
51
|
+
}, /*#__PURE__*/ _jsx(HeaderNavigationItemContent, {
|
|
52
|
+
tag: getCounterTag(counter, tag),
|
|
53
|
+
icon: icon,
|
|
54
|
+
iconActive: iconActive,
|
|
55
|
+
label: label,
|
|
56
|
+
labelClassName: labelClassName
|
|
57
|
+
})), tooltip);
|
|
24
58
|
};
|
|
25
|
-
/** Navigation extra item with icon button */
|
|
26
|
-
|
|
27
|
-
|
|
59
|
+
/** Navigation extra item with icon button */ export const HeaderNavigationTrigger = ({ id, className, counter, icon, iconActive, iconName, isActive, hint, label, labelClassName, tag, tooltip, title, titleClassName, ...rest })=>{
|
|
60
|
+
return withTooltip(/*#__PURE__*/ _jsx("div", {
|
|
61
|
+
"data-cy": `navigation-trigger-${id}`,
|
|
62
|
+
"data-pendo": `navigation-trigger-${id}`,
|
|
63
|
+
...rest,
|
|
64
|
+
title: hint,
|
|
65
|
+
className: classNames(Styles.navigationLink, {
|
|
28
66
|
[Styles.navigationItemActive]: isActive === true,
|
|
29
|
-
[Styles.navigationItemIconState]: !!icon && !!iconActive
|
|
30
|
-
}, 'cursor-pointer', className),
|
|
67
|
+
[Styles.navigationItemIconState]: !!icon && !!iconActive
|
|
68
|
+
}, 'cursor-pointer', className),
|
|
69
|
+
children: /*#__PURE__*/ _jsx(HeaderNavigationItemContent, {
|
|
70
|
+
tag: getCounterTag(counter, tag),
|
|
71
|
+
icon: icon,
|
|
72
|
+
iconActive: iconActive,
|
|
73
|
+
label: label,
|
|
74
|
+
labelClassName: labelClassName
|
|
75
|
+
})
|
|
76
|
+
}), tooltip);
|
|
31
77
|
};
|
|
78
|
+
|
|
32
79
|
//# sourceMappingURL=header-navigation-tiny-links.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/left-navigation/header-navigation-tiny-links.tsx"],"sourcesContent":["import { Icon, IconProps } from '@servicetitan/anvil2';\nimport classNames from 'classnames';\nimport { FC, Fragment, useContext } from 'react';\nimport { NavigationComponentContext } from '../../utils/navigation-context';\nimport {\n HeaderNavigationLinkProps,\n HeaderNavigationTriggerProps,\n} from '../../utils/navigation-legacy';\nimport { getCounterTag } from '../../utils/side-nav';\nimport { CounterTag, CounterTagProps } from '../counter-tag';\n// use v1 tooltips due to bug with v2 in monolith\nimport { withTooltip } from '../header-navigation/with-tooltip';\nimport * as Styles from './header-navigation-tiny.module.less';\n\n/** Content for navigation items */\nexport const HeaderNavigationItemContent: FC<{\n tag?: CounterTagProps;\n counterClassName?: string;\n icon: IconProps['svg'] | undefined;\n iconActive: IconProps['svg'] | undefined;\n label?: string;\n labelClassName?: string;\n}> = ({ counterClassName, icon, iconActive, label, labelClassName, tag }) => {\n return (\n <Fragment>\n {!!icon && <Icon svg={icon} className={Styles.navigationIcon} />}\n {!!iconActive && (\n <Icon\n svg={iconActive}\n className={classNames(Styles.navigationIcon, Styles.navigationIconActive)}\n />\n )}\n\n {!!label && (\n <span className={classNames(Styles.navigationItemLabel, labelClassName)}>\n {label}\n </span>\n )}\n\n {!!tag && (\n <CounterTag\n data={tag}\n className={classNames(Styles.navigationItemCounter, counterClassName)}\n longClassName={Styles.navigationItemCounterLong}\n />\n )}\n </Fragment>\n );\n};\n\n/** Navigation extra item with link */\nexport const HeaderNavigationLink: FC<HeaderNavigationLinkProps> = ({\n id,\n to,\n hint,\n tooltip,\n className,\n counter,\n icon,\n iconActive,\n iconClassName,\n iconComponent,\n iconName,\n isActive,\n label,\n labelClassName,\n tag,\n target,\n ...rest\n}) => {\n const NavigationComponent = useContext(NavigationComponentContext);\n\n return withTooltip(\n <NavigationComponent\n data-cy={`navigation-link-${id}`}\n data-pendo={`navigation-link-${id}`}\n {...rest}\n key={id}\n to={to}\n title={hint}\n className={classNames(Styles.navigationLink, className, {\n [Styles.navigationItemActive]: isActive === true,\n [Styles.navigationItemIconState]: !!icon && !!iconActive,\n })}\n isActive={typeof isActive === 'function' ? isActive : undefined}\n activeClassName={Styles.navigationItemActive}\n target={target}\n >\n <HeaderNavigationItemContent\n tag={getCounterTag(counter, tag)}\n icon={icon}\n iconActive={iconActive}\n label={label}\n labelClassName={labelClassName}\n />\n </NavigationComponent>,\n tooltip\n );\n};\n\n/** Navigation extra item with icon button */\nexport const HeaderNavigationTrigger: FC<HeaderNavigationTriggerProps> = ({\n id,\n className,\n counter,\n icon,\n iconActive,\n iconName,\n isActive,\n hint,\n label,\n labelClassName,\n tag,\n tooltip,\n title,\n titleClassName,\n ...rest\n}) => {\n return withTooltip(\n <div\n data-cy={`navigation-trigger-${id}`}\n data-pendo={`navigation-trigger-${id}`}\n {...rest}\n title={hint}\n className={classNames(\n Styles.navigationLink,\n {\n [Styles.navigationItemActive]: isActive === true,\n [Styles.navigationItemIconState]: !!icon && !!iconActive,\n },\n 'cursor-pointer',\n className\n )}\n >\n <HeaderNavigationItemContent\n tag={getCounterTag(counter, tag)}\n icon={icon}\n iconActive={iconActive}\n label={label}\n labelClassName={labelClassName}\n />\n </div>,\n tooltip\n );\n};\n"],"names":["Icon","classNames","Fragment","useContext","NavigationComponentContext","getCounterTag","CounterTag","withTooltip","Styles","HeaderNavigationItemContent","counterClassName","icon","iconActive","label","labelClassName","tag","svg","className","navigationIcon","navigationIconActive","span","navigationItemLabel","data","navigationItemCounter","longClassName","navigationItemCounterLong","HeaderNavigationLink","id","to","hint","tooltip","counter","iconClassName","iconComponent","iconName","isActive","target","rest","NavigationComponent","data-cy","data-pendo","key","title","navigationLink","navigationItemActive","navigationItemIconState","undefined","activeClassName","HeaderNavigationTrigger","titleClassName","div"],"mappings":"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"}
|
|
@@ -1,7 +1,32 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import classNames from 'classnames';
|
|
3
3
|
import * as Styles from './header-navigation-tiny.module.less';
|
|
4
|
-
export const HeaderNavigationTiny = ({ className, id, left, leftClassName, right, rightClassName, center, centerClassName, minWidth = 800
|
|
5
|
-
return
|
|
4
|
+
export const HeaderNavigationTiny = ({ className, id, left, leftClassName, right, rightClassName, center, centerClassName, minWidth = 800 })=>{
|
|
5
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
6
|
+
className: classNames(Styles.headerTiny, className),
|
|
7
|
+
style: {
|
|
8
|
+
minWidth: `${minWidth}px`
|
|
9
|
+
},
|
|
10
|
+
id: id,
|
|
11
|
+
"data-cy": "header-navigation",
|
|
12
|
+
children: [
|
|
13
|
+
/*#__PURE__*/ _jsx("div", {
|
|
14
|
+
className: classNames(Styles.heTopLeft, leftClassName),
|
|
15
|
+
"data-cy": "navigation-left",
|
|
16
|
+
children: left
|
|
17
|
+
}),
|
|
18
|
+
/*#__PURE__*/ _jsx("div", {
|
|
19
|
+
className: classNames(Styles.heTopCenter, centerClassName),
|
|
20
|
+
"data-cy": "navigation-center",
|
|
21
|
+
children: center
|
|
22
|
+
}),
|
|
23
|
+
/*#__PURE__*/ _jsx("div", {
|
|
24
|
+
className: classNames('d-f flex-row justify-content-end align-items-center', Styles.heTopRight, rightClassName),
|
|
25
|
+
"data-cy": "navigation-right",
|
|
26
|
+
children: right
|
|
27
|
+
})
|
|
28
|
+
]
|
|
29
|
+
});
|
|
6
30
|
};
|
|
31
|
+
|
|
7
32
|
//# sourceMappingURL=header-navigation-tiny.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/left-navigation/header-navigation-tiny.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport { FC, ReactElement, ReactNode } from 'react';\nimport * as Styles from './header-navigation-tiny.module.less';\n\nexport interface HeaderNavigationTinyProps {\n /** container class name */\n className?: string;\n /** extra navigation */\n right?: ReactNode;\n /** extra navigation container class name */\n rightClassName?: string;\n /** container id */\n id?: string;\n /** left content (usually used for logo) */\n left?: ReactElement;\n /** left container class name */\n leftClassName?: string;\n /** center content */\n center?: ReactElement;\n /** center container class name */\n centerClassName?: string;\n /** minimal width for navigation bar */\n minWidth?: number;\n}\n\nexport const HeaderNavigationTiny: FC<HeaderNavigationTinyProps> = ({\n className,\n id,\n left,\n leftClassName,\n right,\n rightClassName,\n center,\n centerClassName,\n minWidth = 800,\n}) => {\n return (\n <div\n className={classNames(Styles.headerTiny, className)}\n style={{ minWidth: `${minWidth}px` }}\n id={id}\n data-cy=\"header-navigation\"\n >\n <div className={classNames(Styles.heTopLeft, leftClassName)} data-cy=\"navigation-left\">\n {left}\n </div>\n <div\n className={classNames(Styles.heTopCenter, centerClassName)}\n data-cy=\"navigation-center\"\n >\n {center}\n </div>\n <div\n className={classNames(\n 'd-f flex-row justify-content-end align-items-center',\n Styles.heTopRight,\n rightClassName\n )}\n data-cy=\"navigation-right\"\n >\n {right}\n </div>\n </div>\n );\n};\n"],"names":["classNames","Styles","HeaderNavigationTiny","className","id","left","leftClassName","right","rightClassName","center","centerClassName","minWidth","div","headerTiny","style","data-cy","heTopLeft","heTopCenter","heTopRight"],"mappings":";AAAA,OAAOA,gBAAgB,aAAa;AAEpC,YAAYC,YAAY,uCAAuC;AAuB/D,OAAO,MAAMC,uBAAsD,CAAC,EAChEC,SAAS,EACTC,EAAE,EACFC,IAAI,EACJC,aAAa,EACbC,KAAK,EACLC,cAAc,EACdC,MAAM,EACNC,eAAe,EACfC,WAAW,GAAG,EACjB;IACG,qBACI,MAACC;QACGT,WAAWH,WAAWC,OAAOY,UAAU,EAAEV;QACzCW,OAAO;YAAEH,UAAU,GAAGA,SAAS,EAAE,CAAC;QAAC;QACnCP,IAAIA;QACJW,WAAQ;;0BAER,KAACH;gBAAIT,WAAWH,WAAWC,OAAOe,SAAS,EAAEV;gBAAgBS,WAAQ;0BAChEV;;0BAEL,KAACO;gBACGT,WAAWH,WAAWC,OAAOgB,WAAW,EAAEP;gBAC1CK,WAAQ;0BAEPN;;0BAEL,KAACG;gBACGT,WAAWH,WACP,uDACAC,OAAOiB,UAAU,EACjBV;gBAEJO,WAAQ;0BAEPR;;;;AAIjB,EAAE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export const __esModule: true;
|
|
2
|
+
export const heTopCenter: string;
|
|
3
|
+
export const heTopLeft: string;
|
|
4
|
+
export const heTopRight: string;
|
|
5
|
+
export const headerTiny: string;
|
|
6
|
+
export const navigationIcon: string;
|
|
7
|
+
export const navigationIconActive: string;
|
|
8
|
+
export const navigationItemActive: string;
|
|
9
|
+
export const navigationItemCounter: string;
|
|
10
|
+
export const navigationItemCounterLong: string;
|
|
11
|
+
export const navigationItemIconState: string;
|
|
12
|
+
export const navigationItemLabel: string;
|
|
13
|
+
export const navigationItemOverflow: string;
|
|
14
|
+
export const navigationLink: string;
|
|
15
|
+
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/left-navigation/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/left-navigation/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,mBAAmB,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/left-navigation/index.ts"],"sourcesContent":["export * from './header-navigation-tiny';\nexport * from './side-navigation';\nexport * from './side-navigation-links';\nexport type * from './interface';\n"],"names":[],"mappings":"AAAA,cAAc,2BAA2B;AACzC,cAAc,oBAAoB;AAClC,cAAc,0BAA0B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/left-navigation/interface-internal.ts"],"sourcesContent":["import { FC } from 'react';\nimport { NavLinkComponentProps } from '../../utils/navigation-context';\nimport { SideNavigationExpandedState } from './interface';\n\nexport interface NavigationComponentProps {\n navigationComponent: FC<NavLinkComponentProps>;\n}\n\nexport interface SideNavigationExpandedProps {\n expanded?: SideNavigationExpandedState;\n}\n"],"names":[],"mappings":"AAQA,WAEC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/left-navigation/interface.ts"],"sourcesContent":["import { FC, ReactElement } from 'react';\nimport { NavigationItemData } from '../../utils/navigation';\nimport { SideNavigationContextType } from './side-navigation-context';\n\nexport interface SideNavigationExpandedState {\n // expanded bar (classic)\n bar: boolean;\n // expanded submenu item (classic)\n expandedSubmenu?: string;\n // collapsed bar (experimental submenu bar)\n collapsedBar?: boolean;\n}\n\nexport interface SideNavigationLinkWrapperProps {\n children: ReactElement<SideNavigationLinkProps> | ReactElement<SideNavigationTriggerProps>;\n context: SideNavigationContextType;\n}\n\nexport interface SideNavigationLinkProps extends Omit<NavigationItemData, 'submenu'> {\n wrapper?: FC<SideNavigationLinkWrapperProps>;\n}\nexport interface SideNavigationTriggerProps\n extends Omit<SideNavigationLinkProps, 'to' | 'isActive'> {\n isActive?: boolean;\n wrapper?: FC<SideNavigationLinkWrapperProps>;\n}\n"],"names":[],"mappings":"AAqBA,WAIC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { createContext } from 'react';
|
|
2
|
-
export const SideNavigationContext = createContext({
|
|
2
|
+
export const SideNavigationContext = /*#__PURE__*/ createContext({
|
|
3
3
|
styles: {
|
|
4
|
-
popoverContent: {}
|
|
5
|
-
}
|
|
4
|
+
popoverContent: {}
|
|
5
|
+
}
|
|
6
6
|
});
|
|
7
|
+
|
|
7
8
|
//# sourceMappingURL=side-navigation-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/left-navigation/side-navigation-context.tsx"],"sourcesContent":["import { CSSProperties, createContext } from 'react';\n\nexport interface SideNavigationContextType {\n styles: {\n popoverContent: CSSProperties;\n };\n}\n\nexport const SideNavigationContext = createContext<SideNavigationContextType>({\n styles: {\n popoverContent: {},\n },\n});\n"],"names":["createContext","SideNavigationContext","styles","popoverContent"],"mappings":"AAAA,SAAwBA,aAAa,QAAQ,QAAQ;AAQrD,OAAO,MAAMC,sCAAwBD,cAAyC;IAC1EE,QAAQ;QACJC,gBAAgB,CAAC;IACrB;AACJ,GAAG"}
|
|
@@ -6,24 +6,84 @@ import classNames from 'classnames';
|
|
|
6
6
|
import { Fragment } from 'react';
|
|
7
7
|
import { BadgeTag } from '../badge-tag';
|
|
8
8
|
import * as Styles from './side-navigation.module.less';
|
|
9
|
-
export const InternalSideNavigationItemContent = ({ icon, iconActive, iconClassName, iconComponent: IconComponent, tag, title, submenuExpanded, onExpandToggle
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
9
|
+
export const InternalSideNavigationItemContent = ({ icon, iconActive, iconClassName, iconComponent: IconComponent, tag, title, submenuExpanded, onExpandToggle })=>/*#__PURE__*/ _jsxs(Fragment, {
|
|
10
|
+
children: [
|
|
11
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
12
|
+
className: Styles.navigationItemIconWrapper,
|
|
13
|
+
children: [
|
|
14
|
+
IconComponent ? /*#__PURE__*/ _jsx("i", {
|
|
15
|
+
className: classNames(Styles.navigationIcon, iconClassName),
|
|
16
|
+
children: /*#__PURE__*/ _jsx(IconComponent, {})
|
|
17
|
+
}) : /*#__PURE__*/ _jsxs(Fragment, {
|
|
18
|
+
children: [
|
|
19
|
+
icon && /*#__PURE__*/ _jsx(Icon, {
|
|
20
|
+
svg: icon,
|
|
21
|
+
className: classNames(Styles.navigationIcon, Styles.navigationIconInactive, iconClassName)
|
|
22
|
+
}),
|
|
23
|
+
iconActive && /*#__PURE__*/ _jsx(Icon, {
|
|
24
|
+
svg: iconActive,
|
|
25
|
+
className: classNames(Styles.navigationIcon, Styles.navigationIconActive, iconClassName)
|
|
26
|
+
})
|
|
27
|
+
]
|
|
28
|
+
}),
|
|
29
|
+
/*#__PURE__*/ _jsx("div", {
|
|
30
|
+
className: Styles.navigationItemTextExpanded,
|
|
31
|
+
children: title
|
|
32
|
+
}),
|
|
33
|
+
!!tag && /*#__PURE__*/ _jsx(BadgeTag, {
|
|
34
|
+
data: tag,
|
|
35
|
+
className: Styles.navigationItemCounter,
|
|
36
|
+
longClassName: Styles.navigationItemCounterLong
|
|
37
|
+
}),
|
|
38
|
+
typeof submenuExpanded === 'boolean' && /*#__PURE__*/ _jsxs("div", {
|
|
39
|
+
className: Styles.navigationItemGroupToggleWrapper,
|
|
40
|
+
children: [
|
|
41
|
+
/*#__PURE__*/ _jsx(Icon, {
|
|
42
|
+
svg: submenuExpanded ? SvgGroupCollapse : SvgGroupExpand,
|
|
43
|
+
className: Styles.navigationItemGroupToggle,
|
|
44
|
+
onClick: onExpandToggle
|
|
45
|
+
}),
|
|
46
|
+
/*#__PURE__*/ _jsx("div", {
|
|
47
|
+
className: Styles.navigationItemGroupToggleClick,
|
|
48
|
+
onClick: onExpandToggle
|
|
49
|
+
})
|
|
50
|
+
]
|
|
51
|
+
})
|
|
52
|
+
]
|
|
53
|
+
}),
|
|
54
|
+
/*#__PURE__*/ _jsx("div", {
|
|
55
|
+
className: classNames(Styles.navigationItemTextCollapsed, {
|
|
56
|
+
[Styles.navigationItemTextSmall]: title.length >= 10
|
|
57
|
+
}),
|
|
58
|
+
children: title
|
|
59
|
+
})
|
|
60
|
+
]
|
|
61
|
+
});
|
|
62
|
+
export const internalNavigationContentContainerProps = ({ className, icon, iconActive, iconComponent, id, isActive, prefix })=>({
|
|
63
|
+
'data-cy': `${prefix}-${id}`,
|
|
64
|
+
'data-pendo': `${prefix}-${id}`,
|
|
65
|
+
'className': classNames(Styles.navigationItem, className, {
|
|
66
|
+
[Styles.navigationItemActive]: isActive === true,
|
|
67
|
+
[Styles.navigationItemIconSwitch]: !!icon && !!iconActive && !iconComponent
|
|
68
|
+
})
|
|
69
|
+
});
|
|
70
|
+
/** Side Navigation menu item (for internal usage) */ export const InternalSideNavigationLink = ({ to, className, dataPrefix, isActive, navigationComponent: NavigationComponent, submenuExpanded, onExpandToggle, ...props })=>{
|
|
71
|
+
return /*#__PURE__*/ _jsx(NavigationComponent, {
|
|
72
|
+
...internalNavigationContentContainerProps({
|
|
23
73
|
...props,
|
|
24
74
|
prefix: dataPrefix !== null && dataPrefix !== void 0 ? dataPrefix : 'navigation-item',
|
|
25
75
|
className,
|
|
26
|
-
isActive
|
|
27
|
-
}),
|
|
76
|
+
isActive
|
|
77
|
+
}),
|
|
78
|
+
to: to,
|
|
79
|
+
isActive: typeof isActive === 'function' ? isActive : undefined,
|
|
80
|
+
activeClassName: Styles.navigationItemActive,
|
|
81
|
+
children: /*#__PURE__*/ _jsx(InternalSideNavigationItemContent, {
|
|
82
|
+
submenuExpanded: submenuExpanded,
|
|
83
|
+
onExpandToggle: onExpandToggle,
|
|
84
|
+
...props
|
|
85
|
+
})
|
|
86
|
+
});
|
|
28
87
|
};
|
|
88
|
+
|
|
29
89
|
//# sourceMappingURL=side-navigation-links-internal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/left-navigation/side-navigation-links-internal.tsx"],"sourcesContent":["import { Icon } from '@servicetitan/anvil2';\nimport SvgGroupCollapse from '@servicetitan/anvil2/assets/icons/material/round/expand_less.svg';\nimport SvgGroupExpand from '@servicetitan/anvil2/assets/icons/material/round/expand_more.svg';\n\nimport classNames from 'classnames';\nimport { FC, Fragment, MouseEvent } from 'react';\nimport { NavigationItemData } from '../../utils/navigation';\nimport { BadgeTag, BadgeTagProps } from '../badge-tag';\nimport { SideNavigationTriggerProps } from './interface';\nimport { NavigationComponentProps, SideNavigationExpandedProps } from './interface-internal';\nimport * as Styles from './side-navigation.module.less';\n\nexport interface InternalSideNavigationItemContentProps\n extends Omit<NavigationItemData, 'iconName' | 'to' | 'counter' | 'tag'> {\n submenuExpanded: boolean | undefined;\n tag: BadgeTagProps | undefined;\n onExpandToggle?: (e: MouseEvent<never>) => void;\n}\n\nexport const InternalSideNavigationItemContent: FC<InternalSideNavigationItemContentProps> = ({\n icon,\n iconActive,\n iconClassName,\n iconComponent: IconComponent,\n tag,\n title,\n submenuExpanded,\n onExpandToggle,\n}) => (\n <Fragment>\n <div className={Styles.navigationItemIconWrapper}>\n {IconComponent ? (\n <i className={classNames(Styles.navigationIcon, iconClassName)}>\n <IconComponent />\n </i>\n ) : (\n <Fragment>\n {icon && (\n <Icon\n svg={icon}\n className={classNames(\n Styles.navigationIcon,\n Styles.navigationIconInactive,\n iconClassName\n )}\n />\n )}\n {iconActive && (\n <Icon\n svg={iconActive}\n className={classNames(\n Styles.navigationIcon,\n Styles.navigationIconActive,\n iconClassName\n )}\n />\n )}\n </Fragment>\n )}\n\n <div className={Styles.navigationItemTextExpanded}>{title}</div>\n {!!tag && (\n <BadgeTag\n data={tag}\n className={Styles.navigationItemCounter}\n longClassName={Styles.navigationItemCounterLong}\n />\n )}\n {typeof submenuExpanded === 'boolean' && (\n <div className={Styles.navigationItemGroupToggleWrapper}>\n <Icon\n svg={submenuExpanded ? SvgGroupCollapse : SvgGroupExpand}\n className={Styles.navigationItemGroupToggle}\n onClick={onExpandToggle}\n />\n <div\n className={Styles.navigationItemGroupToggleClick}\n onClick={onExpandToggle}\n />\n </div>\n )}\n </div>\n\n <div\n className={classNames(Styles.navigationItemTextCollapsed, {\n [Styles.navigationItemTextSmall]: title.length >= 10,\n })}\n >\n {title}\n </div>\n </Fragment>\n);\n\nexport interface InternalSideNavigationLinkProps\n extends Omit<NavigationItemData, 'iconName' | 'counter' | 'tag'>,\n NavigationComponentProps,\n SideNavigationExpandedProps {\n submenuExpanded: boolean | undefined;\n dataPrefix?: string;\n tag: BadgeTagProps | undefined;\n onExpandToggle?: (e: MouseEvent<never>) => void;\n}\n\nexport const internalNavigationContentContainerProps = ({\n className,\n icon,\n iconActive,\n iconComponent,\n id,\n isActive,\n prefix,\n}: Omit<SideNavigationTriggerProps, 'isActive' | 'tag'> & { prefix: string; isActive?: any }) => ({\n 'data-cy': `${prefix}-${id}`,\n 'data-pendo': `${prefix}-${id}`,\n 'className': classNames(Styles.navigationItem, className, {\n [Styles.navigationItemActive]: isActive === true,\n [Styles.navigationItemIconSwitch]: !!icon && !!iconActive && !iconComponent,\n }),\n});\n\n/** Side Navigation menu item (for internal usage) */\nexport const InternalSideNavigationLink: FC<InternalSideNavigationLinkProps> = ({\n to,\n className,\n dataPrefix,\n isActive,\n navigationComponent: NavigationComponent,\n submenuExpanded,\n onExpandToggle,\n ...props\n}) => {\n return (\n <NavigationComponent\n {...internalNavigationContentContainerProps({\n ...props,\n prefix: dataPrefix ?? 'navigation-item',\n className,\n isActive,\n })}\n to={to}\n isActive={typeof isActive === 'function' ? isActive : undefined}\n activeClassName={Styles.navigationItemActive}\n >\n <InternalSideNavigationItemContent\n submenuExpanded={submenuExpanded}\n onExpandToggle={onExpandToggle}\n {...props}\n />\n </NavigationComponent>\n );\n};\n"],"names":["Icon","SvgGroupCollapse","SvgGroupExpand","classNames","Fragment","BadgeTag","Styles","InternalSideNavigationItemContent","icon","iconActive","iconClassName","iconComponent","IconComponent","tag","title","submenuExpanded","onExpandToggle","div","className","navigationItemIconWrapper","i","navigationIcon","svg","navigationIconInactive","navigationIconActive","navigationItemTextExpanded","data","navigationItemCounter","longClassName","navigationItemCounterLong","navigationItemGroupToggleWrapper","navigationItemGroupToggle","onClick","navigationItemGroupToggleClick","navigationItemTextCollapsed","navigationItemTextSmall","length","internalNavigationContentContainerProps","id","isActive","prefix","navigationItem","navigationItemActive","navigationItemIconSwitch","InternalSideNavigationLink","to","dataPrefix","navigationComponent","NavigationComponent","props","undefined","activeClassName"],"mappings":";AAAA,SAASA,IAAI,QAAQ,uBAAuB;AAC5C,OAAOC,sBAAsB,mEAAmE;AAChG,OAAOC,oBAAoB,mEAAmE;AAE9F,OAAOC,gBAAgB,aAAa;AACpC,SAAaC,QAAQ,QAAoB,QAAQ;AAEjD,SAASC,QAAQ,QAAuB,eAAe;AAGvD,YAAYC,YAAY,gCAAgC;AASxD,OAAO,MAAMC,oCAAgF,CAAC,EAC1FC,IAAI,EACJC,UAAU,EACVC,aAAa,EACbC,eAAeC,aAAa,EAC5BC,GAAG,EACHC,KAAK,EACLC,eAAe,EACfC,cAAc,EACjB,iBACG,MAACZ;;0BACG,MAACa;gBAAIC,WAAWZ,OAAOa,yBAAyB;;oBAC3CP,8BACG,KAACQ;wBAAEF,WAAWf,WAAWG,OAAOe,cAAc,EAAEX;kCAC5C,cAAA,KAACE;uCAGL,MAACR;;4BACII,sBACG,KAACR;gCACGsB,KAAKd;gCACLU,WAAWf,WACPG,OAAOe,cAAc,EACrBf,OAAOiB,sBAAsB,EAC7Bb;;4BAIXD,4BACG,KAACT;gCACGsB,KAAKb;gCACLS,WAAWf,WACPG,OAAOe,cAAc,EACrBf,OAAOkB,oBAAoB,EAC3Bd;;;;kCAOpB,KAACO;wBAAIC,WAAWZ,OAAOmB,0BAA0B;kCAAGX;;oBACnD,CAAC,CAACD,qBACC,KAACR;wBACGqB,MAAMb;wBACNK,WAAWZ,OAAOqB,qBAAqB;wBACvCC,eAAetB,OAAOuB,yBAAyB;;oBAGtD,OAAOd,oBAAoB,2BACxB,MAACE;wBAAIC,WAAWZ,OAAOwB,gCAAgC;;0CACnD,KAAC9B;gCACGsB,KAAKP,kBAAkBd,mBAAmBC;gCAC1CgB,WAAWZ,OAAOyB,yBAAyB;gCAC3CC,SAAShB;;0CAEb,KAACC;gCACGC,WAAWZ,OAAO2B,8BAA8B;gCAChDD,SAAShB;;;;;;0BAMzB,KAACC;gBACGC,WAAWf,WAAWG,OAAO4B,2BAA2B,EAAE;oBACtD,CAAC5B,OAAO6B,uBAAuB,CAAC,EAAErB,MAAMsB,MAAM,IAAI;gBACtD;0BAECtB;;;OAGX;AAYF,OAAO,MAAMuB,0CAA0C,CAAC,EACpDnB,SAAS,EACTV,IAAI,EACJC,UAAU,EACVE,aAAa,EACb2B,EAAE,EACFC,QAAQ,EACRC,MAAM,EACkF,GAAM,CAAA;QAC9F,WAAW,GAAGA,OAAO,CAAC,EAAEF,IAAI;QAC5B,cAAc,GAAGE,OAAO,CAAC,EAAEF,IAAI;QAC/B,aAAanC,WAAWG,OAAOmC,cAAc,EAAEvB,WAAW;YACtD,CAACZ,OAAOoC,oBAAoB,CAAC,EAAEH,aAAa;YAC5C,CAACjC,OAAOqC,wBAAwB,CAAC,EAAE,CAAC,CAACnC,QAAQ,CAAC,CAACC,cAAc,CAACE;QAClE;IACJ,CAAA,EAAG;AAEH,mDAAmD,GACnD,OAAO,MAAMiC,6BAAkE,CAAC,EAC5EC,EAAE,EACF3B,SAAS,EACT4B,UAAU,EACVP,QAAQ,EACRQ,qBAAqBC,mBAAmB,EACxCjC,eAAe,EACfC,cAAc,EACd,GAAGiC,OACN;IACG,qBACI,KAACD;QACI,GAAGX,wCAAwC;YACxC,GAAGY,KAAK;YACRT,QAAQM,uBAAAA,wBAAAA,aAAc;YACtB5B;YACAqB;QACJ,EAAE;QACFM,IAAIA;QACJN,UAAU,OAAOA,aAAa,aAAaA,WAAWW;QACtDC,iBAAiB7C,OAAOoC,oBAAoB;kBAE5C,cAAA,KAACnC;YACGQ,iBAAiBA;YACjBC,gBAAgBA;YACf,GAAGiC,KAAK;;;AAIzB,EAAE"}
|
|
@@ -4,24 +4,45 @@ import { useContext } from 'react';
|
|
|
4
4
|
import { NavigationComponentContext } from '../../utils/navigation-context';
|
|
5
5
|
import { getCounterTag } from '../../utils/side-nav';
|
|
6
6
|
import { SideNavigationContext } from './side-navigation-context';
|
|
7
|
-
import { InternalSideNavigationItemContent, InternalSideNavigationLink, internalNavigationContentContainerProps
|
|
8
|
-
const WrappedLink = ({ children, wrapper: WrapperComponent })
|
|
9
|
-
return
|
|
7
|
+
import { InternalSideNavigationItemContent, InternalSideNavigationLink, internalNavigationContentContainerProps } from './side-navigation-links-internal';
|
|
8
|
+
const WrappedLink = ({ children, wrapper: WrapperComponent })=>{
|
|
9
|
+
return /*#__PURE__*/ _jsx(WrapperComponent, {
|
|
10
|
+
context: useContext(SideNavigationContext),
|
|
11
|
+
children: children
|
|
12
|
+
});
|
|
10
13
|
};
|
|
11
|
-
/** Side Navigation menu link */
|
|
12
|
-
export function SideNavigationLink({ wrapper, ...props }) {
|
|
14
|
+
/** Side Navigation menu link */ export function SideNavigationLink({ wrapper, ...props }) {
|
|
13
15
|
const NavigationComponent = useContext(NavigationComponentContext);
|
|
14
|
-
const element =
|
|
15
|
-
|
|
16
|
+
const element = /*#__PURE__*/ _jsx(InternalSideNavigationLink, {
|
|
17
|
+
...props,
|
|
18
|
+
navigationComponent: NavigationComponent,
|
|
19
|
+
submenuExpanded: undefined,
|
|
20
|
+
dataPrefix: "navigation-link",
|
|
21
|
+
tag: getCounterTag(props.counter, props.tag)
|
|
22
|
+
});
|
|
23
|
+
return wrapper ? /*#__PURE__*/ _jsx(WrappedLink, {
|
|
24
|
+
wrapper: wrapper,
|
|
25
|
+
children: element
|
|
26
|
+
}) : element;
|
|
16
27
|
}
|
|
17
|
-
/** Side Navigation menu trigger */
|
|
18
|
-
|
|
19
|
-
|
|
28
|
+
/** Side Navigation menu trigger */ export function SideNavigationTrigger({ wrapper, ...props }) {
|
|
29
|
+
const element = /*#__PURE__*/ _jsx("div", {
|
|
30
|
+
...internalNavigationContentContainerProps({
|
|
20
31
|
...props,
|
|
21
32
|
prefix: 'navigation-trigger',
|
|
22
33
|
className: classNames(props.className, 'cursor-pointer'),
|
|
23
|
-
isActive: props.isActive
|
|
24
|
-
}),
|
|
25
|
-
|
|
34
|
+
isActive: props.isActive
|
|
35
|
+
}),
|
|
36
|
+
children: /*#__PURE__*/ _jsx(InternalSideNavigationItemContent, {
|
|
37
|
+
submenuExpanded: undefined,
|
|
38
|
+
...props,
|
|
39
|
+
tag: getCounterTag(props.counter, props.tag)
|
|
40
|
+
})
|
|
41
|
+
});
|
|
42
|
+
return wrapper ? /*#__PURE__*/ _jsx(WrappedLink, {
|
|
43
|
+
wrapper: wrapper,
|
|
44
|
+
children: element
|
|
45
|
+
}) : element;
|
|
26
46
|
}
|
|
47
|
+
|
|
27
48
|
//# sourceMappingURL=side-navigation-links.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/left-navigation/side-navigation-links.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport { FC, ReactElement, useContext } from 'react';\nimport { NavigationComponentContext } from '../../utils/navigation-context';\nimport { getCounterTag } from '../../utils/side-nav';\nimport { SideNavigationLinkProps, SideNavigationTriggerProps } from './interface';\nimport { SideNavigationContext } from './side-navigation-context';\nimport {\n InternalSideNavigationItemContent,\n InternalSideNavigationLink,\n internalNavigationContentContainerProps,\n} from './side-navigation-links-internal';\n\nconst WrappedLink: FC<{\n children: ReactElement<any>;\n wrapper: NonNullable<SideNavigationLinkProps['wrapper']>;\n}> = ({ children, wrapper: WrapperComponent }) => {\n return (\n <WrapperComponent context={useContext(SideNavigationContext)}>{children}</WrapperComponent>\n );\n};\n/** Side Navigation menu link */\nexport function SideNavigationLink({ wrapper, ...props }: SideNavigationLinkProps) {\n const NavigationComponent = useContext(NavigationComponentContext);\n\n const element = (\n <InternalSideNavigationLink\n {...props}\n navigationComponent={NavigationComponent}\n submenuExpanded={undefined}\n dataPrefix=\"navigation-link\"\n tag={getCounterTag(props.counter, props.tag)}\n />\n );\n\n return wrapper ? <WrappedLink wrapper={wrapper}>{element}</WrappedLink> : element;\n}\n\n/** Side Navigation menu trigger */\nexport function SideNavigationTrigger({ wrapper, ...props }: SideNavigationTriggerProps) {\n const element = (\n <div\n {...internalNavigationContentContainerProps({\n ...props,\n prefix: 'navigation-trigger',\n className: classNames(props.className, 'cursor-pointer'),\n isActive: props.isActive,\n })}\n >\n <InternalSideNavigationItemContent\n submenuExpanded={undefined}\n {...props}\n tag={getCounterTag(props.counter, props.tag)}\n />\n </div>\n );\n return wrapper ? <WrappedLink wrapper={wrapper}>{element}</WrappedLink> : element;\n}\n"],"names":["classNames","useContext","NavigationComponentContext","getCounterTag","SideNavigationContext","InternalSideNavigationItemContent","InternalSideNavigationLink","internalNavigationContentContainerProps","WrappedLink","children","wrapper","WrapperComponent","context","SideNavigationLink","props","NavigationComponent","element","navigationComponent","submenuExpanded","undefined","dataPrefix","tag","counter","SideNavigationTrigger","div","prefix","className","isActive"],"mappings":";AAAA,OAAOA,gBAAgB,aAAa;AACpC,SAA2BC,UAAU,QAAQ,QAAQ;AACrD,SAASC,0BAA0B,QAAQ,iCAAiC;AAC5E,SAASC,aAAa,QAAQ,uBAAuB;AAErD,SAASC,qBAAqB,QAAQ,4BAA4B;AAClE,SACIC,iCAAiC,EACjCC,0BAA0B,EAC1BC,uCAAuC,QACpC,mCAAmC;AAE1C,MAAMC,cAGD,CAAC,EAAEC,QAAQ,EAAEC,SAASC,gBAAgB,EAAE;IACzC,qBACI,KAACA;QAAiBC,SAASX,WAAWG;kBAAyBK;;AAEvE;AACA,8BAA8B,GAC9B,OAAO,SAASI,mBAAmB,EAAEH,OAAO,EAAE,GAAGI,OAAgC;IAC7E,MAAMC,sBAAsBd,WAAWC;IAEvC,MAAMc,wBACF,KAACV;QACI,GAAGQ,KAAK;QACTG,qBAAqBF;QACrBG,iBAAiBC;QACjBC,YAAW;QACXC,KAAKlB,cAAcW,MAAMQ,OAAO,EAAER,MAAMO,GAAG;;IAInD,OAAOX,wBAAU,KAACF;QAAYE,SAASA;kBAAUM;SAAyBA;AAC9E;AAEA,iCAAiC,GACjC,OAAO,SAASO,sBAAsB,EAAEb,OAAO,EAAE,GAAGI,OAAmC;IACnF,MAAME,wBACF,KAACQ;QACI,GAAGjB,wCAAwC;YACxC,GAAGO,KAAK;YACRW,QAAQ;YACRC,WAAW1B,WAAWc,MAAMY,SAAS,EAAE;YACvCC,UAAUb,MAAMa,QAAQ;QAC5B,EAAE;kBAEF,cAAA,KAACtB;YACGa,iBAAiBC;YAChB,GAAGL,KAAK;YACTO,KAAKlB,cAAcW,MAAMQ,OAAO,EAAER,MAAMO,GAAG;;;IAIvD,OAAOX,wBAAU,KAACF;QAAYE,SAASA;kBAAUM;SAAyBA;AAC9E"}
|