{"version":3,"file":"static/chunks/668-9c53f478679b12bd.js","mappings":"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","sources":["webpack://_N_E/../../libs/osc/dialog/src/lib/dialog.tsx","webpack://_N_E/../../libs/osc/dialog/src/lib/dialog-alert.tsx","webpack://_N_E/../../libs/osc/dialog/src/lib/dialog-action-buttons.tsx","webpack://_N_E/../../libs/osc/dialog/src/lib/dialog-action.tsx","webpack://_N_E/../../libs/osc/dialog/src/index.ts","webpack://_N_E/../../libs/osc/smb-profile-switcher/src/lib/osc-smb-multi-business-modal.tsx","webpack://_N_E/../../libs/osc/smb-profile-switcher/src/lib/gql/queries.ts","webpack://_N_E/../../libs/osc/smb-profile-switcher/src/lib/hooks/useSmbMultiBusinessToggle.tsx","webpack://_N_E/../../libs/osc/smb-profile-switcher/src/lib/osc-smb-profile-switcher.tsx","webpack://_N_E/../../libs/osc/smb-profile-switcher/src/index.ts","webpack://_N_E/./components/osc-search-form/search-form.utils.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { DialogOverlayProps } from '@reach/dialog';\nimport { DialogContent, DialogOverlay } from '@reach/dialog';\nimport cx from 'classnames';\nimport { ControlClose } from '@dx-ui/osc-controls';\nimport { useTranslation } from 'next-i18next';\n\nexport type Dialog = {\n /** aria label for the modal */\n ariaLabel: string;\n /** The size of the modal */\n size?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | 'full' | 'container';\n title?: string;\n className?: React.HTMLAttributes<HTMLDivElement>['className'];\n contentClassName?: React.HTMLAttributes<HTMLDivElement>['className'];\n bottomContent?: React.ReactNode;\n /** Hides the close button and prevents the modal from closing when the user clicks outside the modal or presses the Escape key */\n preventCloseOnDismiss?: boolean;\n} & DialogOverlayProps;\n\n/**\n * Used to present content above the page and sets focus on first interactive element, which is the Close button if a title is provided.\n */\nexport const Dialog: React.FC<React.PropsWithChildren<Dialog>> = ({\n ariaLabel,\n children,\n contentClassName,\n //Reach UI definition is wrong. This will be fixed when v2 dialog fully ships\n\n onDismiss,\n title,\n className,\n size = 'md',\n bottomContent,\n preventCloseOnDismiss,\n ...rest\n}) => {\n const showCloseButton = onDismiss && !preventCloseOnDismiss;\n\n return (\n <DialogOverlay\n allowPinchZoom={true}\n className=\"dialog-overlay overflow-hidden\"\n {...(!preventCloseOnDismiss && { onDismiss })}\n {...rest}\n >\n <div className=\"h-full overflow-auto sm:py-4 lg:py-12\">\n <DialogContent\n className={cx(\n 'dialog-content my-0 flex flex-col',\n {\n 'max-w-sm': size === 'sm',\n 'max-w-md': size === 'md',\n 'max-w-lg': size === 'lg',\n 'max-w-xl': size === 'xl',\n 'max-w-2xl': size === '2xl',\n 'max-w-3xl': size === '3xl',\n 'max-w-4xl': size === '4xl',\n 'max-w-5xl': size === '5xl',\n 'max-w-6xl': size === '6xl',\n 'max-w-full': size === 'full',\n 'w-full lg:max-w-[min(90%,calc(1440px-5rem))]': size === 'container',\n },\n contentClassName\n )}\n aria-label={ariaLabel}\n >\n {title && (\n <div className=\"relative mb-2 border-b border-border pb-3.5\">\n <h2\n className=\"mx-4 text-center font-bold brand-ou:text-primary brand-wa:text-xl brand-wa:font-light brand-wa:text-text brand-wa:md:text-2xl\"\n aria-label={ariaLabel}\n aria-live=\"polite\"\n data-osc-product=\"osc-dialog-title\"\n >\n {title}\n </h2>\n {showCloseButton ? <CloseButton onDismiss={onDismiss} /> : null}\n </div>\n )}\n {!title && showCloseButton ? (\n <div className=\"relative py-1\">\n {showCloseButton ? <CloseButton onDismiss={onDismiss} /> : null}\n </div>\n ) : null}\n <div className={cx('p-1', className)}>{children}</div>\n {bottomContent}\n </DialogContent>\n </div>\n </DialogOverlay>\n );\n};\n\nfunction CloseButton({ onDismiss }: Pick<Dialog, 'onDismiss'>) {\n const { t } = useTranslation('osc-dialog');\n return (\n <ControlClose onClick={onDismiss} className=\"absolute -end-2 -top-1.5\" label={t('close')} />\n );\n}\n\nexport default Dialog;\n","import type * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport cx from 'classnames';\nimport { Dialog } from './dialog';\n\nexport type DialogAlertProps = Omit<Dialog, 'showModalCTAs' | 'onCloseAndReset' | 'onDismiss'> & {\n /**\n * the text of the cancel button\n */\n cancel?: string | null;\n /**\n * the text of the confirm button\n */\n confirm?: string | null;\n /**\n * bolded heading text\n */\n heading?: string | null;\n /**\n * callback for when the cancel button is clicked.\n * If this is not provided, the cancel button will not show.\n */\n onCancel?: React.DOMAttributes<HTMLButtonElement>['onClick'];\n /**\n * callback for when the confirm button is clicked.\n */\n onConfirm: NonNullable<React.DOMAttributes<HTMLButtonElement>['onClick']>;\n /**\n * whether or not to stack the buttons vertically\n */\n stackedButtons?: boolean;\n};\n\n/**\n * A dialog meant for a user to confirm an action. Escape will not close this dialog.\n */\nconst DialogAlert: React.FC<React.PropsWithChildren<DialogAlertProps>> = ({\n children,\n cancel,\n confirm,\n heading,\n onCancel,\n onConfirm,\n stackedButtons = true,\n ...rest\n}) => {\n const { t } = useTranslation('osc-dialog');\n const cancelText = cancel ?? t('cancel');\n const confirmText = confirm ?? t('ok');\n return (\n <Dialog size=\"sm\" {...rest}>\n <div className=\"text-center\">\n {heading ? <h2 className=\"mb-3 text-xl font-bold leading-tight\">{heading}</h2> : null}\n {children}\n </div>\n <div\n className={cx('flex items-center justify-center pt-4', {\n 'space-x-2': !stackedButtons,\n 'flex-col space-y-2': stackedButtons,\n })}\n >\n <button type=\"button\" className=\"btn btn-lg btn-primary w-full\" onClick={onConfirm}>\n {confirmText}\n </button>\n {onCancel ? (\n <button\n type=\"button\"\n className=\"btn btn-lg btn-primary-outline w-full\"\n onClick={onCancel}\n >\n {cancelText}\n </button>\n ) : null}\n </div>\n </Dialog>\n );\n};\n\nexport { DialogAlert };\nexport default DialogAlert;\n","import { useTranslation } from 'next-i18next';\nimport cx from 'classnames';\nimport { forwardRef } from 'react';\n\ntype ActionButton = {\n adaDescription?: string;\n label?: string;\n} & React.ComponentPropsWithRef<'button'>;\n\ntype EnablableActionButton = ActionButton & { isEnabled?: boolean };\n\nexport type ActionButtonProps = {\n buttonOptions?: {\n cancel?: ActionButton;\n confirm?: ActionButton;\n reset?: EnablableActionButton;\n };\n /** called when done button is activated */\n onConfirm?: (event: React.MouseEvent | React.KeyboardEvent) => void;\n onReset?: () => void;\n onDismiss?: (event: React.MouseEvent | React.KeyboardEvent) => void;\n};\n\nconst Button = forwardRef<HTMLButtonElement, ActionButton>(\n ({ label, adaDescription, className, ...rest }, forwardedRef) => {\n return (\n <button {...rest} className={cx('btn btn-lg', className)} ref={forwardedRef} type=\"button\">\n {label}\n {adaDescription ? <span className=\"sr-only\">{adaDescription}</span> : null}\n </button>\n );\n }\n);\n\nButton.displayName = 'Button';\n\nexport function ActionButtons({\n buttonOptions = {},\n onReset,\n onConfirm,\n onDismiss,\n}: ActionButtonProps) {\n const { t } = useTranslation('osc-dialog');\n const { cancel, confirm, reset } = buttonOptions;\n const resetBtnEnabled = reset?.isEnabled && reset?.label;\n\n const buttons = [\n {\n ...confirm,\n onClick: onConfirm,\n label: confirm?.label ? confirm.label : t('done'),\n className: 'btn-primary',\n 'data-testid': 'shop-modal-done-cta',\n ref: confirm?.ref,\n },\n {\n ...cancel,\n onClick: onDismiss,\n label: cancel?.label ? cancel.label : t('cancel'),\n className: 'btn-primary-outline',\n ref: cancel?.ref,\n },\n ].map((props) => <Button {...props} key={props.label} />);\n\n return (\n <div\n className={cx(\n 'mb:pb-0 sticky bottom-0 flex flex-col gap-4 bg-bg px-1 pt-2 md:flex-row md:rtl:flex-row',\n {\n 'md:justify-between': resetBtnEnabled,\n 'md:justify-end': !resetBtnEnabled,\n }\n )}\n >\n {resetBtnEnabled ? (\n <div className=\"md:self-center\">\n <button\n className=\"btn btn-xl btn-primary-link w-full rounded-none\"\n data-testid=\"shop-modal-reset-cta\"\n onClick={() => onReset?.()}\n ref={reset?.ref}\n type=\"button\"\n >\n {reset?.label}\n {reset?.adaDescription ? (\n <span className=\"sr-only\" aria-live=\"assertive\" role=\"alert\">\n {reset?.adaDescription}\n </span>\n ) : null}\n </button>\n </div>\n ) : null}\n <div className=\"flex flex-col gap-3 md:flex-row \">{buttons}</div>\n </div>\n );\n}\n","import Dialog from './dialog';\nimport { ActionButtons, type ActionButtonProps } from './dialog-action-buttons';\n\nexport type ActionDialogProps = Omit<Dialog, 'onDismiss'> & ActionButtonProps;\n\n/**\n * A dialog with two buttons for the user to take an action to cancel or accept.\n */\nexport function ActionDialog(props: ActionDialogProps) {\n const { buttonOptions, onReset, onConfirm, onDismiss, ...dialogProps } = props;\n const bottomContent = (\n <ActionButtons\n buttonOptions={buttonOptions}\n onReset={onReset}\n onConfirm={onConfirm}\n onDismiss={onDismiss}\n />\n );\n return <Dialog {...dialogProps} onDismiss={onDismiss} bottomContent={bottomContent} />;\n}\n","export * from './lib/dialog';\nexport * from './lib/dialog-alert';\nexport * from './lib/dialog-action';\nexport * from './lib/dialog-action-buttons';\n","import { useTranslation } from 'next-i18next';\nimport { Dialog } from '@dx-ui/osc-dialog';\nimport { useSMBProgramIdLocalStorage } from '@dx-ui/utilities-use-smb-context-local-storage';\nimport { useAuth } from '@dx-ui/framework-auth-provider';\nimport { useState } from 'react';\n\n/**\n * SMB Multi-Business modal. Displays multiple businesses from programAccountSummary and sets localStorage value `smbProgramId` for selected program.\n *\n * Use the `<SMBMultiBusinessModal/>` component inside of the `SMBMultiBusinessModalProvider` in order to show the multi-business modal\n * to shop for select business.\n * @param props\n */\nexport function SMBMultiBusinessModal({\n onAccept,\n onCancel,\n}: {\n onAccept?: (selectedProgramId: number | null) => void;\n onCancel?: () => void;\n}) {\n const { t, ready } = useTranslation('osc-smb-profile-switcher');\n const { smbProgramId, setSMBProgramId } = useSMBProgramIdLocalStorage();\n const { guestInfo, isLoading } = useAuth();\n const programAccountSummary = guestInfo?.hhonors?.programAccountSummary || [];\n const firstAccountId = guestInfo?.hhonors?.programAccountSummary?.[0]?.accountId || null;\n const preselectedBusiness = smbProgramId ?? firstAccountId;\n const [selectedProgramId, setSelectedProgramId] = useState(preselectedBusiness);\n\n function handleCancel() {\n setSelectedProgramId(preselectedBusiness);\n onCancel?.();\n }\n\n if (isLoading || !ready) {\n return null;\n }\n\n const handleAccept = () => {\n setSMBProgramId(selectedProgramId);\n onAccept?.(selectedProgramId);\n };\n\n return (\n <Dialog\n ariaLabel={t('multiBusinessModal.header')}\n title={t('multiBusinessModal.header')}\n size=\"sm\"\n onDismiss={handleCancel}\n >\n <fieldset>\n <legend className=\"sr-only\">{t('multiBusinessModal.header')}</legend>\n {programAccountSummary.map((programAccount, index) => {\n const accountName = programAccount.accountName || '';\n const businessOption = `businessOption${index + 1}`;\n return (\n <label key={programAccount.accountName} className=\"flex items-center py-2 font-bold\">\n <input\n type=\"radio\"\n name=\"businessOption\"\n value={businessOption}\n checked={programAccount.accountId === selectedProgramId}\n onChange={() =>\n programAccount.accountId && setSelectedProgramId(programAccount.accountId)\n }\n className=\"form-radio me-2 cursor-pointer self-center sm:self-auto\"\n />\n {accountName}\n </label>\n );\n })}\n </fieldset>\n <div className=\"mt-3\">\n <button\n type=\"button\"\n className=\"btn btn-xl btn-primary w-full whitespace-normal\"\n onClick={handleAccept}\n >\n {t('multiBusinessModal.ok')}\n </button>\n <button\n type=\"button\"\n className=\"btn btn-xl btn-primary-outline mt-2 w-full whitespace-normal\"\n onClick={handleCancel}\n >\n {t('multiBusinessModal.cancel')}\n </button>\n </div>\n </Dialog>\n );\n}\n","import type * as Types from './types';\n\nimport {\n useQuery,\n type QueryClient,\n type FetchQueryOptions,\n type UseQueryOptions,\n} from '@tanstack/react-query';\nimport type { DXError } from '@dx-ui/types-graphql';\n\nexport const GetSmbMultiBusinessToggleDocument = {\n operationName: 'featureToggles',\n operationString: `query featureToggles {\n featureToggles(names: [\"smbMultiBusiness\"]) {\n enabled\n name\n }\n}`,\n originalOpName: 'getSmbMultiBusinessToggle',\n};\nexport function useGetSmbMultiBusinessToggleQuery<\n TData = Types.GetSmbMultiBusinessToggleQuery,\n TError = DXError\n>(\n variables?: Types.GetSmbMultiBusinessToggleQueryVariables,\n options?: Omit<UseQueryOptions<Types.GetSmbMultiBusinessToggleQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.GetSmbMultiBusinessToggleQuery, TError, TData>({\n queryKey: [GetSmbMultiBusinessToggleDocument, variables],\n ...options,\n });\n}\nexport function serverSideGetSmbMultiBusinessToggleQuery(\n queryClient: QueryClient,\n variables?: Types.GetSmbMultiBusinessToggleQueryVariables,\n options?: FetchQueryOptions<Types.GetSmbMultiBusinessToggleQuery>\n) {\n return queryClient.fetchQuery<Types.GetSmbMultiBusinessToggleQuery>({\n queryKey: [GetSmbMultiBusinessToggleDocument, variables],\n ...options,\n });\n}\n","import { getIsFeatureToggleEnabled } from '@dx-ui/utilities-feature-toggles-configs';\nimport { useGetSmbMultiBusinessToggleQuery } from '../gql/queries';\nimport { CDN_STALE_TIME } from '@dx-ui/framework-react-query';\n\nexport function useSMBMultiBusinessToggle() {\n const { data, isLoading } = useGetSmbMultiBusinessToggleQuery(undefined, {\n staleTime: CDN_STALE_TIME,\n });\n\n return {\n isLoading,\n smbMultiBusinessEnabled: getIsFeatureToggleEnabled({\n featureToggleData: data,\n name: 'smbMultiBusiness',\n }),\n };\n}\n","import { Trans, useTranslation } from 'next-i18next';\nimport { useAuth } from '@dx-ui/framework-auth-provider';\nimport type { SMBContextType } from '@dx-ui/utilities-use-smb-context-local-storage';\nimport {\n useSMBContextLocalStorage,\n useSMBProgramIdLocalStorage,\n} from '@dx-ui/utilities-use-smb-context-local-storage';\nimport cx from 'classnames';\nimport { useIsClient } from 'usehooks-ts';\nimport set from 'lodash/set';\nimport { SMBMultiBusinessModal } from './osc-smb-multi-business-modal';\nimport { useSMBMultiBusinessToggle } from './hooks/useSmbMultiBusinessToggle';\nimport { useEffect, useRef, useState } from 'react';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\n\ntype SMBProfileSwitcherProps = {\n isSmbChecked: boolean;\n onInputChange?: () => void;\n onChangeBusiness?: () => void;\n} & React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * SMB Profiler Switcher. Reads localStorage context value `smbContext` for initial state. Toggle subscribes to localStorage as it may be updated by other logic (session timeout, etc)\n *\n * @param props\n */\nexport function SMBProfileSwitcher({\n className,\n onInputChange,\n isSmbChecked,\n onChangeBusiness,\n}: SMBProfileSwitcherProps) {\n const { t, ready: isTranslationNSReady } = useTranslation('osc-smb-profile-switcher');\n const { smbContext, setSMBContext } = useSMBContextLocalStorage(true);\n const { guestInfo, isLoading } = useAuth();\n const isClient = useIsClient();\n const { isLoading: toggleDataLoading, smbMultiBusinessEnabled } = useSMBMultiBusinessToggle();\n const { isSMBProgramIdSet, smbProgramId, setSMBProgramId } = useSMBProgramIdLocalStorage();\n const isInBusinessContext = smbContext === 'business';\n const hasMultipleBusinesses = (guestInfo?.hhonors?.programAccountSummary?.length || 0) > 1;\n const shouldShowMultiBusinessOption = smbMultiBusinessEnabled && hasMultipleBusinesses;\n const isInBusinessButNoProgramIdSet = isInBusinessContext && !isSMBProgramIdSet;\n const travelForBusinessChecked = shouldShowMultiBusinessOption\n ? isInBusinessContext && isSMBProgramIdSet\n : isInBusinessContext;\n const showChangeBusinessBtn =\n shouldShowMultiBusinessOption && isInBusinessContext && isSMBProgramIdSet;\n const searchParams = new URLSearchParams(isBrowser ? window.location.search : undefined);\n\n const [modalState, setModalState] = useState<{\n isVisible: boolean;\n onAccept: ((selectedProgramId: number | null) => void) | undefined;\n onCancel: (() => void) | undefined;\n }>({ isVisible: false, onAccept: undefined, onCancel: undefined });\n\n async function focusOnCTA({ ctaId }: { ctaId: string }) {\n const ctaElement: Promise<HTMLElement> = new Promise((resolve) => {\n const intervalId = window.setInterval(() => {\n const elem = document.querySelector(`#${ctaId}`);\n if (elem) {\n clearInterval(intervalId);\n resolve(elem as HTMLElement);\n }\n }, 50);\n });\n await ctaElement.then((elm) => elm.focus());\n }\n\n const hideMultiBusinessModal = () =>\n setModalState({ onAccept: undefined, onCancel: undefined, isVisible: false });\n\n const handleChangeBusiness = () =>\n Promise.resolve()\n .then(() => onChangeBusiness?.())\n .then((callback?: (() => void) | void) => {\n setModalState({\n isVisible: true,\n onAccept: (selectedProgramId) => {\n hideMultiBusinessModal();\n void focusOnCTA({ ctaId: 'changeBusinessCTA' });\n if (selectedProgramId !== smbProgramId) {\n callback?.();\n }\n },\n onCancel: () => {\n hideMultiBusinessModal();\n },\n });\n })\n .catch(console.error); // eslint-disable-line no-console\n\n const handleInputChange = async () => {\n const nextContext = smbContext === 'personal' ? 'business' : 'personal';\n const switchingToBusiness = nextContext === 'business';\n const shouldShowMultiBusinessModal = shouldShowMultiBusinessOption && switchingToBusiness;\n await Promise.resolve()\n .then(() => {\n if (shouldShowMultiBusinessModal) {\n return new Promise((resolve, reject) => {\n setModalState({\n isVisible: true,\n onAccept: () => {\n hideMultiBusinessModal();\n resolve({});\n },\n onCancel: () => {\n hideMultiBusinessModal();\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n reject();\n },\n });\n });\n }\n })\n .then(() => onInputChange?.())\n .then((callback?: ((context: SMBContextType) => void) | void) => {\n if (window?.digitalData && window?._satellite) {\n set(\n window.digitalData,\n 'user[0].profile[0].attributes.profileStatus',\n switchingToBusiness ? 'business_travel' : nextContext\n );\n set(window.digitalData, 'click.clickID', 'profile_switch_btn');\n window._satellite?.track?.('global_click');\n } else {\n console.warn('digitalData or _satellite not found'); // eslint-disable-line no-console\n }\n callback?.(nextContext);\n setSMBContext(nextContext);\n if (nextContext === 'personal' && isSMBProgramIdSet) {\n setSMBProgramId(null);\n }\n void focusOnCTA({ ctaId: 'profileSwitch' });\n })\n .catch((err) => {\n console.error(err); // eslint-disable-line no-console\n });\n };\n const firstBusinessName = guestInfo?.hhonors?.programAccountSummary[0]?.accountName || '';\n const selectedBusinessName =\n guestInfo?.hhonors?.programAccountSummary.find(\n (programAccount) => programAccount.accountId === smbProgramId\n )?.accountName || '';\n const businessName = shouldShowMultiBusinessOption ? selectedBusinessName : firstBusinessName;\n const SMBContext = travelForBusinessChecked ? businessName : t('personalTravel');\n const initializedMultiBusinessModal = useRef(false);\n const programAccountIdParam = isNaN(Number(searchParams.get('programAccountId')))\n ? undefined\n : Number(searchParams.get('programAccountId'));\n const hasSetProgramId = useRef(false);\n\n useEffect(() => {\n if (\n shouldShowMultiBusinessOption &&\n isInBusinessButNoProgramIdSet &&\n isSmbChecked &&\n !initializedMultiBusinessModal.current\n ) {\n initializedMultiBusinessModal.current = true;\n setModalState({\n isVisible: true,\n onAccept: () => {\n hideMultiBusinessModal();\n },\n onCancel: async () => {\n hideMultiBusinessModal();\n await Promise.resolve()\n .then(() => onInputChange?.())\n .then((callback?: ((context: SMBContextType) => void) | void) => {\n const url = new URL(window.location.href);\n url.searchParams.delete('smbRate');\n const newUrl = url.toString();\n window.history.replaceState(\n { ...window.history.state, as: newUrl, url: newUrl },\n '',\n newUrl\n );\n callback?.('personal');\n setSMBContext('personal');\n })\n .catch((err) => {\n console.error(err); // eslint-disable-line no-console\n });\n },\n });\n }\n }, [\n isInBusinessButNoProgramIdSet,\n onInputChange,\n setSMBContext,\n shouldShowMultiBusinessOption,\n isSmbChecked,\n ]);\n\n useEffect(() => {\n if (programAccountIdParam) {\n if (shouldShowMultiBusinessOption && !hasSetProgramId.current) {\n hasSetProgramId.current = true;\n if (!isInBusinessContext) {\n setSMBContext('business');\n }\n setSMBProgramId(programAccountIdParam);\n }\n if (isSMBProgramIdSet) {\n const url = new URL(window.location.href);\n url.searchParams.delete('programAccountId');\n const newUrl = url.toString();\n window.history.replaceState(\n { ...window.history.state, as: newUrl, url: newUrl },\n '',\n newUrl\n );\n }\n }\n }, [\n isInBusinessContext,\n isSMBProgramIdSet,\n programAccountIdParam,\n setSMBContext,\n setSMBProgramId,\n shouldShowMultiBusinessOption,\n ]);\n\n if (\n isLoading ||\n !isClient ||\n !smbContext ||\n !guestInfo?.hhonors?.isSMBMember ||\n !isTranslationNSReady ||\n toggleDataLoading\n )\n return null;\n\n return (\n <>\n <div className={cx('flex flex-col flex-wrap items-start bg-bg-alt px-4 py-2.5', className)}>\n <label className=\"flex cursor-pointer items-center text-lg font-bold\">\n <span className=\"first-letter:capitalize\">{t('businessTravel')}</span>\n <div className=\"relative mx-2 inline-flex\">\n <input\n id=\"profileSwitch\"\n aria-describedby=\"currentlyBookingFor\"\n className=\"peer sr-only\"\n type=\"checkbox\"\n onChange={handleInputChange}\n checked={travelForBusinessChecked}\n />\n <div className=\"peer h-6 w-12 rounded-full bg-[#878787] ring-offset-1 after:absolute after:top-[2px] after:size-5 after:rounded-full after:border after:border-bg-disabled after:bg-bg after:transition-all after:content-[''] peer-checked:bg-hilton peer-checked:after:border-bg peer-focus:outline-none peer-focus:ring-2 peer-focus:ring-hilton motion-reduce:transition-none ltr:after:left-[4px] peer-checked:ltr:after:translate-x-full rtl:after:right-[4px] peer-checked:rtl:after:-translate-x-full\" />\n </div>\n </label>\n <div className=\"flex text-sm\">\n <span className=\"relative self-center\">\n <span id=\"currentlyBookingFor\" aria-hidden=\"true\">\n <Trans\n t={t}\n i18nKey=\"youAreCurrentlyBookingFor\"\n values={{ SMBContext }}\n components={{ b: <strong /> }}\n />\n {travelForBusinessChecked ? (\n <span> – {t('businessTravelInfoMsg')} </span>\n ) : null}\n </span>\n {showChangeBusinessBtn ? (\n <button\n id=\"changeBusinessCTA\"\n aria-describedby=\"currentlyBookingFor\"\n className=\"btn-primary-link\"\n type=\"button\"\n onClick={handleChangeBusiness}\n >\n {t('changeBusiness')}\n </button>\n ) : null}\n </span>\n </div>\n </div>\n {modalState.isVisible ? (\n <SMBMultiBusinessModal onAccept={modalState.onAccept} onCancel={modalState.onCancel} />\n ) : null}\n </>\n );\n}\n\nexport type { SMBProfileSwitcherProps };\nexport default SMBProfileSwitcher;\n","export * from './lib/osc-smb-profile-switcher';\nexport * from './lib/osc-smb-multi-business-modal';\nexport * from './lib/gql/queries';\nexport * from './lib/gql/types';\n","import { RatePlanCodes } from '../../constants/rate-plan-codes';\nimport type { QueryParameters } from '../../constants';\nimport type { FormDataValues } from '@dx-ui/osc-shop-form';\n\nexport const mapRatesToSearchForm = (queryParamsObj: QueryParameters | undefined) => ({\n aarpRate: queryParamsObj?.token.includes(RatePlanCodes.AARP),\n corpAccount: queryParamsObj?.corporateCode,\n employeeRate: queryParamsObj?.employeeRate,\n friendsAndFamilyRate: queryParamsObj?.friendsAndFamilyRate,\n gvmtRates: queryParamsObj?.token.includes(RatePlanCodes.GOVERNMENT_MILITARY),\n groupCode: queryParamsObj?.groupCode,\n ownerVIPRate: queryParamsObj?.ownerVIPRate,\n promoCode: queryParamsObj?.promoCode,\n seniorRate: queryParamsObj?.token.includes(RatePlanCodes.SENIOR),\n travelAgents: queryParamsObj?.travelAgentRate,\n aaaRate: queryParamsObj?.token.includes(RatePlanCodes.AAA),\n redeemPts: queryParamsObj?.token.includes(RatePlanCodes.USE_POINTS) || queryParamsObj?.redeemPts,\n ownerHGVRate: queryParamsObj?.ownerHGVRate,\n});\n\nexport const mapRatesToSearchUriBuilder = (\n queryParamsObj: QueryParameters | undefined,\n usePoints = false\n) => ({\n aarp: queryParamsObj?.token.includes(RatePlanCodes.AARP),\n corpAccount: queryParamsObj?.corporateCode,\n employeeRate: queryParamsObj?.employeeRate,\n friendsAndFamilyRate: queryParamsObj?.friendsAndFamilyRate,\n government: queryParamsObj?.token.includes(RatePlanCodes.GOVERNMENT_MILITARY),\n groupCode: queryParamsObj?.groupCode,\n ownerVIPRate: queryParamsObj?.ownerVIPRate,\n offerId: queryParamsObj?.offerId,\n promoCode: queryParamsObj?.promoCode,\n pnd: queryParamsObj?.pnd,\n senior: queryParamsObj?.token.includes(RatePlanCodes.SENIOR),\n travelAgents: queryParamsObj?.travelAgentRate,\n tripleA: queryParamsObj?.token.includes(RatePlanCodes.AAA),\n usePoints: queryParamsObj?.token.includes(RatePlanCodes.USE_POINTS) || usePoints,\n ownerHGVRate: queryParamsObj?.ownerHGVRate,\n});\n\nexport const isNoRatesOrRedeemPtsSelected = (formData: FormDataValues) => {\n const specialRates = formData?.specialRates;\n //no special rate applied\n if (specialRates && Object.values(specialRates).filter(Boolean).length === 0) return true;\n //or only one special rate applied and that rate is usePoints\n else if (\n specialRates &&\n Object.values(specialRates).filter(Boolean).length < 2 &&\n specialRates.redeemPts\n )\n return true;\n return false;\n};\n"],"names":["Dialog","ariaLabel","children","contentClassName","onDismiss","title","className","size","bottomContent","preventCloseOnDismiss","rest","showCloseButton","DialogOverlay","allowPinchZoom","div","DialogContent","cx","aria-label","h2","aria-live","data-osc-product","CloseButton","t","useTranslation","ControlClose","onClick","label","SMBMultiBusinessModal","onAccept","onCancel","ready","smbProgramId","setSMBProgramId","useSMBProgramIdLocalStorage","guestInfo","isLoading","useAuth","programAccountSummary","hhonors","firstAccountId","accountId","preselectedBusiness","selectedProgramId","setSelectedProgramId","useState","handleCancel","fieldset","legend","map","programAccount","index","accountName","businessOption","input","type","name","value","checked","onChange","button","handleAccept","Button","forwardRef","adaDescription","forwardedRef","span","displayName","GetSmbMultiBusinessToggleDocument","operationName","operationString","originalOpName","SMBProfileSwitcher","onInputChange","isSmbChecked","onChangeBusiness","isTranslationNSReady","smbContext","setSMBContext","useSMBContextLocalStorage","isClient","useIsClient","toggleDataLoading","smbMultiBusinessEnabled","useSMBMultiBusinessToggle","data","options","useGetSmbMultiBusinessToggleQuery","staleTime","CDN_STALE_TIME","useQuery","queryKey","undefined","getIsFeatureToggleEnabled","featureToggleData","isSMBProgramIdSet","isInBusinessContext","hasMultipleBusinesses","length","shouldShowMultiBusinessOption","isInBusinessButNoProgramIdSet","travelForBusinessChecked","showChangeBusinessBtn","searchParams","URLSearchParams","isBrowser","window","location","search","modalState","setModalState","isVisible","focusOnCTA","ctaId","ctaElement","Promise","intervalId","setInterval","elem","document","querySelector","clearInterval","resolve","then","elm","focus","hideMultiBusinessModal","handleInputChange","nextContext","switchingToBusiness","shouldShowMultiBusinessModal","reject","digitalData","_satellite","set","track","console","warn","callback","catch","error","err","selectedBusinessName","find","businessName","firstBusinessName","SMBContext","initializedMultiBusinessModal","useRef","programAccountIdParam","isNaN","Number","get","hasSetProgramId","useEffect","current","url","URL","href","delete","newUrl","toString","history","replaceState","state","as","isSMBMember","id","aria-describedby","aria-hidden","Trans","i18nKey","values","components","b","strong","handleChangeBusiness","mapRatesToSearchForm","aarpRate","queryParamsObj","includes","RatePlanCodes","AARP","corpAccount","corporateCode","employeeRate","friendsAndFamilyRate","gvmtRates","token","GOVERNMENT_MILITARY","groupCode","ownerVIPRate","promoCode","seniorRate","SENIOR","travelAgents","travelAgentRate","aaaRate","AAA","redeemPts","USE_POINTS","ownerHGVRate","mapRatesToSearchUriBuilder","usePoints","aarp","government","offerId","pnd","senior","tripleA"],"sourceRoot":"","ignoreList":[]}