@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.
Files changed (179) hide show
  1. package/dist/components/badge-tag.js +7 -2
  2. package/dist/components/badge-tag.js.map +1 -1
  3. package/dist/components/counter-tag.js +10 -2
  4. package/dist/components/counter-tag.js.map +1 -1
  5. package/dist/components/header-navigation/header-navigation-content.js +44 -8
  6. package/dist/components/header-navigation/header-navigation-content.js.map +1 -1
  7. package/dist/components/header-navigation/header-navigation-links.js +49 -13
  8. package/dist/components/header-navigation/header-navigation-links.js.map +1 -1
  9. package/dist/components/header-navigation/header-navigation-stories.module.less.d.ts +3 -0
  10. package/dist/components/header-navigation/header-navigation.js +178 -46
  11. package/dist/components/header-navigation/header-navigation.js.map +1 -1
  12. package/dist/components/header-navigation/header-navigation.module.less.d.ts +22 -0
  13. package/dist/components/header-navigation/index.js +1 -0
  14. package/dist/components/header-navigation/index.js.map +1 -1
  15. package/dist/components/header-navigation/with-tooltip.js +7 -1
  16. package/dist/components/header-navigation/with-tooltip.js.map +1 -1
  17. package/dist/components/left-navigation/header-navigation-tiny-links.js +62 -15
  18. package/dist/components/left-navigation/header-navigation-tiny-links.js.map +1 -1
  19. package/dist/components/left-navigation/header-navigation-tiny.js +27 -2
  20. package/dist/components/left-navigation/header-navigation-tiny.js.map +1 -1
  21. package/dist/components/left-navigation/header-navigation-tiny.module.less.d.ts +15 -0
  22. package/dist/components/left-navigation/index.d.ts +1 -1
  23. package/dist/components/left-navigation/index.d.ts.map +1 -1
  24. package/dist/components/left-navigation/index.js +1 -1
  25. package/dist/components/left-navigation/index.js.map +1 -1
  26. package/dist/components/left-navigation/interface-internal.js +2 -1
  27. package/dist/components/left-navigation/interface-internal.js.map +1 -1
  28. package/dist/components/left-navigation/interface.js +2 -1
  29. package/dist/components/left-navigation/interface.js.map +1 -1
  30. package/dist/components/left-navigation/side-navigation-context.js +4 -3
  31. package/dist/components/left-navigation/side-navigation-context.js.map +1 -1
  32. package/dist/components/left-navigation/side-navigation-links-internal.js +76 -16
  33. package/dist/components/left-navigation/side-navigation-links-internal.js.map +1 -1
  34. package/dist/components/left-navigation/side-navigation-links.js +34 -13
  35. package/dist/components/left-navigation/side-navigation-links.js.map +1 -1
  36. package/dist/components/left-navigation/side-navigation.js +314 -85
  37. package/dist/components/left-navigation/side-navigation.js.map +1 -1
  38. package/dist/components/left-navigation/side-navigation.module.less.d.ts +48 -0
  39. package/dist/components/left-navigation/with-tooltip.js +12 -1
  40. package/dist/components/left-navigation/with-tooltip.js.map +1 -1
  41. package/dist/components/links.js +28 -7
  42. package/dist/components/links.js.map +1 -1
  43. package/dist/components/logo/logo-company-title.js +19 -3
  44. package/dist/components/logo/logo-company-title.js.map +1 -1
  45. package/dist/components/logo/logo-titan-text.js +50 -6
  46. package/dist/components/logo/logo-titan-text.js.map +1 -1
  47. package/dist/components/logo/logo-titan-text.module.less.d.ts +6 -0
  48. package/dist/components/logo/logo-titan.d.ts +1 -0
  49. package/dist/components/logo/logo-titan.d.ts.map +1 -1
  50. package/dist/components/logo/logo-titan.js +53 -8
  51. package/dist/components/logo/logo-titan.js.map +1 -1
  52. package/dist/components/profile-dropdown/profile-dropdown.d.ts.map +1 -1
  53. package/dist/components/profile-dropdown/profile-dropdown.js +174 -33
  54. package/dist/components/profile-dropdown/profile-dropdown.js.map +1 -1
  55. package/dist/components/profile-dropdown/profile-dropdown.module.less.d.ts +23 -0
  56. package/dist/components/profile-dropdown/profile-icon.js +49 -3
  57. package/dist/components/profile-dropdown/profile-icon.js.map +1 -1
  58. package/dist/components/titan-layout/index.d.ts +2 -2
  59. package/dist/components/titan-layout/index.d.ts.map +1 -1
  60. package/dist/components/titan-layout/index.js +1 -2
  61. package/dist/components/titan-layout/index.js.map +1 -1
  62. package/dist/components/titan-layout/interface-internal.js +2 -1
  63. package/dist/components/titan-layout/interface-internal.js.map +1 -1
  64. package/dist/components/titan-layout/interface.js +2 -1
  65. package/dist/components/titan-layout/interface.js.map +1 -1
  66. package/dist/components/titan-layout/layout-context.js +15 -6
  67. package/dist/components/titan-layout/layout-context.js.map +1 -1
  68. package/dist/components/titan-layout/layout-header-dark.d.ts +10 -0
  69. package/dist/components/titan-layout/layout-header-dark.d.ts.map +1 -0
  70. package/dist/components/titan-layout/layout-header-dark.js +146 -0
  71. package/dist/components/titan-layout/layout-header-dark.js.map +1 -0
  72. package/dist/components/titan-layout/layout-header-links.js +61 -15
  73. package/dist/components/titan-layout/layout-header-links.js.map +1 -1
  74. package/dist/components/titan-layout/layout-header.d.ts +2 -6
  75. package/dist/components/titan-layout/layout-header.d.ts.map +1 -1
  76. package/dist/components/titan-layout/layout-header.js +46 -2
  77. package/dist/components/titan-layout/layout-header.js.map +1 -1
  78. package/dist/components/titan-layout/layout-header.module.less +337 -83
  79. package/dist/components/titan-layout/layout-header.module.less.d.ts +35 -0
  80. package/dist/components/titan-layout/layout-logo.d.ts +5 -3
  81. package/dist/components/titan-layout/layout-logo.d.ts.map +1 -1
  82. package/dist/components/titan-layout/layout-logo.js +47 -9
  83. package/dist/components/titan-layout/layout-logo.js.map +1 -1
  84. package/dist/components/titan-layout/layout-logo.stories.d.ts +15 -4
  85. package/dist/components/titan-layout/layout-logo.stories.d.ts.map +1 -1
  86. package/dist/components/titan-layout/layout-profile.js +75 -23
  87. package/dist/components/titan-layout/layout-profile.js.map +1 -1
  88. package/dist/components/titan-layout/layout-sidebar-links-internal.js +162 -36
  89. package/dist/components/titan-layout/layout-sidebar-links-internal.js.map +1 -1
  90. package/dist/components/titan-layout/layout-sidebar-links.js +33 -13
  91. package/dist/components/titan-layout/layout-sidebar-links.js.map +1 -1
  92. package/dist/components/titan-layout/layout-sidebar.js +198 -34
  93. package/dist/components/titan-layout/layout-sidebar.js.map +1 -1
  94. package/dist/components/titan-layout/layout-sidebar.module.less +6 -2
  95. package/dist/components/titan-layout/layout-sidebar.module.less.d.ts +49 -0
  96. package/dist/components/titan-layout/notifications-context.js +20 -10
  97. package/dist/components/titan-layout/notifications-context.js.map +1 -1
  98. package/dist/components/titan-layout/titan-layout.d.ts +7 -8
  99. package/dist/components/titan-layout/titan-layout.d.ts.map +1 -1
  100. package/dist/components/titan-layout/titan-layout.js +271 -117
  101. package/dist/components/titan-layout/titan-layout.js.map +1 -1
  102. package/dist/components/titan-layout/titan-layout.module.less +7 -2
  103. package/dist/components/titan-layout/titan-layout.module.less.d.ts +17 -0
  104. package/dist/components/titan-layout/titan-layout.stories.d.ts +6 -0
  105. package/dist/components/titan-layout/titan-layout.stories.d.ts.map +1 -1
  106. package/dist/components/titan-layout/with-tooltip.d.ts +4 -1
  107. package/dist/components/titan-layout/with-tooltip.d.ts.map +1 -1
  108. package/dist/components/titan-layout/with-tooltip.js +13 -1
  109. package/dist/components/titan-layout/with-tooltip.js.map +1 -1
  110. package/dist/index.d.ts +4 -3
  111. package/dist/index.d.ts.map +1 -1
  112. package/dist/index.js +2 -3
  113. package/dist/index.js.map +1 -1
  114. package/dist/test/data-stories.module.less.d.ts +3 -0
  115. package/dist/test/data.js +223 -90
  116. package/dist/test/data.js.map +1 -1
  117. package/dist/utils/counter-tag.js +2 -1
  118. package/dist/utils/counter-tag.js.map +1 -1
  119. package/dist/utils/navigation-context.js +12 -6
  120. package/dist/utils/navigation-context.js.map +1 -1
  121. package/dist/utils/navigation-legacy.js +2 -1
  122. package/dist/utils/navigation-legacy.js.map +1 -1
  123. package/dist/utils/navigation.js +2 -1
  124. package/dist/utils/navigation.js.map +1 -1
  125. package/dist/utils/side-nav.js +9 -6
  126. package/dist/utils/side-nav.js.map +1 -1
  127. package/dist/utils/use-breakpoint.js +11 -8
  128. package/dist/utils/use-breakpoint.js.map +1 -1
  129. package/package.json +4 -4
  130. package/src/components/left-navigation/index.ts +1 -1
  131. package/src/components/logo/logo-titan.tsx +3 -1
  132. package/src/components/profile-dropdown/profile-dropdown.tsx +8 -4
  133. package/src/components/titan-layout/index.ts +2 -2
  134. package/src/components/titan-layout/layout-header-dark.tsx +186 -0
  135. package/src/components/titan-layout/layout-header-links.tsx +1 -1
  136. package/src/components/titan-layout/layout-header.module.less +337 -83
  137. package/src/components/titan-layout/layout-header.module.less.d.ts +19 -2
  138. package/src/components/titan-layout/layout-header.tsx +13 -16
  139. package/src/components/titan-layout/layout-logo.stories.tsx +103 -15
  140. package/src/components/titan-layout/layout-logo.tsx +33 -36
  141. package/src/components/titan-layout/layout-profile.stories.tsx +1 -1
  142. package/src/components/titan-layout/layout-sidebar.module.less +6 -2
  143. package/src/components/titan-layout/layout-sidebar.tsx +1 -1
  144. package/src/components/titan-layout/titan-layout.module.less +7 -2
  145. package/src/components/titan-layout/titan-layout.module.less.d.ts +2 -1
  146. package/src/components/titan-layout/titan-layout.stories.tsx +80 -23
  147. package/src/components/titan-layout/titan-layout.tsx +96 -85
  148. package/src/components/titan-layout/with-tooltip.tsx +5 -2
  149. package/src/index.ts +4 -5
  150. package/dist/components/header-navigation/header-navigation-extra-stacked.stories.js +0 -13
  151. package/dist/components/header-navigation/header-navigation-extra-stacked.stories.js.map +0 -1
  152. package/dist/components/header-navigation/header-navigation-extra.stories.js +0 -29
  153. package/dist/components/header-navigation/header-navigation-extra.stories.js.map +0 -1
  154. package/dist/components/header-navigation/header-navigation-stacked.stories.js +0 -50
  155. package/dist/components/header-navigation/header-navigation-stacked.stories.js.map +0 -1
  156. package/dist/components/header-navigation/header-navigation.stories.js +0 -54
  157. package/dist/components/header-navigation/header-navigation.stories.js.map +0 -1
  158. package/dist/components/layout.stories.js +0 -29
  159. package/dist/components/layout.stories.js.map +0 -1
  160. package/dist/components/left-navigation/header-navigation-extra-tiny.stories.js +0 -13
  161. package/dist/components/left-navigation/header-navigation-extra-tiny.stories.js.map +0 -1
  162. package/dist/components/left-navigation/header-navigation-tiny.stories.js +0 -30
  163. package/dist/components/left-navigation/header-navigation-tiny.stories.js.map +0 -1
  164. package/dist/components/left-navigation/side-navigation.stories.js +0 -115
  165. package/dist/components/left-navigation/side-navigation.stories.js.map +0 -1
  166. package/dist/components/logo/logo.stories.js +0 -20
  167. package/dist/components/logo/logo.stories.js.map +0 -1
  168. package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.js +0 -13
  169. package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.js.map +0 -1
  170. package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.js +0 -13
  171. package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.js.map +0 -1
  172. package/dist/components/profile-dropdown/profile-dropdown.stories.js +0 -51
  173. package/dist/components/profile-dropdown/profile-dropdown.stories.js.map +0 -1
  174. package/dist/components/titan-layout/layout-logo.stories.js +0 -17
  175. package/dist/components/titan-layout/layout-logo.stories.js.map +0 -1
  176. package/dist/components/titan-layout/layout-profile.stories.js +0 -13
  177. package/dist/components/titan-layout/layout-profile.stories.js.map +0 -1
  178. package/dist/components/titan-layout/titan-layout.stories.js +0 -83
  179. 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, } from '../profile-dropdown/profile-dropdown';
