@burdenoff/microfe-crewfoundry 2026.1102.1 → 2026.1102.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/crewfoundry/CrewFoundryRoot.d.ts.map +1 -1
  2. package/dist/crewfoundry/CrewFoundryRoot.js +14 -0
  3. package/dist/crewfoundry/CrewFoundryRoot.js.map +1 -1
  4. package/dist/crewfoundry/CrewFoundryRoutes.d.ts.map +1 -1
  5. package/dist/crewfoundry/CrewFoundryRoutes.js +27 -19
  6. package/dist/crewfoundry/CrewFoundryRoutes.js.map +1 -1
  7. package/dist/crewfoundry/components/field/DispatchBoardCard.d.ts +13 -0
  8. package/dist/crewfoundry/components/field/DispatchBoardCard.d.ts.map +1 -0
  9. package/dist/crewfoundry/components/field/DispatchBoardCard.js +124 -0
  10. package/dist/crewfoundry/components/field/DispatchBoardCard.js.map +1 -0
  11. package/dist/crewfoundry/components/field/FieldBadges.d.ts +12 -0
  12. package/dist/crewfoundry/components/field/FieldBadges.d.ts.map +1 -0
  13. package/dist/crewfoundry/components/field/FieldBadges.js +45 -0
  14. package/dist/crewfoundry/components/field/FieldBadges.js.map +1 -0
  15. package/dist/crewfoundry/components/field/MyDispatchItem.d.ts +12 -0
  16. package/dist/crewfoundry/components/field/MyDispatchItem.d.ts.map +1 -0
  17. package/dist/crewfoundry/components/field/MyDispatchItem.js +46 -0
  18. package/dist/crewfoundry/components/field/MyDispatchItem.js.map +1 -0
  19. package/dist/crewfoundry/components/field/MyShiftItem.d.ts +14 -0
  20. package/dist/crewfoundry/components/field/MyShiftItem.d.ts.map +1 -0
  21. package/dist/crewfoundry/components/field/MyShiftItem.js +84 -0
  22. package/dist/crewfoundry/components/field/MyShiftItem.js.map +1 -0
  23. package/dist/crewfoundry/components/field/ShiftsCard.d.ts +12 -0
  24. package/dist/crewfoundry/components/field/ShiftsCard.d.ts.map +1 -0
  25. package/dist/crewfoundry/components/field/ShiftsCard.js +84 -0
  26. package/dist/crewfoundry/components/field/ShiftsCard.js.map +1 -0
  27. package/dist/crewfoundry/components/field/fieldFormat.d.ts +8 -0
  28. package/dist/crewfoundry/components/field/fieldFormat.d.ts.map +1 -0
  29. package/dist/crewfoundry/components/field/fieldFormat.js +15 -0
  30. package/dist/crewfoundry/components/field/fieldFormat.js.map +1 -0
  31. package/dist/crewfoundry/components/field/fieldForms.d.ts +19 -0
  32. package/dist/crewfoundry/components/field/fieldForms.d.ts.map +1 -0
  33. package/dist/crewfoundry/components/field/fieldForms.js +223 -0
  34. package/dist/crewfoundry/components/field/fieldForms.js.map +1 -0
  35. package/dist/crewfoundry/components/forms/FormModal.d.ts +1 -1
  36. package/dist/crewfoundry/components/forms/FormModal.d.ts.map +1 -1
  37. package/dist/crewfoundry/components/forms/FormModal.js +1 -1
  38. package/dist/crewfoundry/components/forms/FormModal.js.map +1 -1
  39. package/dist/crewfoundry/lib/fieldOps.d.ts +105 -0
  40. package/dist/crewfoundry/lib/fieldOps.d.ts.map +1 -0
  41. package/dist/crewfoundry/lib/fieldOps.js +85 -0
  42. package/dist/crewfoundry/lib/fieldOps.js.map +1 -0
  43. package/dist/crewfoundry/lib/useFieldOpsData.d.ts +14 -0
  44. package/dist/crewfoundry/lib/useFieldOpsData.d.ts.map +1 -0
  45. package/dist/crewfoundry/lib/useFieldOpsData.js +31 -0
  46. package/dist/crewfoundry/lib/useFieldOpsData.js.map +1 -0
  47. package/dist/crewfoundry/pages/FieldMyWorkPagePage.d.ts +9 -0
  48. package/dist/crewfoundry/pages/FieldMyWorkPagePage.d.ts.map +1 -0
  49. package/dist/crewfoundry/pages/FieldMyWorkPagePage.js +141 -0
  50. package/dist/crewfoundry/pages/FieldMyWorkPagePage.js.map +1 -0
  51. package/dist/crewfoundry/pages/FieldOperationsPagePage.d.ts +9 -0
  52. package/dist/crewfoundry/pages/FieldOperationsPagePage.d.ts.map +1 -0
  53. package/dist/crewfoundry/pages/FieldOperationsPagePage.js +231 -0
  54. package/dist/crewfoundry/pages/FieldOperationsPagePage.js.map +1 -0
  55. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +24 -24
  56. package/dist/crewfoundry/pages/HrEmployeeProfilePagePage.js +4 -4
  57. package/dist/crewfoundry/store/crewfoundryStore.d.ts +3 -1
  58. package/dist/crewfoundry/store/crewfoundryStore.d.ts.map +1 -1
  59. package/dist/crewfoundry/store/crewfoundryStore.js +1 -1
  60. package/dist/crewfoundry/store/crewfoundryStore.js.map +1 -1
  61. package/dist/crewfoundry/store/fieldOpsStore.d.ts +76 -0
  62. package/dist/crewfoundry/store/fieldOpsStore.d.ts.map +1 -0
  63. package/dist/crewfoundry/store/fieldOpsStore.js +188 -0
  64. package/dist/crewfoundry/store/fieldOpsStore.js.map +1 -0
  65. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CrewFoundryRoot.d.ts","sourceRoot":"","sources":["../../src/crewfoundry/CrewFoundryRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAKhC,OAAO,KAAK,EAAE,oBAAoB,EAAW,MAAM,SAAS,CAAC;AA0U7D,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CA2EpD,CAAC"}
1
+ {"version":3,"file":"CrewFoundryRoot.d.ts","sourceRoot":"","sources":["../../src/crewfoundry/CrewFoundryRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAKhC,OAAO,KAAK,EAAE,oBAAoB,EAAW,MAAM,SAAS,CAAC;AA2V7D,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CA2EpD,CAAC"}
@@ -105,6 +105,20 @@ var f = (e, n) => [
105
105
  }
106
106
  ]
107
107
  },
