@servicetitan/navigation 13.0.0-canary.256.b43c6d7.0 → 13.0.0
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/counter-tag.d.ts +1 -1
- package/dist/components/counter-tag.d.ts.map +1 -1
- package/dist/components/counter-tag.js.map +1 -1
- package/dist/components/profile-dropdown/interface.d.ts +55 -0
- package/dist/components/profile-dropdown/interface.d.ts.map +1 -0
- package/dist/components/profile-dropdown/interface.js +3 -0
- package/dist/components/profile-dropdown/interface.js.map +1 -0
- package/dist/components/profile-dropdown/profile-dropdown-legacy.stories.d.ts +5 -1
- package/dist/components/profile-dropdown/profile-dropdown-legacy.stories.d.ts.map +1 -1
- package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.d.ts +5 -1
- package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.d.ts.map +1 -1
- package/dist/components/profile-dropdown/profile-dropdown.d.ts +9 -79
- package/dist/components/profile-dropdown/profile-dropdown.d.ts.map +1 -1
- package/dist/components/profile-dropdown/profile-dropdown.js +17 -14
- package/dist/components/profile-dropdown/profile-dropdown.js.map +1 -1
- package/dist/components/profile-dropdown/profile-dropdown.stories.d.ts +5 -1
- package/dist/components/profile-dropdown/profile-dropdown.stories.d.ts.map +1 -1
- package/dist/components/titan-layout/interface-internal.d.ts +12 -0
- package/dist/components/titan-layout/interface-internal.d.ts.map +1 -1
- package/dist/components/titan-layout/interface-internal.js.map +1 -1
- package/dist/components/titan-layout/interface.d.ts +60 -4
- package/dist/components/titan-layout/interface.d.ts.map +1 -1
- package/dist/components/titan-layout/interface.js.map +1 -1
- package/dist/components/titan-layout/layout-header-dark.d.ts.map +1 -1
- package/dist/components/titan-layout/layout-header-dark.js +24 -12
- package/dist/components/titan-layout/layout-header-dark.js.map +1 -1
- package/dist/components/titan-layout/layout-header-links-internal.d.ts +22 -3
- package/dist/components/titan-layout/layout-header-links-internal.d.ts.map +1 -1
- package/dist/components/titan-layout/layout-header-links-internal.js +15 -18
- package/dist/components/titan-layout/layout-header-links-internal.js.map +1 -1
- package/dist/components/titan-layout/layout-header-links.d.ts +2 -3
- package/dist/components/titan-layout/layout-header-links.d.ts.map +1 -1
- package/dist/components/titan-layout/layout-header-links.js +25 -5
- package/dist/components/titan-layout/layout-header-links.js.map +1 -1
- package/dist/components/titan-layout/layout-header.d.ts +2 -0
- package/dist/components/titan-layout/layout-header.d.ts.map +1 -1
- package/dist/components/titan-layout/layout-header.js +25 -16
- package/dist/components/titan-layout/layout-header.js.map +1 -1
- package/dist/components/titan-layout/layout-header.module.less +37 -1
- package/dist/components/titan-layout/layout-header.module.less.d.ts +3 -0
- package/dist/components/titan-layout/layout-profile.d.ts +8 -5
- package/dist/components/titan-layout/layout-profile.d.ts.map +1 -1
- package/dist/components/titan-layout/layout-profile.js +29 -21
- package/dist/components/titan-layout/layout-profile.js.map +1 -1
- package/dist/components/titan-layout/layout-sidebar-links-internal.d.ts +48 -24
- package/dist/components/titan-layout/layout-sidebar-links-internal.d.ts.map +1 -1
- package/dist/components/titan-layout/layout-sidebar-links-internal.js +62 -51
- package/dist/components/titan-layout/layout-sidebar-links-internal.js.map +1 -1
- package/dist/components/titan-layout/layout-sidebar-links.d.ts +2 -2
- package/dist/components/titan-layout/layout-sidebar-links.d.ts.map +1 -1
- package/dist/components/titan-layout/layout-sidebar-links.js +27 -14
- package/dist/components/titan-layout/layout-sidebar-links.js.map +1 -1
- package/dist/components/titan-layout/layout-sidebar.d.ts +1 -1
- package/dist/components/titan-layout/layout-sidebar.d.ts.map +1 -1
- package/dist/components/titan-layout/layout-sidebar.js +81 -104
- package/dist/components/titan-layout/layout-sidebar.js.map +1 -1
- package/dist/components/titan-layout/layout-sidebar.module.less +74 -22
- package/dist/components/titan-layout/titan-layout-default.stories.d.ts +16 -0
- package/dist/components/titan-layout/titan-layout-default.stories.d.ts.map +1 -0
- package/dist/components/titan-layout/titan-layout-legacy.stories.d.ts +10 -0
- package/dist/components/titan-layout/titan-layout-legacy.stories.d.ts.map +1 -0
- package/dist/components/titan-layout/titan-layout-stacked.stories.d.ts +10 -0
- package/dist/components/titan-layout/titan-layout-stacked.stories.d.ts.map +1 -0
- package/dist/components/titan-layout/titan-layout.d.ts +28 -1
- package/dist/components/titan-layout/titan-layout.d.ts.map +1 -1
- package/dist/components/titan-layout/titan-layout.js +30 -11
- package/dist/components/titan-layout/titan-layout.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/test/data.d.ts +0 -22
- package/dist/test/data.d.ts.map +1 -1
- package/dist/test/data.js +0 -197
- package/dist/test/data.js.map +1 -1
- package/dist/test/titan-layout.d.ts +16 -0
- package/dist/test/titan-layout.d.ts.map +1 -0
- package/dist/test/titan-layout.js +21 -0
- package/dist/test/titan-layout.js.map +1 -0
- package/dist/utils/navigation.d.ts +1 -4
- package/dist/utils/navigation.d.ts.map +1 -1
- package/dist/utils/navigation.js.map +1 -1
- package/package.json +4 -4
- package/src/components/counter-tag.tsx +1 -1
- package/src/components/profile-dropdown/interface.ts +47 -0
- package/src/components/profile-dropdown/profile-dropdown-legacy.stories.tsx +3 -3
- package/src/components/profile-dropdown/profile-dropdown-stacked.stories.tsx +3 -3
- package/src/components/profile-dropdown/profile-dropdown.stories.tsx +39 -39
- package/src/components/profile-dropdown/profile-dropdown.tsx +37 -104
- package/src/components/titan-layout/interface-internal.ts +13 -0
- package/src/components/titan-layout/interface.ts +64 -7
- package/src/components/titan-layout/layout-header-dark.tsx +21 -5
- package/src/components/titan-layout/layout-header-links-internal.tsx +41 -54
- package/src/components/titan-layout/layout-header-links.tsx +64 -8
- package/src/components/titan-layout/layout-header.module.less +37 -1
- package/src/components/titan-layout/layout-header.module.less.d.ts +3 -0
- package/src/components/titan-layout/layout-header.tsx +26 -13
- package/src/components/titan-layout/layout-profile.tsx +51 -28
- package/src/components/titan-layout/layout-sidebar-links-internal.tsx +155 -102
- package/src/components/titan-layout/layout-sidebar-links.tsx +45 -12
- package/src/components/titan-layout/layout-sidebar.module.less +74 -22
- package/src/components/titan-layout/layout-sidebar.tsx +55 -80
- package/src/components/titan-layout/{titan-layout.stories.tsx → titan-layout-default.stories.tsx} +100 -84
- package/src/components/titan-layout/titan-layout-legacy.stories.tsx +24 -0
- package/src/components/titan-layout/titan-layout-stacked.stories.tsx +30 -0
- package/src/components/titan-layout/titan-layout.tsx +67 -12
- package/src/index.ts +0 -1
- package/src/test/data.tsx +0 -165
- package/src/test/titan-layout.tsx +34 -0
- package/src/utils/navigation.ts +1 -6
- package/dist/components/titan-layout/titan-layout.stories.d.ts +0 -29
- package/dist/components/titan-layout/titan-layout.stories.d.ts.map +0 -1
- package/dist/utils/navigation-legacy.d.ts +0 -88
- package/dist/utils/navigation-legacy.d.ts.map +0 -1
- package/dist/utils/navigation-legacy.js +0 -3
- package/dist/utils/navigation-legacy.js.map +0 -1
- package/src/utils/navigation-legacy.ts +0 -106
package/dist/test/data.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/test/data.tsx"],"sourcesContent":["import { AnvilProvider } from '@servicetitan/anvil2';\nimport SvgPhone from '@servicetitan/anvil2/assets/icons/material/round/phone_disabled.svg';\nimport SvgPhoneActive from '@servicetitan/anvil2/assets/icons/material/round/phone_enabled.svg';\nimport SvgAccountingActive from '@servicetitan/anvil2/assets/icons/st/gnav_accounting_active.svg';\nimport SvgAccounting from '@servicetitan/anvil2/assets/icons/st/gnav_accounting_inactive.svg';\nimport SvgCallsActive from '@servicetitan/anvil2/assets/icons/st/gnav_calls_active.svg';\nimport SvgCalls from '@servicetitan/anvil2/assets/icons/st/gnav_calls_inactive.svg';\nimport SvgDashboardActive from '@servicetitan/anvil2/assets/icons/st/gnav_dashboard_active.svg';\nimport SvgDashboard from '@servicetitan/anvil2/assets/icons/st/gnav_dashboard_inactive.svg';\nimport SvgDispatchActive from '@servicetitan/anvil2/assets/icons/st/gnav_dispatch_active.svg';\nimport SvgDispatch from '@servicetitan/anvil2/assets/icons/st/gnav_dispatch_inactive.svg';\nimport SvgFleetProActive from '@servicetitan/anvil2/assets/icons/st/gnav_fleet_pro_active.svg';\nimport SvgFleetPro from '@servicetitan/anvil2/assets/icons/st/gnav_fleet_pro_inactive.svg';\nimport SvgFollowUpActive from '@servicetitan/anvil2/assets/icons/st/gnav_follow_up_active.svg';\nimport SvgFollowUp from '@servicetitan/anvil2/assets/icons/st/gnav_follow_up_inactive.svg';\nimport SvgInventoryActive from '@servicetitan/anvil2/assets/icons/st/gnav_inventory_active.svg';\nimport SvgInventory from '@servicetitan/anvil2/assets/icons/st/gnav_inventory_inactive.svg';\nimport SvgMarketingActive from '@servicetitan/anvil2/assets/icons/st/gnav_marketing_active.svg';\nimport SvgMarketing from '@servicetitan/anvil2/assets/icons/st/gnav_marketing_inactive.svg';\nimport SvgPosActive from '@servicetitan/anvil2/assets/icons/st/gnav_pos_active.svg';\nimport SvgPos from '@servicetitan/anvil2/assets/icons/st/gnav_pos_inactive.svg';\nimport SvgPriceBookActive from '@servicetitan/anvil2/assets/icons/st/gnav_pricebook_active.svg';\nimport SvgPriceBook from '@servicetitan/anvil2/assets/icons/st/gnav_pricebook_inactive.svg';\nimport SvgProjectsActive from '@servicetitan/anvil2/assets/icons/st/gnav_projects_active.svg';\nimport SvgProjects from '@servicetitan/anvil2/assets/icons/st/gnav_projects_inactive.svg';\nimport SvgReportsActive from '@servicetitan/anvil2/assets/icons/st/gnav_reports_active.svg';\nimport SvgReports from '@servicetitan/anvil2/assets/icons/st/gnav_reports_inactive.svg';\nimport SvgScheduleActive from '@servicetitan/anvil2/assets/icons/st/gnav_schedule_active.svg';\nimport SvgSchedule from '@servicetitan/anvil2/assets/icons/st/gnav_schedule_inactive.svg';\nimport SvgTasksActive from '@servicetitan/anvil2/assets/icons/st/gnav_tasks_active.svg';\nimport SvgTasks from '@servicetitan/anvil2/assets/icons/st/gnav_tasks_inactive.svg';\n\nimport { BodyText, Popover } from '@servicetitan/design-system';\n\nimport classNames from 'classnames';\nimport { FC, Fragment, forwardRef, useState } from 'react';\n// needed only for storybook and added in root dependencies\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { MemoryRouter, Redirect, Switch, useHistory, useLocation } from 'react-router-dom';\nimport { TitanLayout } from '../components/titan-layout';\nimport {\n NavigationItemData,\n NavigationSubmenuGroupData,\n NavigationSubmenuItemData,\n} from '../utils/navigation';\nimport { NavLinkComponentProps } from '../utils/navigation-context';\nimport { HeaderNavigationItemData } from '../utils/navigation-legacy';\nimport * as Styles from './data-stories.module.less';\n\nexport const NavLinkMock = forwardRef<any, NavLinkComponentProps>(\n ({ to, children, activeClassName, className, isActive, ...rest }, ref) => {\n const history = useHistory();\n const location = useLocation();\n const linkActive = location.pathname.startsWith(to);\n\n return (\n <a\n {...rest}\n onClick={e => {\n e.preventDefault();\n\n if (!to.startsWith('http')) {\n history.replace(to);\n }\n }}\n className={classNames(className, linkActive ? activeClassName : '')}\n href={to}\n ref={ref}\n >\n {children}\n </a>\n );\n }\n);\n\nexport const LocationInfo: FC<{ className?: string }> = ({ className }) => {\n const location = useLocation();\n\n return <BodyText className={className}>current location - {location.pathname}</BodyText>;\n};\n\nexport const withMemoryRouter = (Story: any) => (\n <MemoryRouter>\n <Story />\n </MemoryRouter>\n);\n\nexport const withAnvil = (Story: any) => (\n <AnvilProvider className={Styles.fixIcons}>\n <Story />\n </AnvilProvider>\n);\n\nexport const InventoryIcon = () => (\n <svg width=\"20\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-293 385 24 24\" fill=\"currentColor\">\n <polyline points=\"-288,400.9 -282,404.3 -282,397.6 -288,394.2 -288,400.9 \" />\n <path d=\"M-272,401.5c0,0.4-0.2,0.7-0.5,0.9l-7.9,4.4c-0.2,0.1-0.4,0.2-0.6,0.2s-0.4-0.1-0.6-0.2l-7.9-4.4c-0.3-0.2-0.5-0.5-0.5-0.9v-9c0-0.4,0.2-0.7,0.5-0.9l7.9-4.4c0.2-0.1,0.4-0.2,0.6-0.2s0.4,0.1,0.6,0.2l7.9,4.4c0.3,0.2,0.5,0.5,0.5,0.9V401.5 M-287,392.5 l6,3.4l5.9-3.3l-5.9-3.4L-287,392.5 M-274,400.9v-6.7l-6,3.4v6.7L-274,400.9z\" />\n </svg>\n);\n\nexport const SearchIcon = () => (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g transform=\"translate(0,4)\">\n <path\n d=\"M0 15.7992V13.9992H12V15.7992H0ZM0 9.49922V7.69922H6V9.49922H0ZM0 3.19922V1.39922H6V3.19922H0ZM22.74 15.7992L17.94 10.9992C17.42 11.3992 16.86 11.6992 16.26 11.8992C15.66 12.0992 15.04 12.1992 14.4 12.1992C12.74 12.1992 11.325 11.6142 10.155 10.4442C8.985 9.27422 8.4 7.85922 8.4 6.19922C8.4 4.53922 8.985 3.12422 10.155 1.95422C11.325 0.784219 12.74 0.199219 14.4 0.199219C16.06 0.199219 17.475 0.784219 18.645 1.95422C19.815 3.12422 20.4 4.53922 20.4 6.19922C20.4 6.83922 20.3 7.45922 20.1 8.05922C19.9 8.65922 19.6 9.21922 19.2 9.73922L24 14.5392L22.74 15.7992ZM14.393 10.3992C15.5577 10.3992 16.55 9.99157 17.37 9.17627C18.19 8.36099 18.6 7.37099 18.6 6.20627C18.6 5.04157 18.1923 4.04922 17.377 3.22922C16.5618 2.40922 15.5718 1.99922 14.407 1.99922C13.2423 1.99922 12.25 2.40687 11.43 3.22217C10.61 4.03745 10.2 5.02745 10.2 6.19217C10.2 7.35687 10.6077 8.34922 11.423 9.16922C12.2382 9.98922 13.2282 10.3992 14.393 10.3992Z\"\n fill=\"white\"\n />\n </g>\n </svg>\n);\n\nconst getItem = (\n id: string,\n data: Partial<HeaderNavigationItemData>\n): HeaderNavigationItemData => ({\n id,\n to: '/' + id,\n title: id[0].toUpperCase() + id.substring(1),\n hint: id,\n icon: undefined,\n iconActive: undefined,\n ...data,\n submenu: data.submenu\n ? {\n ...data.submenu,\n groups: data.submenu.groups.map(group => ({\n ...group,\n links: group.links.map(link => ({\n ...link,\n to: `/${id}/${link.to}`,\n })),\n })),\n }\n : undefined,\n});\n\nconst getNavItem = (id: string, data: Partial<NavigationItemData>): NavigationItemData => ({\n id,\n to: '/' + id,\n title: id[0].toUpperCase() + id.substring(1),\n icon: undefined,\n iconActive: undefined,\n ...data,\n submenu: data.submenu\n ? {\n ...data.submenu,\n groups: data.submenu.groups.map(group => ({\n ...group,\n links: group.links.map(link => ({\n ...link,\n to: `/${id}/${link.to}`,\n })),\n })),\n }\n : undefined,\n});\n\nconst getSubItem = (\n id: string,\n data: Partial<NavigationSubmenuItemData>\n): NavigationSubmenuItemData => ({\n id,\n to: id,\n title: id[0].toUpperCase() + id.substring(1),\n ...data,\n});\n\nconst getGroup = (\n title: string,\n links: NavigationSubmenuItemData[]\n): NavigationSubmenuGroupData => ({\n title,\n links,\n});\n\nexport const items = {\n calendar: getItem('calendar', {\n iconName: 'event',\n icon: SvgSchedule,\n iconActive: SvgScheduleActive,\n }),\n schedule: getItem('schedule', {\n iconName: 'event',\n icon: SvgSchedule,\n iconActive: SvgScheduleActive,\n }),\n calls: getItem('calls', {\n iconName: 'local_phone',\n icon: SvgCalls,\n iconActive: SvgCallsActive,\n counter: 1234,\n }),\n dashboard: getItem('dashboard', {\n iconName: 'odometer',\n icon: SvgDashboard,\n iconActive: SvgDashboardActive,\n }),\n dispatch: getItem('dispatch', {\n iconName: 'location_disabled',\n icon: SvgDispatch,\n iconActive: SvgDispatchActive,\n tag: { value: 3 },\n }),\n fleet: getItem('fleet', {\n iconName: 'fleet-pro',\n icon: SvgFleetPro,\n iconActive: SvgFleetProActive,\n title: 'Fleet Pro',\n }),\n followUps: getItem('followUps', {\n iconName: 'flag',\n icon: SvgFollowUp,\n iconActive: SvgFollowUpActive,\n title: 'Follow Up',\n }),\n followUpsWithSubmenu: getItem('followUps', {\n iconName: 'flag',\n icon: SvgFollowUp,\n iconActive: SvgFollowUpActive,\n title: 'Follow Up',\n submenu: {\n groups: [\n getGroup('', [\n getSubItem('estimates', { title: 'Unsold Estimates' }),\n getSubItem('sold', { title: 'Sold Estimates' }),\n getSubItem('surveys', { title: 'Surveys' }),\n ]),\n ],\n },\n }),\n inventory: getItem('inventory', {\n iconName: 'toys',\n icon: SvgInventory,\n iconActive: SvgInventoryActive,\n }),\n purchasing: getItem('purchasing', { iconComponent: InventoryIcon }),\n purchasingWithSubmenu: getItem('purchasing', {\n iconName: 'toys',\n icon: SvgInventory,\n iconActive: SvgInventoryActive,\n counter: true,\n submenu: {\n groups: [\n getGroup('Purchase', [\n getSubItem('repl', { title: 'Replenishment' }),\n getSubItem('orders', { title: 'Purchase Orders' }),\n getSubItem('receipts', { title: 'Receipts' }),\n getSubItem('returns', { title: 'Returns' }),\n ]),\n ],\n },\n }),\n accounting: getItem('accounting', {\n iconName: 'assignment',\n icon: SvgAccounting,\n iconActive: SvgAccountingActive,\n counter: true,\n }),\n accountingWithSubmenu: getItem('accounting', {\n iconName: 'assignment',\n icon: SvgAccounting,\n iconActive: SvgAccountingActive,\n counter: 1,\n submenu: {\n groups: [\n getGroup('Accounts Receivable', [\n getSubItem('export', {\n title: 'Batch/Export Transactions',\n counter: true,\n }),\n getSubItem('ar', { title: 'AR Management' }),\n getSubItem('invoices', { title: 'Invoices', counter: 3 }),\n getSubItem('payments', { title: 'Customer Payments', counter: 2 }),\n getSubItem('deposits', { title: 'Bank Deposits' }),\n ]),\n getGroup('Accounts Payable', [getSubItem('bills', { title: 'Bills' })]),\n getGroup('Financing', [getSubItem('dashboard', { title: 'Dashboard' })]),\n getGroup('Others', [getSubItem('at', { title: 'Accounting Audit Trail' })]),\n ],\n },\n }),\n marketing: getItem('marketing', {\n iconName: 'bullhorn',\n icon: SvgMarketing,\n iconActive: SvgMarketingActive,\n }),\n priceBook: getItem('pricebook', {\n iconName: 'book',\n icon: SvgPriceBook,\n iconActive: SvgPriceBookActive,\n }),\n pointOfSale: getItem('pointOfSale', {\n iconName: 'cash-register',\n icon: SvgPos,\n iconActive: SvgPosActive,\n title: 'Point Of Sale',\n }),\n projects: getItem('projects', {\n iconName: 'folder_special',\n icon: SvgProjects,\n iconActive: SvgProjectsActive,\n }),\n reports: getItem('reports', {\n iconName: 'folder_special',\n icon: SvgReports,\n iconActive: SvgReportsActive,\n }),\n tasks: getItem('tasks', {\n iconName: 'format_list_bulleted',\n icon: SvgTasks,\n iconActive: SvgTasksActive,\n }),\n};\n\nexport const navItems = {\n calendar: getNavItem('calendar', {\n icon: SvgSchedule,\n iconActive: SvgScheduleActive,\n }),\n schedule: getNavItem('schedule', {\n icon: SvgSchedule,\n iconActive: SvgScheduleActive,\n }),\n calls: getNavItem('calls', {\n icon: SvgCalls,\n iconActive: SvgCallsActive,\n counter: 1234,\n }),\n dashboard: getNavItem('dashboard', {\n icon: SvgDashboard,\n iconActive: SvgDashboardActive,\n }),\n dispatch: getNavItem('dispatch', {\n icon: SvgDispatch,\n iconActive: SvgDispatchActive,\n tag: { value: 3 },\n }),\n fleet: getNavItem('fleet', {\n icon: SvgFleetPro,\n iconActive: SvgFleetProActive,\n title: 'Fleet Pro',\n }),\n followUps: getNavItem('followUps', {\n icon: SvgFollowUp,\n iconActive: SvgFollowUpActive,\n title: 'Follow Up',\n }),\n followUpsWithSubmenu: getNavItem('followUps', {\n icon: SvgFollowUp,\n iconActive: SvgFollowUpActive,\n title: 'Follow Up',\n submenu: {\n groups: [\n getGroup('', [\n getSubItem('estimates', { title: 'Unsold Estimates' }),\n getSubItem('sold', { title: 'Sold Estimates' }),\n getSubItem('surveys', { title: 'Surveys' }),\n ]),\n ],\n },\n }),\n inventory: getNavItem('inventory', {\n icon: SvgInventory,\n iconActive: SvgInventoryActive,\n }),\n purchasing: getNavItem('purchasing', {}),\n purchasingWithSubmenu: getNavItem('purchasing', {\n icon: SvgInventory,\n iconActive: SvgInventoryActive,\n counter: true,\n submenu: {\n groups: [\n getGroup('Purchase', [\n getSubItem('repl', { title: 'Replenishment' }),\n getSubItem('orders', { title: 'Purchase Orders' }),\n getSubItem('receipts', { title: 'Receipts' }),\n getSubItem('returns', { title: 'Returns' }),\n ]),\n ],\n },\n }),\n accounting: getNavItem('accounting', {\n icon: SvgAccounting,\n iconActive: SvgAccountingActive,\n counter: true,\n }),\n accountingWithSubmenu: getNavItem('accounting', {\n icon: SvgAccounting,\n iconActive: SvgAccountingActive,\n counter: 1,\n submenu: {\n groups: [\n getGroup('Accounts Receivable', [\n getSubItem('export', {\n title: 'Batch/Export Transactions',\n counter: true,\n }),\n getSubItem('ar', { title: 'AR Management' }),\n getSubItem('invoices', { title: 'Invoices', counter: 3 }),\n getSubItem('payments', { title: 'Customer Payments', counter: 2 }),\n getSubItem('deposits', { title: 'Bank Deposits' }),\n ]),\n getGroup('Accounts Payable', [getSubItem('bills', { title: 'Bills' })]),\n getGroup('Financing', [getSubItem('dashboard', { title: 'Dashboard' })]),\n getGroup('Others', [getSubItem('at', { title: 'Accounting Audit Trail' })]),\n ],\n },\n }),\n marketing: getNavItem('marketing', {\n icon: SvgMarketing,\n iconActive: SvgMarketingActive,\n }),\n priceBook: getNavItem('pricebook', {\n icon: SvgPriceBook,\n iconActive: SvgPriceBookActive,\n }),\n pointOfSale: getNavItem('pointOfSale', {\n icon: SvgPos,\n iconActive: SvgPosActive,\n title: 'Point Of Sale',\n }),\n projects: getNavItem('projects', {\n icon: SvgProjects,\n iconActive: SvgProjectsActive,\n }),\n reports: getNavItem('reports', {\n icon: SvgReports,\n iconActive: SvgReportsActive,\n }),\n tasks: getNavItem('tasks', {\n icon: SvgTasks,\n iconActive: SvgTasksActive,\n }),\n};\n\nexport const CallsNavigationTrigger = () => {\n const [open, setOpen] = useState(false);\n\n return (\n <Popover\n open={open}\n onClickOutside={() => setOpen(false)}\n direction=\"bl\"\n trigger={\n <TitanLayout.Trigger\n id=\"dialpad\"\n counter={2}\n title=\"Calls\"\n icon={SvgPhone}\n iconActive={SvgPhoneActive}\n onClick={() => setOpen(!open)}\n isActive={open}\n />\n }\n >\n calls content\n </Popover>\n );\n};\n\nexport const withDefaultRedirects = (Story: any) => (\n <Fragment>\n <Switch>\n <Redirect from=\"/accounting\" exact to=\"/accounting/export\" />\n <Redirect from=\"/purchasing\" exact to=\"/purchasing/repl\" />\n <Redirect from=\"/followUps\" exact to=\"/followUps/sold\" />\n </Switch>\n <Story />\n </Fragment>\n);\n"],"names":["AnvilProvider","SvgPhone","SvgPhoneActive","SvgAccountingActive","SvgAccounting","SvgCallsActive","SvgCalls","SvgDashboardActive","SvgDashboard","SvgDispatchActive","SvgDispatch","SvgFleetProActive","SvgFleetPro","SvgFollowUpActive","SvgFollowUp","SvgInventoryActive","SvgInventory","SvgMarketingActive","SvgMarketing","SvgPosActive","SvgPos","SvgPriceBookActive","SvgPriceBook","SvgProjectsActive","SvgProjects","SvgReportsActive","SvgReports","SvgScheduleActive","SvgSchedule","SvgTasksActive","SvgTasks","BodyText","Popover","classNames","Fragment","forwardRef","useState","MemoryRouter","Redirect","Switch","useHistory","useLocation","TitanLayout","Styles","NavLinkMock","to","children","activeClassName","className","isActive","rest","ref","history","location","linkActive","pathname","startsWith","a","onClick","e","preventDefault","replace","href","LocationInfo","withMemoryRouter","Story","withAnvil","fixIcons","InventoryIcon","svg","width","xmlns","viewBox","fill","polyline","points","path","d","SearchIcon","height","g","transform","getItem","id","data","title","toUpperCase","substring","hint","icon","undefined","iconActive","submenu","groups","map","group","links","link","getNavItem","getSubItem","getGroup","items","calendar","iconName","schedule","calls","counter","dashboard","dispatch","tag","value","fleet","followUps","followUpsWithSubmenu","inventory","purchasing","iconComponent","purchasingWithSubmenu","accounting","accountingWithSubmenu","marketing","priceBook","pointOfSale","projects","reports","tasks","navItems","CallsNavigationTrigger","open","setOpen","onClickOutside","direction","trigger","Trigger","withDefaultRedirects","from","exact"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/test/data.tsx"],"sourcesContent":["import { AnvilProvider } from '@servicetitan/anvil2';\nimport SvgPhone from '@servicetitan/anvil2/assets/icons/material/round/phone_disabled.svg';\nimport SvgPhoneActive from '@servicetitan/anvil2/assets/icons/material/round/phone_enabled.svg';\nimport SvgAccountingActive from '@servicetitan/anvil2/assets/icons/st/gnav_accounting_active.svg';\nimport SvgAccounting from '@servicetitan/anvil2/assets/icons/st/gnav_accounting_inactive.svg';\nimport SvgCallsActive from '@servicetitan/anvil2/assets/icons/st/gnav_calls_active.svg';\nimport SvgCalls from '@servicetitan/anvil2/assets/icons/st/gnav_calls_inactive.svg';\nimport SvgDashboardActive from '@servicetitan/anvil2/assets/icons/st/gnav_dashboard_active.svg';\nimport SvgDashboard from '@servicetitan/anvil2/assets/icons/st/gnav_dashboard_inactive.svg';\nimport SvgDispatchActive from '@servicetitan/anvil2/assets/icons/st/gnav_dispatch_active.svg';\nimport SvgDispatch from '@servicetitan/anvil2/assets/icons/st/gnav_dispatch_inactive.svg';\nimport SvgFleetProActive from '@servicetitan/anvil2/assets/icons/st/gnav_fleet_pro_active.svg';\nimport SvgFleetPro from '@servicetitan/anvil2/assets/icons/st/gnav_fleet_pro_inactive.svg';\nimport SvgFollowUpActive from '@servicetitan/anvil2/assets/icons/st/gnav_follow_up_active.svg';\nimport SvgFollowUp from '@servicetitan/anvil2/assets/icons/st/gnav_follow_up_inactive.svg';\nimport SvgInventoryActive from '@servicetitan/anvil2/assets/icons/st/gnav_inventory_active.svg';\nimport SvgInventory from '@servicetitan/anvil2/assets/icons/st/gnav_inventory_inactive.svg';\nimport SvgMarketingActive from '@servicetitan/anvil2/assets/icons/st/gnav_marketing_active.svg';\nimport SvgMarketing from '@servicetitan/anvil2/assets/icons/st/gnav_marketing_inactive.svg';\nimport SvgPosActive from '@servicetitan/anvil2/assets/icons/st/gnav_pos_active.svg';\nimport SvgPos from '@servicetitan/anvil2/assets/icons/st/gnav_pos_inactive.svg';\nimport SvgPriceBookActive from '@servicetitan/anvil2/assets/icons/st/gnav_pricebook_active.svg';\nimport SvgPriceBook from '@servicetitan/anvil2/assets/icons/st/gnav_pricebook_inactive.svg';\nimport SvgProjectsActive from '@servicetitan/anvil2/assets/icons/st/gnav_projects_active.svg';\nimport SvgProjects from '@servicetitan/anvil2/assets/icons/st/gnav_projects_inactive.svg';\nimport SvgReportsActive from '@servicetitan/anvil2/assets/icons/st/gnav_reports_active.svg';\nimport SvgReports from '@servicetitan/anvil2/assets/icons/st/gnav_reports_inactive.svg';\nimport SvgScheduleActive from '@servicetitan/anvil2/assets/icons/st/gnav_schedule_active.svg';\nimport SvgSchedule from '@servicetitan/anvil2/assets/icons/st/gnav_schedule_inactive.svg';\nimport SvgTasksActive from '@servicetitan/anvil2/assets/icons/st/gnav_tasks_active.svg';\nimport SvgTasks from '@servicetitan/anvil2/assets/icons/st/gnav_tasks_inactive.svg';\n\nimport { BodyText, Popover } from '@servicetitan/design-system';\n\nimport classNames from 'classnames';\nimport { FC, Fragment, forwardRef, useState } from 'react';\n// needed only for storybook and added in root dependencies\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { MemoryRouter, Redirect, Switch, useHistory, useLocation } from 'react-router-dom';\nimport { TitanLayout } from '../components/titan-layout';\nimport {\n NavigationItemData,\n NavigationSubmenuGroupData,\n NavigationSubmenuItemData,\n} from '../utils/navigation';\nimport { NavLinkComponentProps } from '../utils/navigation-context';\nimport * as Styles from './data-stories.module.less';\n\nexport const NavLinkMock = forwardRef<any, NavLinkComponentProps>(\n ({ to, children, activeClassName, className, isActive, ...rest }, ref) => {\n const history = useHistory();\n const location = useLocation();\n const linkActive = location.pathname.startsWith(to);\n\n return (\n <a\n {...rest}\n onClick={e => {\n e.preventDefault();\n\n if (!to.startsWith('http')) {\n history.replace(to);\n }\n }}\n className={classNames(className, linkActive ? activeClassName : '')}\n href={to}\n ref={ref}\n >\n {children}\n </a>\n );\n }\n);\n\nexport const LocationInfo: FC<{ className?: string }> = ({ className }) => {\n const location = useLocation();\n\n return <BodyText className={className}>current location - {location.pathname}</BodyText>;\n};\n\nexport const withMemoryRouter = (Story: any) => (\n <MemoryRouter>\n <Story />\n </MemoryRouter>\n);\n\nexport const withAnvil = (Story: any) => (\n <AnvilProvider className={Styles.fixIcons}>\n <Story />\n </AnvilProvider>\n);\n\nexport const InventoryIcon = () => (\n <svg width=\"20\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-293 385 24 24\" fill=\"currentColor\">\n <polyline points=\"-288,400.9 -282,404.3 -282,397.6 -288,394.2 -288,400.9 \" />\n <path d=\"M-272,401.5c0,0.4-0.2,0.7-0.5,0.9l-7.9,4.4c-0.2,0.1-0.4,0.2-0.6,0.2s-0.4-0.1-0.6-0.2l-7.9-4.4c-0.3-0.2-0.5-0.5-0.5-0.9v-9c0-0.4,0.2-0.7,0.5-0.9l7.9-4.4c0.2-0.1,0.4-0.2,0.6-0.2s0.4,0.1,0.6,0.2l7.9,4.4c0.3,0.2,0.5,0.5,0.5,0.9V401.5 M-287,392.5 l6,3.4l5.9-3.3l-5.9-3.4L-287,392.5 M-274,400.9v-6.7l-6,3.4v6.7L-274,400.9z\" />\n </svg>\n);\n\nexport const SearchIcon = () => (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g transform=\"translate(0,4)\">\n <path\n d=\"M0 15.7992V13.9992H12V15.7992H0ZM0 9.49922V7.69922H6V9.49922H0ZM0 3.19922V1.39922H6V3.19922H0ZM22.74 15.7992L17.94 10.9992C17.42 11.3992 16.86 11.6992 16.26 11.8992C15.66 12.0992 15.04 12.1992 14.4 12.1992C12.74 12.1992 11.325 11.6142 10.155 10.4442C8.985 9.27422 8.4 7.85922 8.4 6.19922C8.4 4.53922 8.985 3.12422 10.155 1.95422C11.325 0.784219 12.74 0.199219 14.4 0.199219C16.06 0.199219 17.475 0.784219 18.645 1.95422C19.815 3.12422 20.4 4.53922 20.4 6.19922C20.4 6.83922 20.3 7.45922 20.1 8.05922C19.9 8.65922 19.6 9.21922 19.2 9.73922L24 14.5392L22.74 15.7992ZM14.393 10.3992C15.5577 10.3992 16.55 9.99157 17.37 9.17627C18.19 8.36099 18.6 7.37099 18.6 6.20627C18.6 5.04157 18.1923 4.04922 17.377 3.22922C16.5618 2.40922 15.5718 1.99922 14.407 1.99922C13.2423 1.99922 12.25 2.40687 11.43 3.22217C10.61 4.03745 10.2 5.02745 10.2 6.19217C10.2 7.35687 10.6077 8.34922 11.423 9.16922C12.2382 9.98922 13.2282 10.3992 14.393 10.3992Z\"\n fill=\"white\"\n />\n </g>\n </svg>\n);\n\nconst getNavItem = (id: string, data: Partial<NavigationItemData>): NavigationItemData => ({\n id,\n to: '/' + id,\n title: id[0].toUpperCase() + id.substring(1),\n icon: undefined,\n iconActive: undefined,\n ...data,\n submenu: data.submenu\n ? {\n ...data.submenu,\n groups: data.submenu.groups.map(group => ({\n ...group,\n links: group.links.map(link => ({\n ...link,\n to: `/${id}/${link.to}`,\n })),\n })),\n }\n : undefined,\n});\n\nconst getSubItem = (\n id: string,\n data: Partial<NavigationSubmenuItemData>\n): NavigationSubmenuItemData => ({\n id,\n to: id,\n title: id[0].toUpperCase() + id.substring(1),\n ...data,\n});\n\nconst getGroup = (\n title: string,\n links: NavigationSubmenuItemData[]\n): NavigationSubmenuGroupData => ({\n title,\n links,\n});\n\nexport const navItems = {\n calendar: getNavItem('calendar', {\n icon: SvgSchedule,\n iconActive: SvgScheduleActive,\n }),\n schedule: getNavItem('schedule', {\n icon: SvgSchedule,\n iconActive: SvgScheduleActive,\n }),\n calls: getNavItem('calls', {\n icon: SvgCalls,\n iconActive: SvgCallsActive,\n counter: 1234,\n }),\n dashboard: getNavItem('dashboard', {\n icon: SvgDashboard,\n iconActive: SvgDashboardActive,\n }),\n dispatch: getNavItem('dispatch', {\n icon: SvgDispatch,\n iconActive: SvgDispatchActive,\n tag: { value: 3 },\n }),\n fleet: getNavItem('fleet', {\n icon: SvgFleetPro,\n iconActive: SvgFleetProActive,\n title: 'Fleet Pro',\n }),\n followUps: getNavItem('followUps', {\n icon: SvgFollowUp,\n iconActive: SvgFollowUpActive,\n title: 'Follow Up',\n }),\n followUpsWithSubmenu: getNavItem('followUps', {\n icon: SvgFollowUp,\n iconActive: SvgFollowUpActive,\n title: 'Follow Up',\n submenu: {\n groups: [\n getGroup('', [\n getSubItem('estimates', { title: 'Unsold Estimates' }),\n getSubItem('sold', { title: 'Sold Estimates' }),\n getSubItem('surveys', { title: 'Surveys' }),\n ]),\n ],\n },\n }),\n inventory: getNavItem('inventory', {\n icon: SvgInventory,\n iconActive: SvgInventoryActive,\n }),\n purchasing: getNavItem('purchasing', {}),\n purchasingWithSubmenu: getNavItem('purchasing', {\n icon: SvgInventory,\n iconActive: SvgInventoryActive,\n counter: true,\n submenu: {\n groups: [\n getGroup('Purchase', [\n getSubItem('repl', { title: 'Replenishment' }),\n getSubItem('orders', { title: 'Purchase Orders' }),\n getSubItem('receipts', { title: 'Receipts' }),\n getSubItem('returns', { title: 'Returns' }),\n ]),\n ],\n },\n }),\n accounting: getNavItem('accounting', {\n icon: SvgAccounting,\n iconActive: SvgAccountingActive,\n counter: true,\n }),\n accountingWithSubmenu: getNavItem('accounting', {\n icon: SvgAccounting,\n iconActive: SvgAccountingActive,\n counter: 1,\n submenu: {\n groups: [\n getGroup('Accounts Receivable', [\n getSubItem('export', {\n title: 'Batch/Export Transactions',\n counter: true,\n }),\n getSubItem('ar', { title: 'AR Management' }),\n getSubItem('invoices', { title: 'Invoices', counter: 3 }),\n getSubItem('payments', { title: 'Customer Payments', counter: 2 }),\n getSubItem('deposits', { title: 'Bank Deposits' }),\n ]),\n getGroup('Accounts Payable', [getSubItem('bills', { title: 'Bills' })]),\n getGroup('Financing', [getSubItem('dashboard', { title: 'Dashboard' })]),\n getGroup('Others', [getSubItem('at', { title: 'Accounting Audit Trail' })]),\n ],\n },\n }),\n marketing: getNavItem('marketing', {\n icon: SvgMarketing,\n iconActive: SvgMarketingActive,\n }),\n priceBook: getNavItem('pricebook', {\n icon: SvgPriceBook,\n iconActive: SvgPriceBookActive,\n }),\n pointOfSale: getNavItem('pointOfSale', {\n icon: SvgPos,\n iconActive: SvgPosActive,\n title: 'Point Of Sale',\n }),\n projects: getNavItem('projects', {\n icon: SvgProjects,\n iconActive: SvgProjectsActive,\n }),\n reports: getNavItem('reports', {\n icon: SvgReports,\n iconActive: SvgReportsActive,\n }),\n tasks: getNavItem('tasks', {\n icon: SvgTasks,\n iconActive: SvgTasksActive,\n }),\n};\n\nexport const CallsNavigationTrigger = () => {\n const [open, setOpen] = useState(false);\n\n return (\n <Popover\n open={open}\n onClickOutside={() => setOpen(false)}\n direction=\"bl\"\n trigger={\n <TitanLayout.Trigger\n id=\"dialpad\"\n counter={2}\n title=\"Calls\"\n icon={SvgPhone}\n iconActive={SvgPhoneActive}\n onClick={() => setOpen(!open)}\n isActive={open}\n />\n }\n >\n calls content\n </Popover>\n );\n};\n\nexport const withDefaultRedirects = (Story: any) => (\n <Fragment>\n <Switch>\n <Redirect from=\"/accounting\" exact to=\"/accounting/export\" />\n <Redirect from=\"/purchasing\" exact to=\"/purchasing/repl\" />\n <Redirect from=\"/followUps\" exact to=\"/followUps/sold\" />\n </Switch>\n <Story />\n </Fragment>\n);\n"],"names":["AnvilProvider","SvgPhone","SvgPhoneActive","SvgAccountingActive","SvgAccounting","SvgCallsActive","SvgCalls","SvgDashboardActive","SvgDashboard","SvgDispatchActive","SvgDispatch","SvgFleetProActive","SvgFleetPro","SvgFollowUpActive","SvgFollowUp","SvgInventoryActive","SvgInventory","SvgMarketingActive","SvgMarketing","SvgPosActive","SvgPos","SvgPriceBookActive","SvgPriceBook","SvgProjectsActive","SvgProjects","SvgReportsActive","SvgReports","SvgScheduleActive","SvgSchedule","SvgTasksActive","SvgTasks","BodyText","Popover","classNames","Fragment","forwardRef","useState","MemoryRouter","Redirect","Switch","useHistory","useLocation","TitanLayout","Styles","NavLinkMock","to","children","activeClassName","className","isActive","rest","ref","history","location","linkActive","pathname","startsWith","a","onClick","e","preventDefault","replace","href","LocationInfo","withMemoryRouter","Story","withAnvil","fixIcons","InventoryIcon","svg","width","xmlns","viewBox","fill","polyline","points","path","d","SearchIcon","height","g","transform","getNavItem","id","data","title","toUpperCase","substring","icon","undefined","iconActive","submenu","groups","map","group","links","link","getSubItem","getGroup","navItems","calendar","schedule","calls","counter","dashboard","dispatch","tag","value","fleet","followUps","followUpsWithSubmenu","inventory","purchasing","purchasingWithSubmenu","accounting","accountingWithSubmenu","marketing","priceBook","pointOfSale","projects","reports","tasks","CallsNavigationTrigger","open","setOpen","onClickOutside","direction","trigger","Trigger","withDefaultRedirects","from","exact"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { TitanLayoutProps } from '../components/titan-layout';
|
|
2
|
+
export interface LayoutContentArgs {
|
|
3
|
+
header: boolean;
|
|
4
|
+
sideTop: boolean;
|
|
5
|
+
extraText: boolean;
|
|
6
|
+
search: boolean;
|
|
7
|
+
longContent: boolean;
|
|
8
|
+
wideContent: boolean;
|
|
9
|
+
minWidth: boolean;
|
|
10
|
+
emptyNav: boolean;
|
|
11
|
+
overflowItems: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare const getDefaultArgs: () => LayoutContentArgs;
|
|
14
|
+
export declare const withDefaultLayoutProps: (props: Partial<TitanLayoutProps>) => (Story: any) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare const useDefaultLayoutProps: () => Partial<TitanLayoutProps>;
|
|
16
|
+
//# sourceMappingURL=titan-layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"titan-layout.d.ts","sourceRoot":"","sources":["../../src/test/titan-layout.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,cAAc,QAAO,iBAUhC,CAAC;AAGH,eAAO,MAAM,sBAAsB,GAAI,OAAO,OAAO,CAAC,gBAAgB,CAAC,MAAM,OAAO,GAAG,4CAItF,CAAC;AACF,eAAO,MAAM,qBAAqB,iCAAwC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext } from 'react';
|
|
3
|
+
export const getDefaultArgs = ()=>({
|
|
4
|
+
header: true,
|
|
5
|
+
sideTop: true,
|
|
6
|
+
extraText: true,
|
|
7
|
+
search: true,
|
|
8
|
+
longContent: true,
|
|
9
|
+
wideContent: false,
|
|
10
|
+
minWidth: false,
|
|
11
|
+
emptyNav: false,
|
|
12
|
+
overflowItems: true
|
|
13
|
+
});
|
|
14
|
+
const DefaultPropsContext = /*#__PURE__*/ createContext({});
|
|
15
|
+
export const withDefaultLayoutProps = (props)=>(Story)=>/*#__PURE__*/ _jsx(DefaultPropsContext.Provider, {
|
|
16
|
+
value: props,
|
|
17
|
+
children: /*#__PURE__*/ _jsx(Story, {})
|
|
18
|
+
});
|
|
19
|
+
export const useDefaultLayoutProps = ()=>useContext(DefaultPropsContext);
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=titan-layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/test/titan-layout.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\nimport { TitanLayoutProps } from '../components/titan-layout';\n\nexport interface LayoutContentArgs {\n header: boolean;\n sideTop: boolean;\n extraText: boolean;\n search: boolean;\n longContent: boolean;\n wideContent: boolean;\n minWidth: boolean;\n emptyNav: boolean;\n overflowItems: boolean;\n}\n\nexport const getDefaultArgs = (): LayoutContentArgs => ({\n header: true,\n sideTop: true,\n extraText: true,\n search: true,\n longContent: true,\n wideContent: false,\n minWidth: false,\n emptyNav: false,\n overflowItems: true,\n});\n\nconst DefaultPropsContext = createContext<Partial<TitanLayoutProps>>({});\nexport const withDefaultLayoutProps = (props: Partial<TitanLayoutProps>) => (Story: any) => (\n <DefaultPropsContext.Provider value={props}>\n <Story />\n </DefaultPropsContext.Provider>\n);\nexport const useDefaultLayoutProps = () => useContext(DefaultPropsContext);\n"],"names":["createContext","useContext","getDefaultArgs","header","sideTop","extraText","search","longContent","wideContent","minWidth","emptyNav","overflowItems","DefaultPropsContext","withDefaultLayoutProps","props","Story","Provider","value","useDefaultLayoutProps"],"mappings":";AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,QAAQ;AAelD,OAAO,MAAMC,iBAAiB,IAA0B,CAAA;QACpDC,QAAQ;QACRC,SAAS;QACTC,WAAW;QACXC,QAAQ;QACRC,aAAa;QACbC,aAAa;QACbC,UAAU;QACVC,UAAU;QACVC,eAAe;IACnB,CAAA,EAAG;AAEH,MAAMC,oCAAsBZ,cAAyC,CAAC;AACtE,OAAO,MAAMa,yBAAyB,CAACC,QAAqC,CAACC,sBACzE,KAACH,oBAAoBI,QAAQ;YAACC,OAAOH;sBACjC,cAAA,KAACC;WAEP;AACF,OAAO,MAAMG,wBAAwB,IAAMjB,WAAWW,qBAAqB"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { IconProps } from '@servicetitan/anvil2';
|
|
2
2
|
import { CounterTagData, CounterTagValue } from './counter-tag';
|
|
3
3
|
export interface NavigationItemData extends NavigationLinkData {
|
|
4
|
-
/** flag if the link is not shown (based on FG and/or user permissions) */
|
|
5
|
-
isHidden?: boolean;
|
|
6
4
|
/** svg icon (anvil2) of inactive item */
|
|
7
5
|
icon: IconProps['svg'] | undefined;
|
|
8
6
|
/** svg icon (anvil2) of active item */
|
|
@@ -14,8 +12,6 @@ export interface NavigationItemData extends NavigationLinkData {
|
|
|
14
12
|
className?: string;
|
|
15
13
|
/** optional submenu of link item */
|
|
16
14
|
submenu?: NavigationSubmenuData;
|
|
17
|
-
iconClassName?: never;
|
|
18
|
-
iconComponent?: never;
|
|
19
15
|
}
|
|
20
16
|
export interface NavigationLinkData {
|
|
21
17
|
/** link id */
|
|
@@ -34,6 +30,7 @@ export interface NavigationSubmenuData {
|
|
|
34
30
|
export interface NavigationSubmenuItemData extends NavigationLinkData {
|
|
35
31
|
/** item tag (optional) value. shown if it is set and true or greater than 0 */
|
|
36
32
|
counter?: CounterTagValue;
|
|
33
|
+
/** item tag (optional) value. shown if value is true or greater than 0 */
|
|
37
34
|
tag?: CounterTagData;
|
|
38
35
|
}
|
|
39
36
|
export interface NavigationSubmenuGroupData {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/utils/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhE,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC1D,
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/utils/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhE,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC1D,yCAAyC;IACzC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAEnC,uCAAuC;IACvC,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAEzC,yEAAyE;IACzE,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,GAAG,CAAC,EAAE,cAAc,CAAC;IAErB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,oCAAoC;IACpC,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IAC/B,cAAc;IACd,EAAE,EAAE,MAAM,CAAC;IAEX,gBAAgB;IAChB,EAAE,EAAE,MAAM,CAAC;IAEX,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IAEd,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,qBAAqB;IAClC,qBAAqB;IACrB,MAAM,EAAE,0BAA0B,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACjE,+EAA+E;IAC/E,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,0EAA0E;IAC1E,GAAG,CAAC,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACvC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IAEd,0BAA0B;IAC1B,KAAK,EAAE,yBAAyB,EAAE,CAAC;CACtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/navigation.ts"],"sourcesContent":["import { IconProps } from '@servicetitan/anvil2';\nimport { CounterTagData, CounterTagValue } from './counter-tag';\n\nexport interface NavigationItemData extends NavigationLinkData {\n /**
|
|
1
|
+
{"version":3,"sources":["../../src/utils/navigation.ts"],"sourcesContent":["import { IconProps } from '@servicetitan/anvil2';\nimport { CounterTagData, CounterTagValue } from './counter-tag';\n\nexport interface NavigationItemData extends NavigationLinkData {\n /** svg icon (anvil2) of inactive item */\n icon: IconProps['svg'] | undefined;\n\n /** svg icon (anvil2) of active item */\n iconActive: IconProps['svg'] | undefined;\n\n /** item tag (optional). shown if it is set and true or greater than 0 */\n counter?: CounterTagValue;\n tag?: CounterTagData;\n\n /** class name of link item */\n className?: string;\n\n /** optional submenu of link item */\n submenu?: NavigationSubmenuData;\n}\n\nexport interface NavigationLinkData {\n /** link id */\n id: string;\n\n /** link href */\n to: string;\n\n /** link title */\n title: string;\n\n /** callback to return active state. By default, it compares link href with current pathname */\n isActive?: boolean | ((pathname: string) => boolean);\n}\n\nexport interface NavigationSubmenuData {\n /** submenu groups */\n groups: NavigationSubmenuGroupData[];\n}\n\nexport interface NavigationSubmenuItemData extends NavigationLinkData {\n /** item tag (optional) value. shown if it is set and true or greater than 0 */\n counter?: CounterTagValue;\n /** item tag (optional) value. shown if value is true or greater than 0 */\n tag?: CounterTagData;\n}\n\nexport interface NavigationSubmenuGroupData {\n /** submenu group title */\n title: string;\n\n /** submenu group links */\n links: NavigationSubmenuItemData[];\n}\n"],"names":[],"mappings":"AA+CA,WAMC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@servicetitan/navigation",
|
|
3
|
-
"version": "13.0.0
|
|
3
|
+
"version": "13.0.0",
|
|
4
4
|
"description": "Navigation components",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
"react": ">=18.0.0"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@servicetitan/anvil2": "~1.49.
|
|
29
|
+
"@servicetitan/anvil2": "~1.49.7",
|
|
30
30
|
"@servicetitan/design-system": "~14.5.1",
|
|
31
|
-
"@servicetitan/react-ioc": "^
|
|
31
|
+
"@servicetitan/react-ioc": "^33.1.0",
|
|
32
32
|
"@servicetitan/tokens": ">=12.1.11",
|
|
33
33
|
"@testing-library/react": "^16.2.0",
|
|
34
34
|
"mobx": "~6.10.2",
|
|
@@ -42,5 +42,5 @@
|
|
|
42
42
|
"less": true,
|
|
43
43
|
"webpack": false
|
|
44
44
|
},
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "b47aa7d5873f1684381f957022e3ebae0caeeedb"
|
|
46
46
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { PopoverPropsStrict } from '@servicetitan/design-system';
|
|
2
|
+
import { ComponentPropsWithoutRef, FC, ReactNode } from 'react';
|
|
3
|
+
import { CounterTagData, CounterTagValue } from '../../utils/counter-tag';
|
|
4
|
+
|
|
5
|
+
export type ProfileDropdownTriggerProps = {
|
|
6
|
+
info?: { title: string; text: string };
|
|
7
|
+
imageSrc?: string | null;
|
|
8
|
+
avatarBadge?: boolean | string;
|
|
9
|
+
badge?: { content?: number | string; className: string };
|
|
10
|
+
} & Omit<ComponentPropsWithoutRef<'div'>, 'onClick'>;
|
|
11
|
+
|
|
12
|
+
export type ProfileDropdownProps = {
|
|
13
|
+
direction?: PopoverPropsStrict['direction'];
|
|
14
|
+
trigger?: Omit<ProfileDropdownTriggerProps, 'onClick' | 'open' | 'hintArrow'>;
|
|
15
|
+
hintPopup?: {
|
|
16
|
+
className?: string;
|
|
17
|
+
content: FC<{ openProfile(): void }>;
|
|
18
|
+
width?: PopoverPropsStrict['width'];
|
|
19
|
+
onClose?: () => void;
|
|
20
|
+
};
|
|
21
|
+
portal?: boolean;
|
|
22
|
+
width?: PopoverPropsStrict['width'];
|
|
23
|
+
onClose?(): void;
|
|
24
|
+
onOpen?(): void;
|
|
25
|
+
} & ComponentPropsWithoutRef<'div'>;
|
|
26
|
+
|
|
27
|
+
export type ProfileItemContent =
|
|
28
|
+
| { children: string; text?: string }
|
|
29
|
+
| { children: ReactNode; text: string };
|
|
30
|
+
|
|
31
|
+
export type ProfileDropdownSectionProps = Omit<ComponentPropsWithoutRef<'div'>, 'children'> & {
|
|
32
|
+
children: ReactNode;
|
|
33
|
+
id: string;
|
|
34
|
+
tooltip?: string;
|
|
35
|
+
tag?: CounterTagData;
|
|
36
|
+
counter?: CounterTagValue;
|
|
37
|
+
} & ProfileItemContent;
|
|
38
|
+
|
|
39
|
+
export type ProfileDropdownLinkProps = Omit<ComponentPropsWithoutRef<'a'>, 'children'> & {
|
|
40
|
+
id: string;
|
|
41
|
+
children: ReactNode;
|
|
42
|
+
external?: boolean;
|
|
43
|
+
tooltip?: string;
|
|
44
|
+
to: string;
|
|
45
|
+
tag?: CounterTagData;
|
|
46
|
+
counter?: CounterTagValue;
|
|
47
|
+
} & ProfileItemContent;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { NavLinkMock, withAnvil, withMemoryRouter } from '../../test/data';
|
|
2
2
|
import { TitanLayout } from '../titan-layout';
|
|
3
|
-
import {
|
|
3
|
+
import { DesktopProfileDropdown } from './profile-dropdown';
|
|
4
4
|
|
|
5
5
|
const withLayout = (Story: any) => (
|
|
6
6
|
<TitanLayout navVariant="top" profile={<Story />} navigationComponent={NavLinkMock} />
|
|
7
7
|
);
|
|
8
8
|
|
|
9
9
|
export default {
|
|
10
|
-
title: 'Navigation/
|
|
11
|
-
component:
|
|
10
|
+
title: 'Navigation/DesktopProfileDropdown/Legacy',
|
|
11
|
+
component: DesktopProfileDropdown,
|
|
12
12
|
parameters: {},
|
|
13
13
|
decorators: [withMemoryRouter, withAnvil, withLayout],
|
|
14
14
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NavLinkMock, navItems, withAnvil, withMemoryRouter } from '../../test/data';
|
|
2
2
|
import { TitanLayout } from '../titan-layout';
|
|
3
|
-
import {
|
|
3
|
+
import { DesktopProfileDropdown } from './profile-dropdown';
|
|
4
4
|
|
|
5
5
|
const withStackedLayout = (Story: any) => (
|
|
6
6
|
<TitanLayout
|
|
@@ -13,8 +13,8 @@ const withStackedLayout = (Story: any) => (
|
|
|
13
13
|
);
|
|
14
14
|
|
|
15
15
|
export default {
|
|
16
|
-
title: 'Navigation/
|
|
17
|
-
component:
|
|
16
|
+
title: 'Navigation/DesktopProfileDropdown/Stacked',
|
|
17
|
+
component: DesktopProfileDropdown,
|
|
18
18
|
parameters: {},
|
|
19
19
|
decorators: [withStackedLayout, withMemoryRouter, withAnvil],
|
|
20
20
|
};
|
|
@@ -1,65 +1,65 @@
|
|
|
1
1
|
import { Button } from '@servicetitan/design-system';
|
|
2
2
|
import { NavLinkMock, withAnvil, withMemoryRouter } from '../../test/data';
|
|
3
3
|
import { TitanLayout } from '../titan-layout';
|
|
4
|
-
import {
|
|
4
|
+
import { DesktopProfileDropdown } from './profile-dropdown';
|
|
5
5
|
|
|
6
6
|
const withLegacyLayout = (Story: any) => (
|
|
7
7
|
<TitanLayout navigationComponent={NavLinkMock} profile={<Story />} />
|
|
8
8
|
);
|
|
9
9
|
|
|
10
10
|
export default {
|
|
11
|
-
title: 'Navigation/
|
|
12
|
-
component:
|
|
11
|
+
title: 'Navigation/DesktopProfileDropdown/Default',
|
|
12
|
+
component: DesktopProfileDropdown,
|
|
13
13
|
parameters: {},
|
|
14
14
|
decorators: [withLegacyLayout, withMemoryRouter, withAnvil],
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
export const ProfileDropdownDefault = () => (
|
|
18
|
-
<
|
|
19
|
-
<
|
|
18
|
+
<DesktopProfileDropdown>
|
|
19
|
+
<DesktopProfileDropdown.Link id="first" to="https://google.com" external>
|
|
20
20
|
first link
|
|
21
|
-
</
|
|
22
|
-
<
|
|
21
|
+
</DesktopProfileDropdown.Link>
|
|
22
|
+
<DesktopProfileDropdown.Section id="second" onClick={() => alert('second click')}>
|
|
23
23
|
second link
|
|
24
|
-
</
|
|
25
|
-
<
|
|
26
|
-
<
|
|
27
|
-
<
|
|
28
|
-
<
|
|
29
|
-
<
|
|
30
|
-
<
|
|
24
|
+
</DesktopProfileDropdown.Section>
|
|
25
|
+
<DesktopProfileDropdown.Divider />
|
|
26
|
+
<DesktopProfileDropdown.Section id="content">some content</DesktopProfileDropdown.Section>
|
|
27
|
+
<DesktopProfileDropdown.Divider />
|
|
28
|
+
<DesktopProfileDropdown.Divider />
|
|
29
|
+
<DesktopProfileDropdown.Divider />
|
|
30
|
+
<DesktopProfileDropdown.Link id="third" to="third">
|
|
31
31
|
third link
|
|
32
|
-
</
|
|
33
|
-
<
|
|
34
|
-
<
|
|
32
|
+
</DesktopProfileDropdown.Link>
|
|
33
|
+
<DesktopProfileDropdown.Divider />
|
|
34
|
+
<DesktopProfileDropdown.Section
|
|
35
35
|
id="forth"
|
|
36
36
|
onClick={() => alert('forth click')}
|
|
37
37
|
text="Sign Out user"
|
|
38
38
|
>
|
|
39
39
|
Sign Out
|
|
40
40
|
<span className="c-neutral-60 m-l-1">user</span>
|
|
41
|
-
</
|
|
42
|
-
<
|
|
43
|
-
</
|
|
41
|
+
</DesktopProfileDropdown.Section>
|
|
42
|
+
<DesktopProfileDropdown.Divider />
|
|
43
|
+
</DesktopProfileDropdown>
|
|
44
44
|
);
|
|
45
45
|
|
|
46
46
|
export const ProfileDropdownWithLogo = () => (
|
|
47
|
-
<
|
|
47
|
+
<DesktopProfileDropdown
|
|
48
48
|
trigger={{
|
|
49
49
|
imageSrc: 'https://upload.wikimedia.org/wikipedia/en/1/11/Milhouse_Van_Houten.png',
|
|
50
50
|
}}
|
|
51
51
|
>
|
|
52
|
-
<
|
|
52
|
+
<DesktopProfileDropdown.Link id="first" to="https://google.com">
|
|
53
53
|
first link
|
|
54
|
-
</
|
|
55
|
-
<
|
|
54
|
+
</DesktopProfileDropdown.Link>
|
|
55
|
+
<DesktopProfileDropdown.Section id="second" onClick={() => alert('second click')}>
|
|
56
56
|
second link
|
|
57
|
-
</
|
|
58
|
-
</
|
|
57
|
+
</DesktopProfileDropdown.Section>
|
|
58
|
+
</DesktopProfileDropdown>
|
|
59
59
|
);
|
|
60
60
|
|
|
61
61
|
export const ProfileDropdownWithErrorLogo = () => (
|
|
62
|
-
<
|
|
62
|
+
<DesktopProfileDropdown
|
|
63
63
|
trigger={{
|
|
64
64
|
imageSrc: 'https://some.incorrect.url/logo.png',
|
|
65
65
|
}}
|
|
@@ -67,7 +67,7 @@ export const ProfileDropdownWithErrorLogo = () => (
|
|
|
67
67
|
);
|
|
68
68
|
|
|
69
69
|
export const ProfileDropdownWithInfo = () => (
|
|
70
|
-
<
|
|
70
|
+
<DesktopProfileDropdown
|
|
71
71
|
trigger={{
|
|
72
72
|
info: { text: 'first', title: 'tenant user' },
|
|
73
73
|
avatarBadge: true,
|
|
@@ -76,7 +76,7 @@ export const ProfileDropdownWithInfo = () => (
|
|
|
76
76
|
);
|
|
77
77
|
|
|
78
78
|
export const ProfileDropdownWithCounter = () => (
|
|
79
|
-
<
|
|
79
|
+
<DesktopProfileDropdown
|
|
80
80
|
trigger={{
|
|
81
81
|
info: { text: 'first', title: 'tenant user' },
|
|
82
82
|
avatarBadge: true,
|
|
@@ -86,7 +86,7 @@ export const ProfileDropdownWithCounter = () => (
|
|
|
86
86
|
);
|
|
87
87
|
|
|
88
88
|
export const ProfileDropdownWithBothBadges = () => (
|
|
89
|
-
<
|
|
89
|
+
<DesktopProfileDropdown
|
|
90
90
|
trigger={{
|
|
91
91
|
avatarBadge: 'yellow-500',
|
|
92
92
|
badge: { className: 'bg-red-400' },
|
|
@@ -98,7 +98,7 @@ export const ProfileDropdownWithBothBadges = () => (
|
|
|
98
98
|
const log = (text: string) => console.log(text);
|
|
99
99
|
|
|
100
100
|
export const ProfileDropdownWithHintPopup = () => (
|
|
101
|
-
<
|
|
101
|
+
<DesktopProfileDropdown
|
|
102
102
|
trigger={{
|
|
103
103
|
avatarBadge: 'yellow-500',
|
|
104
104
|
badge: { className: 'bg-red-400' },
|
|
@@ -119,19 +119,19 @@ export const ProfileDropdownWithHintPopup = () => (
|
|
|
119
119
|
onOpen={() => log('open profile dropdown')}
|
|
120
120
|
onClose={() => log('close profile dropdown')}
|
|
121
121
|
>
|
|
122
|
-
<
|
|
122
|
+
<DesktopProfileDropdown.Link id="first" to="https://google.com" counter={12}>
|
|
123
123
|
first item
|
|
124
|
-
</
|
|
125
|
-
<
|
|
126
|
-
<
|
|
127
|
-
<
|
|
124
|
+
</DesktopProfileDropdown.Link>
|
|
125
|
+
<DesktopProfileDropdown.Divider />
|
|
126
|
+
<DesktopProfileDropdown.Section id="second">second item</DesktopProfileDropdown.Section>
|
|
127
|
+
<DesktopProfileDropdown.Link id="third" to="https://google.com" tag={{ value: 1 }}>
|
|
128
128
|
third item
|
|
129
|
-
</
|
|
130
|
-
</
|
|
129
|
+
</DesktopProfileDropdown.Link>
|
|
130
|
+
</DesktopProfileDropdown>
|
|
131
131
|
);
|
|
132
132
|
|
|
133
133
|
export const ProfileDropdownWithHintAndInfoPopup = () => (
|
|
134
|
-
<
|
|
134
|
+
<DesktopProfileDropdown
|
|
135
135
|
trigger={{
|
|
136
136
|
avatarBadge: 'yellow-500',
|
|
137
137
|
badge: { className: 'bg-red-400' },
|