6
+ import { ProfileDropdown as DesktopProfileDropdown } from '../profile-dropdown/profile-dropdown';
7
7
  import { useTitanLayoutContext } from './layout-context';
8
- import { InternalSideNavigationGroup, InternalSideNavigationGroupDivider, InternalSideNavigationGroupLink, InternalSideNavigationGroupTrigger, } from './layout-sidebar-links-internal';
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 }) => (_jsx("a", { ...props, href: to, children: children }));
11
- const ProfileDropdownContent = props => {
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 ? (_jsx(MobileProfileDropdown, { ...props, navigationComponent: NavigationComponent })) : isTitanLayout ? (_jsx(NavigationComponentContext.Provider, { value: NavigationComponent, children: _jsx(DesktopProfileDropdown, { ...props }) })) : (_jsx(DesktopProfileDropdown, { ...props }));
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
- }, [hasNotifications, onNotificationsUpdate]);
28
- return (_jsx(NotificationsContextProvider, { children: _jsx(InternalSideNavigationGroup, { id: id, to: undefined, title: "Profile", icon: SvgAccountInactive, iconActive: SvgAccountActive, isActive: expanded, ...props, submenuExpanded: expanded, onExpandToggle: onExpandToggle, onClick: onExpandToggle, tag: { value: hasNotifications }, children: children }) }));
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 ? (_jsx(InternalSideNavigationGroupDivider, {})) : (_jsx(DesktopProfileDropdown.Divider, {}));
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 ? (_jsx(MobileProfileDropdownSection, { ...props })) : (_jsx(DesktopProfileDropdown.Section, { ...props }));
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 ? (_jsx(InternalSideNavigationGroupTrigger, { ...props, title: sectionText })) : null;
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 ? (_jsx(MobileProfileDropdownLink, { ...props, navigationComponent: NavigationComponent })) : (_jsx(DesktopProfileDropdown.Link, { ...props }));
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 ? (_jsx(InternalSideNavigationGroupLink, { ...props, to: to, title: linkText, navigationComponent: isExternalLink ? ExternalNavComponent : navigationComponent })) : null;
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, }) => (_jsxs(Fragment, { children: [_jsxs("div", { className: Styles.navItemIconWrapper, children: [IconComponent ? (_jsx("i", { className: classNames(Styles.navIcon, iconClassName), children: _jsx(IconComponent, {}) })) : (_jsxs(Fragment, { children: [icon && (_jsx(Icon, { svg: icon, className: classNames(Styles.navIcon, Styles.navIconInactive, iconClassName) })), iconActive && (_jsx(Icon, { svg: iconActive, className: classNames(Styles.navIcon, Styles.navIconActive, iconClassName) }))] })), _jsx("div", { className: Styles.navItemTextExpanded, children: title }), !!tag && (_jsx(BadgeTag, { data: tag, className: Styles.navItemCounter, longClassName: Styles.navItemCounterLong })), typeof submenuExpanded === 'boolean' && (_jsxs("div", { className: Styles.navItemGroupToggleWrapper, children: [_jsx(Icon, { svg: submenuExpanded ? SvgGroupCollapse : SvgGroupExpand, className: Styles.navItemGroupToggle, onClick: onExpandToggle }), _jsx("div", { className: Styles.navItemGroupToggleClick, onClick: onExpandToggle })] }))] }), _jsx("div", { className: classNames(Styles.navItemTextCollapsed, {
11
- [Styles.navItemTextSmall]: !!title && title.length >= 10,
12
- }), children: title })] }));
13
- export const internalNavigationContentContainerProps = ({ className, icon, iconActive, iconComponent, id, isActive, prefix, isLink, }) => ({
14
- 'data-cy': `${prefix}-${id}`,
15
- 'data-pendo': `${prefix}-${id}`,
16
- 'className': classNames(Styles.navItem, className, {
17
- [Styles.navLink]: isLink,
18
- [Styles.navItemActive]: isActive === true,
19
- [Styles.navItemIconSwitch]: !!icon && !!iconActive && !iconComponent,
20
- }),
21
- });
22
- /** Side Navigation menu item (for internal usage) */
23
- export const InternalSideNavigationLink = ({ to, className, dataPrefix, isActive, navigationComponent: NavigationComponent, submenuExpanded, onExpandToggle, ...props }) => {
24
- return (_jsx(NavigationComponent, { ...internalNavigationContentContainerProps({
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
- }), to: to, isActive: typeof isActive === 'function' ? isActive : undefined, activeClassName: Styles.navItemActive, children: _jsx(InternalSideNavigationItemContent, { submenuExpanded: submenuExpanded, onExpandToggle: onExpandToggle, ...props }) }));
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
- export const InternalSideNavigationTrigger = ({ className, dataPrefix, isActive, submenuExpanded, onExpandToggle, onClick, ...props }) => {
34
- return (_jsx("div", { ...internalNavigationContentContainerProps({
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
- }), onClick: onClick, children: _jsx(InternalSideNavigationItemContent, { submenuExpanded: submenuExpanded, onExpandToggle: onExpandToggle, ...props }) }));
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 (_jsxs(NavigationComponent, { "data-cy": `navigation-item-${id}`, "data-pendo": `navigation-item-${id}`, ...rest, to: to, className: classNames(Styles.submenuItem, Styles.submenuLink, {
44
- [Styles.submenuLinkActive]: isActive === true,
45
- }), isActive: typeof isActive === 'function' ? isActive : undefined, activeClassName: Styles.submenuLinkActive, children: [_jsx("span", { children: title }), _jsx(BadgeTag, { data: getCounterTag(counter, tag), className: Styles.submenuLinkCounter })] }, id));
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 (_jsxs("div", { "data-cy": `navigation-item-${id}`, "data-pendo": `navigation-item-${id}`, ...rest, className: classNames(Styles.submenuItem, {
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
- }), onClick: onClick, children: [_jsx("span", { children: title }), _jsx(BadgeTag, { data: getCounterTag(counter, tag), className: Styles.submenuLinkCounter })] }, id));
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", { className: Styles.divider });
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 (_jsxs("div", { className: classNames(Styles.navGroupWrapper), children: [_jsx("div", { className: Styles.navGroupItem, children: to ? (_jsx(InternalSideNavigationLink, { ...props, to: to, submenuExpanded: submenuExpanded, onExpandToggle: onExpandToggle })) : (_jsx(InternalSideNavigationTrigger, { ...props, submenuExpanded: submenuExpanded, onExpandToggle: onExpandToggle, onClick: onClick })) }), _jsx("div", { className: classNames(Styles.submenuWrapper, {
58
- [Styles.submenuWrapperCollapsed]: !submenuExpanded,
59
- }), children: _jsx("div", { className: Styles.submenu, children: children }) })] }));
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, } from './layout-sidebar-links-internal';
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, { context: sidebar, children: children });
8
+ return /*#__PURE__*/ _jsx(WrapperComponent, {
9
+ context: sidebar,
10
+ children: children
11
+ });
9
12
  };
