{"version":3,"file":"static/chunks/app/[locale]/(search)/layout-f6a590ba35bdb137.js","mappings":"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","sources":["webpack://_N_E/?df2d","webpack://_N_E/./lib/schemas/search-schema.ts","webpack://_N_E/./components/search/SearchSchemas.tsx","webpack://_N_E/./components/search/useSearchPageParams.tsx","webpack://_N_E/./hooks/useQueryParams.tsx","webpack://_N_E/./hooks/useWebGL.ts"],"sourcesContent":["import(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src4237242273/src/website/app/[locale]/(search)/_components/SearchPageWrapper.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src4237242273/src/website/components/AuthenticatedFilter.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src4237242273/src/website/components/FooterSC/FooterFilter.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src4237242273/src/website/components/FooterSC/LanguageSection.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src4237242273/src/website/components/FooterSC/Newsletter.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src4237242273/src/website/components/HeaderSC/DefaultHeader/DefaultHorizontalNav.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src4237242273/src/website/components/HeaderSC/DefaultHeader/DefaultUserMobileMenuItem.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src4237242273/src/website/components/HeaderSC/DefaultHeader/MobileLanguageDropdown.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src4237242273/src/website/components/HeaderSC/HeaderFactory.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src4237242273/src/website/components/HeaderSC/NuveenHeader/NuveenHorizontalNav.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src4237242273/src/website/components/HeaderSC/NuveenHeader/NuveenMobileUserMenuItem.tsx\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/components/HeaderSC/shared/HeaderWrapper.tsx\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/components/HeaderSC/shared/MobileButton.tsx\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/components/Link.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src4237242273/src/website/components/search/SearchSchemas.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src4237242273/src/website/node_modules/next-intl/dist/esm/navigation/shared/BaseLink.js\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src4237242273/src/website/node_modules/next-intl/dist/esm/navigation/shared/LegacyBaseLink.js\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/node_modules/next/dist/client/image-component.js\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/node_modules/next/dist/client/link.js\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/public/icons/facebookIcon.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/public/icons/instagramIcon.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/public/icons/linkedinIcon.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/public/icons/twitterIcon.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/public/icons/verticalLogoWhiteIcon.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/public/images/brands/TGR.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src4237242273/src/website/public/images/brands/welkin-and-meraki.svg\");\n","import { WebSite, WithContext } from 'schema-dts';\n\nexport function getSearchSchema({\n  meta_title,\n  meta_description,\n  pathname,\n}: {\n  meta_title: string;\n  meta_description: string;\n  pathname: string;\n}): WithContext<WebSite> {\n  return {\n    '@context': 'https://schema.org',\n    '@type': 'WebSite',\n    name: meta_title,\n    url: pathname,\n    description: meta_description,\n    potentialAction: {\n      '@type': 'SearchAction',\n      target: `${pathname}?query={query}&bounds={bounds}&center={center}&zoom={zoom}`,\n      // @ts-expect-error - https://github.com/google/schema-dts/issues/114\n      'query-input': [\n        {\n          '@type': 'PropertyValueSpecification',\n          valueName: 'query',\n          description: 'Location where users want to find a meeting room',\n        },\n        {\n          '@type': 'PropertyValueSpecification',\n          valueName: 'bounds',\n          description:\n            'Geographic bounds for the search area (latitude and longitude values)',\n        },\n        {\n          '@type': 'PropertyValueSpecification',\n          valueName: 'center',\n          description:\n            'Center point of the search area (latitude and longitude)',\n        },\n        {\n          '@type': 'PropertyValueSpecification',\n          valueName: 'zoom',\n          description: 'Zoom level for the map search (numeric value)',\n        },\n      ],\n    },\n  };\n}\n","'use client';\n\nimport { useTranslations } from 'next-intl';\n\nimport { usePathname } from '@/i18n/navigation';\nimport { getSearchSchema } from '@/lib/schemas/search-schema';\nimport { getServerConfig } from '@/utils/config';\n\nimport useSearchPageParams from './useSearchPageParams';\n\nexport default function SearchSchema() {\n  const t = useTranslations('search');\n  const pathname = usePathname();\n  const { HOST } = getServerConfig();\n\n  const { searchType } = useSearchPageParams();\n\n  const searchSchema = getSearchSchema({\n    meta_title: t(`meta.${searchType}.title`),\n    meta_description: t(`meta.${searchType}.desc`),\n    pathname: `${HOST}${pathname}`,\n  });\n\n  return (\n    <script\n      type=\"application/ld+json\"\n      dangerouslySetInnerHTML={{ __html: JSON.stringify(searchSchema) }}\n    />\n  );\n}\n","import { useMemo } from 'react';\n\nimport useQueryParams from '@/hooks/useQueryParams';\nimport { usePathname } from '@/i18n/navigation';\n\nimport { SearchType } from './search-type.enum';\nimport { SearchViewMode } from './types';\n\nexport type SearchQueryParams = {\n  view?: SearchViewMode;\n  day?: string;\n  startTime?: string;\n  endTime?: string;\n  isAllDay?: string;\n  amenities?: string;\n  seats?: string;\n  query?: string;\n  center?: string;\n  bounds?: string;\n  zoom?: string;\n  startDay?: string;\n  endDay?: string;\n};\n\nexport default function useSearchPageParams() {\n  const pathname = usePathname();\n  const { queryParams, updateQuery } = useQueryParams<SearchQueryParams>();\n\n  const searchType = useMemo(() => {\n    if (pathname.startsWith('/meeting-rooms')) {\n      return SearchType.MeetingRoom;\n    }\n    if (pathname.startsWith('/locations')) {\n      return SearchType.Location;\n    }\n    return SearchType.Coworking;\n  }, [pathname]);\n\n  return {\n    searchType,\n    queryParams,\n    updateQuery,\n  };\n}\n","import { useSearchParams } from 'next/navigation';\nimport { useCallback, useMemo } from 'react';\n\nimport { usePathname } from '@/i18n/navigation';\n\nimport { useRouter } from './useRouter';\n\ntype QueryParams = Record<string, string | string[] | number | undefined>;\n\nexport default function useQueryParams<T extends QueryParams>() {\n  const router = useRouter();\n  const pathname = usePathname();\n  const searchParams = useSearchParams();\n\n  const queryParams = useMemo(() => {\n    if (searchParams == null) return {};\n\n    const entries = searchParams.entries();\n    const result: QueryParams = {};\n    for (const [key, value] of entries) {\n      result[key] = value;\n    }\n    return result;\n  }, [searchParams]);\n\n  const updateQuery = useCallback(\n    (newParams: Partial<T>) => {\n      if (searchParams == null) return {};\n\n      const current = new URLSearchParams(window.location.search);\n\n      Object.keys(newParams).forEach((key) => {\n        const value = newParams[key];\n        if (value === undefined || value === null) {\n          current.delete(key); // Remove param if undefined or null\n        } else if (Array.isArray(value)) {\n          current.delete(key);\n          value.forEach((val) => current.append(key, val));\n        } else {\n          current.set(key, value.toString());\n        }\n      });\n\n      if (current.size === 0) {\n        clearQuery();\n      }\n\n      router.replace(`?${current.toString()}`, { scroll: false });\n    },\n    [searchParams]\n  );\n\n  const clearQuery = useCallback(() => {\n    window.history.replaceState(null, '', pathname);\n  }, [pathname]);\n\n  return {\n    queryParams: queryParams as T,\n    updateQuery,\n    clearQuery,\n  };\n}\n","import { useEffect, useState } from 'react';\n\nexport function useWebGL() {\n  const [isWebGLSupported, setWebGLsupported] = useState<boolean | undefined>();\n\n  useEffect(() => {\n    if (isWebGLSupported !== undefined) return;\n\n    (async () => {\n      const mapboxgl = await import('mapbox-gl');\n      setWebGLsupported(mapboxgl.supported());\n    })();\n  }, []);\n\n  return { isWebGLSupported };\n}\n"],"names":["Promise","resolve","then","__webpack_require__","bind","t","SearchSchema","useTranslations","pathname","usePathname","HOST","getServerConfig","searchType","useSearchPageParams","searchSchema","getSearchSchema","param","meta_title","meta_description","name","url","description","potentialAction","target","concat","valueName","jsx_runtime","jsx","script","type","dangerouslySetInnerHTML","__html","JSON","stringify","queryParams","updateQuery","useQueryParams","useMemo","startsWith","SearchType","MeetingRoom","Location","Coworking","router","useRouter","searchParams","useSearchParams","entries","result","key","value","useCallback","current","URLSearchParams","window","location","search","Object","keys","newParams","forEach","delete","Array","isArray","append","val","set","toString","size","clearQuery","replace","scroll","history","replaceState","useWebGL","isWebGLSupported","setWebGLsupported","useState","useEffect","undefined","mapboxgl","e","supported"],"sourceRoot":""}