{"version":3,"file":"static/chunks/3384-1c043e174bb36492.js","mappings":"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","sources":["webpack://_N_E/./src/components/LoadingSpinner.tsx","webpack://_N_E/./src/components/icons/AccountOutlineIcon.tsx","webpack://_N_E/./src/components/icons/AddFlightIcon.tsx","webpack://_N_E/./src/components/icons/CheckmarkFilledIcon.tsx","webpack://_N_E/./src/components/icons/CloseIcon.tsx","webpack://_N_E/./src/components/icons/ErrorIcon.tsx","webpack://_N_E/./src/components/icons/MoonIcon.tsx","webpack://_N_E/./src/components/icons/SunIcon.tsx","webpack://_N_E/./src/components/icons/WarningOutlineIcon.tsx","webpack://_N_E/./src/components/layout/dashboard/hooks/usePermission.ts","webpack://_N_E/./src/components/layout/global/GlobalNavMenuItems.tsx","webpack://_N_E/./src/resources/images/ace-logo-readonly.svg","webpack://_N_E/./src/components/layout/global/GlobalPageHeaderLogo.tsx","webpack://_N_E/./src/components/utils/clock/ClockTimestampFormatter.tsx","webpack://_N_E/./src/components/layout/global/GlobalPageHeader.tsx","webpack://_N_E/./src/resources/images/ace-lockscreen.png","webpack://_N_E/./src/components/layout/lock/LockScreen.tsx","webpack://_N_E/./src/components/utils/LockScreenProvider.tsx","webpack://_N_E/./src/components/layout/global/GlobalPageLayout.tsx","webpack://_N_E/./src/components/layout/global/hooks/useLockScreen.tsx","webpack://_N_E/./src/components/ui/CloseButton.tsx","webpack://_N_E/./src/components/ui/HamburgerNavMenu.tsx","webpack://_N_E/./src/components/ui/Snackbar.tsx","webpack://_N_E/./src/hooks/useTimeout.ts","webpack://_N_E/./src/components/utils/InactivityTimeoutProvider.tsx","webpack://_N_E/./src/components/utils/clock/ClockTimestampContext.ts","webpack://_N_E/./src/components/utils/clock/useClockTimestamp.ts","webpack://_N_E/./src/hooks/browser/useDocumentEvent.ts","webpack://_N_E/./src/hooks/browser/useDocumentEventOutside.ts","webpack://_N_E/./src/hooks/browser/usePointerDownOutside.ts","webpack://_N_E/./src/hooks/useNoSsr.ts","webpack://_N_E/./src/lib/dayjs.ts","webpack://_N_E/./src/lib/role.ts","webpack://_N_E/./src/lib/permissions.ts","webpack://_N_E/./src/lib/utils/unique.ts","webpack://_N_E/./src/resources/images/ace-logo-beta.svg","webpack://_N_E/./src/resources/images/ace-logo-nonprod.svg","webpack://_N_E/./src/resources/images/ace-logo-training.svg","webpack://_N_E/./src/resources/images/ace-logo.png"],"sourcesContent":["import { OverrideProps, cn } from '@/lib/utils'\n\nexport type LoadingSpinnerProps = OverrideProps<\n 'svg',\n {\n classNames?: {\n svg?: string\n circle?: string\n path?: string\n }\n }\n>\n\nexport function LoadingSpinner({ classNames, className, ...props }: LoadingSpinnerProps) {\n return (\n \n \n \n \n )\n}\n","import { SVGProps } from 'react'\n\nexport function AccountOutlineIcon(props: SVGProps) {\n return (\n \n \n \n )\n}\n","import { SVGProps } from 'react'\n\nexport function AddFlightIcon(props: SVGProps) {\n return (\n \n \n \n )\n}\n","import { SVGProps } from 'react'\nimport { v4 as uuid } from 'uuid'\n\nexport function CheckmarkFilledIcon(props: SVGProps) {\n const id = uuid()\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n","import { SVGProps } from 'react'\n\nexport function CloseIcon(props: SVGProps) {\n return (\n \n \n \n )\n}\n","import { SVGProps } from 'react'\n\nexport function ErrorIcon(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n","import { SVGProps } from 'react'\n\nexport function MoonIcon(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n )\n}\n","import { SVGProps } from 'react'\n\nexport function SunIcon(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","import { SVGProps } from 'react'\n\nexport function WarningOutlineIcon(props: SVGProps) {\n return (\n \n \n \n )\n}\n","'use client'\n\nimport { useUserProfile } from '@/components/utils/AzureActiveDirectoryProfileProvider'\nimport { useFeatureToggle } from '@/components/utils/FeatureToggleContext'\nimport { useServerEnvInfo } from '@/components/utils/ServerEnvironmentContext'\nimport { getPermissions, Permission } from '@/lib/permissions'\nimport { useParams } from 'next/navigation'\n\nexport function usePermissions(): Permission[] {\n const profile = useUserProfile()\n const departureStation = useParams()\n const override = useFeatureToggle('FT_PERMISSIONS_OVERRIDE')\n const { serverEnv } = useServerEnvInfo()\n\n if (!profile || !departureStation.departureStation) {\n return []\n }\n\n const atHomeCity = profile.city === departureStation.departureStation\n const allRoles = profile.roles\n return getPermissions(allRoles, atHomeCity, serverEnv, override)\n}\n\nexport function usePermissionValidation(permission: Permission): boolean {\n const permissions = usePermissions()\n const hasPermission = permissions.includes(permission)\n\n return hasPermission\n}\n","'use client'\n\nimport { AccountOutlineIcon } from '@/components/icons/AccountOutlineIcon'\nimport { AddFlightIcon } from '@/components/icons/AddFlightIcon'\nimport { MoonIcon } from '@/components/icons/MoonIcon'\nimport { SunIcon } from '@/components/icons/SunIcon'\nimport { HamburgerNavMenuItem } from '@/components/ui/HamburgerNavMenu'\nimport { useDarkMode } from '@/components/utils/DarkModeProvider'\nimport { cn } from '@/lib/utils'\nimport { usePathname } from 'next/navigation'\n\nexport function GlobalNavMenuItems() {\n const [darkmode, setDarkmode] = useDarkMode()\n const currentPath = usePathname()\n return (\n <>\n currentPath === '/flight-search' && window.location.reload()}\n href=\"/flight-search\"\n >\n \n

Work a New Flight

\n \n\n setDarkmode((prev) => !prev)}\n className={cn(\n 'flex w-full flex-row gap-3 rounded p-3 outline-2 -outline-offset-1 outline-[#0860C4] dark:outline-[#0D4A80]',\n 'hover:bg-[#ECF4FE] hover:outline dark:hover:bg-[#051E33]',\n 'focus:bg-[#ECF4FE] focus:outline dark:focus:bg-[#051E33]'\n )}\n >\n {darkmode ? : }\n

{darkmode ? 'Light' : 'Dark'} Mode

\n \n\n \n \n

Sign Out

\n
\n \n )\n}\n","export default {\"src\":\"https://ace-nginx-cdn.cloud.aa.com//_next/static/media/ace-logo-readonly.e01aa6c9.svg\",\"height\":56,\"width\":198,\"blurWidth\":0,\"blurHeight\":0};","'use client'\n\nimport { useFeatureToggle } from '@/components/utils/FeatureToggleContext'\nimport { Permission } from '@/lib/permissions'\nimport { usePermissionValidation } from '@/components/layout/dashboard/hooks/usePermission'\nimport AceLogoBeta from '@/resources/images/ace-logo-beta.svg'\nimport AceLogo from '@/resources/images/ace-logo.png'\nimport AceLogoNonprod from '@/resources/images/ace-logo-nonprod.svg'\nimport AceLogoReadonly from '@/resources/images/ace-logo-readonly.svg'\nimport AceLogoTraining from '@/resources/images/ace-logo-training.svg'\nimport Image from 'next/image'\n\nexport function GlobalPageHeaderLogo() {\n const isBeta = useFeatureToggle('BETA')\n const isNonprod = useFeatureToggle('NONPROD')\n const isTraining = useFeatureToggle('TRAINING')\n const hasRestrictedView = usePermissionValidation(Permission.VIEW_RESTRICTED)\n if (isTraining) {\n return (\n \"Training\n )\n }\n\n if (isBeta) {\n return \"Beta\n }\n\n if (isNonprod) {\n return (\n \"Nonprod\n )\n }\n\n if (hasRestrictedView) {\n return (\n \"Readonly\n )\n }\n\n return \"ACE\n}\n","'use client'\n\nimport { useClockTimestamp } from '@/components/utils/clock/useClockTimestamp'\nimport { useNoSsr } from '@/hooks/useNoSsr'\n\ntype ClockTimestampFormatterProps = {\n template: string\n timezone?: string\n className?: string\n}\n\nexport function ClockTimestampFormatter({\n template,\n timezone,\n className,\n}: ClockTimestampFormatterProps) {\n const timestamp = useClockTimestamp(timezone)\n return (\n \n )\n}\n","'use client'\n\nimport { GlobalPageHeaderLogo } from '@/components/layout/global/GlobalPageHeaderLogo'\nimport { HamburgerNavMenu } from '@/components/ui/HamburgerNavMenu'\nimport { useUserProfile } from '@/components/utils/AzureActiveDirectoryProfileProvider'\nimport { ClockTimestampFormatter } from '@/components/utils/clock/ClockTimestampFormatter'\nimport { cn } from '@/lib/utils'\nimport { ReactNode } from 'react'\n\nexport type GlobalPageHeaderProps = {\n navMenuItems?: ReactNode\n className?: string\n}\n\nexport function GlobalPageHeader({ navMenuItems, className }: GlobalPageHeaderProps) {\n const profile = useUserProfile()\n return (\n \n
\n \n {navMenuItems}\n \n
\n
\n \n
\n \n \n \n \n \n {profile?.id !== undefined && (\n

\n {profile.id}\n

\n )}\n \n \n )\n}\n","export default {\"src\":\"https://ace-nginx-cdn.cloud.aa.com//_next/static/media/ace-lockscreen.82498854.png\",\"height\":454,\"width\":490,\"blurDataURL\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAA6ElEQVR42g3NPUsCYQDA8f/jXVrQeeFrRIYRBCG09DJFRH4H12pvi/bm9iCa2xWHRmltCGnxumeKyLM8hOqeQu9Vf1/gJ2iN4nv5LKJyjrtqjdOyzvuvz+Pwn8D7I4UQYk0+cXCyy7knaTpjOo7H4ZJG+DVEo3F51anUKMQw0RKyG5vcHhdIKcV1u4vYbn0mZ6U5sss5DBFRH7zw5sJWKeam941ez8+zUjGxP34oZgTG+ip508fPhLh9C70/GHG0Z7Kf1mnaCkuF9KRkEkRI20GvKjexuoFIz/7iOKJx8YDdfgUWWNwxmALdbVqSiH7QbgAAAABJRU5ErkJggg==\",\"blurWidth\":8,\"blurHeight\":7};","'use client'\n\nimport { useEffect, useRef, useState } from 'react'\nimport { Snackbar } from '@/components/ui/Snackbar'\nimport { useRouter } from 'next/navigation'\nimport Image from 'next/image'\nimport { cn } from '@/lib/utils/cn'\nimport AceLockScreen from '@/resources/images/ace-lockscreen.png'\nimport { useUserProfile } from '@/components/utils/AzureActiveDirectoryProfileProvider'\nimport { useInactivityTimeoutSetTimeout } from '@/components/utils/InactivityTimeoutProvider'\nimport { useHotkeys } from 'react-hotkeys-hook'\n\nconst employeeIdRegex = /^\\d{6,8}$/\n\nexport type LockScreenProps = {\n onUnlock: () => unknown\n className?: string\n}\n\nexport function LockScreen({ onUnlock, className }: LockScreenProps) {\n const [inputValue, setInputValue] = useState('')\n const inputRef = useRef(null)\n const validInput = employeeIdRegex.test(inputValue)\n const [error, setError] = useState<{ message: string; secondaryMessage: string } | undefined>(\n undefined\n )\n const user = useUserProfile()\n const setInactivityTimeout = useInactivityTimeoutSetTimeout()\n const router = useRouter()\n\n useEffect(() => {\n setInactivityTimeout(1_800_000)\n }, [setInactivityTimeout])\n\n useEffect(() => {\n if (user === undefined) {\n setInactivityTimeout(null)\n onUnlock()\n router.push('/home')\n }\n }, [onUnlock, router, setInactivityTimeout, user])\n\n useHotkeys('*', () => inputRef.current?.focus())\n\n return (\n
\n
\n \n
\n

\n {user?.firstName !== undefined ? `Hi, ${user?.firstName}!` : 'Welcome to ACE!'}\n

\n

Enter User ID to unlock

\n {\n event.preventDefault()\n setError(undefined)\n if (inputValue !== user?.id) {\n setError({\n message: 'Invalid email/employee ID',\n secondaryMessage: 'Please try again',\n })\n } else {\n setInactivityTimeout(null)\n onUnlock()\n }\n }}\n className=\"space-y-4\"\n >\n
\n \n {\n setInputValue(event.target.value.toUpperCase())\n }}\n className=\"w-full rounded border border-[#637E9C] px-4 py-3\"\n />\n
\n \n Unlock\n \n {error !== undefined && (\n setError(undefined)}\n />\n )}\n \n
\n
\n
\n )\n}\n","'use client'\n\nimport { LockScreen } from '@/components/layout/lock/LockScreen'\nimport { ReactNode } from 'react'\nimport { useHotkeys } from 'react-hotkeys-hook'\nimport { useLockScreen } from '@/components/layout/global/hooks/useLockScreen'\n\nexport type LockScreenProviderProps = {\n children?: ReactNode\n className?: string\n}\n\nexport function LockScreenProvider({ children, className }: LockScreenProviderProps) {\n const [locked, setLocked] = useLockScreen(false)\n useHotkeys('ctrl+alt+l', () => setLocked(true))\n if (locked) {\n return (\n {\n setLocked(false)\n }}\n />\n )\n }\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children}\n}\n","'use client'\n\nimport { AccountOutlineIcon } from '@/components/icons/AccountOutlineIcon'\nimport { GlobalNavMenuItems } from '@/components/layout/global/GlobalNavMenuItems'\nimport { GlobalPageHeader } from '@/components/layout/global/GlobalPageHeader'\nimport { HamburgerNavMenuItem } from '@/components/ui/HamburgerNavMenu'\nimport { LockScreenProvider } from '@/components/utils/LockScreenProvider'\nimport { cn } from '@/lib/utils'\nimport { PropsWithChildren, ReactNode } from 'react'\nimport { useLockScreen } from '@/components/layout/global/hooks/useLockScreen'\n\nexport type GlobalPageLayoutProps = PropsWithChildren<{\n navMenuItems?: ReactNode\n className?: string\n classNames?: { header?: string; lockscreen?: string }\n}>\n\nexport function GlobalPageLayout({\n navMenuItems,\n className,\n children,\n classNames,\n}: GlobalPageLayoutProps) {\n const [locked, setLock] = useLockScreen()\n const navItems = locked ? (\n setLock(false)}>\n \n

Sign Out

\n
\n ) : (\n (navMenuItems ?? )\n )\n\n return (\n \n \n {children}\n \n )\n}\n","import { createLocalStorageHook } from '@/hooks/browser/createLocalStorageHook'\nimport { z } from 'zod'\n\nexport const useLockScreen = createLocalStorageHook('isLocked', z.boolean())\n","import { CloseIcon } from '@/components/icons/CloseIcon'\nimport { cn } from '@/lib/utils'\nimport { FocusEventHandler, ForwardedRef, MouseEventHandler, forwardRef } from 'react'\n\nexport type CloseButtonProps = {\n onClick?: MouseEventHandler\n onFocus?: FocusEventHandler\n onBlur?: FocusEventHandler\n autoFocus?: boolean\n className?: string\n}\n\nexport const CloseButton = forwardRef(\n (\n { onClick, onFocus, onBlur, autoFocus, className }: CloseButtonProps,\n ref: ForwardedRef\n ) => (\n \n \n \n )\n)\n","'use client'\n\nimport { CloseButton } from '@/components/ui/CloseButton'\nimport { env } from '@/config/client'\nimport { usePointerDownOutside } from '@/hooks/browser/usePointerDownOutside'\nimport { cn } from '@/lib/utils'\nimport Link from 'next/link'\nimport {\n Dispatch,\n PropsWithChildren,\n SetStateAction,\n createContext,\n useContext,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\ntype HamburgerNavMenuContextValue = {\n setOpened: Dispatch>\n}\n\nconst HamburgerNavMenuContext = createContext({\n setOpened: () => {},\n})\n\nexport type HamburgerNavMenuProps = PropsWithChildren<{\n classNames?: {\n container?: string\n popup?: string\n nav?: string\n }\n className?: string\n}>\n\nexport function HamburgerNavMenu({ classNames, className, children }: HamburgerNavMenuProps) {\n const containerRef = useRef(null)\n const toggleButtonRef = useRef(null)\n const closeButtonRef = useRef(null)\n const navRef = useRef(null)\n const [opened, setOpened] = useState(false)\n usePointerDownOutside(containerRef, () => setOpened(false))\n return (\n ({ setOpened }), [])}>\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n {\n if (event.key === 'Escape') {\n toggleButtonRef?.current?.focus()\n setOpened(false)\n }\n }}\n >\n setOpened((prev) => !prev)}\n className={cn('rounded-md border-2 border-transparent p-1')}\n >\n \n \n \n \n \n )\n}\n\nexport type HamburgerNavMenuItemProps = PropsWithChildren<{\n href: string\n className?: string\n onClick?: () => void\n}>\n\nexport function HamburgerNavMenuItem({\n href,\n onClick,\n className,\n children,\n}: HamburgerNavMenuItemProps) {\n const { setOpened } = useContext(HamburgerNavMenuContext)\n return (\n {\n onClick?.()\n setOpened(false)\n }}\n className={cn(\n 'flex flex-row gap-3 rounded p-3 outline-2 -outline-offset-1 outline-[#0860C4] dark:outline-[#0D4A80]',\n 'hover:bg-[#ECF4FE] hover:outline dark:hover:bg-[#051E33]',\n 'focus:bg-[#ECF4FE] focus:outline dark:focus:bg-[#051E33]',\n className\n )}\n >\n {children}\n \n )\n}\n\nexport type HamburgerNavMenuButtonProps = PropsWithChildren<{\n onClick: () => void\n className?: string\n}>\n\nexport function HamburgerNavMenuButton({\n onClick,\n className,\n children,\n}: HamburgerNavMenuButtonProps) {\n const { setOpened } = useContext(HamburgerNavMenuContext)\n return (\n {\n onClick?.()\n setOpened(false)\n }}\n className={cn(\n 'flex flex-row gap-3 rounded p-3 outline-2 -outline-offset-1 outline-[#0860C4]',\n 'hover:bg-[#ECF4FE] hover:outline',\n 'focus:bg-[#ECF4FE] focus:outline',\n className\n )}\n >\n {children}\n \n )\n}\n","import { LoadingSpinner } from '@/components/LoadingSpinner'\nimport { CheckmarkFilledIcon } from '@/components/icons/CheckmarkFilledIcon'\nimport { ErrorIcon } from '@/components/icons/ErrorIcon'\nimport { WarningOutlineIcon } from '@/components/icons/WarningOutlineIcon'\nimport { CloseButton } from '@/components/ui/CloseButton'\nimport { cn } from '@/lib/utils'\n\nexport type SnackbarProps = {\n heading?: string\n message: string | string[]\n variant: 'success' | 'error' | 'loading' | 'warning'\n onClose: () => unknown\n className?: string\n}\n\nexport function Snackbar({ heading, message, variant, onClose, className }: SnackbarProps) {\n return (\n \n {variant === 'success' ? (\n *]:fill-white\" />\n ) : null}\n {variant === 'error' ? (\n *]:fill-white\" />\n ) : null}\n {variant === 'loading' ? : null}\n {variant === 'warning' ? : null}\n
\n {heading !== undefined ?

{heading}

: null}\n {Array.isArray(message) ? (\n message.map((item) =>

{item}

)\n ) : (\n

{message}

\n )}\n
\n *]:fill-white\" />\n \n )\n}\n","import { useClockTimestamp } from '@/components/utils/clock/useClockTimestamp'\nimport { dayjs } from '@/lib/dayjs'\nimport { useCallback, useState } from 'react'\n\nexport function useTimeout(timeoutValue: number): [number, boolean, () => void] {\n const [checkpoint, setCheckpoint] = useState(dayjs())\n const now = useClockTimestamp()\n\n const remainingTime = timeoutValue - now.diff(checkpoint)\n const timeout = now.diff(checkpoint) > timeoutValue\n const resetTimeout = useCallback(() => setCheckpoint(dayjs()), [])\n\n return [remainingTime, timeout, resetTimeout]\n}\n","'use client'\n\nimport { useDialogPortalContainer } from '@/components/ui/dialog/DialogPortalContext'\nimport { ErrorDialog } from '@/components/ui/dialog/ErrorDialog'\nimport { Portal } from '@/components/utils/Portal'\nimport { useDocumentEvent } from '@/hooks/browser/useDocumentEvent'\nimport { useWindowEvent } from '@/hooks/browser/useWindowEvent'\nimport { useTimeout } from '@/hooks/useTimeout'\nimport { dayjs } from '@/lib/dayjs'\nimport { useRouter } from 'next/navigation'\nimport { useLockScreen } from '@/components/layout/global/hooks/useLockScreen'\nimport {\n createContext,\n Dispatch,\n SetStateAction,\n useContext,\n useState,\n useCallback,\n useEffect,\n ReactNode,\n} from 'react'\nimport { useFeatureToggle } from '@/components/utils/FeatureToggleContext'\n\nconst InactivityTimeoutContext = createContext(null)\n\nconst InactivityTimeoutSetTimeoutContext = createContext>>(\n () => {}\n)\n\nexport function useInactivityTimeout() {\n return useContext(InactivityTimeoutContext)\n}\n\nexport function useInactivityTimeoutSetTimeout() {\n return useContext(InactivityTimeoutSetTimeoutContext)\n}\n\nexport type InactivityTimeoutProps = {\n disabled?: boolean\n}\n\nexport function InactivityTimeout({ disabled }: InactivityTimeoutProps) {\n const router = useRouter()\n const container = useDialogPortalContainer()\n const [warningDialogOpen, setWarningDialogOpen] = useState(false)\n const [allowTimeout, setAllowTimeout] = useState(false)\n const [clockText, setClockText] = useState('')\n const inactivityTimeout = useInactivityTimeout()\n const isTraining = useFeatureToggle('TRAINING')\n const [remainingTime, timeout, resetTimeout] = useTimeout(\n inactivityTimeout ?? (isTraining ? 3_600_000 : 900_000)\n )\n const [, setLocked] = useLockScreen()\n\n const restart = useCallback(() => {\n if (allowTimeout) {\n resetTimeout()\n }\n }, [allowTimeout, resetTimeout])\n\n useDocumentEvent('mouseup', restart)\n useDocumentEvent('keyup', restart)\n useWindowEvent('scan', restart)\n\n useEffect(() => {\n if (!disabled) {\n const remainingTimeInSeconds = Math.round(dayjs.duration(remainingTime).asSeconds())\n const minutes = Math.floor(remainingTimeInSeconds / 60)\n const seconds = remainingTimeInSeconds % 60\n\n if (minutes >= 0 && seconds >= 0) {\n setClockText(`${minutes}:${seconds.toString().padStart(2, '0')}`)\n } else {\n setClockText('0:00')\n }\n }\n }, [disabled, remainingTime])\n\n useEffect(() => {\n if (!disabled) {\n if (timeout) {\n setLocked(false)\n router.push('/sign-out?callback=/home?expired=true')\n } else if (remainingTime <= 180_000) {\n setAllowTimeout(false)\n setWarningDialogOpen(true)\n } else {\n setAllowTimeout(true)\n setWarningDialogOpen(false)\n }\n }\n }, [disabled, timeout, remainingTime, router, resetTimeout, setLocked])\n\n return (\n \n {!disabled && (\n SESSION TIMEOUT}\n details={\n \n ACE will timeout in {clockText}, and you\n
\n will be signed out. Continue\n
\n working?\n
\n }\n onClose={() => {\n setAllowTimeout(true)\n setTimeout(() => {\n resetTimeout()\n }, 100)\n }}\n />\n )}\n
\n )\n}\n\nexport type InactivityTimeoutProviderProps = {\n disabled: boolean\n children?: ReactNode\n}\nexport function InactivityTimoutProvider({ disabled, children }: InactivityTimeoutProviderProps) {\n const [timeout, setTimeout] = useState(null)\n return (\n \n \n \n {children}\n \n \n )\n}\n","'use client'\n\nimport { createContext } from 'react'\n\nexport const ClockTimestampContext = createContext(0)\n","'use client'\n\nimport { ClockTimestampContext } from '@/components/utils/clock/ClockTimestampContext'\nimport { dayjs } from '@/lib/dayjs'\nimport { useContext } from 'react'\n\nexport function useClockTimestamp(timezone: string = dayjs.tz.guess()): dayjs.Dayjs {\n const unixTimestampNow = useContext(ClockTimestampContext)\n return dayjs.utc(unixTimestampNow).tz(timezone)\n}\n","import { useEffect } from 'react'\n\nexport function useDocumentEvent(\n eventKey: DocumentEventKey,\n listener: (event: DocumentEventMap[DocumentEventKey]) => unknown\n) {\n useEffect(() => {\n document.addEventListener(eventKey, listener)\n return () => document.removeEventListener(eventKey, listener)\n }, [eventKey, listener])\n}\n","'use client'\n\nimport { RefObject, useEffect } from 'react'\n\nexport function useDocumentEventOutside<\n DocumentEventKey extends keyof DocumentEventMap,\n ElementType extends Element,\n>(\n eventKey: DocumentEventKey,\n containerRef: RefObject,\n listener: (event: DocumentEventMap[DocumentEventKey]) => unknown\n) {\n useEffect(() => {\n function listenerAdapater(event: DocumentEventMap[DocumentEventKey]) {\n if (containerRef.current && !containerRef.current.contains(event.target as Node)) {\n listener(event)\n }\n }\n document.addEventListener(eventKey, listenerAdapater)\n return () => document.removeEventListener(eventKey, listenerAdapater)\n }, [eventKey, containerRef, listener])\n}\n","'use client'\n\nimport { useDocumentEventOutside } from '@/hooks/browser/useDocumentEventOutside'\nimport { RefObject } from 'react'\n\nexport function usePointerDownOutside(\n containerRef: RefObject,\n listener: (event: PointerEvent) => unknown\n) {\n useDocumentEventOutside('pointerdown', containerRef, listener)\n}\n","'use client'\n\nimport { useEffect, useState } from 'react'\n\nexport function useNoSsr(callback: () => T): T | undefined\n\nexport function useNoSsr(callback: () => T1, fallback: () => T2): T1 | T2\n\nexport function useNoSsr(callback: () => T1, fallback?: () => T2): T1 | T2 | undefined {\n const [mounted, setMounted] = useState(false)\n useEffect(() => setMounted(true), [])\n if (!mounted) {\n return fallback?.()\n }\n return callback()\n}\n","import dayjs from 'dayjs'\nimport duration from 'dayjs/plugin/duration'\nimport minMax from 'dayjs/plugin/minMax'\nimport timezone from 'dayjs/plugin/timezone'\nimport utc from 'dayjs/plugin/utc'\nimport dayOfYear from 'dayjs/plugin/dayOfYear'\nimport relativeTime from 'dayjs/plugin/relativeTime'\n\ndayjs.extend(duration)\ndayjs.extend(minMax)\ndayjs.extend(timezone)\ndayjs.extend(utc)\ndayjs.extend(dayOfYear)\ndayjs.extend(relativeTime)\n\nexport { dayjs }\n","export enum Role {\n PROD_USER = '5ca832f7-715a-4382-aa07-9db043ce02f4',\n BETA_USER = '8f2ad0e9-e1b7-4409-9508-2ef1d91d57fc',\n NONPROD_USER = '8a38e87f-7c01-46c3-9a47-2a1bda323b46',\n TRAINING_USER = '0554b476-3e1c-4f00-9dc1-be0aa90cfc58',\n\n TEMPORARY_DUTY_AGENT = 'ebd1f9df-a38a-466f-a0a6-4dffd3c556e9',\n STATION_AGENT = '3a3548c0-4178-4b89-9ee7-494e8b246689', // current ace ad group\n DEVELOPER = 'b72f127e-1189-4c21-b9ad-372a4c72b0e3',\n}\n\nexport function getRoles(groupIds: string[]): Role[] {\n const roles: Role[] = []\n\n for (const key of Object.values(Role)) {\n const role = key as Role\n\n if (groupIds.includes(role)) {\n roles.push(role)\n }\n }\n return roles\n}\n","import { Role } from '@/lib/role'\nimport { unique } from '@/lib/utils/unique'\nimport { BETA, PROD, ServerEnv, TRAINING } from '@/lib/server-env'\n\nexport enum Permission {\n ACCESS_PROD = 'access_prod',\n ACCESS_BETA = 'access_beta',\n ACCESS_DEV = 'access_dev',\n ACCESS_NONPROD = 'access_nonprod',\n ACCESS_TRAINING = 'access_training',\n READ_ALL = 'read_all',\n READ_LIMITED = 'read_limited',\n UPDATE = 'update',\n DELETE = 'delete',\n FULL_VIEW = 'full_view',\n VIEW_LIMITED = 'view_limited',\n VIEW_RESTRICTED = 'view_restricted',\n}\n\nexport const viewRestrictedPermissions = [Permission.READ_LIMITED, Permission.VIEW_RESTRICTED]\n\nexport const fullAccessPermissions = [\n Permission.READ_ALL,\n Permission.DELETE,\n Permission.UPDATE,\n Permission.FULL_VIEW,\n]\n\nexport const viewOnlyPermissions = [Permission.READ_ALL, Permission.VIEW_LIMITED]\n\nexport function mapRoleToEnvAccess(role: Role): Permission[] {\n switch (role) {\n case Role.PROD_USER:\n return [Permission.ACCESS_PROD]\n case Role.BETA_USER:\n return [Permission.ACCESS_BETA]\n case Role.NONPROD_USER:\n return [Permission.ACCESS_NONPROD]\n case Role.TRAINING_USER:\n return [Permission.ACCESS_TRAINING]\n case Role.DEVELOPER:\n return [Permission.ACCESS_DEV]\n default:\n return []\n }\n}\n\nexport function mapRoleToPermissions(\n role: Role,\n atHomeCity: boolean | undefined = undefined,\n currentEnv: ServerEnv | undefined = undefined,\n override: boolean = true\n): Permission[] {\n switch (role) {\n case Role.DEVELOPER:\n return currentEnv === PROD || currentEnv === BETA || !currentEnv\n ? [Permission.READ_ALL, Permission.FULL_VIEW]\n : fullAccessPermissions\n case Role.TEMPORARY_DUTY_AGENT:\n return fullAccessPermissions\n case Role.STATION_AGENT:\n if (override) {\n return fullAccessPermissions\n }\n return atHomeCity ? fullAccessPermissions : viewOnlyPermissions\n case Role.TRAINING_USER:\n return currentEnv === TRAINING ? fullAccessPermissions : []\n default:\n return []\n }\n}\n\nexport function getPermissions(\n roles: Role[] | undefined,\n atHomeCity: boolean = true,\n serverEnv: ServerEnv | undefined = undefined,\n override: boolean = true\n): Permission[] {\n if (!roles || roles.length === 0) {\n return [...viewRestrictedPermissions]\n }\n\n const envAccessPermissions = roles.flatMap((role) => mapRoleToEnvAccess(role))\n let appPermissions = roles.flatMap((role) =>\n mapRoleToPermissions(role, atHomeCity, serverEnv, override)\n )\n\n if (appPermissions.length === 0) {\n appPermissions = viewRestrictedPermissions\n }\n\n return unique([...envAccessPermissions, ...appPermissions])\n}\n\nexport function hasPermission(\n roles: Role[] | undefined,\n permission: Permission,\n atHomeCity: boolean = true,\n serverEnv: ServerEnv | undefined = undefined\n): boolean {\n const permissions = getPermissions(roles, atHomeCity, serverEnv)\n return permissions.includes(permission)\n}\n","import { Primitive } from 'zod'\n\nexport function unique(items: Iterable): T[] {\n const uniqueItems = [] as T[]\n for (const item of items) {\n if (!uniqueItems.includes(item)) {\n uniqueItems.push(item)\n }\n }\n return uniqueItems\n}\n\nexport function uniqueByProperty(\n property: keyof T\n): (value: T, index: number, self: T[]) => boolean {\n return (value, index, self) =>\n self.findIndex((item) => item[property] === value[property]) === index\n}\n","export default {\"src\":\"https://ace-nginx-cdn.cloud.aa.com//_next/static/media/ace-logo-beta.f0bc35ca.svg\",\"height\":56,\"width\":157,\"blurWidth\":0,\"blurHeight\":0};","export default {\"src\":\"https://ace-nginx-cdn.cloud.aa.com//_next/static/media/ace-logo-nonprod.671d6763.svg\",\"height\":56,\"width\":157,\"blurWidth\":0,\"blurHeight\":0};","export default {\"src\":\"https://ace-nginx-cdn.cloud.aa.com//_next/static/media/ace-logo-training.392339bd.svg\",\"height\":56,\"width\":157,\"blurWidth\":0,\"blurHeight\":0};","export default {\"src\":\"https://ace-nginx-cdn.cloud.aa.com//_next/static/media/ace-logo.42c26a1b.png\",\"height\":440,\"width\":651,\"blurDataURL\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAlUlEQVR42mMAgUdKGoyLGRiYGJDAxQvnLE6dOi3OcElFkxEmeJ+Bge1sW4P66TNncg4cOhbNAAOvlDVdbjKIrD8qyDBte1f/zIz29ccYYndZMYDACQ0d4TPcEpNWmpocnVDYsIqhYksXQ+vxLRabXukzgMBJPUPOKAYGzomnjwswlG0TYPBfKO2x75sww5pXbAwMDAwAiF0xJWaFRwQAAAAASUVORK5CYII=\",\"blurWidth\":8,\"blurHeight\":5};"],"names":["LoadingSpinner","param","classNames","className","props","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsxs","svg","cn","fill","viewBox","jsx","circle","stroke","cx","cy","r","strokeWidth","path","d","AccountOutlineIcon","AddFlightIcon","CheckmarkFilledIcon","id","uuid","fillOpacity","mask","maskUnits","x","y","width","height","g","concat","rect","CloseIcon","ErrorIcon","fillRule","clipRule","MoonIcon","SunIcon","strokeLinecap","WarningOutlineIcon","usePermissionValidation","permission","permissions","profile","useUserProfile","departureStation","useParams","override","useFeatureToggle","serverEnv","useServerEnvInfo","atHomeCity","city","allRoles","roles","getPermissions","includes","GlobalNavMenuItems","darkmode","setDarkmode","useDarkMode","currentPath","usePathname","jsx_runtime","Fragment","HamburgerNavMenuItem","onClick","window","location","reload","href","p","button","type","prev","ace_logo_readonly","GlobalPageHeaderLogo","isBeta","isNonprod","isTraining","hasRestrictedView","Permission","VIEW_RESTRICTED","Image","src","AceLogoTraining","alt","AceLogoBeta","AceLogoNonprod","AceLogoReadonly","AceLogo","ClockTimestampFormatter","template","timezone","timestamp","useClockTimestamp","time","dateTime","format","suppressHydrationWarning","useNoSsr","GlobalPageHeader","navMenuItems","header","div","HamburgerNavMenu","container","popup","preserveAspectRatio","undefined","ace_lockscreen","employeeIdRegex","LockScreen","error","onUnlock","inputValue","setInputValue","useState","inputRef","useRef","validInput","test","setError","user","setInactivityTimeout","useInactivityTimeoutSetTimeout","router","useRouter","useEffect","push","useHotkeys","current","focus","main","AceLockScreen","h1","firstName","h3","form","onSubmit","event","preventDefault","message","secondaryMessage","label","htmlFor","input","ref","autoFocus","autoComplete","required","name","pattern","value","onChange","target","toUpperCase","Snackbar","variant","heading","onClose","LockScreenProvider","children","locked","setLocked","useLockScreen","GlobalPageLayout","setLock","navItems","lockscreen","createLocalStorageHook","z","boolean","CloseButton","forwardRef","onFocus","onBlur","HamburgerNavMenuContext","createContext","setOpened","containerRef","toggleButtonRef","closeButtonRef","navRef","opened","usePointerDownOutside","Provider","useMemo","onKeyDown","key","relatedTarget","env","NEXT_PUBLIC_APP_VERSION","nav","contains","useContext","Link","HamburgerNavMenuButton","Array","isArray","map","item","InactivityTimeoutContext","InactivityTimeoutSetTimeoutContext","InactivityTimeout","disabled","useDialogPortalContainer","warningDialogOpen","setWarningDialogOpen","allowTimeout","setAllowTimeout","clockText","setClockText","inactivityTimeout","remainingTime","timeout","resetTimeout","useTimeout","timeoutValue","checkpoint","setCheckpoint","dayjs","now","diff","useCallback","restart","useDocumentEvent","useWindowEvent","remainingTimeInSeconds","Math","round","duration","asSeconds","minutes","floor","seconds","toString","padStart","Portal","ErrorDialog","open","title","span","details","b","br","setTimeout","InactivityTimoutProvider","ClockTimestampContext","tz","guess","unixTimestampNow","utc","eventKey","listener","document","addEventListener","removeEventListener","useDocumentEventOutside","listenerAdapater","callback","fallback","mounted","setMounted","minMax","dayOfYear","relativeTime","Role","viewRestrictedPermissions","fullAccessPermissions","viewOnlyPermissions","length","envAccessPermissions","flatMap","mapRoleToEnvAccess","role","PROD_USER","BETA_USER","NONPROD_USER","TRAINING_USER","DEVELOPER","appPermissions","mapRoleToPermissions","currentEnv","PROD","BETA","TEMPORARY_DUTY_AGENT","STATION_AGENT","TRAINING","unique","hasPermission","items","uniqueItems","__webpack_exports__","Z"],"sourceRoot":""}