UNPKG

next13-progressbar

Version:

A ProgressBar for next.js >=13 with app directory

75 lines (63 loc) 4.94 kB
"use strict";var O=Object.create;var g=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var $=Object.getPrototypeOf,B=Object.prototype.hasOwnProperty;var o=(r,e)=>g(r,"name",{value:e,configurable:!0});var F=(r,e)=>{for(var t in e)g(r,t,{get:e[t],enumerable:!0})},N=(r,e,t,m)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of M(e))!B.call(r,s)&&s!==t&&g(r,s,{get:()=>e[s],enumerable:!(m=C(e,s))||m.enumerable});return r};var P=(r,e,t)=>(t=r!=null?O($(r)):{},N(e||!r||!r.__esModule?g(t,"default",{value:r,enumerable:!0}):t,r)),K=r=>N(g({},"__esModule",{value:!0}),r);var I={};F(I,{Next13ProgressBar:()=>U,default:()=>z,useRouter:()=>v});module.exports=K(I);var l=P(require("react")),p=P(require("nprogress")),u=require("next/navigation");var k=l.default.memo(({color:r="#0A2FFF",height:e="2px",options:t,showOnShallow:m=!1,delay:s=0,style:h})=>{let c=l.default.createElement("style",null,h||` #nprogress { pointer-events: none; } #nprogress .bar { background: ${r}; position: fixed; z-index: 1031; top: 0; left: 0; width: 100%; height: ${e}; } /* Fancy blur effect */ #nprogress .peg { display: block; position: absolute; right: 0px; width: 100px; height: 100%; box-shadow: 0 0 10px ${r}, 0 0 5px ${r}; opacity: 1.0; -webkit-transform: rotate(3deg) translate(0px, -4px); -ms-transform: rotate(3deg) translate(0px, -4px); transform: rotate(3deg) translate(0px, -4px); } /* Remove these to get rid of the spinner */ #nprogress .spinner { display: block; position: fixed; z-index: 1031; top: 15px; right: 15px; } #nprogress .spinner-icon { width: 18px; height: 18px; box-sizing: border-box; border: solid 2px transparent; border-top-color: ${r}; border-left-color: ${r}; border-radius: 50%; -webkit-animation: nprogress-spinner 400ms linear infinite; animation: nprogress-spinner 400ms linear infinite; } .nprogress-custom-parent { overflow: hidden; position: relative; } .nprogress-custom-parent #nprogress .spinner, .nprogress-custom-parent #nprogress .bar { position: absolute; } @-webkit-keyframes nprogress-spinner { 0% { -webkit-transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); } } @keyframes nprogress-spinner { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } `);p.default.configure(t||{});let f=(0,u.usePathname)(),w=(0,u.useSearchParams)();return(0,l.useEffect)(()=>{p.default.done()},[f,w]),(0,l.useEffect)(()=>{let d,R=o(()=>{d=setTimeout(p.default.start,s)},"startProgress"),L=o(()=>{clearTimeout(d),p.default.done()},"stopProgress"),E=o(a=>{let i=a.currentTarget;if(i.target!=="_self"&&i.target?.trim()!==""||i.hasAttribute("download"))return;let n=new URL(i.href),b=new URL(location.href),T=n?.searchParams?.toString()!==b?.searchParams?.toString()&&n?.search!==b?.search,S=n?.pathname===b?.pathname&&!T;a.metaKey||a.ctrlKey||a.shiftKey||a.altKey||m&&S||S||R()},"handleAnchorClick"),A=o(()=>{let a=document.querySelectorAll("a");Array.from(a).filter(n=>n.href.startsWith("tel:+")||n.href.startsWith("mailto:")||n.target!=="_self"&&n.target?.trim()!==""?!1:n.href).forEach(n=>n.addEventListener("click",E))},"handleMutation");new MutationObserver(A).observe(document,{childList:!0,subtree:!0}),window.history.pushState=new Proxy(window.history.pushState,{apply:(a,i,n)=>(L(),a.apply(i,n))})},[]),c},()=>!0);function v(){let r=(0,u.useRouter)(),e=(0,u.usePathname)();function t(s,h){let c=new URL(s,location.href),f=new URL(location.href),d=c?.searchParams?.toString()!==f?.searchParams?.toString()&&c?.search!==f?.search;return c.pathname===e&&!d?Promise.resolve(!0):(p.default.start(),r.push(s,h))}o(t,"push");function m(s,h){return new URL(s,location.href).pathname===e?Promise.resolve(!0):(p.default.start(),r.replace(s,h))}return o(m,"replace"),{...r,push:t,replace:m}}o(v,"useRouter");var x=P(require("react"));function y(r){return o(function(t){return x.default.createElement(x.default.Suspense,null,x.default.createElement(r,{...t}))},"WithSuspenseComponent")}o(y,"withSuspense");var U=y(k);var z=U;0&&(module.exports={Next13ProgressBar,useRouter}); //# sourceMappingURL=index.js.map