UNPKG

@bprogress/react

Version:

Utility to create your own NProgress bar like with React

1 lines 47 kB
{"version":3,"sources":["/Users/elliotsutton/Documents/Skyleen/npm-package/bprogress/packages/react/dist/index.cjs","../src/index.tsx","../src/providers/progress-provider.tsx","../src/hooks/use-anchor-progress.tsx","../src/components/progress.tsx","../src/utils/classnames.ts","../src/components/bar.tsx","../src/components/peg.tsx","../src/components/spinner.tsx","../src/components/spinner-icon.tsx","../src/components/indeterminate.tsx","../src/utils/with-suspense.tsx","../src/utils/with-memo.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","index_exports","Bar","Indeterminate","Peg","Progress","ProgressProvider","Spinner","SpinnerIcon","useAnchorProgress","useProgress","withMemo","withSuspense","module","exports","import_core","require","import_react","ProgressContext","createContext","context","useContext","Error","children","color","height","options","spinnerPosition","style","disableStyle","nonce","shallowRouting","disableSameURL","startPosition","delay","stopDelay","timer","useRef","isAutoStopDisabled","disableAutoStop","useCallback","current","enableAutoStop","start","autoStopDisabled","setTimeout","BProgress","set","stop","forcedStopDelay","clearTimeout","isStarted","done","inc","amount","dec","n","pause","resume","getOptions","settings","setOptions","newOptions","currentOptions","updates","nextOptions","configure","styles","useMemo","React","createElement","css","Provider","targetPreprocessor","disableAnchorClick","startOnLoad","deps","elementsWithAttachedHandlers","import_react2","timerRef","useEffect","handleAnchorClick","event","defaultPrevented","anchorElement","currentTarget","hasAttribute","preventProgress","getAttribute","element","tagName","toLowerCase","parentElement","anchorTarget","import_core2","getAnchorProperty","metaKey","ctrlKey","shiftKey","altKey","targetHref","targetUrl","URL","currentUrl","location","href","isSameURLWithoutSearch","isSameURL","handleMutation","anchorElements","Array","document","querySelectorAll","validAnchorElements","filter","anchor","isBProgressDisabled","isNotTelOrMailto","startsWith","forEach","addEventListener","mutationObserver","MutationObserver","observe","childList","subtree","originalWindowHistoryPushState","window","history","pushState","Proxy","apply","thisArg","argArray","disconnect","removeEventListener","classNames","classes","Boolean","join","BarInner","ref","as","className","classSelector","rest","Component","import_react3","forwardRef","PegInner","import_react4","SpinnerInner","import_react5","SpinnerIconInner","import_react6","ProgressInner","import_react7","display","Fragment","IndeterminateInner","import_react8","WithSuspenseComponent","props","import_react9","Suspense","shallowCompareProps","prevProps","nextProps","ignoreKeys","prevKeys","keys","includes","nextKeys","length","import_react10","memo","shouldCompareComplexProps"],"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/index.tsx\nvar index_exports = {};\n__export(index_exports, {\n Bar: () => Bar,\n Indeterminate: () => Indeterminate,\n Peg: () => Peg,\n Progress: () => Progress,\n ProgressProvider: () => ProgressProvider,\n Spinner: () => Spinner,\n SpinnerIcon: () => SpinnerIcon,\n useAnchorProgress: () => useAnchorProgress,\n useProgress: () => useProgress,\n withMemo: () => withMemo,\n withSuspense: () => withSuspense\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/providers/progress-provider.tsx\nvar import_core = require(\"@bprogress/core\");\nvar import_react = __toESM(require(\"react\"), 1);\nvar ProgressContext = (0, import_react.createContext)(\n void 0\n);\nvar useProgress = () => {\n const context = (0, import_react.useContext)(ProgressContext);\n if (!context) {\n throw new Error(\"useProgress must be used within a ProgressProvider\");\n }\n return context;\n};\nvar ProgressProvider = ({\n children,\n color = \"#0A2FFF\",\n height = \"2px\",\n options,\n spinnerPosition = \"top-right\",\n style,\n disableStyle = false,\n nonce,\n shallowRouting = false,\n disableSameURL = true,\n startPosition = 0,\n delay = 0,\n stopDelay = 0\n}) => {\n const timer = (0, import_react.useRef)(null);\n const isAutoStopDisabled = (0, import_react.useRef)(false);\n const disableAutoStop = (0, import_react.useCallback)(\n () => isAutoStopDisabled.current = true,\n []\n );\n const enableAutoStop = (0, import_react.useCallback)(\n () => isAutoStopDisabled.current = false,\n []\n );\n const start = (0, import_react.useCallback)(\n (startPosition2 = 0, delay2 = 0, autoStopDisabled = false) => {\n if (autoStopDisabled) disableAutoStop();\n timer.current = setTimeout(() => {\n if (startPosition2 > 0) import_core.BProgress.set(startPosition2);\n import_core.BProgress.start();\n }, delay2);\n },\n [disableAutoStop]\n );\n const stop = (0, import_react.useCallback)(\n (stopDelay2 = 0, forcedStopDelay = 0) => {\n setTimeout(() => {\n if (timer.current) clearTimeout(timer.current);\n timer.current = setTimeout(() => {\n if (!import_core.BProgress.isStarted()) return;\n import_core.BProgress.done();\n if (isAutoStopDisabled.current) enableAutoStop();\n }, stopDelay2);\n }, forcedStopDelay);\n },\n [enableAutoStop]\n );\n const inc = (0, import_react.useCallback)((amount) => import_core.BProgress.inc(amount), []);\n const dec = (0, import_react.useCallback)((amount) => import_core.BProgress.dec(amount), []);\n const set = (0, import_react.useCallback)((n) => import_core.BProgress.set(n), []);\n const pause = (0, import_react.useCallback)(() => import_core.BProgress.pause(), []);\n const resume = (0, import_react.useCallback)(() => import_core.BProgress.resume(), []);\n const getOptions = (0, import_react.useCallback)(() => import_core.BProgress.settings, []);\n const setOptions = (0, import_react.useCallback)(\n (newOptions) => {\n const currentOptions = getOptions();\n const updates = typeof newOptions === \"function\" ? newOptions(currentOptions) : newOptions;\n const nextOptions = { ...currentOptions, ...updates };\n import_core.BProgress.configure(nextOptions);\n },\n [getOptions]\n );\n const styles = (0, import_react.useMemo)(\n () => /* @__PURE__ */ import_react.default.createElement(\"style\", { nonce }, style || (0, import_core.css)({\n color,\n height,\n spinnerPosition\n })),\n [color, height, nonce, spinnerPosition, style]\n );\n import_core.BProgress.configure(options || {});\n return /* @__PURE__ */ import_react.default.createElement(\n ProgressContext.Provider,\n {\n value: {\n start,\n stop,\n inc,\n dec,\n set,\n pause,\n resume,\n setOptions,\n getOptions,\n isAutoStopDisabled,\n disableAutoStop,\n enableAutoStop,\n shallowRouting,\n disableSameURL,\n startPosition,\n delay,\n stopDelay\n }\n },\n !disableStyle ? styles : null,\n children\n );\n};\n\n// src/hooks/use-anchor-progress.tsx\nvar import_react2 = require(\"react\");\nvar import_core2 = require(\"@bprogress/core\");\nfunction useAnchorProgress({\n shallowRouting = false,\n disableSameURL = true,\n startPosition = 0,\n delay = 0,\n stopDelay = 0,\n targetPreprocessor,\n disableAnchorClick = false,\n startOnLoad = false,\n forcedStopDelay = 0\n}, deps = []) {\n const elementsWithAttachedHandlers = (0, import_react2.useRef)([]);\n const timerRef = (0, import_react2.useRef)(null);\n const { start, stop, isAutoStopDisabled } = useProgress();\n (0, import_react2.useEffect)(() => {\n if (startOnLoad) start(startPosition, delay);\n }, []);\n (0, import_react2.useEffect)(() => {\n if (timerRef.current) clearTimeout(timerRef.current);\n timerRef.current = setTimeout(() => {\n if (!isAutoStopDisabled.current) stop();\n }, stopDelay);\n return () => {\n if (timerRef.current) clearTimeout(timerRef.current);\n };\n }, deps);\n (0, import_react2.useEffect)(() => {\n if (disableAnchorClick) return;\n const handleAnchorClick = (event) => {\n if (event.defaultPrevented) return;\n const anchorElement = event.currentTarget;\n if (anchorElement.hasAttribute(\"download\")) return;\n const target = event.target;\n let preventProgress = target?.getAttribute(\"data-prevent-progress\") === \"true\" || anchorElement?.getAttribute(\"data-prevent-progress\") === \"true\";\n if (!preventProgress) {\n let element = target;\n while (element && element.tagName.toLowerCase() !== \"a\") {\n if (element.parentElement?.getAttribute(\"data-prevent-progress\") === \"true\") {\n preventProgress = true;\n break;\n }\n element = element.parentElement;\n }\n }\n if (preventProgress) return;\n const anchorTarget = (0, import_core2.getAnchorProperty)(anchorElement, \"target\");\n if (anchorTarget === \"_blank\") return;\n if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey)\n return;\n const targetHref = (0, import_core2.getAnchorProperty)(anchorElement, \"href\");\n const targetUrl = targetPreprocessor ? targetPreprocessor(new URL(targetHref)) : new URL(targetHref);\n const currentUrl = new URL(location.href);\n if (shallowRouting && (0, import_core2.isSameURLWithoutSearch)(targetUrl, currentUrl) && disableSameURL)\n return;\n if ((0, import_core2.isSameURL)(targetUrl, currentUrl) && disableSameURL) return;\n start(startPosition, delay);\n };\n const handleMutation = () => {\n const anchorElements = Array.from(document.querySelectorAll(\"a\"));\n const validAnchorElements = anchorElements.filter((anchor) => {\n const href = (0, import_core2.getAnchorProperty)(anchor, \"href\");\n const isBProgressDisabled = anchor.getAttribute(\"data-disable-progress\") === \"true\";\n const isNotTelOrMailto = href && !href.startsWith(\"tel:\") && !href.startsWith(\"mailto:\") && !href.startsWith(\"blob:\") && !href.startsWith(\"javascript:\");\n return !isBProgressDisabled && isNotTelOrMailto && (0, import_core2.getAnchorProperty)(anchor, \"target\") !== \"_blank\";\n });\n validAnchorElements.forEach((anchor) => {\n anchor.addEventListener(\"click\", handleAnchorClick, true);\n });\n elementsWithAttachedHandlers.current = validAnchorElements;\n };\n const mutationObserver = new MutationObserver(handleMutation);\n mutationObserver.observe(document, { childList: true, subtree: true });\n const originalWindowHistoryPushState = window.history.pushState;\n window.history.pushState = new Proxy(window.history.pushState, {\n apply: (target, thisArg, argArray) => {\n if (!isAutoStopDisabled.current) stop(stopDelay, forcedStopDelay);\n return target.apply(thisArg, argArray);\n }\n });\n return () => {\n mutationObserver.disconnect();\n elementsWithAttachedHandlers.current.forEach((anchor) => {\n anchor.removeEventListener(\"click\", handleAnchorClick, true);\n });\n elementsWithAttachedHandlers.current = [];\n window.history.pushState = originalWindowHistoryPushState;\n };\n }, [\n disableAnchorClick,\n targetPreprocessor,\n shallowRouting,\n disableSameURL,\n delay,\n stopDelay,\n startPosition,\n start,\n stop,\n forcedStopDelay,\n isAutoStopDisabled\n ]);\n}\n\n// src/components/progress.tsx\nvar import_react7 = __toESM(require(\"react\"), 1);\n\n// src/utils/classnames.ts\nfunction classNames(...classes) {\n return classes.filter(Boolean).join(\" \");\n}\n\n// src/components/bar.tsx\nvar import_react3 = __toESM(require(\"react\"), 1);\nfunction BarInner({ as, children, className, classSelector = \"bar\", ...rest }, ref) {\n const Component = as ?? \"div\";\n return import_react3.default.createElement(\n Component,\n {\n ref,\n className: classNames(classSelector, className),\n ...rest\n },\n children\n );\n}\nvar Bar = import_react3.default.forwardRef(BarInner);\n\n// src/components/peg.tsx\nvar import_react4 = __toESM(require(\"react\"), 1);\nfunction PegInner({ as, children, className, classSelector = \"peg\", ...rest }, ref) {\n const Component = as ?? \"div\";\n return import_react4.default.createElement(\n Component,\n {\n ref,\n className: classNames(classSelector, className),\n ...rest\n },\n children\n );\n}\nvar Peg = import_react4.default.forwardRef(PegInner);\n\n// src/components/spinner.tsx\nvar import_react5 = __toESM(require(\"react\"), 1);\nfunction SpinnerInner({\n as,\n children,\n className,\n classSelector = \"spinner\",\n ...rest\n}, ref) {\n const Component = as ?? \"div\";\n return import_react5.default.createElement(\n Component,\n {\n ref,\n className: classNames(classSelector, className),\n ...rest\n },\n children\n );\n}\nvar Spinner = import_react5.default.forwardRef(SpinnerInner);\n\n// src/components/spinner-icon.tsx\nvar import_react6 = __toESM(require(\"react\"), 1);\nfunction SpinnerIconInner({\n as,\n children,\n className,\n classSelector = \"spinner-icon\",\n ...rest\n}, ref) {\n const Component = as ?? \"div\";\n return import_react6.default.createElement(\n Component,\n {\n ref,\n className: classNames(classSelector, className),\n ...rest\n },\n children\n );\n}\nvar SpinnerIcon = import_react6.default.forwardRef(SpinnerIconInner);\n\n// src/components/progress.tsx\nfunction ProgressInner({ as, children, className, style, ...rest }, ref) {\n const Component = as ?? \"div\";\n return import_react7.default.createElement(\n Component,\n {\n ref,\n className: classNames(\"bprogress\", className),\n style: { ...style, display: \"none\" },\n ...rest\n },\n children || /* @__PURE__ */ import_react7.default.createElement(import_react7.default.Fragment, null, /* @__PURE__ */ import_react7.default.createElement(Bar, null, /* @__PURE__ */ import_react7.default.createElement(Peg, null)), /* @__PURE__ */ import_react7.default.createElement(Spinner, null, /* @__PURE__ */ import_react7.default.createElement(SpinnerIcon, null)))\n );\n}\nvar Progress = import_react7.default.forwardRef(ProgressInner);\n\n// src/components/indeterminate.tsx\nvar import_react8 = __toESM(require(\"react\"), 1);\nfunction IndeterminateInner({\n as,\n className,\n classSelector = \"indeterminate\",\n ...rest\n}, ref) {\n const Component = as ?? \"div\";\n return import_react8.default.createElement(\n Component,\n {\n ref,\n className: classNames(classSelector, className),\n ...rest\n },\n import_react8.default.createElement(\"div\", { className: \"inc\" }),\n import_react8.default.createElement(\"div\", { className: \"dec\" })\n );\n}\nvar Indeterminate = import_react8.default.forwardRef(IndeterminateInner);\n\n// src/utils/with-suspense.tsx\nvar import_react9 = __toESM(require(\"react\"), 1);\nfunction withSuspense(Component) {\n return function WithSuspenseComponent(props) {\n return /* @__PURE__ */ import_react9.default.createElement(import_react9.Suspense, null, /* @__PURE__ */ import_react9.default.createElement(Component, { ...props }));\n };\n}\n\n// src/utils/with-memo.tsx\nvar import_react10 = require(\"react\");\nfunction shallowCompareProps(prevProps, nextProps, ignoreKeys = []) {\n const prevKeys = Object.keys(prevProps).filter(\n (key) => !ignoreKeys.includes(key)\n );\n const nextKeys = Object.keys(nextProps).filter(\n (key) => !ignoreKeys.includes(key)\n );\n if (prevKeys.length !== nextKeys.length) {\n return false;\n }\n for (const key of prevKeys) {\n if (prevProps[key] !== nextProps[key]) {\n return false;\n }\n }\n return true;\n}\nfunction withMemo(Component, ignoreKeys = [\"memo\", \"shouldCompareComplexProps\"]) {\n return (0, import_react10.memo)(Component, (prevProps, nextProps) => {\n if (nextProps.memo === false) return false;\n if (!nextProps.shouldCompareComplexProps) return true;\n return shallowCompareProps(prevProps, nextProps, ignoreKeys);\n });\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n Bar,\n Indeterminate,\n Peg,\n Progress,\n ProgressProvider,\n Spinner,\n SpinnerIcon,\n useAnchorProgress,\n useProgress,\n withMemo,\n withSuspense\n});\n","export * from './providers/progress-provider';\nexport * from './hooks/use-anchor-progress';\nexport * from './components';\nexport * from './utils';\nexport type * from './types';\nexport type { BProgressOptions, SpinnerPosition } from '@bprogress/core';\n","import { BProgress, css, type BProgressOptions } from '@bprogress/core';\nimport React, {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useRef,\n} from 'react';\nimport type { ProgressProviderProps, ProgressContextValue } from '../types';\n\nconst ProgressContext = createContext<ProgressContextValue | undefined>(\n undefined,\n);\n\nexport const useProgress = (): ProgressContextValue => {\n const context = useContext(ProgressContext);\n if (!context) {\n throw new Error('useProgress must be used within a ProgressProvider');\n }\n return context;\n};\n\nexport const ProgressProvider = ({\n children,\n color = '#0A2FFF',\n height = '2px',\n options,\n spinnerPosition = 'top-right',\n style,\n disableStyle = false,\n nonce,\n shallowRouting = false,\n disableSameURL = true,\n startPosition = 0,\n delay = 0,\n stopDelay = 0,\n}: ProgressProviderProps) => {\n const timer = useRef<NodeJS.Timeout | null>(null);\n const isAutoStopDisabled = useRef(false);\n\n const disableAutoStop = useCallback(\n () => (isAutoStopDisabled.current = true),\n [],\n );\n const enableAutoStop = useCallback(\n () => (isAutoStopDisabled.current = false),\n [],\n );\n const start = useCallback(\n (startPosition = 0, delay = 0, autoStopDisabled = false) => {\n if (autoStopDisabled) disableAutoStop();\n timer.current = setTimeout(() => {\n if (startPosition > 0) BProgress.set(startPosition);\n BProgress.start();\n }, delay);\n },\n [disableAutoStop],\n );\n\n const stop = useCallback(\n (stopDelay = 0, forcedStopDelay = 0) => {\n setTimeout(() => {\n if (timer.current) clearTimeout(timer.current);\n timer.current = setTimeout(() => {\n if (!BProgress.isStarted()) return;\n BProgress.done();\n if (isAutoStopDisabled.current) enableAutoStop();\n }, stopDelay);\n }, forcedStopDelay);\n },\n [enableAutoStop],\n );\n\n const inc = useCallback((amount?: number) => BProgress.inc(amount), []);\n\n const dec = useCallback((amount?: number) => BProgress.dec(amount), []);\n\n const set = useCallback((n: number) => BProgress.set(n), []);\n\n const pause = useCallback(() => BProgress.pause(), []);\n\n const resume = useCallback(() => BProgress.resume(), []);\n\n const getOptions = useCallback(() => BProgress.settings, []);\n\n const setOptions = useCallback(\n (\n newOptions:\n | Partial<BProgressOptions>\n | ((prevOptions: BProgressOptions) => Partial<BProgressOptions>),\n ) => {\n const currentOptions = getOptions();\n const updates =\n typeof newOptions === 'function'\n ? newOptions(currentOptions)\n : newOptions;\n const nextOptions = { ...currentOptions, ...updates };\n BProgress.configure(nextOptions);\n },\n [getOptions],\n );\n\n const styles = useMemo(\n () => (\n <style nonce={nonce}>\n {style ||\n css({\n color,\n height,\n spinnerPosition,\n })}\n </style>\n ),\n [color, height, nonce, spinnerPosition, style],\n );\n\n BProgress.configure(options || {});\n\n return (\n <ProgressContext.Provider\n value={{\n start,\n stop,\n inc,\n dec,\n set,\n pause,\n resume,\n setOptions,\n getOptions,\n isAutoStopDisabled,\n disableAutoStop,\n enableAutoStop,\n shallowRouting,\n disableSameURL,\n startPosition,\n delay,\n stopDelay,\n }}\n >\n {!disableStyle ? styles : null}\n {children}\n </ProgressContext.Provider>\n );\n};\n","import { useEffect, useRef } from 'react';\nimport {\n isSameURL,\n isSameURLWithoutSearch,\n getAnchorProperty,\n} from '@bprogress/core';\nimport { useProgress } from '../providers/progress-provider';\nimport type { UseAnchorProgressOptions } from '../types';\n\ntype PushStateInput = [\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: any,\n unused: string,\n url?: string | URL | null | undefined,\n];\n\nexport function useAnchorProgress(\n {\n shallowRouting = false,\n disableSameURL = true,\n startPosition = 0,\n delay = 0,\n stopDelay = 0,\n targetPreprocessor,\n disableAnchorClick = false,\n startOnLoad = false,\n forcedStopDelay = 0,\n }: UseAnchorProgressOptions,\n deps: unknown[] = [],\n) {\n const elementsWithAttachedHandlers = useRef<\n (HTMLAnchorElement | SVGAElement)[]\n >([]);\n const timerRef = useRef<NodeJS.Timeout | null>(null);\n\n const { start, stop, isAutoStopDisabled } = useProgress();\n\n useEffect(() => {\n if (startOnLoad) start(startPosition, delay);\n // We want to start the progress bar on load only once\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (timerRef.current) clearTimeout(timerRef.current);\n timerRef.current = setTimeout(() => {\n if (!isAutoStopDisabled.current) stop();\n }, stopDelay);\n\n return () => {\n if (timerRef.current) clearTimeout(timerRef.current);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n\n useEffect(() => {\n if (disableAnchorClick) return;\n\n const handleAnchorClick = (event: MouseEvent) => {\n // Skip preventDefault\n if (event.defaultPrevented) return;\n\n const anchorElement = event.currentTarget as\n | HTMLAnchorElement\n | SVGAElement;\n\n if (anchorElement.hasAttribute('download')) return;\n\n const target = event.target as HTMLElement | Element;\n let preventProgress =\n target?.getAttribute('data-prevent-progress') === 'true' ||\n anchorElement?.getAttribute('data-prevent-progress') === 'true';\n\n if (!preventProgress) {\n let element: HTMLElement | Element | null = target;\n\n while (element && element.tagName.toLowerCase() !== 'a') {\n if (\n element.parentElement?.getAttribute('data-prevent-progress') ===\n 'true'\n ) {\n preventProgress = true;\n break;\n }\n element = element.parentElement;\n }\n }\n\n if (preventProgress) return;\n\n const anchorTarget = getAnchorProperty(anchorElement, 'target');\n // Skip anchors with target=\"_blank\"\n if (anchorTarget === '_blank') return;\n\n // Skip control/command/option/alt+click\n if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey)\n return;\n\n const targetHref = getAnchorProperty(anchorElement, 'href');\n const targetUrl = targetPreprocessor\n ? targetPreprocessor(new URL(targetHref))\n : new URL(targetHref);\n const currentUrl = new URL(location.href);\n\n if (\n shallowRouting &&\n isSameURLWithoutSearch(targetUrl, currentUrl) &&\n disableSameURL\n )\n return;\n if (isSameURL(targetUrl, currentUrl) && disableSameURL) return;\n\n start(startPosition, delay);\n };\n\n const handleMutation: MutationCallback = () => {\n const anchorElements = Array.from(document.querySelectorAll('a')) as (\n | HTMLAnchorElement\n | SVGAElement\n )[];\n\n const validAnchorElements = anchorElements.filter((anchor) => {\n const href = getAnchorProperty(anchor, 'href');\n const isBProgressDisabled =\n anchor.getAttribute('data-disable-progress') === 'true';\n const isNotTelOrMailto =\n href &&\n !href.startsWith('tel:') &&\n !href.startsWith('mailto:') &&\n !href.startsWith('blob:') &&\n !href.startsWith('javascript:');\n\n return (\n !isBProgressDisabled &&\n isNotTelOrMailto &&\n getAnchorProperty(anchor, 'target') !== '_blank'\n );\n });\n\n validAnchorElements.forEach((anchor) => {\n anchor.addEventListener('click', handleAnchorClick, true);\n });\n elementsWithAttachedHandlers.current = validAnchorElements;\n };\n\n const mutationObserver = new MutationObserver(handleMutation);\n mutationObserver.observe(document, { childList: true, subtree: true });\n\n const originalWindowHistoryPushState = window.history.pushState;\n window.history.pushState = new Proxy(window.history.pushState, {\n apply: (target, thisArg, argArray: PushStateInput) => {\n if (!isAutoStopDisabled.current) stop(stopDelay, forcedStopDelay);\n return target.apply(thisArg, argArray);\n },\n });\n\n return () => {\n mutationObserver.disconnect();\n elementsWithAttachedHandlers.current.forEach((anchor) => {\n anchor.removeEventListener('click', handleAnchorClick, true);\n });\n elementsWithAttachedHandlers.current = [];\n window.history.pushState = originalWindowHistoryPushState;\n };\n }, [\n disableAnchorClick,\n targetPreprocessor,\n shallowRouting,\n disableSameURL,\n delay,\n stopDelay,\n startPosition,\n start,\n stop,\n forcedStopDelay,\n isAutoStopDisabled,\n ]);\n}\n","import React from 'react';\nimport type { ProgressComponentProps } from '../types';\nimport { classNames } from '../utils/classnames';\nimport { Bar } from './bar';\nimport { Peg } from './peg';\nimport { Spinner } from './spinner';\nimport { SpinnerIcon } from './spinner-icon';\n\nexport type ProgressProps<T extends React.ElementType = 'div'> = Omit<\n ProgressComponentProps<T>,\n 'classSelector'\n>;\n\nfunction ProgressInner<T extends React.ElementType = 'div'>(\n { as, children, className, style, ...rest }: ProgressProps<T>,\n ref: React.ForwardedRef<React.ComponentRef<T>>,\n) {\n const Component = as ?? ('div' as T);\n return React.createElement(\n Component,\n {\n ref,\n className: classNames('bprogress', className),\n style: { ...style, display: 'none' } as React.CSSProperties,\n ...(rest as React.ComponentPropsWithoutRef<T>),\n },\n children || (\n <>\n <Bar>\n <Peg />\n </Bar>\n <Spinner>\n <SpinnerIcon />\n </Spinner>\n </>\n ),\n );\n}\n\nexport const Progress = React.forwardRef(ProgressInner) as <\n T extends React.ElementType = 'div',\n>(\n props: ProgressProps<T> & { ref?: React.ForwardedRef<React.ComponentRef<T>> },\n) => ReturnType<typeof ProgressInner>;\n","export function classNames(\n ...classes: (string | undefined | null | false)[]\n): string {\n return classes.filter(Boolean).join(' ');\n}\n","import React from 'react';\nimport type { ProgressComponentProps } from '../types';\nimport { classNames } from '../utils/classnames';\n\nexport type BarProps<T extends React.ElementType = 'div'> =\n ProgressComponentProps<T>;\n\nfunction BarInner<T extends React.ElementType = 'div'>(\n { as, children, className, classSelector = 'bar', ...rest }: BarProps<T>,\n ref: React.ForwardedRef<React.ComponentRef<T>>,\n) {\n const Component = as ?? ('div' as T);\n return React.createElement(\n Component,\n {\n ref,\n className: classNames(classSelector, className),\n ...(rest as React.ComponentPropsWithoutRef<T>),\n },\n children,\n );\n}\n\nexport const Bar = React.forwardRef(BarInner) as <\n T extends React.ElementType = 'div',\n>(\n props: BarProps<T> & { ref?: React.ForwardedRef<React.ComponentRef<T>> },\n) => ReturnType<typeof BarInner>;\n","import React from 'react';\nimport type { ProgressComponentProps } from '../types';\nimport { classNames } from '../utils/classnames';\n\nexport type PegProps<T extends React.ElementType = 'div'> = Omit<\n ProgressComponentProps<T>,\n 'classSelector'\n> & {\n classSelector?: string;\n};\n\nfunction PegInner<T extends React.ElementType = 'div'>(\n { as, children, className, classSelector = 'peg', ...rest }: PegProps<T>,\n ref: React.ForwardedRef<React.ComponentRef<T>>,\n) {\n const Component = as ?? ('div' as T);\n return React.createElement(\n Component,\n {\n ref,\n className: classNames(classSelector, className),\n ...(rest as React.ComponentPropsWithoutRef<T>),\n },\n children,\n );\n}\n\nexport const Peg = React.forwardRef(PegInner) as <\n T extends React.ElementType = 'div',\n>(\n props: PegProps<T> & { ref?: React.ForwardedRef<React.ComponentRef<T>> },\n) => ReturnType<typeof PegInner>;\n","import React from 'react';\nimport type { ProgressComponentProps } from '../types';\nimport { classNames } from '../utils/classnames';\n\nexport type SpinnerProps<T extends React.ElementType = 'div'> =\n ProgressComponentProps<T>;\n\nfunction SpinnerInner<T extends React.ElementType = 'div'>(\n {\n as,\n children,\n className,\n classSelector = 'spinner',\n ...rest\n }: SpinnerProps<T>,\n ref: React.ForwardedRef<React.ComponentRef<T>>,\n) {\n const Component = as ?? ('div' as T);\n return React.createElement(\n Component,\n {\n ref,\n className: classNames(classSelector, className),\n ...(rest as React.ComponentPropsWithoutRef<T>),\n },\n children,\n );\n}\n\nexport const Spinner = React.forwardRef(SpinnerInner) as <\n T extends React.ElementType = 'div',\n>(\n props: SpinnerProps<T> & { ref?: React.ForwardedRef<React.ComponentRef<T>> },\n) => ReturnType<typeof SpinnerInner>;\n","import React from 'react';\nimport type { ProgressComponentProps } from '../types';\nimport { classNames } from '../utils/classnames';\n\nexport type SpinnerIconProps<T extends React.ElementType = 'div'> = Omit<\n ProgressComponentProps<T>,\n 'classSelector'\n> & {\n classSelector?: string;\n};\n\nfunction SpinnerIconInner<T extends React.ElementType = 'div'>(\n {\n as,\n children,\n className,\n classSelector = 'spinner-icon',\n ...rest\n }: SpinnerIconProps<T>,\n ref: React.ForwardedRef<React.ComponentRef<T>>,\n) {\n const Component = as ?? ('div' as T);\n return React.createElement(\n Component,\n {\n ref,\n className: classNames(classSelector, className),\n ...(rest as React.ComponentPropsWithoutRef<T>),\n },\n children,\n );\n}\n\nexport const SpinnerIcon = React.forwardRef(SpinnerIconInner) as <\n T extends React.ElementType = 'div',\n>(\n props: SpinnerIconProps<T> & {\n ref?: React.ForwardedRef<React.ComponentRef<T>>;\n },\n) => ReturnType<typeof SpinnerIconInner>;\n","import React from 'react';\nimport type { ProgressComponentProps } from '../types';\nimport { classNames } from '../utils/classnames';\n\nexport type IndeterminateProps<T extends React.ElementType = 'div'> =\n ProgressComponentProps<T> & { children?: never };\n\nfunction IndeterminateInner<T extends React.ElementType = 'div'>(\n {\n as,\n className,\n classSelector = 'indeterminate',\n ...rest\n }: IndeterminateProps<T>,\n ref: React.ForwardedRef<React.ComponentRef<T>>,\n) {\n const Component = as ?? ('div' as T);\n return React.createElement(\n Component,\n {\n ref,\n className: classNames(classSelector, className),\n ...(rest as React.ComponentPropsWithoutRef<T>),\n },\n React.createElement('div', { className: 'inc' }),\n React.createElement('div', { className: 'dec' }),\n );\n}\n\nexport const Indeterminate = React.forwardRef(IndeterminateInner) as <\n T extends React.ElementType = 'div',\n>(\n props: IndeterminateProps<T> & {\n ref?: React.ForwardedRef<React.ComponentRef<T>>;\n },\n) => ReturnType<typeof IndeterminateInner>;\n","import React, { ComponentType, Suspense } from 'react';\n\nexport function withSuspense<P extends object>(Component: ComponentType<P>) {\n return function WithSuspenseComponent(props: P) {\n return (\n <Suspense>\n <Component {...props} />\n </Suspense>\n );\n };\n}\n","import React, { memo } from 'react';\n\nexport function shallowCompareProps<T extends object>(\n prevProps: T,\n nextProps: T,\n ignoreKeys: string[] = [],\n): boolean {\n const prevKeys = Object.keys(prevProps).filter(\n (key) => !ignoreKeys.includes(key),\n );\n const nextKeys = Object.keys(nextProps).filter(\n (key) => !ignoreKeys.includes(key),\n );\n\n if (prevKeys.length !== nextKeys.length) {\n return false;\n }\n\n for (const key of prevKeys) {\n if (prevProps[key as keyof T] !== nextProps[key as keyof T]) {\n return false;\n }\n }\n return true;\n}\n\nexport function withMemo<\n P extends { memo?: boolean; shouldCompareComplexProps?: boolean },\n>(\n Component: React.ComponentType<P>,\n ignoreKeys: string[] = ['memo', 'shouldCompareComplexProps'],\n) {\n return memo(Component, (prevProps, nextProps) => {\n if (nextProps.memo === false) return false;\n if (!nextProps.shouldCompareComplexProps) return true;\n return shallowCompareProps(prevProps, nextProps, ignoreKeys);\n });\n}\n"]}