108
+ {
109
+ id: "crewfoundry-field",
110
+ label: n("crewfoundry.nav.field", "Field Ops"),
111
+ path: a(e, "field/my-work-page"),
112
+ children: [{
113
+ id: "crewfoundry-field-my-work",
114
+ label: n("crewfoundry.nav.fieldMyWork", "My Field Work"),
115
+ path: a(e, "field/my-work-page")
116
+ }, {
117
+ id: "crewfoundry-field-dispatch",
118
+ label: n("crewfoundry.nav.fieldDispatch", "Dispatch Board"),
119
+ path: a(e, "field/operations-page")
120
+ }]
121
+ },
108
122
  {
109
123
  id: "crewfoundry-learning",
110
124
  label: n("crewfoundry.nav.learning", "Learning"),
@@ -1 +1 @@
1
- {"version":3,"file":"CrewFoundryRoot.js","names":[],"sources":["../../src/crewfoundry/CrewFoundryRoot.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { useEffect } from 'react';\nimport { FileText, Folder, LayoutDashboard } from 'lucide-react';\nimport { CrewFoundryProvider } from './providers/CrewFoundryProvider';\nimport { FeatureFlagProvider } from '@burdenoff/fe-libs/shared/feature-flags';\nimport type { CrewFoundryRootProps, NavItem } from './types';\nimport { CrewFoundryRoutes } from './CrewFoundryRoutes';\nimport { CONVERSATIONS_ROUTE, useCrewFoundryStore } from './store/crewfoundryStore';\nimport { useTr } from '../shared/hooks/useTr';\nimport { joinPath } from './utils/navigation';\n\ntype NavLeaf = {\n id: string;\n label: string;\n path: string;\n};\n\ntype NavSection = {\n id: string;\n label: string;\n path: string;\n children: NavLeaf[];\n};\n\nconst buildSections = (\n basePath: string,\n tr: (key: string, fallback: string) => string\n): NavSection[] => [\n {\n id: 'crewfoundry-dashboard',\n label: tr('crewfoundry.nav.dashboard', 'Dashboard'),\n path: joinPath(basePath, 'dashboard/dashboard-page'),\n children: [\n {\n id: 'crewfoundry-dashboard-overview',\n label: tr('crewfoundry.nav.dashboardOverview', 'Overview'),\n path: joinPath(basePath, 'dashboard/dashboard-page'),\n },\n {\n id: 'crewfoundry-dashboard-analytics',\n label: tr('crewfoundry.nav.dashboardAnalytics', 'Analytics'),\n path: joinPath(basePath, 'dashboard/analytics-page'),\n },\n {\n id: 'crewfoundry-dashboard-enhanced',\n label: tr('crewfoundry.nav.dashboardEnhanced', 'Enhanced Dashboard'),\n path: joinPath(basePath, 'dashboard/enhanced-dashboard-page'),\n },\n {\n id: 'crewfoundry-dashboard-executive',\n label: tr('crewfoundry.nav.dashboardExecutive', 'Executive Dashboard'),\n path: joinPath(basePath, 'dashboard/executive-dashboard'),\n },\n ],\n },\n {\n id: 'crewfoundry-hiring',\n label: tr('crewfoundry.nav.hiring', 'Hiring'),\n path: joinPath(basePath, 'hiring/jobs-page'),\n children: [\n {\n id: 'crewfoundry-hiring-jobs',\n label: tr('crewfoundry.nav.hiringJobs', 'Jobs'),\n path: joinPath(basePath, 'hiring/jobs-page'),\n },\n {\n id: 'crewfoundry-hiring-applications',\n label: tr('crewfoundry.nav.hiringApplications', 'Applications'),\n path: joinPath(basePath, 'hiring/applications-page'),\n },\n {\n id: 'crewfoundry-hiring-candidates',\n label: tr('crewfoundry.nav.hiringCandidates', 'Candidates'),\n path: joinPath(basePath, 'hiring/candidates-page'),\n },\n {\n id: 'crewfoundry-hiring-interviews',\n label: tr('crewfoundry.nav.hiringInterviews', 'Interviews'),\n path: joinPath(basePath, 'hiring/interviews-page'),\n },\n {\n id: 'crewfoundry-hiring-create-job',\n label: tr('crewfoundry.nav.hiringCreateJob', 'Create Job'),\n path: joinPath(basePath, 'hiring/create-job-page'),\n },\n {\n id: 'crewfoundry-hiring-job-details',\n label: tr('crewfoundry.nav.hiringJobDetails', 'Job Details'),\n path: joinPath(basePath, 'hiring/job-details-page'),\n },\n ],\n },\n {\n id: 'crewfoundry-hr',\n label: tr('crewfoundry.nav.hr', 'HR'),\n path: joinPath(basePath, 'hr/employees-page'),\n children: [\n {\n id: 'crewfoundry-hr-employees',\n label: tr('crewfoundry.nav.hrEmployees', 'Employees'),\n path: joinPath(basePath, 'hr/employees-page'),\n },\n {\n id: 'crewfoundry-hr-departments',\n label: tr('crewfoundry.nav.hrDepartments', 'Departments'),\n path: joinPath(basePath, 'hr/departments-page'),\n },\n {\n id: 'crewfoundry-hr-payroll',\n label: tr('crewfoundry.nav.hrPayroll', 'Payroll'),\n path: joinPath(basePath, 'hr/payroll-page'),\n },\n {\n id: 'crewfoundry-hr-leave',\n label: tr('crewfoundry.nav.hrLeaveManagement', 'Leave Management'),\n path: joinPath(basePath, 'hr/leave-management-page'),\n },\n {\n id: 'crewfoundry-hr-time',\n label: tr('crewfoundry.nav.hrTimeTracking', 'Time Tracking'),\n path: joinPath(basePath, 'hr/time-tracking-page'),\n },\n ],\n },\n {\n id: 'crewfoundry-learning',\n label: tr('crewfoundry.nav.learning', 'Learning'),\n path: joinPath(basePath, 'learning/courses-page'),\n children: [\n {\n id: 'crewfoundry-learning-courses',\n label: tr('crewfoundry.nav.learningCourses', 'Courses'),\n path: joinPath(basePath, 'learning/courses-page'),\n },\n {\n id: 'crewfoundry-learning-enrollments',\n label: tr('crewfoundry.nav.learningEnrollments', 'Enrollments'),\n path: joinPath(basePath, 'learning/enrollments-page'),\n },\n {\n id: 'crewfoundry-learning-analytics',\n label: tr('crewfoundry.nav.learningCompletion', 'Completion'),\n path: joinPath(basePath, 'learning/learning-analytics-page'),\n },\n ],\n },\n {\n id: 'crewfoundry-teams',\n label: tr('crewfoundry.nav.teams', 'Teams'),\n path: joinPath(basePath, 'teams/teams-page'),\n children: [\n {\n id: 'crewfoundry-teams-list',\n label: tr('crewfoundry.nav.teamsList', 'Teams'),\n path: joinPath(basePath, 'teams/teams-page'),\n },\n {\n id: 'crewfoundry-teams-directory',\n label: tr('crewfoundry.nav.teamsDirectory', 'Directory'),\n path: joinPath(basePath, 'teams/team-directory-page'),\n },\n {\n id: 'crewfoundry-teams-detail',\n label: tr('crewfoundry.nav.teamsDetail', 'Team Detail'),\n path: joinPath(basePath, 'teams/team-detail-page'),\n },\n {\n id: 'crewfoundry-teams-analytics',\n label: tr('crewfoundry.nav.teamsAnalytics', 'Team Analytics'),\n path: joinPath(basePath, 'teams/team-analytics-page'),\n },\n {\n id: 'crewfoundry-teams-settings',\n label: tr('crewfoundry.nav.teamsSettings', 'Team Settings'),\n path: joinPath(basePath, 'teams/team-settings-page'),\n },\n ],\n },\n {\n id: 'crewfoundry-marketplace',\n label: tr('crewfoundry.nav.marketplace', 'Marketplace'),\n path: joinPath(basePath, 'marketplace/marketplace-page'),\n children: [\n {\n id: 'crewfoundry-marketplace-browse',\n label: tr('crewfoundry.nav.marketplaceBrowse', 'Browse Services'),\n path: joinPath(basePath, 'marketplace/marketplace-page'),\n },\n {\n id: 'crewfoundry-marketplace-my-services',\n label: tr('crewfoundry.nav.marketplaceMyServices', 'My Services'),\n path: joinPath(basePath, 'marketplace/my-services-page'),\n },\n {\n id: 'crewfoundry-marketplace-bookings',\n label: tr('crewfoundry.nav.marketplaceBookings', 'Bookings'),\n path: joinPath(basePath, 'marketplace/booking-management-page'),\n },\n {\n id: 'crewfoundry-marketplace-escrow',\n label: tr('crewfoundry.nav.marketplaceEscrow', 'Escrow Ledger'),\n path: joinPath(basePath, 'marketplace/escrow-page'),\n },\n ],\n },\n {\n id: 'crewfoundry-communications',\n label: tr('crewfoundry.nav.communications', 'Communications'),\n path: joinPath(basePath, 'communications/announcements-page'),\n children: [\n {\n id: 'crewfoundry-communications-announcements',\n label: tr('crewfoundry.nav.communicationsAnnouncements', 'Announcements'),\n path: joinPath(basePath, 'communications/announcements-page'),\n },\n {\n // Shell-level route of the shared Conversations app, not a module page.\n id: 'crewfoundry-communications-conversations',\n label: tr('crewfoundry.nav.communicationsConversations', 'Conversations'),\n path: CONVERSATIONS_ROUTE,\n },\n {\n id: 'crewfoundry-communications-files',\n label: tr('crewfoundry.nav.communicationsFiles', 'Files'),\n path: joinPath(basePath, 'communications/files-page'),\n },\n {\n id: 'crewfoundry-communications-directory',\n label: tr('crewfoundry.nav.communicationsDirectory', 'Directory'),\n path: joinPath(basePath, 'communications/directory-page'),\n },\n {\n id: 'crewfoundry-communications-teams',\n label: tr('crewfoundry.nav.communicationsTeams', 'Teams'),\n path: joinPath(basePath, 'communications/teams-page'),\n },\n ],\n },\n {\n id: 'crewfoundry-projects',\n label: tr('crewfoundry.nav.projects', 'Projects'),\n path: joinPath(basePath, 'projects/projects-page'),\n children: [\n {\n id: 'crewfoundry-projects-list',\n label: tr('crewfoundry.nav.projectsList', 'Projects'),\n path: joinPath(basePath, 'projects/projects-page'),\n },\n {\n id: 'crewfoundry-projects-create',\n label: tr('crewfoundry.nav.projectsCreate', 'Create Project'),\n path: joinPath(basePath, 'projects/create-project-page'),\n },\n {\n id: 'crewfoundry-projects-details',\n label: tr('crewfoundry.nav.projectsDetails', 'Project Details'),\n path: joinPath(basePath, 'projects/project-details-page'),\n },\n ],\n },\n {\n id: 'crewfoundry-company',\n label: tr('crewfoundry.nav.company', 'Company'),\n path: joinPath(basePath, 'company/company-dashboard-page'),\n children: [\n {\n id: 'crewfoundry-company-dashboard',\n label: tr('crewfoundry.nav.companyDashboard', 'Company Dashboard'),\n path: joinPath(basePath, 'company/company-dashboard-page'),\n },\n {\n id: 'crewfoundry-company-clients',\n label: tr('crewfoundry.nav.companyClientManagement', 'Client Management'),\n path: joinPath(basePath, 'company/client-management-page'),\n },\n {\n id: 'crewfoundry-company-vendors',\n label: tr('crewfoundry.nav.companyVendorManagement', 'Vendor Management'),\n path: joinPath(basePath, 'company/vendor-management-page'),\n },\n {\n id: 'crewfoundry-company-profile',\n label: tr('crewfoundry.nav.companyProfile', 'Company Profile'),\n path: joinPath(basePath, 'company/company-profile-page'),\n },\n ],\n },\n {\n id: 'crewfoundry-analytics',\n label: tr('crewfoundry.nav.analytics', 'Analytics'),\n path: joinPath(basePath, 'analytics/analytics-page'),\n children: [\n {\n id: 'crewfoundry-analytics-overview',\n label: tr('crewfoundry.nav.analyticsOverview', 'Overview'),\n path: joinPath(basePath, 'analytics/analytics-page'),\n },\n {\n id: 'crewfoundry-analytics-employee',\n label: tr('crewfoundry.nav.analyticsEmployee', 'Employee Analytics'),\n path: joinPath(basePath, 'analytics/employee-analytics-page'),\n },\n {\n id: 'crewfoundry-analytics-financial',\n label: tr('crewfoundry.nav.analyticsFinancial', 'Financial Analytics'),\n path: joinPath(basePath, 'analytics/financial-analytics-page'),\n },\n {\n id: 'crewfoundry-analytics-hiring',\n label: tr('crewfoundry.nav.analyticsHiring', 'Hiring Analytics'),\n path: joinPath(basePath, 'analytics/hiring-analytics-page'),\n },\n ],\n },\n {\n id: 'crewfoundry-help',\n label: tr('crewfoundry.nav.help', 'Help'),\n path: joinPath(basePath, 'help/api-documentation-page'),\n children: [\n {\n id: 'crewfoundry-help-api',\n label: tr('crewfoundry.nav.helpApiDocumentation', 'API Documentation'),\n path: joinPath(basePath, 'help/api-documentation-page'),\n },\n ],\n },\n];\n\n/** Human label for the signed-in actor, used as the default provider/client name. */\nconst actorDisplayName = (user: CrewFoundryRootProps['currentUser']): string | undefined => {\n if (!user) return undefined;\n const full = [user.firstName, user.lastName].filter(Boolean).join(' ').trim();\n return user.name?.trim() || full || user.username || user.email || undefined;\n};\n\nexport const CrewFoundryRoot: FC<CrewFoundryRootProps> = (props) => {\n const { registerNavItems, registerFooterItems, basePath = '/' } = props;\n const initializeData = useCrewFoundryStore((state) => state.initializeData);\n const tr = useTr();\n const actorName = actorDisplayName(props.currentUser);\n\n useEffect(() => {\n void initializeData({\n workspaceId: props.workspaceId,\n authToken: props.authToken,\n apiGatewayUrl: props.apiGatewayUrl,\n actorId: props.currentUser?.id,\n actorName,\n });\n }, [\n initializeData,\n props.workspaceId,\n props.authToken,\n props.apiGatewayUrl,\n props.currentUser?.id,\n actorName,\n ]);\n\n useEffect(() => {\n if (!registerNavItems) {\n return;\n }\n\n const navItem: NavItem = {\n id: 'crewfoundry',\n label: tr('crewfoundry.nav.product', 'CrewFoundry'),\n path: basePath,\n icon: <LayoutDashboard size={20} />,\n order: 80,\n group: 'products',\n children: buildSections(basePath, tr).map((section) => ({\n id: section.id,\n label: section.label,\n path: section.path,\n icon: <Folder size={16} />,\n children: section.children.map((child) => ({\n id: child.id,\n label: child.label,\n path: child.path,\n icon: <FileText size={16} />,\n })),\n })),\n };\n\n return registerNavItems(navItem);\n }, [registerNavItems, basePath, tr]);\n\n useEffect(() => {\n if (!registerFooterItems) {\n return;\n }\n\n return registerFooterItems([\n {\n id: 'crewfoundry-status',\n label: tr('crewfoundry.nav.footerStatus', 'CrewFoundry Ready'),\n type: 'status',\n section: 'left',\n order: 10,\n },\n ]);\n }, [registerFooterItems, tr]);\n\n return (\n <FeatureFlagProvider workspaceId={null} gateway=\"global\" defaultEnabled={true}>\n <CrewFoundryProvider {...props}>\n <CrewFoundryRoutes />\n </CrewFoundryProvider>\n </FeatureFlagProvider>\n );\n};\n"],"mappings":";;;;;;;;;;AAwBA,IAAM,KACJ,GACA,MACiB;CACjB;EACE,IAAI;EACJ,OAAO,EAAG,6BAA6B,YAAY;EACnD,MAAM,EAAS,GAAU,2BAA2B;EACpD,UAAU;GACR;IACE,IAAI;IACJ,OAAO,EAAG,qCAAqC,WAAW;IAC1D,MAAM,EAAS,GAAU,2BAA2B;IACrD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,sCAAsC,YAAY;IAC5D,MAAM,EAAS,GAAU,2BAA2B;IACrD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,qCAAqC,qBAAqB;IACpE,MAAM,EAAS,GAAU,oCAAoC;IAC9D;GACD;IACE,IAAI;IACJ,OAAO,EAAG,sCAAsC,sBAAsB;IACtE,MAAM,EAAS,GAAU,gCAAgC;IAC1D;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO,EAAG,0BAA0B,SAAS;EAC7C,MAAM,EAAS,GAAU,mBAAmB;EAC5C,UAAU;GACR;IACE,IAAI;IACJ,OAAO,EAAG,8BAA8B,OAAO;IAC/C,MAAM,EAAS,GAAU,mBAAmB;IAC7C;GACD;IACE,IAAI;IACJ,OAAO,EAAG,sCAAsC,eAAe;IAC/D,MAAM,EAAS,GAAU,2BAA2B;IACrD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,oCAAoC,aAAa;IAC3D,MAAM,EAAS,GAAU,yBAAyB;IACnD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,oCAAoC,aAAa;IAC3D,MAAM,EAAS,GAAU,yBAAyB;IACnD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,mCAAmC,aAAa;IAC1D,MAAM,EAAS,GAAU,yBAAyB;IACnD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,oCAAoC,cAAc;IAC5D,MAAM,EAAS,GAAU,0BAA0B;IACpD;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO,EAAG,sBAAsB,KAAK;EACrC,MAAM,EAAS,GAAU,oBAAoB;EAC7C,UAAU;GACR;IACE,IAAI;IACJ,OAAO,EAAG,+BAA+B,YAAY;IACrD,MAAM,EAAS,GAAU,oBAAoB;IAC9C;GACD;IACE,IAAI;IACJ,OAAO,EAAG,iCAAiC,cAAc;IACzD,MAAM,EAAS,GAAU,sBAAsB;IAChD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,6BAA6B,UAAU;IACjD,MAAM,EAAS,GAAU,kBAAkB;IAC5C;GACD;IACE,IAAI;IACJ,OAAO,EAAG,qCAAqC,mBAAmB;IAClE,MAAM,EAAS,GAAU,2BAA2B;IACrD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,kCAAkC,gBAAgB;IAC5D,MAAM,EAAS,GAAU,wBAAwB;IAClD;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO,EAAG,4BAA4B,WAAW;EACjD,MAAM,EAAS,GAAU,wBAAwB;EACjD,UAAU;GACR;IACE,IAAI;IACJ,OAAO,EAAG,mCAAmC,UAAU;IACvD,MAAM,EAAS,GAAU,wBAAwB;IAClD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,uCAAuC,cAAc;IAC/D,MAAM,EAAS,GAAU,4BAA4B;IACtD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,sCAAsC,aAAa;IAC7D,MAAM,EAAS,GAAU,mCAAmC;IAC7D;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO,EAAG,yBAAyB,QAAQ;EAC3C,MAAM,EAAS,GAAU,mBAAmB;EAC5C,UAAU;GACR;IACE,IAAI;IACJ,OAAO,EAAG,6BAA6B,QAAQ;IAC/C,MAAM,EAAS,GAAU,mBAAmB;IAC7C;GACD;IACE,IAAI;IACJ,OAAO,EAAG,kCAAkC,YAAY;IACxD,MAAM,EAAS,GAAU,4BAA4B;IACtD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,+BAA+B,cAAc;IACvD,MAAM,EAAS,GAAU,yBAAyB;IACnD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,kCAAkC,iBAAiB;IAC7D,MAAM,EAAS,GAAU,4BAA4B;IACtD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,iCAAiC,gBAAgB;IAC3D,MAAM,EAAS,GAAU,2BAA2B;IACrD;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO,EAAG,+BAA+B,cAAc;EACvD,MAAM,EAAS,GAAU,+BAA+B;EACxD,UAAU;GACR;IACE,IAAI;IACJ,OAAO,EAAG,qCAAqC,kBAAkB;IACjE,MAAM,EAAS,GAAU,+BAA+B;IACzD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,yCAAyC,cAAc;IACjE,MAAM,EAAS,GAAU,+BAA+B;IACzD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,uCAAuC,WAAW;IAC5D,MAAM,EAAS,GAAU,sCAAsC;IAChE;GACD;IACE,IAAI;IACJ,OAAO,EAAG,qCAAqC,gBAAgB;IAC/D,MAAM,EAAS,GAAU,0BAA0B;IACpD;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO,EAAG,kCAAkC,iBAAiB;EAC7D,MAAM,EAAS,GAAU,oCAAoC;EAC7D,UAAU;GACR;IACE,IAAI;IACJ,OAAO,EAAG,+CAA+C,gBAAgB;IACzE,MAAM,EAAS,GAAU,oCAAoC;IAC9D;GACD;IAEE,IAAI;IACJ,OAAO,EAAG,+CAA+C,gBAAgB;IACzE,MAAM;IACP;GACD;IACE,IAAI;IACJ,OAAO,EAAG,uCAAuC,QAAQ;IACzD,MAAM,EAAS,GAAU,4BAA4B;IACtD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,2CAA2C,YAAY;IACjE,MAAM,EAAS,GAAU,gCAAgC;IAC1D;GACD;IACE,IAAI;IACJ,OAAO,EAAG,uCAAuC,QAAQ;IACzD,MAAM,EAAS,GAAU,4BAA4B;IACtD;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO,EAAG,4BAA4B,WAAW;EACjD,MAAM,EAAS,GAAU,yBAAyB;EAClD,UAAU;GACR;IACE,IAAI;IACJ,OAAO,EAAG,gCAAgC,WAAW;IACrD,MAAM,EAAS,GAAU,yBAAyB;IACnD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,kCAAkC,iBAAiB;IAC7D,MAAM,EAAS,GAAU,+BAA+B;IACzD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,mCAAmC,kBAAkB;IAC/D,MAAM,EAAS,GAAU,gCAAgC;IAC1D;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO,EAAG,2BAA2B,UAAU;EAC/C,MAAM,EAAS,GAAU,iCAAiC;EAC1D,UAAU;GACR;IACE,IAAI;IACJ,OAAO,EAAG,oCAAoC,oBAAoB;IAClE,MAAM,EAAS,GAAU,iCAAiC;IAC3D;GACD;IACE,IAAI;IACJ,OAAO,EAAG,2CAA2C,oBAAoB;IACzE,MAAM,EAAS,GAAU,iCAAiC;IAC3D;GACD;IACE,IAAI;IACJ,OAAO,EAAG,2CAA2C,oBAAoB;IACzE,MAAM,EAAS,GAAU,iCAAiC;IAC3D;GACD;IACE,IAAI;IACJ,OAAO,EAAG,kCAAkC,kBAAkB;IAC9D,MAAM,EAAS,GAAU,+BAA+B;IACzD;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO,EAAG,6BAA6B,YAAY;EACnD,MAAM,EAAS,GAAU,2BAA2B;EACpD,UAAU;GACR;IACE,IAAI;IACJ,OAAO,EAAG,qCAAqC,WAAW;IAC1D,MAAM,EAAS,GAAU,2BAA2B;IACrD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,qCAAqC,qBAAqB;IACpE,MAAM,EAAS,GAAU,oCAAoC;IAC9D;GACD;IACE,IAAI;IACJ,OAAO,EAAG,sCAAsC,sBAAsB;IACtE,MAAM,EAAS,GAAU,qCAAqC;IAC/D;GACD;IACE,IAAI;IACJ,OAAO,EAAG,mCAAmC,mBAAmB;IAChE,MAAM,EAAS,GAAU,kCAAkC;IAC5D;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO,EAAG,wBAAwB,OAAO;EACzC,MAAM,EAAS,GAAU,8BAA8B;EACvD,UAAU,CACR;GACE,IAAI;GACJ,OAAO,EAAG,wCAAwC,oBAAoB;GACtE,MAAM,EAAS,GAAU,8BAA8B;GACxD,CACF;EACF;CACF,EAGK,KAAoB,MAAkE;AAC1F,KAAI,CAAC,EAAM;CACX,IAAM,IAAO,CAAC,EAAK,WAAW,EAAK,SAAS,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,CAAC,MAAM;AAC7E,QAAO,EAAK,MAAM,MAAM,IAAI,KAAQ,EAAK,YAAY,EAAK,SAAS,KAAA;GAGxD,KAA6C,MAAU;CAClE,IAAM,EAAE,qBAAkB,wBAAqB,cAAW,QAAQ,GAC5D,IAAiB,GAAqB,MAAU,EAAM,eAAe,EACrE,IAAK,GAAO,EACZ,IAAY,EAAiB,EAAM,YAAY;AAgErD,QA9DA,QAAgB;AACT,IAAe;GAClB,aAAa,EAAM;GACnB,WAAW,EAAM;GACjB,eAAe,EAAM;GACrB,SAAS,EAAM,aAAa;GAC5B;GACD,CAAC;IACD;EACD;EACA,EAAM;EACN,EAAM;EACN,EAAM;EACN,EAAM,aAAa;EACnB;EACD,CAAC,EAEF,QAAgB;AACT,QAyBL,QAAO,EArBkB;GACvB,IAAI;GACJ,OAAO,EAAG,2BAA2B,cAAc;GACnD,MAAM;GACN,MAAM,kBAAC,GAAD,EAAiB,MAAM,IAAM,CAAA;GACnC,OAAO;GACP,OAAO;GACP,UAAU,EAAc,GAAU,EAAG,CAAC,KAAK,OAAa;IACtD,IAAI,EAAQ;IACZ,OAAO,EAAQ;IACf,MAAM,EAAQ;IACd,MAAM,kBAAC,GAAD,EAAQ,MAAM,IAAM,CAAA;IAC1B,UAAU,EAAQ,SAAS,KAAK,OAAW;KACzC,IAAI,EAAM;KACV,OAAO,EAAM;KACb,MAAM,EAAM;KACZ,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;KAC7B,EAAE;IACJ,EAAE;GACJ,CAE+B;IAC/B;EAAC;EAAkB;EAAU;EAAG,CAAC,EAEpC,QAAgB;AACT,QAIL,QAAO,EAAoB,CACzB;GACE,IAAI;GACJ,OAAO,EAAG,gCAAgC,oBAAoB;GAC9D,MAAM;GACN,SAAS;GACT,OAAO;GACR,CACF,CAAC;IACD,CAAC,GAAqB,EAAG,CAAC,EAG3B,kBAAC,GAAD;EAAqB,aAAa;EAAM,SAAQ;EAAS,gBAAgB;YACvE,kBAAC,GAAD;GAAqB,GAAI;aACvB,kBAAC,GAAD,EAAqB,CAAA;GACD,CAAA;EACF,CAAA"}
1
+ {"version":3,"file":"CrewFoundryRoot.js","names":[],"sources":["../../src/crewfoundry/CrewFoundryRoot.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { useEffect } from 'react';\nimport { FileText, Folder, LayoutDashboard } from 'lucide-react';\nimport { CrewFoundryProvider } from './providers/CrewFoundryProvider';\nimport { FeatureFlagProvider } from '@burdenoff/fe-libs/shared/feature-flags';\nimport type { CrewFoundryRootProps, NavItem } from './types';\nimport { CrewFoundryRoutes } from './CrewFoundryRoutes';\nimport { CONVERSATIONS_ROUTE, useCrewFoundryStore } from './store/crewfoundryStore';\nimport { useTr } from '../shared/hooks/useTr';\nimport { joinPath } from './utils/navigation';\n\ntype NavLeaf = {\n id: string;\n label: string;\n path: string;\n};\n\ntype NavSection = {\n id: string;\n label: string;\n path: string;\n children: NavLeaf[];\n};\n\nconst buildSections = (\n basePath: string,\n tr: (key: string, fallback: string) => string\n): NavSection[] => [\n {\n id: 'crewfoundry-dashboard',\n label: tr('crewfoundry.nav.dashboard', 'Dashboard'),\n path: joinPath(basePath, 'dashboard/dashboard-page'),\n children: [\n {\n id: 'crewfoundry-dashboard-overview',\n label: tr('crewfoundry.nav.dashboardOverview', 'Overview'),\n path: joinPath(basePath, 'dashboard/dashboard-page'),\n },\n {\n id: 'crewfoundry-dashboard-analytics',\n label: tr('crewfoundry.nav.dashboardAnalytics', 'Analytics'),\n path: joinPath(basePath, 'dashboard/analytics-page'),\n },\n {\n id: 'crewfoundry-dashboard-enhanced',\n label: tr('crewfoundry.nav.dashboardEnhanced', 'Enhanced Dashboard'),\n path: joinPath(basePath, 'dashboard/enhanced-dashboard-page'),\n },\n {\n id: 'crewfoundry-dashboard-executive',\n label: tr('crewfoundry.nav.dashboardExecutive', 'Executive Dashboard'),\n path: joinPath(basePath, 'dashboard/executive-dashboard'),\n },\n ],\n },\n {\n id: 'crewfoundry-hiring',\n label: tr('crewfoundry.nav.hiring', 'Hiring'),\n path: joinPath(basePath, 'hiring/jobs-page'),\n children: [\n {\n id: 'crewfoundry-hiring-jobs',\n label: tr('crewfoundry.nav.hiringJobs', 'Jobs'),\n path: joinPath(basePath, 'hiring/jobs-page'),\n },\n {\n id: 'crewfoundry-hiring-applications',\n label: tr('crewfoundry.nav.hiringApplications', 'Applications'),\n path: joinPath(basePath, 'hiring/applications-page'),\n },\n {\n id: 'crewfoundry-hiring-candidates',\n label: tr('crewfoundry.nav.hiringCandidates', 'Candidates'),\n path: joinPath(basePath, 'hiring/candidates-page'),\n },\n {\n id: 'crewfoundry-hiring-interviews',\n label: tr('crewfoundry.nav.hiringInterviews', 'Interviews'),\n path: joinPath(basePath, 'hiring/interviews-page'),\n },\n {\n id: 'crewfoundry-hiring-create-job',\n label: tr('crewfoundry.nav.hiringCreateJob', 'Create Job'),\n path: joinPath(basePath, 'hiring/create-job-page'),\n },\n {\n id: 'crewfoundry-hiring-job-details',\n label: tr('crewfoundry.nav.hiringJobDetails', 'Job Details'),\n path: joinPath(basePath, 'hiring/job-details-page'),\n },\n ],\n },\n {\n id: 'crewfoundry-hr',\n label: tr('crewfoundry.nav.hr', 'HR'),\n path: joinPath(basePath, 'hr/employees-page'),\n children: [\n {\n id: 'crewfoundry-hr-employees',\n label: tr('crewfoundry.nav.hrEmployees', 'Employees'),\n path: joinPath(basePath, 'hr/employees-page'),\n },\n {\n id: 'crewfoundry-hr-departments',\n label: tr('crewfoundry.nav.hrDepartments', 'Departments'),\n path: joinPath(basePath, 'hr/departments-page'),\n },\n {\n id: 'crewfoundry-hr-payroll',\n label: tr('crewfoundry.nav.hrPayroll', 'Payroll'),\n path: joinPath(basePath, 'hr/payroll-page'),\n },\n {\n id: 'crewfoundry-hr-leave',\n label: tr('crewfoundry.nav.hrLeaveManagement', 'Leave Management'),\n path: joinPath(basePath, 'hr/leave-management-page'),\n },\n {\n id: 'crewfoundry-hr-time',\n label: tr('crewfoundry.nav.hrTimeTracking', 'Time Tracking'),\n path: joinPath(basePath, 'hr/time-tracking-page'),\n },\n ],\n },\n {\n id: 'crewfoundry-field',\n label: tr('crewfoundry.nav.field', 'Field Ops'),\n path: joinPath(basePath, 'field/my-work-page'),\n children: [\n {\n id: 'crewfoundry-field-my-work',\n label: tr('crewfoundry.nav.fieldMyWork', 'My Field Work'),\n path: joinPath(basePath, 'field/my-work-page'),\n },\n {\n id: 'crewfoundry-field-dispatch',\n label: tr('crewfoundry.nav.fieldDispatch', 'Dispatch Board'),\n path: joinPath(basePath, 'field/operations-page'),\n },\n ],\n },\n {\n id: 'crewfoundry-learning',\n label: tr('crewfoundry.nav.learning', 'Learning'),\n path: joinPath(basePath, 'learning/courses-page'),\n children: [\n {\n id: 'crewfoundry-learning-courses',\n label: tr('crewfoundry.nav.learningCourses', 'Courses'),\n path: joinPath(basePath, 'learning/courses-page'),\n },\n {\n id: 'crewfoundry-learning-enrollments',\n label: tr('crewfoundry.nav.learningEnrollments', 'Enrollments'),\n path: joinPath(basePath, 'learning/enrollments-page'),\n },\n {\n id: 'crewfoundry-learning-analytics',\n label: tr('crewfoundry.nav.learningCompletion', 'Completion'),\n path: joinPath(basePath, 'learning/learning-analytics-page'),\n },\n ],\n },\n {\n id: 'crewfoundry-teams',\n label: tr('crewfoundry.nav.teams', 'Teams'),\n path: joinPath(basePath, 'teams/teams-page'),\n children: [\n {\n id: 'crewfoundry-teams-list',\n label: tr('crewfoundry.nav.teamsList', 'Teams'),\n path: joinPath(basePath, 'teams/teams-page'),\n },\n {\n id: 'crewfoundry-teams-directory',\n label: tr('crewfoundry.nav.teamsDirectory', 'Directory'),\n path: joinPath(basePath, 'teams/team-directory-page'),\n },\n {\n id: 'crewfoundry-teams-detail',\n label: tr('crewfoundry.nav.teamsDetail', 'Team Detail'),\n path: joinPath(basePath, 'teams/team-detail-page'),\n },\n {\n id: 'crewfoundry-teams-analytics',\n label: tr('crewfoundry.nav.teamsAnalytics', 'Team Analytics'),\n path: joinPath(basePath, 'teams/team-analytics-page'),\n },\n {\n id: 'crewfoundry-teams-settings',\n label: tr('crewfoundry.nav.teamsSettings', 'Team Settings'),\n path: joinPath(basePath, 'teams/team-settings-page'),\n },\n ],\n },\n {\n id: 'crewfoundry-marketplace',\n label: tr('crewfoundry.nav.marketplace', 'Marketplace'),\n path: joinPath(basePath, 'marketplace/marketplace-page'),\n children: [\n {\n id: 'crewfoundry-marketplace-browse',\n label: tr('crewfoundry.nav.marketplaceBrowse', 'Browse Services'),\n path: joinPath(basePath, 'marketplace/marketplace-page'),\n },\n {\n id: 'crewfoundry-marketplace-my-services',\n label: tr('crewfoundry.nav.marketplaceMyServices', 'My Services'),\n path: joinPath(basePath, 'marketplace/my-services-page'),\n },\n {\n id: 'crewfoundry-marketplace-bookings',\n label: tr('crewfoundry.nav.marketplaceBookings', 'Bookings'),\n path: joinPath(basePath, 'marketplace/booking-management-page'),\n },\n {\n id: 'crewfoundry-marketplace-escrow',\n label: tr('crewfoundry.nav.marketplaceEscrow', 'Escrow Ledger'),\n path: joinPath(basePath, 'marketplace/escrow-page'),\n },\n ],\n },\n {\n id: 'crewfoundry-communications',\n label: tr('crewfoundry.nav.communications', 'Communications'),\n path: joinPath(basePath, 'communications/announcements-page'),\n children: [\n {\n id: 'crewfoundry-communications-announcements',\n label: tr('crewfoundry.nav.communicationsAnnouncements', 'Announcements'),\n path: joinPath(basePath, 'communications/announcements-page'),\n },\n {\n // Shell-level route of the shared Conversations app, not a module page.\n id: 'crewfoundry-communications-conversations',\n label: tr('crewfoundry.nav.communicationsConversations', 'Conversations'),\n path: CONVERSATIONS_ROUTE,\n },\n {\n id: 'crewfoundry-communications-files',\n label: tr('crewfoundry.nav.communicationsFiles', 'Files'),\n path: joinPath(basePath, 'communications/files-page'),\n },\n {\n id: 'crewfoundry-communications-directory',\n label: tr('crewfoundry.nav.communicationsDirectory', 'Directory'),\n path: joinPath(basePath, 'communications/directory-page'),\n },\n {\n id: 'crewfoundry-communications-teams',\n label: tr('crewfoundry.nav.communicationsTeams', 'Teams'),\n path: joinPath(basePath, 'communications/teams-page'),\n },\n ],\n },\n {\n id: 'crewfoundry-projects',\n label: tr('crewfoundry.nav.projects', 'Projects'),\n path: joinPath(basePath, 'projects/projects-page'),\n children: [\n {\n id: 'crewfoundry-projects-list',\n label: tr('crewfoundry.nav.projectsList', 'Projects'),\n path: joinPath(basePath, 'projects/projects-page'),\n },\n {\n id: 'crewfoundry-projects-create',\n label: tr('crewfoundry.nav.projectsCreate', 'Create Project'),\n path: joinPath(basePath, 'projects/create-project-page'),\n },\n {\n id: 'crewfoundry-projects-details',\n label: tr('crewfoundry.nav.projectsDetails', 'Project Details'),\n path: joinPath(basePath, 'projects/project-details-page'),\n },\n ],\n },\n {\n id: 'crewfoundry-company',\n label: tr('crewfoundry.nav.company', 'Company'),\n path: joinPath(basePath, 'company/company-dashboard-page'),\n children: [\n {\n id: 'crewfoundry-company-dashboard',\n label: tr('crewfoundry.nav.companyDashboard', 'Company Dashboard'),\n path: joinPath(basePath, 'company/company-dashboard-page'),\n },\n {\n id: 'crewfoundry-company-clients',\n label: tr('crewfoundry.nav.companyClientManagement', 'Client Management'),\n path: joinPath(basePath, 'company/client-management-page'),\n },\n {\n id: 'crewfoundry-company-vendors',\n label: tr('crewfoundry.nav.companyVendorManagement', 'Vendor Management'),\n path: joinPath(basePath, 'company/vendor-management-page'),\n },\n {\n id: 'crewfoundry-company-profile',\n label: tr('crewfoundry.nav.companyProfile', 'Company Profile'),\n path: joinPath(basePath, 'company/company-profile-page'),\n },\n ],\n },\n {\n id: 'crewfoundry-analytics',\n label: tr('crewfoundry.nav.analytics', 'Analytics'),\n path: joinPath(basePath, 'analytics/analytics-page'),\n children: [\n {\n id: 'crewfoundry-analytics-overview',\n label: tr('crewfoundry.nav.analyticsOverview', 'Overview'),\n path: joinPath(basePath, 'analytics/analytics-page'),\n },\n {\n id: 'crewfoundry-analytics-employee',\n label: tr('crewfoundry.nav.analyticsEmployee', 'Employee Analytics'),\n path: joinPath(basePath, 'analytics/employee-analytics-page'),\n },\n {\n id: 'crewfoundry-analytics-financial',\n label: tr('crewfoundry.nav.analyticsFinancial', 'Financial Analytics'),\n path: joinPath(basePath, 'analytics/financial-analytics-page'),\n },\n {\n id: 'crewfoundry-analytics-hiring',\n label: tr('crewfoundry.nav.analyticsHiring', 'Hiring Analytics'),\n path: joinPath(basePath, 'analytics/hiring-analytics-page'),\n },\n ],\n },\n {\n id: 'crewfoundry-help',\n label: tr('crewfoundry.nav.help', 'Help'),\n path: joinPath(basePath, 'help/api-documentation-page'),\n children: [\n {\n id: 'crewfoundry-help-api',\n label: tr('crewfoundry.nav.helpApiDocumentation', 'API Documentation'),\n path: joinPath(basePath, 'help/api-documentation-page'),\n },\n ],\n },\n];\n\n/** Human label for the signed-in actor, used as the default provider/client name. */\nconst actorDisplayName = (user: CrewFoundryRootProps['currentUser']): string | undefined => {\n if (!user) return undefined;\n const full = [user.firstName, user.lastName].filter(Boolean).join(' ').trim();\n return user.name?.trim() || full || user.username || user.email || undefined;\n};\n\nexport const CrewFoundryRoot: FC<CrewFoundryRootProps> = (props) => {\n const { registerNavItems, registerFooterItems, basePath = '/' } = props;\n const initializeData = useCrewFoundryStore((state) => state.initializeData);\n const tr = useTr();\n const actorName = actorDisplayName(props.currentUser);\n\n useEffect(() => {\n void initializeData({\n workspaceId: props.workspaceId,\n authToken: props.authToken,\n apiGatewayUrl: props.apiGatewayUrl,\n actorId: props.currentUser?.id,\n actorName,\n });\n }, [\n initializeData,\n props.workspaceId,\n props.authToken,\n props.apiGatewayUrl,\n props.currentUser?.id,\n actorName,\n ]);\n\n useEffect(() => {\n if (!registerNavItems) {\n return;\n }\n\n const navItem: NavItem = {\n id: 'crewfoundry',\n label: tr('crewfoundry.nav.product', 'CrewFoundry'),\n path: basePath,\n icon: <LayoutDashboard size={20} />,\n order: 80,\n group: 'products',\n children: buildSections(basePath, tr).map((section) => ({\n id: section.id,\n label: section.label,\n path: section.path,\n icon: <Folder size={16} />,\n children: section.children.map((child) => ({\n id: child.id,\n label: child.label,\n path: child.path,\n icon: <FileText size={16} />,\n })),\n })),\n };\n\n return registerNavItems(navItem);\n }, [registerNavItems, basePath, tr]);\n\n useEffect(() => {\n if (!registerFooterItems) {\n return;\n }\n\n return registerFooterItems([\n {\n id: 'crewfoundry-status',\n label: tr('crewfoundry.nav.footerStatus', 'CrewFoundry Ready'),\n type: 'status',\n section: 'left',\n order: 10,\n },\n ]);\n }, [registerFooterItems, tr]);\n\n return (\n <FeatureFlagProvider workspaceId={null} gateway=\"global\" defaultEnabled={true}>\n <CrewFoundryProvider {...props}>\n <CrewFoundryRoutes />\n </CrewFoundryProvider>\n </FeatureFlagProvider>\n );\n};\n"],"mappings":";;;;;;;;;;AAwBA,IAAM,KACJ,GACA,MACiB;CACjB;EACE,IAAI;EACJ,OAAO,EAAG,6BAA6B,YAAY;EACnD,MAAM,EAAS,GAAU,2BAA2B;EACpD,UAAU;GACR;IACE,IAAI;IACJ,OAAO,EAAG,qCAAqC,WAAW;IAC1D,MAAM,EAAS,GAAU,2BAA2B;IACrD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,sCAAsC,YAAY;IAC5D,MAAM,EAAS,GAAU,2BAA2B;IACrD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,qCAAqC,qBAAqB;IACpE,MAAM,EAAS,GAAU,oCAAoC;IAC9D;GACD;IACE,IAAI;IACJ,OAAO,EAAG,sCAAsC,sBAAsB;IACtE,MAAM,EAAS,GAAU,gCAAgC;IAC1D;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO,EAAG,0BAA0B,SAAS;EAC7C,MAAM,EAAS,GAAU,mBAAmB;EAC5C,UAAU;GACR;IACE,IAAI;IACJ,OAAO,EAAG,8BAA8B,OAAO;IAC/C,MAAM,EAAS,GAAU,mBAAmB;IAC7C;GACD;IACE,IAAI;IACJ,OAAO,EAAG,sCAAsC,eAAe;IAC/D,MAAM,EAAS,GAAU,2BAA2B;IACrD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,oCAAoC,aAAa;IAC3D,MAAM,EAAS,GAAU,yBAAyB;IACnD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,oCAAoC,aAAa;IAC3D,MAAM,EAAS,GAAU,yBAAyB;IACnD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,mCAAmC,aAAa;IAC1D,MAAM,EAAS,GAAU,yBAAyB;IACnD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,oCAAoC,cAAc;IAC5D,MAAM,EAAS,GAAU,0BAA0B;IACpD;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO,EAAG,sBAAsB,KAAK;EACrC,MAAM,EAAS,GAAU,oBAAoB;EAC7C,UAAU;GACR;IACE,IAAI;IACJ,OAAO,EAAG,+BAA+B,YAAY;IACrD,MAAM,EAAS,GAAU,oBAAoB;IAC9C;GACD;IACE,IAAI;IACJ,OAAO,EAAG,iCAAiC,cAAc;IACzD,MAAM,EAAS,GAAU,sBAAsB;IAChD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,6BAA6B,UAAU;IACjD,MAAM,EAAS,GAAU,kBAAkB;IAC5C;GACD;IACE,IAAI;IACJ,OAAO,EAAG,qCAAqC,mBAAmB;IAClE,MAAM,EAAS,GAAU,2BAA2B;IACrD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,kCAAkC,gBAAgB;IAC5D,MAAM,EAAS,GAAU,wBAAwB;IAClD;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO,EAAG,yBAAyB,YAAY;EAC/C,MAAM,EAAS,GAAU,qBAAqB;EAC9C,UAAU,CACR;GACE,IAAI;GACJ,OAAO,EAAG,+BAA+B,gBAAgB;GACzD,MAAM,EAAS,GAAU,qBAAqB;GAC/C,EACD;GACE,IAAI;GACJ,OAAO,EAAG,iCAAiC,iBAAiB;GAC5D,MAAM,EAAS,GAAU,wBAAwB;GAClD,CACF;EACF;CACD;EACE,IAAI;EACJ,OAAO,EAAG,4BAA4B,WAAW;EACjD,MAAM,EAAS,GAAU,wBAAwB;EACjD,UAAU;GACR;IACE,IAAI;IACJ,OAAO,EAAG,mCAAmC,UAAU;IACvD,MAAM,EAAS,GAAU,wBAAwB;IAClD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,uCAAuC,cAAc;IAC/D,MAAM,EAAS,GAAU,4BAA4B;IACtD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,sCAAsC,aAAa;IAC7D,MAAM,EAAS,GAAU,mCAAmC;IAC7D;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO,EAAG,yBAAyB,QAAQ;EAC3C,MAAM,EAAS,GAAU,mBAAmB;EAC5C,UAAU;GACR;IACE,IAAI;IACJ,OAAO,EAAG,6BAA6B,QAAQ;IAC/C,MAAM,EAAS,GAAU,mBAAmB;IAC7C;GACD;IACE,IAAI;IACJ,OAAO,EAAG,kCAAkC,YAAY;IACxD,MAAM,EAAS,GAAU,4BAA4B;IACtD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,+BAA+B,cAAc;IACvD,MAAM,EAAS,GAAU,yBAAyB;IACnD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,kCAAkC,iBAAiB;IAC7D,MAAM,EAAS,GAAU,4BAA4B;IACtD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,iCAAiC,gBAAgB;IAC3D,MAAM,EAAS,GAAU,2BAA2B;IACrD;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO,EAAG,+BAA+B,cAAc;EACvD,MAAM,EAAS,GAAU,+BAA+B;EACxD,UAAU;GACR;IACE,IAAI;IACJ,OAAO,EAAG,qCAAqC,kBAAkB;IACjE,MAAM,EAAS,GAAU,+BAA+B;IACzD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,yCAAyC,cAAc;IACjE,MAAM,EAAS,GAAU,+BAA+B;IACzD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,uCAAuC,WAAW;IAC5D,MAAM,EAAS,GAAU,sCAAsC;IAChE;GACD;IACE,IAAI;IACJ,OAAO,EAAG,qCAAqC,gBAAgB;IAC/D,MAAM,EAAS,GAAU,0BAA0B;IACpD;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO,EAAG,kCAAkC,iBAAiB;EAC7D,MAAM,EAAS,GAAU,oCAAoC;EAC7D,UAAU;GACR;IACE,IAAI;IACJ,OAAO,EAAG,+CAA+C,gBAAgB;IACzE,MAAM,EAAS,GAAU,oCAAoC;IAC9D;GACD;IAEE,IAAI;IACJ,OAAO,EAAG,+CAA+C,gBAAgB;IACzE,MAAM;IACP;GACD;IACE,IAAI;IACJ,OAAO,EAAG,uCAAuC,QAAQ;IACzD,MAAM,EAAS,GAAU,4BAA4B;IACtD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,2CAA2C,YAAY;IACjE,MAAM,EAAS,GAAU,gCAAgC;IAC1D;GACD;IACE,IAAI;IACJ,OAAO,EAAG,uCAAuC,QAAQ;IACzD,MAAM,EAAS,GAAU,4BAA4B;IACtD;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO,EAAG,4BAA4B,WAAW;EACjD,MAAM,EAAS,GAAU,yBAAyB;EAClD,UAAU;GACR;IACE,IAAI;IACJ,OAAO,EAAG,gCAAgC,WAAW;IACrD,MAAM,EAAS,GAAU,yBAAyB;IACnD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,kCAAkC,iBAAiB;IAC7D,MAAM,EAAS,GAAU,+BAA+B;IACzD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,mCAAmC,kBAAkB;IAC/D,MAAM,EAAS,GAAU,gCAAgC;IAC1D;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO,EAAG,2BAA2B,UAAU;EAC/C,MAAM,EAAS,GAAU,iCAAiC;EAC1D,UAAU;GACR;IACE,IAAI;IACJ,OAAO,EAAG,oCAAoC,oBAAoB;IAClE,MAAM,EAAS,GAAU,iCAAiC;IAC3D;GACD;IACE,IAAI;IACJ,OAAO,EAAG,2CAA2C,oBAAoB;IACzE,MAAM,EAAS,GAAU,iCAAiC;IAC3D;GACD;IACE,IAAI;IACJ,OAAO,EAAG,2CAA2C,oBAAoB;IACzE,MAAM,EAAS,GAAU,iCAAiC;IAC3D;GACD;IACE,IAAI;IACJ,OAAO,EAAG,kCAAkC,kBAAkB;IAC9D,MAAM,EAAS,GAAU,+BAA+B;IACzD;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO,EAAG,6BAA6B,YAAY;EACnD,MAAM,EAAS,GAAU,2BAA2B;EACpD,UAAU;GACR;IACE,IAAI;IACJ,OAAO,EAAG,qCAAqC,WAAW;IAC1D,MAAM,EAAS,GAAU,2BAA2B;IACrD;GACD;IACE,IAAI;IACJ,OAAO,EAAG,qCAAqC,qBAAqB;IACpE,MAAM,EAAS,GAAU,oCAAoC;IAC9D;GACD;IACE,IAAI;IACJ,OAAO,EAAG,sCAAsC,sBAAsB;IACtE,MAAM,EAAS,GAAU,qCAAqC;IAC/D;GACD;IACE,IAAI;IACJ,OAAO,EAAG,mCAAmC,mBAAmB;IAChE,MAAM,EAAS,GAAU,kCAAkC;IAC5D;GACF;EACF;CACD;EACE,IAAI;EACJ,OAAO,EAAG,wBAAwB,OAAO;EACzC,MAAM,EAAS,GAAU,8BAA8B;EACvD,UAAU,CACR;GACE,IAAI;GACJ,OAAO,EAAG,wCAAwC,oBAAoB;GACtE,MAAM,EAAS,GAAU,8BAA8B;GACxD,CACF;EACF;CACF,EAGK,KAAoB,MAAkE;AAC1F,KAAI,CAAC,EAAM;CACX,IAAM,IAAO,CAAC,EAAK,WAAW,EAAK,SAAS,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,CAAC,MAAM;AAC7E,QAAO,EAAK,MAAM,MAAM,IAAI,KAAQ,EAAK,YAAY,EAAK,SAAS,KAAA;GAGxD,KAA6C,MAAU;CAClE,IAAM,EAAE,qBAAkB,wBAAqB,cAAW,QAAQ,GAC5D,IAAiB,GAAqB,MAAU,EAAM,eAAe,EACrE,IAAK,GAAO,EACZ,IAAY,EAAiB,EAAM,YAAY;AAgErD,QA9DA,QAAgB;AACT,IAAe;GAClB,aAAa,EAAM;GACnB,WAAW,EAAM;GACjB,eAAe,EAAM;GACrB,SAAS,EAAM,aAAa;GAC5B;GACD,CAAC;IACD;EACD;EACA,EAAM;EACN,EAAM;EACN,EAAM;EACN,EAAM,aAAa;EACnB;EACD,CAAC,EAEF,QAAgB;AACT,QAyBL,QAAO,EArBkB;GACvB,IAAI;GACJ,OAAO,EAAG,2BAA2B,cAAc;GACnD,MAAM;GACN,MAAM,kBAAC,GAAD,EAAiB,MAAM,IAAM,CAAA;GACnC,OAAO;GACP,OAAO;GACP,UAAU,EAAc,GAAU,EAAG,CAAC,KAAK,OAAa;IACtD,IAAI,EAAQ;IACZ,OAAO,EAAQ;IACf,MAAM,EAAQ;IACd,MAAM,kBAAC,GAAD,EAAQ,MAAM,IAAM,CAAA;IAC1B,UAAU,EAAQ,SAAS,KAAK,OAAW;KACzC,IAAI,EAAM;KACV,OAAO,EAAM;KACb,MAAM,EAAM;KACZ,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;KAC7B,EAAE;IACJ,EAAE;GACJ,CAE+B;IAC/B;EAAC;EAAkB;EAAU;EAAG,CAAC,EAEpC,QAAgB;AACT,QAIL,QAAO,EAAoB,CACzB;GACE,IAAI;GACJ,OAAO,EAAG,gCAAgC,oBAAoB;GAC9D,MAAM;GACN,SAAS;GACT,OAAO;GACR,CACF,CAAC;IACD,CAAC,GAAqB,EAAG,CAAC,EAG3B,kBAAC,GAAD;EAAqB,aAAa;EAAM,SAAQ;EAAS,gBAAgB;YACvE,kBAAC,GAAD;GAAqB,GAAI;aACvB,kBAAC,GAAD,EAAqB,CAAA;GACD,CAAA;EACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"CrewFoundryRoutes.d.ts","sourceRoot":"","sources":["../../src/crewfoundry/CrewFoundryRoutes.tsx"],"names":[],"mappings":"AAoQA,wBAAgB,iBAAiB,gCAmGhC"}
1
+ {"version":3,"file":"CrewFoundryRoutes.d.ts","sourceRoot":"","sources":["../../src/crewfoundry/CrewFoundryRoutes.tsx"],"names":[],"mappings":"AA8QA,wBAAgB,iBAAiB,gCAqGhC"}
@@ -5,7 +5,7 @@ import { Loader2 as i } from "lucide-react";
5
5
  import { Navigate as a, Route as o, Routes as s } from "react-router";
6
6
  import { jsx as c, jsxs as l } from "react/jsx-runtime";
7
7
  //#region src/crewfoundry/CrewFoundryRoutes.tsx
8
- var u = r(() => import("./pages/AnalyticsAnalyticsPagePage.js").then((e) => ({ default: e.AnalyticsAnalyticsPagePage }))), d = r(() => import("./pages/AnalyticsEmployeeAnalyticsPagePage.js").then((e) => ({ default: e.AnalyticsEmployeeAnalyticsPagePage }))), f = r(() => import("./pages/AnalyticsFinancialAnalyticsPagePage.js").then((e) => ({ default: e.AnalyticsFinancialAnalyticsPagePage }))), p = r(() => import("./pages/AnalyticsHiringAnalyticsPagePage.js").then((e) => ({ default: e.AnalyticsHiringAnalyticsPagePage }))), m = r(() => import("./pages/CommunicationsAnnouncementsPagePage.js").then((e) => ({ default: e.CommunicationsAnnouncementsPagePage }))), h = r(() => import("./pages/CommunicationsDirectoryPagePage.js").then((e) => ({ default: e.CommunicationsDirectoryPagePage }))), g = r(() => import("./pages/CommunicationsFilesPagePage.js").then((e) => ({ default: e.CommunicationsFilesPagePage }))), _ = r(() => import("./pages/CommunicationsTeamsPagePage.js").then((e) => ({ default: e.CommunicationsTeamsPagePage }))), v = r(() => import("./pages/CompanyClientManagementPagePage.js").then((e) => ({ default: e.CompanyClientManagementPagePage }))), y = r(() => import("./pages/CompanyCompanyDashboardPagePage.js").then((e) => ({ default: e.CompanyCompanyDashboardPagePage }))), b = r(() => import("./pages/CompanyVendorManagementPagePage.js").then((e) => ({ default: e.CompanyVendorManagementPagePage }))), x = r(() => import("./pages/DashboardAnalyticsPagePage.js").then((e) => ({ default: e.DashboardAnalyticsPagePage }))), S = r(() => import("./pages/DashboardDashboardPagePage.js").then((e) => ({ default: e.DashboardDashboardPagePage }))), C = r(() => import("./pages/DashboardEnhancedDashboardPagePage.js").then((e) => ({ default: e.DashboardEnhancedDashboardPagePage }))), w = r(() => import("./pages/DashboardExecutiveDashboardPage.js").then((e) => ({ default: e.DashboardExecutiveDashboardPage }))), T = r(() => import("./pages/HiringApplicationsPagePage.js").then((e) => ({ default: e.HiringApplicationsPagePage }))), E = r(() => import("./pages/HiringCandidatesPagePage.js").then((e) => ({ default: e.HiringCandidatesPagePage }))), D = r(() => import("./pages/HiringCreateJobPagePage.js").then((e) => ({ default: e.HiringCreateJobPagePage }))), O = r(() => import("./pages/HiringInterviewsPagePage.js").then((e) => ({ default: e.HiringInterviewsPagePage }))), k = r(() => import("./pages/HiringOnboardingPagePage.js").then((e) => ({ default: e.HiringOnboardingPagePage }))), A = r(() => import("./pages/HiringJobDetailsPagePage.js").then((e) => ({ default: e.HiringJobDetailsPagePage }))), ee = r(() => import("./pages/HiringJobsPagePage.js").then((e) => ({ default: e.HiringJobsPagePage }))), j = r(() => import("./pages/HrDepartmentsPagePage.js").then((e) => ({ default: e.HrDepartmentsPagePage }))), M = r(() => import("./pages/HrEmployeesPagePage.js").then((e) => ({ default: e.HrEmployeesPagePage }))), N = r(() => import("./pages/HrEmployeeProfilePagePage.js").then((e) => ({ default: e.HrEmployeeProfilePagePage }))), P = r(() => import("./pages/HrLeaveManagementPagePage.js").then((e) => ({ default: e.HrLeaveManagementPagePage }))), F = r(() => import("./pages/HrPayrollPagePage.js").then((e) => ({ default: e.HrPayrollPagePage }))), I = r(() => import("./pages/HrTimeTrackingPagePage.js").then((e) => ({ default: e.HrTimeTrackingPagePage }))), L = r(() => import("./pages/LearningCourseDetailsPagePage.js").then((e) => ({ default: e.LearningCourseDetailsPagePage }))), R = r(() => import("./pages/LearningCoursesPagePage.js").then((e) => ({ default: e.LearningCoursesPagePage }))), z = r(() => import("./pages/LearningLearningAnalyticsPagePage.js").then((e) => ({ default: e.LearningLearningAnalyticsPagePage }))), B = r(() => import("./pages/MarketplaceBookingManagementPagePage.js").then((e) => ({ default: e.MarketplaceBookingManagementPagePage }))), V = r(() => import("./pages/LearningEnrollmentsPagePage.js").then((e) => ({ default: e.LearningEnrollmentsPagePage }))), H = r(() => import("./pages/MarketplaceEscrowPagePage.js").then((e) => ({ default: e.MarketplaceEscrowPagePage }))), U = r(() => import("./pages/MarketplaceMarketplacePagePage.js").then((e) => ({ default: e.MarketplaceMarketplacePagePage }))), W = r(() => import("./pages/MarketplaceMyServicesPagePage.js").then((e) => ({ default: e.MarketplaceMyServicesPagePage }))), G = r(() => import("./pages/MarketplaceServiceDetailsPagePage.js").then((e) => ({ default: e.MarketplaceServiceDetailsPagePage }))), K = r(() => import("./pages/ProjectsCreateProjectPagePage.js").then((e) => ({ default: e.ProjectsCreateProjectPagePage }))), q = r(() => import("./pages/ProjectsProjectDetailsPagePage.js").then((e) => ({ default: e.ProjectsProjectDetailsPagePage }))), J = r(() => import("./pages/ProjectsProjectsPagePage.js").then((e) => ({ default: e.ProjectsProjectsPagePage }))), Y = r(() => import("./pages/HrSkillsTaxonomyPagePage.js").then((e) => ({ default: e.HrSkillsTaxonomyPagePage }))), X = r(() => import("./pages/ProjectsResourcingPagePage.js").then((e) => ({ default: e.ProjectsResourcingPagePage }))), Z = r(() => import("./pages/TeamsTeamAnalyticsPagePage.js").then((e) => ({ default: e.TeamsTeamAnalyticsPagePage }))), Q = r(() => import("./pages/TeamsTeamDetailPagePage.js").then((e) => ({ default: e.TeamsTeamDetailPagePage }))), $ = r(() => import("./pages/TeamsTeamDirectoryPagePage.js").then((e) => ({ default: e.TeamsTeamDirectoryPagePage }))), te = r(() => import("./pages/TeamsTeamsPagePage.js").then((e) => ({ default: e.TeamsTeamsPagePage }))), ne = r(() => import("./pages/HelpApiDocumentationPagePage.js").then((e) => ({ default: e.HelpApiDocumentationPagePage }))), re = r(() => import("./pages/CompanyCompanyProfilePagePage.js").then((e) => ({ default: e.CompanyCompanyProfilePagePage }))), ie = r(() => import("./pages/TeamsTeamSettingsPagePage.js").then((e) => ({ default: e.TeamsTeamSettingsPagePage }))), ae = [
8
+ var u = r(() => import("./pages/AnalyticsAnalyticsPagePage.js").then((e) => ({ default: e.AnalyticsAnalyticsPagePage }))), d = r(() => import("./pages/AnalyticsEmployeeAnalyticsPagePage.js").then((e) => ({ default: e.AnalyticsEmployeeAnalyticsPagePage }))), f = r(() => import("./pages/AnalyticsFinancialAnalyticsPagePage.js").then((e) => ({ default: e.AnalyticsFinancialAnalyticsPagePage }))), p = r(() => import("./pages/AnalyticsHiringAnalyticsPagePage.js").then((e) => ({ default: e.AnalyticsHiringAnalyticsPagePage }))), m = r(() => import("./pages/CommunicationsAnnouncementsPagePage.js").then((e) => ({ default: e.CommunicationsAnnouncementsPagePage }))), h = r(() => import("./pages/CommunicationsDirectoryPagePage.js").then((e) => ({ default: e.CommunicationsDirectoryPagePage }))), g = r(() => import("./pages/CommunicationsFilesPagePage.js").then((e) => ({ default: e.CommunicationsFilesPagePage }))), _ = r(() => import("./pages/CommunicationsTeamsPagePage.js").then((e) => ({ default: e.CommunicationsTeamsPagePage }))), v = r(() => import("./pages/CompanyClientManagementPagePage.js").then((e) => ({ default: e.CompanyClientManagementPagePage }))), y = r(() => import("./pages/CompanyCompanyDashboardPagePage.js").then((e) => ({ default: e.CompanyCompanyDashboardPagePage }))), b = r(() => import("./pages/CompanyVendorManagementPagePage.js").then((e) => ({ default: e.CompanyVendorManagementPagePage }))), x = r(() => import("./pages/DashboardAnalyticsPagePage.js").then((e) => ({ default: e.DashboardAnalyticsPagePage }))), S = r(() => import("./pages/DashboardDashboardPagePage.js").then((e) => ({ default: e.DashboardDashboardPagePage }))), C = r(() => import("./pages/DashboardEnhancedDashboardPagePage.js").then((e) => ({ default: e.DashboardEnhancedDashboardPagePage }))), w = r(() => import("./pages/DashboardExecutiveDashboardPage.js").then((e) => ({ default: e.DashboardExecutiveDashboardPage }))), T = r(() => import("./pages/HiringApplicationsPagePage.js").then((e) => ({ default: e.HiringApplicationsPagePage }))), E = r(() => import("./pages/HiringCandidatesPagePage.js").then((e) => ({ default: e.HiringCandidatesPagePage }))), D = r(() => import("./pages/HiringCreateJobPagePage.js").then((e) => ({ default: e.HiringCreateJobPagePage }))), O = r(() => import("./pages/HiringInterviewsPagePage.js").then((e) => ({ default: e.HiringInterviewsPagePage }))), k = r(() => import("./pages/HiringOnboardingPagePage.js").then((e) => ({ default: e.HiringOnboardingPagePage }))), A = r(() => import("./pages/HiringJobDetailsPagePage.js").then((e) => ({ default: e.HiringJobDetailsPagePage }))), j = r(() => import("./pages/HiringJobsPagePage.js").then((e) => ({ default: e.HiringJobsPagePage }))), M = r(() => import("./pages/HrDepartmentsPagePage.js").then((e) => ({ default: e.HrDepartmentsPagePage }))), N = r(() => import("./pages/HrEmployeesPagePage.js").then((e) => ({ default: e.HrEmployeesPagePage }))), P = r(() => import("./pages/HrEmployeeProfilePagePage.js").then((e) => ({ default: e.HrEmployeeProfilePagePage }))), ee = r(() => import("./pages/HrLeaveManagementPagePage.js").then((e) => ({ default: e.HrLeaveManagementPagePage }))), F = r(() => import("./pages/HrPayrollPagePage.js").then((e) => ({ default: e.HrPayrollPagePage }))), I = r(() => import("./pages/HrTimeTrackingPagePage.js").then((e) => ({ default: e.HrTimeTrackingPagePage }))), L = r(() => import("./pages/LearningCourseDetailsPagePage.js").then((e) => ({ default: e.LearningCourseDetailsPagePage }))), R = r(() => import("./pages/LearningCoursesPagePage.js").then((e) => ({ default: e.LearningCoursesPagePage }))), z = r(() => import("./pages/LearningLearningAnalyticsPagePage.js").then((e) => ({ default: e.LearningLearningAnalyticsPagePage }))), B = r(() => import("./pages/MarketplaceBookingManagementPagePage.js").then((e) => ({ default: e.MarketplaceBookingManagementPagePage }))), V = r(() => import("./pages/LearningEnrollmentsPagePage.js").then((e) => ({ default: e.LearningEnrollmentsPagePage }))), H = r(() => import("./pages/MarketplaceEscrowPagePage.js").then((e) => ({ default: e.MarketplaceEscrowPagePage }))), U = r(() => import("./pages/MarketplaceMarketplacePagePage.js").then((e) => ({ default: e.MarketplaceMarketplacePagePage }))), W = r(() => import("./pages/MarketplaceMyServicesPagePage.js").then((e) => ({ default: e.MarketplaceMyServicesPagePage }))), G = r(() => import("./pages/MarketplaceServiceDetailsPagePage.js").then((e) => ({ default: e.MarketplaceServiceDetailsPagePage }))), K = r(() => import("./pages/ProjectsCreateProjectPagePage.js").then((e) => ({ default: e.ProjectsCreateProjectPagePage }))), q = r(() => import("./pages/ProjectsProjectDetailsPagePage.js").then((e) => ({ default: e.ProjectsProjectDetailsPagePage }))), J = r(() => import("./pages/ProjectsProjectsPagePage.js").then((e) => ({ default: e.ProjectsProjectsPagePage }))), Y = r(() => import("./pages/HrSkillsTaxonomyPagePage.js").then((e) => ({ default: e.HrSkillsTaxonomyPagePage }))), X = r(() => import("./pages/FieldOperationsPagePage.js").then((e) => ({ default: e.FieldOperationsPagePage }))), Z = r(() => import("./pages/FieldMyWorkPagePage.js").then((e) => ({ default: e.FieldMyWorkPagePage }))), Q = r(() => import("./pages/ProjectsResourcingPagePage.js").then((e) => ({ default: e.ProjectsResourcingPagePage }))), $ = r(() => import("./pages/TeamsTeamAnalyticsPagePage.js").then((e) => ({ default: e.TeamsTeamAnalyticsPagePage }))), te = r(() => import("./pages/TeamsTeamDetailPagePage.js").then((e) => ({ default: e.TeamsTeamDetailPagePage }))), ne = r(() => import("./pages/TeamsTeamDirectoryPagePage.js").then((e) => ({ default: e.TeamsTeamDirectoryPagePage }))), re = r(() => import("./pages/TeamsTeamsPagePage.js").then((e) => ({ default: e.TeamsTeamsPagePage }))), ie = r(() => import("./pages/HelpApiDocumentationPagePage.js").then((e) => ({ default: e.HelpApiDocumentationPagePage }))), ae = r(() => import("./pages/CompanyCompanyProfilePagePage.js").then((e) => ({ default: e.CompanyCompanyProfilePagePage }))), oe = r(() => import("./pages/TeamsTeamSettingsPagePage.js").then((e) => ({ default: e.TeamsTeamSettingsPagePage }))), se = [
9
9
  ["learning/learning-page", "../learning/courses-page"],
10
10
  ["learning/learning-paths-page", "../learning/courses-page"],
11
11
  ["learning/learning-path-detail-page", "../learning/courses-page"],
@@ -27,15 +27,15 @@ var u = r(() => import("./pages/AnalyticsAnalyticsPagePage.js").then((e) => ({ d
27
27
  ["communications/calls-page", "../communications/announcements-page"],
28
28
  ["communications/video-calls-page", "../communications/announcements-page"]
29
29
  ];
30
- function oe() {
30
+ function ce() {
31
31
  return /* @__PURE__ */ c("div", {
32
32
  className: "flex min-h-[320px] items-center justify-center",
33
33
  children: /* @__PURE__ */ c(i, { className: "h-8 w-8 animate-spin text-primary" })
34
34
  });
35
35
  }
36
- function se() {
36
+ function le() {
37
37
  return /* @__PURE__ */ c(n, {
38
- fallback: /* @__PURE__ */ c(oe, {}),
38
+ fallback: /* @__PURE__ */ c(ce, {}),
39
39
  children: /* @__PURE__ */ l(s, { children: [
40
40
  /* @__PURE__ */ c(o, {
41
41
  index: !0,
@@ -127,23 +127,23 @@ function se() {
127
127
  }),
128
128
  /* @__PURE__ */ c(o, {
129
129
  path: "hiring/jobs-page",
130
- element: /* @__PURE__ */ c(ee, {})
130
+ element: /* @__PURE__ */ c(j, {})
131
131
  }),
132
132
  /* @__PURE__ */ c(o, {
133
133
  path: "hr/departments-page",
134
- element: /* @__PURE__ */ c(j, {})
134
+ element: /* @__PURE__ */ c(M, {})
135
135
  }),
136
136
  /* @__PURE__ */ c(o, {
137
137
  path: "hr/employees-page",
138
- element: /* @__PURE__ */ c(M, {})
138
+ element: /* @__PURE__ */ c(N, {})
139
139
  }),
140
140
  /* @__PURE__ */ c(o, {
141
141
  path: "hr/employee-profile-page",
142
- element: /* @__PURE__ */ c(N, {})
142
+ element: /* @__PURE__ */ c(P, {})
143
143
  }),
144
144
  /* @__PURE__ */ c(o, {
145
145
  path: "hr/leave-management-page",
146
- element: /* @__PURE__ */ c(P, {})
146
+ element: /* @__PURE__ */ c(ee, {})
147
147
  }),
148
148
  /* @__PURE__ */ c(o, {
149
149
  path: "hr/payroll-page",
@@ -157,6 +157,14 @@ function se() {
157
157
  path: "hr/skills-taxonomy-page",
158
158
  element: /* @__PURE__ */ c(Y, {})
159
159
  }),
160
+ /* @__PURE__ */ c(o, {
161
+ path: "field/operations-page",
162
+ element: /* @__PURE__ */ c(X, {})
163
+ }),
164
+ /* @__PURE__ */ c(o, {
165
+ path: "field/my-work-page",
166
+ element: /* @__PURE__ */ c(Z, {})
167
+ }),
160
168
  /* @__PURE__ */ c(o, {
161
169
  path: "learning/course-details-page",
162
170
  element: /* @__PURE__ */ c(L, {})
@@ -207,37 +215,37 @@ function se() {
207
215
  }),
208
216
  /* @__PURE__ */ c(o, {
209
217
  path: "projects/resourcing-page",
210
- element: /* @__PURE__ */ c(X, {})
218
+ element: /* @__PURE__ */ c(Q, {})
211
219
  }),
212
220
  /* @__PURE__ */ c(o, {
213
221
  path: "teams/team-analytics-page",
214
- element: /* @__PURE__ */ c(Z, {})
222
+ element: /* @__PURE__ */ c($, {})
215
223
  }),
216
224
  /* @__PURE__ */ c(o, {
217
225
  path: "teams/team-detail-page",
218
- element: /* @__PURE__ */ c(Q, {})
226
+ element: /* @__PURE__ */ c(te, {})
219
227
  }),
220
228
  /* @__PURE__ */ c(o, {
221
229
  path: "teams/team-directory-page",
222
- element: /* @__PURE__ */ c($, {})
230
+ element: /* @__PURE__ */ c(ne, {})
223
231
  }),
224
232
  /* @__PURE__ */ c(o, {
225
233
  path: "teams/teams-page",
226
- element: /* @__PURE__ */ c(te, {})
234
+ element: /* @__PURE__ */ c(re, {})
227
235
  }),
228
236
  /* @__PURE__ */ c(o, {
229
237
  path: "teams/team-settings-page",
230
- element: /* @__PURE__ */ c(ie, {})
238
+ element: /* @__PURE__ */ c(oe, {})
231
239
  }),
232
240
  /* @__PURE__ */ c(o, {
233
241
  path: "help/api-documentation-page",
234
- element: /* @__PURE__ */ c(ne, {})
242
+ element: /* @__PURE__ */ c(ie, {})
235
243
  }),
236
244
  /* @__PURE__ */ c(o, {
237
245
  path: "company/company-profile-page",
238
- element: /* @__PURE__ */ c(re, {})
246
+ element: /* @__PURE__ */ c(ae, {})
239
247
  }),
240
- ae.map(([e, t]) => /* @__PURE__ */ c(o, {
248
+ se.map(([e, t]) => /* @__PURE__ */ c(o, {
241
249
  path: e,
242
250
  element: /* @__PURE__ */ c(a, {
243
251
  to: t,
@@ -262,6 +270,6 @@ function se() {
262
270
  });
263
271
  }
264
272
  //#endregion
265
- export { se as CrewFoundryRoutes };
273
+ export { le as CrewFoundryRoutes };
266
274
 
267
275
  //# sourceMappingURL=CrewFoundryRoutes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CrewFoundryRoutes.js","names":[],"sources":["../../src/crewfoundry/CrewFoundryRoutes.tsx"],"sourcesContent":["import { lazy, Suspense } from 'react';\nimport { Navigate, Route, Routes } from 'react-router';\nimport { Loader2 } from 'lucide-react';\nimport { AdminAdminPagePage as IndexPage } from './pages/AdminAdminPagePage';\nimport { CONVERSATIONS_ROUTE } from './store/crewfoundryStore';\n\nconst AnalyticsAnalyticsPagePage = lazy(() =>\n import('./pages/AnalyticsAnalyticsPagePage').then((m) => ({\n default: m.AnalyticsAnalyticsPagePage,\n }))\n);\nconst AnalyticsEmployeeAnalyticsPagePage = lazy(() =>\n import('./pages/AnalyticsEmployeeAnalyticsPagePage').then((m) => ({\n default: m.AnalyticsEmployeeAnalyticsPagePage,\n }))\n);\nconst AnalyticsFinancialAnalyticsPagePage = lazy(() =>\n import('./pages/AnalyticsFinancialAnalyticsPagePage').then((m) => ({\n default: m.AnalyticsFinancialAnalyticsPagePage,\n }))\n);\nconst AnalyticsHiringAnalyticsPagePage = lazy(() =>\n import('./pages/AnalyticsHiringAnalyticsPagePage').then((m) => ({\n default: m.AnalyticsHiringAnalyticsPagePage,\n }))\n);\nconst CommunicationsAnnouncementsPagePage = lazy(() =>\n import('./pages/CommunicationsAnnouncementsPagePage').then((m) => ({\n default: m.CommunicationsAnnouncementsPagePage,\n }))\n);\nconst CommunicationsDirectoryPagePage = lazy(() =>\n import('./pages/CommunicationsDirectoryPagePage').then((m) => ({\n default: m.CommunicationsDirectoryPagePage,\n }))\n);\nconst CommunicationsFilesPagePage = lazy(() =>\n import('./pages/CommunicationsFilesPagePage').then((m) => ({\n default: m.CommunicationsFilesPagePage,\n }))\n);\nconst CommunicationsTeamsPagePage = lazy(() =>\n import('./pages/CommunicationsTeamsPagePage').then((m) => ({\n default: m.CommunicationsTeamsPagePage,\n }))\n);\nconst CompanyClientManagementPagePage = lazy(() =>\n import('./pages/CompanyClientManagementPagePage').then((m) => ({\n default: m.CompanyClientManagementPagePage,\n }))\n);\nconst CompanyCompanyDashboardPagePage = lazy(() =>\n import('./pages/CompanyCompanyDashboardPagePage').then((m) => ({\n default: m.CompanyCompanyDashboardPagePage,\n }))\n);\nconst CompanyVendorManagementPagePage = lazy(() =>\n import('./pages/CompanyVendorManagementPagePage').then((m) => ({\n default: m.CompanyVendorManagementPagePage,\n }))\n);\nconst DashboardAnalyticsPagePage = lazy(() =>\n import('./pages/DashboardAnalyticsPagePage').then((m) => ({\n default: m.DashboardAnalyticsPagePage,\n }))\n);\nconst DashboardDashboardPagePage = lazy(() =>\n import('./pages/DashboardDashboardPagePage').then((m) => ({\n default: m.DashboardDashboardPagePage,\n }))\n);\nconst DashboardEnhancedDashboardPagePage = lazy(() =>\n import('./pages/DashboardEnhancedDashboardPagePage').then((m) => ({\n default: m.DashboardEnhancedDashboardPagePage,\n }))\n);\nconst DashboardExecutiveDashboardPage = lazy(() =>\n import('./pages/DashboardExecutiveDashboardPage').then((m) => ({\n default: m.DashboardExecutiveDashboardPage,\n }))\n);\nconst HiringApplicationsPagePage = lazy(() =>\n import('./pages/HiringApplicationsPagePage').then((m) => ({\n default: m.HiringApplicationsPagePage,\n }))\n);\nconst HiringCandidatesPagePage = lazy(() =>\n import('./pages/HiringCandidatesPagePage').then((m) => ({ default: m.HiringCandidatesPagePage }))\n);\nconst HiringCreateJobPagePage = lazy(() =>\n import('./pages/HiringCreateJobPagePage').then((m) => ({ default: m.HiringCreateJobPagePage }))\n);\nconst HiringInterviewsPagePage = lazy(() =>\n import('./pages/HiringInterviewsPagePage').then((m) => ({ default: m.HiringInterviewsPagePage }))\n);\nconst HiringOnboardingPagePage = lazy(() =>\n import('./pages/HiringOnboardingPagePage').then((m) => ({ default: m.HiringOnboardingPagePage }))\n);\nconst HiringJobDetailsPagePage = lazy(() =>\n import('./pages/HiringJobDetailsPagePage').then((m) => ({ default: m.HiringJobDetailsPagePage }))\n);\nconst HiringJobsPagePage = lazy(() =>\n import('./pages/HiringJobsPagePage').then((m) => ({ default: m.HiringJobsPagePage }))\n);\nconst HrDepartmentsPagePage = lazy(() =>\n import('./pages/HrDepartmentsPagePage').then((m) => ({ default: m.HrDepartmentsPagePage }))\n);\nconst HrEmployeesPagePage = lazy(() =>\n import('./pages/HrEmployeesPagePage').then((m) => ({ default: m.HrEmployeesPagePage }))\n);\nconst HrEmployeeProfilePagePage = lazy(() =>\n import('./pages/HrEmployeeProfilePagePage').then((m) => ({\n default: m.HrEmployeeProfilePagePage,\n }))\n);\nconst HrLeaveManagementPagePage = lazy(() =>\n import('./pages/HrLeaveManagementPagePage').then((m) => ({\n default: m.HrLeaveManagementPagePage,\n }))\n);\nconst HrPayrollPagePage = lazy(() =>\n import('./pages/HrPayrollPagePage').then((m) => ({ default: m.HrPayrollPagePage }))\n);\nconst HrTimeTrackingPagePage = lazy(() =>\n import('./pages/HrTimeTrackingPagePage').then((m) => ({ default: m.HrTimeTrackingPagePage }))\n);\nconst LearningCourseDetailsPagePage = lazy(() =>\n import('./pages/LearningCourseDetailsPagePage').then((m) => ({\n default: m.LearningCourseDetailsPagePage,\n }))\n);\nconst LearningCoursesPagePage = lazy(() =>\n import('./pages/LearningCoursesPagePage').then((m) => ({ default: m.LearningCoursesPagePage }))\n);\nconst LearningLearningAnalyticsPagePage = lazy(() =>\n import('./pages/LearningLearningAnalyticsPagePage').then((m) => ({\n default: m.LearningLearningAnalyticsPagePage,\n }))\n);\nconst MarketplaceBookingManagementPagePage = lazy(() =>\n import('./pages/MarketplaceBookingManagementPagePage').then((m) => ({\n default: m.MarketplaceBookingManagementPagePage,\n }))\n);\nconst LearningEnrollmentsPagePage = lazy(() =>\n import('./pages/LearningEnrollmentsPagePage').then((m) => ({\n default: m.LearningEnrollmentsPagePage,\n }))\n);\nconst MarketplaceEscrowPagePage = lazy(() =>\n import('./pages/MarketplaceEscrowPagePage').then((m) => ({\n default: m.MarketplaceEscrowPagePage,\n }))\n);\nconst MarketplaceMarketplacePagePage = lazy(() =>\n import('./pages/MarketplaceMarketplacePagePage').then((m) => ({\n default: m.MarketplaceMarketplacePagePage,\n }))\n);\nconst MarketplaceMyServicesPagePage = lazy(() =>\n import('./pages/MarketplaceMyServicesPagePage').then((m) => ({\n default: m.MarketplaceMyServicesPagePage,\n }))\n);\nconst MarketplaceServiceDetailsPagePage = lazy(() =>\n import('./pages/MarketplaceServiceDetailsPagePage').then((m) => ({\n default: m.MarketplaceServiceDetailsPagePage,\n }))\n);\nconst ProjectsCreateProjectPagePage = lazy(() =>\n import('./pages/ProjectsCreateProjectPagePage').then((m) => ({\n default: m.ProjectsCreateProjectPagePage,\n }))\n);\nconst ProjectsProjectDetailsPagePage = lazy(() =>\n import('./pages/ProjectsProjectDetailsPagePage').then((m) => ({\n default: m.ProjectsProjectDetailsPagePage,\n }))\n);\nconst ProjectsProjectsPagePage = lazy(() =>\n import('./pages/ProjectsProjectsPagePage').then((m) => ({ default: m.ProjectsProjectsPagePage }))\n);\nconst HrSkillsTaxonomyPagePage = lazy(() =>\n import('./pages/HrSkillsTaxonomyPagePage').then((m) => ({\n default: m.HrSkillsTaxonomyPagePage,\n }))\n);\nconst ProjectsResourcingPagePage = lazy(() =>\n import('./pages/ProjectsResourcingPagePage').then((m) => ({\n default: m.ProjectsResourcingPagePage,\n }))\n);\nconst TeamsTeamAnalyticsPagePage = lazy(() =>\n import('./pages/TeamsTeamAnalyticsPagePage').then((m) => ({\n default: m.TeamsTeamAnalyticsPagePage,\n }))\n);\nconst TeamsTeamDetailPagePage = lazy(() =>\n import('./pages/TeamsTeamDetailPagePage').then((m) => ({ default: m.TeamsTeamDetailPagePage }))\n);\nconst TeamsTeamDirectoryPagePage = lazy(() =>\n import('./pages/TeamsTeamDirectoryPagePage').then((m) => ({\n default: m.TeamsTeamDirectoryPagePage,\n }))\n);\nconst TeamsTeamsPagePage = lazy(() =>\n import('./pages/TeamsTeamsPagePage').then((m) => ({ default: m.TeamsTeamsPagePage }))\n);\nconst HelpApiDocumentationPagePage = lazy(() =>\n import('./pages/HelpApiDocumentationPagePage').then((m) => ({\n default: m.HelpApiDocumentationPagePage,\n }))\n);\nconst CompanyCompanyProfilePagePage = lazy(() =>\n import('./pages/CompanyCompanyProfilePagePage').then((m) => ({\n default: m.CompanyCompanyProfilePagePage,\n }))\n);\nconst TeamsTeamSettingsPagePage = lazy(() =>\n import('./pages/TeamsTeamSettingsPagePage').then((m) => ({\n default: m.TeamsTeamSettingsPagePage,\n }))\n);\n\n/**\n * Routes retired by BOFF-3401: pages that rendered mock data or features no\n * CrewFoundry backend serves. Old bookmarks land on the closest real page.\n * Targets are route-relative, like every in-module `navigate('../<section>/<page>')`.\n */\nconst LEGACY_REDIRECTS: Array<[string, string]> = [\n ['learning/learning-page', '../learning/courses-page'],\n ['learning/learning-paths-page', '../learning/courses-page'],\n ['learning/learning-path-detail-page', '../learning/courses-page'],\n ['learning/assessments-page', '../learning/courses-page'],\n ['learning/certificates-page', '../learning/enrollments-page'],\n ['learning/course-learning-page', '../learning/courses-page'],\n ['learning/my-learning-page', '../learning/enrollments-page'],\n ['marketplace/marketplace-services-page', '../marketplace/marketplace-page'],\n ['marketplace/freelancer-profile-page', '../marketplace/marketplace-page'],\n ['marketplace/freelancer-profile-page-enhanced', '../marketplace/marketplace-page'],\n ['marketplace/project-details-page', '../marketplace/booking-management-page'],\n ['marketplace/earnings-page', '../marketplace/booking-management-page'],\n ['marketplace/messaging-page', '../marketplace/booking-management-page'],\n ['payments/escrow-page', '../marketplace/escrow-page'],\n ['payments/payment-dashboard-page', '../hr/payroll-page'],\n ['payments/invoices-page', '../hr/payroll-page'],\n ['payments/payment-methods-page', '../hr/payroll-page'],\n ['payments/security-page', '../hr/payroll-page'],\n ['communications/calls-page', '../communications/announcements-page'],\n ['communications/video-calls-page', '../communications/announcements-page'],\n];\n\nfunction PageLoader() {\n return (\n <div className=\"flex min-h-[320px] items-center justify-center\">\n <Loader2 className=\"h-8 w-8 animate-spin text-primary\" />\n </div>\n );\n}\n\nexport function CrewFoundryRoutes() {\n return (\n <Suspense fallback={<PageLoader />}>\n <Routes>\n <Route index element={<IndexPage />} />\n <Route path=\"analytics/analytics-page\" element={<AnalyticsAnalyticsPagePage />} />\n <Route\n path=\"analytics/employee-analytics-page\"\n element={<AnalyticsEmployeeAnalyticsPagePage />}\n />\n <Route\n path=\"analytics/financial-analytics-page\"\n element={<AnalyticsFinancialAnalyticsPagePage />}\n />\n <Route\n path=\"analytics/hiring-analytics-page\"\n element={<AnalyticsHiringAnalyticsPagePage />}\n />\n <Route\n path=\"communications/announcements-page\"\n element={<CommunicationsAnnouncementsPagePage />}\n />\n <Route path=\"communications/directory-page\" element={<CommunicationsDirectoryPagePage />} />\n <Route path=\"communications/files-page\" element={<CommunicationsFilesPagePage />} />\n <Route path=\"communications/teams-page\" element={<CommunicationsTeamsPagePage />} />\n <Route\n path=\"company/client-management-page\"\n element={<CompanyClientManagementPagePage />}\n />\n <Route\n path=\"company/company-dashboard-page\"\n element={<CompanyCompanyDashboardPagePage />}\n />\n <Route\n path=\"company/vendor-management-page\"\n element={<CompanyVendorManagementPagePage />}\n />\n <Route path=\"dashboard/analytics-page\" element={<DashboardAnalyticsPagePage />} />\n <Route path=\"dashboard/dashboard-page\" element={<DashboardDashboardPagePage />} />\n <Route\n path=\"dashboard/enhanced-dashboard-page\"\n element={<DashboardEnhancedDashboardPagePage />}\n />\n <Route path=\"dashboard/executive-dashboard\" element={<DashboardExecutiveDashboardPage />} />\n <Route path=\"hiring/applications-page\" element={<HiringApplicationsPagePage />} />\n <Route path=\"hiring/candidates-page\" element={<HiringCandidatesPagePage />} />\n <Route path=\"hiring/create-job-page\" element={<HiringCreateJobPagePage />} />\n <Route path=\"hiring/interviews-page\" element={<HiringInterviewsPagePage />} />\n <Route path=\"hiring/onboarding-page\" element={<HiringOnboardingPagePage />} />\n <Route path=\"hiring/job-details-page\" element={<HiringJobDetailsPagePage />} />\n <Route path=\"hiring/jobs-page\" element={<HiringJobsPagePage />} />\n <Route path=\"hr/departments-page\" element={<HrDepartmentsPagePage />} />\n <Route path=\"hr/employees-page\" element={<HrEmployeesPagePage />} />\n <Route path=\"hr/employee-profile-page\" element={<HrEmployeeProfilePagePage />} />\n <Route path=\"hr/leave-management-page\" element={<HrLeaveManagementPagePage />} />\n <Route path=\"hr/payroll-page\" element={<HrPayrollPagePage />} />\n <Route path=\"hr/time-tracking-page\" element={<HrTimeTrackingPagePage />} />\n <Route path=\"hr/skills-taxonomy-page\" element={<HrSkillsTaxonomyPagePage />} />\n <Route path=\"learning/course-details-page\" element={<LearningCourseDetailsPagePage />} />\n <Route path=\"learning/courses-page\" element={<LearningCoursesPagePage />} />\n <Route path=\"learning/enrollments-page\" element={<LearningEnrollmentsPagePage />} />\n <Route\n path=\"learning/learning-analytics-page\"\n element={<LearningLearningAnalyticsPagePage />}\n />\n <Route\n path=\"marketplace/booking-management-page\"\n element={<MarketplaceBookingManagementPagePage />}\n />\n <Route path=\"marketplace/marketplace-page\" element={<MarketplaceMarketplacePagePage />} />\n <Route path=\"marketplace/escrow-page\" element={<MarketplaceEscrowPagePage />} />\n <Route path=\"marketplace/my-services-page\" element={<MarketplaceMyServicesPagePage />} />\n <Route\n path=\"marketplace/service-details-page\"\n element={<MarketplaceServiceDetailsPagePage />}\n />\n <Route path=\"projects/create-project-page\" element={<ProjectsCreateProjectPagePage />} />\n <Route path=\"projects/project-details-page\" element={<ProjectsProjectDetailsPagePage />} />\n <Route path=\"projects/projects-page\" element={<ProjectsProjectsPagePage />} />\n <Route path=\"projects/resourcing-page\" element={<ProjectsResourcingPagePage />} />\n <Route path=\"teams/team-analytics-page\" element={<TeamsTeamAnalyticsPagePage />} />\n <Route path=\"teams/team-detail-page\" element={<TeamsTeamDetailPagePage />} />\n <Route path=\"teams/team-directory-page\" element={<TeamsTeamDirectoryPagePage />} />\n <Route path=\"teams/teams-page\" element={<TeamsTeamsPagePage />} />\n <Route path=\"teams/team-settings-page\" element={<TeamsTeamSettingsPagePage />} />\n <Route path=\"help/api-documentation-page\" element={<HelpApiDocumentationPagePage />} />\n <Route path=\"company/company-profile-page\" element={<CompanyCompanyProfilePagePage />} />\n {LEGACY_REDIRECTS.map(([from, to]) => (\n <Route key={from} path={from} element={<Navigate to={to} replace />} />\n ))}\n {/* Conversations and calls are owned by the shell's shared Conversations app. */}\n <Route\n path=\"communications/messages-page\"\n element={<Navigate to={CONVERSATIONS_ROUTE} replace />}\n />\n <Route path=\"*\" element={<Navigate to=\"\" replace />} />\n </Routes>\n </Suspense>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CrewFoundryRoutes.js","names":[],"sources":["../../src/crewfoundry/CrewFoundryRoutes.tsx"],"sourcesContent":["import { lazy, Suspense } from 'react';\nimport { Navigate, Route, Routes } from 'react-router';\nimport { Loader2 } from 'lucide-react';\nimport { AdminAdminPagePage as IndexPage } from './pages/AdminAdminPagePage';\nimport { CONVERSATIONS_ROUTE } from './store/crewfoundryStore';\n\nconst AnalyticsAnalyticsPagePage = lazy(() =>\n import('./pages/AnalyticsAnalyticsPagePage').then((m) => ({\n default: m.AnalyticsAnalyticsPagePage,\n }))\n);\nconst AnalyticsEmployeeAnalyticsPagePage = lazy(() =>\n import('./pages/AnalyticsEmployeeAnalyticsPagePage').then((m) => ({\n default: m.AnalyticsEmployeeAnalyticsPagePage,\n }))\n);\nconst AnalyticsFinancialAnalyticsPagePage = lazy(() =>\n import('./pages/AnalyticsFinancialAnalyticsPagePage').then((m) => ({\n default: m.AnalyticsFinancialAnalyticsPagePage,\n }))\n);\nconst AnalyticsHiringAnalyticsPagePage = lazy(() =>\n import('./pages/AnalyticsHiringAnalyticsPagePage').then((m) => ({\n default: m.AnalyticsHiringAnalyticsPagePage,\n }))\n);\nconst CommunicationsAnnouncementsPagePage = lazy(() =>\n import('./pages/CommunicationsAnnouncementsPagePage').then((m) => ({\n default: m.CommunicationsAnnouncementsPagePage,\n }))\n);\nconst CommunicationsDirectoryPagePage = lazy(() =>\n import('./pages/CommunicationsDirectoryPagePage').then((m) => ({\n default: m.CommunicationsDirectoryPagePage,\n }))\n);\nconst CommunicationsFilesPagePage = lazy(() =>\n import('./pages/CommunicationsFilesPagePage').then((m) => ({\n default: m.CommunicationsFilesPagePage,\n }))\n);\nconst CommunicationsTeamsPagePage = lazy(() =>\n import('./pages/CommunicationsTeamsPagePage').then((m) => ({\n default: m.CommunicationsTeamsPagePage,\n }))\n);\nconst CompanyClientManagementPagePage = lazy(() =>\n import('./pages/CompanyClientManagementPagePage').then((m) => ({\n default: m.CompanyClientManagementPagePage,\n }))\n);\nconst CompanyCompanyDashboardPagePage = lazy(() =>\n import('./pages/CompanyCompanyDashboardPagePage').then((m) => ({\n default: m.CompanyCompanyDashboardPagePage,\n }))\n);\nconst CompanyVendorManagementPagePage = lazy(() =>\n import('./pages/CompanyVendorManagementPagePage').then((m) => ({\n default: m.CompanyVendorManagementPagePage,\n }))\n);\nconst DashboardAnalyticsPagePage = lazy(() =>\n import('./pages/DashboardAnalyticsPagePage').then((m) => ({\n default: m.DashboardAnalyticsPagePage,\n }))\n);\nconst DashboardDashboardPagePage = lazy(() =>\n import('./pages/DashboardDashboardPagePage').then((m) => ({\n default: m.DashboardDashboardPagePage,\n }))\n);\nconst DashboardEnhancedDashboardPagePage = lazy(() =>\n import('./pages/DashboardEnhancedDashboardPagePage').then((m) => ({\n default: m.DashboardEnhancedDashboardPagePage,\n }))\n);\nconst DashboardExecutiveDashboardPage = lazy(() =>\n import('./pages/DashboardExecutiveDashboardPage').then((m) => ({\n default: m.DashboardExecutiveDashboardPage,\n }))\n);\nconst HiringApplicationsPagePage = lazy(() =>\n import('./pages/HiringApplicationsPagePage').then((m) => ({\n default: m.HiringApplicationsPagePage,\n }))\n);\nconst HiringCandidatesPagePage = lazy(() =>\n import('./pages/HiringCandidatesPagePage').then((m) => ({ default: m.HiringCandidatesPagePage }))\n);\nconst HiringCreateJobPagePage = lazy(() =>\n import('./pages/HiringCreateJobPagePage').then((m) => ({ default: m.HiringCreateJobPagePage }))\n);\nconst HiringInterviewsPagePage = lazy(() =>\n import('./pages/HiringInterviewsPagePage').then((m) => ({ default: m.HiringInterviewsPagePage }))\n);\nconst HiringOnboardingPagePage = lazy(() =>\n import('./pages/HiringOnboardingPagePage').then((m) => ({ default: m.HiringOnboardingPagePage }))\n);\nconst HiringJobDetailsPagePage = lazy(() =>\n import('./pages/HiringJobDetailsPagePage').then((m) => ({ default: m.HiringJobDetailsPagePage }))\n);\nconst HiringJobsPagePage = lazy(() =>\n import('./pages/HiringJobsPagePage').then((m) => ({ default: m.HiringJobsPagePage }))\n);\nconst HrDepartmentsPagePage = lazy(() =>\n import('./pages/HrDepartmentsPagePage').then((m) => ({ default: m.HrDepartmentsPagePage }))\n);\nconst HrEmployeesPagePage = lazy(() =>\n import('./pages/HrEmployeesPagePage').then((m) => ({ default: m.HrEmployeesPagePage }))\n);\nconst HrEmployeeProfilePagePage = lazy(() =>\n import('./pages/HrEmployeeProfilePagePage').then((m) => ({\n default: m.HrEmployeeProfilePagePage,\n }))\n);\nconst HrLeaveManagementPagePage = lazy(() =>\n import('./pages/HrLeaveManagementPagePage').then((m) => ({\n default: m.HrLeaveManagementPagePage,\n }))\n);\nconst HrPayrollPagePage = lazy(() =>\n import('./pages/HrPayrollPagePage').then((m) => ({ default: m.HrPayrollPagePage }))\n);\nconst HrTimeTrackingPagePage = lazy(() =>\n import('./pages/HrTimeTrackingPagePage').then((m) => ({ default: m.HrTimeTrackingPagePage }))\n);\nconst LearningCourseDetailsPagePage = lazy(() =>\n import('./pages/LearningCourseDetailsPagePage').then((m) => ({\n default: m.LearningCourseDetailsPagePage,\n }))\n);\nconst LearningCoursesPagePage = lazy(() =>\n import('./pages/LearningCoursesPagePage').then((m) => ({ default: m.LearningCoursesPagePage }))\n);\nconst LearningLearningAnalyticsPagePage = lazy(() =>\n import('./pages/LearningLearningAnalyticsPagePage').then((m) => ({\n default: m.LearningLearningAnalyticsPagePage,\n }))\n);\nconst MarketplaceBookingManagementPagePage = lazy(() =>\n import('./pages/MarketplaceBookingManagementPagePage').then((m) => ({\n default: m.MarketplaceBookingManagementPagePage,\n }))\n);\nconst LearningEnrollmentsPagePage = lazy(() =>\n import('./pages/LearningEnrollmentsPagePage').then((m) => ({\n default: m.LearningEnrollmentsPagePage,\n }))\n);\nconst MarketplaceEscrowPagePage = lazy(() =>\n import('./pages/MarketplaceEscrowPagePage').then((m) => ({\n default: m.MarketplaceEscrowPagePage,\n }))\n);\nconst MarketplaceMarketplacePagePage = lazy(() =>\n import('./pages/MarketplaceMarketplacePagePage').then((m) => ({\n default: m.MarketplaceMarketplacePagePage,\n }))\n);\nconst MarketplaceMyServicesPagePage = lazy(() =>\n import('./pages/MarketplaceMyServicesPagePage').then((m) => ({\n default: m.MarketplaceMyServicesPagePage,\n }))\n);\nconst MarketplaceServiceDetailsPagePage = lazy(() =>\n import('./pages/MarketplaceServiceDetailsPagePage').then((m) => ({\n default: m.MarketplaceServiceDetailsPagePage,\n }))\n);\nconst ProjectsCreateProjectPagePage = lazy(() =>\n import('./pages/ProjectsCreateProjectPagePage').then((m) => ({\n default: m.ProjectsCreateProjectPagePage,\n }))\n);\nconst ProjectsProjectDetailsPagePage = lazy(() =>\n import('./pages/ProjectsProjectDetailsPagePage').then((m) => ({\n default: m.ProjectsProjectDetailsPagePage,\n }))\n);\nconst ProjectsProjectsPagePage = lazy(() =>\n import('./pages/ProjectsProjectsPagePage').then((m) => ({ default: m.ProjectsProjectsPagePage }))\n);\nconst HrSkillsTaxonomyPagePage = lazy(() =>\n import('./pages/HrSkillsTaxonomyPagePage').then((m) => ({\n default: m.HrSkillsTaxonomyPagePage,\n }))\n);\nconst FieldOperationsPagePage = lazy(() =>\n import('./pages/FieldOperationsPagePage').then((m) => ({\n default: m.FieldOperationsPagePage,\n }))\n);\nconst FieldMyWorkPagePage = lazy(() =>\n import('./pages/FieldMyWorkPagePage').then((m) => ({\n default: m.FieldMyWorkPagePage,\n }))\n);\nconst ProjectsResourcingPagePage = lazy(() =>\n import('./pages/ProjectsResourcingPagePage').then((m) => ({\n default: m.ProjectsResourcingPagePage,\n }))\n);\nconst TeamsTeamAnalyticsPagePage = lazy(() =>\n import('./pages/TeamsTeamAnalyticsPagePage').then((m) => ({\n default: m.TeamsTeamAnalyticsPagePage,\n }))\n);\nconst TeamsTeamDetailPagePage = lazy(() =>\n import('./pages/TeamsTeamDetailPagePage').then((m) => ({ default: m.TeamsTeamDetailPagePage }))\n);\nconst TeamsTeamDirectoryPagePage = lazy(() =>\n import('./pages/TeamsTeamDirectoryPagePage').then((m) => ({\n default: m.TeamsTeamDirectoryPagePage,\n }))\n);\nconst TeamsTeamsPagePage = lazy(() =>\n import('./pages/TeamsTeamsPagePage').then((m) => ({ default: m.TeamsTeamsPagePage }))\n);\nconst HelpApiDocumentationPagePage = lazy(() =>\n import('./pages/HelpApiDocumentationPagePage').then((m) => ({\n default: m.HelpApiDocumentationPagePage,\n }))\n);\nconst CompanyCompanyProfilePagePage = lazy(() =>\n import('./pages/CompanyCompanyProfilePagePage').then((m) => ({\n default: m.CompanyCompanyProfilePagePage,\n }))\n);\nconst TeamsTeamSettingsPagePage = lazy(() =>\n import('./pages/TeamsTeamSettingsPagePage').then((m) => ({\n default: m.TeamsTeamSettingsPagePage,\n }))\n);\n\n/**\n * Routes retired by BOFF-3401: pages that rendered mock data or features no\n * CrewFoundry backend serves. Old bookmarks land on the closest real page.\n * Targets are route-relative, like every in-module `navigate('../<section>/<page>')`.\n */\nconst LEGACY_REDIRECTS: Array<[string, string]> = [\n ['learning/learning-page', '../learning/courses-page'],\n ['learning/learning-paths-page', '../learning/courses-page'],\n ['learning/learning-path-detail-page', '../learning/courses-page'],\n ['learning/assessments-page', '../learning/courses-page'],\n ['learning/certificates-page', '../learning/enrollments-page'],\n ['learning/course-learning-page', '../learning/courses-page'],\n ['learning/my-learning-page', '../learning/enrollments-page'],\n ['marketplace/marketplace-services-page', '../marketplace/marketplace-page'],\n ['marketplace/freelancer-profile-page', '../marketplace/marketplace-page'],\n ['marketplace/freelancer-profile-page-enhanced', '../marketplace/marketplace-page'],\n ['marketplace/project-details-page', '../marketplace/booking-management-page'],\n ['marketplace/earnings-page', '../marketplace/booking-management-page'],\n ['marketplace/messaging-page', '../marketplace/booking-management-page'],\n ['payments/escrow-page', '../marketplace/escrow-page'],\n ['payments/payment-dashboard-page', '../hr/payroll-page'],\n ['payments/invoices-page', '../hr/payroll-page'],\n ['payments/payment-methods-page', '../hr/payroll-page'],\n ['payments/security-page', '../hr/payroll-page'],\n ['communications/calls-page', '../communications/announcements-page'],\n ['communications/video-calls-page', '../communications/announcements-page'],\n];\n\nfunction PageLoader() {\n return (\n <div className=\"flex min-h-[320px] items-center justify-center\">\n <Loader2 className=\"h-8 w-8 animate-spin text-primary\" />\n </div>\n );\n}\n\nexport function CrewFoundryRoutes() {\n return (\n <Suspense fallback={<PageLoader />}>\n <Routes>\n <Route index element={<IndexPage />} />\n <Route path=\"analytics/analytics-page\" element={<AnalyticsAnalyticsPagePage />} />\n <Route\n path=\"analytics/employee-analytics-page\"\n element={<AnalyticsEmployeeAnalyticsPagePage />}\n />\n <Route\n path=\"analytics/financial-analytics-page\"\n element={<AnalyticsFinancialAnalyticsPagePage />}\n />\n <Route\n path=\"analytics/hiring-analytics-page\"\n element={<AnalyticsHiringAnalyticsPagePage />}\n />\n <Route\n path=\"communications/announcements-page\"\n element={<CommunicationsAnnouncementsPagePage />}\n />\n <Route path=\"communications/directory-page\" element={<CommunicationsDirectoryPagePage />} />\n <Route path=\"communications/files-page\" element={<CommunicationsFilesPagePage />} />\n <Route path=\"communications/teams-page\" element={<CommunicationsTeamsPagePage />} />\n <Route\n path=\"company/client-management-page\"\n element={<CompanyClientManagementPagePage />}\n />\n <Route\n path=\"company/company-dashboard-page\"\n element={<CompanyCompanyDashboardPagePage />}\n />\n <Route\n path=\"company/vendor-management-page\"\n element={<CompanyVendorManagementPagePage />}\n />\n <Route path=\"dashboard/analytics-page\" element={<DashboardAnalyticsPagePage />} />\n <Route path=\"dashboard/dashboard-page\" element={<DashboardDashboardPagePage />} />\n <Route\n path=\"dashboard/enhanced-dashboard-page\"\n element={<DashboardEnhancedDashboardPagePage />}\n />\n <Route path=\"dashboard/executive-dashboard\" element={<DashboardExecutiveDashboardPage />} />\n <Route path=\"hiring/applications-page\" element={<HiringApplicationsPagePage />} />\n <Route path=\"hiring/candidates-page\" element={<HiringCandidatesPagePage />} />\n <Route path=\"hiring/create-job-page\" element={<HiringCreateJobPagePage />} />\n <Route path=\"hiring/interviews-page\" element={<HiringInterviewsPagePage />} />\n <Route path=\"hiring/onboarding-page\" element={<HiringOnboardingPagePage />} />\n <Route path=\"hiring/job-details-page\" element={<HiringJobDetailsPagePage />} />\n <Route path=\"hiring/jobs-page\" element={<HiringJobsPagePage />} />\n <Route path=\"hr/departments-page\" element={<HrDepartmentsPagePage />} />\n <Route path=\"hr/employees-page\" element={<HrEmployeesPagePage />} />\n <Route path=\"hr/employee-profile-page\" element={<HrEmployeeProfilePagePage />} />\n <Route path=\"hr/leave-management-page\" element={<HrLeaveManagementPagePage />} />\n <Route path=\"hr/payroll-page\" element={<HrPayrollPagePage />} />\n <Route path=\"hr/time-tracking-page\" element={<HrTimeTrackingPagePage />} />\n <Route path=\"hr/skills-taxonomy-page\" element={<HrSkillsTaxonomyPagePage />} />\n <Route path=\"field/operations-page\" element={<FieldOperationsPagePage />} />\n <Route path=\"field/my-work-page\" element={<FieldMyWorkPagePage />} />\n <Route path=\"learning/course-details-page\" element={<LearningCourseDetailsPagePage />} />\n <Route path=\"learning/courses-page\" element={<LearningCoursesPagePage />} />\n <Route path=\"learning/enrollments-page\" element={<LearningEnrollmentsPagePage />} />\n <Route\n path=\"learning/learning-analytics-page\"\n element={<LearningLearningAnalyticsPagePage />}\n />\n <Route\n path=\"marketplace/booking-management-page\"\n element={<MarketplaceBookingManagementPagePage />}\n />\n <Route path=\"marketplace/marketplace-page\" element={<MarketplaceMarketplacePagePage />} />\n <Route path=\"marketplace/escrow-page\" element={<MarketplaceEscrowPagePage />} />\n <Route path=\"marketplace/my-services-page\" element={<MarketplaceMyServicesPagePage />} />\n <Route\n path=\"marketplace/service-details-page\"\n element={<MarketplaceServiceDetailsPagePage />}\n />\n <Route path=\"projects/create-project-page\" element={<ProjectsCreateProjectPagePage />} />\n <Route path=\"projects/project-details-page\" element={<ProjectsProjectDetailsPagePage />} />\n <Route path=\"projects/projects-page\" element={<ProjectsProjectsPagePage />} />\n <Route path=\"projects/resourcing-page\" element={<ProjectsResourcingPagePage />} />\n <Route path=\"teams/team-analytics-page\" element={<TeamsTeamAnalyticsPagePage />} />\n <Route path=\"teams/team-detail-page\" element={<TeamsTeamDetailPagePage />} />\n <Route path=\"teams/team-directory-page\" element={<TeamsTeamDirectoryPagePage />} />\n <Route path=\"teams/teams-page\" element={<TeamsTeamsPagePage />} />\n <Route path=\"teams/team-settings-page\" element={<TeamsTeamSettingsPagePage />} />\n <Route path=\"help/api-documentation-page\" element={<HelpApiDocumentationPagePage />} />\n <Route path=\"company/company-profile-page\" element={<CompanyCompanyProfilePagePage />} />\n {LEGACY_REDIRECTS.map(([from, to]) => (\n <Route key={from} path={from} element={<Navigate to={to} replace />} />\n ))}\n {/* Conversations and calls are owned by the shell's shared Conversations app. */}\n <Route\n path=\"communications/messages-page\"\n element={<Navigate to={CONVERSATIONS_ROUTE} replace />}\n />\n <Route path=\"*\" element={<Navigate to=\"\" replace />} />\n </Routes>\n </Suspense>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { CrewDispatch, DispatchStatus } from '../../lib/fieldOps';
2
+
3
+ interface DispatchBoardCardProps {
4
+ dispatches: CrewDispatch[];
5
+ canAssign: boolean;
6
+ onAssign: (dispatch: CrewDispatch) => void;
7
+ onTransition: (dispatch: CrewDispatch, next: DispatchStatus) => void;
8
+ onRemove: (dispatch: CrewDispatch) => void;
9
+ }
10
+ /** Work-order board by status, plus the most recent closed work orders (BOFF-4205). */
11
+ export declare function DispatchBoardCard({ dispatches, ...actions }: DispatchBoardCardProps): import("react").JSX.Element;
12
+ export {};
13
+ //# sourceMappingURL=DispatchBoardCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DispatchBoardCard.d.ts","sourceRoot":"","sources":["../../../../src/crewfoundry/components/field/DispatchBoardCard.tsx"],"names":[],"mappings":"AASA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,cAAc,EAGpB,MAAM,oBAAoB,CAAC;AAS5B,UAAU,sBAAsB;IAC9B,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3C,YAAY,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACrE,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;CAC5C;AAwDD,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,EAAE,sBAAsB,+BAiDnF"}
@@ -0,0 +1,124 @@
1
+ import { formatEnumLabel as e } from "../../utils/formatEnumLabel.js";
2
+ import { DispatchPriorityBadge as t, DispatchStatusBadge as n } from "./FieldBadges.js";
3
+ import { MANAGER_NEXT_STATUS as r, STATUS_ACTION_LABEL as i } from "../../lib/fieldOps.js";
4
+ import { formatWhen as a } from "./fieldFormat.js";
5
+ import { Trash2 as o, UserCheck as s } from "lucide-react";
6
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
7
+ import { Button as u, Card as d, CardContent as f, CardDescription as p, CardHeader as m, CardTitle as h } from "@burdenoff/fe-libs/ui";
8
+ //#region src/crewfoundry/components/field/DispatchBoardCard.tsx
9
+ var g = [
10
+ "OPEN",
11
+ "ASSIGNED",
12
+ "EN_ROUTE",
13
+ "ON_SITE"
14
+ ], _ = (e) => e.status === "COMPLETED" || e.status === "CANCELLED";
15
+ function v({ dispatch: e, canAssign: n, onAssign: d, onTransition: f, onRemove: p }) {
16
+ let m = e.status === "OPEN" || e.status === "ASSIGNED";
17
+ return /* @__PURE__ */ l("div", {
18
+ className: "space-y-2 rounded-[var(--radius-card)] border border-border-subtle bg-bg-surface p-3",
19
+ children: [
20
+ /* @__PURE__ */ l("div", {
21
+ className: "flex items-start justify-between gap-2",
22
+ children: [/* @__PURE__ */ c("p", {
23
+ className: "font-medium text-text-primary",
24
+ children: e.title
25
+ }), /* @__PURE__ */ c(t, { priority: e.priority })]
26
+ }),
27
+ /* @__PURE__ */ l("p", {
28
+ className: "text-xs text-text-muted",
29
+ children: [
30
+ e.employeeName ?? "Unassigned",
31
+ e.siteName ? ` · ${e.siteName}` : "",
32
+ e.dueAt ? ` · due ${a(e.dueAt)}` : ""
33
+ ]
34
+ }),
35
+ /* @__PURE__ */ l("div", {
36
+ className: "flex flex-wrap gap-1.5",
37
+ children: [
38
+ m ? /* @__PURE__ */ l(u, {
39
+ size: "sm",
40
+ variant: "outline",
41
+ disabled: !n,
42
+ onClick: () => d(e),
43
+ children: [/* @__PURE__ */ c(s, { className: "mr-1 h-3.5 w-3.5" }), e.status === "OPEN" ? "Assign" : "Reassign"]
44
+ }) : null,
45
+ r[e.status].map((t) => /* @__PURE__ */ c(u, {
46
+ size: "sm",
47
+ variant: t === "CANCELLED" ? "ghost" : "outline",
48
+ onClick: () => f(e, t),
49
+ children: i[t]
50
+ }, t)),
51
+ /* @__PURE__ */ c(u, {
52
+ size: "sm",
53
+ variant: "ghost",
54
+ "aria-label": `Remove ${e.title}`,
55
+ onClick: () => p(e),
56
+ children: /* @__PURE__ */ c(o, { className: "h-3.5 w-3.5 text-status-error-fg" })
57
+ })
58
+ ]
59
+ })
60
+ ]
61
+ });
62
+ }
63
+ function y({ dispatches: t, ...r }) {
64
+ let i = t.filter(_);
65
+ return /* @__PURE__ */ l(d, {
66
+ "data-testid": "field-dispatch-board",
67
+ children: [/* @__PURE__ */ l(m, { children: [/* @__PURE__ */ c(h, {
68
+ className: "text-base",
69
+ children: "Work orders"
70
+ }), /* @__PURE__ */ l(p, { children: [
71
+ t.filter((e) => e.status === "COMPLETED").length,
72
+ " completed ·",
73
+ " ",
74
+ t.length - i.length,
75
+ " in flight"
76
+ ] })] }), /* @__PURE__ */ l(f, { children: [/* @__PURE__ */ c("div", {
77
+ className: "grid gap-3 md:grid-cols-2 xl:grid-cols-4",
78
+ children: g.map((n) => {
79
+ let i = t.filter((e) => e.status === n);
80
+ return /* @__PURE__ */ l("section", {
81
+ "aria-label": e(n),
82
+ className: "space-y-2",
83
+ children: [/* @__PURE__ */ l("h2", {
84
+ className: "text-sm font-medium text-text-secondary",
85
+ children: [
86
+ e(n),
87
+ " (",
88
+ i.length,
89
+ ")"
90
+ ]
91
+ }), i.map((e) => /* @__PURE__ */ c(v, {
92
+ dispatch: e,
93
+ ...r
94
+ }, e.id))]
95
+ }, n);
96
+ })
97
+ }), i.length > 0 ? /* @__PURE__ */ l("div", {
98
+ className: "mt-4 space-y-1",
99
+ children: [/* @__PURE__ */ c("h2", {
100
+ className: "text-sm font-medium text-text-secondary",
101
+ children: "Closed"
102
+ }), /* @__PURE__ */ c("ul", {
103
+ className: "space-y-1",
104
+ children: i.slice(0, 10).map((e) => /* @__PURE__ */ l("li", {
105
+ className: "flex flex-wrap items-center gap-2 text-sm text-text-secondary",
106
+ children: [
107
+ /* @__PURE__ */ c(n, { status: e.status }),
108
+ /* @__PURE__ */ c("span", {
109
+ className: "text-text-primary",
110
+ children: e.title
111
+ }),
112
+ /* @__PURE__ */ c("span", { children: e.employeeName ?? "" }),
113
+ /* @__PURE__ */ c("span", { children: a(e.completedAt ?? e.createdAt) }),
114
+ e.completionNotes ? /* @__PURE__ */ l("span", { children: ["· ", e.completionNotes] }) : null
115
+ ]
116
+ }, e.id))
117
+ })]
118
+ }) : null] })]
119
+ });
120
+ }
121
+ //#endregion
122
+ export { y as DispatchBoardCard };
123
+
124
+ //# sourceMappingURL=DispatchBoardCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DispatchBoardCard.js","names":[],"sources":["../../../../src/crewfoundry/components/field/DispatchBoardCard.tsx"],"sourcesContent":["import {\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from '@burdenoff/fe-libs/ui';\nimport { Trash2, UserCheck } from 'lucide-react';\nimport {\n type CrewDispatch,\n type DispatchStatus,\n MANAGER_NEXT_STATUS,\n STATUS_ACTION_LABEL,\n} from '../../lib/fieldOps';\nimport { formatEnumLabel } from '../../utils/formatEnumLabel';\nimport { DispatchPriorityBadge, DispatchStatusBadge } from './FieldBadges';\nimport { formatWhen } from './fieldFormat';\n\nconst BOARD_COLUMNS: DispatchStatus[] = ['OPEN', 'ASSIGNED', 'EN_ROUTE', 'ON_SITE'];\nconst isClosed = (dispatch: CrewDispatch): boolean =>\n dispatch.status === 'COMPLETED' || dispatch.status === 'CANCELLED';\n\ninterface DispatchBoardCardProps {\n dispatches: CrewDispatch[];\n canAssign: boolean;\n onAssign: (dispatch: CrewDispatch) => void;\n onTransition: (dispatch: CrewDispatch, next: DispatchStatus) => void;\n onRemove: (dispatch: CrewDispatch) => void;\n}\n\nfunction DispatchTile({\n dispatch,\n canAssign,\n onAssign,\n onTransition,\n onRemove,\n}: Omit<DispatchBoardCardProps, 'dispatches'> & { dispatch: CrewDispatch }) {\n const assignable = dispatch.status === 'OPEN' || dispatch.status === 'ASSIGNED';\n return (\n <div className=\"space-y-2 rounded-[var(--radius-card)] border border-border-subtle bg-bg-surface p-3\">\n <div className=\"flex items-start justify-between gap-2\">\n <p className=\"font-medium text-text-primary\">{dispatch.title}</p>\n <DispatchPriorityBadge priority={dispatch.priority} />\n </div>\n <p className=\"text-xs text-text-muted\">\n {dispatch.employeeName ?? 'Unassigned'}\n {dispatch.siteName ? ` · ${dispatch.siteName}` : ''}\n {dispatch.dueAt ? ` · due ${formatWhen(dispatch.dueAt)}` : ''}\n </p>\n <div className=\"flex flex-wrap gap-1.5\">\n {assignable ? (\n <Button\n size=\"sm\"\n variant=\"outline\"\n disabled={!canAssign}\n onClick={() => onAssign(dispatch)}\n >\n <UserCheck className=\"mr-1 h-3.5 w-3.5\" />\n {dispatch.status === 'OPEN' ? 'Assign' : 'Reassign'}\n </Button>\n ) : null}\n {MANAGER_NEXT_STATUS[dispatch.status].map((next) => (\n <Button\n key={next}\n size=\"sm\"\n variant={next === 'CANCELLED' ? 'ghost' : 'outline'}\n onClick={() => onTransition(dispatch, next)}\n >\n {STATUS_ACTION_LABEL[next]}\n </Button>\n ))}\n <Button\n size=\"sm\"\n variant=\"ghost\"\n aria-label={`Remove ${dispatch.title}`}\n onClick={() => onRemove(dispatch)}\n >\n <Trash2 className=\"h-3.5 w-3.5 text-status-error-fg\" />\n </Button>\n </div>\n </div>\n );\n}\n\n/** Work-order board by status, plus the most recent closed work orders (BOFF-4205). */\nexport function DispatchBoardCard({ dispatches, ...actions }: DispatchBoardCardProps) {\n const closed = dispatches.filter(isClosed);\n return (\n <Card data-testid=\"field-dispatch-board\">\n <CardHeader>\n <CardTitle className=\"text-base\">Work orders</CardTitle>\n <CardDescription>\n {dispatches.filter((dispatch) => dispatch.status === 'COMPLETED').length} completed ·{' '}\n {dispatches.length - closed.length} in flight\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"grid gap-3 md:grid-cols-2 xl:grid-cols-4\">\n {BOARD_COLUMNS.map((column) => {\n const items = dispatches.filter((dispatch) => dispatch.status === column);\n return (\n <section key={column} aria-label={formatEnumLabel(column)} className=\"space-y-2\">\n <h2 className=\"text-sm font-medium text-text-secondary\">\n {formatEnumLabel(column)} ({items.length})\n </h2>\n {items.map((dispatch) => (\n <DispatchTile key={dispatch.id} dispatch={dispatch} {...actions} />\n ))}\n </section>\n );\n })}\n </div>\n {closed.length > 0 ? (\n <div className=\"mt-4 space-y-1\">\n <h2 className=\"text-sm font-medium text-text-secondary\">Closed</h2>\n <ul className=\"space-y-1\">\n {closed.slice(0, 10).map((dispatch) => (\n <li\n key={dispatch.id}\n className=\"flex flex-wrap items-center gap-2 text-sm text-text-secondary\"\n >\n <DispatchStatusBadge status={dispatch.status} />\n <span className=\"text-text-primary\">{dispatch.title}</span>\n <span>{dispatch.employeeName ?? ''}</span>\n <span>{formatWhen(dispatch.completedAt ?? dispatch.createdAt)}</span>\n {dispatch.completionNotes ? <span>· {dispatch.completionNotes}</span> : null}\n </li>\n ))}\n </ul>\n </div>\n ) : null}\n </CardContent>\n </Card>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { DispatchPriority, DispatchStatus, ShiftStatus } from '../../lib/fieldOps';
2
+
3
+ export declare function ShiftStatusBadge({ status }: {
4
+ status: ShiftStatus;
5
+ }): import("react").JSX.Element;
6
+ export declare function DispatchStatusBadge({ status }: {
7
+ status: DispatchStatus;
8
+ }): import("react").JSX.Element;
9
+ export declare function DispatchPriorityBadge({ priority }: {
10
+ priority: DispatchPriority;
11
+ }): import("react").JSX.Element;
12
+ //# sourceMappingURL=FieldBadges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldBadges.d.ts","sourceRoot":"","sources":["../../../../src/crewfoundry/components/field/FieldBadges.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA6BxF,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,+BAEnE;AAED,wBAAgB,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,+BAEzE;AAED,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,gBAAgB,CAAA;CAAE,+BAIjF"}