Big News: Socket Selected for OpenAI's Cybersecurity Grant Program.Details
Socket
Book a DemoSign in
Socket

next-nprogress-bar

Package Overview
Dependencies
Maintainers
1
Versions
46
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

next-nprogress-bar - npm Package Compare versions

Comparing version
2.0.1
to
2.0.2
+9
-0
dist/appDir.d.ts
import React from 'react';
import { ProgressBarProps } from '.';
import { NavigateOptions } from 'next/dist/shared/lib/app-router-context';
export declare const AppProgressBar: React.MemoExoticComponent<({ color, height, options, shallowRouting, delay, style, }: ProgressBarProps) => React.JSX.Element>;
export declare function useRouter(): {
push: (href: string, options?: NavigateOptions) => void;
back(): void;
forward(): void;
refresh(): void;
replace(href: string, options?: NavigateOptions | undefined): void;
prefetch(href: string, options?: import("next/dist/shared/lib/app-router-context").PrefetchOptions | undefined): void;
};
+1
-4

@@ -18,3 +18,2 @@ export interface NProgressOptions {

options?: Partial<NProgressOptions>;
appDirectory?: boolean;
shallowRouting?: boolean;

@@ -28,3 +27,2 @@ delay?: number;

* @param options NProgress options. @default undefined
* @param appDirectory If your are in the app directory - @default false
* @param shallowRouting If the progress bar is not displayed when you use shallow routing - @default false

@@ -34,4 +32,3 @@ * @param delay When the page loads faster than the progress bar, it does not display - @default 0

*/
export { AppProgressBar } from './appDir';
export { useRouter } from './appRouter';
export { AppProgressBar, useRouter } from './appDir';
export { PagesProgressBar } from './pagesDir';
+39
-11

@@ -8,2 +8,30 @@ 'use strict';

/******************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise */
var __assign = function() {
__assign = Object.assign || function __assign(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
function isSameURL(target, current) {

@@ -41,5 +69,7 @@ var cleanTarget = target.protocol + '//' + target.host + target.pathname;

var currentUrl = new URL(location.href);
if (!shallowRouting || !isSameURL(targetUrl, currentUrl)) {
startProgress();
}
if (shallowRouting && isSameURL(targetUrl, currentUrl))
return;
if ((targetUrl === null || targetUrl === void 0 ? void 0 : targetUrl.href) === (currentUrl === null || currentUrl === void 0 ? void 0 : currentUrl.href))
return;
startProgress();
};

@@ -63,12 +93,10 @@ var handleMutation = function () {

}, function () { return true; });
var useRouter = function () {
function useRouter() {
var router = navigation.useRouter();
var push = router.push;
router.push = function (href, options) {
function push(href, options) {
NProgress.start();
push(href, options);
};
return router;
};
return router.push(href, options);
}
return __assign(__assign({}, router), { push: push });
}

@@ -75,0 +103,0 @@ var PagesProgressBar = React.memo(function (_a) {

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sources":["../src/utils/sameURL.ts","../src/appDir.tsx","../src/appRouter.tsx","../src/pagesDir.tsx"],"sourcesContent":["export function isSameURL(target: URL, current: URL) {\n const cleanTarget = target.protocol + '//' + target.host + target.pathname;\n const cleanCurrent =\n current.protocol + '//' + current.host + current.pathname;\n\n return cleanTarget === cleanCurrent;\n}\n","import React, { useEffect } from 'react';\nimport NProgress from 'nprogress';\nimport { isSameURL } from './utils/sameURL';\nimport { usePathname, useSearchParams } from 'next/navigation';\nimport { ProgressBarProps } from '.';\n\ntype PushStateInput = [\n data: any,\n unused: string,\n url?: string | URL | null | undefined,\n];\n\nexport const AppProgressBar = React.memo(\n ({\n color = '#0A2FFF',\n height = '2px',\n options,\n shallowRouting = false,\n delay = 0,\n style,\n }: ProgressBarProps) => {\n const styles = (\n <style>\n {style ||\n `\n #nprogress {\n pointer-events: none;\n }\n \n #nprogress .bar {\n background: ${color};\n \n position: fixed;\n z-index: 1031;\n top: 0;\n left: 0;\n \n width: 100%;\n height: ${height};\n }\n \n /* Fancy blur effect */\n #nprogress .peg {\n display: block;\n position: absolute;\n right: 0px;\n width: 100px;\n height: 100%;\n box-shadow: 0 0 10px ${color}, 0 0 5px ${color};\n opacity: 1.0;\n \n -webkit-transform: rotate(3deg) translate(0px, -4px);\n -ms-transform: rotate(3deg) translate(0px, -4px);\n transform: rotate(3deg) translate(0px, -4px);\n }\n \n /* Remove these to get rid of the spinner */\n #nprogress .spinner {\n display: block;\n position: fixed;\n z-index: 1031;\n top: 15px;\n right: 15px;\n }\n \n #nprogress .spinner-icon {\n width: 18px;\n height: 18px;\n box-sizing: border-box;\n \n border: solid 2px transparent;\n border-top-color: ${color};\n border-left-color: ${color};\n border-radius: 50%;\n \n -webkit-animation: nprogress-spinner 400ms linear infinite;\n animation: nprogress-spinner 400ms linear infinite;\n }\n \n .nprogress-custom-parent {\n overflow: hidden;\n position: relative;\n }\n \n .nprogress-custom-parent #nprogress .spinner,\n .nprogress-custom-parent #nprogress .bar {\n position: absolute;\n }\n \n @-webkit-keyframes nprogress-spinner {\n 0% { -webkit-transform: rotate(0deg); }\n 100% { -webkit-transform: rotate(360deg); }\n }\n @keyframes nprogress-spinner {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n `}\n </style>\n );\n\n NProgress.configure(options || {});\n\n const pathname = usePathname();\n const searchParams = useSearchParams();\n\n useEffect(() => {\n NProgress.done();\n }, [pathname, searchParams]);\n\n useEffect(() => {\n let timer: NodeJS.Timeout;\n\n const startProgress = () => {\n timer = setTimeout(NProgress.start, delay);\n };\n\n const stopProgress = () => {\n clearTimeout(timer);\n NProgress.done();\n };\n\n const handleAnchorClick = (event: MouseEvent) => {\n const anchorElement = event.currentTarget as HTMLAnchorElement;\n\n // Skip anchors with target=\"_blank\"\n if (anchorElement.target === '_blank') return;\n\n const targetUrl = new URL(anchorElement.href);\n const currentUrl = new URL(location.href);\n\n if (!shallowRouting || !isSameURL(targetUrl, currentUrl)) {\n startProgress();\n }\n };\n\n const handleMutation: MutationCallback = () => {\n const anchorElements = document.querySelectorAll('a');\n anchorElements.forEach((anchor) =>\n anchor.addEventListener('click', handleAnchorClick),\n );\n };\n\n const mutationObserver = new MutationObserver(handleMutation);\n mutationObserver.observe(document, { childList: true, subtree: true });\n\n window.history.pushState = new Proxy(window.history.pushState, {\n apply: (target, thisArg, argArray: PushStateInput) => {\n stopProgress();\n return target.apply(thisArg, argArray);\n },\n });\n }, []);\n\n return styles;\n },\n () => true,\n);\n","import { useRouter as useNextRouter } from 'next/navigation';\nimport NProgress from 'nprogress';\n\nexport const useRouter = () => {\n const router = useNextRouter();\n\n const { push } = router;\n\n router.push = (href, options) => {\n NProgress.start();\n push(href, options);\n };\n\n return router;\n};\n","import React, { useEffect } from 'react';\nimport NProgress from 'nprogress';\nimport { isSameURL } from './utils/sameURL';\nimport Router from 'next/router';\nimport { ProgressBarProps } from '.';\n\nexport const PagesProgressBar = React.memo(\n ({\n color = '#0A2FFF',\n height = '2px',\n options,\n shallowRouting = false,\n delay = 0,\n style,\n }: ProgressBarProps) => {\n const styles = (\n <style>\n {style ||\n `\n #nprogress {\n pointer-events: none;\n }\n \n #nprogress .bar {\n background: ${color};\n \n position: fixed;\n z-index: 1031;\n top: 0;\n left: 0;\n \n width: 100%;\n height: ${height};\n }\n \n /* Fancy blur effect */\n #nprogress .peg {\n display: block;\n position: absolute;\n right: 0px;\n width: 100px;\n height: 100%;\n box-shadow: 0 0 10px ${color}, 0 0 5px ${color};\n opacity: 1.0;\n \n -webkit-transform: rotate(3deg) translate(0px, -4px);\n -ms-transform: rotate(3deg) translate(0px, -4px);\n transform: rotate(3deg) translate(0px, -4px);\n }\n \n /* Remove these to get rid of the spinner */\n #nprogress .spinner {\n display: block;\n position: fixed;\n z-index: 1031;\n top: 15px;\n right: 15px;\n }\n \n #nprogress .spinner-icon {\n width: 18px;\n height: 18px;\n box-sizing: border-box;\n \n border: solid 2px transparent;\n border-top-color: ${color};\n border-left-color: ${color};\n border-radius: 50%;\n \n -webkit-animation: nprogress-spinner 400ms linear infinite;\n animation: nprogress-spinner 400ms linear infinite;\n }\n \n .nprogress-custom-parent {\n overflow: hidden;\n position: relative;\n }\n \n .nprogress-custom-parent #nprogress .spinner,\n .nprogress-custom-parent #nprogress .bar {\n position: absolute;\n }\n \n @-webkit-keyframes nprogress-spinner {\n 0% { -webkit-transform: rotate(0deg); }\n 100% { -webkit-transform: rotate(360deg); }\n }\n @keyframes nprogress-spinner {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n `}\n </style>\n );\n\n NProgress.configure(options || {});\n\n useEffect(() => {\n let timer: NodeJS.Timeout;\n\n const startProgress = () => {\n timer = setTimeout(NProgress.start, delay);\n };\n\n const stopProgress = () => {\n clearTimeout(timer);\n NProgress.done();\n };\n\n const handleRouteStart = (url: string) => {\n const targetUrl = new URL(url, location.href);\n const currentUrl = new URL(Router.route, location.href);\n\n if (!shallowRouting || !isSameURL(targetUrl, currentUrl)) {\n startProgress();\n }\n };\n const handleRouteDone = () => stopProgress();\n\n Router.events.on('routeChangeStart', handleRouteStart);\n Router.events.on('routeChangeComplete', handleRouteDone);\n Router.events.on('routeChangeError', handleRouteDone);\n\n return () => {\n // Make sure to remove the event handler on unmount!\n Router.events.off('routeChangeStart', handleRouteStart);\n Router.events.off('routeChangeComplete', handleRouteDone);\n Router.events.off('routeChangeError', handleRouteDone);\n };\n }, []);\n\n return styles;\n },\n () => true,\n);\n"],"names":["usePathname","useSearchParams","useEffect","useNextRouter"],"mappings":"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"}
{"version":3,"file":"index.js","sources":["../src/utils/sameURL.ts","../src/appDir.tsx","../src/pagesDir.tsx"],"sourcesContent":["export function isSameURL(target: URL, current: URL) {\n const cleanTarget = target.protocol + '//' + target.host + target.pathname;\n const cleanCurrent =\n current.protocol + '//' + current.host + current.pathname;\n\n return cleanTarget === cleanCurrent;\n}\n","import React, { useEffect } from 'react';\nimport NProgress from 'nprogress';\nimport { isSameURL } from './utils/sameURL';\nimport {\n usePathname,\n useSearchParams,\n useRouter as useNextRouter,\n} from 'next/navigation';\nimport { ProgressBarProps } from '.';\nimport { NavigateOptions } from 'next/dist/shared/lib/app-router-context';\n\ntype PushStateInput = [\n data: any,\n unused: string,\n url?: string | URL | null | undefined,\n];\n\nexport const AppProgressBar = React.memo(\n ({\n color = '#0A2FFF',\n height = '2px',\n options,\n shallowRouting = false,\n delay = 0,\n style,\n }: ProgressBarProps) => {\n const styles = (\n <style>\n {style ||\n `\n #nprogress {\n pointer-events: none;\n }\n \n #nprogress .bar {\n background: ${color};\n \n position: fixed;\n z-index: 1031;\n top: 0;\n left: 0;\n \n width: 100%;\n height: ${height};\n }\n \n /* Fancy blur effect */\n #nprogress .peg {\n display: block;\n position: absolute;\n right: 0px;\n width: 100px;\n height: 100%;\n box-shadow: 0 0 10px ${color}, 0 0 5px ${color};\n opacity: 1.0;\n \n -webkit-transform: rotate(3deg) translate(0px, -4px);\n -ms-transform: rotate(3deg) translate(0px, -4px);\n transform: rotate(3deg) translate(0px, -4px);\n }\n \n /* Remove these to get rid of the spinner */\n #nprogress .spinner {\n display: block;\n position: fixed;\n z-index: 1031;\n top: 15px;\n right: 15px;\n }\n \n #nprogress .spinner-icon {\n width: 18px;\n height: 18px;\n box-sizing: border-box;\n \n border: solid 2px transparent;\n border-top-color: ${color};\n border-left-color: ${color};\n border-radius: 50%;\n \n -webkit-animation: nprogress-spinner 400ms linear infinite;\n animation: nprogress-spinner 400ms linear infinite;\n }\n \n .nprogress-custom-parent {\n overflow: hidden;\n position: relative;\n }\n \n .nprogress-custom-parent #nprogress .spinner,\n .nprogress-custom-parent #nprogress .bar {\n position: absolute;\n }\n \n @-webkit-keyframes nprogress-spinner {\n 0% { -webkit-transform: rotate(0deg); }\n 100% { -webkit-transform: rotate(360deg); }\n }\n @keyframes nprogress-spinner {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n `}\n </style>\n );\n\n NProgress.configure(options || {});\n\n const pathname = usePathname();\n const searchParams = useSearchParams();\n\n useEffect(() => {\n NProgress.done();\n }, [pathname, searchParams]);\n\n useEffect(() => {\n let timer: NodeJS.Timeout;\n\n const startProgress = () => {\n timer = setTimeout(NProgress.start, delay);\n };\n\n const stopProgress = () => {\n clearTimeout(timer);\n NProgress.done();\n };\n\n const handleAnchorClick = (event: MouseEvent) => {\n const anchorElement = event.currentTarget as HTMLAnchorElement;\n\n // Skip anchors with target=\"_blank\"\n if (anchorElement.target === '_blank') return;\n\n const targetUrl = new URL(anchorElement.href);\n const currentUrl = new URL(location.href);\n\n if (shallowRouting && isSameURL(targetUrl, currentUrl)) return;\n if (targetUrl?.href === currentUrl?.href) return;\n\n startProgress();\n };\n\n const handleMutation: MutationCallback = () => {\n const anchorElements = document.querySelectorAll('a');\n anchorElements.forEach((anchor) =>\n anchor.addEventListener('click', handleAnchorClick),\n );\n };\n\n const mutationObserver = new MutationObserver(handleMutation);\n mutationObserver.observe(document, { childList: true, subtree: true });\n\n window.history.pushState = new Proxy(window.history.pushState, {\n apply: (target, thisArg, argArray: PushStateInput) => {\n stopProgress();\n return target.apply(thisArg, argArray);\n },\n });\n }, []);\n\n return styles;\n },\n () => true,\n);\n\nexport function useRouter() {\n const router = useNextRouter();\n\n function push(href: string, options?: NavigateOptions) {\n NProgress.start();\n return router.push(href, options);\n }\n\n return { ...router, push };\n}\n","import React, { useEffect } from 'react';\nimport NProgress from 'nprogress';\nimport { isSameURL } from './utils/sameURL';\nimport Router from 'next/router';\nimport { ProgressBarProps } from '.';\n\nexport const PagesProgressBar = React.memo(\n ({\n color = '#0A2FFF',\n height = '2px',\n options,\n shallowRouting = false,\n delay = 0,\n style,\n }: ProgressBarProps) => {\n const styles = (\n <style>\n {style ||\n `\n #nprogress {\n pointer-events: none;\n }\n \n #nprogress .bar {\n background: ${color};\n \n position: fixed;\n z-index: 1031;\n top: 0;\n left: 0;\n \n width: 100%;\n height: ${height};\n }\n \n /* Fancy blur effect */\n #nprogress .peg {\n display: block;\n position: absolute;\n right: 0px;\n width: 100px;\n height: 100%;\n box-shadow: 0 0 10px ${color}, 0 0 5px ${color};\n opacity: 1.0;\n \n -webkit-transform: rotate(3deg) translate(0px, -4px);\n -ms-transform: rotate(3deg) translate(0px, -4px);\n transform: rotate(3deg) translate(0px, -4px);\n }\n \n /* Remove these to get rid of the spinner */\n #nprogress .spinner {\n display: block;\n position: fixed;\n z-index: 1031;\n top: 15px;\n right: 15px;\n }\n \n #nprogress .spinner-icon {\n width: 18px;\n height: 18px;\n box-sizing: border-box;\n \n border: solid 2px transparent;\n border-top-color: ${color};\n border-left-color: ${color};\n border-radius: 50%;\n \n -webkit-animation: nprogress-spinner 400ms linear infinite;\n animation: nprogress-spinner 400ms linear infinite;\n }\n \n .nprogress-custom-parent {\n overflow: hidden;\n position: relative;\n }\n \n .nprogress-custom-parent #nprogress .spinner,\n .nprogress-custom-parent #nprogress .bar {\n position: absolute;\n }\n \n @-webkit-keyframes nprogress-spinner {\n 0% { -webkit-transform: rotate(0deg); }\n 100% { -webkit-transform: rotate(360deg); }\n }\n @keyframes nprogress-spinner {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n `}\n </style>\n );\n\n NProgress.configure(options || {});\n\n useEffect(() => {\n let timer: NodeJS.Timeout;\n\n const startProgress = () => {\n timer = setTimeout(NProgress.start, delay);\n };\n\n const stopProgress = () => {\n clearTimeout(timer);\n NProgress.done();\n };\n\n const handleRouteStart = (url: string) => {\n const targetUrl = new URL(url, location.href);\n const currentUrl = new URL(Router.route, location.href);\n\n if (!shallowRouting || !isSameURL(targetUrl, currentUrl)) {\n startProgress();\n }\n };\n const handleRouteDone = () => stopProgress();\n\n Router.events.on('routeChangeStart', handleRouteStart);\n Router.events.on('routeChangeComplete', handleRouteDone);\n Router.events.on('routeChangeError', handleRouteDone);\n\n return () => {\n // Make sure to remove the event handler on unmount!\n Router.events.off('routeChangeStart', handleRouteStart);\n Router.events.off('routeChangeComplete', handleRouteDone);\n Router.events.off('routeChangeError', handleRouteDone);\n };\n }, []);\n\n return styles;\n },\n () => true,\n);\n"],"names":["usePathname","useSearchParams","useEffect","useNextRouter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAgB,SAAA,SAAS,CAAC,MAAW,EAAE,OAAY,EAAA;AACjD,IAAA,IAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3E,IAAA,IAAM,YAAY,GAChB,OAAO,CAAC,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;IAE5D,OAAO,WAAW,KAAK,YAAY,CAAC;AACtC;;ICWa,cAAc,GAAG,KAAK,CAAC,IAAI,CACtC,UAAC,EAOkB,EAAA;AANjB,IAAA,IAAA,EAAA,GAAA,EAAA,CAAA,KAAiB,EAAjB,KAAK,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,SAAS,GAAA,EAAA,EACjB,EAAc,GAAA,EAAA,CAAA,MAAA,EAAd,MAAM,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,KAAK,GAAA,EAAA,EACd,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,EAAA,GAAA,EAAA,CAAA,cAAsB,EAAtB,cAAc,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,KAAK,KAAA,EACtB,EAAA,GAAA,EAAA,CAAA,KAAS,EAAT,KAAK,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,CAAC,GAAA,EAAA,EACT,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;AAEL,IAAA,IAAM,MAAM,IACV,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,IAAA,EACG,KAAK;AACJ,QAAA,6IAAA,CAAA,MAAA,CAMgB,KAAK,EAAA,gLAAA,CAAA,CAAA,MAAA,CAQT,MAAM,EAAA,4QAAA,CAAA,CAAA,MAAA,CAUO,KAAK,EAAa,YAAA,CAAA,CAAA,MAAA,CAAA,KAAK,EAuB1B,+tBAAA,CAAA,CAAA,MAAA,CAAA,KAAK,EACJ,oCAAA,CAAA,CAAA,MAAA,CAAA,KAAK,EAyB7B,m1BAAA,CAAA,CACK,CACT,CAAC;AAEF,IAAA,SAAS,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;AAEnC,IAAA,IAAM,QAAQ,GAAGA,sBAAW,EAAE,CAAC;AAC/B,IAAA,IAAM,YAAY,GAAGC,0BAAe,EAAE,CAAC;AAEvC,IAAAC,eAAS,CAAC,YAAA;QACR,SAAS,CAAC,IAAI,EAAE,CAAC;AACnB,KAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;AAE7B,IAAAA,eAAS,CAAC,YAAA;AACR,QAAA,IAAI,KAAqB,CAAC;AAE1B,QAAA,IAAM,aAAa,GAAG,YAAA;YACpB,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7C,SAAC,CAAC;AAEF,QAAA,IAAM,YAAY,GAAG,YAAA;YACnB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,SAAS,CAAC,IAAI,EAAE,CAAC;AACnB,SAAC,CAAC;QAEF,IAAM,iBAAiB,GAAG,UAAC,KAAiB,EAAA;AAC1C,YAAA,IAAM,aAAa,GAAG,KAAK,CAAC,aAAkC,CAAC;;AAG/D,YAAA,IAAI,aAAa,CAAC,MAAM,KAAK,QAAQ;gBAAE,OAAO;YAE9C,IAAM,SAAS,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAM,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAE1C,YAAA,IAAI,cAAc,IAAI,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;gBAAE,OAAO;AAC/D,YAAA,IAAI,CAAA,SAAS,KAAA,IAAA,IAAT,SAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAT,SAAS,CAAE,IAAI,OAAK,UAAU,aAAV,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAV,UAAU,CAAE,IAAI,CAAA;gBAAE,OAAO;AAEjD,YAAA,aAAa,EAAE,CAAC;AAClB,SAAC,CAAC;AAEF,QAAA,IAAM,cAAc,GAAqB,YAAA;YACvC,IAAM,cAAc,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtD,YAAA,cAAc,CAAC,OAAO,CAAC,UAAC,MAAM,EAAA;AAC5B,gBAAA,OAAA,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;AAAnD,aAAmD,CACpD,CAAC;AACJ,SAAC,CAAC;AAEF,QAAA,IAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,cAAc,CAAC,CAAC;AAC9D,QAAA,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAEvE,QAAA,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE;AAC7D,YAAA,KAAK,EAAE,UAAC,MAAM,EAAE,OAAO,EAAE,QAAwB,EAAA;AAC/C,gBAAA,YAAY,EAAE,CAAC;gBACf,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;aACxC;AACF,SAAA,CAAC,CAAC;KACJ,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC,EACD,YAAM,EAAA,OAAA,IAAI,CAAJ,EAAI,EACV;SAEc,SAAS,GAAA;AACvB,IAAA,IAAM,MAAM,GAAGC,oBAAa,EAAE,CAAC;AAE/B,IAAA,SAAS,IAAI,CAAC,IAAY,EAAE,OAAyB,EAAA;QACnD,SAAS,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;AAED,IAAA,OAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAY,MAAM,CAAA,EAAA,EAAE,IAAI,EAAA,IAAA,EAAG,CAAA,CAAA;AAC7B;;ICxKa,gBAAgB,GAAG,KAAK,CAAC,IAAI,CACxC,UAAC,EAOkB,EAAA;AANjB,IAAA,IAAA,EAAA,GAAA,EAAA,CAAA,KAAiB,EAAjB,KAAK,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,SAAS,GAAA,EAAA,EACjB,EAAc,GAAA,EAAA,CAAA,MAAA,EAAd,MAAM,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,KAAK,GAAA,EAAA,EACd,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,EAAA,GAAA,EAAA,CAAA,cAAsB,EAAtB,cAAc,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,KAAK,KAAA,EACtB,EAAA,GAAA,EAAA,CAAA,KAAS,EAAT,KAAK,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,CAAC,GAAA,EAAA,EACT,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;AAEL,IAAA,IAAM,MAAM,IACV,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,IAAA,EACG,KAAK;AACJ,QAAA,6IAAA,CAAA,MAAA,CAMgB,KAAK,EAAA,gLAAA,CAAA,CAAA,MAAA,CAQT,MAAM,EAAA,4QAAA,CAAA,CAAA,MAAA,CAUO,KAAK,EAAa,YAAA,CAAA,CAAA,MAAA,CAAA,KAAK,EAuB1B,+tBAAA,CAAA,CAAA,MAAA,CAAA,KAAK,EACJ,oCAAA,CAAA,CAAA,MAAA,CAAA,KAAK,EAyB7B,m1BAAA,CAAA,CACK,CACT,CAAC;AAEF,IAAA,SAAS,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;AAEnC,IAAAD,eAAS,CAAC,YAAA;AACR,QAAA,IAAI,KAAqB,CAAC;AAE1B,QAAA,IAAM,aAAa,GAAG,YAAA;YACpB,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7C,SAAC,CAAC;AAEF,QAAA,IAAM,YAAY,GAAG,YAAA;YACnB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,SAAS,CAAC,IAAI,EAAE,CAAC;AACnB,SAAC,CAAC;QAEF,IAAM,gBAAgB,GAAG,UAAC,GAAW,EAAA;YACnC,IAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9C,YAAA,IAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YAExD,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE;AACxD,gBAAA,aAAa,EAAE,CAAC;AACjB,aAAA;AACH,SAAC,CAAC;QACF,IAAM,eAAe,GAAG,YAAM,EAAA,OAAA,YAAY,EAAE,CAAA,EAAA,CAAC;QAE7C,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;QAEtD,OAAO,YAAA;;YAEL,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;YAC1D,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;AACzD,SAAC,CAAC;KACH,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC,EACD,YAAM,EAAA,OAAA,IAAI,CAAJ,EAAI;;;;;;"}
{
"name": "next-nprogress-bar",
"version": "2.0.1",
"version": "2.0.2",
"description": "NextJS progress bar compatible with new app directory",

@@ -5,0 +5,0 @@ "repository": {