@openmrs/esm-navigation 5.3.3-pre.1370

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,11 @@
1
+ @openmrs/esm-navigation:build: cache hit, replaying output 4a3868fb6eefffec
2
+ @openmrs/esm-navigation:build: Browserslist: caniuse-lite is outdated. Please run:
3
+ @openmrs/esm-navigation:build:  npx update-browserslist-db@latest
4
+ @openmrs/esm-navigation:build:  Why you should do it regularly: https://github.com/browserslist/update-db#readme
5
+ @openmrs/esm-navigation:build: asset openmrs-esm-navigation.js 28 KiB [emitted] [minimized] (name: main) 1 related asset
6
+ @openmrs/esm-navigation:build: orphan modules 47.1 KiB [orphan] 8 modules
7
+ @openmrs/esm-navigation:build: runtime modules 891 bytes 4 modules
8
+ @openmrs/esm-navigation:build: built modules 47.3 KiB [built]
9
+ @openmrs/esm-navigation:build:  ./src/index.ts + 7 modules 47.2 KiB [built] [code generated]
10
+ @openmrs/esm-navigation:build:  external "@openmrs/esm-state" 42 bytes [built] [code generated]
11
+ @openmrs/esm-navigation:build: webpack 5.88.0 compiled successfully in 6934 ms
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # openmrs-esm-navigation
@@ -0,0 +1,2 @@
1
+ System.register(["@openmrs/esm-state"],(function(t,n){var e={};return{setters:[function(t){e.createGlobalStore=t.createGlobalStore}],execute:function(){t((()=>{"use strict";var t={685:t=>{t.exports=e}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var i=n[e]={exports:{}};return t[e](i,i.exports,r),i.exports}r.d=(t,n)=>{for(var e in n)r.o(n,e)&&!r.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:n[e]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=(t,n)=>Object.prototype.hasOwnProperty.call(t,n),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var o={};return(()=>{function t(t){return t.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1")}function n(t){return t&&t.sensitive?"":"i"}function e(e,r,o){return function(e,r,o){void 0===o&&(o={});for(var i=o.strict,u=void 0!==i&&i,a=o.start,s=void 0===a||a,c=o.end,f=void 0===c||c,l=o.encode,p=void 0===l?function(t){return t}:l,h="["+t(o.endsWith||"")+"]|$",m="["+t(o.delimiter||"/#?")+"]",d=s?"^":"",v=0,w=e;v<w.length;v++){var g=w[v];if("string"==typeof g)d+=t(p(g));else{var y=t(p(g.prefix)),E=t(p(g.suffix));if(g.pattern)if(r&&r.push(g),y||E)if("+"===g.modifier||"*"===g.modifier){var b="*"===g.modifier?"?":"";d+="(?:"+y+"((?:"+g.pattern+")(?:"+E+y+"(?:"+g.pattern+"))*)"+E+")"+b}else d+="(?:"+y+"("+g.pattern+")"+E+")"+g.modifier;else d+="("+g.pattern+")"+g.modifier;else d+="(?:"+y+E+")"+g.modifier}}if(f)u||(d+=m+"?"),d+=o.endsWith?"(?="+h+")":"$";else{var O=e[e.length-1],P="string"==typeof O?m.indexOf(O[O.length-1])>-1:void 0===O;u||(d+="(?:"+m+"(?="+h+"))?"),P||(d+="(?="+m+"|"+h+")")}return new RegExp(d,n(o))}(function(n,e){void 0===e&&(e={});for(var r=function(t){for(var n=[],e=0;e<t.length;){var r=t[e];if("*"!==r&&"+"!==r&&"?"!==r)if("\\"!==r)if("{"!==r)if("}"!==r)if(":"!==r)if("("!==r)n.push({type:"CHAR",index:e,value:t[e++]});else{var o=1,i="";if("?"===t[a=e+1])throw new TypeError('Pattern cannot start with "?" at '+a);for(;a<t.length;)if("\\"!==t[a]){if(")"===t[a]){if(0==--o){a++;break}}else if("("===t[a]&&(o++,"?"!==t[a+1]))throw new TypeError("Capturing groups are not allowed at "+a);i+=t[a++]}else i+=t[a++]+t[a++];if(o)throw new TypeError("Unbalanced pattern at "+e);if(!i)throw new TypeError("Missing pattern at "+e);n.push({type:"PATTERN",index:e,value:i}),e=a}else{for(var u="",a=e+1;a<t.length;){var s=t.charCodeAt(a);if(!(s>=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122||95===s))break;u+=t[a++]}if(!u)throw new TypeError("Missing parameter name at "+e);n.push({type:"NAME",index:e,value:u}),e=a}else n.push({type:"CLOSE",index:e,value:t[e++]});else n.push({type:"OPEN",index:e,value:t[e++]});else n.push({type:"ESCAPED_CHAR",index:e++,value:t[e++]});else n.push({type:"MODIFIER",index:e,value:t[e++]})}return n.push({type:"END",index:e,value:""}),n}(n),o=e.prefixes,i=void 0===o?"./":o,u="[^"+t(e.delimiter||"/#?")+"]+?",a=[],s=0,c=0,f="",l=function(t){if(c<r.length&&r[c].type===t)return r[c++].value},p=function(t){var n=l(t);if(void 0!==n)return n;var e=r[c],o=e.type,i=e.index;throw new TypeError("Unexpected "+o+" at "+i+", expected "+t)},h=function(){for(var t,n="";t=l("CHAR")||l("ESCAPED_CHAR");)n+=t;return n};c<r.length;){var m=l("CHAR"),d=l("NAME"),v=l("PATTERN");if(d||v){var w=m||"";-1===i.indexOf(w)&&(f+=w,w=""),f&&(a.push(f),f=""),a.push({name:d||s++,prefix:w,suffix:"",pattern:v||u,modifier:l("MODIFIER")||""})}else{var g=m||l("ESCAPED_CHAR");if(g)f+=g;else if(f&&(a.push(f),f=""),l("OPEN")){w=h();var y=l("NAME")||"",E=l("PATTERN")||"",b=h();p("CLOSE"),a.push({name:y||(E?s++:""),pattern:y&&!E?u:E,prefix:w,suffix:b,modifier:l("MODIFIER")||""})}else p("END")}}return a}(e,o),r,o)}function i(t,r,o){return t instanceof RegExp?function(t,n){if(!n)return t;var e=t.source.match(/\((?!\?)/g);if(e)for(var r=0;r<e.length;r++)n.push({name:r,prefix:"",suffix:"",modifier:"",pattern:""});return t}(t,r):Array.isArray(t)?function(t,e,r){var o=t.map((function(t){return i(t,e,r).source}));return new RegExp("(?:"+o.join("|")+")",n(r))}(t,r,o):e(t,r,o)}function u(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,r=new Array(n);e<n;e++)r[e]=t[e];return r}function a(t){return function(t){if(Array.isArray(t))return u(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,n){if(t){if("string"==typeof t)return u(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(e):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?u(t,n):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}r.r(o),r.d(o,{clearHistory:()=>ln,filterBreadcrumbs:()=>d,getBreadcrumbs:()=>p,getBreadcrumbsFor:()=>v,getHistory:()=>cn,goBackInHistory:()=>fn,interpolateString:()=>rn,interpolateUrl:()=>en,navigate:()=>on,registerBreadcrumb:()=>f,registerBreadcrumbs:()=>l,setupHistory:()=>sn});var s=(0,r(685).createGlobalStore)("breadcrumbs",[]);function c(t){return n=t.matcher,(null!=(e=RegExp)&&"undefined"!=typeof Symbol&&e[Symbol.hasInstance]?e[Symbol.hasInstance](n):n instanceof e)?t.matcher:"string"==typeof t.matcher?i(t.matcher):i(t.path);var n,e}function f(t){return l([t])}function l(t){var n=p(),e=t.map((function(t){return{matcher:c(t),settings:t}})),r=a(n).concat(a(e));s.setState(r,!0)}function p(){return s.getState()}function h(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,r=new Array(n);e<n;e++)r[e]=t[e];return r}function m(t,n){if(n)return function(t,n){var e=function(t,n){return function(t){if(Array.isArray(t))return t}(t)||function(t,n){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var r,o,i=[],u=!0,a=!1;try{for(e=e.call(t);!(u=(r=e.next()).done)&&(i.push(r.value),!n||i.length!==n);u=!0);}catch(t){a=!0,o=t}finally{try{u||null==e.return||e.return()}finally{if(a)throw o}}return i}}(t,n)||function(t,n){if(t){if("string"==typeof t)return h(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(e):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?h(t,n):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(t.filter((function(t){return t.matcher.test(n)})),1);return e[0]}(t,n)||function(t,n){for(var e=n.split("/");e.length>1;){e.pop();var r=m(t,e.join("/"));if(r)return r}}(t,n)}function d(t,n){if(t.length>0){var e=m(t,n);if(e){for(var r=[e],o=m(t,e.settings.parent);void 0!==o;)r.push(o),o=m(t,o.settings.parent);return r.reverse()}}return[]}function v(t){return d(p(),t)}var w=Object.freeze({__proto__:null,get start(){return Yt},get ensureJQuerySupport(){return At},get setBootstrapMaxTime(){return at},get setMountMaxTime(){return st},get setUnmountMaxTime(){return ct},get setUnloadMaxTime(){return ft},get registerApplication(){return Bt},get unregisterApplication(){return Gt},get getMountedApps(){return Ut},get getAppStatus(){return Lt},get unloadApplication(){return Wt},get checkActivityFunctions(){return $t},get getAppNames(){return Ct},get pathToActiveWhen(){return Ft},get navigateToUrl(){return gt},get triggerAppChange(){return Vt},get addErrorHandler(){return T},get removeErrorHandler(){return S},get mountRootParcel(){return et},get NOT_LOADED(){return x},get LOADING_SOURCE_CODE(){return j},get NOT_BOOTSTRAPPED(){return _},get BOOTSTRAPPING(){return I},get NOT_MOUNTED(){return M},get MOUNTING(){return D},get UPDATING(){return U},get LOAD_ERROR(){return L},get MOUNTED(){return R},get UNMOUNTING(){return C},get SKIP_BECAUSE_BROKEN(){return B}});function g(t){return(g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function y(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}var E=("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==r.g?r.g:"undefined"!=typeof self?self:{}).CustomEvent,b=function(){try{var t=new E("cat",{detail:{foo:"bar"}});return"cat"===t.type&&"bar"===t.detail.foo}catch(t){}return!1}()?E:"undefined"!=typeof document&&"function"==typeof document.createEvent?function(t,n){var e=document.createEvent("CustomEvent");return n?e.initCustomEvent(t,n.bubbles,n.cancelable,n.detail):e.initCustomEvent(t,!1,!1,void 0),e}:function(t,n){var e=document.createEventObject();return e.type=t,n?(e.bubbles=Boolean(n.bubbles),e.cancelable=Boolean(n.cancelable),e.detail=n.detail):(e.bubbles=!1,e.cancelable=!1,e.detail=void 0),e},O=[];function P(t,n,e){var r=N(t,n,e);O.length?O.forEach((function(t){return t(r)})):setTimeout((function(){throw r}))}function T(t){if("function"!=typeof t)throw Error(A(28,!1));O.push(t)}function S(t){if("function"!=typeof t)throw Error(A(29,!1));var n=!1;return O=O.filter((function(e){var r=e===t;return n=n||r,!r})),n}function A(t,n){for(var e=arguments.length,r=new Array(e>2?e-2:0),o=2;o<e;o++)r[o-2]=arguments[o];return"single-spa minified message #".concat(t,": ").concat(n?n+" ":"","See https://single-spa.js.org/error/?code=").concat(t).concat(r.length?"&arg=".concat(r.join("&arg=")):"")}function N(t,n,e){var r,o="".concat(H(n)," '").concat(W(n),"' died in status ").concat(n.status,": ");if(t instanceof Error){try{t.message=o+t.message}catch(t){}r=t}else{console.warn(A(30,!1,n.status,W(n)));try{r=Error(o+JSON.stringify(t))}catch(n){r=t}}return r.appOrParcelName=W(n),n.status=e,r}var x="NOT_LOADED",j="LOADING_SOURCE_CODE",_="NOT_BOOTSTRAPPED",I="BOOTSTRAPPING",M="NOT_MOUNTED",D="MOUNTING",R="MOUNTED",U="UPDATING",C="UNMOUNTING",L="LOAD_ERROR",B="SKIP_BECAUSE_BROKEN";function $(t){return t.status===R}function G(t){try{return t.activeWhen(window.location)}catch(n){return P(n,t,B),!1}}function W(t){return t.name}function k(t){return Boolean(t.unmountThisParcel)}function H(t){return k(t)?"parcel":"application"}function F(){for(var t=arguments.length-1;t>0;t--)for(var n in arguments[t])"__proto__"!==n&&(arguments[t-1][n]=arguments[t][n]);return arguments[0]}function J(t,n){for(var e=0;e<t.length;e++)if(n(t[e]))return t[e];return null}function K(t){return t&&("function"==typeof t||(n=t,Array.isArray(n)&&!J(n,(function(t){return"function"!=typeof t}))));var n}function Q(t,n){var e=t[n]||[];0===(e=Array.isArray(e)?e:[e]).length&&(e=[function(){return Promise.resolve()}]);var r=H(t),o=W(t);return function(t){return e.reduce((function(e,i,u){return e.then((function(){var e=i(t);return V(e)?e:Promise.reject(A(15,!1,r,o,n,u))}))}),Promise.resolve())}}function V(t){return t&&"function"==typeof t.then&&"function"==typeof t.catch}function q(t,n){return Promise.resolve().then((function(){return t.status!==_?t:(t.status=I,t.bootstrap?lt(t,"bootstrap").then(e).catch((function(e){if(n)throw N(e,t,B);return P(e,t,B),t})):Promise.resolve().then(e))}));function e(){return t.status=M,t}}function z(t,n){return Promise.resolve().then((function(){if(t.status!==R)return t;t.status=C;var e=Object.keys(t.parcels).map((function(n){return t.parcels[n].unmountThisParcel()}));return Promise.all(e).then(r,(function(e){return r().then((function(){var r=Error(e.message);if(n)throw N(r,t,B);P(r,t,B)}))})).then((function(){return t}));function r(){return lt(t,"unmount").then((function(){t.status=M})).catch((function(e){if(n)throw N(e,t,B);P(e,t,B)}))}}))}var X=!1,Y=!1;function Z(t,n){return Promise.resolve().then((function(){return t.status!==M?t:(X||(window.dispatchEvent(new b("single-spa:before-first-mount")),X=!0),lt(t,"mount").then((function(){return t.status=R,Y||(window.dispatchEvent(new b("single-spa:first-mount")),Y=!0),t})).catch((function(e){return t.status=R,z(t,!0).then(r,r);function r(){if(n)throw N(e,t,B);return P(e,t,B),t}})))}))}var tt=0,nt={parcels:{}};function et(){return rt.apply(nt,arguments)}function rt(t,n){var e=this;if(!t||"object"!==g(t)&&"function"!=typeof t)throw Error(A(2,!1));if(t.name&&"string"!=typeof t.name)throw Error(A(3,!1,g(t.name)));if("object"!==g(n))throw Error(A(4,!1,name,g(n)));if(!n.domElement)throw Error(A(5,!1,name));var r,o=tt++,i="function"==typeof t,u=i?t:function(){return Promise.resolve(t)},a={id:o,parcels:{},status:i?j:_,customProps:n,parentName:W(e),unmountThisParcel:function(){return p.then((function(){if(a.status!==R)throw Error(A(6,!1,name,a.status));return z(a,!0)})).then((function(t){return a.parentName&&delete e.parcels[a.id],t})).then((function(t){return c(t),t})).catch((function(t){throw a.status=B,f(t),t}))}};e.parcels[o]=a;var s=u();if(!s||"function"!=typeof s.then)throw Error(A(7,!1));var c,f,l=(s=s.then((function(t){if(!t)throw Error(A(8,!1));var n=t.name||"parcel-".concat(o);if(Object.prototype.hasOwnProperty.call(t,"bootstrap")&&!K(t.bootstrap))throw Error(A(9,!1,n));if(!K(t.mount))throw Error(A(10,!1,n));if(!K(t.unmount))throw Error(A(11,!1,n));if(t.update&&!K(t.update))throw Error(A(12,!1,n));var e=Q(t,"bootstrap"),i=Q(t,"mount"),u=Q(t,"unmount");a.status=_,a.name=n,a.bootstrap=e,a.mount=i,a.unmount=u,a.timeouts=pt(t.timeouts),t.update&&(a.update=Q(t,"update"),r.update=function(t){return a.customProps=t,ot(function(t){return Promise.resolve().then((function(){if(t.status!==R)throw Error(A(32,!1,W(t)));return t.status=U,lt(t,"update").then((function(){return t.status=R,t})).catch((function(n){throw N(n,t,B)}))}))}(a))})}))).then((function(){return q(a,!0)})),p=l.then((function(){return Z(a,!0)})),h=new Promise((function(t,n){c=t,f=n}));return r={mount:function(){return ot(Promise.resolve().then((function(){if(a.status!==M)throw Error(A(13,!1,name,a.status));return e.parcels[o]=a,Z(a)})))},unmount:function(){return ot(a.unmountThisParcel())},getStatus:function(){return a.status},loadPromise:ot(s),bootstrapPromise:ot(l),mountPromise:ot(p),unmountPromise:ot(h)}}function ot(t){return t.then((function(){return null}))}function it(t){var n=W(t),e="function"==typeof t.customProps?t.customProps(n,window.location):t.customProps;("object"!==g(e)||null===e||Array.isArray(e))&&(e={},console.warn(A(40,!1),n,e));var r=F({},e,{name:n,mountParcel:rt.bind(t),singleSpa:w});return k(t)&&(r.unmountSelf=t.unmountThisParcel),r}var ut={bootstrap:{millis:4e3,dieOnTimeout:!1,warningMillis:1e3},mount:{millis:3e3,dieOnTimeout:!1,warningMillis:1e3},unmount:{millis:3e3,dieOnTimeout:!1,warningMillis:1e3},unload:{millis:3e3,dieOnTimeout:!1,warningMillis:1e3},update:{millis:3e3,dieOnTimeout:!1,warningMillis:1e3}};function at(t,n,e){if("number"!=typeof t||t<=0)throw Error(A(16,!1));ut.bootstrap={millis:t,dieOnTimeout:n,warningMillis:e||1e3}}function st(t,n,e){if("number"!=typeof t||t<=0)throw Error(A(17,!1));ut.mount={millis:t,dieOnTimeout:n,warningMillis:e||1e3}}function ct(t,n,e){if("number"!=typeof t||t<=0)throw Error(A(18,!1));ut.unmount={millis:t,dieOnTimeout:n,warningMillis:e||1e3}}function ft(t,n,e){if("number"!=typeof t||t<=0)throw Error(A(19,!1));ut.unload={millis:t,dieOnTimeout:n,warningMillis:e||1e3}}function lt(t,n){var e=t.timeouts[n],r=e.warningMillis,o=H(t);return new Promise((function(i,u){var a=!1,s=!1;t[n](it(t)).then((function(t){a=!0,i(t)})).catch((function(t){a=!0,u(t)})),setTimeout((function(){return f(1)}),r),setTimeout((function(){return f(!0)}),e.millis);var c=A(31,!1,n,o,W(t),e.millis);function f(t){if(!a)if(!0===t)s=!0,e.dieOnTimeout?u(Error(c)):console.error(c);else if(!s){var n=t,o=n*r;console.warn(c),o+r<e.millis&&setTimeout((function(){return f(n+1)}),r)}}}))}function pt(t){var n={};for(var e in ut)n[e]=F({},ut[e],t&&t[e]||{});return n}function ht(t){return Promise.resolve().then((function(){return t.loadPromise?t.loadPromise:t.status!==x&&t.status!==L?t:(t.status=j,t.loadPromise=Promise.resolve().then((function(){var r=t.loadApp(it(t));if(!V(r))throw e=!0,Error(A(33,!1,W(t)));return r.then((function(e){var r;t.loadErrorTime=null,"object"!==g(n=e)&&(r=34),Object.prototype.hasOwnProperty.call(n,"bootstrap")&&!K(n.bootstrap)&&(r=35),K(n.mount)||(r=36),K(n.unmount)||(r=37);var o=H(n);if(r){var i;try{i=JSON.stringify(n)}catch(t){}return console.error(A(r,!1,o,W(t),i),n),P(void 0,t,B),t}return n.devtools&&n.devtools.overlays&&(t.devtools.overlays=F({},t.devtools.overlays,n.devtools.overlays)),t.status=_,t.bootstrap=Q(n,"bootstrap"),t.mount=Q(n,"mount"),t.unmount=Q(n,"unmount"),t.unload=Q(n,"unload"),t.timeouts=pt(n.timeouts),delete t.loadPromise,t}))})).catch((function(n){var r;return delete t.loadPromise,e?r=B:(r=L,t.loadErrorTime=(new Date).getTime()),P(n,t,r),t})));var n,e}))}var mt,dt="undefined"!=typeof window,vt={hashchange:[],popstate:[]},wt=["hashchange","popstate"];function gt(t){var n;if("string"==typeof t)n=t;else if(this&&this.href)n=this.href;else{if(!(t&&t.currentTarget&&t.currentTarget.href&&t.preventDefault))throw Error(A(14,!1));n=t.currentTarget.href,t.preventDefault()}var e=Tt(window.location.href),r=Tt(n);0===n.indexOf("#")?window.location.hash=r.hash:e.host!==r.host&&r.host?window.location.href=n:r.pathname===e.pathname&&r.search===e.search?window.location.hash=r.hash:window.history.pushState(null,null,n)}function yt(t){var n=this;if(t){var e=t[0].type;wt.indexOf(e)>=0&&vt[e].forEach((function(e){try{e.apply(n,t)}catch(t){setTimeout((function(){throw t}))}}))}}function Et(){qt([],arguments)}function bt(t,n){return function(){var e=window.location.href,r=t.apply(this,arguments),o=window.location.href;return mt&&e===o||(Zt()?window.dispatchEvent(function(t,n){var e;try{e=new PopStateEvent("popstate",{state:t})}catch(n){(e=document.createEvent("PopStateEvent")).initPopStateEvent("popstate",!1,!1,t)}return e.singleSpa=!0,e.singleSpaTrigger=n,e}(window.history.state,n)):qt([])),r}}if(dt){window.addEventListener("hashchange",Et),window.addEventListener("popstate",Et);var Ot=window.addEventListener,Pt=window.removeEventListener;window.addEventListener=function(t,n){if(!("function"==typeof n&&wt.indexOf(t)>=0)||J(vt[t],(function(t){return t===n})))return Ot.apply(this,arguments);vt[t].push(n)},window.removeEventListener=function(t,n){if(!("function"==typeof n&&wt.indexOf(t)>=0))return Pt.apply(this,arguments);vt[t]=vt[t].filter((function(t){return t!==n}))},window.history.pushState=bt(window.history.pushState,"pushState"),window.history.replaceState=bt(window.history.replaceState,"replaceState"),window.singleSpaNavigate?console.warn(A(41,!1)):window.singleSpaNavigate=gt}function Tt(t){var n=document.createElement("a");return n.href=t,n}var St=!1;function At(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.jQuery;if(t||window.$&&window.$.fn&&window.$.fn.jquery&&(t=window.$),t&&!St){var n=t.fn.on,e=t.fn.off;t.fn.on=function(t,e){return Nt.call(this,n,window.addEventListener,t,e,arguments)},t.fn.off=function(t,n){return Nt.call(this,e,window.removeEventListener,t,n,arguments)},St=!0}}function Nt(t,n,e,r,o){return"string"!=typeof e?t.apply(this,o):(e.split(/\s+/).forEach((function(t){wt.indexOf(t)>=0&&(n(t,r),e=e.replace(t,""))})),""===e.trim()?this:t.apply(this,o))}var xt={};function jt(t){return Promise.resolve().then((function(){var n=xt[W(t)];if(!n)return t;if(t.status===x)return _t(t,n),t;if("UNLOADING"===t.status)return n.promise.then((function(){return t}));if(t.status!==M&&t.status!==L)return t;var e=t.status===L?Promise.resolve():lt(t,"unload");return t.status="UNLOADING",e.then((function(){return _t(t,n),t})).catch((function(e){return function(t,n,e){delete xt[W(t)],delete t.bootstrap,delete t.mount,delete t.unmount,delete t.unload,P(e,t,B),n.reject(e)}(t,n,e),t}))}))}function _t(t,n){delete xt[W(t)],delete t.bootstrap,delete t.mount,delete t.unmount,delete t.unload,t.status=x,n.resolve()}function It(t,n,e,r){xt[W(t)]={app:t,resolve:e,reject:r},Object.defineProperty(xt[W(t)],"promise",{get:n})}function Mt(t){return xt[t]}var Dt=[];function Rt(){var t=[],n=[],e=[],r=[],o=(new Date).getTime();return Dt.forEach((function(i){var u=i.status!==B&&G(i);switch(i.status){case L:u&&o-i.loadErrorTime>=200&&e.push(i);break;case x:case j:u&&e.push(i);break;case _:case M:!u&&Mt(W(i))?t.push(i):u&&r.push(i);break;case R:u||n.push(i)}})),{appsToUnload:t,appsToUnmount:n,appsToLoad:e,appsToMount:r}}function Ut(){return Dt.filter($).map(W)}function Ct(){return Dt.map(W)}function Lt(t){var n=J(Dt,(function(n){return W(n)===t}));return n?n.status:null}function Bt(t,n,e,r){var o=function(t,n,e,r){var o,i={name:null,loadApp:null,activeWhen:null,customProps:null};return"object"===g(t)?(function(t){if(Array.isArray(t)||null===t)throw Error(A(39,!1));var n=["name","app","activeWhen","customProps"],e=Object.keys(t).reduce((function(t,e){return n.indexOf(e)>=0?t:t.concat(e)}),[]);if(0!==e.length)throw Error(A(38,!1,n.join(", "),e.join(", ")));if("string"!=typeof t.name||0===t.name.length)throw Error(A(20,!1));if("object"!==g(t.app)&&"function"!=typeof t.app)throw Error(A(20,!1));var r=function(t){return"string"==typeof t||"function"==typeof t};if(!(r(t.activeWhen)||Array.isArray(t.activeWhen)&&t.activeWhen.every(r)))throw Error(A(24,!1));if(!Ht(t.customProps))throw Error(A(22,!1))}(t),i.name=t.name,i.loadApp=t.app,i.activeWhen=t.activeWhen,i.customProps=t.customProps):(function(t,n,e,r){if("string"!=typeof t||0===t.length)throw Error(A(20,!1));if(!n)throw Error(A(23,!1));if("function"!=typeof e)throw Error(A(24,!1));if(!Ht(r))throw Error(A(22,!1))}(t,n,e,r),i.name=t,i.loadApp=n,i.activeWhen=e,i.customProps=r),i.loadApp="function"!=typeof(o=i.loadApp)?function(){return Promise.resolve(o)}:o,i.customProps=function(t){return t||{}}(i.customProps),i.activeWhen=function(t){var n=Array.isArray(t)?t:[t];return n=n.map((function(t){return"function"==typeof t?t:Ft(t)})),function(t){return n.some((function(n){return n(t)}))}}(i.activeWhen),i}(t,n,e,r);if(-1!==Ct().indexOf(o.name))throw Error(A(21,!1,o.name));Dt.push(F({loadErrorTime:null,status:x,parcels:{},devtools:{overlays:{options:{},selectors:[]}}},o)),dt&&(At(),qt())}function $t(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location;return Dt.filter((function(n){return n.activeWhen(t)})).map(W)}function Gt(t){if(0===Dt.filter((function(n){return W(n)===t})).length)throw Error(A(25,!1,t));return Wt(t).then((function(){var n=Dt.map(W).indexOf(t);Dt.splice(n,1)}))}function Wt(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{waitForUnmount:!1};if("string"!=typeof t)throw Error(A(26,!1));var e=J(Dt,(function(n){return W(n)===t}));if(!e)throw Error(A(27,!1,t));var r,o=Mt(W(e));if(n&&n.waitForUnmount){if(o)return o.promise;var i=new Promise((function(t,n){It(e,(function(){return i}),t,n)}));return i}return o?(r=o.promise,kt(e,o.resolve,o.reject)):r=new Promise((function(t,n){It(e,(function(){return r}),t,n),kt(e,t,n)})),r}function kt(t,n,e){z(t).then(jt).then((function(){n(),setTimeout((function(){qt()}))})).catch(e)}function Ht(t){return!t||"function"==typeof t||"object"===g(t)&&null!==t&&!Array.isArray(t)}function Ft(t,n){var e=function(t,n){var e=0,r=!1,o="^";"/"!==t[0]&&(t="/"+t);for(var i=0;i<t.length;i++){var u=t[i];(!r&&":"===u||r&&"/"===u)&&a(i)}return a(t.length),new RegExp(o,"i");function a(i){var u=t.slice(e,i).replace(/[|\\{}()[\]^$+*?.]/g,"\\$&");if(o+=r?"[^/]+/?":u,i===t.length)if(r)n&&(o+="$");else{var a=n?"":".*";o="/"===o.charAt(o.length-1)?"".concat(o).concat(a,"$"):"".concat(o,"(/").concat(a,")?(#.*)?$")}r=!r,e=i}}(t,n);return function(t){var n=t.origin;n||(n="".concat(t.protocol,"//").concat(t.host));var r=t.href.replace(n,"").replace(t.search,"").split("?")[0];return e.test(r)}}var Jt=!1,Kt=[],Qt=dt&&window.location.href;function Vt(){return qt()}function qt(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;if(Jt)return new Promise((function(t,e){Kt.push({resolve:t,reject:e,eventArguments:n})}));var e,r=Rt(),o=r.appsToUnload,i=r.appsToUnmount,u=r.appsToLoad,a=r.appsToMount,s=!1,c=Qt,f=Qt=window.location.href;return Zt()?(Jt=!0,e=o.concat(u,i,a),Promise.resolve().then((function(){if(window.dispatchEvent(new b(0===e.length?"single-spa:before-no-app-change":"single-spa:before-app-change",m(!0))),window.dispatchEvent(new b("single-spa:before-routing-event",m(!0,{cancelNavigation:l}))),s)return window.dispatchEvent(new b("single-spa:before-mount-routing-event",m(!0))),p(),void gt(c);var n=o.map(jt),r=i.map(z).map((function(t){return t.then(jt)})).concat(n),f=Promise.all(r);f.then((function(){window.dispatchEvent(new b("single-spa:before-mount-routing-event",m(!0)))}));var d=u.map((function(t){return ht(t).then((function(t){return zt(t,f)}))})),v=a.filter((function(t){return u.indexOf(t)<0})).map((function(t){return zt(t,f)}));return f.catch((function(t){throw h(),t})).then((function(){return h(),Promise.all(d.concat(v)).catch((function(n){throw t.forEach((function(t){return t.reject(n)})),n})).then(p)}))}))):(e=u,Promise.resolve().then((function(){var t=u.map(ht);return Promise.all(t).then(h).then((function(){return[]})).catch((function(t){throw h(),t}))})));function l(){s=!0}function p(){var n=Ut();t.forEach((function(t){return t.resolve(n)}));try{var r=0===e.length?"single-spa:no-app-change":"single-spa:app-change";window.dispatchEvent(new b(r,m())),window.dispatchEvent(new b("single-spa:routing-event",m()))}catch(t){setTimeout((function(){throw t}))}if(Jt=!1,Kt.length>0){var o=Kt;Kt=[],qt(o)}return n}function h(){t.forEach((function(t){yt(t.eventArguments)})),yt(n)}function m(){var t,r=arguments.length>0&&void 0!==arguments[0]&&arguments[0],l=arguments.length>1?arguments[1]:void 0,p={},h=(y(t={},R,[]),y(t,M,[]),y(t,x,[]),y(t,B,[]),t);r?(u.concat(a).forEach((function(t,n){d(t,R)})),o.forEach((function(t){d(t,x)})),i.forEach((function(t){d(t,M)}))):e.forEach((function(t){d(t)}));var m={detail:{newAppStatuses:p,appsByNewStatus:h,totalAppChanges:e.length,originalEvent:null==n?void 0:n[0],oldUrl:c,newUrl:f,navigationIsCanceled:s}};return l&&F(m.detail,l),m;function d(t,n){var e=W(t);n=n||Lt(e),p[e]=n,(h[n]=h[n]||[]).push(e)}}}function zt(t,n){return G(t)?q(t).then((function(t){return n.then((function(){return G(t)?Z(t):t}))})):n.then((function(){return t}))}var Xt=!1;function Yt(t){var n;Xt=!0,t&&t.urlRerouteOnly&&(n=t.urlRerouteOnly,mt=n),dt&&qt()}function Zt(){return Xt}dt&&setTimeout((function(){Xt||console.warn(A(1,!1))}),5e3);var tn={getRawAppData:function(){return[].concat(Dt)},reroute:qt,NOT_LOADED:x,toLoadPromise:ht,toBootstrapPromise:q,unregisterApplication:Gt};function nn(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function en(t,n){var e=window.getOpenmrsSpaBase().replace(/\/$/,"");return rn(t,function(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{},r=Object.keys(e);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(e).filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})))),r.forEach((function(n){nn(t,n,e[n])}))}return t}({openmrsBase:window.openmrsBase,openmrsSpaBase:e},n)).replace(/^\/\//,"/")}function rn(t,n){return Object.keys(n).reduce((function(t,e){return t.split("${"+e+"}").join(n[e])}),t)}function on(t){var n=t.to,e=t.templateParams,r=window.getOpenmrsSpaBase().replace(/\/$/,""),o=en(n,e).replace(window.location.origin,"");o.startsWith(r)?gt(o):window.location.assign(o)}dt&&window.__SINGLE_SPA_DEVTOOLS__&&(window.__SINGLE_SPA_DEVTOOLS__.exposedMethods=tn);var un="openmrs:history";function an(t){var n,e=JSON.parse(null!==(n=sessionStorage.getItem(un))&&void 0!==n?n:"[]")||[];e.push(t),e.length>50&&(e=e.slice(-50)),sessionStorage.setItem(un,JSON.stringify(e))}function sn(){var t;0===JSON.parse(null!==(t=sessionStorage.getItem(un))&&void 0!==t?t:"[]").length&&document.referrer&&an(document.referrer),window.addEventListener("single-spa:routing-event",(function(t){var n=cn();n[n.length-1]!==window.location.href&&an(window.location.href)}))}function cn(){var t;return JSON.parse(null!==(t=sessionStorage.getItem(un))&&void 0!==t?t:"[]")}function fn(t){var n=t.toUrl,e=cn(),r=e.lastIndexOf(n);if(-1==r)throw new Error("URL ".concat(n," not found in history; cannot go back to it."));var o=e.slice(0,r+1);on({to:e[r]}),sessionStorage.setItem(un,JSON.stringify(o))}function ln(){sessionStorage.removeItem(un)}})(),o})())}}}));
2
+ //# sourceMappingURL=openmrs-esm-navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openmrs-esm-navigation.js","mappings":"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","sources":["webpack://@openmrs/esm-navigation/external system \"@openmrs/esm-state\"","webpack://@openmrs/esm-navigation/webpack/bootstrap","webpack://@openmrs/esm-navigation/webpack/runtime/define property getters","webpack://@openmrs/esm-navigation/webpack/runtime/global","webpack://@openmrs/esm-navigation/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-navigation/webpack/runtime/make namespace object","webpack://@openmrs/esm-navigation/../../../node_modules/path-to-regexp/dist.es2015/index.js","webpack://@openmrs/esm-navigation/./src/breadcrumbs/db.ts","webpack://@openmrs/esm-navigation/./src/breadcrumbs/filter.ts","webpack://@openmrs/esm-navigation/../../../node_modules/single-spa/lib/esm/single-spa.min.js","webpack://@openmrs/esm-navigation/./src/navigation/interpolate-string.ts","webpack://@openmrs/esm-navigation/./src/navigation/navigate.ts","webpack://@openmrs/esm-navigation/./src/history/history.ts"],"sourcesContent":["module.exports = __WEBPACK_EXTERNAL_MODULE__685__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Tokenize input string.\n */\nfunction lexer(str) {\n var tokens = [];\n var i = 0;\n while (i < str.length) {\n var char = str[i];\n if (char === \"*\" || char === \"+\" || char === \"?\") {\n tokens.push({ type: \"MODIFIER\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"\\\\\") {\n tokens.push({ type: \"ESCAPED_CHAR\", index: i++, value: str[i++] });\n continue;\n }\n if (char === \"{\") {\n tokens.push({ type: \"OPEN\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"}\") {\n tokens.push({ type: \"CLOSE\", index: i, value: str[i++] });\n continue;\n }\n if (char === \":\") {\n var name = \"\";\n var j = i + 1;\n while (j < str.length) {\n var code = str.charCodeAt(j);\n if (\n // `0-9`\n (code >= 48 && code <= 57) ||\n // `A-Z`\n (code >= 65 && code <= 90) ||\n // `a-z`\n (code >= 97 && code <= 122) ||\n // `_`\n code === 95) {\n name += str[j++];\n continue;\n }\n break;\n }\n if (!name)\n throw new TypeError(\"Missing parameter name at \" + i);\n tokens.push({ type: \"NAME\", index: i, value: name });\n i = j;\n continue;\n }\n if (char === \"(\") {\n var count = 1;\n var pattern = \"\";\n var j = i + 1;\n if (str[j] === \"?\") {\n throw new TypeError(\"Pattern cannot start with \\\"?\\\" at \" + j);\n }\n while (j < str.length) {\n if (str[j] === \"\\\\\") {\n pattern += str[j++] + str[j++];\n continue;\n }\n if (str[j] === \")\") {\n count--;\n if (count === 0) {\n j++;\n break;\n }\n }\n else if (str[j] === \"(\") {\n count++;\n if (str[j + 1] !== \"?\") {\n throw new TypeError(\"Capturing groups are not allowed at \" + j);\n }\n }\n pattern += str[j++];\n }\n if (count)\n throw new TypeError(\"Unbalanced pattern at \" + i);\n if (!pattern)\n throw new TypeError(\"Missing pattern at \" + i);\n tokens.push({ type: \"PATTERN\", index: i, value: pattern });\n i = j;\n continue;\n }\n tokens.push({ type: \"CHAR\", index: i, value: str[i++] });\n }\n tokens.push({ type: \"END\", index: i, value: \"\" });\n return tokens;\n}\n/**\n * Parse a string for the raw tokens.\n */\nexport function parse(str, options) {\n if (options === void 0) { options = {}; }\n var tokens = lexer(str);\n var _a = options.prefixes, prefixes = _a === void 0 ? \"./\" : _a;\n var defaultPattern = \"[^\" + escapeString(options.delimiter || \"/#?\") + \"]+?\";\n var result = [];\n var key = 0;\n var i = 0;\n var path = \"\";\n var tryConsume = function (type) {\n if (i < tokens.length && tokens[i].type === type)\n return tokens[i++].value;\n };\n var mustConsume = function (type) {\n var value = tryConsume(type);\n if (value !== undefined)\n return value;\n var _a = tokens[i], nextType = _a.type, index = _a.index;\n throw new TypeError(\"Unexpected \" + nextType + \" at \" + index + \", expected \" + type);\n };\n var consumeText = function () {\n var result = \"\";\n var value;\n // tslint:disable-next-line\n while ((value = tryConsume(\"CHAR\") || tryConsume(\"ESCAPED_CHAR\"))) {\n result += value;\n }\n return result;\n };\n while (i < tokens.length) {\n var char = tryConsume(\"CHAR\");\n var name = tryConsume(\"NAME\");\n var pattern = tryConsume(\"PATTERN\");\n if (name || pattern) {\n var prefix = char || \"\";\n if (prefixes.indexOf(prefix) === -1) {\n path += prefix;\n prefix = \"\";\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n result.push({\n name: name || key++,\n prefix: prefix,\n suffix: \"\",\n pattern: pattern || defaultPattern,\n modifier: tryConsume(\"MODIFIER\") || \"\"\n });\n continue;\n }\n var value = char || tryConsume(\"ESCAPED_CHAR\");\n if (value) {\n path += value;\n continue;\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n var open = tryConsume(\"OPEN\");\n if (open) {\n var prefix = consumeText();\n var name_1 = tryConsume(\"NAME\") || \"\";\n var pattern_1 = tryConsume(\"PATTERN\") || \"\";\n var suffix = consumeText();\n mustConsume(\"CLOSE\");\n result.push({\n name: name_1 || (pattern_1 ? key++ : \"\"),\n pattern: name_1 && !pattern_1 ? defaultPattern : pattern_1,\n prefix: prefix,\n suffix: suffix,\n modifier: tryConsume(\"MODIFIER\") || \"\"\n });\n continue;\n }\n mustConsume(\"END\");\n }\n return result;\n}\n/**\n * Compile a string to a template function for the path.\n */\nexport function compile(str, options) {\n return tokensToFunction(parse(str, options), options);\n}\n/**\n * Expose a method for transforming tokens into the path function.\n */\nexport function tokensToFunction(tokens, options) {\n if (options === void 0) { options = {}; }\n var reFlags = flags(options);\n var _a = options.encode, encode = _a === void 0 ? function (x) { return x; } : _a, _b = options.validate, validate = _b === void 0 ? true : _b;\n // Compile all the tokens into regexps.\n var matches = tokens.map(function (token) {\n if (typeof token === \"object\") {\n return new RegExp(\"^(?:\" + token.pattern + \")$\", reFlags);\n }\n });\n return function (data) {\n var path = \"\";\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (typeof token === \"string\") {\n path += token;\n continue;\n }\n var value = data ? data[token.name] : undefined;\n var optional = token.modifier === \"?\" || token.modifier === \"*\";\n var repeat = token.modifier === \"*\" || token.modifier === \"+\";\n if (Array.isArray(value)) {\n if (!repeat) {\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to not repeat, but got an array\");\n }\n if (value.length === 0) {\n if (optional)\n continue;\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to not be empty\");\n }\n for (var j = 0; j < value.length; j++) {\n var segment = encode(value[j], token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected all \\\"\" + token.name + \"\\\" to match \\\"\" + token.pattern + \"\\\", but got \\\"\" + segment + \"\\\"\");\n }\n path += token.prefix + segment + token.suffix;\n }\n continue;\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n var segment = encode(String(value), token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to match \\\"\" + token.pattern + \"\\\", but got \\\"\" + segment + \"\\\"\");\n }\n path += token.prefix + segment + token.suffix;\n continue;\n }\n if (optional)\n continue;\n var typeOfMessage = repeat ? \"an array\" : \"a string\";\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to be \" + typeOfMessage);\n }\n return path;\n };\n}\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nexport function match(str, options) {\n var keys = [];\n var re = pathToRegexp(str, keys, options);\n return regexpToFunction(re, keys, options);\n}\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nexport function regexpToFunction(re, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.decode, decode = _a === void 0 ? function (x) { return x; } : _a;\n return function (pathname) {\n var m = re.exec(pathname);\n if (!m)\n return false;\n var path = m[0], index = m.index;\n var params = Object.create(null);\n var _loop_1 = function (i) {\n // tslint:disable-next-line\n if (m[i] === undefined)\n return \"continue\";\n var key = keys[i - 1];\n if (key.modifier === \"*\" || key.modifier === \"+\") {\n params[key.name] = m[i].split(key.prefix + key.suffix).map(function (value) {\n return decode(value, key);\n });\n }\n else {\n params[key.name] = decode(m[i], key);\n }\n };\n for (var i = 1; i < m.length; i++) {\n _loop_1(i);\n }\n return { path: path, index: index, params: params };\n };\n}\n/**\n * Escape a regular expression string.\n */\nfunction escapeString(str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\n/**\n * Get the flags for a regexp from the options.\n */\nfunction flags(options) {\n return options && options.sensitive ? \"\" : \"i\";\n}\n/**\n * Pull out keys from a regexp.\n */\nfunction regexpToRegexp(path, keys) {\n if (!keys)\n return path;\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: \"\",\n suffix: \"\",\n modifier: \"\",\n pattern: \"\"\n });\n }\n }\n return path;\n}\n/**\n * Transform an array into a regexp.\n */\nfunction arrayToRegexp(paths, keys, options) {\n var parts = paths.map(function (path) { return pathToRegexp(path, keys, options).source; });\n return new RegExp(\"(?:\" + parts.join(\"|\") + \")\", flags(options));\n}\n/**\n * Create a path regexp from string input.\n */\nfunction stringToRegexp(path, keys, options) {\n return tokensToRegexp(parse(path, options), keys, options);\n}\n/**\n * Expose a function for taking tokens and returning a RegExp.\n */\nexport function tokensToRegexp(tokens, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function (x) { return x; } : _d;\n var endsWith = \"[\" + escapeString(options.endsWith || \"\") + \"]|$\";\n var delimiter = \"[\" + escapeString(options.delimiter || \"/#?\") + \"]\";\n var route = start ? \"^\" : \"\";\n // Iterate over the tokens and create our regexp string.\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n if (typeof token === \"string\") {\n route += escapeString(encode(token));\n }\n else {\n var prefix = escapeString(encode(token.prefix));\n var suffix = escapeString(encode(token.suffix));\n if (token.pattern) {\n if (keys)\n keys.push(token);\n if (prefix || suffix) {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n var mod = token.modifier === \"*\" ? \"?\" : \"\";\n route += \"(?:\" + prefix + \"((?:\" + token.pattern + \")(?:\" + suffix + prefix + \"(?:\" + token.pattern + \"))*)\" + suffix + \")\" + mod;\n }\n else {\n route += \"(?:\" + prefix + \"(\" + token.pattern + \")\" + suffix + \")\" + token.modifier;\n }\n }\n else {\n route += \"(\" + token.pattern + \")\" + token.modifier;\n }\n }\n else {\n route += \"(?:\" + prefix + suffix + \")\" + token.modifier;\n }\n }\n }\n if (end) {\n if (!strict)\n route += delimiter + \"?\";\n route += !options.endsWith ? \"$\" : \"(?=\" + endsWith + \")\";\n }\n else {\n var endToken = tokens[tokens.length - 1];\n var isEndDelimited = typeof endToken === \"string\"\n ? delimiter.indexOf(endToken[endToken.length - 1]) > -1\n : // tslint:disable-next-line\n endToken === undefined;\n if (!strict) {\n route += \"(?:\" + delimiter + \"(?=\" + endsWith + \"))?\";\n }\n if (!isEndDelimited) {\n route += \"(?=\" + delimiter + \"|\" + endsWith + \")\";\n }\n }\n return new RegExp(route, flags(options));\n}\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n */\nexport function pathToRegexp(path, keys, options) {\n if (path instanceof RegExp)\n return regexpToRegexp(path, keys);\n if (Array.isArray(path))\n return arrayToRegexp(path, keys, options);\n return stringToRegexp(path, keys, options);\n}\n//# sourceMappingURL=index.js.map","/** @module @category Breadcrumb */\nimport { pathToRegexp } from 'path-to-regexp';\nimport { createGlobalStore } from '@openmrs/esm-state';\nimport type { BreadcrumbSettings, BreadcrumbRegistration } from '../types';\n\nconst store = createGlobalStore<Array<BreadcrumbRegistration>>('breadcrumbs', []);\n\nfunction getMatcher(settings: BreadcrumbSettings) {\n if (settings.matcher instanceof RegExp) {\n return settings.matcher;\n } else if (typeof settings.matcher === 'string') {\n return pathToRegexp(settings.matcher);\n } else {\n return pathToRegexp(settings.path);\n }\n}\n\nexport function registerBreadcrumb(breadcrumb: BreadcrumbSettings) {\n return registerBreadcrumbs([breadcrumb]);\n}\n\nexport function registerBreadcrumbs(breadcrumbs: Array<BreadcrumbSettings>) {\n const prevBreadcrumbs = getBreadcrumbs();\n const newBreadcrumbs = breadcrumbs.map((settings) => ({\n matcher: getMatcher(settings),\n settings,\n }));\n const nextBreadcrumbs = [...prevBreadcrumbs, ...newBreadcrumbs];\n store.setState(nextBreadcrumbs, true);\n}\n\nexport function getBreadcrumbs() {\n return store.getState();\n}\n","/** @module @category Breadcrumb */\nimport { getBreadcrumbs } from './db';\nimport type { BreadcrumbRegistration } from '../types';\n\nfunction getExact(breadcrumbs: Array<BreadcrumbRegistration>, path: string): BreadcrumbRegistration {\n const [bc] = breadcrumbs.filter((m) => m.matcher.test(path));\n return bc;\n}\n\nfunction getClosest(breadcrumbs: Array<BreadcrumbRegistration>, path: string): BreadcrumbRegistration | undefined {\n const segments = path.split('/');\n\n while (segments.length > 1) {\n segments.pop();\n const newPath = segments.join('/');\n const next = getNext(breadcrumbs, newPath);\n\n if (next) {\n return next;\n }\n }\n\n return undefined;\n}\n\nfunction getNext(breadcrumbs: Array<BreadcrumbRegistration>, path: string | undefined) {\n if (path) {\n return getExact(breadcrumbs, path) || getClosest(breadcrumbs, path);\n }\n\n return undefined;\n}\n\nexport function filterBreadcrumbs(list: Array<BreadcrumbRegistration>, path: string) {\n if (list.length > 0) {\n const current = getNext(list, path);\n\n if (current) {\n const links = [current];\n let previous = getNext(list, current.settings.parent);\n\n while (previous !== undefined) {\n links.push(previous);\n previous = getNext(list, previous.settings.parent);\n }\n\n return links.reverse();\n }\n }\n\n return [];\n}\n\nexport function getBreadcrumbsFor(path: string) {\n const breadcrumbs = getBreadcrumbs();\n return filterBreadcrumbs(breadcrumbs, path);\n}\n","/* single-spa@5.9.4 - ESM - prod */\nvar t=Object.freeze({__proto__:null,get start(){return xt},get ensureJQuerySupport(){return ft},get setBootstrapMaxTime(){return F},get setMountMaxTime(){return J},get setUnmountMaxTime(){return H},get setUnloadMaxTime(){return Q},get registerApplication(){return Ot},get unregisterApplication(){return Tt},get getMountedApps(){return Et},get getAppStatus(){return Pt},get unloadApplication(){return At},get checkActivityFunctions(){return bt},get getAppNames(){return yt},get pathToActiveWhen(){return _t},get navigateToUrl(){return nt},get triggerAppChange(){return Mt},get addErrorHandler(){return a},get removeErrorHandler(){return c},get mountRootParcel(){return C},get NOT_LOADED(){return l},get LOADING_SOURCE_CODE(){return p},get NOT_BOOTSTRAPPED(){return h},get BOOTSTRAPPING(){return m},get NOT_MOUNTED(){return v},get MOUNTING(){return d},get UPDATING(){return g},get LOAD_ERROR(){return y},get MOUNTED(){return w},get UNMOUNTING(){return E},get SKIP_BECAUSE_BROKEN(){return P}});function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function e(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}var r=(\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{}).CustomEvent,o=function(){try{var t=new r(\"cat\",{detail:{foo:\"bar\"}});return\"cat\"===t.type&&\"bar\"===t.detail.foo}catch(t){}return!1}()?r:\"undefined\"!=typeof document&&\"function\"==typeof document.createEvent?function(t,n){var e=document.createEvent(\"CustomEvent\");return n?e.initCustomEvent(t,n.bubbles,n.cancelable,n.detail):e.initCustomEvent(t,!1,!1,void 0),e}:function(t,n){var e=document.createEventObject();return e.type=t,n?(e.bubbles=Boolean(n.bubbles),e.cancelable=Boolean(n.cancelable),e.detail=n.detail):(e.bubbles=!1,e.cancelable=!1,e.detail=void 0),e},i=[];function u(t,n,e){var r=f(t,n,e);i.length?i.forEach((function(t){return t(r)})):setTimeout((function(){throw r}))}function a(t){if(\"function\"!=typeof t)throw Error(s(28,!1));i.push(t)}function c(t){if(\"function\"!=typeof t)throw Error(s(29,!1));var n=!1;return i=i.filter((function(e){var r=e===t;return n=n||r,!r})),n}function s(t,n){for(var e=arguments.length,r=new Array(e>2?e-2:0),o=2;o<e;o++)r[o-2]=arguments[o];return\"single-spa minified message #\".concat(t,\": \").concat(n?n+\" \":\"\",\"See https://single-spa.js.org/error/?code=\").concat(t).concat(r.length?\"&arg=\".concat(r.join(\"&arg=\")):\"\")}function f(t,n,e){var r,o=\"\".concat(N(n),\" '\").concat(T(n),\"' died in status \").concat(n.status,\": \");if(t instanceof Error){try{t.message=o+t.message}catch(t){}r=t}else{console.warn(s(30,!1,n.status,T(n)));try{r=Error(o+JSON.stringify(t))}catch(n){r=t}}return r.appOrParcelName=T(n),n.status=e,r}var l=\"NOT_LOADED\",p=\"LOADING_SOURCE_CODE\",h=\"NOT_BOOTSTRAPPED\",m=\"BOOTSTRAPPING\",v=\"NOT_MOUNTED\",d=\"MOUNTING\",w=\"MOUNTED\",g=\"UPDATING\",E=\"UNMOUNTING\",y=\"LOAD_ERROR\",P=\"SKIP_BECAUSE_BROKEN\";function O(t){return t.status===w}function b(t){try{return t.activeWhen(window.location)}catch(n){return u(n,t,P),!1}}function T(t){return t.name}function A(t){return Boolean(t.unmountThisParcel)}function N(t){return A(t)?\"parcel\":\"application\"}function S(){for(var t=arguments.length-1;t>0;t--)for(var n in arguments[t])\"__proto__\"!==n&&(arguments[t-1][n]=arguments[t][n]);return arguments[0]}function _(t,n){for(var e=0;e<t.length;e++)if(n(t[e]))return t[e];return null}function D(t){return t&&(\"function\"==typeof t||(n=t,Array.isArray(n)&&!_(n,(function(t){return\"function\"!=typeof t}))));var n}function U(t,n){var e=t[n]||[];0===(e=Array.isArray(e)?e:[e]).length&&(e=[function(){return Promise.resolve()}]);var r=N(t),o=T(t);return function(t){return e.reduce((function(e,i,u){return e.then((function(){var e=i(t);return j(e)?e:Promise.reject(s(15,!1,r,o,n,u))}))}),Promise.resolve())}}function j(t){return t&&\"function\"==typeof t.then&&\"function\"==typeof t.catch}function M(t,n){return Promise.resolve().then((function(){return t.status!==h?t:(t.status=m,t.bootstrap?V(t,\"bootstrap\").then(e).catch((function(e){if(n)throw f(e,t,P);return u(e,t,P),t})):Promise.resolve().then(e))}));function e(){return t.status=v,t}}function L(t,n){return Promise.resolve().then((function(){if(t.status!==w)return t;t.status=E;var e=Object.keys(t.parcels).map((function(n){return t.parcels[n].unmountThisParcel()}));return Promise.all(e).then(r,(function(e){return r().then((function(){var r=Error(e.message);if(n)throw f(r,t,P);u(r,t,P)}))})).then((function(){return t}));function r(){return V(t,\"unmount\").then((function(){t.status=v})).catch((function(e){if(n)throw f(e,t,P);u(e,t,P)}))}}))}var R=!1,I=!1;function x(t,n){return Promise.resolve().then((function(){return t.status!==v?t:(R||(window.dispatchEvent(new o(\"single-spa:before-first-mount\")),R=!0),V(t,\"mount\").then((function(){return t.status=w,I||(window.dispatchEvent(new o(\"single-spa:first-mount\")),I=!0),t})).catch((function(e){return t.status=w,L(t,!0).then(r,r);function r(){if(n)throw f(e,t,P);return u(e,t,P),t}})))}))}var B=0,G={parcels:{}};function C(){return W.apply(G,arguments)}function W(t,e){var r=this;if(!t||\"object\"!==n(t)&&\"function\"!=typeof t)throw Error(s(2,!1));if(t.name&&\"string\"!=typeof t.name)throw Error(s(3,!1,n(t.name)));if(\"object\"!==n(e))throw Error(s(4,!1,name,n(e)));if(!e.domElement)throw Error(s(5,!1,name));var o,i=B++,u=\"function\"==typeof t,a=u?t:function(){return Promise.resolve(t)},c={id:i,parcels:{},status:u?p:h,customProps:e,parentName:T(r),unmountThisParcel:function(){return y.then((function(){if(c.status!==w)throw Error(s(6,!1,name,c.status));return L(c,!0)})).then((function(t){return c.parentName&&delete r.parcels[c.id],t})).then((function(t){return m(t),t})).catch((function(t){throw c.status=P,d(t),t}))}};r.parcels[i]=c;var l=a();if(!l||\"function\"!=typeof l.then)throw Error(s(7,!1));var m,d,E=(l=l.then((function(t){if(!t)throw Error(s(8,!1));var n=t.name||\"parcel-\".concat(i);if(Object.prototype.hasOwnProperty.call(t,\"bootstrap\")&&!D(t.bootstrap))throw Error(s(9,!1,n));if(!D(t.mount))throw Error(s(10,!1,n));if(!D(t.unmount))throw Error(s(11,!1,n));if(t.update&&!D(t.update))throw Error(s(12,!1,n));var e=U(t,\"bootstrap\"),r=U(t,\"mount\"),u=U(t,\"unmount\");c.status=h,c.name=n,c.bootstrap=e,c.mount=r,c.unmount=u,c.timeouts=q(t.timeouts),t.update&&(c.update=U(t,\"update\"),o.update=function(t){return c.customProps=t,$(function(t){return Promise.resolve().then((function(){if(t.status!==w)throw Error(s(32,!1,T(t)));return t.status=g,V(t,\"update\").then((function(){return t.status=w,t})).catch((function(n){throw f(n,t,P)}))}))}(c))})}))).then((function(){return M(c,!0)})),y=E.then((function(){return x(c,!0)})),O=new Promise((function(t,n){m=t,d=n}));return o={mount:function(){return $(Promise.resolve().then((function(){if(c.status!==v)throw Error(s(13,!1,name,c.status));return r.parcels[i]=c,x(c)})))},unmount:function(){return $(c.unmountThisParcel())},getStatus:function(){return c.status},loadPromise:$(l),bootstrapPromise:$(E),mountPromise:$(y),unmountPromise:$(O)}}function $(t){return t.then((function(){return null}))}function k(e){var r=T(e),o=\"function\"==typeof e.customProps?e.customProps(r,window.location):e.customProps;(\"object\"!==n(o)||null===o||Array.isArray(o))&&(o={},console.warn(s(40,!1),r,o));var i=S({},o,{name:r,mountParcel:W.bind(e),singleSpa:t});return A(e)&&(i.unmountSelf=e.unmountThisParcel),i}var K={bootstrap:{millis:4e3,dieOnTimeout:!1,warningMillis:1e3},mount:{millis:3e3,dieOnTimeout:!1,warningMillis:1e3},unmount:{millis:3e3,dieOnTimeout:!1,warningMillis:1e3},unload:{millis:3e3,dieOnTimeout:!1,warningMillis:1e3},update:{millis:3e3,dieOnTimeout:!1,warningMillis:1e3}};function F(t,n,e){if(\"number\"!=typeof t||t<=0)throw Error(s(16,!1));K.bootstrap={millis:t,dieOnTimeout:n,warningMillis:e||1e3}}function J(t,n,e){if(\"number\"!=typeof t||t<=0)throw Error(s(17,!1));K.mount={millis:t,dieOnTimeout:n,warningMillis:e||1e3}}function H(t,n,e){if(\"number\"!=typeof t||t<=0)throw Error(s(18,!1));K.unmount={millis:t,dieOnTimeout:n,warningMillis:e||1e3}}function Q(t,n,e){if(\"number\"!=typeof t||t<=0)throw Error(s(19,!1));K.unload={millis:t,dieOnTimeout:n,warningMillis:e||1e3}}function V(t,n){var e=t.timeouts[n],r=e.warningMillis,o=N(t);return new Promise((function(i,u){var a=!1,c=!1;t[n](k(t)).then((function(t){a=!0,i(t)})).catch((function(t){a=!0,u(t)})),setTimeout((function(){return l(1)}),r),setTimeout((function(){return l(!0)}),e.millis);var f=s(31,!1,n,o,T(t),e.millis);function l(t){if(!a)if(!0===t)c=!0,e.dieOnTimeout?u(Error(f)):console.error(f);else if(!c){var n=t,o=n*r;console.warn(f),o+r<e.millis&&setTimeout((function(){return l(n+1)}),r)}}}))}function q(t){var n={};for(var e in K)n[e]=S({},K[e],t&&t[e]||{});return n}function z(t){return Promise.resolve().then((function(){return t.loadPromise?t.loadPromise:t.status!==l&&t.status!==y?t:(t.status=p,t.loadPromise=Promise.resolve().then((function(){var o=t.loadApp(k(t));if(!j(o))throw r=!0,Error(s(33,!1,T(t)));return o.then((function(r){var o;t.loadErrorTime=null,\"object\"!==n(e=r)&&(o=34),Object.prototype.hasOwnProperty.call(e,\"bootstrap\")&&!D(e.bootstrap)&&(o=35),D(e.mount)||(o=36),D(e.unmount)||(o=37);var i=N(e);if(o){var a;try{a=JSON.stringify(e)}catch(t){}return console.error(s(o,!1,i,T(t),a),e),u(void 0,t,P),t}return e.devtools&&e.devtools.overlays&&(t.devtools.overlays=S({},t.devtools.overlays,e.devtools.overlays)),t.status=h,t.bootstrap=U(e,\"bootstrap\"),t.mount=U(e,\"mount\"),t.unmount=U(e,\"unmount\"),t.unload=U(e,\"unload\"),t.timeouts=q(e.timeouts),delete t.loadPromise,t}))})).catch((function(n){var e;return delete t.loadPromise,r?e=P:(e=y,t.loadErrorTime=(new Date).getTime()),u(n,t,e),t})));var e,r}))}var X,Y=\"undefined\"!=typeof window,Z={hashchange:[],popstate:[]},tt=[\"hashchange\",\"popstate\"];function nt(t){var n;if(\"string\"==typeof t)n=t;else if(this&&this.href)n=this.href;else{if(!(t&&t.currentTarget&&t.currentTarget.href&&t.preventDefault))throw Error(s(14,!1));n=t.currentTarget.href,t.preventDefault()}var e=ct(window.location.href),r=ct(n);0===n.indexOf(\"#\")?window.location.hash=r.hash:e.host!==r.host&&r.host?window.location.href=n:r.pathname===e.pathname&&r.search===e.search?window.location.hash=r.hash:window.history.pushState(null,null,n)}function et(t){var n=this;if(t){var e=t[0].type;tt.indexOf(e)>=0&&Z[e].forEach((function(e){try{e.apply(n,t)}catch(t){setTimeout((function(){throw t}))}}))}}function rt(){Lt([],arguments)}function ot(t,n){return function(){var e=window.location.href,r=t.apply(this,arguments),o=window.location.href;return X&&e===o||(Bt()?window.dispatchEvent(it(window.history.state,n)):Lt([])),r}}function it(t,n){var e;try{e=new PopStateEvent(\"popstate\",{state:t})}catch(n){(e=document.createEvent(\"PopStateEvent\")).initPopStateEvent(\"popstate\",!1,!1,t)}return e.singleSpa=!0,e.singleSpaTrigger=n,e}if(Y){window.addEventListener(\"hashchange\",rt),window.addEventListener(\"popstate\",rt);var ut=window.addEventListener,at=window.removeEventListener;window.addEventListener=function(t,n){if(!(\"function\"==typeof n&&tt.indexOf(t)>=0)||_(Z[t],(function(t){return t===n})))return ut.apply(this,arguments);Z[t].push(n)},window.removeEventListener=function(t,n){if(!(\"function\"==typeof n&&tt.indexOf(t)>=0))return at.apply(this,arguments);Z[t]=Z[t].filter((function(t){return t!==n}))},window.history.pushState=ot(window.history.pushState,\"pushState\"),window.history.replaceState=ot(window.history.replaceState,\"replaceState\"),window.singleSpaNavigate?console.warn(s(41,!1)):window.singleSpaNavigate=nt}function ct(t){var n=document.createElement(\"a\");return n.href=t,n}var st=!1;function ft(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.jQuery;if(t||window.$&&window.$.fn&&window.$.fn.jquery&&(t=window.$),t&&!st){var n=t.fn.on,e=t.fn.off;t.fn.on=function(t,e){return lt.call(this,n,window.addEventListener,t,e,arguments)},t.fn.off=function(t,n){return lt.call(this,e,window.removeEventListener,t,n,arguments)},st=!0}}function lt(t,n,e,r,o){return\"string\"!=typeof e?t.apply(this,o):(e.split(/\\s+/).forEach((function(t){tt.indexOf(t)>=0&&(n(t,r),e=e.replace(t,\"\"))})),\"\"===e.trim()?this:t.apply(this,o))}var pt={};function ht(t){return Promise.resolve().then((function(){var n=pt[T(t)];if(!n)return t;if(t.status===l)return mt(t,n),t;if(\"UNLOADING\"===t.status)return n.promise.then((function(){return t}));if(t.status!==v&&t.status!==y)return t;var e=t.status===y?Promise.resolve():V(t,\"unload\");return t.status=\"UNLOADING\",e.then((function(){return mt(t,n),t})).catch((function(e){return function(t,n,e){delete pt[T(t)],delete t.bootstrap,delete t.mount,delete t.unmount,delete t.unload,u(e,t,P),n.reject(e)}(t,n,e),t}))}))}function mt(t,n){delete pt[T(t)],delete t.bootstrap,delete t.mount,delete t.unmount,delete t.unload,t.status=l,n.resolve()}function vt(t,n,e,r){pt[T(t)]={app:t,resolve:e,reject:r},Object.defineProperty(pt[T(t)],\"promise\",{get:n})}function dt(t){return pt[t]}var wt=[];function gt(){var t=[],n=[],e=[],r=[],o=(new Date).getTime();return wt.forEach((function(i){var u=i.status!==P&&b(i);switch(i.status){case y:u&&o-i.loadErrorTime>=200&&e.push(i);break;case l:case p:u&&e.push(i);break;case h:case v:!u&&dt(T(i))?t.push(i):u&&r.push(i);break;case w:u||n.push(i)}})),{appsToUnload:t,appsToUnmount:n,appsToLoad:e,appsToMount:r}}function Et(){return wt.filter(O).map(T)}function yt(){return wt.map(T)}function Pt(t){var n=_(wt,(function(n){return T(n)===t}));return n?n.status:null}function Ot(t,e,r,o){var i=function(t,e,r,o){var i,u={name:null,loadApp:null,activeWhen:null,customProps:null};return\"object\"===n(t)?(function(t){if(Array.isArray(t)||null===t)throw Error(s(39,!1));var e=[\"name\",\"app\",\"activeWhen\",\"customProps\"],r=Object.keys(t).reduce((function(t,n){return e.indexOf(n)>=0?t:t.concat(n)}),[]);if(0!==r.length)throw Error(s(38,!1,e.join(\", \"),r.join(\", \")));if(\"string\"!=typeof t.name||0===t.name.length)throw Error(s(20,!1));if(\"object\"!==n(t.app)&&\"function\"!=typeof t.app)throw Error(s(20,!1));var o=function(t){return\"string\"==typeof t||\"function\"==typeof t};if(!(o(t.activeWhen)||Array.isArray(t.activeWhen)&&t.activeWhen.every(o)))throw Error(s(24,!1));if(!St(t.customProps))throw Error(s(22,!1))}(t),u.name=t.name,u.loadApp=t.app,u.activeWhen=t.activeWhen,u.customProps=t.customProps):(function(t,n,e,r){if(\"string\"!=typeof t||0===t.length)throw Error(s(20,!1));if(!n)throw Error(s(23,!1));if(\"function\"!=typeof e)throw Error(s(24,!1));if(!St(r))throw Error(s(22,!1))}(t,e,r,o),u.name=t,u.loadApp=e,u.activeWhen=r,u.customProps=o),u.loadApp=\"function\"!=typeof(i=u.loadApp)?function(){return Promise.resolve(i)}:i,u.customProps=function(t){return t||{}}(u.customProps),u.activeWhen=function(t){var n=Array.isArray(t)?t:[t];return n=n.map((function(t){return\"function\"==typeof t?t:_t(t)})),function(t){return n.some((function(n){return n(t)}))}}(u.activeWhen),u}(t,e,r,o);if(-1!==yt().indexOf(i.name))throw Error(s(21,!1,i.name));wt.push(S({loadErrorTime:null,status:l,parcels:{},devtools:{overlays:{options:{},selectors:[]}}},i)),Y&&(ft(),Lt())}function bt(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location;return wt.filter((function(n){return n.activeWhen(t)})).map(T)}function Tt(t){if(0===wt.filter((function(n){return T(n)===t})).length)throw Error(s(25,!1,t));return At(t).then((function(){var n=wt.map(T).indexOf(t);wt.splice(n,1)}))}function At(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{waitForUnmount:!1};if(\"string\"!=typeof t)throw Error(s(26,!1));var e=_(wt,(function(n){return T(n)===t}));if(!e)throw Error(s(27,!1,t));var r,o=dt(T(e));if(n&&n.waitForUnmount){if(o)return o.promise;var i=new Promise((function(t,n){vt(e,(function(){return i}),t,n)}));return i}return o?(r=o.promise,Nt(e,o.resolve,o.reject)):r=new Promise((function(t,n){vt(e,(function(){return r}),t,n),Nt(e,t,n)})),r}function Nt(t,n,e){L(t).then(ht).then((function(){n(),setTimeout((function(){Lt()}))})).catch(e)}function St(t){return!t||\"function\"==typeof t||\"object\"===n(t)&&null!==t&&!Array.isArray(t)}function _t(t,n){var e=function(t,n){var e=0,r=!1,o=\"^\";\"/\"!==t[0]&&(t=\"/\"+t);for(var i=0;i<t.length;i++){var u=t[i];(!r&&\":\"===u||r&&\"/\"===u)&&a(i)}return a(t.length),new RegExp(o,\"i\");function a(i){var u=t.slice(e,i).replace(/[|\\\\{}()[\\]^$+*?.]/g,\"\\\\$&\");if(o+=r?\"[^/]+/?\":u,i===t.length)if(r)n&&(o+=\"$\");else{var a=n?\"\":\".*\";o=\"/\"===o.charAt(o.length-1)?\"\".concat(o).concat(a,\"$\"):\"\".concat(o,\"(/\").concat(a,\")?(#.*)?$\")}r=!r,e=i}}(t,n);return function(t){var n=t.origin;n||(n=\"\".concat(t.protocol,\"//\").concat(t.host));var r=t.href.replace(n,\"\").replace(t.search,\"\").split(\"?\")[0];return e.test(r)}}var Dt=!1,Ut=[],jt=Y&&window.location.href;function Mt(){return Lt()}function Lt(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;if(Dt)return new Promise((function(t,e){Ut.push({resolve:t,reject:e,eventArguments:n})}));var r,i=gt(),u=i.appsToUnload,a=i.appsToUnmount,c=i.appsToLoad,s=i.appsToMount,f=!1,p=jt,h=jt=window.location.href;return Bt()?(Dt=!0,r=u.concat(c,a,s),g()):(r=c,d());function m(){f=!0}function d(){return Promise.resolve().then((function(){var t=c.map(z);return Promise.all(t).then(y).then((function(){return[]})).catch((function(t){throw y(),t}))}))}function g(){return Promise.resolve().then((function(){if(window.dispatchEvent(new o(0===r.length?\"single-spa:before-no-app-change\":\"single-spa:before-app-change\",O(!0))),window.dispatchEvent(new o(\"single-spa:before-routing-event\",O(!0,{cancelNavigation:m}))),f)return window.dispatchEvent(new o(\"single-spa:before-mount-routing-event\",O(!0))),E(),void nt(p);var n=u.map(ht),e=a.map(L).map((function(t){return t.then(ht)})).concat(n),i=Promise.all(e);i.then((function(){window.dispatchEvent(new o(\"single-spa:before-mount-routing-event\",O(!0)))}));var l=c.map((function(t){return z(t).then((function(t){return Rt(t,i)}))})),h=s.filter((function(t){return c.indexOf(t)<0})).map((function(t){return Rt(t,i)}));return i.catch((function(t){throw y(),t})).then((function(){return y(),Promise.all(l.concat(h)).catch((function(n){throw t.forEach((function(t){return t.reject(n)})),n})).then(E)}))}))}function E(){var n=Et();t.forEach((function(t){return t.resolve(n)}));try{var e=0===r.length?\"single-spa:no-app-change\":\"single-spa:app-change\";window.dispatchEvent(new o(e,O())),window.dispatchEvent(new o(\"single-spa:routing-event\",O()))}catch(t){setTimeout((function(){throw t}))}if(Dt=!1,Ut.length>0){var i=Ut;Ut=[],Lt(i)}return n}function y(){t.forEach((function(t){et(t.eventArguments)})),et(n)}function O(){var t,o=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=arguments.length>1?arguments[1]:void 0,m={},d=(e(t={},w,[]),e(t,v,[]),e(t,l,[]),e(t,P,[]),t);o?(c.concat(s).forEach((function(t,n){E(t,w)})),u.forEach((function(t){E(t,l)})),a.forEach((function(t){E(t,v)}))):r.forEach((function(t){E(t)}));var g={detail:{newAppStatuses:m,appsByNewStatus:d,totalAppChanges:r.length,originalEvent:null==n?void 0:n[0],oldUrl:p,newUrl:h,navigationIsCanceled:f}};return i&&S(g.detail,i),g;function E(t,n){var e=T(t);n=n||Pt(e),m[e]=n,(d[n]=d[n]||[]).push(e)}}}function Rt(t,n){return b(t)?M(t).then((function(t){return n.then((function(){return b(t)?x(t):t}))})):n.then((function(){return t}))}var It=!1;function xt(t){var n;It=!0,t&&t.urlRerouteOnly&&(n=t.urlRerouteOnly,X=n),Y&&Lt()}function Bt(){return It}Y&&setTimeout((function(){It||console.warn(s(1,!1))}),5e3);var Gt={getRawAppData:function(){return[].concat(wt)},reroute:Lt,NOT_LOADED:l,toLoadPromise:z,toBootstrapPromise:M,unregisterApplication:Tt};Y&&window.__SINGLE_SPA_DEVTOOLS__&&(window.__SINGLE_SPA_DEVTOOLS__.exposedMethods=Gt);export{m as BOOTSTRAPPING,p as LOADING_SOURCE_CODE,y as LOAD_ERROR,w as MOUNTED,d as MOUNTING,h as NOT_BOOTSTRAPPED,l as NOT_LOADED,v as NOT_MOUNTED,P as SKIP_BECAUSE_BROKEN,E as UNMOUNTING,g as UPDATING,a as addErrorHandler,bt as checkActivityFunctions,ft as ensureJQuerySupport,yt as getAppNames,Pt as getAppStatus,Et as getMountedApps,C as mountRootParcel,nt as navigateToUrl,_t as pathToActiveWhen,Ot as registerApplication,c as removeErrorHandler,F as setBootstrapMaxTime,J as setMountMaxTime,Q as setUnloadMaxTime,H as setUnmountMaxTime,xt as start,Mt as triggerAppChange,At as unloadApplication,Tt as unregisterApplication};\n//# sourceMappingURL=single-spa.min.js.map\n","/** @module @category Navigation */\n\nfunction trimTrailingSlash(str: string) {\n return str.replace(/\\/$/, '');\n}\n\n/**\n * Interpolates a string with openmrsBase and openmrsSpaBase.\n *\n * Useful for accepting `${openmrsBase}` or `${openmrsSpaBase}`plus additional template\n * parameters in configurable URLs.\n *\n * Example usage:\n * ```js\n * interpolateUrl(\"test ${openmrsBase} ${openmrsSpaBase} ok\");\n * // will return \"test /openmrs /openmrs/spa ok\"\n *\n * interpolateUrl(\"${openmrsSpaBase}/patient/${patientUuid}\", {\n * patientUuid: \"4fcb7185-c6c9-450f-8828-ccae9436bd82\",\n * }); // will return \"/openmrs/spa/patient/4fcb7185-c6c9-450f-8828-ccae9436bd82\"\n * ```\n *\n * This can be used in conjunction with the `navigate` function like so\n * ```js\n * navigate({\n * to: interpolateUrl(\n * \"${openmrsSpaBase}/patient/${patientUuid}\",\n * { patientUuid: patient.uuid }\n * )\n * }); // will navigate to \"/openmrs/spa/patient/4fcb7185-c6c9-450f-8828-ccae9436bd82\"\n * ```\n *\n * @param template A string to interpolate\n * @param additionalParams Additional values to interpolate into the string template\n */\nexport function interpolateUrl(template: string, additionalParams?: { [key: string]: string }): string {\n const openmrsSpaBase = trimTrailingSlash(window.getOpenmrsSpaBase());\n return interpolateString(template, {\n openmrsBase: window.openmrsBase,\n openmrsSpaBase: openmrsSpaBase,\n ...additionalParams,\n }).replace(/^\\/\\//, '/'); // remove extra initial slash if present\n}\n\n/**\n * Interpolates values of `params` into the `template` string.\n *\n * Example usage:\n * ```js\n * interpolateString(\"test ${one} ${two} 3\", {\n * one: \"1\",\n * two: \"2\",\n * }); // will return \"test 1 2 3\"\n * interpolateString(\"test ok\", { one: \"1\", two: \"2\" }) // will return \"test ok\"\n * ```\n *\n * @param template With optional params wrapped in `${ }`\n * @param params Values to interpolate into the string template\n */\nexport function interpolateString(template: string, params: { [key: string]: string }): string {\n const names = Object.keys(params);\n return names.reduce((prev, curr) => prev.split('${' + curr + '}').join(params[curr]), template);\n}\n","/** @module @category Navigation */\nimport { navigateToUrl } from 'single-spa';\nimport { interpolateUrl } from './interpolate-string';\nimport type {} from '@openmrs/esm-globals';\n\nfunction trimTrailingSlash(str: string) {\n return str.replace(/\\/$/, '');\n}\n\nexport type TemplateParams = { [key: string]: string };\n\nexport interface NavigateOptions {\n to: string;\n templateParams?: TemplateParams;\n}\n\n/**\n * Calls `location.assign` for non-SPA paths and [navigateToUrl](https://single-spa.js.org/docs/api/#navigatetourl) for SPA paths\n *\n * #### Example usage:\n * ```js\n * @example\n * const config = useConfig();\n * const submitHandler = () => {\n * navigate({ to: config.links.submitSuccess });\n * };\n * ```\n *\n * #### Example behavior::\n * ```js\n * @example\n * navigate({ to: \"/some/path\" }); // => window.location.assign(\"/some/path\")\n * navigate({ to: \"https://single-spa.js.org/\" }); // => window.location.assign(\"https://single-spa.js.org/\")\n * navigate({ to: \"${openmrsBase}/some/path\" }); // => window.location.assign(\"/openmrs/some/path\")\n * navigate({ to: \"/openmrs/spa/foo/page\" }); // => navigateToUrl(\"/openmrs/spa/foo/page\")\n * navigate({ to: \"${openmrsSpaBase}/bar/page\" }); // => navigateToUrl(\"/openmrs/spa/bar/page\")\n * navigate({ to: \"/${openmrsSpaBase}/baz/page\" }) // => navigateToUrl(\"/openmrs/spa/baz/page\")\n * navigate({ to: \"https://o3.openmrs.org/${openmrsSpaBase}/qux/page\" }); // => navigateToUrl(\"/openmrs/spa/qux/page\")\n * if `window.location.origin` == \"https://o3.openmrs.org\", else will use window.location.assign\n * ```\n *\n * @param to The target path or URL. Supports templating with 'openmrsBase', 'openmrsSpaBase',\n * and any additional template parameters defined in `templateParams`.\n * For example, `${openmrsSpaBase}/home` will resolve to `/openmrs/spa/home`\n * for implementations using the standard OpenMRS and SPA base paths.\n * If `templateParams` contains `{ foo: \"bar\" }`, then the URL `${openmrsBase}/${foo}`\n * will become `/openmrs/bar`.\n */\nexport function navigate({ to, templateParams }: NavigateOptions): void {\n const openmrsSpaBase = trimTrailingSlash(window.getOpenmrsSpaBase());\n const target = interpolateUrl(to, templateParams).replace(window.location.origin, '');\n const isSpaPath = target.startsWith(openmrsSpaBase);\n\n if (isSpaPath) {\n navigateToUrl(target);\n } else {\n window.location.assign(target);\n }\n}\n","/** @module @category Navigation */\nimport { navigate } from '../navigation/navigate';\n\nconst historyKey = 'openmrs:history';\n\nfunction addToHistory(newLocation: string) {\n let history = JSON.parse(sessionStorage.getItem(historyKey) ?? '[]') || [];\n history.push(newLocation);\n const maxSize = 50;\n if (history.length > maxSize) {\n history = history.slice(-maxSize);\n }\n sessionStorage.setItem(historyKey, JSON.stringify(history));\n}\n\n/**\n * Initialize history from sessionStorage. If history is empty, add\n * document.referrer if available.\n *\n * @internal\n */\nexport function setupHistory() {\n let history = JSON.parse(sessionStorage.getItem(historyKey) ?? '[]');\n if (history.length === 0 && document.referrer) {\n addToHistory(document.referrer);\n }\n\n window.addEventListener('single-spa:routing-event', (evt) => {\n const history = getHistory();\n if (history[history.length - 1] !== window.location.href) {\n addToHistory(window.location.href);\n }\n });\n}\n\n/**\n * Returns a list of URLs representing the history of the current window session.\n */\nexport function getHistory(): Array<string> {\n return JSON.parse(sessionStorage.getItem(historyKey) ?? '[]');\n}\n\n/**\n * Rolls back the history to the specified point and navigates to that URL.\n *\n * @param toUrl: The URL in the history to navigate to. History after that index\n * will be deleted. If the URL is not found in the history, an error will be\n * thrown.\n */\nexport function goBackInHistory({ toUrl }: { toUrl: string }) {\n const history = getHistory();\n const toIndex = history.lastIndexOf(toUrl);\n if (toIndex != -1) {\n const newHistory = history.slice(0, toIndex + 1);\n navigate({ to: history[toIndex] });\n sessionStorage.setItem(historyKey, JSON.stringify(newHistory));\n } else {\n throw new Error(`URL ${toUrl} not found in history; cannot go back to it.`);\n }\n}\n\n/**\n * Clears the history from sessionStorage. This should be done when the user\n * logs out.\n */\nexport function clearHistory() {\n sessionStorage.removeItem(historyKey);\n}\n"],"names":["module","exports","__WEBPACK_EXTERNAL_MODULE__685__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","g","globalThis","this","Function","e","window","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","escapeString","str","replace","flags","options","sensitive","stringToRegexp","path","keys","tokens","_a","strict","_b","start","_c","end","_d","encode","x","endsWith","delimiter","route","_i","tokens_1","length","token","prefix","suffix","pattern","push","modifier","mod","endToken","isEndDelimited","indexOf","RegExp","tokensToRegexp","i","char","type","index","count","j","TypeError","name","code","charCodeAt","lexer","prefixes","defaultPattern","result","tryConsume","mustConsume","nextType","consumeText","name_1","pattern_1","parse","pathToRegexp","groups","source","match","regexpToRegexp","Array","isArray","paths","parts","map","join","arrayToRegexp","store","createGlobalStore","getMatcher","settings","matcher","registerBreadcrumb","breadcrumb","registerBreadcrumbs","breadcrumbs","prevBreadcrumbs","getBreadcrumbs","newBreadcrumbs","nextBreadcrumbs","setState","getState","getNext","filter","m","test","getExact","segments","split","pop","next","getClosest","filterBreadcrumbs","list","current","links","previous","parent","reverse","getBreadcrumbsFor","t","freeze","__proto__","xt","ensureJQuerySupport","ft","setBootstrapMaxTime","F","setMountMaxTime","J","setUnmountMaxTime","H","setUnloadMaxTime","Q","registerApplication","Ot","unregisterApplication","Tt","getMountedApps","Et","getAppStatus","Pt","unloadApplication","At","checkActivityFunctions","bt","getAppNames","yt","pathToActiveWhen","_t","navigateToUrl","nt","triggerAppChange","Mt","addErrorHandler","a","removeErrorHandler","c","mountRootParcel","C","NOT_LOADED","l","LOADING_SOURCE_CODE","p","NOT_BOOTSTRAPPED","h","BOOTSTRAPPING","NOT_MOUNTED","v","MOUNTING","UPDATING","LOAD_ERROR","y","MOUNTED","w","UNMOUNTING","E","SKIP_BECAUSE_BROKEN","P","n","iterator","constructor","configurable","writable","self","CustomEvent","detail","foo","document","createEvent","initCustomEvent","bubbles","cancelable","createEventObject","Boolean","u","f","forEach","setTimeout","Error","s","arguments","concat","N","T","status","message","console","warn","JSON","stringify","appOrParcelName","O","b","activeWhen","location","A","unmountThisParcel","S","_","D","U","Promise","resolve","reduce","then","reject","catch","M","bootstrap","V","L","parcels","all","R","I","dispatchEvent","B","G","W","apply","domElement","id","customProps","parentName","mount","unmount","update","timeouts","q","$","getStatus","loadPromise","bootstrapPromise","mountPromise","unmountPromise","k","mountParcel","bind","singleSpa","unmountSelf","K","millis","dieOnTimeout","warningMillis","unload","error","z","loadApp","loadErrorTime","devtools","overlays","Date","getTime","X","Y","Z","hashchange","popstate","tt","href","currentTarget","preventDefault","ct","hash","host","pathname","search","history","pushState","et","rt","Lt","ot","Bt","PopStateEvent","state","initPopStateEvent","singleSpaTrigger","it","addEventListener","ut","at","removeEventListener","replaceState","singleSpaNavigate","createElement","st","jQuery","fn","jquery","on","off","lt","trim","pt","ht","mt","promise","vt","app","dt","wt","gt","appsToUnload","appsToUnmount","appsToLoad","appsToMount","every","St","some","selectors","splice","waitForUnmount","Nt","slice","charAt","origin","protocol","Dt","Ut","jt","eventArguments","cancelNavigation","Rt","newAppStatuses","appsByNewStatus","totalAppChanges","originalEvent","oldUrl","newUrl","navigationIsCanceled","It","urlRerouteOnly","Gt","getRawAppData","reroute","toLoadPromise","toBootstrapPromise","interpolateUrl","template","additionalParams","openmrsSpaBase","getOpenmrsSpaBase","interpolateString","openmrsBase","params","prev","curr","navigate","to","templateParams","target","startsWith","assign","__SINGLE_SPA_DEVTOOLS__","exposedMethods","historyKey","addToHistory","newLocation","sessionStorage","getItem","setItem","setupHistory","referrer","evt","getHistory","goBackInHistory","toUrl","toIndex","lastIndexOf","newHistory","clearHistory","removeItem"],"sourceRoot":""}
package/jest.config.js ADDED
@@ -0,0 +1,11 @@
1
+ module.exports = {
2
+ moduleNameMapper: {},
3
+ setupFiles: ['<rootDir>/src/setup-tests.js'],
4
+ testEnvironment: 'jsdom',
5
+ testEnvironmentOptions: {
6
+ url: 'http://localhost/',
7
+ },
8
+ transform: {
9
+ '^.+\\.tsx?$': ['@swc/jest'],
10
+ },
11
+ };
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "@openmrs/esm-navigation",
3
+ "version": "5.3.3-pre.1370",
4
+ "license": "MPL-2.0",
5
+ "description": "OpenMRS library providing tools for breadcrumbs, navigation, and history.",
6
+ "browser": "dist/openmrs-esm-navigation.js",
7
+ "main": "src/index.ts",
8
+ "source": true,
9
+ "scripts": {
10
+ "test": "cross-env TZ=UTC jest --config jest.config.js --verbose false --passWithNoTests --color",
11
+ "test:watch": "cross-env TZ=UTC jest --watch --config jest.config.js --color",
12
+ "build": "webpack --mode=production",
13
+ "build:development": "webpack --mode development",
14
+ "analyze": "webpack --mode=production --env analyze=true",
15
+ "typescript": "tsc",
16
+ "lint": "eslint src --ext ts,tsx"
17
+ },
18
+ "keywords": [
19
+ "openmrs",
20
+ "microfrontends"
21
+ ],
22
+ "directories": {
23
+ "lib": "dist",
24
+ "src": "src"
25
+ },
26
+ "browserslist": [
27
+ "extends browserslist-config-openmrs"
28
+ ],
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "git+https://github.com/openmrs/openmrs-esm-core.git"
32
+ },
33
+ "bugs": {
34
+ "url": "https://github.com/openmrs/openmrs-esm-core/issues"
35
+ },
36
+ "homepage": "https://github.com/openmrs/openmrs-esm-core#readme",
37
+ "publishConfig": {
38
+ "access": "public"
39
+ },
40
+ "dependencies": {
41
+ "path-to-regexp": "6.1.0"
42
+ },
43
+ "peerDependencies": {
44
+ "@openmrs/esm-state": "5.x"
45
+ },
46
+ "devDependencies": {
47
+ "@openmrs/esm-state": "5.3.3-pre.1370"
48
+ },
49
+ "stableVersion": "5.3.2"
50
+ }
@@ -0,0 +1,34 @@
1
+ /** @module @category Breadcrumb */
2
+ import { pathToRegexp } from 'path-to-regexp';
3
+ import { createGlobalStore } from '@openmrs/esm-state';
4
+ import type { BreadcrumbSettings, BreadcrumbRegistration } from '../types';
5
+
6
+ const store = createGlobalStore<Array<BreadcrumbRegistration>>('breadcrumbs', []);
7
+
8
+ function getMatcher(settings: BreadcrumbSettings) {
9
+ if (settings.matcher instanceof RegExp) {
10
+ return settings.matcher;
11
+ } else if (typeof settings.matcher === 'string') {
12
+ return pathToRegexp(settings.matcher);
13
+ } else {
14
+ return pathToRegexp(settings.path);
15
+ }
16
+ }
17
+
18
+ export function registerBreadcrumb(breadcrumb: BreadcrumbSettings) {
19
+ return registerBreadcrumbs([breadcrumb]);
20
+ }
21
+
22
+ export function registerBreadcrumbs(breadcrumbs: Array<BreadcrumbSettings>) {
23
+ const prevBreadcrumbs = getBreadcrumbs();
24
+ const newBreadcrumbs = breadcrumbs.map((settings) => ({
25
+ matcher: getMatcher(settings),
26
+ settings,
27
+ }));
28
+ const nextBreadcrumbs = [...prevBreadcrumbs, ...newBreadcrumbs];
29
+ store.setState(nextBreadcrumbs, true);
30
+ }
31
+
32
+ export function getBreadcrumbs() {
33
+ return store.getState();
34
+ }
@@ -0,0 +1,57 @@
1
+ /** @module @category Breadcrumb */
2
+ import { getBreadcrumbs } from './db';
3
+ import type { BreadcrumbRegistration } from '../types';
4
+
5
+ function getExact(breadcrumbs: Array<BreadcrumbRegistration>, path: string): BreadcrumbRegistration {
6
+ const [bc] = breadcrumbs.filter((m) => m.matcher.test(path));
7
+ return bc;
8
+ }
9
+
10
+ function getClosest(breadcrumbs: Array<BreadcrumbRegistration>, path: string): BreadcrumbRegistration | undefined {
11
+ const segments = path.split('/');
12
+
13
+ while (segments.length > 1) {
14
+ segments.pop();
15
+ const newPath = segments.join('/');
16
+ const next = getNext(breadcrumbs, newPath);
17
+
18
+ if (next) {
19
+ return next;
20
+ }
21
+ }
22
+
23
+ return undefined;
24
+ }
25
+
26
+ function getNext(breadcrumbs: Array<BreadcrumbRegistration>, path: string | undefined) {
27
+ if (path) {
28
+ return getExact(breadcrumbs, path) || getClosest(breadcrumbs, path);
29
+ }
30
+
31
+ return undefined;
32
+ }
33
+
34
+ export function filterBreadcrumbs(list: Array<BreadcrumbRegistration>, path: string) {
35
+ if (list.length > 0) {
36
+ const current = getNext(list, path);
37
+
38
+ if (current) {
39
+ const links = [current];
40
+ let previous = getNext(list, current.settings.parent);
41
+
42
+ while (previous !== undefined) {
43
+ links.push(previous);
44
+ previous = getNext(list, previous.settings.parent);
45
+ }
46
+
47
+ return links.reverse();
48
+ }
49
+ }
50
+
51
+ return [];
52
+ }
53
+
54
+ export function getBreadcrumbsFor(path: string) {
55
+ const breadcrumbs = getBreadcrumbs();
56
+ return filterBreadcrumbs(breadcrumbs, path);
57
+ }
@@ -0,0 +1,76 @@
1
+ import { navigate } from '../navigation/navigate';
2
+ import { clearHistory, getHistory, goBackInHistory, setupHistory } from './history';
3
+
4
+ jest.mock('../navigation/navigate');
5
+ const mockNavigate = navigate as jest.Mock;
6
+
7
+ describe('history', () => {
8
+ const originalWindowLocation = window.location;
9
+ const originalDocumentReferrer = Object.getOwnPropertyDescriptor(
10
+ Document.prototype,
11
+ 'referrer',
12
+ ) as PropertyDescriptor;
13
+ const mockReferrer = 'https://o3.openmrs.org/openmrs/spa/lalaland';
14
+ let mockLocationAssign;
15
+
16
+ beforeAll(() => {
17
+ delete (window as any).location;
18
+ delete (document as any).referrer;
19
+ (window as any).location = {
20
+ assign: jest.fn(),
21
+ href: 'https://o3.openmrs.org/openmrs/spa/chart',
22
+ origin: 'https://o3.openmrs.org',
23
+ };
24
+ window.getOpenmrsSpaBase = () => 'https://o3.openmrs.org/openmrs/spa';
25
+ Object.defineProperty(document, 'referrer', {
26
+ value: mockReferrer,
27
+ writable: true,
28
+ configurable: true,
29
+ });
30
+ mockLocationAssign = window.location.assign as jest.Mock;
31
+ });
32
+
33
+ beforeEach(() => {
34
+ mockLocationAssign.mockClear();
35
+ mockNavigate.mockClear();
36
+ });
37
+
38
+ afterEach(() => {
39
+ clearHistory();
40
+ });
41
+
42
+ afterAll(() => {
43
+ window.location = originalWindowLocation;
44
+ (document as any).referrer = originalDocumentReferrer;
45
+ Object.defineProperty(document, 'referrer', originalDocumentReferrer);
46
+ });
47
+
48
+ it('should be initialized with document.referrer if available', () => {
49
+ setupHistory();
50
+ expect(getHistory()).toEqual([mockReferrer]);
51
+ });
52
+
53
+ it('should update history on routing events and go back correctly', () => {
54
+ setupHistory();
55
+ window.location.href = 'https://o3.openmrs.org/openmrs/spa/labs';
56
+ window.dispatchEvent(new CustomEvent('single-spa:routing-event'));
57
+ expect(getHistory()).toEqual([mockReferrer, 'https://o3.openmrs.org/openmrs/spa/labs']);
58
+ window.location.href = 'https://o3.openmrs.org/pharmacy';
59
+ window.dispatchEvent(new CustomEvent('single-spa:routing-event'));
60
+ window.location.href = 'https://o3.openmrs.org/x-ray';
61
+ window.dispatchEvent(new CustomEvent('single-spa:routing-event'));
62
+ expect(getHistory()).toEqual([
63
+ mockReferrer,
64
+ 'https://o3.openmrs.org/openmrs/spa/labs',
65
+ 'https://o3.openmrs.org/pharmacy',
66
+ 'https://o3.openmrs.org/x-ray',
67
+ ]);
68
+
69
+ mockNavigate.mockImplementation((params: { to: string }) => {
70
+ window.location.href = params.to;
71
+ window.dispatchEvent(new CustomEvent('single-spa:routing-event'));
72
+ });
73
+ goBackInHistory({ toUrl: 'https://o3.openmrs.org/openmrs/spa/labs' });
74
+ expect(getHistory()).toEqual([mockReferrer, 'https://o3.openmrs.org/openmrs/spa/labs']);
75
+ });
76
+ });
@@ -0,0 +1,68 @@
1
+ /** @module @category Navigation */
2
+ import { navigate } from '../navigation/navigate';
3
+
4
+ const historyKey = 'openmrs:history';
5
+
6
+ function addToHistory(newLocation: string) {
7
+ let history = JSON.parse(sessionStorage.getItem(historyKey) ?? '[]') || [];
8
+ history.push(newLocation);
9
+ const maxSize = 50;
10
+ if (history.length > maxSize) {
11
+ history = history.slice(-maxSize);
12
+ }
13
+ sessionStorage.setItem(historyKey, JSON.stringify(history));
14
+ }
15
+
16
+ /**
17
+ * Initialize history from sessionStorage. If history is empty, add
18
+ * document.referrer if available.
19
+ *
20
+ * @internal
21
+ */
22
+ export function setupHistory() {
23
+ let history = JSON.parse(sessionStorage.getItem(historyKey) ?? '[]');
24
+ if (history.length === 0 && document.referrer) {
25
+ addToHistory(document.referrer);
26
+ }
27
+
28
+ window.addEventListener('single-spa:routing-event', (evt) => {
29
+ const history = getHistory();
30
+ if (history[history.length - 1] !== window.location.href) {
31
+ addToHistory(window.location.href);
32
+ }
33
+ });
34
+ }
35
+
36
+ /**
37
+ * Returns a list of URLs representing the history of the current window session.
38
+ */
39
+ export function getHistory(): Array<string> {
40
+ return JSON.parse(sessionStorage.getItem(historyKey) ?? '[]');
41
+ }
42
+
43
+ /**
44
+ * Rolls back the history to the specified point and navigates to that URL.
45
+ *
46
+ * @param toUrl: The URL in the history to navigate to. History after that index
47
+ * will be deleted. If the URL is not found in the history, an error will be
48
+ * thrown.
49
+ */
50
+ export function goBackInHistory({ toUrl }: { toUrl: string }) {
51
+ const history = getHistory();
52
+ const toIndex = history.lastIndexOf(toUrl);
53
+ if (toIndex != -1) {
54
+ const newHistory = history.slice(0, toIndex + 1);
55
+ navigate({ to: history[toIndex] });
56
+ sessionStorage.setItem(historyKey, JSON.stringify(newHistory));
57
+ } else {
58
+ throw new Error(`URL ${toUrl} not found in history; cannot go back to it.`);
59
+ }
60
+ }
61
+
62
+ /**
63
+ * Clears the history from sessionStorage. This should be done when the user
64
+ * logs out.
65
+ */
66
+ export function clearHistory() {
67
+ sessionStorage.removeItem(historyKey);
68
+ }
package/src/index.ts ADDED
@@ -0,0 +1,6 @@
1
+ export * from './breadcrumbs/db';
2
+ export * from './breadcrumbs/filter';
3
+ export * from './history/history';
4
+ export * from './navigation/navigate';
5
+ export * from './navigation/interpolate-string';
6
+ export * from './types';
@@ -0,0 +1,35 @@
1
+ import { interpolateString, interpolateUrl } from './interpolate-string';
2
+
3
+ describe('interpolateUrl', () => {
4
+ it('interpolates URL template elements', () => {
5
+ const result = interpolateUrl('test ${openmrsBase} ${openmrsSpaBase} ok');
6
+ expect(result).toBe('test /openmrs /openmrs/spa ok');
7
+ });
8
+
9
+ it('interpolates other URL template parameters', () => {
10
+ const result = interpolateUrl('${openmrsSpaBase}/patient/${patientUuid}', {
11
+ patientUuid: '4fcb7185-c6c9-450f-8828-ccae9436bd82',
12
+ });
13
+ expect(result).toBe('/openmrs/spa/patient/4fcb7185-c6c9-450f-8828-ccae9436bd82');
14
+ });
15
+
16
+ it('works when no interpolation needed', () => {
17
+ const result = interpolateUrl('test ok');
18
+ expect(result).toBe('test ok');
19
+ });
20
+ });
21
+
22
+ describe('interpolateString', () => {
23
+ it('interpolates template elements', () => {
24
+ const result = interpolateString('test ${one} ${two} 3', {
25
+ one: '1',
26
+ two: '2',
27
+ });
28
+ expect(result).toBe('test 1 2 3');
29
+ });
30
+
31
+ it('tolerates extra parameters', () => {
32
+ const result = interpolateString('test ok', { one: '1', two: '2' });
33
+ expect(result).toBe('test ok');
34
+ });
35
+ });
@@ -0,0 +1,63 @@
1
+ /** @module @category Navigation */
2
+
3
+ function trimTrailingSlash(str: string) {
4
+ return str.replace(/\/$/, '');
5
+ }
6
+
7
+ /**
8
+ * Interpolates a string with openmrsBase and openmrsSpaBase.
9
+ *
10
+ * Useful for accepting `${openmrsBase}` or `${openmrsSpaBase}`plus additional template
11
+ * parameters in configurable URLs.
12
+ *
13
+ * Example usage:
14
+ * ```js
15
+ * interpolateUrl("test ${openmrsBase} ${openmrsSpaBase} ok");
16
+ * // will return "test /openmrs /openmrs/spa ok"
17
+ *
18
+ * interpolateUrl("${openmrsSpaBase}/patient/${patientUuid}", {
19
+ * patientUuid: "4fcb7185-c6c9-450f-8828-ccae9436bd82",
20
+ * }); // will return "/openmrs/spa/patient/4fcb7185-c6c9-450f-8828-ccae9436bd82"
21
+ * ```
22
+ *
23
+ * This can be used in conjunction with the `navigate` function like so
24
+ * ```js
25
+ * navigate({
26
+ * to: interpolateUrl(
27
+ * "${openmrsSpaBase}/patient/${patientUuid}",
28
+ * { patientUuid: patient.uuid }
29
+ * )
30
+ * }); // will navigate to "/openmrs/spa/patient/4fcb7185-c6c9-450f-8828-ccae9436bd82"
31
+ * ```
32
+ *
33
+ * @param template A string to interpolate
34
+ * @param additionalParams Additional values to interpolate into the string template
35
+ */
36
+ export function interpolateUrl(template: string, additionalParams?: { [key: string]: string }): string {
37
+ const openmrsSpaBase = trimTrailingSlash(window.getOpenmrsSpaBase());
38
+ return interpolateString(template, {
39
+ openmrsBase: window.openmrsBase,
40
+ openmrsSpaBase: openmrsSpaBase,
41
+ ...additionalParams,
42
+ }).replace(/^\/\//, '/'); // remove extra initial slash if present
43
+ }
44
+
45
+ /**
46
+ * Interpolates values of `params` into the `template` string.
47
+ *
48
+ * Example usage:
49
+ * ```js
50
+ * interpolateString("test ${one} ${two} 3", {
51
+ * one: "1",
52
+ * two: "2",
53
+ * }); // will return "test 1 2 3"
54
+ * interpolateString("test ok", { one: "1", two: "2" }) // will return "test ok"
55
+ * ```
56
+ *
57
+ * @param template With optional params wrapped in `${ }`
58
+ * @param params Values to interpolate into the string template
59
+ */
60
+ export function interpolateString(template: string, params: { [key: string]: string }): string {
61
+ const names = Object.keys(params);
62
+ return names.reduce((prev, curr) => prev.split('${' + curr + '}').join(params[curr]), template);
63
+ }
@@ -0,0 +1,68 @@
1
+ import { navigateToUrl } from 'single-spa';
2
+ import { navigate } from './navigate';
3
+
4
+ jest.mock('single-spa');
5
+ const mockNavigateToUrl = navigateToUrl as jest.Mock;
6
+
7
+ describe('navigate', () => {
8
+ const originalWindowLocation = window.location;
9
+ let mockLocationAssign;
10
+
11
+ beforeAll(() => {
12
+ delete (window as any).location;
13
+ //@ts-ignore
14
+ window.location = { assign: jest.fn(), origin: 'https://o3.openmrs.org' };
15
+ mockLocationAssign = window.location.assign as jest.Mock;
16
+ });
17
+
18
+ beforeEach(() => {
19
+ mockLocationAssign.mockClear();
20
+ mockNavigateToUrl.mockClear();
21
+ });
22
+
23
+ afterAll(() => {
24
+ window.location = originalWindowLocation;
25
+ });
26
+
27
+ it('uses location.assign() to navigate to non-SPA path literal', () => {
28
+ navigate({ to: '/some/path' });
29
+ expect(window.location.assign).toHaveBeenCalledWith('/some/path');
30
+ expect(navigateToUrl).not.toHaveBeenCalled();
31
+ });
32
+
33
+ it('uses location.assign() to navigate to non-SPA absolute path literal', () => {
34
+ navigate({ to: 'https://single-spa.js.org/' });
35
+ expect(window.location.assign).toHaveBeenCalledWith('https://single-spa.js.org/');
36
+ expect(navigateToUrl).not.toHaveBeenCalled();
37
+ });
38
+
39
+ it('uses location.assign() to navigate to non-SPA interpolated path', () => {
40
+ navigate({ to: '${openmrsBase}/some/path' });
41
+ expect(window.location.assign).toHaveBeenCalledWith('/openmrs/some/path');
42
+ expect(navigateToUrl).not.toHaveBeenCalled();
43
+ });
44
+
45
+ it('uses single-spa navigateToUrl to navigate to SPA path literal', () => {
46
+ navigate({ to: '/openmrs/spa/foo/page' });
47
+ expect(navigateToUrl).toHaveBeenCalledWith('/openmrs/spa/foo/page');
48
+ expect(window.location.assign).not.toHaveBeenCalled();
49
+ });
50
+
51
+ it('uses single-spa navigateToUrl to navigate to interpolated SPA path', () => {
52
+ navigate({ to: '${openmrsSpaBase}/bar/page' });
53
+ expect(navigateToUrl).toHaveBeenCalledWith('/openmrs/spa/bar/page');
54
+ expect(window.location.assign).not.toHaveBeenCalled();
55
+ });
56
+
57
+ it('tolerates an extra inital slash', () => {
58
+ navigate({ to: '/${openmrsSpaBase}/baz/page' });
59
+ expect(navigateToUrl).toHaveBeenCalledWith('/openmrs/spa/baz/page');
60
+ expect(window.location.assign).not.toHaveBeenCalled();
61
+ });
62
+
63
+ it('uses single-spa navigateToUrl if the URL has the current origin', () => {
64
+ navigate({ to: `${window.location.origin}/openmrs/spa/qux/page` });
65
+ expect(navigateToUrl).toHaveBeenCalledWith('/openmrs/spa/qux/page');
66
+ expect(window.location.assign).not.toHaveBeenCalled();
67
+ });
68
+ });
@@ -0,0 +1,59 @@
1
+ /** @module @category Navigation */
2
+ import { navigateToUrl } from 'single-spa';
3
+ import { interpolateUrl } from './interpolate-string';
4
+ import type {} from '@openmrs/esm-globals';
5
+
6
+ function trimTrailingSlash(str: string) {
7
+ return str.replace(/\/$/, '');
8
+ }
9
+
10
+ export type TemplateParams = { [key: string]: string };
11
+
12
+ export interface NavigateOptions {
13
+ to: string;
14
+ templateParams?: TemplateParams;
15
+ }
16
+
17
+ /**
18
+ * Calls `location.assign` for non-SPA paths and [navigateToUrl](https://single-spa.js.org/docs/api/#navigatetourl) for SPA paths
19
+ *
20
+ * #### Example usage:
21
+ * ```js
22
+ * @example
23
+ * const config = useConfig();
24
+ * const submitHandler = () => {
25
+ * navigate({ to: config.links.submitSuccess });
26
+ * };
27
+ * ```
28
+ *
29
+ * #### Example behavior::
30
+ * ```js
31
+ * @example
32
+ * navigate({ to: "/some/path" }); // => window.location.assign("/some/path")
33
+ * navigate({ to: "https://single-spa.js.org/" }); // => window.location.assign("https://single-spa.js.org/")
34
+ * navigate({ to: "${openmrsBase}/some/path" }); // => window.location.assign("/openmrs/some/path")
35
+ * navigate({ to: "/openmrs/spa/foo/page" }); // => navigateToUrl("/openmrs/spa/foo/page")
36
+ * navigate({ to: "${openmrsSpaBase}/bar/page" }); // => navigateToUrl("/openmrs/spa/bar/page")
37
+ * navigate({ to: "/${openmrsSpaBase}/baz/page" }) // => navigateToUrl("/openmrs/spa/baz/page")
38
+ * navigate({ to: "https://o3.openmrs.org/${openmrsSpaBase}/qux/page" }); // => navigateToUrl("/openmrs/spa/qux/page")
39
+ * if `window.location.origin` == "https://o3.openmrs.org", else will use window.location.assign
40
+ * ```
41
+ *
42
+ * @param to The target path or URL. Supports templating with 'openmrsBase', 'openmrsSpaBase',
43
+ * and any additional template parameters defined in `templateParams`.
44
+ * For example, `${openmrsSpaBase}/home` will resolve to `/openmrs/spa/home`
45
+ * for implementations using the standard OpenMRS and SPA base paths.
46
+ * If `templateParams` contains `{ foo: "bar" }`, then the URL `${openmrsBase}/${foo}`
47
+ * will become `/openmrs/bar`.
48
+ */
49
+ export function navigate({ to, templateParams }: NavigateOptions): void {
50
+ const openmrsSpaBase = trimTrailingSlash(window.getOpenmrsSpaBase());
51
+ const target = interpolateUrl(to, templateParams).replace(window.location.origin, '');
52
+ const isSpaPath = target.startsWith(openmrsSpaBase);
53
+
54
+ if (isSpaPath) {
55
+ navigateToUrl(target);
56
+ } else {
57
+ window.location.assign(target);
58
+ }
59
+ }
package/src/public.ts ADDED
@@ -0,0 +1,6 @@
1
+ export * from './breadcrumbs/db';
2
+ export * from './breadcrumbs/filter';
3
+ export { getHistory, goBackInHistory } from './history/history';
4
+ export * from './navigation/interpolate-string';
5
+ export * from './navigation/navigate';
6
+ export * from './types';
@@ -0,0 +1,3 @@
1
+ window.openmrsBase = '/openmrs';
2
+ window.spaBase = '/spa';
3
+ window.getOpenmrsSpaBase = () => '/openmrs/spa/';
package/src/types.ts ADDED
@@ -0,0 +1,35 @@
1
+ /** @module @category Breadcrumb */
2
+
3
+ export interface BreadcrumbSettings {
4
+ /**
5
+ * Gets the path of breadcrumb for navigation purposes.
6
+ */
7
+ path: string;
8
+ /**
9
+ * A string or RegEx that determines whether the breadcrumb should be displayed.
10
+ * It is tested against the current location's path.
11
+ *
12
+ * If `matcher` is a string, it can contain route parameters. e.g. `/foo/:bar`.
13
+ *
14
+ * Can be omitted; the value of `path` is used as the default value.
15
+ */
16
+ matcher?: string | RegExp;
17
+ /**
18
+ * The breadcrumb's parent breadcrumb. Supply the path of the breadcrumb here, e.g.,
19
+ * if we are currently in "/foo/bar", you could provide "/foo" to get the breadcrumb
20
+ * associated with the path "/foo".
21
+ *
22
+ * If a path is missing for some reason, the closest matching one will be taken as
23
+ * parent.
24
+ */
25
+ parent?: string;
26
+ /**
27
+ * The title of the breadcrumb.
28
+ */
29
+ title: string | ((params: any) => string) | ((params: any) => Promise<string>);
30
+ }
31
+
32
+ export interface BreadcrumbRegistration {
33
+ matcher: RegExp;
34
+ settings: BreadcrumbSettings;
35
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "compilerOptions": {
3
+ "esModuleInterop": true,
4
+ "module": "esnext",
5
+ "target": "es2015",
6
+ "allowSyntheticDefaultImports": true,
7
+ "jsx": "react",
8
+ "strictNullChecks": true,
9
+ "moduleResolution": "node",
10
+ "declaration": true,
11
+ "declarationDir": "dist",
12
+ "emitDeclarationOnly": true,
13
+ "lib": [
14
+ "dom",
15
+ "es5",
16
+ "scripthost",
17
+ "es2015",
18
+ "es2015.promise",
19
+ "es2016.array.include",
20
+ "es2018",
21
+ "esnext"
22
+ ]
23
+ },
24
+ "include": ["src/**/*"]
25
+ }
@@ -0,0 +1,42 @@
1
+ const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
2
+ const { resolve } = require('path');
3
+ const { CleanWebpackPlugin } = require('clean-webpack-plugin');
4
+ const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
5
+
6
+ const { peerDependencies } = require('./package.json');
7
+
8
+ module.exports = (env) => ({
9
+ entry: [resolve(__dirname, 'src/index.ts')],
10
+ output: {
11
+ filename: 'openmrs-esm-navigation.js',
12
+ path: resolve(__dirname, 'dist'),
13
+ library: { type: 'system' },
14
+ },
15
+ devtool: 'source-map',
16
+ module: {
17
+ rules: [
18
+ {
19
+ test: /\.m?(js|ts|tsx)$/,
20
+ exclude: /node_modules/,
21
+ use: 'swc-loader',
22
+ },
23
+ ],
24
+ },
25
+ resolve: {
26
+ extensions: ['.ts', '.js', '.tsx', '.jsx'],
27
+ },
28
+ plugins: [
29
+ new CleanWebpackPlugin(),
30
+ new ForkTsCheckerWebpackPlugin(),
31
+ new BundleAnalyzerPlugin({
32
+ analyzerMode: env && env.analyze ? 'static' : 'disabled',
33
+ }),
34
+ ],
35
+ externals: Object.keys(peerDependencies || {}),
36
+ devServer: {
37
+ disableHostCheck: true,
38
+ headers: {
39
+ 'Access-Control-Allow-Origin': '*',
40
+ },
41
+ },
42
+ });