{"version":3,"sources":["../src/pages/index.ts","../src/pages/bindings.tsx","../src/common/params-from-current-path/index.ts","../src/common/convert-to-number-if-possible/index.ts","../src/pages/navigate-to-resource.tsx","../src/pages/unsaved-changes-notifier.tsx","../src/common/parse-table-params.ts","../src/pages/document-title-handler.tsx","../src/pages/use-document-title.ts"],"sourcesContent":["export { routerProvider as default, stringifyConfig } from \"./bindings.js\";\nexport { NavigateToResource } from \"./navigate-to-resource.js\";\nexport { UnsavedChangesNotifier } from \"./unsaved-changes-notifier.js\";\nexport { default as parseTableParams } from \"../common/parse-table-params.js\";\nexport { paramsFromCurrentPath } from \"../common/params-from-current-path/index.js\";\nexport { DocumentTitleHandler } from \"./document-title-handler.js\";\nexport { useDocumentTitle } from \"./use-document-title.js\";\n","import {\n  type GoConfig,\n  type RouterProvider,\n  ResourceContext,\n  matchResourceFromRoute,\n  type ParseResponse,\n  QS_PARSE_DEPTH,\n} from \"@refinedev/core\";\nimport { useRouter } from \"next/router\";\nimport NextLink from \"next/link\";\nimport qs from \"qs\";\nimport React, { type ComponentProps, useContext } from \"react\";\nimport { paramsFromCurrentPath } from \"../common/params-from-current-path\";\nimport { convertToNumberIfPossible } from \"src/common/convert-to-number-if-possible\";\n\nexport const stringifyConfig = {\n  addQueryPrefix: true,\n  skipNulls: true,\n  arrayFormat: \"indices\" as const,\n  encode: false,\n  encodeValuesOnly: true,\n};\n\nexport const routerProvider: RouterProvider = {\n  go: () => {\n    const { push, replace, asPath: pathname } = useRouter();\n\n    const fn = React.useCallback(\n      ({\n        to,\n        type,\n        query,\n        options: { keepQuery, keepHash } = {},\n        hash,\n      }: GoConfig) => {\n        let urlHash = \"\";\n\n        if (keepHash && typeof document !== \"undefined\") {\n          urlHash = document.location.hash;\n        }\n\n        if (hash) {\n          urlHash = `#${hash.replace(/^#/, \"\")}`;\n        }\n\n        const urlQuery = {\n          ...(keepQuery\n            ? qs.parse(pathname.split(\"?\")[1], {\n                ignoreQueryPrefix: true,\n                depth: QS_PARSE_DEPTH,\n              })\n            : {}),\n          ...query,\n        };\n\n        if (urlQuery.to) {\n          urlQuery.to = encodeURIComponent(`${urlQuery.to}`);\n        }\n\n        const cleanPathname = pathname.split(\"?\")[0].split(\"#\")[0];\n\n        const urlTo = to || cleanPathname;\n\n        const hasUrlHash = urlHash.length > 1;\n        const hasUrlQuery = Object.keys(urlQuery).length > 0;\n\n        const fullPath = `${urlTo}${\n          hasUrlQuery ? qs.stringify(urlQuery, stringifyConfig) : \"\"\n        }${hasUrlHash ? urlHash : \"\"}`;\n\n        if (type === \"path\") {\n          return fullPath;\n        }\n\n        if (type === \"replace\") {\n          replace(fullPath, undefined, {\n            shallow: typeof to === \"undefined\",\n          });\n        } else {\n          push(fullPath);\n        }\n\n        return undefined;\n      },\n      [pathname, push, replace],\n    );\n\n    return fn;\n  },\n  back: () => {\n    const { back } = useRouter();\n\n    return back;\n  },\n  parse: () => {\n    const { query, asPath: pathname, isReady } = useRouter();\n    const resourceContext = useContext(ResourceContext as any) || {};\n    const resources = (resourceContext as any)?.resources || [];\n\n    const cleanPathname = pathname.split(\"?\")[0].split(\"#\")[0];\n\n    const { resource, action, matchedRoute } = React.useMemo(() => {\n      return matchResourceFromRoute(cleanPathname, resources);\n    }, [cleanPathname, resources]);\n\n    const inferredParams =\n      matchedRoute && cleanPathname && isReady\n        ? paramsFromCurrentPath(cleanPathname, matchedRoute)\n        : {};\n\n    const inferredId = inferredParams.id;\n\n    const parsedParams = React.useMemo(() => {\n      const searchParams = pathname.split(\"?\")[1];\n      return qs.parse(searchParams, {\n        ignoreQueryPrefix: true,\n        depth: QS_PARSE_DEPTH,\n      });\n    }, [pathname]);\n\n    const fn = React.useCallback(() => {\n      const parsedQuery = qs.parse(query as Record<string, string>, {\n        ignoreQueryPrefix: true,\n        depth: QS_PARSE_DEPTH,\n      });\n      const combinedParams = {\n        ...inferredParams,\n        ...parsedQuery,\n        ...parsedParams,\n      };\n\n      const response: ParseResponse = {\n        ...(resource && { resource }),\n        ...(action && { action }),\n        ...(inferredId && { id: decodeURIComponent(inferredId) }),\n        ...(query?.id && { id: decodeURIComponent(`${query?.id}`) }),\n        pathname: cleanPathname,\n        params: {\n          ...combinedParams,\n          currentPage: convertToNumberIfPossible(\n            combinedParams.currentPage as string,\n          ) as number | undefined,\n          pageSize: convertToNumberIfPossible(\n            combinedParams.pageSize as string,\n          ) as number | undefined,\n          to: combinedParams.to\n            ? decodeURIComponent(combinedParams.to as string)\n            : undefined,\n        },\n      };\n\n      return response;\n    }, [\n      pathname,\n      query,\n      resource,\n      action,\n      inferredParams,\n      inferredId,\n      parsedParams,\n    ]);\n\n    return fn;\n  },\n  Link: React.forwardRef<\n    HTMLAnchorElement,\n    React.PropsWithChildren<{ to: string; [prop: string]: any }>\n  >(function RefineLink({ to, ...props }, ref) {\n    return React.createElement(NextLink as any, { href: to, ...props, ref });\n  }),\n};\n","export const paramsFromCurrentPath = (\n  pathname: string,\n  matchingRoute: string,\n) => {\n  const params: Record<string, string> = {};\n\n  // remove leading and trailing slashes\n  const sanitizedMatchingRoute = matchingRoute.replace(/^\\/|\\/$/g, \"\");\n  const sanitizedPathname = pathname.replace(/^\\/|\\/$/g, \"\");\n\n  const matchingRouteParts = sanitizedMatchingRoute.split(\"/\");\n  const pathnameParts = sanitizedPathname.split(\"/\");\n\n  matchingRouteParts.forEach((part, index) => {\n    if (part.startsWith(\":\")) {\n      if (pathnameParts[index]?.length > 0) {\n        params[part.replace(\":\", \"\")] = pathnameParts[index];\n      }\n    }\n  });\n\n  return params;\n};\n","export const convertToNumberIfPossible = (value: string | undefined) => {\n  if (typeof value === \"undefined\") {\n    return value;\n  }\n  const num = Number(value);\n  if (`${num}` === value) {\n    return num;\n  }\n  return value;\n};\n","import { useResourceParams, useGetToPath } from \"@refinedev/core\";\nimport React from \"react\";\nimport { useRouter } from \"next/router\";\n\ntype NavigateToResourceProps = {\n  resource?: string;\n  meta?: Record<string, unknown>;\n};\n\nexport const NavigateToResource = ({\n  resource: resourceProp,\n  meta,\n}: NavigateToResourceProps) => {\n  const ran = React.useRef(false);\n  const { replace } = useRouter();\n  const getToPath = useGetToPath();\n  const { resource, resources } = useResourceParams({ resource: resourceProp });\n\n  const toResource = React.useMemo(\n    () => resource || resources.find((r) => r.list),\n    [resource, resources],\n  );\n\n  React.useEffect(() => {\n    if (toResource) {\n      if (!ran.current) {\n        const path = getToPath({\n          resource: toResource,\n          action: \"list\",\n          meta,\n        });\n\n        if (path) {\n          replace(path);\n        }\n        ran.current = true;\n      }\n    }\n  }, [toResource, replace, meta, getToPath]);\n\n  return null;\n};\n","import React from \"react\";\nimport { useTranslate, useWarnAboutChange } from \"@refinedev/core\";\nimport { useRouter } from \"next/router\";\n\ntype UnsavedChangesNotifierProps = {\n  translationKey?: string;\n  message?: string;\n};\n\nexport const UnsavedChangesNotifier: React.FC<UnsavedChangesNotifierProps> = ({\n  translationKey = \"warnWhenUnsavedChanges\",\n  message = \"Are you sure you want to leave? You have unsaved changes.\",\n}) => {\n  const translate = useTranslate();\n  const router = useRouter();\n  const { warnWhen, setWarnWhen } = useWarnAboutChange();\n\n  const warnMessage = React.useMemo(() => {\n    return translate(translationKey, message);\n  }, [translationKey, message, translate]);\n\n  const warnWhenListener = React.useCallback(\n    (e: { preventDefault: () => void; returnValue: string }) => {\n      e.preventDefault();\n\n      e.returnValue = warnMessage;\n\n      return e.returnValue;\n    },\n    [warnMessage],\n  );\n\n  React.useEffect(() => {\n    if (warnWhen) {\n      window.addEventListener(\"beforeunload\", warnWhenListener);\n    }\n\n    return () => {\n      window.removeEventListener(\"beforeunload\", warnWhenListener);\n    };\n  }, [warnWhen, warnWhenListener]);\n\n  React.useEffect(() => {\n    const routeChangeStart = () => {\n      if (warnWhen) {\n        const allowTransition = window.confirm(warnMessage);\n        if (allowTransition) {\n          setWarnWhen?.(false);\n        } else {\n          router.events.emit(\"routeChangeError\");\n          throw \"Abort route change due to unsaved changes prompt. Ignore this error.\";\n        }\n      }\n    };\n    router.events.on(\"routeChangeStart\", routeChangeStart);\n\n    return () => router.events.off(\"routeChangeStart\", routeChangeStart);\n  }, [warnWhen, warnMessage, setWarnWhen]);\n\n  return null;\n};\n","import qs from \"qs\";\nimport { type ParsedParams, QS_PARSE_DEPTH } from \"@refinedev/core\";\n\nconst parseTableParams = (search: string) => {\n  const parsed: ParsedParams = qs.parse(search, {\n    ignoreQueryPrefix: true,\n    depth: QS_PARSE_DEPTH,\n  });\n\n  const tableReady = {\n    ...parsed,\n    pagination: {\n      currentPage: parsed.currentPage,\n      pageSize: parsed.pageSize,\n    },\n  };\n\n  delete tableReady.currentPage;\n  delete tableReady.pageSize;\n\n  return tableReady;\n};\n\nexport default parseTableParams;\n","import React from \"react\";\nimport {\n  type Action,\n  type IResourceItem,\n  generateDefaultDocumentTitle,\n  useParsed,\n  useTranslate,\n  useUserFriendlyName,\n} from \"@refinedev/core\";\n\nimport Head from \"next/head\";\n\ntype Props = {\n  handler?: (options: {\n    resource?: IResourceItem;\n    action?: Action;\n    params?: Record<string, string | undefined>;\n    pathname?: string;\n    autoGeneratedTitle: string;\n  }) => string;\n};\n\nexport const DocumentTitleHandler = ({ handler }: Props) => {\n  const { action, id, params, pathname, resource } = useParsed();\n  const translate = useTranslate();\n  const getUserFriendlyName = useUserFriendlyName();\n\n  const identifier = resource?.identifier ?? resource?.name;\n  const preferredLabel = resource?.meta?.label;\n  const resourceName =\n    preferredLabel ??\n    getUserFriendlyName(identifier, action === \"list\" ? \"plural\" : \"singular\");\n  const populatedLabel = translate(\n    `${resource?.name}.${resource?.name}`,\n    resourceName,\n  );\n\n  const autoGeneratedTitle = generateDefaultDocumentTitle(\n    translate,\n    resource,\n    action,\n    `${id}`,\n    resourceName,\n  );\n\n  return (\n    <Head>\n      <title>\n        {handler?.({\n          resource: {\n            ...(resource! ?? {}),\n            meta: {\n              ...resource?.meta,\n              label: populatedLabel,\n            },\n          },\n          params,\n          action,\n          autoGeneratedTitle,\n          pathname,\n        }) ?? autoGeneratedTitle}\n      </title>\n    </Head>\n  );\n};\n","import { useTranslate } from \"@refinedev/core\";\nimport { useEffect } from \"react\";\n\ntype Title = string | { i18nKey: string };\n\nexport const useDocumentTitle = (title?: Title) => {\n  const translate = useTranslate();\n\n  useEffect(() => {\n    if (!title) return;\n\n    if (typeof title === \"string\") {\n      document.title = translate(title);\n    } else {\n      document.title = translate(title.i18nKey);\n    }\n  }, [title]);\n\n  return (title: Title) => {\n    if (typeof title === \"string\") {\n      document.title = translate(title);\n    } else {\n      document.title = translate(title.i18nKey);\n    }\n  };\n};\n"],"mappings":"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","names":["React","qs","NextLink","import_core","import_react","import_router","React","import_react","import_core","import_router","React","import_qs","import_core","qs","import_react","import_core","React","Head","import_core","import_react","title"]}