10
- /** Side Navigation menu link */
11
- export function TitanLayoutSidebarLink({ wrapper, ...props }) {
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 = (_jsx(InternalSideNavigationLink, { ...props, navigationComponent: NavigationComponent, submenuExpanded: undefined, dataPrefix: "navigation-link", tag: tag }));
17
- return wrapper && !isMobile ? _jsx(WrappedLink, { wrapper: wrapper, children: element }) : element;
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
- export function TitanLayoutSidebarTrigger({ wrapper, onMobileClick, onClick, ...props }) {
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 = (_jsx(InternalSideNavigationTrigger, { ...props, submenuExpanded: undefined, dataPrefix: "navigation-trigger", tag: tag, onClick: isMobile && !!onMobileClick ? onMobileClick : onClick }));
26
- return wrapper && (!isMobile || !onMobileClick) ? (_jsx(WrappedLink, { wrapper: wrapper, children: element })) : (element);
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,"file":"layout-sidebar-links.js","sourceRoot":"","sources":["../../../src/components/titan-layout/layout-sidebar-links.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EACH,0BAA0B,EAC1B,6BAA6B,GAChC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,MAAM,WAAW,GAGZ,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE;IAC7C,MAAM,EAAE,OAAO,EAAE,GAAG,qBAAqB,EAAE,CAAC;IAC5C,OAAO,KAAC,gBAAgB,IAAC,OAAO,EAAE,OAAO,YAAG,QAAQ,GAAoB,CAAC;AAC7E,CAAC,CAAC;AAEF,gCAAgC;AAChC,MAAM,UAAU,sBAAsB,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,EAA+B;IACrF,MAAM,EACF,mBAAmB,EACnB,UAAU,EAAE,EAAE,QAAQ,EAAE,GAC3B,GAAG,qBAAqB,EAAE,CAAC;IAC5B,MAAM,EAAE,qBAAqB,EAAE,GAAG,uBAAuB,EAAE,CAAC;IAC5D,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAEpD,qBAAqB,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAEvC,MAAM,OAAO,GAAG,CACZ,KAAC,0BAA0B,OACnB,KAAK,EACT,mBAAmB,EAAE,mBAAmB,EACxC,eAAe,EAAE,SAAS,EAC1B,UAAU,EAAC,iBAAiB,EAC5B,GAAG,EAAE,GAAG,GACV,CACL,CAAC;IAEF,OAAO,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAC,WAAW,IAAC,OAAO,EAAE,OAAO,YAAG,OAAO,GAAe,CAAC,CAAC,CAAC,OAAO,CAAC;AACnG,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,yBAAyB,CAAC,EACtC,OAAO,EACP,aAAa,EACb,OAAO,EACP,GAAG,KAAK,EACqB;IAC7B,MAAM,EACF,UAAU,EAAE,EAAE,QAAQ,EAAE,GAC3B,GAAG,qBAAqB,EAAE,CAAC;IAC5B,MAAM,EAAE,qBAAqB,EAAE,GAAG,uBAAuB,EAAE,CAAC;IAC5D,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAEpD,qBAAqB,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAEvC,MAAM,OAAO,GAAG,CACZ,KAAC,6BAA6B,OACtB,KAAK,EACT,eAAe,EAAE,SAAS,EAC1B,UAAU,EAAC,oBAAoB,EAC/B,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,GAChE,CACL,CAAC;IACF,OAAO,OAAO,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAC9C,KAAC,WAAW,IAAC,OAAO,EAAE,OAAO,YAAG,OAAO,GAAe,CACzD,CAAC,CAAC,CAAC,CACA,OAAO,CACV,CAAC;AACN,CAAC"}
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"}