@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
|
@@ -3,35 +3,69 @@ import SvgAccountActive from '@servicetitan/anvil2/assets/icons/st/gnav_account_
|
|
|
3
3
|
import SvgAccountInactive from '@servicetitan/anvil2/assets/icons/st/gnav_account_inactive.svg';
|
|
4
4
|
import { useEffect, useState } from 'react';
|
|
5
5
|
import { NavigationComponentContext } from '../../utils/navigation-context';
|
|
6
|
-
import { ProfileDropdown as DesktopProfileDropdown
|
|
6
|
+
import { ProfileDropdown as DesktopProfileDropdown } from '../profile-dropdown/profile-dropdown';
|
|
7
7
|
import { useTitanLayoutContext } from './layout-context';
|
|
8
|
-
import { InternalSideNavigationGroup, InternalSideNavigationGroupDivider, InternalSideNavigationGroupLink, InternalSideNavigationGroupTrigger
|
|
8
|
+
import { InternalSideNavigationGroup, InternalSideNavigationGroupDivider, InternalSideNavigationGroupLink, InternalSideNavigationGroupTrigger } from './layout-sidebar-links-internal';
|
|
9
9
|
import { useNotificationsContext, useNotificationsState } from './notifications-context';
|
|
10
|
-
const ExternalNavComponent = ({ children, isActive, to, activeClassName, ...props })
|
|
11
|
-
|
|
10
|
+
const ExternalNavComponent = ({ children, isActive, to, activeClassName, ...props })=>/*#__PURE__*/ _jsx("a", {
|
|
11
|
+
...props,
|
|
12
|
+
href: to,
|
|
13
|
+
children: children
|
|
14
|
+
});
|
|
15
|
+
const ProfileDropdownContent = (props)=>{
|
|
12
16
|
const { isTitanLayout, breakpoint, NavigationComponent } = useTitanLayoutContext();
|
|
13
|
-
return breakpoint.isMobile ?
|
|
17
|
+
return breakpoint.isMobile ? /*#__PURE__*/ _jsx(MobileProfileDropdown, {
|
|
18
|
+
...props,
|
|
19
|
+
navigationComponent: NavigationComponent
|
|
20
|
+
}) : isTitanLayout ? /*#__PURE__*/ _jsx(NavigationComponentContext.Provider, {
|
|
21
|
+
value: NavigationComponent,
|
|
22
|
+
children: /*#__PURE__*/ _jsx(DesktopProfileDropdown, {
|
|
23
|
+
...props
|
|
24
|
+
})
|
|
25
|
+
}) : /*#__PURE__*/ _jsx(DesktopProfileDropdown, {
|
|
26
|
+
...props
|
|
27
|
+
});
|
|
14
28
|
};
|
|
15
29
|
ProfileDropdownContent.displayName = 'ProfileDropdown';
|
|
16
|
-
const MobileProfileDropdown = ({ children, ...props })
|
|
30
|
+
const MobileProfileDropdown = ({ children, ...props })=>{
|
|
17
31
|
const id = '__profile';
|
|
18
32
|
const [expanded, setExpanded] = useState(false);
|
|
19
33
|
const { hasNotifications, NotificationsContextProvider } = useNotificationsState();
|
|
20
34
|
const { onNotificationsUpdate } = useNotificationsContext();
|
|
21
|
-
const onExpandToggle = (e)
|
|
35
|
+
const onExpandToggle = (e)=>{
|
|
22
36
|
e.stopPropagation();
|
|
23
37
|
setExpanded(!expanded);
|
|
24
38
|
};
|
|
25
|
-
useEffect(()
|
|
39
|
+
useEffect(()=>{
|
|
26
40
|
onNotificationsUpdate(id, hasNotifications);
|
|
27
|
-
}, [
|
|
28
|
-
|
|
41
|
+
}, [
|
|
42
|
+
hasNotifications,
|
|
43
|
+
onNotificationsUpdate
|
|
44
|
+
]);
|
|
45
|
+
return /*#__PURE__*/ _jsx(NotificationsContextProvider, {
|
|
46
|
+
children: /*#__PURE__*/ _jsx(InternalSideNavigationGroup, {
|
|
47
|
+
id: id,
|
|
48
|
+
to: undefined,
|
|
49
|
+
title: "Profile",
|
|
50
|
+
icon: SvgAccountInactive,
|
|
51
|
+
iconActive: SvgAccountActive,
|
|
52
|
+
isActive: expanded,
|
|
53
|
+
...props,
|
|
54
|
+
submenuExpanded: expanded,
|
|
55
|
+
onExpandToggle: onExpandToggle,
|
|
56
|
+
onClick: onExpandToggle,
|
|
57
|
+
tag: {
|
|
58
|
+
value: hasNotifications
|
|
59
|
+
},
|
|
60
|
+
children: children
|
|
61
|
+
})
|
|
62
|
+
});
|
|
29
63
|
};
|
|
30
|
-
const ProfileDropdownDivider = ()
|
|
64
|
+
const ProfileDropdownDivider = ()=>{
|
|
31
65
|
const { breakpoint } = useTitanLayoutContext();
|
|
32
|
-
return breakpoint.isMobile ?
|
|
66
|
+
return breakpoint.isMobile ? /*#__PURE__*/ _jsx(InternalSideNavigationGroupDivider, {}) : /*#__PURE__*/ _jsx(DesktopProfileDropdown.Divider, {});
|
|
33
67
|
};
|
|
34
|
-
const getText = (children, text)
|
|
68
|
+
const getText = (children, text)=>{
|
|
35
69
|
if (typeof children === 'string') {
|
|
36
70
|
return children;
|
|
37
71
|
}
|
|
@@ -40,33 +74,51 @@ const getText = (children, text) => {
|
|
|
40
74
|
}
|
|
41
75
|
return undefined;
|
|
42
76
|
};
|
|
43
|
-
const getTag = (tag, counter)
|
|
77
|
+
const getTag = (tag, counter)=>{
|
|
44
78
|
return !!(tag === null || tag === void 0 ? void 0 : tag.value) || !!counter;
|
|
45
79
|
};
|
|
46
|
-
const ProfileDropdownSection = props
|
|
80
|
+
const ProfileDropdownSection = (props)=>{
|
|
47
81
|
const { breakpoint } = useTitanLayoutContext();
|
|
48
|
-
return breakpoint.isMobile ?
|
|
82
|
+
return breakpoint.isMobile ? /*#__PURE__*/ _jsx(MobileProfileDropdownSection, {
|
|
83
|
+
...props
|
|
84
|
+
}) : /*#__PURE__*/ _jsx(DesktopProfileDropdown.Section, {
|
|
85
|
+
...props
|
|
86
|
+
});
|
|
49
87
|
};
|
|
50
|
-
const MobileProfileDropdownSection = ({ children, text, tooltip, title, ...props })
|
|
88
|
+
const MobileProfileDropdownSection = ({ children, text, tooltip, title, ...props })=>{
|
|
51
89
|
const sectionText = getText(children, text);
|
|
52
90
|
const { onNotificationsUpdate } = useNotificationsContext();
|
|
53
91
|
onNotificationsUpdate(props.id, getTag(props.tag, props.counter));
|
|
54
|
-
return sectionText ?
|
|
92
|
+
return sectionText ? /*#__PURE__*/ _jsx(InternalSideNavigationGroupTrigger, {
|
|
93
|
+
...props,
|
|
94
|
+
title: sectionText
|
|
95
|
+
}) : null;
|
|
55
96
|
};
|
|
56
|
-
const ProfileDropdownLink = props
|
|
97
|
+
const ProfileDropdownLink = (props)=>{
|
|
57
98
|
const { breakpoint, NavigationComponent } = useTitanLayoutContext();
|
|
58
|
-
return breakpoint.isMobile ?
|
|
99
|
+
return breakpoint.isMobile ? /*#__PURE__*/ _jsx(MobileProfileDropdownLink, {
|
|
100
|
+
...props,
|
|
101
|
+
navigationComponent: NavigationComponent
|
|
102
|
+
}) : /*#__PURE__*/ _jsx(DesktopProfileDropdown.Link, {
|
|
103
|
+
...props
|
|
104
|
+
});
|
|
59
105
|
};
|
|
60
|
-
const MobileProfileDropdownLink = ({ external, to, tooltip, text, children, navigationComponent, ...props })
|
|
106
|
+
const MobileProfileDropdownLink = ({ external, to, tooltip, text, children, navigationComponent, ...props })=>{
|
|
61
107
|
const { onNotificationsUpdate } = useNotificationsContext();
|
|
62
108
|
const linkText = getText(children, text);
|
|
63
109
|
const isExternalLink = external !== null && external !== void 0 ? external : to === null || to === void 0 ? void 0 : to.startsWith('http');
|
|
64
110
|
onNotificationsUpdate(props.id, getTag(props.tag, props.counter));
|
|
65
|
-
return linkText ?
|
|
111
|
+
return linkText ? /*#__PURE__*/ _jsx(InternalSideNavigationGroupLink, {
|
|
112
|
+
...props,
|
|
113
|
+
to: to,
|
|
114
|
+
title: linkText,
|
|
115
|
+
navigationComponent: isExternalLink ? ExternalNavComponent : navigationComponent
|
|
116
|
+
}) : null;
|
|
66
117
|
};
|
|
67
118
|
export const ProfileDropdown = Object.assign(ProfileDropdownContent, {
|
|
68
119
|
Divider: ProfileDropdownDivider,
|
|
69
120
|
Link: ProfileDropdownLink,
|
|
70
|
-
Section: ProfileDropdownSection
|
|
121
|
+
Section: ProfileDropdownSection
|
|
71
122
|
});
|
|
123
|
+
|
|
72
124
|
//# sourceMappingURL=layout-profile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-profile.js","sourceRoot":"","sources":["../../../src/components/titan-layout/layout-profile.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/titan-layout/layout-profile.tsx"],"sourcesContent":["import SvgAccountActive from '@servicetitan/anvil2/assets/icons/st/gnav_account_active.svg';\nimport SvgAccountInactive from '@servicetitan/anvil2/assets/icons/st/gnav_account_inactive.svg';\n\nimport { FC, MouseEvent, useEffect, useState } from 'react';\nimport { NavLinkComponentProps, NavigationComponentContext } from '../../utils/navigation-context';\nimport {\n ProfileDropdown as DesktopProfileDropdown,\n ProfileDropdownLinkProps,\n ProfileDropdownProps,\n ProfileDropdownSectionProps,\n} from '../profile-dropdown/profile-dropdown';\nimport { NavigationComponentProps } from './interface-internal';\nimport { useTitanLayoutContext } from './layout-context';\nimport {\n InternalSideNavigationGroup,\n InternalSideNavigationGroupDivider,\n InternalSideNavigationGroupLink,\n InternalSideNavigationGroupTrigger,\n} from './layout-sidebar-links-internal';\nimport { useNotificationsContext, useNotificationsState } from './notifications-context';\n\nexport type {\n ProfileDropdownProps,\n ProfileDropdownSectionProps,\n ProfileDropdownLinkProps,\n} from '../profile-dropdown/profile-dropdown';\n\nconst ExternalNavComponent: FC<NavLinkComponentProps> = ({\n children,\n isActive,\n to,\n activeClassName,\n ...props\n}) => (\n <a {...props} href={to}>\n {children}\n </a>\n);\n\nconst ProfileDropdownContent: FC<ProfileDropdownProps> = props => {\n const { isTitanLayout, breakpoint, NavigationComponent } = useTitanLayoutContext();\n return breakpoint.isMobile ? (\n <MobileProfileDropdown {...props} navigationComponent={NavigationComponent} />\n ) : isTitanLayout ? (\n <NavigationComponentContext.Provider value={NavigationComponent}>\n <DesktopProfileDropdown {...props} />\n </NavigationComponentContext.Provider>\n ) : (\n <DesktopProfileDropdown {...props} />\n );\n};\nProfileDropdownContent.displayName = 'ProfileDropdown';\n\nconst MobileProfileDropdown: FC<ProfileDropdownProps & NavigationComponentProps> = ({\n children,\n ...props\n}) => {\n const id = '__profile';\n const [expanded, setExpanded] = useState(false);\n const { hasNotifications, NotificationsContextProvider } = useNotificationsState();\n const { onNotificationsUpdate } = useNotificationsContext();\n const onExpandToggle = (e: MouseEvent<never>) => {\n e.stopPropagation();\n setExpanded(!expanded);\n };\n\n useEffect(() => {\n onNotificationsUpdate(id, hasNotifications);\n }, [hasNotifications, onNotificationsUpdate]);\n\n return (\n <NotificationsContextProvider>\n <InternalSideNavigationGroup\n id={id}\n to={undefined}\n title=\"Profile\"\n icon={SvgAccountInactive}\n iconActive={SvgAccountActive}\n isActive={expanded}\n {...props}\n submenuExpanded={expanded}\n onExpandToggle={onExpandToggle}\n onClick={onExpandToggle}\n tag={{ value: hasNotifications }}\n >\n {children}\n </InternalSideNavigationGroup>\n </NotificationsContextProvider>\n );\n};\n\nconst ProfileDropdownDivider: FC = () => {\n const { breakpoint } = useTitanLayoutContext();\n return breakpoint.isMobile ? (\n <InternalSideNavigationGroupDivider />\n ) : (\n <DesktopProfileDropdown.Divider />\n );\n};\n\nconst getText = (children: any, text: any): string | undefined => {\n if (typeof children === 'string') {\n return children;\n }\n\n if (typeof text === 'string') {\n return text;\n }\n\n return undefined;\n};\n\nconst getTag = (\n tag: ProfileDropdownLinkProps['tag'],\n counter: ProfileDropdownLinkProps['counter']\n): boolean => {\n return !!tag?.value || !!counter;\n};\n\nconst ProfileDropdownSection: FC<ProfileDropdownSectionProps> = props => {\n const { breakpoint } = useTitanLayoutContext();\n return breakpoint.isMobile ? (\n <MobileProfileDropdownSection {...props} />\n ) : (\n <DesktopProfileDropdown.Section {...props} />\n );\n};\nconst MobileProfileDropdownSection: FC<ProfileDropdownSectionProps> = ({\n children,\n text,\n tooltip,\n title,\n ...props\n}) => {\n const sectionText = getText(children, text);\n const { onNotificationsUpdate } = useNotificationsContext();\n onNotificationsUpdate(props.id, getTag(props.tag, props.counter));\n\n return sectionText ? (\n <InternalSideNavigationGroupTrigger {...props} title={sectionText} />\n ) : null;\n};\n\nconst ProfileDropdownLink: FC<ProfileDropdownLinkProps> = props => {\n const { breakpoint, NavigationComponent } = useTitanLayoutContext();\n return breakpoint.isMobile ? (\n <MobileProfileDropdownLink {...props} navigationComponent={NavigationComponent} />\n ) : (\n <DesktopProfileDropdown.Link {...props} />\n );\n};\nconst MobileProfileDropdownLink: FC<ProfileDropdownLinkProps & NavigationComponentProps> = ({\n external,\n to,\n tooltip,\n text,\n children,\n navigationComponent,\n ...props\n}) => {\n const { onNotificationsUpdate } = useNotificationsContext();\n const linkText = getText(children, text);\n const isExternalLink = external ?? to?.startsWith('http');\n onNotificationsUpdate(props.id, getTag(props.tag, props.counter));\n\n return linkText ? (\n <InternalSideNavigationGroupLink\n {...props}\n to={to}\n title={linkText}\n navigationComponent={isExternalLink ? ExternalNavComponent : navigationComponent}\n />\n ) : null;\n};\n\nexport const ProfileDropdown = Object.assign(ProfileDropdownContent, {\n Divider: ProfileDropdownDivider,\n Link: ProfileDropdownLink,\n Section: ProfileDropdownSection,\n});\n"],"names":["SvgAccountActive","SvgAccountInactive","useEffect","useState","NavigationComponentContext","ProfileDropdown","DesktopProfileDropdown","useTitanLayoutContext","InternalSideNavigationGroup","InternalSideNavigationGroupDivider","InternalSideNavigationGroupLink","InternalSideNavigationGroupTrigger","useNotificationsContext","useNotificationsState","ExternalNavComponent","children","isActive","to","activeClassName","props","a","href","ProfileDropdownContent","isTitanLayout","breakpoint","NavigationComponent","isMobile","MobileProfileDropdown","navigationComponent","Provider","value","displayName","id","expanded","setExpanded","hasNotifications","NotificationsContextProvider","onNotificationsUpdate","onExpandToggle","e","stopPropagation","undefined","title","icon","iconActive","submenuExpanded","onClick","tag","ProfileDropdownDivider","Divider","getText","text","getTag","counter","ProfileDropdownSection","MobileProfileDropdownSection","Section","tooltip","sectionText","ProfileDropdownLink","MobileProfileDropdownLink","Link","external","linkText","isExternalLink","startsWith","Object","assign"],"mappings":"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"}
|
|
@@ -7,55 +7,181 @@ import { Fragment } from 'react';
|
|
|
7
7
|
import { getCounterTag } from '../../utils/side-nav';
|
|
8
8
|
import { BadgeTag } from '../badge-tag';
|
|
9
9
|
import * as Styles from './layout-sidebar.module.less';
|
|
10
|
-
export const InternalSideNavigationItemContent = ({ icon, iconActive, iconClassName, iconComponent: IconComponent, tag, title, submenuExpanded, onExpandToggle
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
10
|
+
export const InternalSideNavigationItemContent = ({ icon, iconActive, iconClassName, iconComponent: IconComponent, tag, title, submenuExpanded, onExpandToggle })=>/*#__PURE__*/ _jsxs(Fragment, {
|
|
11
|
+
children: [
|
|
12
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
13
|
+
className: Styles.navItemIconWrapper,
|
|
14
|
+
children: [
|
|
15
|
+
IconComponent ? /*#__PURE__*/ _jsx("i", {
|
|
16
|
+
className: classNames(Styles.navIcon, iconClassName),
|
|
17
|
+
children: /*#__PURE__*/ _jsx(IconComponent, {})
|
|
18
|
+
}) : /*#__PURE__*/ _jsxs(Fragment, {
|
|
19
|
+
children: [
|
|
20
|
+
icon && /*#__PURE__*/ _jsx(Icon, {
|
|
21
|
+
svg: icon,
|
|
22
|
+
className: classNames(Styles.navIcon, Styles.navIconInactive, iconClassName)
|
|
23
|
+
}),
|
|
24
|
+
iconActive && /*#__PURE__*/ _jsx(Icon, {
|
|
25
|
+
svg: iconActive,
|
|
26
|
+
className: classNames(Styles.navIcon, Styles.navIconActive, iconClassName)
|
|
27
|
+
})
|
|
28
|
+
]
|
|
29
|
+
}),
|
|
30
|
+
/*#__PURE__*/ _jsx("div", {
|
|
31
|
+
className: Styles.navItemTextExpanded,
|
|
32
|
+
children: title
|
|
33
|
+
}),
|
|
34
|
+
!!tag && /*#__PURE__*/ _jsx(BadgeTag, {
|
|
35
|
+
data: tag,
|
|
36
|
+
className: Styles.navItemCounter,
|
|
37
|
+
longClassName: Styles.navItemCounterLong
|
|
38
|
+
}),
|
|
39
|
+
typeof submenuExpanded === 'boolean' && /*#__PURE__*/ _jsxs("div", {
|
|
40
|
+
className: Styles.navItemGroupToggleWrapper,
|
|
41
|
+
children: [
|
|
42
|
+
/*#__PURE__*/ _jsx(Icon, {
|
|
43
|
+
svg: submenuExpanded ? SvgGroupCollapse : SvgGroupExpand,
|
|
44
|
+
className: Styles.navItemGroupToggle,
|
|
45
|
+
onClick: onExpandToggle
|
|
46
|
+
}),
|
|
47
|
+
/*#__PURE__*/ _jsx("div", {
|
|
48
|
+
className: Styles.navItemGroupToggleClick,
|
|
49
|
+
onClick: onExpandToggle
|
|
50
|
+
})
|
|
51
|
+
]
|
|
52
|
+
})
|
|
53
|
+
]
|
|
54
|
+
}),
|
|
55
|
+
/*#__PURE__*/ _jsx("div", {
|
|
56
|
+
className: classNames(Styles.navItemTextCollapsed, {
|
|
57
|
+
[Styles.navItemTextSmall]: !!title && title.length >= 10
|
|
58
|
+
}),
|
|
59
|
+
children: title
|
|
60
|
+
})
|
|
61
|
+
]
|
|
62
|
+
});
|
|
63
|
+
export const internalNavigationContentContainerProps = ({ className, icon, iconActive, iconComponent, id, isActive, prefix, isLink })=>({
|
|
64
|
+
'data-cy': `${prefix}-${id}`,
|
|
65
|
+
'data-pendo': `${prefix}-${id}`,
|
|
66
|
+
'className': classNames(Styles.navItem, className, {
|
|
67
|
+
[Styles.navLink]: isLink,
|
|
68
|
+
[Styles.navItemActive]: isActive === true,
|
|
69
|
+
[Styles.navItemIconSwitch]: !!icon && !!iconActive && !iconComponent
|
|
70
|
+
})
|
|
71
|
+
});
|
|
72
|
+
/** Side Navigation menu item (for internal usage) */ export const InternalSideNavigationLink = ({ to, className, dataPrefix, isActive, navigationComponent: NavigationComponent, submenuExpanded, onExpandToggle, ...props })=>{
|
|
73
|
+
return /*#__PURE__*/ _jsx(NavigationComponent, {
|
|
74
|
+
...internalNavigationContentContainerProps({
|
|
25
75
|
...props,
|
|
26
76
|
prefix: dataPrefix !== null && dataPrefix !== void 0 ? dataPrefix : 'navigation-item',
|
|
27
77
|
className,
|
|
28
78
|
isActive,
|
|
29
|
-
isLink: true
|
|
30
|
-
}),
|
|
79
|
+
isLink: true
|
|
80
|
+
}),
|
|
81
|
+
to: to,
|
|
82
|
+
isActive: typeof isActive === 'function' ? isActive : undefined,
|
|
83
|
+
activeClassName: Styles.navItemActive,
|
|
84
|
+
children: /*#__PURE__*/ _jsx(InternalSideNavigationItemContent, {
|
|
85
|
+
submenuExpanded: submenuExpanded,
|
|
86
|
+
onExpandToggle: onExpandToggle,
|
|
87
|
+
...props
|
|
88
|
+
})
|
|
89
|
+
});
|
|
31
90
|
};
|
|
32
|
-
/** Side Navigation menu trigger (for internal usage) */
|
|
33
|
-
|
|
34
|
-
|
|
91
|
+
/** Side Navigation menu trigger (for internal usage) */ export const InternalSideNavigationTrigger = ({ className, dataPrefix, isActive, submenuExpanded, onExpandToggle, onClick, ...props })=>{
|
|
92
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
93
|
+
...internalNavigationContentContainerProps({
|
|
35
94
|
...props,
|
|
36
95
|
prefix: dataPrefix !== null && dataPrefix !== void 0 ? dataPrefix : 'navigation-item',
|
|
37
96
|
className,
|
|
38
97
|
isActive,
|
|
39
|
-
isLink: !!onClick
|
|
40
|
-
}),
|
|
98
|
+
isLink: !!onClick
|
|
99
|
+
}),
|
|
100
|
+
onClick: onClick,
|
|
101
|
+
children: /*#__PURE__*/ _jsx(InternalSideNavigationItemContent, {
|
|
102
|
+
submenuExpanded: submenuExpanded,
|
|
103
|
+
onExpandToggle: onExpandToggle,
|
|
104
|
+
...props
|
|
105
|
+
})
|
|
106
|
+
});
|
|
41
107
|
};
|
|
42
|
-
export const InternalSideNavigationGroupLink = ({ id, counter, tag, title, to, isActive, navigationComponent: NavigationComponent, ...rest })
|
|
43
|
-
return
|
|
44
|
-
|
|
45
|
-
|
|
108
|
+
export const InternalSideNavigationGroupLink = ({ id, counter, tag, title, to, isActive, navigationComponent: NavigationComponent, ...rest })=>{
|
|
109
|
+
return /*#__PURE__*/ _jsxs(NavigationComponent, {
|
|
110
|
+
"data-cy": `navigation-item-${id}`,
|
|
111
|
+
"data-pendo": `navigation-item-${id}`,
|
|
112
|
+
...rest,
|
|
113
|
+
to: to,
|
|
114
|
+
className: classNames(Styles.submenuItem, Styles.submenuLink, {
|
|
115
|
+
[Styles.submenuLinkActive]: isActive === true
|
|
116
|
+
}),
|
|
117
|
+
isActive: typeof isActive === 'function' ? isActive : undefined,
|
|
118
|
+
activeClassName: Styles.submenuLinkActive,
|
|
119
|
+
children: [
|
|
120
|
+
/*#__PURE__*/ _jsx("span", {
|
|
121
|
+
children: title
|
|
122
|
+
}),
|
|
123
|
+
/*#__PURE__*/ _jsx(BadgeTag, {
|
|
124
|
+
data: getCounterTag(counter, tag),
|
|
125
|
+
className: Styles.submenuLinkCounter
|
|
126
|
+
})
|
|
127
|
+
]
|
|
128
|
+
}, id);
|
|
46
129
|
};
|
|
47
|
-
export const InternalSideNavigationGroupTrigger = ({ id, counter, onClick, tag, title, isActive, ...rest })
|
|
48
|
-
return
|
|
130
|
+
export const InternalSideNavigationGroupTrigger = ({ id, counter, onClick, tag, title, isActive, ...rest })=>{
|
|
131
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
132
|
+
"data-cy": `navigation-item-${id}`,
|
|
133
|
+
"data-pendo": `navigation-item-${id}`,
|
|
134
|
+
...rest,
|
|
135
|
+
className: classNames(Styles.submenuItem, {
|
|
49
136
|
[Styles.submenuLink]: !!onClick,
|
|
50
|
-
[Styles.submenuLinkActive]: isActive === true
|
|
51
|
-
}),
|
|
137
|
+
[Styles.submenuLinkActive]: isActive === true
|
|
138
|
+
}),
|
|
139
|
+
onClick: onClick,
|
|
140
|
+
children: [
|
|
141
|
+
/*#__PURE__*/ _jsx("span", {
|
|
142
|
+
children: title
|
|
143
|
+
}),
|
|
144
|
+
/*#__PURE__*/ _jsx(BadgeTag, {
|
|
145
|
+
data: getCounterTag(counter, tag),
|
|
146
|
+
className: Styles.submenuLinkCounter
|
|
147
|
+
})
|
|
148
|
+
]
|
|
149
|
+
}, id);
|
|
52
150
|
};
|
|
53
|
-
export const InternalSideNavigationGroupDivider = ()
|
|
54
|
-
return _jsx("div", {
|
|
151
|
+
export const InternalSideNavigationGroupDivider = ()=>{
|
|
152
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
153
|
+
className: Styles.divider
|
|
154
|
+
});
|
|
55
155
|
};
|
|
56
|
-
export const InternalSideNavigationGroup = ({ children, submenuExpanded, to, onExpandToggle, onClick, ...props })
|
|
57
|
-
return
|
|
58
|
-
|
|
59
|
-
|
|
156
|
+
export const InternalSideNavigationGroup = ({ children, submenuExpanded, to, onExpandToggle, onClick, ...props })=>{
|
|
157
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
158
|
+
className: classNames(Styles.navGroupWrapper),
|
|
159
|
+
children: [
|
|
160
|
+
/*#__PURE__*/ _jsx("div", {
|
|
161
|
+
className: Styles.navGroupItem,
|
|
162
|
+
children: to ? /*#__PURE__*/ _jsx(InternalSideNavigationLink, {
|
|
163
|
+
...props,
|
|
164
|
+
to: to,
|
|
165
|
+
submenuExpanded: submenuExpanded,
|
|
166
|
+
onExpandToggle: onExpandToggle
|
|
167
|
+
}) : /*#__PURE__*/ _jsx(InternalSideNavigationTrigger, {
|
|
168
|
+
...props,
|
|
169
|
+
submenuExpanded: submenuExpanded,
|
|
170
|
+
onExpandToggle: onExpandToggle,
|
|
171
|
+
onClick: onClick
|
|
172
|
+
})
|
|
173
|
+
}),
|
|
174
|
+
/*#__PURE__*/ _jsx("div", {
|
|
175
|
+
className: classNames(Styles.submenuWrapper, {
|
|
176
|
+
[Styles.submenuWrapperCollapsed]: !submenuExpanded
|
|
177
|
+
}),
|
|
178
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
179
|
+
className: Styles.submenu,
|
|
180
|
+
children: children
|
|
181
|
+
})
|
|
182
|
+
})
|
|
183
|
+
]
|
|
184
|
+
});
|
|
60
185
|
};
|
|
186
|
+
|
|
61
187
|
//# sourceMappingURL=layout-sidebar-links-internal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-sidebar-links-internal.js","sourceRoot":"","sources":["../../../src/components/titan-layout/layout-sidebar-links-internal.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/titan-layout/layout-sidebar-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, ReactNode } from 'react';\nimport { NavigationItemData, NavigationSubmenuItemData } from '../../utils/navigation';\nimport { getCounterTag } from '../../utils/side-nav';\nimport { BadgeTag, BadgeTagProps } from '../badge-tag';\nimport { TitanLayoutSidebarTriggerProps } from './interface';\nimport { NavigationComponentProps } from './interface-internal';\nimport * as Styles from './layout-sidebar.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.navItemIconWrapper}>\n {IconComponent ? (\n <i className={classNames(Styles.navIcon, iconClassName)}>\n <IconComponent />\n </i>\n ) : (\n <Fragment>\n {icon && (\n <Icon\n svg={icon}\n className={classNames(\n Styles.navIcon,\n Styles.navIconInactive,\n iconClassName\n )}\n />\n )}\n {iconActive && (\n <Icon\n svg={iconActive}\n className={classNames(\n Styles.navIcon,\n Styles.navIconActive,\n iconClassName\n )}\n />\n )}\n </Fragment>\n )}\n\n <div className={Styles.navItemTextExpanded}>{title}</div>\n {!!tag && (\n <BadgeTag\n data={tag}\n className={Styles.navItemCounter}\n longClassName={Styles.navItemCounterLong}\n />\n )}\n {typeof submenuExpanded === 'boolean' && (\n <div className={Styles.navItemGroupToggleWrapper}>\n <Icon\n svg={submenuExpanded ? SvgGroupCollapse : SvgGroupExpand}\n className={Styles.navItemGroupToggle}\n onClick={onExpandToggle}\n />\n <div className={Styles.navItemGroupToggleClick} onClick={onExpandToggle} />\n </div>\n )}\n </div>\n\n <div\n className={classNames(Styles.navItemTextCollapsed, {\n [Styles.navItemTextSmall]: !!title && 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 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 isLink,\n}: Omit<TitanLayoutSidebarTriggerProps, 'isActive' | 'tag'> & {\n prefix: string;\n isActive?: any;\n isLink: boolean;\n}) => ({\n 'data-cy': `${prefix}-${id}`,\n 'data-pendo': `${prefix}-${id}`,\n 'className': classNames(Styles.navItem, className, {\n [Styles.navLink]: isLink,\n [Styles.navItemActive]: isActive === true,\n [Styles.navItemIconSwitch]: !!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 isLink: true,\n })}\n to={to}\n isActive={typeof isActive === 'function' ? isActive : undefined}\n activeClassName={Styles.navItemActive}\n >\n <InternalSideNavigationItemContent\n submenuExpanded={submenuExpanded}\n onExpandToggle={onExpandToggle}\n {...props}\n />\n </NavigationComponent>\n );\n};\n\n/** Side Navigation menu trigger (for internal usage) */\nexport const InternalSideNavigationTrigger: FC<\n Omit<InternalSideNavigationLinkProps, 'to' | 'navigationComponent'> & {\n onClick?: (e: MouseEvent<never>) => void;\n }\n> = ({ className, dataPrefix, isActive, submenuExpanded, onExpandToggle, onClick, ...props }) => {\n return (\n <div\n {...internalNavigationContentContainerProps({\n ...props,\n prefix: dataPrefix ?? 'navigation-item',\n className,\n isActive,\n isLink: !!onClick,\n })}\n onClick={onClick}\n >\n <InternalSideNavigationItemContent\n submenuExpanded={submenuExpanded}\n onExpandToggle={onExpandToggle}\n {...props}\n />\n </div>\n );\n};\n\nexport const InternalSideNavigationGroupLink: FC<\n NavigationSubmenuItemData & NavigationComponentProps\n> = ({\n id,\n counter,\n tag,\n title,\n to,\n isActive,\n navigationComponent: NavigationComponent,\n ...rest\n}) => {\n return (\n <NavigationComponent\n key={id}\n data-cy={`navigation-item-${id}`}\n data-pendo={`navigation-item-${id}`}\n {...rest}\n to={to}\n className={classNames(Styles.submenuItem, Styles.submenuLink, {\n [Styles.submenuLinkActive]: isActive === true,\n })}\n isActive={typeof isActive === 'function' ? isActive : undefined}\n activeClassName={Styles.submenuLinkActive}\n >\n <span>{title}</span>\n <BadgeTag data={getCounterTag(counter, tag)} className={Styles.submenuLinkCounter} />\n </NavigationComponent>\n );\n};\n\nexport const InternalSideNavigationGroupTrigger: FC<\n Omit<NavigationSubmenuItemData, 'to'> & { onClick?: (e: MouseEvent<any>) => void }\n> = ({ id, counter, onClick, tag, title, isActive, ...rest }) => {\n return (\n <div\n data-cy={`navigation-item-${id}`}\n data-pendo={`navigation-item-${id}`}\n key={id}\n {...rest}\n className={classNames(Styles.submenuItem, {\n [Styles.submenuLink]: !!onClick,\n [Styles.submenuLinkActive]: isActive === true,\n })}\n onClick={onClick}\n >\n <span>{title}</span>\n <BadgeTag data={getCounterTag(counter, tag)} className={Styles.submenuLinkCounter} />\n </div>\n );\n};\n\nexport const InternalSideNavigationGroupDivider = () => {\n return <div className={Styles.divider} />;\n};\n\nexport const InternalSideNavigationGroup: FC<\n Omit<NavigationItemData, 'tag' | 'counter' | 'to'> &\n NavigationComponentProps & {\n children: ReactNode;\n submenuExpanded: boolean;\n onExpandToggle?: (e: MouseEvent<never>) => void;\n tag: BadgeTagProps | undefined;\n to: NavigationItemData['to'] | undefined;\n onClick?: (e: MouseEvent<never>) => void;\n }\n> = ({ children, submenuExpanded, to, onExpandToggle, onClick, ...props }) => {\n return (\n <div className={classNames(Styles.navGroupWrapper)}>\n <div className={Styles.navGroupItem}>\n {to ? (\n <InternalSideNavigationLink\n {...props}\n to={to}\n submenuExpanded={submenuExpanded}\n onExpandToggle={onExpandToggle}\n />\n ) : (\n <InternalSideNavigationTrigger\n {...props}\n submenuExpanded={submenuExpanded}\n onExpandToggle={onExpandToggle}\n onClick={onClick}\n />\n )}\n </div>\n <div\n className={classNames(Styles.submenuWrapper, {\n [Styles.submenuWrapperCollapsed]: !submenuExpanded,\n })}\n >\n <div className={Styles.submenu}>{children}</div>\n </div>\n </div>\n );\n};\n"],"names":["Icon","SvgGroupCollapse","SvgGroupExpand","classNames","Fragment","getCounterTag","BadgeTag","Styles","InternalSideNavigationItemContent","icon","iconActive","iconClassName","iconComponent","IconComponent","tag","title","submenuExpanded","onExpandToggle","div","className","navItemIconWrapper","i","navIcon","svg","navIconInactive","navIconActive","navItemTextExpanded","data","navItemCounter","longClassName","navItemCounterLong","navItemGroupToggleWrapper","navItemGroupToggle","onClick","navItemGroupToggleClick","navItemTextCollapsed","navItemTextSmall","length","internalNavigationContentContainerProps","id","isActive","prefix","isLink","navItem","navLink","navItemActive","navItemIconSwitch","InternalSideNavigationLink","to","dataPrefix","navigationComponent","NavigationComponent","props","undefined","activeClassName","InternalSideNavigationTrigger","InternalSideNavigationGroupLink","counter","rest","data-cy","data-pendo","submenuItem","submenuLink","submenuLinkActive","span","submenuLinkCounter","InternalSideNavigationGroupTrigger","InternalSideNavigationGroupDivider","divider","InternalSideNavigationGroup","children","navGroupWrapper","navGroupItem","submenuWrapper","submenuWrapperCollapsed","submenu"],"mappings":"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"}
|
|
@@ -1,28 +1,48 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { getCounterTag } from '../../utils/side-nav';
|
|
3
3
|
import { useTitanLayoutContext } from './layout-context';
|
|
4
|
-
import { InternalSideNavigationLink, InternalSideNavigationTrigger
|
|
4
|
+
import { InternalSideNavigationLink, InternalSideNavigationTrigger } from './layout-sidebar-links-internal';
|
|
5
5
|
import { useNotificationsContext } from './notifications-context';
|
|
6
|
-
const WrappedLink = ({ children, wrapper: WrapperComponent })
|
|
6
|
+
const WrappedLink = ({ children, wrapper: WrapperComponent })=>{
|
|
7
7
|
const { sidebar } = useTitanLayoutContext();
|
|
8
|
-
return _jsx(WrapperComponent, {
|
|
8
|
+
return /*#__PURE__*/ _jsx(WrapperComponent, {
|
|
9
|
+
context: sidebar,
|
|
10
|
+
children: children
|
|
11
|
+
});
|
|
9
12
|
};
|
|
10
|
-
/** Side Navigation menu link */
|
|
11
|
-
|
|
12
|
-
const { NavigationComponent, breakpoint: { isMobile }, } = useTitanLayoutContext();
|
|
13
|
+
/** Side Navigation menu link */ export function TitanLayoutSidebarLink({ wrapper, ...props }) {
|
|
14
|
+
const { NavigationComponent, breakpoint: { isMobile } } = useTitanLayoutContext();
|
|
13
15
|
const { onNotificationsUpdate } = useNotificationsContext();
|
|
14
16
|
const tag = getCounterTag(props.counter, props.tag);
|
|
15
17
|
onNotificationsUpdate(props.id, !!tag);
|
|
16
|
-
const element =
|
|
17
|
-
|
|
18
|
+
const element = /*#__PURE__*/ _jsx(InternalSideNavigationLink, {
|
|
19
|
+
...props,
|
|
20
|
+
navigationComponent: NavigationComponent,
|
|
21
|
+
submenuExpanded: undefined,
|
|
22
|
+
dataPrefix: "navigation-link",
|
|
23
|
+
tag: tag
|
|
24
|
+
});
|
|
25
|
+
return wrapper && !isMobile ? /*#__PURE__*/ _jsx(WrappedLink, {
|
|
26
|
+
wrapper: wrapper,
|
|
27
|
+
children: element
|
|
28
|
+
}) : element;
|
|
18
29
|
}
|
|
19
|
-
/** Side Navigation menu trigger */
|
|
20
|
-
|
|
21
|
-
const { breakpoint: { isMobile }, } = useTitanLayoutContext();
|
|
30
|
+
/** Side Navigation menu trigger */ export function TitanLayoutSidebarTrigger({ wrapper, onMobileClick, onClick, ...props }) {
|
|
31
|
+
const { breakpoint: { isMobile } } = useTitanLayoutContext();
|
|
22
32
|
const { onNotificationsUpdate } = useNotificationsContext();
|
|
23
33
|
const tag = getCounterTag(props.counter, props.tag);
|
|
24
34
|
onNotificationsUpdate(props.id, !!tag);
|
|
25
|
-
const element =
|
|
26
|
-
|
|
35
|
+
const element = /*#__PURE__*/ _jsx(InternalSideNavigationTrigger, {
|
|
36
|
+
...props,
|
|
37
|
+
submenuExpanded: undefined,
|
|
38
|
+
dataPrefix: "navigation-trigger",
|
|
39
|
+
tag: tag,
|
|
40
|
+
onClick: isMobile && !!onMobileClick ? onMobileClick : onClick
|
|
41
|
+
});
|
|
42
|
+
return wrapper && (!isMobile || !onMobileClick) ? /*#__PURE__*/ _jsx(WrappedLink, {
|
|
43
|
+
wrapper: wrapper,
|
|
44
|
+
children: element
|
|
45
|
+
}) : element;
|
|
27
46
|
}
|
|
47
|
+
|
|
28
48
|
//# sourceMappingURL=layout-sidebar-links.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/titan-layout/layout-sidebar-links.tsx"],"sourcesContent":["import { FC, ReactElement } from 'react';\nimport { getCounterTag } from '../../utils/side-nav';\nimport { TitanLayoutSidebarLinkProps, TitanLayoutSidebarTriggerProps } from './interface';\nimport { useTitanLayoutContext } from './layout-context';\nimport {\n InternalSideNavigationLink,\n InternalSideNavigationTrigger,\n} from './layout-sidebar-links-internal';\nimport { useNotificationsContext } from './notifications-context';\n\nconst WrappedLink: FC<{\n children: ReactElement<any>;\n wrapper: NonNullable<TitanLayoutSidebarLinkProps['wrapper']>;\n}> = ({ children, wrapper: WrapperComponent }) => {\n const { sidebar } = useTitanLayoutContext();\n return <WrapperComponent context={sidebar}>{children}</WrapperComponent>;\n};\n\n/** Side Navigation menu link */\nexport function TitanLayoutSidebarLink({ wrapper, ...props }: TitanLayoutSidebarLinkProps) {\n const {\n NavigationComponent,\n breakpoint: { isMobile },\n } = useTitanLayoutContext();\n const { onNotificationsUpdate } = useNotificationsContext();\n const tag = getCounterTag(props.counter, props.tag);\n\n onNotificationsUpdate(props.id, !!tag);\n\n const element = (\n <InternalSideNavigationLink\n {...props}\n navigationComponent={NavigationComponent}\n submenuExpanded={undefined}\n dataPrefix=\"navigation-link\"\n tag={tag}\n />\n );\n\n return wrapper && !isMobile ? <WrappedLink wrapper={wrapper}>{element}</WrappedLink> : element;\n}\n\n/** Side Navigation menu trigger */\nexport function TitanLayoutSidebarTrigger({\n wrapper,\n onMobileClick,\n onClick,\n ...props\n}: TitanLayoutSidebarTriggerProps) {\n const {\n breakpoint: { isMobile },\n } = useTitanLayoutContext();\n const { onNotificationsUpdate } = useNotificationsContext();\n const tag = getCounterTag(props.counter, props.tag);\n\n onNotificationsUpdate(props.id, !!tag);\n\n const element = (\n <InternalSideNavigationTrigger\n {...props}\n submenuExpanded={undefined}\n dataPrefix=\"navigation-trigger\"\n tag={tag}\n onClick={isMobile && !!onMobileClick ? onMobileClick : onClick}\n />\n );\n return wrapper && (!isMobile || !onMobileClick) ? (\n <WrappedLink wrapper={wrapper}>{element}</WrappedLink>\n ) : (\n element\n );\n}\n"],"names":["getCounterTag","useTitanLayoutContext","InternalSideNavigationLink","InternalSideNavigationTrigger","useNotificationsContext","WrappedLink","children","wrapper","WrapperComponent","sidebar","context","TitanLayoutSidebarLink","props","NavigationComponent","breakpoint","isMobile","onNotificationsUpdate","tag","counter","id","element","navigationComponent","submenuExpanded","undefined","dataPrefix","TitanLayoutSidebarTrigger","onMobileClick","onClick"],"mappings":";AACA,SAASA,aAAa,QAAQ,uBAAuB;AAErD,SAASC,qBAAqB,QAAQ,mBAAmB;AACzD,SACIC,0BAA0B,EAC1BC,6BAA6B,QAC1B,kCAAkC;AACzC,SAASC,uBAAuB,QAAQ,0BAA0B;AAElE,MAAMC,cAGD,CAAC,EAAEC,QAAQ,EAAEC,SAASC,gBAAgB,EAAE;IACzC,MAAM,EAAEC,OAAO,EAAE,GAAGR;IACpB,qBAAO,KAACO;QAAiBE,SAASD;kBAAUH;;AAChD;AAEA,8BAA8B,GAC9B,OAAO,SAASK,uBAAuB,EAAEJ,OAAO,EAAE,GAAGK,OAAoC;IACrF,MAAM,EACFC,mBAAmB,EACnBC,YAAY,EAAEC,QAAQ,EAAE,EAC3B,GAAGd;IACJ,MAAM,EAAEe,qBAAqB,EAAE,GAAGZ;IAClC,MAAMa,MAAMjB,cAAcY,MAAMM,OAAO,EAAEN,MAAMK,GAAG;IAElDD,sBAAsBJ,MAAMO,EAAE,EAAE,CAAC,CAACF;IAElC,MAAMG,wBACF,KAAClB;QACI,GAAGU,KAAK;QACTS,qBAAqBR;QACrBS,iBAAiBC;QACjBC,YAAW;QACXP,KAAKA;;IAIb,OAAOV,WAAW,CAACQ,yBAAW,KAACV;QAAYE,SAASA;kBAAUa;SAAyBA;AAC3F;AAEA,iCAAiC,GACjC,OAAO,SAASK,0BAA0B,EACtClB,OAAO,EACPmB,aAAa,EACbC,OAAO,EACP,GAAGf,OAC0B;IAC7B,MAAM,EACFE,YAAY,EAAEC,QAAQ,EAAE,EAC3B,GAAGd;IACJ,MAAM,EAAEe,qBAAqB,EAAE,GAAGZ;IAClC,MAAMa,MAAMjB,cAAcY,MAAMM,OAAO,EAAEN,MAAMK,GAAG;IAElDD,sBAAsBJ,MAAMO,EAAE,EAAE,CAAC,CAACF;IAElC,MAAMG,wBACF,KAACjB;QACI,GAAGS,KAAK;QACTU,iBAAiBC;QACjBC,YAAW;QACXP,KAAKA;QACLU,SAASZ,YAAY,CAAC,CAACW,gBAAgBA,gBAAgBC;;IAG/D,OAAOpB,WAAY,CAAA,CAACQ,YAAY,CAACW,aAAY,kBACzC,KAACrB;QAAYE,SAASA;kBAAUa;SAEhCA;AAER"}
|