summaryrefslogtreecommitdiffstats
path: root/wp-includes/js/dist/router.min.js
blob: 05b9d55e4aa63019458506b49a7b4b30c89256b1 (plain)
1
2
/*! This file is auto-generated */
!function(){"use strict";var e={d:function(t,n){for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{privateApis:function(){return A}});var n,r=window.wp.element;function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}!function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"}(n||(n={}));var a=function(e){return e};var u="beforeunload",i="popstate";function c(e){e.preventDefault(),e.returnValue=""}function s(){var e=[];return{get length(){return e.length},push:function(t){return e.push(t),function(){e=e.filter((function(e){return e!==t}))}},call:function(t){e.forEach((function(e){return e&&e(t)}))}}}function l(){return Math.random().toString(36).substr(2,8)}function f(e){var t=e.pathname,n=void 0===t?"/":t,r=e.search,o=void 0===r?"":r,a=e.hash,u=void 0===a?"":a;return o&&"?"!==o&&(n+="?"===o.charAt(0)?o:"?"+o),u&&"#"!==u&&(n+="#"===u.charAt(0)?u:"#"+u),n}function h(e){var t={};if(e){var n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));var r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}var p=window.wp.url;const d=function(e){void 0===e&&(e={});var t=e.window,r=void 0===t?document.defaultView:t,p=r.history;function d(){var e=r.location,t=e.pathname,n=e.search,o=e.hash,u=p.state||{};return[u.idx,a({pathname:t,search:n,hash:o,state:u.usr||null,key:u.key||"default"})]}var v=null;r.addEventListener(i,(function(){if(v)P.call(v),v=null;else{var e=n.Pop,t=d(),r=t[0],o=t[1];if(P.length){if(null!=r){var a=w-r;a&&(v={action:e,location:o,retry:function(){x(-1*a)}},x(a))}}else j(e)}}));var y=n.Pop,g=d(),w=g[0],b=g[1],m=s(),P=s();function O(e){return"string"==typeof e?e:f(e)}function k(e,t){return void 0===t&&(t=null),a(o({pathname:b.pathname,hash:"",search:""},"string"==typeof e?h(e):e,{state:t,key:l()}))}function A(e,t){return[{usr:e.state,key:e.key,idx:t},O(e)]}function S(e,t,n){return!P.length||(P.call({action:e,location:t,retry:n}),!1)}function j(e){y=e;var t=d();w=t[0],b=t[1],m.call({action:y,location:b})}function x(e){p.go(e)}null==w&&(w=0,p.replaceState(o({},p.state,{idx:w}),""));var E={get action(){return y},get location(){return b},createHref:O,push:function e(t,o){var a=n.Push,u=k(t,o);if(S(a,u,(function(){e(t,o)}))){var i=A(u,w+1),c=i[0],s=i[1];try{p.pushState(c,"",s)}catch(e){r.location.assign(s)}j(a)}},replace:function e(t,r){var o=n.Replace,a=k(t,r);if(S(o,a,(function(){e(t,r)}))){var u=A(a,w),i=u[0],c=u[1];p.replaceState(i,"",c),j(o)}},go:x,back:function(){x(-1)},forward:function(){x(1)},listen:function(e){return m.push(e)},block:function(e){var t=P.push(e);return 1===P.length&&r.addEventListener(u,c),function(){t(),P.length||r.removeEventListener(u,c)}}};return E}(),v=d.push,y=d.replace;d.push=function(e,t){const n=(0,p.getQueryArgs)(window.location.href),r=(0,p.removeQueryArgs)(window.location.href,...Object.keys(n)),o=(0,p.addQueryArgs)(r,e);return v.call(d,o,t)},d.replace=function(e,t){const n=(0,p.getQueryArgs)(window.location.href),r=(0,p.removeQueryArgs)(window.location.href,...Object.keys(n)),o=(0,p.addQueryArgs)(r,e);return y.call(d,o,t)};var g=d;const w=(0,r.createContext)(),b=(0,r.createContext)();function m(e){const t=new URLSearchParams(e.search);return{...e,params:Object.fromEntries(t.entries())}}var P=window.wp.privateApis;const{lock:O,unlock:k}=(0,P.__dangerousOptInToUnstableAPIsOnlyForCoreModules)("I know using unstable features means my theme or plugin will inevitably break in the next version of WordPress.","@wordpress/router"),A={};O(A,{useHistory:function(){return(0,r.useContext)(b)},useLocation:function(){return(0,r.useContext)(w)},RouterProvider:function({children:e}){const[t,n]=(0,r.useState)((()=>m(g.location)));return(0,r.useEffect)((()=>g.listen((({location:e})=>{n(m(e))}))),[]),(0,r.createElement)(b.Provider,{value:g},(0,r.createElement)(w.Provider,{value:t},e))}}),(window.wp=window.wp||{}).router=t}();