@bprogress/next
Version:
NProgress bar like for Next.js compatible with new app directory
1 lines • 26.5 kB
Source Map (JSON)
{"version":3,"sources":["/Users/elliotsutton/Documents/Skyleen/npm-package/bprogress/packages/next/dist/app.cjs","../src/app.ts","../src/hooks/use-router.ts","../src/providers/app-progress-provider.tsx","../src/components/app-progress.tsx","../src/providers/next-progress-provider.tsx"],"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","app_exports","ProgressProvider","AppProgressProvider","useRouter","module","exports","import_navigation","require","import_react","import_core","removeFirstPathSegment","url","parts","pathname","split","length","splice","join","options","customRouter","defaultProgressOptions","router","useNextRouter","import_react2","useProgress","start","stop","disableSameURL","providerDisableSameURL","startPosition","providerStartPosition","delay","providerDelay","stopDelay","providerStopDelay","extendedRouterRef","useRef","createHandler","fn","href","showProgress","basePath","i18nPath","routerOpts","progressOpts","localDisableSameURL","localStartPosition","localDelay","localStopDelay","currentUrl","URL","location","targetUrl","sameURL","isSameURL","setTimeout","createNoHrefHandler","result","createPrefetchHandler","current","push","replace","prefetch","back","refresh","forward","AppProgressComponent","props","import_navigation2","usePathname","searchParams","useSearchParams","import_react3","useAnchorProgress","AppProgress","withMemo","displayName","NextProgressProvider","children","ProgressComponent","color","height","spinnerPosition","style","disableStyle","nonce","shallowRouting","import_react4","React","createElement","import_react5","SuspendedAppProgress","import_react7","withSuspense","import_react6"],"mappings":"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","sourcesContent":["var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/app.ts\nvar app_exports = {};\n__export(app_exports, {\n ProgressProvider: () => AppProgressProvider,\n useRouter: () => useRouter\n});\nmodule.exports = __toCommonJS(app_exports);\n\n// src/hooks/use-router.ts\nvar import_navigation = require(\"next/navigation.js\");\nvar import_react = require(\"react\");\nvar import_core = require(\"@bprogress/core\");\nvar import_react2 = require(\"@bprogress/react\");\nfunction removeFirstPathSegment(url) {\n const parts = url.pathname.split(\"/\");\n if (parts.length > 1 && parts[1]) {\n parts.splice(1, 1);\n url.pathname = parts.join(\"/\") || \"/\";\n }\n return url;\n}\nfunction useRouter(options) {\n const { customRouter, ...defaultProgressOptions } = options || {};\n const router = customRouter ? customRouter() : (\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0, import_navigation.useRouter)()\n );\n const {\n start,\n stop,\n disableSameURL: providerDisableSameURL,\n startPosition: providerStartPosition,\n delay: providerDelay,\n stopDelay: providerStopDelay\n } = (0, import_react2.useProgress)();\n const extendedRouterRef = (0, import_react.useRef)(null);\n function createHandler(fn) {\n return (href, options2) => {\n const {\n showProgress,\n startPosition,\n disableSameURL,\n basePath,\n i18nPath,\n delay,\n stopDelay,\n ...routerOpts\n } = options2 || {};\n const progressOpts = {\n ...defaultProgressOptions,\n showProgress,\n startPosition,\n disableSameURL,\n basePath,\n i18nPath,\n delay,\n stopDelay\n };\n const localDisableSameURL = progressOpts.disableSameURL !== void 0 ? progressOpts.disableSameURL : providerDisableSameURL;\n const localStartPosition = progressOpts.startPosition !== void 0 ? progressOpts.startPosition : providerStartPosition;\n const localDelay = progressOpts.delay !== void 0 ? progressOpts.delay : providerDelay;\n const localStopDelay = progressOpts.stopDelay !== void 0 ? progressOpts.stopDelay : providerStopDelay;\n if (progressOpts.showProgress === false) {\n return fn(href, routerOpts);\n }\n let currentUrl = new URL(location.href);\n const targetUrl = new URL(href, location.href);\n if (progressOpts.i18nPath) {\n currentUrl = removeFirstPathSegment(currentUrl);\n }\n if (progressOpts.basePath) {\n targetUrl.pathname = progressOpts.basePath + (targetUrl.pathname !== \"/\" ? targetUrl.pathname : \"\");\n }\n const sameURL = (0, import_core.isSameURL)(targetUrl, currentUrl);\n if (sameURL && localDisableSameURL) {\n return fn(href, routerOpts);\n }\n start(localStartPosition, localDelay);\n setTimeout(() => {\n if (sameURL) stop(localStopDelay);\n }, localDelay || 0);\n return fn(href, routerOpts);\n };\n }\n function createNoHrefHandler(fn) {\n return (options2) => {\n const {\n showProgress,\n startPosition,\n disableSameURL,\n basePath,\n i18nPath,\n delay,\n stopDelay,\n ...routerOpts\n } = options2 || {};\n const progressOpts = {\n ...defaultProgressOptions,\n showProgress,\n startPosition,\n disableSameURL,\n basePath,\n i18nPath,\n delay,\n stopDelay\n };\n const localStartPosition = progressOpts.startPosition !== void 0 ? progressOpts.startPosition : providerStartPosition;\n const localDelay = progressOpts.delay !== void 0 ? progressOpts.delay : providerDelay;\n const localStopDelay = progressOpts.stopDelay !== void 0 ? progressOpts.stopDelay : providerStopDelay;\n if (progressOpts.showProgress === false) {\n return fn(routerOpts);\n }\n start(localStartPosition, localDelay);\n const result = fn(routerOpts);\n setTimeout(() => {\n stop(localStopDelay);\n }, localDelay || 0);\n return result;\n };\n }\n function createPrefetchHandler(fn) {\n return (href, options2) => {\n return fn(href, options2);\n };\n }\n if (!extendedRouterRef.current) {\n extendedRouterRef.current = {\n ...router,\n push: createHandler(router.push),\n replace: createHandler(router.replace),\n prefetch: createPrefetchHandler(router.prefetch),\n back: createNoHrefHandler(router.back),\n refresh: createNoHrefHandler(router.refresh),\n forward: createNoHrefHandler(router.forward)\n };\n } else {\n extendedRouterRef.current.push = createHandler(router.push);\n extendedRouterRef.current.replace = createHandler(router.replace);\n extendedRouterRef.current.prefetch = createPrefetchHandler(router.prefetch);\n extendedRouterRef.current.back = createNoHrefHandler(router.back);\n extendedRouterRef.current.refresh = createNoHrefHandler(router.refresh);\n extendedRouterRef.current.forward = createNoHrefHandler(router.forward);\n }\n return extendedRouterRef.current;\n}\n\n// src/providers/app-progress-provider.tsx\nvar import_react6 = __toESM(require(\"react\"), 1);\n\n// src/components/app-progress.tsx\nvar import_react3 = require(\"@bprogress/react\");\nvar import_navigation2 = require(\"next/navigation.js\");\nvar AppProgressComponent = (props) => {\n const pathname = (0, import_navigation2.usePathname)();\n const searchParams = (0, import_navigation2.useSearchParams)();\n (0, import_react3.useAnchorProgress)(props, [pathname, searchParams]);\n return null;\n};\nvar AppProgress = (0, import_react3.withMemo)(AppProgressComponent);\nAppProgress.displayName = \"AppProgress\";\n\n// src/providers/app-progress-provider.tsx\nvar import_react7 = require(\"@bprogress/react\");\n\n// src/providers/next-progress-provider.tsx\nvar import_react4 = __toESM(require(\"react\"), 1);\nvar import_react5 = require(\"@bprogress/react\");\nvar NextProgressProvider = ({\n children,\n ProgressComponent,\n color,\n height,\n options,\n spinnerPosition,\n style,\n disableStyle,\n nonce,\n stopDelay,\n delay,\n startPosition,\n disableSameURL,\n shallowRouting,\n ...props\n}) => {\n return /* @__PURE__ */ import_react4.default.createElement(\n import_react5.ProgressProvider,\n {\n color,\n height,\n options,\n spinnerPosition,\n style,\n disableStyle,\n nonce,\n stopDelay,\n delay,\n startPosition,\n disableSameURL,\n shallowRouting\n },\n /* @__PURE__ */ import_react4.default.createElement(\n ProgressComponent,\n {\n stopDelay,\n delay,\n startPosition,\n disableSameURL,\n shallowRouting,\n ...props\n }\n ),\n children\n );\n};\n\n// src/providers/app-progress-provider.tsx\nvar SuspendedAppProgress = (0, import_react7.withSuspense)(AppProgress);\nvar AppProgressProvider = ({\n children,\n ...props\n}) => {\n return /* @__PURE__ */ import_react6.default.createElement(NextProgressProvider, { ProgressComponent: SuspendedAppProgress, ...props }, children);\n};\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n ProgressProvider,\n useRouter\n});\n","export { useRouter } from \"./hooks/use-router\";\nexport { AppProgressProvider as ProgressProvider } from \"./providers/app-progress-provider\";\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type {\n AppRouterInstance,\n AppRouterProgressInstance,\n InferPrefetchOptions,\n InferRouterOptions,\n RouterProgressOptions,\n} from '../types';\nimport { useRouter as useNextRouter } from 'next/navigation.js';\nimport { useRef } from 'react';\nimport { isSameURL } from '@bprogress/core';\nimport { AppRouterInstance as NextAppRouterInstance } from 'next/dist/shared/lib/app-router-context.shared-runtime';\nimport { useProgress } from '@bprogress/react';\n\n/**\n * Helper function that removes the first path segment from a URL.\n * This is used to ignore the locale prefix in i18n configurations.\n */\nfunction removeFirstPathSegment(url: URL): URL {\n const parts = url.pathname.split('/');\n if (parts.length > 1 && parts[1]) {\n parts.splice(1, 1);\n url.pathname = parts.join('/') || '/';\n }\n return url;\n}\n\n/**\n * Custom hook that extends the router (Next.js or custom) with progress bar functionality.\n *\n * With this signature, if a custom router is provided, its push method's options are automatically inferred.\n *\n * @param options Progress bar options and/or custom router.\n * @returns An extended router with push, replace, prefetch, back, refresh, and forward methods that manage the progress bar.\n */\nexport function useRouter<\n Custom extends AppRouterInstance = NextAppRouterInstance,\n ROpts = InferRouterOptions<Custom>,\n POpts = InferPrefetchOptions<Custom>,\n>(\n options?: RouterProgressOptions & { customRouter?: () => Custom },\n): AppRouterProgressInstance<ROpts, POpts> {\n const { customRouter, ...defaultProgressOptions } = options || {};\n const router: AppRouterInstance = customRouter\n ? customRouter()\n : // eslint-disable-next-line react-hooks/rules-of-hooks\n useNextRouter();\n const {\n start,\n stop,\n disableSameURL: providerDisableSameURL,\n startPosition: providerStartPosition,\n delay: providerDelay,\n stopDelay: providerStopDelay,\n } = useProgress();\n\n // Using a ref to keep a stable reference of the extended router.\n const extendedRouterRef = useRef<AppRouterProgressInstance<\n ROpts,\n POpts\n > | null>(null);\n\n /**\n * Generic function to create a handler for methods that require an href (push, replace).\n * It extracts the progress options and passes the rest as router-specific options.\n */\n function createHandler<Fn extends (href: string, opts?: any) => void>(\n fn: Fn,\n ) {\n return (href: string, options?: any): void => {\n const {\n showProgress,\n startPosition,\n disableSameURL,\n basePath,\n i18nPath,\n delay,\n stopDelay,\n ...routerOpts\n } = options || {};\n const progressOpts = {\n ...defaultProgressOptions,\n showProgress,\n startPosition,\n disableSameURL,\n basePath,\n i18nPath,\n delay,\n stopDelay,\n };\n\n const localDisableSameURL =\n progressOpts.disableSameURL !== undefined\n ? progressOpts.disableSameURL\n : providerDisableSameURL;\n const localStartPosition =\n progressOpts.startPosition !== undefined\n ? progressOpts.startPosition\n : providerStartPosition;\n const localDelay =\n progressOpts.delay !== undefined ? progressOpts.delay : providerDelay;\n const localStopDelay =\n progressOpts.stopDelay !== undefined\n ? progressOpts.stopDelay\n : providerStopDelay;\n\n if (progressOpts.showProgress === false) {\n return fn(href, routerOpts);\n }\n\n let currentUrl = new URL(location.href);\n const targetUrl = new URL(href, location.href);\n\n if (progressOpts.i18nPath) {\n currentUrl = removeFirstPathSegment(currentUrl);\n }\n\n if (progressOpts.basePath) {\n targetUrl.pathname =\n progressOpts.basePath +\n (targetUrl.pathname !== '/' ? targetUrl.pathname : '');\n }\n\n const sameURL = isSameURL(targetUrl, currentUrl);\n\n if (sameURL && localDisableSameURL) {\n return fn(href, routerOpts);\n }\n\n start(localStartPosition, localDelay);\n\n setTimeout(() => {\n if (sameURL) stop(localStopDelay);\n }, localDelay || 0);\n\n return fn(href, routerOpts);\n };\n }\n\n /**\n * Handler for methods that do not require an href (back, refresh, forward).\n */\n function createNoHrefHandler<Fn extends (opts?: any) => void>(fn: Fn) {\n return (options?: any): void => {\n const {\n showProgress,\n startPosition,\n disableSameURL,\n basePath,\n i18nPath,\n delay,\n stopDelay,\n ...routerOpts\n } = options || {};\n const progressOpts = {\n ...defaultProgressOptions,\n showProgress,\n startPosition,\n disableSameURL,\n basePath,\n i18nPath,\n delay,\n stopDelay,\n };\n\n const localStartPosition =\n progressOpts.startPosition !== undefined\n ? progressOpts.startPosition\n : providerStartPosition;\n const localDelay =\n progressOpts.delay !== undefined ? progressOpts.delay : providerDelay;\n const localStopDelay =\n progressOpts.stopDelay !== undefined\n ? progressOpts.stopDelay\n : providerStopDelay;\n\n if (progressOpts.showProgress === false) {\n return fn(routerOpts);\n }\n\n start(localStartPosition, localDelay);\n\n const result = fn(routerOpts);\n\n setTimeout(() => {\n stop(localStopDelay);\n }, localDelay || 0);\n\n return result;\n };\n }\n\n /**\n * Handler for the prefetch method.\n */\n function createPrefetchHandler<Fn extends (href: string, opts?: any) => void>(\n fn: Fn,\n ) {\n return (href: string, options?: POpts): void => {\n return fn(href, options);\n };\n }\n\n if (!extendedRouterRef.current) {\n extendedRouterRef.current = {\n ...router,\n push: createHandler(router.push),\n replace: createHandler(router.replace),\n prefetch: createPrefetchHandler(router.prefetch),\n back: createNoHrefHandler(router.back),\n refresh: createNoHrefHandler(router.refresh),\n forward: createNoHrefHandler(router.forward),\n } as AppRouterProgressInstance<ROpts, POpts>;\n } else {\n extendedRouterRef.current.push = createHandler(router.push);\n extendedRouterRef.current.replace = createHandler(router.replace);\n extendedRouterRef.current.prefetch = createPrefetchHandler(router.prefetch);\n extendedRouterRef.current.back = createNoHrefHandler(router.back);\n extendedRouterRef.current.refresh = createNoHrefHandler(router.refresh);\n extendedRouterRef.current.forward = createNoHrefHandler(router.forward);\n }\n\n return extendedRouterRef.current;\n}\n","import React from 'react';\nimport type { AppProgressProps, AppProgressProviderProps } from '../types';\nimport { AppProgress } from '../components/app-progress';\nimport { withSuspense } from '@bprogress/react';\nimport { NextProgressProvider } from './next-progress-provider';\n\nconst SuspendedAppProgress = withSuspense<AppProgressProps>(AppProgress);\n\nexport const AppProgressProvider = ({\n children,\n ...props\n}: AppProgressProviderProps) => {\n return (\n <NextProgressProvider ProgressComponent={SuspendedAppProgress} {...props}>\n {children}\n </NextProgressProvider>\n );\n};\n","import {\n useAnchorProgress,\n withMemo,\n type AnchorProgressProps,\n} from '@bprogress/react';\nimport { usePathname, useSearchParams } from 'next/navigation.js';\n\nconst AppProgressComponent = (props: AnchorProgressProps) => {\n const pathname = usePathname();\n const searchParams = useSearchParams();\n\n useAnchorProgress(props, [pathname, searchParams]);\n\n return null;\n};\n\nexport const AppProgress = withMemo(AppProgressComponent);\n\nAppProgress.displayName = 'AppProgress';\n","import React from 'react';\nimport {\n AnchorProgressProps,\n ProgressProvider,\n ProgressProviderProps,\n RouterProgressProps,\n} from '@bprogress/react';\n\nexport interface NextProgressProviderComponentProps\n extends ProgressProviderProps {\n ProgressComponent: React.ComponentType<\n RouterProgressProps | AnchorProgressProps\n >;\n}\n\nexport const NextProgressProvider = ({\n children,\n ProgressComponent,\n color,\n height,\n options,\n spinnerPosition,\n style,\n disableStyle,\n nonce,\n stopDelay,\n delay,\n startPosition,\n disableSameURL,\n shallowRouting,\n ...props\n}: NextProgressProviderComponentProps) => {\n return (\n <ProgressProvider\n color={color}\n height={height}\n options={options}\n spinnerPosition={spinnerPosition}\n style={style}\n disableStyle={disableStyle}\n nonce={nonce}\n stopDelay={stopDelay}\n delay={delay}\n startPosition={startPosition}\n disableSameURL={disableSameURL}\n shallowRouting={shallowRouting}\n >\n <ProgressComponent\n stopDelay={stopDelay}\n delay={delay}\n startPosition={startPosition}\n disableSameURL={disableSameURL}\n shallowRouting={shallowRouting}\n {...props}\n />\n {children}\n </ProgressProvider>\n );\n};\n"]}