@openmrs/esm-app-shell 5.3.3-pre.1352 → 5.3.3-pre.1353
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.
- package/.turbo/turbo-build.log +11 -11
- package/dist/index.html +1 -1
- package/dist/{openmrs.ce725f334841f1f1.js → openmrs.29dcd16d1e2888ae.js} +2 -2
- package/dist/openmrs.29dcd16d1e2888ae.js.map +1 -0
- package/dist/service-worker.js +1 -1
- package/lib/esm-devtools-app/889.js +1 -1
- package/lib/esm-devtools-app/889.js.map +1 -1
- package/lib/esm-devtools-app/main.js +1 -1
- package/lib/esm-devtools-app/openmrs-esm-devtools-app.js +1 -1
- package/lib/esm-devtools-app/openmrs-esm-devtools-app.js.buildmanifest.json +5 -5
- package/lib/esm-devtools-app/routes.json +1 -1
- package/lib/esm-implementer-tools-app/889.js +1 -1
- package/lib/esm-implementer-tools-app/889.js.map +1 -1
- package/lib/esm-implementer-tools-app/main.js +1 -1
- package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.js +1 -1
- package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.js.buildmanifest.json +5 -5
- package/lib/esm-implementer-tools-app/routes.json +1 -1
- package/lib/esm-login-app/889.js +1 -1
- package/lib/esm-login-app/889.js.map +1 -1
- package/lib/esm-login-app/main.js +1 -1
- package/lib/esm-login-app/openmrs-esm-login-app.js +1 -1
- package/lib/esm-login-app/openmrs-esm-login-app.js.buildmanifest.json +5 -5
- package/lib/esm-login-app/routes.json +1 -1
- package/lib/esm-offline-tools-app/889.js +1 -1
- package/lib/esm-offline-tools-app/889.js.map +1 -1
- package/lib/esm-offline-tools-app/main.js +1 -1
- package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.js +1 -1
- package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.js.buildmanifest.json +5 -5
- package/lib/esm-offline-tools-app/routes.json +1 -1
- package/lib/esm-primary-navigation-app/889.js +1 -1
- package/lib/esm-primary-navigation-app/889.js.map +1 -1
- package/lib/esm-primary-navigation-app/main.js +1 -1
- package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.js +1 -1
- package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.js.buildmanifest.json +5 -5
- package/lib/esm-primary-navigation-app/routes.json +1 -1
- package/lib/index.html +1 -1
- package/lib/openmrs.js +5 -5
- package/lib/service-worker.js +1 -1
- package/package.json +3 -3
- package/dist/openmrs.ce725f334841f1f1.js.map +0 -1
- /package/dist/{openmrs.ce725f334841f1f1.js.LICENSE.txt → openmrs.29dcd16d1e2888ae.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
var _openmrs_esm_primary_navigation_app;(()=>{"use strict";var e,r,t,n,o,a,i,l,s,u,p,f,d,c,h,m,v,g,y={7130:(e,r,t)=>{var n={"./start":()=>Promise.all([t.e(34),t.e(776),t.e(958)]).then((()=>()=>t(958)))},o=(e,r)=>(t.R=r,r=t.o(n,e)?n[e]():Promise.resolve().then((()=>{throw new Error('Module "'+e+'" does not exist in container.')})),t.R=void 0,r),a=(e,r)=>{if(t.S){var n="default",o=t.S[n];if(o&&o!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return t.S[n]=e,t.I(n,r)}};t.d(r,{get:()=>o,init:()=>a})}},b={};function w(e){var r=b[e];if(void 0!==r)return r.exports;var t=b[e]={id:e,loaded:!1,exports:{}};return y[e](t,t.exports,w),t.loaded=!0,t.exports}w.m=y,w.c=b,w.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return w.d(r,{a:r}),r},w.d=(e,r)=>{for(var t in r)w.o(r,t)&&!w.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},w.f={},w.e=e=>Promise.all(Object.keys(w.f).reduce(((r,t)=>(w.f[t](e,r),r)),[])),w.u=e=>e+".js",w.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),w.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="@openmrs/esm-primary-navigation-app:",w.l=(t,n,o,a)=>{if(e[t])e[t].push(n);else{var i,l;if(void 0!==o)for(var s=document.getElementsByTagName("script"),u=0;u<s.length;u++){var p=s[u];if(p.getAttribute("src")==t||p.getAttribute("data-webpack")==r+o){i=p;break}}i||(l=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,w.nc&&i.setAttribute("nonce",w.nc),i.setAttribute("data-webpack",r+o),i.src=t),e[t]=[n];var f=(r,n)=>{i.onerror=i.onload=null,clearTimeout(d);var o=e[t];if(delete e[t],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach((e=>e(n))),r)return r(n)},d=setTimeout(f.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=f.bind(null,i.onerror),i.onload=f.bind(null,i.onload),l&&document.head.appendChild(i)}},w.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},w.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{w.S={};var e={},r={};w.I=(t,n)=>{n||(n=[]);var o=r[t];if(o||(o=r[t]={}),!(n.indexOf(o)>=0)){if(n.push(o),e[t])return e[t];w.o(w.S,t)||(w.S[t]={});var a=w.S[t],i="@openmrs/esm-primary-navigation-app",l=(e,r,t,n)=>{var o=a[e]=a[e]||{},l=o[r];(!l||!l.loaded&&(!n!=!l.eager?n:i>l.from))&&(o[r]={get:t,from:i,eager:!!n})},s=[];return"default"===t&&(l("@openmrs/esm-framework/src/internal","5.3.3-pre.
|
|
1
|
+
var _openmrs_esm_primary_navigation_app;(()=>{"use strict";var e,r,t,n,o,a,i,l,s,u,p,f,d,c,h,m,v,g,y={7130:(e,r,t)=>{var n={"./start":()=>Promise.all([t.e(34),t.e(776),t.e(958)]).then((()=>()=>t(958)))},o=(e,r)=>(t.R=r,r=t.o(n,e)?n[e]():Promise.resolve().then((()=>{throw new Error('Module "'+e+'" does not exist in container.')})),t.R=void 0,r),a=(e,r)=>{if(t.S){var n="default",o=t.S[n];if(o&&o!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return t.S[n]=e,t.I(n,r)}};t.d(r,{get:()=>o,init:()=>a})}},b={};function w(e){var r=b[e];if(void 0!==r)return r.exports;var t=b[e]={id:e,loaded:!1,exports:{}};return y[e](t,t.exports,w),t.loaded=!0,t.exports}w.m=y,w.c=b,w.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return w.d(r,{a:r}),r},w.d=(e,r)=>{for(var t in r)w.o(r,t)&&!w.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},w.f={},w.e=e=>Promise.all(Object.keys(w.f).reduce(((r,t)=>(w.f[t](e,r),r)),[])),w.u=e=>e+".js",w.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),w.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="@openmrs/esm-primary-navigation-app:",w.l=(t,n,o,a)=>{if(e[t])e[t].push(n);else{var i,l;if(void 0!==o)for(var s=document.getElementsByTagName("script"),u=0;u<s.length;u++){var p=s[u];if(p.getAttribute("src")==t||p.getAttribute("data-webpack")==r+o){i=p;break}}i||(l=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,w.nc&&i.setAttribute("nonce",w.nc),i.setAttribute("data-webpack",r+o),i.src=t),e[t]=[n];var f=(r,n)=>{i.onerror=i.onload=null,clearTimeout(d);var o=e[t];if(delete e[t],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach((e=>e(n))),r)return r(n)},d=setTimeout(f.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=f.bind(null,i.onerror),i.onload=f.bind(null,i.onload),l&&document.head.appendChild(i)}},w.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},w.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{w.S={};var e={},r={};w.I=(t,n)=>{n||(n=[]);var o=r[t];if(o||(o=r[t]={}),!(n.indexOf(o)>=0)){if(n.push(o),e[t])return e[t];w.o(w.S,t)||(w.S[t]={});var a=w.S[t],i="@openmrs/esm-primary-navigation-app",l=(e,r,t,n)=>{var o=a[e]=a[e]||{},l=o[r];(!l||!l.loaded&&(!n!=!l.eager?n:i>l.from))&&(o[r]={get:t,from:i,eager:!!n})},s=[];return"default"===t&&(l("@openmrs/esm-framework/src/internal","5.3.3-pre.1353",(()=>Promise.all([w.e(776),w.e(889)]).then((()=>()=>w(4889))))),l("react-dom","18.2.0",(()=>Promise.all([w.e(788),w.e(776)]).then((()=>()=>w(2788))))),l("react-i18next","11.18.6",(()=>Promise.all([w.e(729),w.e(776)]).then((()=>()=>w(9729))))),l("react-router-dom","6.4.2",(()=>Promise.all([w.e(63),w.e(776)]).then((()=>()=>w(7063))))),l("react","18.2.0",(()=>w.e(735).then((()=>()=>w(2735)))))),e[t]=s.length?Promise.all(s).then((()=>e[t]=1)):1}}})(),(()=>{var e;w.g.importScripts&&(e=w.g.location+"");var r=w.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&!e;)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),w.p=e})(),t=e=>{var r=e=>e.split(".").map((e=>+e==e?+e:e)),t=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),n=t[1]?r(t[1]):[];return t[2]&&(n.length++,n.push.apply(n,r(t[2]))),t[3]&&(n.push([]),n.push.apply(n,r(t[3]))),n},n=(e,r)=>{e=t(e),r=t(r);for(var n=0;;){if(n>=e.length)return n<r.length&&"u"!=(typeof r[n])[0];var o=e[n],a=(typeof o)[0];if(n>=r.length)return"u"==a;var i=r[n],l=(typeof i)[0];if(a!=l)return"o"==a&&"n"==l||"s"==l||"u"==a;if("o"!=a&&"u"!=a&&o!=i)return o<i;n++}},o=e=>{var r=e[0],t="";if(1===e.length)return"*";if(r+.5){t+=0==r?">=":-1==r?"<":1==r?"^":2==r?"~":r>0?"=":"!=";for(var n=1,a=1;a<e.length;a++)n--,t+="u"==(typeof(l=e[a]))[0]?"-":(n>0?".":"")+(n=2,l);return t}var i=[];for(a=1;a<e.length;a++){var l=e[a];i.push(0===l?"not("+s()+")":1===l?"("+s()+" || "+s()+")":2===l?i.pop()+" "+i.pop():o(l))}return s();function s(){return i.pop().replace(/^\((.+)\)$/,"$1")}},a=(e,r)=>{if(0 in e){r=t(r);var n=e[0],o=n<0;o&&(n=-n-1);for(var i=0,l=1,s=!0;;l++,i++){var u,p,f=l<e.length?(typeof e[l])[0]:"";if(i>=r.length||"o"==(p=(typeof(u=r[i]))[0]))return!s||("u"==f?l>n&&!o:""==f!=o);if("u"==p){if(!s||"u"!=f)return!1}else if(s)if(f==p)if(l<=n){if(u!=e[l])return!1}else{if(o?u>e[l]:u<e[l])return!1;u!=e[l]&&(s=!1)}else if("s"!=f&&"n"!=f){if(o||l<=n)return!1;s=!1,l--}else{if(l<=n||p<f!=o)return!1;s=!1}else"s"!=f&&"n"!=f&&(s=!1,l--)}}var d=[],c=d.pop.bind(d);for(i=1;i<e.length;i++){var h=e[i];d.push(1==h?c()|c():2==h?c()&c():h?a(h,r):!c())}return!!c()},i=(e,r)=>{var t=e[r];return Object.keys(t).reduce(((e,r)=>!e||!t[e].loaded&&n(e,r)?r:e),0)},l=(e,r,t,n)=>"Unsatisfied version "+t+" from "+(t&&e[r][t].from)+" of shared singleton module "+r+" (required "+o(n)+")",s=(e,r,t,n)=>{var o=i(e,t);return f(e[t][o])},u=(e,r,t,n)=>{var o=i(e,t);return a(n,o)||p(l(e,t,o,n)),f(e[t][o])},p=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},f=e=>(e.loaded=1,e.get()),c=(d=e=>function(r,t,n,o){var a=w.I(r);return a&&a.then?a.then(e.bind(e,r,w.S[r],t,n,o)):e(r,w.S[r],t,n,o)})(((e,r,t,n)=>r&&w.o(r,t)?s(r,0,t):n())),h=d(((e,r,t,n,o)=>r&&w.o(r,t)?u(r,0,t,n):o())),m={},v={5776:()=>h("default","react",[1,18],(()=>w.e(735).then((()=>()=>w(2735))))),1763:()=>h("default","react-router-dom",[1,6],(()=>w.e(63).then((()=>()=>w(7063))))),2680:()=>h("default","react-i18next",[1,11],(()=>w.e(729).then((()=>()=>w(9729))))),4610:()=>h("default","@openmrs/esm-framework",[0],(()=>w.e(889).then((()=>()=>w(4889))))),8478:()=>c("default","@openmrs/esm-framework/src/internal",(()=>w.e(889).then((()=>()=>w(4889)))))},g={776:[5776],958:[1763,2680,4610,8478]},w.f.consumes=(e,r)=>{w.o(g,e)&&g[e].forEach((e=>{if(w.o(m,e))return r.push(m[e]);var t=r=>{m[e]=0,w.m[e]=t=>{delete w.c[e],t.exports=r()}},n=r=>{delete m[e],w.m[e]=t=>{throw delete w.c[e],r}};try{var o=v[e]();o.then?r.push(m[e]=o.then(t).catch(n)):t(o)}catch(e){n(e)}}))},(()=>{var e={115:0};w.f.j=(r,t)=>{var n=w.o(e,r)?e[r]:void 0;if(0!==n)if(n)t.push(n[2]);else if(776!=r){var o=new Promise(((t,o)=>n=e[r]=[t,o]));t.push(n[2]=o);var a=w.p+w.u(r),i=new Error;w.l(a,(t=>{if(w.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n)){var o=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+o+": "+a+")",i.name="ChunkLoadError",i.type=o,i.request=a,n[1](i)}}),"chunk-"+r,r)}else e[r]=0};var r=(r,t)=>{var n,o,[a,i,l]=t,s=0;if(a.some((r=>0!==e[r]))){for(n in i)w.o(i,n)&&(w.m[n]=i[n]);l&&l(w)}for(r&&r(t);s<a.length;s++)o=a[s],w.o(e,o)&&e[o]&&e[o][0](),e[o]=0},t=globalThis.webpackChunk_openmrs_esm_primary_navigation_app=globalThis.webpackChunk_openmrs_esm_primary_navigation_app||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),w.nc=void 0;var _=w(7130);_openmrs_esm_primary_navigation_app=_})();
|
package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.js.buildmanifest.json
CHANGED
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"auxiliaryFiles": [
|
|
78
78
|
"openmrs-esm-primary-navigation-app.js.map"
|
|
79
79
|
],
|
|
80
|
-
"hash": "
|
|
80
|
+
"hash": "b184b8d137729e39",
|
|
81
81
|
"childrenByOrder": {}
|
|
82
82
|
},
|
|
83
83
|
{
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
"auxiliaryFiles": [
|
|
106
106
|
"main.js.map"
|
|
107
107
|
],
|
|
108
|
-
"hash": "
|
|
108
|
+
"hash": "90e429979702d6fb",
|
|
109
109
|
"childrenByOrder": {}
|
|
110
110
|
},
|
|
111
111
|
{
|
|
@@ -391,9 +391,9 @@
|
|
|
391
391
|
"entry": false,
|
|
392
392
|
"recorded": false,
|
|
393
393
|
"reason": "reused as split chunk (cache group: default)",
|
|
394
|
-
"size":
|
|
394
|
+
"size": 1102535,
|
|
395
395
|
"sizes": {
|
|
396
|
-
"javascript":
|
|
396
|
+
"javascript": 1102535
|
|
397
397
|
},
|
|
398
398
|
"names": [],
|
|
399
399
|
"idHints": [],
|
|
@@ -407,7 +407,7 @@
|
|
|
407
407
|
"auxiliaryFiles": [
|
|
408
408
|
"889.js.map"
|
|
409
409
|
],
|
|
410
|
-
"hash": "
|
|
410
|
+
"hash": "119ad87a84cb319b",
|
|
411
411
|
"childrenByOrder": {}
|
|
412
412
|
},
|
|
413
413
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"webservices.rest":">=2.2.0"},"pages":[{"component":"root","routeRegex":"^(?!login/?)","online":true,"offline":true,"order":0},{"component":"redirect","routeRegex":"^$","online":true,"offline":true,"order":0}],"extensions":[{"name":"default-user-panel","slot":"user-panel-slot","component":"userPanel","online":true,"offline":true,"order":0},{"name":"change-language","slot":"user-panel-slot","component":"changeLanguageLink","online":true,"offline":true,"order":1},{"name":"change-language-modal","component":"changeLanguageModal","online":true,"offline":true},{"name":"offline-banner","slot":"user-panel-slot","component":"offlineBanner","online":false,"offline":true,"order":1},{"name":"link","component":"linkComponent","online":true,"offline":true}],"version":"5.3.3-pre.
|
|
1
|
+
{"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"webservices.rest":">=2.2.0"},"pages":[{"component":"root","routeRegex":"^(?!login/?)","online":true,"offline":true,"order":0},{"component":"redirect","routeRegex":"^$","online":true,"offline":true,"order":0}],"extensions":[{"name":"default-user-panel","slot":"user-panel-slot","component":"userPanel","online":true,"offline":true,"order":0},{"name":"change-language","slot":"user-panel-slot","component":"changeLanguageLink","online":true,"offline":true,"order":1},{"name":"change-language-modal","component":"changeLanguageModal","online":true,"offline":true},{"name":"offline-banner","slot":"user-panel-slot","component":"offlineBanner","online":false,"offline":true,"order":1},{"name":"link","component":"linkComponent","online":true,"offline":true}],"version":"5.3.3-pre.1353"}
|
package/lib/index.html
CHANGED
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
<script type="openmrs-routes" src="/openmrs/spa/routes.registry.json"></script>
|
|
35
35
|
|
|
36
36
|
|
|
37
|
-
<script type="openmrs-routes">{"@openmrs/esm-devtools-app":{"$schema":"https://json.openmrs.org/routes.schema.json","pages":[{"component":"devtools","route":true,"online":true,"offline":true}],"extensions":[{"name":"importmap-override-modal","component":"importmapOverrideModal"}],"version":"5.3.3-pre.
|
|
37
|
+
<script type="openmrs-routes">{"@openmrs/esm-devtools-app":{"$schema":"https://json.openmrs.org/routes.schema.json","pages":[{"component":"devtools","route":true,"online":true,"offline":true}],"extensions":[{"name":"importmap-override-modal","component":"importmapOverrideModal"}],"version":"5.3.3-pre.1353"},"@openmrs/esm-implementer-tools-app":{"$schema":"https://json.openmrs.org/routes.schema.json","pages":[{"component":"implementerTools","route":true},{"component":"globalImplementerTools","route":true}],"extensions":[{"name":"implementer-tools-button","slot":"top-nav-actions-slot","component":"implementerToolsButton"}],"version":"5.3.3-pre.1353"},"@openmrs/esm-login-app":{"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"webservices.rest":">=2.24.0"},"pages":[{"component":"root","route":"login","online":true,"offline":true},{"component":"root","route":"logout","online":true,"offline":true}],"extensions":[{"name":"location-picker","slot":"location-picker","component":"locationPicker","online":true,"offline":true},{"name":"logout-button","slot":"user-panel-bottom-slot","component":"logoutButton","online":true,"offline":true},{"name":"location-changer","slot":"user-panel-slot","component":"changeLocationLink","online":true,"offline":true,"order":1}],"version":"5.3.3-pre.1353"},"@openmrs/esm-offline-tools-app":{"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"webservices.rest":"^2.24.0"},"pages":[{"component":"offlineTools","route":"offline-tools","online":true,"offline":true}],"extensions":[{"name":"offline-tools-link","slot":"app-menu-slot","component":"offlineToolsLink","online":true,"offline":true},{"name":"offline-tools-nav-items","component":"offlineToolsNavItems","online":true,"offline":true},{"name":"offline-tools-confirmation-modal","component":"offlineToolsConfirmationModal","online":true,"offline":true},{"name":"offline-tools-dashboard-patients-card","slot":"offline-tools-dashboard-cards","component":"offlineToolsPatientsCard","online":true,"offline":true,"order":0},{"name":"offline-tools-dashboard-actions-card","slot":"offline-tools-dashboard-cards","component":"offlineToolsActionsCard","online":true,"offline":true,"order":2},{"name":"offline-tools-page-offline-patients-link","slot":"offline-tools-page-slot","component":"offlineToolsPatientsLink","meta":{"name":"patients","slot":"offline-tools-page-offline-patients-slot"},"online":true,"offline":true},{"name":"offline-tools-page-offline-actions-link","slot":"offline-tools-page-slot","component":"offlineToolsActionsLink","meta":{"name":"actions","slot":"offline-tools-page-offline-actions-slot"},"online":true,"offline":true},{"name":"offline-tools-page-offline-actions","slot":"offline-tools-page-offline-actions-slot","component":"offlineToolsPageActions","online":true,"offline":true},{"name":"offline-tools-page-offline-patients","slot":"offline-tools-page-offline-patients-slot","component":"offlineToolsPatients","online":true,"offline":true},{"name":"offline-tools-page-actions-link","slot":"offline-tools-page-actions-slot","component":"offlineToolsPatientsLink","meta":{"name":"actions","slot":"offline-tools-page-actions-slot"},"online":true,"offline":true},{"name":"offline-tools-page-actions","slot":"offline-tools-page-actions-slot","component":"offlineToolsPageActions","online":true,"offline":true},{"name":"offline-tools-patient-chart-actions-widget","slot":"patient-chart-summary-dashboard-slot","component":"offlineToolsPatientChartActions","meta":{"columnSpan":4},"online":false,"offline":true,"order":0},{"name":"offline-tools-patient-chart-actions-dashboard","slot":"patient-chart-offline-actions-dashboard-slot","component":"offlineToolsPatientChartActions","online":true,"offline":true,"order":0},{"name":"offline-tools-patient-chart-actions-dashboard-link","slot":"patient-chart-dashboard-slot","component":"offlineToolsPatientChartActionsDashboardLink","meta":{"columns":1,"title":"Offline Actions"},"order":12,"online":true,"offline":true},{"name":"offline-tools-opt-in-offline-mode-button","slot":"user-panel-slot","component":"offlineToolsOptInButton","online":true,"offline":true,"order":1}],"version":"5.3.3-pre.1353"},"@openmrs/esm-primary-navigation-app":{"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"webservices.rest":">=2.2.0"},"pages":[{"component":"root","routeRegex":"^(?!login/?)","online":true,"offline":true,"order":0},{"component":"redirect","routeRegex":"^$","online":true,"offline":true,"order":0}],"extensions":[{"name":"default-user-panel","slot":"user-panel-slot","component":"userPanel","online":true,"offline":true,"order":0},{"name":"change-language","slot":"user-panel-slot","component":"changeLanguageLink","online":true,"offline":true,"order":1},{"name":"change-language-modal","component":"changeLanguageModal","online":true,"offline":true},{"name":"offline-banner","slot":"user-panel-slot","component":"offlineBanner","online":false,"offline":true,"order":1},{"name":"link","component":"linkComponent","online":true,"offline":true}],"version":"5.3.3-pre.1353"}}</script>
|
|
38
38
|
|
|
39
39
|
<meta name="theme-color" content="#000000" /><link rel="manifest" href="/openmrs/spa/manifest.266df36f2271d27ae9bcaa196a2976ae.json" /></head>
|
|
40
40
|
<body>
|
package/lib/openmrs.js
CHANGED
|
@@ -6710,7 +6710,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
6710
6710
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6711
6711
|
|
|
6712
6712
|
"use strict";
|
|
6713
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ attach: () => (/* binding */ attach),\n/* harmony export */ detach: () => (/* binding */ detach),\n/* harmony export */ detachAll: () => (/* binding */ detachAll),\n/* harmony export */ getAssignedExtensions: () => (/* binding */ getAssignedExtensions),\n/* harmony export */ getConnectedExtensions: () => (/* binding */ getConnectedExtensions),\n/* harmony export */ getExtensionNameFromId: () => (/* binding */ getExtensionNameFromId),\n/* harmony export */ getExtensionRegistration: () => (/* binding */ getExtensionRegistration),\n/* harmony export */ getExtensionRegistrationFrom: () => (/* binding */ getExtensionRegistrationFrom),\n/* harmony export */ registerExtension: () => (/* binding */ registerExtension),\n/* harmony export */ registerExtensionSlot: () => (/* binding */ registerExtensionSlot),\n/* harmony export */ reset: () => (/* binding */ reset)\n/* harmony export */ });\n/* harmony import */ var _openmrs_esm_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @openmrs/esm-api */ \"../../framework/esm-api/src/index.ts\");\n/* harmony import */ var _openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @openmrs/esm-config */ \"../../framework/esm-config/src/index.ts\");\n/* harmony import */ var _openmrs_esm_feature_flags__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @openmrs/esm-feature-flags */ \"../../framework/esm-feature-flags/src/index.ts\");\n/* harmony import */ var lodash_es_isEqual__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash-es/isEqual */ \"../../../node_modules/lodash-es/isEqual.js\");\n/* harmony import */ var lodash_es_isUndefined__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash-es/isUndefined */ \"../../../node_modules/lodash-es/isUndefined.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! . */ \"../../framework/esm-extensions/src/index.ts\");\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./store */ \"../../framework/esm-extensions/src/store.ts\");\n/** @module @category Extension */ /*\n * We have the following extension modes:\n *\n * - attached (set via code in form of: attach, detach, ...)\n * - configured (set via configuration in form of: added, removed, ...)\n * - assigned (computed from attached and configured)\n * - connected (computed from assigned using connectivity and online / offline)\n */ function _array_like_to_array(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];\n return arr2;\n}\nfunction _array_with_holes(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _array_without_holes(arr) {\n if (Array.isArray(arr)) return _array_like_to_array(arr);\n}\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _iterable_to_array(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _iterable_to_array_limit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally{\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally{\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _non_iterable_rest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _non_iterable_spread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _sliced_to_array(arr, i) {\n return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();\n}\nfunction _to_consumable_array(arr) {\n return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();\n}\nfunction _unsupported_iterable_to_array(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _array_like_to_array(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);\n}\n\n\n\n\n\n\n\nvar extensionInternalStore = (0,___WEBPACK_IMPORTED_MODULE_3__.getExtensionInternalStore)();\nvar extensionStore = (0,_store__WEBPACK_IMPORTED_MODULE_4__.getExtensionStore)();\nvar slotsConfigStore = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionSlotsConfigStore)();\nvar extensionsConfigStore = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionsConfigStore)();\n// Keep the output store updated\nfunction updateExtensionOutputStore(internalState, extensionSlotConfigs, extensionsConfigStore) {\n var slots = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = Object.entries(internalState.slots)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var _step_value = _sliced_to_array(_step.value, 2), slotName = _step_value[0], slot = _step_value[1];\n var config = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionSlotConfigFromStore)(extensionSlotConfigs, slot.name).config;\n var assignedExtensions = getAssignedExtensionsFromSlotData(slotName, internalState, config, extensionsConfigStore);\n slots[slotName] = {\n moduleName: slot.moduleName,\n assignedExtensions: assignedExtensions\n };\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (!(0,lodash_es_isEqual__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(extensionStore.getState().slots, slots)) {\n extensionStore.setState({\n slots: slots\n });\n }\n}\nextensionInternalStore.subscribe(function(internalStore) {\n updateExtensionOutputStore(internalStore, slotsConfigStore.getState(), extensionsConfigStore.getState());\n});\nslotsConfigStore.subscribe(function(slotConfigs) {\n updateExtensionOutputStore(extensionInternalStore.getState(), slotConfigs, extensionsConfigStore.getState());\n});\nextensionsConfigStore.subscribe(function(extensionConfigs) {\n updateExtensionOutputStore(extensionInternalStore.getState(), slotsConfigStore.getState(), extensionConfigs);\n});\nfunction createNewExtensionSlotInfo(slotName, moduleName) {\n return {\n moduleName: moduleName,\n name: slotName,\n attachedIds: [],\n config: null\n };\n}\n/**\n * Given an extension ID, which is a string uniquely identifying\n * an instance of an extension within an extension slot, this\n * returns the extension name.\n *\n * @example\n * ```js\n * getExtensionNameFromId(\"foo#bar\")\n * --> \"foo\"\n * getExtensionNameFromId(\"baz\")\n * --> \"baz\"\n * ```\n */ function getExtensionNameFromId(extensionId) {\n var _extensionId_split = _sliced_to_array(extensionId.split(\"#\"), 1), extensionName = _extensionId_split[0];\n return extensionName;\n}\nfunction getExtensionRegistrationFrom(state, extensionId) {\n var name = getExtensionNameFromId(extensionId);\n return state.extensions[name];\n}\nfunction getExtensionRegistration(extensionId) {\n var state = extensionInternalStore.getState();\n return getExtensionRegistrationFrom(state, extensionId);\n}\n/**\n * Extensions must be registered in order to be rendered.\n * This is handled by the app shell, when extensions are provided\n * via the `setupOpenMRS` return object.\n * @internal\n */ var registerExtension = function(extensionRegistration) {\n return extensionInternalStore.setState(function(state) {\n state.extensions[extensionRegistration.name] = _object_spread_props(_object_spread({}, extensionRegistration), {\n instances: []\n });\n return state;\n });\n};\n/**\n * Attach an extension to an extension slot.\n *\n * This will cause the extension to be rendered into the specified\n * extension slot, unless it is removed by configuration. Using\n * `attach` is an alternative to specifying the `slot` or `slots`\n * in the extension declaration.\n *\n * It is particularly useful when creating a slot into which\n * you want to render an existing extension. This enables you\n * to do so without modifying the extension's declaration, which\n * may be impractical or inappropriate, for example if you are\n * writing a module for a specific implementation.\n *\n * @param slotName a name uniquely identifying the slot\n * @param extensionId an extension name, with an optional #-suffix\n * to distinguish it from other instances of the same extension\n * attached to the same slot.\n */ function attach(slotName, extensionId) {\n (0,_store__WEBPACK_IMPORTED_MODULE_4__.updateInternalExtensionStore)(function(state) {\n var existingSlot = state.slots[slotName];\n if (!existingSlot) {\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, slotName, _object_spread_props(_object_spread({}, createNewExtensionSlotInfo(slotName)), {\n attachedIds: [\n extensionId\n ]\n })))\n });\n } else {\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, slotName, _object_spread_props(_object_spread({}, existingSlot), {\n attachedIds: _to_consumable_array(existingSlot.attachedIds).concat([\n extensionId\n ])\n })))\n });\n }\n });\n}\n/** Avoid using this. Extension attachments should be considered declarative. */ function detach(extensionSlotName, extensionId) {\n (0,_store__WEBPACK_IMPORTED_MODULE_4__.updateInternalExtensionStore)(function(state) {\n var existingSlot = state.slots[extensionSlotName];\n if (existingSlot && existingSlot.attachedIds.includes(extensionId)) {\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, extensionSlotName, _object_spread_props(_object_spread({}, existingSlot), {\n attachedIds: existingSlot.attachedIds.filter(function(id) {\n return id !== extensionId;\n })\n })))\n });\n } else {\n return state;\n }\n });\n}\n/** Avoid using this. Extension attachments should be considered declarative. */ function detachAll(extensionSlotName) {\n (0,_store__WEBPACK_IMPORTED_MODULE_4__.updateInternalExtensionStore)(function(state) {\n var existingSlot = state.slots[extensionSlotName];\n if (existingSlot) {\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, extensionSlotName, _object_spread_props(_object_spread({}, existingSlot), {\n attachedIds: []\n })))\n });\n } else {\n return state;\n }\n });\n}\n/**\n * Get an order index for the extension. This will\n * come from either its configured order, its registered order\n * parameter, or the order in which it happened to be attached.\n */ function getOrder(extensionId, configuredOrder, registeredOrderIndex, attachedOrder) {\n var configuredIndex = configuredOrder.indexOf(extensionId);\n if (configuredIndex !== -1) {\n return configuredIndex;\n } else if (registeredOrderIndex !== undefined) {\n // extensions that don't have a configured order should appear after those that do\n return 1000 + registeredOrderIndex;\n } else {\n var assignedIndex = attachedOrder.indexOf(extensionId);\n if (assignedIndex !== -1) {\n // extensions that have neither a configured nor registered order should appear\n // after all others\n return 2000 + assignedIndex;\n } else {\n return -1;\n }\n }\n}\n/**\n * Filters a list of extensions according to whether they support the\n * current connectivity status.\n *\n * @param assignedExtensions The list of extensions to filter.\n * @param online Whether the app is currently online. If `null`, uses `navigator.onLine`.\n * @param enabledFeatureFlags The names of all enabled feature flags. If `null`, looks\n * up the feature flags using the feature flags API.\n * @returns A list of extensions that should be rendered\n */ function getConnectedExtensions(assignedExtensions) {\n var online = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, enabledFeatureFlags = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;\n var isOnline = online !== null && online !== void 0 ? online : navigator.onLine;\n var featureFlags = enabledFeatureFlags !== null && enabledFeatureFlags !== void 0 ? enabledFeatureFlags : Object.entries(_openmrs_esm_feature_flags__WEBPACK_IMPORTED_MODULE_2__.featureFlagsStore.getState().flags).filter(function(param) {\n var _param = _sliced_to_array(param, 2), enabled = _param[1].enabled;\n return enabled;\n }).map(function(param) {\n var _param = _sliced_to_array(param, 1), name = _param[0];\n return name;\n });\n return assignedExtensions.filter(function(e) {\n return (0,___WEBPACK_IMPORTED_MODULE_3__.checkStatusFor)(isOnline, e.online, e.offline);\n }).filter(function(e) {\n return e.featureFlag === undefined || (featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.includes(e.featureFlag));\n });\n}\nfunction getAssignedExtensionsFromSlotData(slotName, internalState, config, extensionConfigStoreState) {\n var attachedIds = internalState.slots[slotName].attachedIds;\n var assignedIds = calculateAssignedIds(config, attachedIds);\n var extensions = [];\n var user = undefined;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = assignedIds[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var id = _step.value;\n var _getExtensionConfigFromStore = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionConfigFromStore)(extensionConfigStoreState, slotName, id), extensionConfig = _getExtensionConfigFromStore.config;\n var name = getExtensionNameFromId(id);\n var extension = internalState.extensions[name];\n // if the extension has not been registered yet, do not include it\n if (extension) {\n var _extensionConfig_Displayconditions;\n var _extensionConfig_Displayconditions_privileges, _ref;\n var requiredPrivileges = (_ref = (_extensionConfig_Displayconditions_privileges = extensionConfig === null || extensionConfig === void 0 ? void 0 : (_extensionConfig_Displayconditions = extensionConfig[\"Display conditions\"]) === null || _extensionConfig_Displayconditions === void 0 ? void 0 : _extensionConfig_Displayconditions.privileges) !== null && _extensionConfig_Displayconditions_privileges !== void 0 ? _extensionConfig_Displayconditions_privileges : extension.privileges) !== null && _ref !== void 0 ? _ref : [];\n if (requiredPrivileges && (typeof requiredPrivileges === \"string\" || Array.isArray(requiredPrivileges) && requiredPrivileges.length > 0)) {\n if ((0,lodash_es_isUndefined__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(user)) {\n var _getSessionStore_getState_session;\n user = (_getSessionStore_getState_session = (0,_openmrs_esm_api__WEBPACK_IMPORTED_MODULE_0__.getSessionStore)().getState().session) === null || _getSessionStore_getState_session === void 0 ? void 0 : _getSessionStore_getState_session.user;\n }\n if (!user) {\n continue;\n }\n if (!(0,_openmrs_esm_api__WEBPACK_IMPORTED_MODULE_0__.userHasAccess)(requiredPrivileges, user)) {\n continue;\n }\n }\n var _extension_online, _extension_offline;\n extensions.push({\n id: id,\n name: name,\n moduleName: extension.moduleName,\n config: extensionConfig,\n featureFlag: extension.featureFlag,\n meta: extension.meta,\n online: (_extension_online = extension.online) !== null && _extension_online !== void 0 ? _extension_online : true,\n offline: (_extension_offline = extension.offline) !== null && _extension_offline !== void 0 ? _extension_offline : false\n });\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return extensions;\n}\n/**\n * Gets the list of extensions assigned to a given slot\n *\n * @param slotName The slot to load the assigned extensions for\n * @returns An array of extensions assigned to the named slot\n */ function getAssignedExtensions(slotName) {\n var internalState = extensionInternalStore.getState();\n var _getExtensionSlotConfig = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionSlotConfig)(slotName), slotConfig = _getExtensionSlotConfig.config;\n var extensionStoreState = extensionsConfigStore.getState();\n return getAssignedExtensionsFromSlotData(slotName, internalState, slotConfig, extensionStoreState);\n}\nfunction calculateAssignedIds(config, attachedIds) {\n var addedIds = config.add || [];\n var removedIds = config.remove || [];\n var idOrder = config.order || [];\n var extensions = extensionInternalStore.getState().extensions;\n return _to_consumable_array(attachedIds).concat(_to_consumable_array(addedIds)).filter(function(id) {\n return !removedIds.includes(id);\n }).sort(function(idA, idB) {\n var _extensions_getExtensionNameFromId, _extensions_getExtensionNameFromId1;\n var ai = getOrder(idA, idOrder, (_extensions_getExtensionNameFromId = extensions[getExtensionNameFromId(idA)]) === null || _extensions_getExtensionNameFromId === void 0 ? void 0 : _extensions_getExtensionNameFromId.order, attachedIds);\n var bi = getOrder(idB, idOrder, (_extensions_getExtensionNameFromId1 = extensions[getExtensionNameFromId(idB)]) === null || _extensions_getExtensionNameFromId1 === void 0 ? void 0 : _extensions_getExtensionNameFromId1.order, attachedIds);\n if (bi === -1) {\n return -1;\n } else if (ai === -1) {\n return 1;\n } else {\n return ai - bi;\n }\n });\n}\n/**\n * Used by by extension slots at mount time.\n *\n * @param moduleName The name of the module that contains the extension slot\n * @param slotName The extension slot name that is actually used\n * @internal\n */ var registerExtensionSlot = function(moduleName, slotName) {\n return extensionInternalStore.setState(function(state) {\n var _state_slots_slotName;\n var existingModuleName = (_state_slots_slotName = state.slots[slotName]) === null || _state_slots_slotName === void 0 ? void 0 : _state_slots_slotName.moduleName;\n if (existingModuleName && existingModuleName != moduleName) {\n console.warn(\"An extension slot with the name '\".concat(slotName, '\\' already exists. Refusing to register the same slot name twice (in \"registerExtensionSlot\"). The existing one is from module ').concat(existingModuleName, \".\"));\n return state;\n }\n if (existingModuleName && existingModuleName == moduleName) {\n // Re-rendering an existing slot\n return state;\n }\n if (state.slots[slotName]) {\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, slotName, _object_spread_props(_object_spread({}, state.slots[slotName]), {\n moduleName: moduleName\n })))\n });\n }\n var slot = createNewExtensionSlotInfo(slotName, moduleName);\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, slotName, slot))\n });\n });\n};\n/**\n * @internal\n * Just for testing.\n */ var reset = function() {\n return extensionStore.setState(function() {\n return {\n slots: {},\n extensions: {}\n };\n });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1leHRlbnNpb25zL3NyYy9leHRlbnNpb25zLnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdDQUFnQyxHQUNoQzs7Ozs7OztDQU9DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdpRTtBQVFyQztBQUNrQztBQUN2QjtBQUNRO0FBRWM7QUFFWTtBQUUxRSxJQUFNYyx5QkFBeUJKLDREQUF5QkE7QUFDeEQsSUFBTUssaUJBQWlCSCx5REFBaUJBO0FBQ3hDLElBQU1JLG1CQUFtQlYsaUZBQTRCQTtBQUNyRCxJQUFNVyx3QkFBd0JkLDZFQUF3QkE7QUFFdEQsZ0NBQWdDO0FBQ2hDLFNBQVNlLDJCQUNQQyxhQUFxQyxFQUNyQ0Msb0JBQStDLEVBQy9DSCxxQkFBNEMsRUFDNUM7SUFDQSxJQUFNSSxRQUE0QyxDQUFDO1FBQzlDOztRQUFMLFFBQUssWUFBd0JDLE9BQU9DLE9BQU8sQ0FBQ0osY0FBY0UsS0FBSyxzQkFBMUQsd0dBQTZEO1lBQTdELG9EQUFLRywyQkFBVUM7WUFDbEIsSUFBTSxTQUFhcEIsb0ZBQStCQSxDQUFDZSxzQkFBc0JLLEtBQUtFLElBQUksRUFBMUVEO1lBQ1IsSUFBTUUscUJBQXFCQyxrQ0FDekJMLFVBQ0FMLGVBQ0FPLFFBQ0FUO1lBRUZJLEtBQUssQ0FBQ0csU0FBUyxHQUFHO2dCQUFFTSxZQUFZTCxLQUFLSyxVQUFVO2dCQUFFRixvQkFBQUE7WUFBbUI7UUFDdEU7O1FBVEs7UUFBQTs7O2lCQUFBO2dCQUFBOzs7Z0JBQUE7c0JBQUE7Ozs7SUFVTCxJQUFJLENBQUNwQiw2REFBT0EsQ0FBQ08sZUFBZWdCLFFBQVEsR0FBR1YsS0FBSyxFQUFFQSxRQUFRO1FBQ3BETixlQUFlaUIsUUFBUSxDQUFDO1lBQUVYLE9BQUFBO1FBQU07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QUFDWSxPQUFVO1lBQ2RBO1FBQTNCLElBQU1nRSxxQkFBcUJoRSxDQUFBQSx3QkFBQUEsTUFBTXZCLEtBQUssQ0FBQ0csU0FBUyxjQUFyQm9CLG1DQUFBQSxLQUFBQSxJQUFBQSxzQkFBdUJkLFVBQVU7UUFDNUQsSUFBSThFLHNCQUFzQkEsc0JBQXNCOUUsWUFBWTtZQUMxRCtFLFFBQVFDLElBQUksQ0FDVixvQ0FBNktGLE9BQXpJcEYsVUFBUyxtSUFBbUosT0FBbkJvRixvQkFBbUI7WUFFbE0sT0FBT2hFO1FBQ1QsQ0FBQztRQUNELElBQUlnRSxzQkFBc0JBLHNCQUFzQjlFLFlBQVk7WUFDMUQsZ0NBQWdDO1lBQ2hDLE9BQU9jO1FBQ1QsQ0FBQztRQUNELElBQUlBLE1BQU12QixLQUFLLENBQUNHLFNBQVMsRUFBRTtZQUN6QixPQUFPLHdDQUNGb0I7Z0JBQ0h2QixPQUFPLHdDQUNGdUIsTUFBTXZCLEtBQUssR0FDZCxxQkFBQ0csVUFBVyx3Q0FDUG9CLE1BQU12QixLQUFLLENBQUNHLFNBQVM7b0JBQ3hCTSxZQUFBQTs7O1FBSVIsQ0FBQztRQUNELElBQU1MLE9BQU9ZLDJCQUEyQmIsVUFBVU07UUFDbEQsT0FBTyx3Q0FDRmM7WUFDSHZCLE9BQU8sd0NBQ0Z1QixNQUFNdkIsS0FBSyxHQUNkLHFCQUFDRyxVQUFXQzs7SUFHbEI7RUFBRztBQUVMOzs7Q0FHQyxHQUNNLElBQU1zRixRQUFvQjtXQUMvQmhHLGVBQWVpQixRQUFRLENBQUMsV0FBTTtRQUM1QixPQUFPO1lBQ0xYLE9BQU8sQ0FBQztZQUNSd0IsWUFBWSxDQUFDO1FBQ2Y7SUFDRjtFQUFHIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLWV4dGVuc2lvbnMvc3JjL2V4dGVuc2lvbnMudHM/NzU5YSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBAY2F0ZWdvcnkgRXh0ZW5zaW9uICovXG4vKlxuICogV2UgaGF2ZSB0aGUgZm9sbG93aW5nIGV4dGVuc2lvbiBtb2RlczpcbiAqXG4gKiAtIGF0dGFjaGVkIChzZXQgdmlhIGNvZGUgaW4gZm9ybSBvZjogYXR0YWNoLCBkZXRhY2gsIC4uLilcbiAqIC0gY29uZmlndXJlZCAoc2V0IHZpYSBjb25maWd1cmF0aW9uIGluIGZvcm0gb2Y6IGFkZGVkLCByZW1vdmVkLCAuLi4pXG4gKiAtIGFzc2lnbmVkIChjb21wdXRlZCBmcm9tIGF0dGFjaGVkIGFuZCBjb25maWd1cmVkKVxuICogLSBjb25uZWN0ZWQgKGNvbXB1dGVkIGZyb20gYXNzaWduZWQgdXNpbmcgY29ubmVjdGl2aXR5IGFuZCBvbmxpbmUgLyBvZmZsaW5lKVxuICovXG5cbmltcG9ydCB0eXBlIHsgTG9nZ2VkSW5Vc2VyIH0gZnJvbSAnQG9wZW5tcnMvZXNtLWFwaSc7XG5pbXBvcnQgeyBnZXRTZXNzaW9uU3RvcmUsIHVzZXJIYXNBY2Nlc3MgfSBmcm9tICdAb3Blbm1ycy9lc20tYXBpJztcbmltcG9ydCB0eXBlIHsgRXh0ZW5zaW9uc0NvbmZpZ1N0b3JlLCBFeHRlbnNpb25TbG90Q29uZmlnT2JqZWN0LCBFeHRlbnNpb25TbG90c0NvbmZpZ1N0b3JlIH0gZnJvbSAnQG9wZW5tcnMvZXNtLWNvbmZpZyc7XG5pbXBvcnQge1xuICBnZXRFeHRlbnNpb25Db25maWdGcm9tU3RvcmUsXG4gIGdldEV4dGVuc2lvbnNDb25maWdTdG9yZSxcbiAgZ2V0RXh0ZW5zaW9uU2xvdENvbmZpZyxcbiAgZ2V0RXh0ZW5zaW9uU2xvdENvbmZpZ0Zyb21TdG9yZSxcbiAgZ2V0RXh0ZW5zaW9uU2xvdHNDb25maWdTdG9yZSxcbn0gZnJvbSAnQG9wZW5tcnMvZXNtLWNvbmZpZyc7XG5pbXBvcnQgeyBmZWF0dXJlRmxhZ3NTdG9yZSB9IGZyb20gJ0BvcGVubXJzL2VzbS1mZWF0dXJlLWZsYWdzJztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC1lcy9pc0VxdWFsJztcbmltcG9ydCBpc1VuZGVmaW5lZCBmcm9tICdsb2Rhc2gtZXMvaXNVbmRlZmluZWQnO1xuaW1wb3J0IHR5cGUgeyBFeHRlbnNpb25TbG90U3RhdGUsIEFzc2lnbmVkRXh0ZW5zaW9uLCBDb25uZWN0ZWRFeHRlbnNpb24gfSBmcm9tICcuJztcbmltcG9ydCB7IGdldEV4dGVuc2lvbkludGVybmFsU3RvcmUsIGNoZWNrU3RhdHVzRm9yIH0gZnJvbSAnLic7XG5pbXBvcnQgdHlwZSB7IEV4dGVuc2lvblJlZ2lzdHJhdGlvbiwgRXh0ZW5zaW9uU2xvdEluZm8sIEV4dGVuc2lvbkludGVybmFsU3RvcmUgfSBmcm9tICcuL3N0b3JlJztcbmltcG9ydCB7IGdldEV4dGVuc2lvblN0b3JlLCB1cGRhdGVJbnRlcm5hbEV4dGVuc2lvblN0b3JlIH0gZnJvbSAnLi9zdG9yZSc7XG5cbmNvbnN0IGV4dGVuc2lvbkludGVybmFsU3RvcmUgPSBnZXRFeHRlbnNpb25JbnRlcm5hbFN0b3JlKCk7XG5jb25zdCBleHRlbnNpb25TdG9yZSA9IGdldEV4dGVuc2lvblN0b3JlKCk7XG5jb25zdCBzbG90c0NvbmZpZ1N0b3JlID0gZ2V0RXh0ZW5zaW9uU2xvdHNDb25maWdTdG9yZSgpO1xuY29uc3QgZXh0ZW5zaW9uc0NvbmZpZ1N0b3JlID0gZ2V0RXh0ZW5zaW9uc0NvbmZpZ1N0b3JlKCk7XG5cbi8vIEtlZXAgdGhlIG91dHB1dCBzdG9yZSB1cGRhdGVkXG5mdW5jdGlvbiB1cGRhdGVFeHRlbnNpb25PdXRwdXRTdG9yZShcbiAgaW50ZXJuYWxTdGF0ZTogRXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSxcbiAgZXh0ZW5zaW9uU2xvdENvbmZpZ3M6IEV4dGVuc2lvblNsb3RzQ29uZmlnU3RvcmUsXG4gIGV4dGVuc2lvbnNDb25maWdTdG9yZTogRXh0ZW5zaW9uc0NvbmZpZ1N0b3JlLFxuKSB7XG4gIGNvbnN0IHNsb3RzOiBSZWNvcmQ8c3RyaW5nLCBFeHRlbnNpb25TbG90U3RhdGU+ID0ge307XG4gIGZvciAobGV0IFtzbG90TmFtZSwgc2xvdF0gb2YgT2JqZWN0LmVudHJpZXMoaW50ZXJuYWxTdGF0ZS5zbG90cykpIHtcbiAgICBjb25zdCB7IGNvbmZpZyB9ID0gZ2V0RXh0ZW5zaW9uU2xvdENvbmZpZ0Zyb21TdG9yZShleHRlbnNpb25TbG90Q29uZmlncywgc2xvdC5uYW1lKTtcbiAgICBjb25zdCBhc3NpZ25lZEV4dGVuc2lvbnMgPSBnZXRBc3NpZ25lZEV4dGVuc2lvbnNGcm9tU2xvdERhdGEoXG4gICAgICBzbG90TmFtZSxcbiAgICAgIGludGVybmFsU3RhdGUsXG4gICAgICBjb25maWcsXG4gICAgICBleHRlbnNpb25zQ29uZmlnU3RvcmUsXG4gICAgKTtcbiAgICBzbG90c1tzbG90TmFtZV0gPSB7IG1vZHVsZU5hbWU6IHNsb3QubW9kdWxlTmFtZSwgYXNzaWduZWRFeHRlbnNpb25zIH07XG4gIH1cbiAgaWYgKCFpc0VxdWFsKGV4dGVuc2lvblN0b3JlLmdldFN0YXRlKCkuc2xvdHMsIHNsb3RzKSkge1xuICAgIGV4dGVuc2lvblN0b3JlLnNldFN0YXRlKHsgc2xvdHMgfSk7XG4gIH1cbn1cblxuZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5zdWJzY3JpYmUoKGludGVybmFsU3RvcmUpID0+IHtcbiAgdXBkYXRlRXh0ZW5zaW9uT3V0cHV0U3RvcmUoaW50ZXJuYWxTdG9yZSwgc2xvdHNDb25maWdTdG9yZS5nZXRTdGF0ZSgpLCBleHRlbnNpb25zQ29uZmlnU3RvcmUuZ2V0U3RhdGUoKSk7XG59KTtcblxuc2xvdHNDb25maWdTdG9yZS5zdWJzY3JpYmUoKHNsb3RDb25maWdzKSA9PiB7XG4gIHVwZGF0ZUV4dGVuc2lvbk91dHB1dFN0b3JlKGV4dGVuc2lvbkludGVybmFsU3RvcmUuZ2V0U3RhdGUoKSwgc2xvdENvbmZpZ3MsIGV4dGVuc2lvbnNDb25maWdTdG9yZS5nZXRTdGF0ZSgpKTtcbn0pO1xuXG5leHRlbnNpb25zQ29uZmlnU3RvcmUuc3Vic2NyaWJlKChleHRlbnNpb25Db25maWdzKSA9PiB7XG4gIHVwZGF0ZUV4dGVuc2lvbk91dHB1dFN0b3JlKGV4dGVuc2lvbkludGVybmFsU3RvcmUuZ2V0U3RhdGUoKSwgc2xvdHNDb25maWdTdG9yZS5nZXRTdGF0ZSgpLCBleHRlbnNpb25Db25maWdzKTtcbn0pO1xuXG5mdW5jdGlvbiBjcmVhdGVOZXdFeHRlbnNpb25TbG90SW5mbyhzbG90TmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lPzogc3RyaW5nKTogRXh0ZW5zaW9uU2xvdEluZm8ge1xuICByZXR1cm4ge1xuICAgIG1vZHVsZU5hbWUsXG4gICAgbmFtZTogc2xvdE5hbWUsXG4gICAgYXR0YWNoZWRJZHM6IFtdLFxuICAgIGNvbmZpZzogbnVsbCxcbiAgfTtcbn1cblxuLyoqXG4gKiBHaXZlbiBhbiBleHRlbnNpb24gSUQsIHdoaWNoIGlzIGEgc3RyaW5nIHVuaXF1ZWx5IGlkZW50aWZ5aW5nXG4gKiBhbiBpbnN0YW5jZSBvZiBhbiBleHRlbnNpb24gd2l0aGluIGFuIGV4dGVuc2lvbiBzbG90LCB0aGlzXG4gKiByZXR1cm5zIHRoZSBleHRlbnNpb24gbmFtZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBganNcbiAqIGdldEV4dGVuc2lvbk5hbWVGcm9tSWQoXCJmb28jYmFyXCIpXG4gKiAgLS0+IFwiZm9vXCJcbiAqIGdldEV4dGVuc2lvbk5hbWVGcm9tSWQoXCJiYXpcIilcbiAqICAtLT4gXCJiYXpcIlxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFeHRlbnNpb25OYW1lRnJvbUlkKGV4dGVuc2lvbklkOiBzdHJpbmcpIHtcbiAgY29uc3QgW2V4dGVuc2lvbk5hbWVdID0gZXh0ZW5zaW9uSWQuc3BsaXQoJyMnKTtcbiAgcmV0dXJuIGV4dGVuc2lvbk5hbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFeHRlbnNpb25SZWdpc3RyYXRpb25Gcm9tKFxuICBzdGF0ZTogRXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSxcbiAgZXh0ZW5zaW9uSWQ6IHN0cmluZyxcbik6IEV4dGVuc2lvblJlZ2lzdHJhdGlvbiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IG5hbWUgPSBnZXRFeHRlbnNpb25OYW1lRnJvbUlkKGV4dGVuc2lvbklkKTtcbiAgcmV0dXJuIHN0YXRlLmV4dGVuc2lvbnNbbmFtZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFeHRlbnNpb25SZWdpc3RyYXRpb24oZXh0ZW5zaW9uSWQ6IHN0cmluZyk6IEV4dGVuc2lvblJlZ2lzdHJhdGlvbiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHN0YXRlID0gZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5nZXRTdGF0ZSgpO1xuICByZXR1cm4gZ2V0RXh0ZW5zaW9uUmVnaXN0cmF0aW9uRnJvbShzdGF0ZSwgZXh0ZW5zaW9uSWQpO1xufVxuXG4vKipcbiAqIEV4dGVuc2lvbnMgbXVzdCBiZSByZWdpc3RlcmVkIGluIG9yZGVyIHRvIGJlIHJlbmRlcmVkLlxuICogVGhpcyBpcyBoYW5kbGVkIGJ5IHRoZSBhcHAgc2hlbGwsIHdoZW4gZXh0ZW5zaW9ucyBhcmUgcHJvdmlkZWRcbiAqIHZpYSB0aGUgYHNldHVwT3Blbk1SU2AgcmV0dXJuIG9iamVjdC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJFeHRlbnNpb246IChleHRlbnNpb25SZWdpc3RyYXRpb246IEV4dGVuc2lvblJlZ2lzdHJhdGlvbikgPT4gdm9pZCA9IChleHRlbnNpb25SZWdpc3RyYXRpb24pID0+XG4gIGV4dGVuc2lvbkludGVybmFsU3RvcmUuc2V0U3RhdGUoKHN0YXRlKSA9PiB7XG4gICAgc3RhdGUuZXh0ZW5zaW9uc1tleHRlbnNpb25SZWdpc3RyYXRpb24ubmFtZV0gPSB7XG4gICAgICAuLi5leHRlbnNpb25SZWdpc3RyYXRpb24sXG4gICAgICBpbnN0YW5jZXM6IFtdLFxuICAgIH07XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9KTtcblxuLyoqXG4gKiBBdHRhY2ggYW4gZXh0ZW5zaW9uIHRvIGFuIGV4dGVuc2lvbiBzbG90LlxuICpcbiAqIFRoaXMgd2lsbCBjYXVzZSB0aGUgZXh0ZW5zaW9uIHRvIGJlIHJlbmRlcmVkIGludG8gdGhlIHNwZWNpZmllZFxuICogZXh0ZW5zaW9uIHNsb3QsIHVubGVzcyBpdCBpcyByZW1vdmVkIGJ5IGNvbmZpZ3VyYXRpb24uIFVzaW5nXG4gKiBgYXR0YWNoYCBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzcGVjaWZ5aW5nIHRoZSBgc2xvdGAgb3IgYHNsb3RzYFxuICogaW4gdGhlIGV4dGVuc2lvbiBkZWNsYXJhdGlvbi5cbiAqXG4gKiBJdCBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gY3JlYXRpbmcgYSBzbG90IGludG8gd2hpY2hcbiAqIHlvdSB3YW50IHRvIHJlbmRlciBhbiBleGlzdGluZyBleHRlbnNpb24uIFRoaXMgZW5hYmxlcyB5b3VcbiAqIHRvIGRvIHNvIHdpdGhvdXQgbW9kaWZ5aW5nIHRoZSBleHRlbnNpb24ncyBkZWNsYXJhdGlvbiwgd2hpY2hcbiAqIG1heSBiZSBpbXByYWN0aWNhbCBvciBpbmFwcHJvcHJpYXRlLCBmb3IgZXhhbXBsZSBpZiB5b3UgYXJlXG4gKiB3cml0aW5nIGEgbW9kdWxlIGZvciBhIHNwZWNpZmljIGltcGxlbWVudGF0aW9uLlxuICpcbiAqIEBwYXJhbSBzbG90TmFtZSBhIG5hbWUgdW5pcXVlbHkgaWRlbnRpZnlpbmcgdGhlIHNsb3RcbiAqIEBwYXJhbSBleHRlbnNpb25JZCBhbiBleHRlbnNpb24gbmFtZSwgd2l0aCBhbiBvcHRpb25hbCAjLXN1ZmZpeFxuICogICAgdG8gZGlzdGluZ3Vpc2ggaXQgZnJvbSBvdGhlciBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgZXh0ZW5zaW9uXG4gKiAgICBhdHRhY2hlZCB0byB0aGUgc2FtZSBzbG90LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXR0YWNoKHNsb3ROYW1lOiBzdHJpbmcsIGV4dGVuc2lvbklkOiBzdHJpbmcpIHtcbiAgdXBkYXRlSW50ZXJuYWxFeHRlbnNpb25TdG9yZSgoc3RhdGUpID0+IHtcbiAgICBjb25zdCBleGlzdGluZ1Nsb3QgPSBzdGF0ZS5zbG90c1tzbG90TmFtZV07XG5cbiAgICBpZiAoIWV4aXN0aW5nU2xvdCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNsb3RzOiB7XG4gICAgICAgICAgLi4uc3RhdGUuc2xvdHMsXG4gICAgICAgICAgW3Nsb3ROYW1lXToge1xuICAgICAgICAgICAgLi4uY3JlYXRlTmV3RXh0ZW5zaW9uU2xvdEluZm8oc2xvdE5hbWUpLFxuICAgICAgICAgICAgYXR0YWNoZWRJZHM6IFtleHRlbnNpb25JZF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzbG90czoge1xuICAgICAgICAgIC4uLnN0YXRlLnNsb3RzLFxuICAgICAgICAgIFtzbG90TmFtZV06IHtcbiAgICAgICAgICAgIC4uLmV4aXN0aW5nU2xvdCxcbiAgICAgICAgICAgIGF0dGFjaGVkSWRzOiBbLi4uZXhpc3RpbmdTbG90LmF0dGFjaGVkSWRzLCBleHRlbnNpb25JZF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICB9KTtcbn1cblxuLyoqIEF2b2lkIHVzaW5nIHRoaXMuIEV4dGVuc2lvbiBhdHRhY2htZW50cyBzaG91bGQgYmUgY29uc2lkZXJlZCBkZWNsYXJhdGl2ZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXRhY2goZXh0ZW5zaW9uU2xvdE5hbWU6IHN0cmluZywgZXh0ZW5zaW9uSWQ6IHN0cmluZykge1xuICB1cGRhdGVJbnRlcm5hbEV4dGVuc2lvblN0b3JlKChzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nU2xvdCA9IHN0YXRlLnNsb3RzW2V4dGVuc2lvblNsb3ROYW1lXTtcblxuICAgIGlmIChleGlzdGluZ1Nsb3QgJiYgZXhpc3RpbmdTbG90LmF0dGFjaGVkSWRzLmluY2x1ZGVzKGV4dGVuc2lvbklkKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNsb3RzOiB7XG4gICAgICAgICAgLi4uc3RhdGUuc2xvdHMsXG4gICAgICAgICAgW2V4dGVuc2lvblNsb3ROYW1lXToge1xuICAgICAgICAgICAgLi4uZXhpc3RpbmdTbG90LFxuICAgICAgICAgICAgYXR0YWNoZWRJZHM6IGV4aXN0aW5nU2xvdC5hdHRhY2hlZElkcy5maWx0ZXIoKGlkKSA9PiBpZCAhPT0gZXh0ZW5zaW9uSWQpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqIEF2b2lkIHVzaW5nIHRoaXMuIEV4dGVuc2lvbiBhdHRhY2htZW50cyBzaG91bGQgYmUgY29uc2lkZXJlZCBkZWNsYXJhdGl2ZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXRhY2hBbGwoZXh0ZW5zaW9uU2xvdE5hbWU6IHN0cmluZykge1xuICB1cGRhdGVJbnRlcm5hbEV4dGVuc2lvblN0b3JlKChzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nU2xvdCA9IHN0YXRlLnNsb3RzW2V4dGVuc2lvblNsb3ROYW1lXTtcblxuICAgIGlmIChleGlzdGluZ1Nsb3QpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzbG90czoge1xuICAgICAgICAgIC4uLnN0YXRlLnNsb3RzLFxuICAgICAgICAgIFtleHRlbnNpb25TbG90TmFtZV06IHtcbiAgICAgICAgICAgIC4uLmV4aXN0aW5nU2xvdCxcbiAgICAgICAgICAgIGF0dGFjaGVkSWRzOiBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IGFuIG9yZGVyIGluZGV4IGZvciB0aGUgZXh0ZW5zaW9uLiBUaGlzIHdpbGxcbiAqIGNvbWUgZnJvbSBlaXRoZXIgaXRzIGNvbmZpZ3VyZWQgb3JkZXIsIGl0cyByZWdpc3RlcmVkIG9yZGVyXG4gKiBwYXJhbWV0ZXIsIG9yIHRoZSBvcmRlciBpbiB3aGljaCBpdCBoYXBwZW5lZCB0byBiZSBhdHRhY2hlZC5cbiAqL1xuZnVuY3Rpb24gZ2V0T3JkZXIoXG4gIGV4dGVuc2lvbklkOiBzdHJpbmcsXG4gIGNvbmZpZ3VyZWRPcmRlcjogQXJyYXk8c3RyaW5nPixcbiAgcmVnaXN0ZXJlZE9yZGVySW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgYXR0YWNoZWRPcmRlcjogQXJyYXk8c3RyaW5nPixcbikge1xuICBjb25zdCBjb25maWd1cmVkSW5kZXggPSBjb25maWd1cmVkT3JkZXIuaW5kZXhPZihleHRlbnNpb25JZCk7XG4gIGlmIChjb25maWd1cmVkSW5kZXggIT09IC0xKSB7XG4gICAgcmV0dXJuIGNvbmZpZ3VyZWRJbmRleDtcbiAgfSBlbHNlIGlmIChyZWdpc3RlcmVkT3JkZXJJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gZXh0ZW5zaW9ucyB0aGF0IGRvbid0IGhhdmUgYSBjb25maWd1cmVkIG9yZGVyIHNob3VsZCBhcHBlYXIgYWZ0ZXIgdGhvc2UgdGhhdCBkb1xuICAgIHJldHVybiAxMDAwICsgcmVnaXN0ZXJlZE9yZGVySW5kZXg7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgYXNzaWduZWRJbmRleCA9IGF0dGFjaGVkT3JkZXIuaW5kZXhPZihleHRlbnNpb25JZCk7XG4gICAgaWYgKGFzc2lnbmVkSW5kZXggIT09IC0xKSB7XG4gICAgICAvLyBleHRlbnNpb25zIHRoYXQgaGF2ZSBuZWl0aGVyIGEgY29uZmlndXJlZCBub3IgcmVnaXN0ZXJlZCBvcmRlciBzaG91bGQgYXBwZWFyXG4gICAgICAvLyBhZnRlciBhbGwgb3RoZXJzXG4gICAgICByZXR1cm4gMjAwMCArIGFzc2lnbmVkSW5kZXg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBGaWx0ZXJzIGEgbGlzdCBvZiBleHRlbnNpb25zIGFjY29yZGluZyB0byB3aGV0aGVyIHRoZXkgc3VwcG9ydCB0aGVcbiAqIGN1cnJlbnQgY29ubmVjdGl2aXR5IHN0YXR1cy5cbiAqXG4gKiBAcGFyYW0gYXNzaWduZWRFeHRlbnNpb25zIFRoZSBsaXN0IG9mIGV4dGVuc2lvbnMgdG8gZmlsdGVyLlxuICogQHBhcmFtIG9ubGluZSBXaGV0aGVyIHRoZSBhcHAgaXMgY3VycmVudGx5IG9ubGluZS4gSWYgYG51bGxgLCB1c2VzIGBuYXZpZ2F0b3Iub25MaW5lYC5cbiAqIEBwYXJhbSBlbmFibGVkRmVhdHVyZUZsYWdzIFRoZSBuYW1lcyBvZiBhbGwgZW5hYmxlZCBmZWF0dXJlIGZsYWdzLiBJZiBgbnVsbGAsIGxvb2tzXG4gKiAgICB1cCB0aGUgZmVhdHVyZSBmbGFncyB1c2luZyB0aGUgZmVhdHVyZSBmbGFncyBBUEkuXG4gKiBAcmV0dXJucyBBIGxpc3Qgb2YgZXh0ZW5zaW9ucyB0aGF0IHNob3VsZCBiZSByZW5kZXJlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29ubmVjdGVkRXh0ZW5zaW9ucyhcbiAgYXNzaWduZWRFeHRlbnNpb25zOiBBcnJheTxBc3NpZ25lZEV4dGVuc2lvbj4sXG4gIG9ubGluZTogYm9vbGVhbiB8IG51bGwgPSBudWxsLFxuICBlbmFibGVkRmVhdHVyZUZsYWdzOiBBcnJheTxzdHJpbmc+IHwgbnVsbCA9IG51bGwsXG4pOiBBcnJheTxDb25uZWN0ZWRFeHRlbnNpb24+IHtcbiAgY29uc3QgaXNPbmxpbmUgPSBvbmxpbmUgPz8gbmF2aWdhdG9yLm9uTGluZTtcbiAgY29uc3QgZmVhdHVyZUZsYWdzID1cbiAgICBlbmFibGVkRmVhdHVyZUZsYWdzID8/XG4gICAgT2JqZWN0LmVudHJpZXMoZmVhdHVyZUZsYWdzU3RvcmUuZ2V0U3RhdGUoKS5mbGFncylcbiAgICAgIC5maWx0ZXIoKFssIHsgZW5hYmxlZCB9XSkgPT4gZW5hYmxlZClcbiAgICAgIC5tYXAoKFtuYW1lXSkgPT4gbmFtZSk7XG4gIHJldHVybiBhc3NpZ25lZEV4dGVuc2lvbnNcbiAgICAuZmlsdGVyKChlKSA9PiBjaGVja1N0YXR1c0Zvcihpc09ubGluZSwgZS5vbmxpbmUsIGUub2ZmbGluZSkpXG4gICAgLmZpbHRlcigoZSkgPT4gZS5mZWF0dXJlRmxhZyA9PT0gdW5kZWZpbmVkIHx8IGZlYXR1cmVGbGFncz8uaW5jbHVkZXMoZS5mZWF0dXJlRmxhZykpO1xufVxuXG5mdW5jdGlvbiBnZXRBc3NpZ25lZEV4dGVuc2lvbnNGcm9tU2xvdERhdGEoXG4gIHNsb3ROYW1lOiBzdHJpbmcsXG4gIGludGVybmFsU3RhdGU6IEV4dGVuc2lvbkludGVybmFsU3RvcmUsXG4gIGNvbmZpZzogRXh0ZW5zaW9uU2xvdENvbmZpZ09iamVjdCxcbiAgZXh0ZW5zaW9uQ29uZmlnU3RvcmVTdGF0ZTogRXh0ZW5zaW9uc0NvbmZpZ1N0b3JlLFxuKTogQXJyYXk8QXNzaWduZWRFeHRlbnNpb24+IHtcbiAgY29uc3QgYXR0YWNoZWRJZHMgPSBpbnRlcm5hbFN0YXRlLnNsb3RzW3Nsb3ROYW1lXS5hdHRhY2hlZElkcztcbiAgY29uc3QgYXNzaWduZWRJZHMgPSBjYWxjdWxhdGVBc3NpZ25lZElkcyhjb25maWcsIGF0dGFjaGVkSWRzKTtcbiAgY29uc3QgZXh0ZW5zaW9uczogQXJyYXk8QXNzaWduZWRFeHRlbnNpb24+ID0gW107XG4gIGxldCB1c2VyOiBMb2dnZWRJblVzZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgZm9yIChsZXQgaWQgb2YgYXNzaWduZWRJZHMpIHtcbiAgICBjb25zdCB7IGNvbmZpZzogZXh0ZW5zaW9uQ29uZmlnIH0gPSBnZXRFeHRlbnNpb25Db25maWdGcm9tU3RvcmUoZXh0ZW5zaW9uQ29uZmlnU3RvcmVTdGF0ZSwgc2xvdE5hbWUsIGlkKTtcbiAgICBjb25zdCBuYW1lID0gZ2V0RXh0ZW5zaW9uTmFtZUZyb21JZChpZCk7XG4gICAgY29uc3QgZXh0ZW5zaW9uID0gaW50ZXJuYWxTdGF0ZS5leHRlbnNpb25zW25hbWVdO1xuXG4gICAgLy8gaWYgdGhlIGV4dGVuc2lvbiBoYXMgbm90IGJlZW4gcmVnaXN0ZXJlZCB5ZXQsIGRvIG5vdCBpbmNsdWRlIGl0XG4gICAgaWYgKGV4dGVuc2lvbikge1xuICAgICAgY29uc3QgcmVxdWlyZWRQcml2aWxlZ2VzID0gZXh0ZW5zaW9uQ29uZmlnPy5bJ0Rpc3BsYXkgY29uZGl0aW9ucyddPy5wcml2aWxlZ2VzID8/IGV4dGVuc2lvbi5wcml2aWxlZ2VzID8/IFtdO1xuICAgICAgaWYgKFxuICAgICAgICByZXF1aXJlZFByaXZpbGVnZXMgJiZcbiAgICAgICAgKHR5cGVvZiByZXF1aXJlZFByaXZpbGVnZXMgPT09ICdzdHJpbmcnIHx8IChBcnJheS5pc0FycmF5KHJlcXVpcmVkUHJpdmlsZWdlcykgJiYgcmVxdWlyZWRQcml2aWxlZ2VzLmxlbmd0aCA+IDApKVxuICAgICAgKSB7XG4gICAgICAgIGlmIChpc1VuZGVmaW5lZCh1c2VyKSkge1xuICAgICAgICAgIHVzZXIgPSBnZXRTZXNzaW9uU3RvcmUoKS5nZXRTdGF0ZSgpLnNlc3Npb24/LnVzZXI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXVzZXIpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdXNlckhhc0FjY2VzcyhyZXF1aXJlZFByaXZpbGVnZXMsIHVzZXIpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZXh0ZW5zaW9ucy5wdXNoKHtcbiAgICAgICAgaWQsXG4gICAgICAgIG5hbWUsXG4gICAgICAgIG1vZHVsZU5hbWU6IGV4dGVuc2lvbi5tb2R1bGVOYW1lLFxuICAgICAgICBjb25maWc6IGV4dGVuc2lvbkNvbmZpZyxcbiAgICAgICAgZmVhdHVyZUZsYWc6IGV4dGVuc2lvbi5mZWF0dXJlRmxhZyxcbiAgICAgICAgbWV0YTogZXh0ZW5zaW9uLm1ldGEsXG4gICAgICAgIG9ubGluZTogZXh0ZW5zaW9uLm9ubGluZSA/PyB0cnVlLFxuICAgICAgICBvZmZsaW5lOiBleHRlbnNpb24ub2ZmbGluZSA/PyBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBleHRlbnNpb25zO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGxpc3Qgb2YgZXh0ZW5zaW9ucyBhc3NpZ25lZCB0byBhIGdpdmVuIHNsb3RcbiAqXG4gKiBAcGFyYW0gc2xvdE5hbWUgVGhlIHNsb3QgdG8gbG9hZCB0aGUgYXNzaWduZWQgZXh0ZW5zaW9ucyBmb3JcbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGV4dGVuc2lvbnMgYXNzaWduZWQgdG8gdGhlIG5hbWVkIHNsb3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFzc2lnbmVkRXh0ZW5zaW9ucyhzbG90TmFtZTogc3RyaW5nKTogQXJyYXk8QXNzaWduZWRFeHRlbnNpb24+IHtcbiAgY29uc3QgaW50ZXJuYWxTdGF0ZSA9IGV4dGVuc2lvbkludGVybmFsU3RvcmUuZ2V0U3RhdGUoKTtcbiAgY29uc3QgeyBjb25maWc6IHNsb3RDb25maWcgfSA9IGdldEV4dGVuc2lvblNsb3RDb25maWcoc2xvdE5hbWUpO1xuICBjb25zdCBleHRlbnNpb25TdG9yZVN0YXRlID0gZXh0ZW5zaW9uc0NvbmZpZ1N0b3JlLmdldFN0YXRlKCk7XG4gIHJldHVybiBnZXRBc3NpZ25lZEV4dGVuc2lvbnNGcm9tU2xvdERhdGEoc2xvdE5hbWUsIGludGVybmFsU3RhdGUsIHNsb3RDb25maWcsIGV4dGVuc2lvblN0b3JlU3RhdGUpO1xufVxuXG5mdW5jdGlvbiBjYWxjdWxhdGVBc3NpZ25lZElkcyhjb25maWc6IEV4dGVuc2lvblNsb3RDb25maWdPYmplY3QsIGF0dGFjaGVkSWRzOiBBcnJheTxzdHJpbmc+KSB7XG4gIGNvbnN0IGFkZGVkSWRzID0gY29uZmlnLmFkZCB8fCBbXTtcbiAgY29uc3QgcmVtb3ZlZElkcyA9IGNvbmZpZy5yZW1vdmUgfHwgW107XG4gIGNvbnN0IGlkT3JkZXIgPSBjb25maWcub3JkZXIgfHwgW107XG4gIGNvbnN0IHsgZXh0ZW5zaW9ucyB9ID0gZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5nZXRTdGF0ZSgpO1xuXG4gIHJldHVybiBbLi4uYXR0YWNoZWRJZHMsIC4uLmFkZGVkSWRzXVxuICAgIC5maWx0ZXIoKGlkKSA9PiAhcmVtb3ZlZElkcy5pbmNsdWRlcyhpZCkpXG4gICAgLnNvcnQoKGlkQSwgaWRCKSA9PiB7XG4gICAgICBjb25zdCBhaSA9IGdldE9yZGVyKGlkQSwgaWRPcmRlciwgZXh0ZW5zaW9uc1tnZXRFeHRlbnNpb25OYW1lRnJvbUlkKGlkQSldPy5vcmRlciwgYXR0YWNoZWRJZHMpO1xuICAgICAgY29uc3QgYmkgPSBnZXRPcmRlcihpZEIsIGlkT3JkZXIsIGV4dGVuc2lvbnNbZ2V0RXh0ZW5zaW9uTmFtZUZyb21JZChpZEIpXT8ub3JkZXIsIGF0dGFjaGVkSWRzKTtcblxuICAgICAgaWYgKGJpID09PSAtMSkge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9IGVsc2UgaWYgKGFpID09PSAtMSkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBhaSAtIGJpO1xuICAgICAgfVxuICAgIH0pO1xufVxuXG4vKipcbiAqIFVzZWQgYnkgYnkgZXh0ZW5zaW9uIHNsb3RzIGF0IG1vdW50IHRpbWUuXG4gKlxuICogQHBhcmFtIG1vZHVsZU5hbWUgVGhlIG5hbWUgb2YgdGhlIG1vZHVsZSB0aGF0IGNvbnRhaW5zIHRoZSBleHRlbnNpb24gc2xvdFxuICogQHBhcmFtIHNsb3ROYW1lIFRoZSBleHRlbnNpb24gc2xvdCBuYW1lIHRoYXQgaXMgYWN0dWFsbHkgdXNlZFxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCByZWdpc3RlckV4dGVuc2lvblNsb3Q6IChtb2R1bGVOYW1lOiBzdHJpbmcsIHNsb3ROYW1lOiBzdHJpbmcpID0+IHZvaWQgPSAobW9kdWxlTmFtZSwgc2xvdE5hbWUpID0+XG4gIGV4dGVuc2lvbkludGVybmFsU3RvcmUuc2V0U3RhdGUoKHN0YXRlKSA9PiB7XG4gICAgY29uc3QgZXhpc3RpbmdNb2R1bGVOYW1lID0gc3RhdGUuc2xvdHNbc2xvdE5hbWVdPy5tb2R1bGVOYW1lO1xuICAgIGlmIChleGlzdGluZ01vZHVsZU5hbWUgJiYgZXhpc3RpbmdNb2R1bGVOYW1lICE9IG1vZHVsZU5hbWUpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYEFuIGV4dGVuc2lvbiBzbG90IHdpdGggdGhlIG5hbWUgJyR7c2xvdE5hbWV9JyBhbHJlYWR5IGV4aXN0cy4gUmVmdXNpbmcgdG8gcmVnaXN0ZXIgdGhlIHNhbWUgc2xvdCBuYW1lIHR3aWNlIChpbiBcInJlZ2lzdGVyRXh0ZW5zaW9uU2xvdFwiKS4gVGhlIGV4aXN0aW5nIG9uZSBpcyBmcm9tIG1vZHVsZSAke2V4aXN0aW5nTW9kdWxlTmFtZX0uYCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICAgIGlmIChleGlzdGluZ01vZHVsZU5hbWUgJiYgZXhpc3RpbmdNb2R1bGVOYW1lID09IG1vZHVsZU5hbWUpIHtcbiAgICAgIC8vIFJlLXJlbmRlcmluZyBhbiBleGlzdGluZyBzbG90XG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICAgIGlmIChzdGF0ZS5zbG90c1tzbG90TmFtZV0pIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzbG90czoge1xuICAgICAgICAgIC4uLnN0YXRlLnNsb3RzLFxuICAgICAgICAgIFtzbG90TmFtZV06IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLnNsb3RzW3Nsb3ROYW1lXSxcbiAgICAgICAgICAgIG1vZHVsZU5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHNsb3QgPSBjcmVhdGVOZXdFeHRlbnNpb25TbG90SW5mbyhzbG90TmFtZSwgbW9kdWxlTmFtZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgc2xvdHM6IHtcbiAgICAgICAgLi4uc3RhdGUuc2xvdHMsXG4gICAgICAgIFtzbG90TmFtZV06IHNsb3QsXG4gICAgICB9LFxuICAgIH07XG4gIH0pO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICogSnVzdCBmb3IgdGVzdGluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlc2V0OiAoKSA9PiB2b2lkID0gKCkgPT5cbiAgZXh0ZW5zaW9uU3RvcmUuc2V0U3RhdGUoKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBzbG90czoge30sXG4gICAgICBleHRlbnNpb25zOiB7fSxcbiAgICB9O1xuICB9KTtcbiJdLCJuYW1lcyI6WyJnZXRTZXNzaW9uU3RvcmUiLCJ1c2VySGFzQWNjZXNzIiwiZ2V0RXh0ZW5zaW9uQ29uZmlnRnJvbVN0b3JlIiwiZ2V0RXh0ZW5zaW9uc0NvbmZpZ1N0b3JlIiwiZ2V0RXh0ZW5zaW9uU2xvdENvbmZpZyIsImdldEV4dGVuc2lvblNsb3RDb25maWdGcm9tU3RvcmUiLCJnZXRFeHRlbnNpb25TbG90c0NvbmZpZ1N0b3JlIiwiZmVhdHVyZUZsYWdzU3RvcmUiLCJpc0VxdWFsIiwiaXNVbmRlZmluZWQiLCJnZXRFeHRlbnNpb25JbnRlcm5hbFN0b3JlIiwiY2hlY2tTdGF0dXNGb3IiLCJnZXRFeHRlbnNpb25TdG9yZSIsInVwZGF0ZUludGVybmFsRXh0ZW5zaW9uU3RvcmUiLCJleHRlbnNpb25JbnRlcm5hbFN0b3JlIiwiZXh0ZW5zaW9uU3RvcmUiLCJzbG90c0NvbmZpZ1N0b3JlIiwiZXh0ZW5zaW9uc0NvbmZpZ1N0b3JlIiwidXBkYXRlRXh0ZW5zaW9uT3V0cHV0U3RvcmUiLCJpbnRlcm5hbFN0YXRlIiwiZXh0ZW5zaW9uU2xvdENvbmZpZ3MiLCJzbG90cyIsIk9iamVjdCIsImVudHJpZXMiLCJzbG90TmFtZSIsInNsb3QiLCJjb25maWciLCJuYW1lIiwiYXNzaWduZWRFeHRlbnNpb25zIiwiZ2V0QXNzaWduZWRFeHRlbnNpb25zRnJvbVNsb3REYXRhIiwibW9kdWxlTmFtZSIsImdldFN0YXRlIiwic2V0U3RhdGUiLCJzdWJzY3JpYmUiLCJpbnRlcm5hbFN0b3JlIiwic2xvdENvbmZpZ3MiLCJleHRlbnNpb25Db25maWdzIiwiY3JlYXRlTmV3RXh0ZW5zaW9uU2xvdEluZm8iLCJhdHRhY2hlZElkcyIsImdldEV4dGVuc2lvbk5hbWVGcm9tSWQiLCJleHRlbnNpb25JZCIsInNwbGl0IiwiZXh0ZW5zaW9uTmFtZSIsImdldEV4dGVuc2lvblJlZ2lzdHJhdGlvbkZyb20iLCJzdGF0ZSIsImV4dGVuc2lvbnMiLCJnZXRFeHRlbnNpb25SZWdpc3RyYXRpb24iLCJyZWdpc3RlckV4dGVuc2lvbiIsImV4dGVuc2lvblJlZ2lzdHJhdGlvbiIsImluc3RhbmNlcyIsImF0dGFjaCIsImV4aXN0aW5nU2xvdCIsImRldGFjaCIsImV4dGVuc2lvblNsb3ROYW1lIiwiaW5jbHVkZXMiLCJmaWx0ZXIiLCJpZCIsImRldGFjaEFsbCIsImdldE9yZGVyIiwiY29uZmlndXJlZE9yZGVyIiwicmVnaXN0ZXJlZE9yZGVySW5kZXgiLCJhdHRhY2hlZE9yZGVyIiwiY29uZmlndXJlZEluZGV4IiwiaW5kZXhPZiIsInVuZGVmaW5lZCIsImFzc2lnbmVkSW5kZXgiLCJnZXRDb25uZWN0ZWRFeHRlbnNpb25zIiwib25saW5lIiwiZW5hYmxlZEZlYXR1cmVGbGFncyIsImlzT25saW5lIiwibmF2aWdhdG9yIiwib25MaW5lIiwiZmVhdHVyZUZsYWdzIiwiZmxhZ3MiLCJlbmFibGVkIiwibWFwIiwiZSIsIm9mZmxpbmUiLCJmZWF0dXJlRmxhZyIsImV4dGVuc2lvbkNvbmZpZ1N0b3JlU3RhdGUiLCJhc3NpZ25lZElkcyIsImNhbGN1bGF0ZUFzc2lnbmVkSWRzIiwidXNlciIsImV4dGVuc2lvbkNvbmZpZyIsImV4dGVuc2lvbiIsInJlcXVpcmVkUHJpdmlsZWdlcyIsInByaXZpbGVnZXMiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJzZXNzaW9uIiwicHVzaCIsIm1ldGEiLCJnZXRBc3NpZ25lZEV4dGVuc2lvbnMiLCJzbG90Q29uZmlnIiwiZXh0ZW5zaW9uU3RvcmVTdGF0ZSIsImFkZGVkSWRzIiwiYWRkIiwicmVtb3ZlZElkcyIsInJlbW92ZSIsImlkT3JkZXIiLCJvcmRlciIsInNvcnQiLCJpZEEiLCJpZEIiLCJhaSIsImJpIiwicmVnaXN0ZXJFeHRlbnNpb25TbG90IiwiZXhpc3RpbmdNb2R1bGVOYW1lIiwiY29uc29sZSIsIndhcm4iLCJyZXNldCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-extensions/src/extensions.ts\n");
|
|
6713
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ attach: () => (/* binding */ attach),\n/* harmony export */ detach: () => (/* binding */ detach),\n/* harmony export */ detachAll: () => (/* binding */ detachAll),\n/* harmony export */ getAssignedExtensions: () => (/* binding */ getAssignedExtensions),\n/* harmony export */ getConnectedExtensions: () => (/* binding */ getConnectedExtensions),\n/* harmony export */ getExtensionNameFromId: () => (/* binding */ getExtensionNameFromId),\n/* harmony export */ getExtensionRegistration: () => (/* binding */ getExtensionRegistration),\n/* harmony export */ getExtensionRegistrationFrom: () => (/* binding */ getExtensionRegistrationFrom),\n/* harmony export */ registerExtension: () => (/* binding */ registerExtension),\n/* harmony export */ registerExtensionSlot: () => (/* binding */ registerExtensionSlot),\n/* harmony export */ reset: () => (/* binding */ reset)\n/* harmony export */ });\n/* harmony import */ var _openmrs_esm_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @openmrs/esm-api */ \"../../framework/esm-api/src/index.ts\");\n/* harmony import */ var _openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @openmrs/esm-config */ \"../../framework/esm-config/src/index.ts\");\n/* harmony import */ var _openmrs_esm_feature_flags__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @openmrs/esm-feature-flags */ \"../../framework/esm-feature-flags/src/index.ts\");\n/* harmony import */ var lodash_es_isEqual__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash-es/isEqual */ \"../../../node_modules/lodash-es/isEqual.js\");\n/* harmony import */ var lodash_es_isUndefined__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash-es/isUndefined */ \"../../../node_modules/lodash-es/isUndefined.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! . */ \"../../framework/esm-extensions/src/index.ts\");\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./store */ \"../../framework/esm-extensions/src/store.ts\");\n/** @module @category Extension */ /*\n * We have the following extension modes:\n *\n * - attached (set via code in form of: attach, detach, ...)\n * - configured (set via configuration in form of: added, removed, ...)\n * - assigned (computed from attached and configured)\n * - connected (computed from assigned using connectivity and online / offline)\n */ function _array_like_to_array(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];\n return arr2;\n}\nfunction _array_with_holes(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _array_without_holes(arr) {\n if (Array.isArray(arr)) return _array_like_to_array(arr);\n}\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _iterable_to_array(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _iterable_to_array_limit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally{\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally{\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _non_iterable_rest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _non_iterable_spread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _sliced_to_array(arr, i) {\n return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();\n}\nfunction _to_consumable_array(arr) {\n return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();\n}\nfunction _unsupported_iterable_to_array(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _array_like_to_array(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);\n}\n\n\n\n\n\n\n\nvar extensionInternalStore = (0,___WEBPACK_IMPORTED_MODULE_3__.getExtensionInternalStore)();\nvar extensionStore = (0,_store__WEBPACK_IMPORTED_MODULE_4__.getExtensionStore)();\nvar slotsConfigStore = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionSlotsConfigStore)();\nvar extensionsConfigStore = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionsConfigStore)();\n// Keep the output store updated\nfunction updateExtensionOutputStore(internalState, extensionSlotConfigs, extensionsConfigStore) {\n var slots = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = Object.entries(internalState.slots)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var _step_value = _sliced_to_array(_step.value, 2), slotName = _step_value[0], slot = _step_value[1];\n var config = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionSlotConfigFromStore)(extensionSlotConfigs, slot.name).config;\n var assignedExtensions = getAssignedExtensionsFromSlotData(slotName, internalState, config, extensionsConfigStore);\n slots[slotName] = {\n moduleName: slot.moduleName,\n assignedExtensions: assignedExtensions\n };\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (!(0,lodash_es_isEqual__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(extensionStore.getState().slots, slots)) {\n extensionStore.setState({\n slots: slots\n });\n }\n}\nextensionInternalStore.subscribe(function(internalStore) {\n updateExtensionOutputStore(internalStore, slotsConfigStore.getState(), extensionsConfigStore.getState());\n});\nslotsConfigStore.subscribe(function(slotConfigs) {\n updateExtensionOutputStore(extensionInternalStore.getState(), slotConfigs, extensionsConfigStore.getState());\n});\nextensionsConfigStore.subscribe(function(extensionConfigs) {\n updateExtensionOutputStore(extensionInternalStore.getState(), slotsConfigStore.getState(), extensionConfigs);\n});\nfunction createNewExtensionSlotInfo(slotName, moduleName) {\n return {\n moduleName: moduleName,\n name: slotName,\n attachedIds: [],\n config: null\n };\n}\n/**\n * Given an extension ID, which is a string uniquely identifying\n * an instance of an extension within an extension slot, this\n * returns the extension name.\n *\n * @example\n * ```js\n * getExtensionNameFromId(\"foo#bar\")\n * --> \"foo\"\n * getExtensionNameFromId(\"baz\")\n * --> \"baz\"\n * ```\n */ function getExtensionNameFromId(extensionId) {\n var _extensionId_split = _sliced_to_array(extensionId.split(\"#\"), 1), extensionName = _extensionId_split[0];\n return extensionName;\n}\nfunction getExtensionRegistrationFrom(state, extensionId) {\n var name = getExtensionNameFromId(extensionId);\n return state.extensions[name];\n}\nfunction getExtensionRegistration(extensionId) {\n var state = extensionInternalStore.getState();\n return getExtensionRegistrationFrom(state, extensionId);\n}\n/**\n * Extensions must be registered in order to be rendered.\n * This is handled by the app shell, when extensions are provided\n * via the `setupOpenMRS` return object.\n * @internal\n */ var registerExtension = function(extensionRegistration) {\n return extensionInternalStore.setState(function(state) {\n state.extensions[extensionRegistration.name] = _object_spread_props(_object_spread({}, extensionRegistration), {\n instances: []\n });\n return state;\n });\n};\n/**\n * Attach an extension to an extension slot.\n *\n * This will cause the extension to be rendered into the specified\n * extension slot, unless it is removed by configuration. Using\n * `attach` is an alternative to specifying the `slot` or `slots`\n * in the extension declaration.\n *\n * It is particularly useful when creating a slot into which\n * you want to render an existing extension. This enables you\n * to do so without modifying the extension's declaration, which\n * may be impractical or inappropriate, for example if you are\n * writing a module for a specific implementation.\n *\n * @param slotName a name uniquely identifying the slot\n * @param extensionId an extension name, with an optional #-suffix\n * to distinguish it from other instances of the same extension\n * attached to the same slot.\n */ function attach(slotName, extensionId) {\n (0,_store__WEBPACK_IMPORTED_MODULE_4__.updateInternalExtensionStore)(function(state) {\n var existingSlot = state.slots[slotName];\n if (!existingSlot) {\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, slotName, _object_spread_props(_object_spread({}, createNewExtensionSlotInfo(slotName)), {\n attachedIds: [\n extensionId\n ]\n })))\n });\n } else {\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, slotName, _object_spread_props(_object_spread({}, existingSlot), {\n attachedIds: _to_consumable_array(existingSlot.attachedIds).concat([\n extensionId\n ])\n })))\n });\n }\n });\n}\n/**\n * @deprecated Avoid using this. Extension attachments should be considered declarative.\n */ function detach(extensionSlotName, extensionId) {\n (0,_store__WEBPACK_IMPORTED_MODULE_4__.updateInternalExtensionStore)(function(state) {\n var existingSlot = state.slots[extensionSlotName];\n if (existingSlot && existingSlot.attachedIds.includes(extensionId)) {\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, extensionSlotName, _object_spread_props(_object_spread({}, existingSlot), {\n attachedIds: existingSlot.attachedIds.filter(function(id) {\n return id !== extensionId;\n })\n })))\n });\n } else {\n return state;\n }\n });\n}\n/**\n * @deprecated Avoid using this. Extension attachments should be considered declarative.\n */ function detachAll(extensionSlotName) {\n (0,_store__WEBPACK_IMPORTED_MODULE_4__.updateInternalExtensionStore)(function(state) {\n var existingSlot = state.slots[extensionSlotName];\n if (existingSlot) {\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, extensionSlotName, _object_spread_props(_object_spread({}, existingSlot), {\n attachedIds: []\n })))\n });\n } else {\n return state;\n }\n });\n}\n/**\n * Get an order index for the extension. This will\n * come from either its configured order, its registered order\n * parameter, or the order in which it happened to be attached.\n */ function getOrder(extensionId, configuredOrder, registeredOrderIndex, attachedOrder) {\n var configuredIndex = configuredOrder.indexOf(extensionId);\n if (configuredIndex !== -1) {\n return configuredIndex;\n } else if (registeredOrderIndex !== undefined) {\n // extensions that don't have a configured order should appear after those that do\n return 1000 + registeredOrderIndex;\n } else {\n var assignedIndex = attachedOrder.indexOf(extensionId);\n if (assignedIndex !== -1) {\n // extensions that have neither a configured nor registered order should appear\n // after all others\n return 2000 + assignedIndex;\n } else {\n return -1;\n }\n }\n}\n/**\n * Filters a list of extensions according to whether they support the\n * current connectivity status.\n *\n * @param assignedExtensions The list of extensions to filter.\n * @param online Whether the app is currently online. If `null`, uses `navigator.onLine`.\n * @param enabledFeatureFlags The names of all enabled feature flags. If `null`, looks\n * up the feature flags using the feature flags API.\n * @returns A list of extensions that should be rendered\n */ function getConnectedExtensions(assignedExtensions) {\n var online = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, enabledFeatureFlags = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;\n var isOnline = online !== null && online !== void 0 ? online : navigator.onLine;\n var featureFlags = enabledFeatureFlags !== null && enabledFeatureFlags !== void 0 ? enabledFeatureFlags : Object.entries(_openmrs_esm_feature_flags__WEBPACK_IMPORTED_MODULE_2__.featureFlagsStore.getState().flags).filter(function(param) {\n var _param = _sliced_to_array(param, 2), enabled = _param[1].enabled;\n return enabled;\n }).map(function(param) {\n var _param = _sliced_to_array(param, 1), name = _param[0];\n return name;\n });\n return assignedExtensions.filter(function(e) {\n return (0,___WEBPACK_IMPORTED_MODULE_3__.checkStatusFor)(isOnline, e.online, e.offline);\n }).filter(function(e) {\n return e.featureFlag === undefined || (featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.includes(e.featureFlag));\n });\n}\nfunction getAssignedExtensionsFromSlotData(slotName, internalState, config, extensionConfigStoreState) {\n var attachedIds = internalState.slots[slotName].attachedIds;\n var assignedIds = calculateAssignedIds(config, attachedIds);\n var extensions = [];\n var user = undefined;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = assignedIds[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var id = _step.value;\n var _getExtensionConfigFromStore = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionConfigFromStore)(extensionConfigStoreState, slotName, id), extensionConfig = _getExtensionConfigFromStore.config;\n var name = getExtensionNameFromId(id);\n var extension = internalState.extensions[name];\n // if the extension has not been registered yet, do not include it\n if (extension) {\n var _extensionConfig_Displayconditions;\n var _extensionConfig_Displayconditions_privileges, _ref;\n var requiredPrivileges = (_ref = (_extensionConfig_Displayconditions_privileges = extensionConfig === null || extensionConfig === void 0 ? void 0 : (_extensionConfig_Displayconditions = extensionConfig[\"Display conditions\"]) === null || _extensionConfig_Displayconditions === void 0 ? void 0 : _extensionConfig_Displayconditions.privileges) !== null && _extensionConfig_Displayconditions_privileges !== void 0 ? _extensionConfig_Displayconditions_privileges : extension.privileges) !== null && _ref !== void 0 ? _ref : [];\n if (requiredPrivileges && (typeof requiredPrivileges === \"string\" || Array.isArray(requiredPrivileges) && requiredPrivileges.length > 0)) {\n if ((0,lodash_es_isUndefined__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(user)) {\n var _getSessionStore_getState_session;\n user = (_getSessionStore_getState_session = (0,_openmrs_esm_api__WEBPACK_IMPORTED_MODULE_0__.getSessionStore)().getState().session) === null || _getSessionStore_getState_session === void 0 ? void 0 : _getSessionStore_getState_session.user;\n }\n if (!user) {\n continue;\n }\n if (!(0,_openmrs_esm_api__WEBPACK_IMPORTED_MODULE_0__.userHasAccess)(requiredPrivileges, user)) {\n continue;\n }\n }\n var _extension_online, _extension_offline;\n extensions.push({\n id: id,\n name: name,\n moduleName: extension.moduleName,\n config: extensionConfig,\n featureFlag: extension.featureFlag,\n meta: extension.meta,\n online: (_extension_online = extension.online) !== null && _extension_online !== void 0 ? _extension_online : true,\n offline: (_extension_offline = extension.offline) !== null && _extension_offline !== void 0 ? _extension_offline : false\n });\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return extensions;\n}\n/**\n * Gets the list of extensions assigned to a given slot\n *\n * @param slotName The slot to load the assigned extensions for\n * @returns An array of extensions assigned to the named slot\n */ function getAssignedExtensions(slotName) {\n var internalState = extensionInternalStore.getState();\n var _getExtensionSlotConfig = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionSlotConfig)(slotName), slotConfig = _getExtensionSlotConfig.config;\n var extensionStoreState = extensionsConfigStore.getState();\n return getAssignedExtensionsFromSlotData(slotName, internalState, slotConfig, extensionStoreState);\n}\nfunction calculateAssignedIds(config, attachedIds) {\n var addedIds = config.add || [];\n var removedIds = config.remove || [];\n var idOrder = config.order || [];\n var extensions = extensionInternalStore.getState().extensions;\n return _to_consumable_array(attachedIds).concat(_to_consumable_array(addedIds)).filter(function(id) {\n return !removedIds.includes(id);\n }).sort(function(idA, idB) {\n var _extensions_getExtensionNameFromId, _extensions_getExtensionNameFromId1;\n var ai = getOrder(idA, idOrder, (_extensions_getExtensionNameFromId = extensions[getExtensionNameFromId(idA)]) === null || _extensions_getExtensionNameFromId === void 0 ? void 0 : _extensions_getExtensionNameFromId.order, attachedIds);\n var bi = getOrder(idB, idOrder, (_extensions_getExtensionNameFromId1 = extensions[getExtensionNameFromId(idB)]) === null || _extensions_getExtensionNameFromId1 === void 0 ? void 0 : _extensions_getExtensionNameFromId1.order, attachedIds);\n if (bi === -1) {\n return -1;\n } else if (ai === -1) {\n return 1;\n } else {\n return ai - bi;\n }\n });\n}\n/**\n * Used by by extension slots at mount time.\n *\n * @param moduleName The name of the module that contains the extension slot\n * @param slotName The extension slot name that is actually used\n * @internal\n */ var registerExtensionSlot = function(moduleName, slotName) {\n return extensionInternalStore.setState(function(state) {\n var _state_slots_slotName;\n var existingModuleName = (_state_slots_slotName = state.slots[slotName]) === null || _state_slots_slotName === void 0 ? void 0 : _state_slots_slotName.moduleName;\n if (existingModuleName && existingModuleName != moduleName) {\n console.warn(\"An extension slot with the name '\".concat(slotName, '\\' already exists. Refusing to register the same slot name twice (in \"registerExtensionSlot\"). The existing one is from module ').concat(existingModuleName, \".\"));\n return state;\n }\n if (existingModuleName && existingModuleName == moduleName) {\n // Re-rendering an existing slot\n return state;\n }\n if (state.slots[slotName]) {\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, slotName, _object_spread_props(_object_spread({}, state.slots[slotName]), {\n moduleName: moduleName\n })))\n });\n }\n var slot = createNewExtensionSlotInfo(slotName, moduleName);\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, slotName, slot))\n });\n });\n};\n/**\n * @internal\n * Just for testing.\n */ var reset = function() {\n return extensionStore.setState(function() {\n return {\n slots: {},\n extensions: {}\n };\n });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1leHRlbnNpb25zL3NyYy9leHRlbnNpb25zLnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdDQUFnQyxHQUNoQzs7Ozs7OztDQU9DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdpRTtBQVFyQztBQUNrQztBQUN2QjtBQUNRO0FBRWM7QUFFWTtBQUUxRSxJQUFNYyx5QkFBeUJKLDREQUF5QkE7QUFDeEQsSUFBTUssaUJBQWlCSCx5REFBaUJBO0FBQ3hDLElBQU1JLG1CQUFtQlYsaUZBQTRCQTtBQUNyRCxJQUFNVyx3QkFBd0JkLDZFQUF3QkE7QUFFdEQsZ0NBQWdDO0FBQ2hDLFNBQVNlLDJCQUNQQyxhQUFxQyxFQUNyQ0Msb0JBQStDLEVBQy9DSCxxQkFBNEMsRUFDNUM7SUFDQSxJQUFNSSxRQUE0QyxDQUFDO1FBQzlDOztRQUFMLFFBQUssWUFBd0JDLE9BQU9DLE9BQU8sQ0FBQ0osY0FBY0UsS0FBSyxzQkFBMUQsd0dBQTZEO1lBQTdELG9EQUFLRywyQkFBVUM7WUFDbEIsSUFBTSxTQUFhcEIsb0ZBQStCQSxDQUFDZSxzQkFBc0JLLEtBQUtFLElBQUksRUFBMUVEO1lBQ1IsSUFBTUUscUJBQXFCQyxrQ0FDekJMLFVBQ0FMLGVBQ0FPLFFBQ0FUO1lBRUZJLEtBQUssQ0FBQ0csU0FBUyxHQUFHO2dCQUFFTSxZQUFZTCxLQUFLSyxVQUFVO2dCQUFFRixvQkFBQUE7WUFBbUI7UUFDdEU7O1FBVEs7UUFBQTs7O2lCQUFBO2dCQUFBOzs7Z0JBQUE7c0JBQUE7Ozs7SUFVTCxJQUFJLENBQUNwQiw2REFBT0EsQ0FBQ08sZUFBZWdCLFFBQVEsR0FBR1YsS0FBSyxFQUFFQSxRQUFRO1FBQ3BETixlQUFlaUIsUUFBUSxDQUFDO1lBQUVYLE9BQUFBO1FBQU07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LE9BQVU7WUFDZEE7UUFBM0IsSUFBTWdFLHFCQUFxQmhFLENBQUFBLHdCQUFBQSxNQUFNdkIsS0FBSyxDQUFDRyxTQUFTLGNBQXJCb0IsbUNBQUFBLEtBQUFBLElBQUFBLHNCQUF1QmQsVUFBVTtRQUM1RCxJQUFJOEUsc0JBQXNCQSxzQkFBc0I5RSxZQUFZO1lBQzFEK0UsUUFBUUMsSUFBSSxDQUNWLG9DQUE2S0YsT0FBeklwRixVQUFTLG1JQUFtSixPQUFuQm9GLG9CQUFtQjtZQUVsTSxPQUFPaEU7UUFDVCxDQUFDO1FBQ0QsSUFBSWdFLHNCQUFzQkEsc0JBQXNCOUUsWUFBWTtZQUMxRCxnQ0FBZ0M7WUFDaEMsT0FBT2M7UUFDVCxDQUFDO1FBQ0QsSUFBSUEsTUFBTXZCLEtBQUssQ0FBQ0csU0FBUyxFQUFFO1lBQ3pCLE9BQU8sd0NBQ0ZvQjtnQkFDSHZCLE9BQU8sd0NBQ0Z1QixNQUFNdkIsS0FBSyxHQUNkLHFCQUFDRyxVQUFXLHdDQUNQb0IsTUFBTXZCLEtBQUssQ0FBQ0csU0FBUztvQkFDeEJNLFlBQUFBOzs7UUFJUixDQUFDO1FBQ0QsSUFBTUwsT0FBT1ksMkJBQTJCYixVQUFVTTtRQUNsRCxPQUFPLHdDQUNGYztZQUNIdkIsT0FBTyx3Q0FDRnVCLE1BQU12QixLQUFLLEdBQ2QscUJBQUNHLFVBQVdDOztJQUdsQjtFQUFHO0FBRUw7OztDQUdDLEdBQ00sSUFBTXNGLFFBQW9CO1dBQy9CaEcsZUFBZWlCLFFBQVEsQ0FBQyxXQUFNO1FBQzVCLE9BQU87WUFDTFgsT0FBTyxDQUFDO1lBQ1J3QixZQUFZLENBQUM7UUFDZjtJQUNGO0VBQUciLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tZXh0ZW5zaW9ucy9zcmMvZXh0ZW5zaW9ucy50cz83NTlhIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbW9kdWxlIEBjYXRlZ29yeSBFeHRlbnNpb24gKi9cbi8qXG4gKiBXZSBoYXZlIHRoZSBmb2xsb3dpbmcgZXh0ZW5zaW9uIG1vZGVzOlxuICpcbiAqIC0gYXR0YWNoZWQgKHNldCB2aWEgY29kZSBpbiBmb3JtIG9mOiBhdHRhY2gsIGRldGFjaCwgLi4uKVxuICogLSBjb25maWd1cmVkIChzZXQgdmlhIGNvbmZpZ3VyYXRpb24gaW4gZm9ybSBvZjogYWRkZWQsIHJlbW92ZWQsIC4uLilcbiAqIC0gYXNzaWduZWQgKGNvbXB1dGVkIGZyb20gYXR0YWNoZWQgYW5kIGNvbmZpZ3VyZWQpXG4gKiAtIGNvbm5lY3RlZCAoY29tcHV0ZWQgZnJvbSBhc3NpZ25lZCB1c2luZyBjb25uZWN0aXZpdHkgYW5kIG9ubGluZSAvIG9mZmxpbmUpXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBMb2dnZWRJblVzZXIgfSBmcm9tICdAb3Blbm1ycy9lc20tYXBpJztcbmltcG9ydCB7IGdldFNlc3Npb25TdG9yZSwgdXNlckhhc0FjY2VzcyB9IGZyb20gJ0BvcGVubXJzL2VzbS1hcGknO1xuaW1wb3J0IHR5cGUgeyBFeHRlbnNpb25zQ29uZmlnU3RvcmUsIEV4dGVuc2lvblNsb3RDb25maWdPYmplY3QsIEV4dGVuc2lvblNsb3RzQ29uZmlnU3RvcmUgfSBmcm9tICdAb3Blbm1ycy9lc20tY29uZmlnJztcbmltcG9ydCB7XG4gIGdldEV4dGVuc2lvbkNvbmZpZ0Zyb21TdG9yZSxcbiAgZ2V0RXh0ZW5zaW9uc0NvbmZpZ1N0b3JlLFxuICBnZXRFeHRlbnNpb25TbG90Q29uZmlnLFxuICBnZXRFeHRlbnNpb25TbG90Q29uZmlnRnJvbVN0b3JlLFxuICBnZXRFeHRlbnNpb25TbG90c0NvbmZpZ1N0b3JlLFxufSBmcm9tICdAb3Blbm1ycy9lc20tY29uZmlnJztcbmltcG9ydCB7IGZlYXR1cmVGbGFnc1N0b3JlIH0gZnJvbSAnQG9wZW5tcnMvZXNtLWZlYXR1cmUtZmxhZ3MnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoLWVzL2lzRXF1YWwnO1xuaW1wb3J0IGlzVW5kZWZpbmVkIGZyb20gJ2xvZGFzaC1lcy9pc1VuZGVmaW5lZCc7XG5pbXBvcnQgdHlwZSB7IEV4dGVuc2lvblNsb3RTdGF0ZSwgQXNzaWduZWRFeHRlbnNpb24sIENvbm5lY3RlZEV4dGVuc2lvbiB9IGZyb20gJy4nO1xuaW1wb3J0IHsgZ2V0RXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSwgY2hlY2tTdGF0dXNGb3IgfSBmcm9tICcuJztcbmltcG9ydCB0eXBlIHsgRXh0ZW5zaW9uUmVnaXN0cmF0aW9uLCBFeHRlbnNpb25TbG90SW5mbywgRXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSB9IGZyb20gJy4vc3RvcmUnO1xuaW1wb3J0IHsgZ2V0RXh0ZW5zaW9uU3RvcmUsIHVwZGF0ZUludGVybmFsRXh0ZW5zaW9uU3RvcmUgfSBmcm9tICcuL3N0b3JlJztcblxuY29uc3QgZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSA9IGdldEV4dGVuc2lvbkludGVybmFsU3RvcmUoKTtcbmNvbnN0IGV4dGVuc2lvblN0b3JlID0gZ2V0RXh0ZW5zaW9uU3RvcmUoKTtcbmNvbnN0IHNsb3RzQ29uZmlnU3RvcmUgPSBnZXRFeHRlbnNpb25TbG90c0NvbmZpZ1N0b3JlKCk7XG5jb25zdCBleHRlbnNpb25zQ29uZmlnU3RvcmUgPSBnZXRFeHRlbnNpb25zQ29uZmlnU3RvcmUoKTtcblxuLy8gS2VlcCB0aGUgb3V0cHV0IHN0b3JlIHVwZGF0ZWRcbmZ1bmN0aW9uIHVwZGF0ZUV4dGVuc2lvbk91dHB1dFN0b3JlKFxuICBpbnRlcm5hbFN0YXRlOiBFeHRlbnNpb25JbnRlcm5hbFN0b3JlLFxuICBleHRlbnNpb25TbG90Q29uZmlnczogRXh0ZW5zaW9uU2xvdHNDb25maWdTdG9yZSxcbiAgZXh0ZW5zaW9uc0NvbmZpZ1N0b3JlOiBFeHRlbnNpb25zQ29uZmlnU3RvcmUsXG4pIHtcbiAgY29uc3Qgc2xvdHM6IFJlY29yZDxzdHJpbmcsIEV4dGVuc2lvblNsb3RTdGF0ZT4gPSB7fTtcbiAgZm9yIChsZXQgW3Nsb3ROYW1lLCBzbG90XSBvZiBPYmplY3QuZW50cmllcyhpbnRlcm5hbFN0YXRlLnNsb3RzKSkge1xuICAgIGNvbnN0IHsgY29uZmlnIH0gPSBnZXRFeHRlbnNpb25TbG90Q29uZmlnRnJvbVN0b3JlKGV4dGVuc2lvblNsb3RDb25maWdzLCBzbG90Lm5hbWUpO1xuICAgIGNvbnN0IGFzc2lnbmVkRXh0ZW5zaW9ucyA9IGdldEFzc2lnbmVkRXh0ZW5zaW9uc0Zyb21TbG90RGF0YShcbiAgICAgIHNsb3ROYW1lLFxuICAgICAgaW50ZXJuYWxTdGF0ZSxcbiAgICAgIGNvbmZpZyxcbiAgICAgIGV4dGVuc2lvbnNDb25maWdTdG9yZSxcbiAgICApO1xuICAgIHNsb3RzW3Nsb3ROYW1lXSA9IHsgbW9kdWxlTmFtZTogc2xvdC5tb2R1bGVOYW1lLCBhc3NpZ25lZEV4dGVuc2lvbnMgfTtcbiAgfVxuICBpZiAoIWlzRXF1YWwoZXh0ZW5zaW9uU3RvcmUuZ2V0U3RhdGUoKS5zbG90cywgc2xvdHMpKSB7XG4gICAgZXh0ZW5zaW9uU3RvcmUuc2V0U3RhdGUoeyBzbG90cyB9KTtcbiAgfVxufVxuXG5leHRlbnNpb25JbnRlcm5hbFN0b3JlLnN1YnNjcmliZSgoaW50ZXJuYWxTdG9yZSkgPT4ge1xuICB1cGRhdGVFeHRlbnNpb25PdXRwdXRTdG9yZShpbnRlcm5hbFN0b3JlLCBzbG90c0NvbmZpZ1N0b3JlLmdldFN0YXRlKCksIGV4dGVuc2lvbnNDb25maWdTdG9yZS5nZXRTdGF0ZSgpKTtcbn0pO1xuXG5zbG90c0NvbmZpZ1N0b3JlLnN1YnNjcmliZSgoc2xvdENvbmZpZ3MpID0+IHtcbiAgdXBkYXRlRXh0ZW5zaW9uT3V0cHV0U3RvcmUoZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5nZXRTdGF0ZSgpLCBzbG90Q29uZmlncywgZXh0ZW5zaW9uc0NvbmZpZ1N0b3JlLmdldFN0YXRlKCkpO1xufSk7XG5cbmV4dGVuc2lvbnNDb25maWdTdG9yZS5zdWJzY3JpYmUoKGV4dGVuc2lvbkNvbmZpZ3MpID0+IHtcbiAgdXBkYXRlRXh0ZW5zaW9uT3V0cHV0U3RvcmUoZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5nZXRTdGF0ZSgpLCBzbG90c0NvbmZpZ1N0b3JlLmdldFN0YXRlKCksIGV4dGVuc2lvbkNvbmZpZ3MpO1xufSk7XG5cbmZ1bmN0aW9uIGNyZWF0ZU5ld0V4dGVuc2lvblNsb3RJbmZvKHNsb3ROYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU/OiBzdHJpbmcpOiBFeHRlbnNpb25TbG90SW5mbyB7XG4gIHJldHVybiB7XG4gICAgbW9kdWxlTmFtZSxcbiAgICBuYW1lOiBzbG90TmFtZSxcbiAgICBhdHRhY2hlZElkczogW10sXG4gICAgY29uZmlnOiBudWxsLFxuICB9O1xufVxuXG4vKipcbiAqIEdpdmVuIGFuIGV4dGVuc2lvbiBJRCwgd2hpY2ggaXMgYSBzdHJpbmcgdW5pcXVlbHkgaWRlbnRpZnlpbmdcbiAqIGFuIGluc3RhbmNlIG9mIGFuIGV4dGVuc2lvbiB3aXRoaW4gYW4gZXh0ZW5zaW9uIHNsb3QsIHRoaXNcbiAqIHJldHVybnMgdGhlIGV4dGVuc2lvbiBuYW1lLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBqc1xuICogZ2V0RXh0ZW5zaW9uTmFtZUZyb21JZChcImZvbyNiYXJcIilcbiAqICAtLT4gXCJmb29cIlxuICogZ2V0RXh0ZW5zaW9uTmFtZUZyb21JZChcImJhelwiKVxuICogIC0tPiBcImJhelwiXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEV4dGVuc2lvbk5hbWVGcm9tSWQoZXh0ZW5zaW9uSWQ6IHN0cmluZykge1xuICBjb25zdCBbZXh0ZW5zaW9uTmFtZV0gPSBleHRlbnNpb25JZC5zcGxpdCgnIycpO1xuICByZXR1cm4gZXh0ZW5zaW9uTmFtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV4dGVuc2lvblJlZ2lzdHJhdGlvbkZyb20oXG4gIHN0YXRlOiBFeHRlbnNpb25JbnRlcm5hbFN0b3JlLFxuICBleHRlbnNpb25JZDogc3RyaW5nLFxuKTogRXh0ZW5zaW9uUmVnaXN0cmF0aW9uIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgbmFtZSA9IGdldEV4dGVuc2lvbk5hbWVGcm9tSWQoZXh0ZW5zaW9uSWQpO1xuICByZXR1cm4gc3RhdGUuZXh0ZW5zaW9uc1tuYW1lXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV4dGVuc2lvblJlZ2lzdHJhdGlvbihleHRlbnNpb25JZDogc3RyaW5nKTogRXh0ZW5zaW9uUmVnaXN0cmF0aW9uIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc3RhdGUgPSBleHRlbnNpb25JbnRlcm5hbFN0b3JlLmdldFN0YXRlKCk7XG4gIHJldHVybiBnZXRFeHRlbnNpb25SZWdpc3RyYXRpb25Gcm9tKHN0YXRlLCBleHRlbnNpb25JZCk7XG59XG5cbi8qKlxuICogRXh0ZW5zaW9ucyBtdXN0IGJlIHJlZ2lzdGVyZWQgaW4gb3JkZXIgdG8gYmUgcmVuZGVyZWQuXG4gKiBUaGlzIGlzIGhhbmRsZWQgYnkgdGhlIGFwcCBzaGVsbCwgd2hlbiBleHRlbnNpb25zIGFyZSBwcm92aWRlZFxuICogdmlhIHRoZSBgc2V0dXBPcGVuTVJTYCByZXR1cm4gb2JqZWN0LlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCByZWdpc3RlckV4dGVuc2lvbjogKGV4dGVuc2lvblJlZ2lzdHJhdGlvbjogRXh0ZW5zaW9uUmVnaXN0cmF0aW9uKSA9PiB2b2lkID0gKGV4dGVuc2lvblJlZ2lzdHJhdGlvbikgPT5cbiAgZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5zZXRTdGF0ZSgoc3RhdGUpID0+IHtcbiAgICBzdGF0ZS5leHRlbnNpb25zW2V4dGVuc2lvblJlZ2lzdHJhdGlvbi5uYW1lXSA9IHtcbiAgICAgIC4uLmV4dGVuc2lvblJlZ2lzdHJhdGlvbixcbiAgICAgIGluc3RhbmNlczogW10sXG4gICAgfTtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH0pO1xuXG4vKipcbiAqIEF0dGFjaCBhbiBleHRlbnNpb24gdG8gYW4gZXh0ZW5zaW9uIHNsb3QuXG4gKlxuICogVGhpcyB3aWxsIGNhdXNlIHRoZSBleHRlbnNpb24gdG8gYmUgcmVuZGVyZWQgaW50byB0aGUgc3BlY2lmaWVkXG4gKiBleHRlbnNpb24gc2xvdCwgdW5sZXNzIGl0IGlzIHJlbW92ZWQgYnkgY29uZmlndXJhdGlvbi4gVXNpbmdcbiAqIGBhdHRhY2hgIGlzIGFuIGFsdGVybmF0aXZlIHRvIHNwZWNpZnlpbmcgdGhlIGBzbG90YCBvciBgc2xvdHNgXG4gKiBpbiB0aGUgZXh0ZW5zaW9uIGRlY2xhcmF0aW9uLlxuICpcbiAqIEl0IGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBjcmVhdGluZyBhIHNsb3QgaW50byB3aGljaFxuICogeW91IHdhbnQgdG8gcmVuZGVyIGFuIGV4aXN0aW5nIGV4dGVuc2lvbi4gVGhpcyBlbmFibGVzIHlvdVxuICogdG8gZG8gc28gd2l0aG91dCBtb2RpZnlpbmcgdGhlIGV4dGVuc2lvbidzIGRlY2xhcmF0aW9uLCB3aGljaFxuICogbWF5IGJlIGltcHJhY3RpY2FsIG9yIGluYXBwcm9wcmlhdGUsIGZvciBleGFtcGxlIGlmIHlvdSBhcmVcbiAqIHdyaXRpbmcgYSBtb2R1bGUgZm9yIGEgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24uXG4gKlxuICogQHBhcmFtIHNsb3ROYW1lIGEgbmFtZSB1bmlxdWVseSBpZGVudGlmeWluZyB0aGUgc2xvdFxuICogQHBhcmFtIGV4dGVuc2lvbklkIGFuIGV4dGVuc2lvbiBuYW1lLCB3aXRoIGFuIG9wdGlvbmFsICMtc3VmZml4XG4gKiAgICB0byBkaXN0aW5ndWlzaCBpdCBmcm9tIG90aGVyIGluc3RhbmNlcyBvZiB0aGUgc2FtZSBleHRlbnNpb25cbiAqICAgIGF0dGFjaGVkIHRvIHRoZSBzYW1lIHNsb3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhdHRhY2goc2xvdE5hbWU6IHN0cmluZywgZXh0ZW5zaW9uSWQ6IHN0cmluZykge1xuICB1cGRhdGVJbnRlcm5hbEV4dGVuc2lvblN0b3JlKChzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nU2xvdCA9IHN0YXRlLnNsb3RzW3Nsb3ROYW1lXTtcblxuICAgIGlmICghZXhpc3RpbmdTbG90KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2xvdHM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5zbG90cyxcbiAgICAgICAgICBbc2xvdE5hbWVdOiB7XG4gICAgICAgICAgICAuLi5jcmVhdGVOZXdFeHRlbnNpb25TbG90SW5mbyhzbG90TmFtZSksXG4gICAgICAgICAgICBhdHRhY2hlZElkczogW2V4dGVuc2lvbklkXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNsb3RzOiB7XG4gICAgICAgICAgLi4uc3RhdGUuc2xvdHMsXG4gICAgICAgICAgW3Nsb3ROYW1lXToge1xuICAgICAgICAgICAgLi4uZXhpc3RpbmdTbG90LFxuICAgICAgICAgICAgYXR0YWNoZWRJZHM6IFsuLi5leGlzdGluZ1Nsb3QuYXR0YWNoZWRJZHMsIGV4dGVuc2lvbklkXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIEF2b2lkIHVzaW5nIHRoaXMuIEV4dGVuc2lvbiBhdHRhY2htZW50cyBzaG91bGQgYmUgY29uc2lkZXJlZCBkZWNsYXJhdGl2ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRldGFjaChleHRlbnNpb25TbG90TmFtZTogc3RyaW5nLCBleHRlbnNpb25JZDogc3RyaW5nKSB7XG4gIHVwZGF0ZUludGVybmFsRXh0ZW5zaW9uU3RvcmUoKHN0YXRlKSA9PiB7XG4gICAgY29uc3QgZXhpc3RpbmdTbG90ID0gc3RhdGUuc2xvdHNbZXh0ZW5zaW9uU2xvdE5hbWVdO1xuXG4gICAgaWYgKGV4aXN0aW5nU2xvdCAmJiBleGlzdGluZ1Nsb3QuYXR0YWNoZWRJZHMuaW5jbHVkZXMoZXh0ZW5zaW9uSWQpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2xvdHM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5zbG90cyxcbiAgICAgICAgICBbZXh0ZW5zaW9uU2xvdE5hbWVdOiB7XG4gICAgICAgICAgICAuLi5leGlzdGluZ1Nsb3QsXG4gICAgICAgICAgICBhdHRhY2hlZElkczogZXhpc3RpbmdTbG90LmF0dGFjaGVkSWRzLmZpbHRlcigoaWQpID0+IGlkICE9PSBleHRlbnNpb25JZCksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIEF2b2lkIHVzaW5nIHRoaXMuIEV4dGVuc2lvbiBhdHRhY2htZW50cyBzaG91bGQgYmUgY29uc2lkZXJlZCBkZWNsYXJhdGl2ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRldGFjaEFsbChleHRlbnNpb25TbG90TmFtZTogc3RyaW5nKSB7XG4gIHVwZGF0ZUludGVybmFsRXh0ZW5zaW9uU3RvcmUoKHN0YXRlKSA9PiB7XG4gICAgY29uc3QgZXhpc3RpbmdTbG90ID0gc3RhdGUuc2xvdHNbZXh0ZW5zaW9uU2xvdE5hbWVdO1xuXG4gICAgaWYgKGV4aXN0aW5nU2xvdCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNsb3RzOiB7XG4gICAgICAgICAgLi4uc3RhdGUuc2xvdHMsXG4gICAgICAgICAgW2V4dGVuc2lvblNsb3ROYW1lXToge1xuICAgICAgICAgICAgLi4uZXhpc3RpbmdTbG90LFxuICAgICAgICAgICAgYXR0YWNoZWRJZHM6IFtdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgYW4gb3JkZXIgaW5kZXggZm9yIHRoZSBleHRlbnNpb24uIFRoaXMgd2lsbFxuICogY29tZSBmcm9tIGVpdGhlciBpdHMgY29uZmlndXJlZCBvcmRlciwgaXRzIHJlZ2lzdGVyZWQgb3JkZXJcbiAqIHBhcmFtZXRlciwgb3IgdGhlIG9yZGVyIGluIHdoaWNoIGl0IGhhcHBlbmVkIHRvIGJlIGF0dGFjaGVkLlxuICovXG5mdW5jdGlvbiBnZXRPcmRlcihcbiAgZXh0ZW5zaW9uSWQ6IHN0cmluZyxcbiAgY29uZmlndXJlZE9yZGVyOiBBcnJheTxzdHJpbmc+LFxuICByZWdpc3RlcmVkT3JkZXJJbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICBhdHRhY2hlZE9yZGVyOiBBcnJheTxzdHJpbmc+LFxuKSB7XG4gIGNvbnN0IGNvbmZpZ3VyZWRJbmRleCA9IGNvbmZpZ3VyZWRPcmRlci5pbmRleE9mKGV4dGVuc2lvbklkKTtcbiAgaWYgKGNvbmZpZ3VyZWRJbmRleCAhPT0gLTEpIHtcbiAgICByZXR1cm4gY29uZmlndXJlZEluZGV4O1xuICB9IGVsc2UgaWYgKHJlZ2lzdGVyZWRPcmRlckluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAvLyBleHRlbnNpb25zIHRoYXQgZG9uJ3QgaGF2ZSBhIGNvbmZpZ3VyZWQgb3JkZXIgc2hvdWxkIGFwcGVhciBhZnRlciB0aG9zZSB0aGF0IGRvXG4gICAgcmV0dXJuIDEwMDAgKyByZWdpc3RlcmVkT3JkZXJJbmRleDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBhc3NpZ25lZEluZGV4ID0gYXR0YWNoZWRPcmRlci5pbmRleE9mKGV4dGVuc2lvbklkKTtcbiAgICBpZiAoYXNzaWduZWRJbmRleCAhPT0gLTEpIHtcbiAgICAgIC8vIGV4dGVuc2lvbnMgdGhhdCBoYXZlIG5laXRoZXIgYSBjb25maWd1cmVkIG5vciByZWdpc3RlcmVkIG9yZGVyIHNob3VsZCBhcHBlYXJcbiAgICAgIC8vIGFmdGVyIGFsbCBvdGhlcnNcbiAgICAgIHJldHVybiAyMDAwICsgYXNzaWduZWRJbmRleDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEZpbHRlcnMgYSBsaXN0IG9mIGV4dGVuc2lvbnMgYWNjb3JkaW5nIHRvIHdoZXRoZXIgdGhleSBzdXBwb3J0IHRoZVxuICogY3VycmVudCBjb25uZWN0aXZpdHkgc3RhdHVzLlxuICpcbiAqIEBwYXJhbSBhc3NpZ25lZEV4dGVuc2lvbnMgVGhlIGxpc3Qgb2YgZXh0ZW5zaW9ucyB0byBmaWx0ZXIuXG4gKiBAcGFyYW0gb25saW5lIFdoZXRoZXIgdGhlIGFwcCBpcyBjdXJyZW50bHkgb25saW5lLiBJZiBgbnVsbGAsIHVzZXMgYG5hdmlnYXRvci5vbkxpbmVgLlxuICogQHBhcmFtIGVuYWJsZWRGZWF0dXJlRmxhZ3MgVGhlIG5hbWVzIG9mIGFsbCBlbmFibGVkIGZlYXR1cmUgZmxhZ3MuIElmIGBudWxsYCwgbG9va3NcbiAqICAgIHVwIHRoZSBmZWF0dXJlIGZsYWdzIHVzaW5nIHRoZSBmZWF0dXJlIGZsYWdzIEFQSS5cbiAqIEByZXR1cm5zIEEgbGlzdCBvZiBleHRlbnNpb25zIHRoYXQgc2hvdWxkIGJlIHJlbmRlcmVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25uZWN0ZWRFeHRlbnNpb25zKFxuICBhc3NpZ25lZEV4dGVuc2lvbnM6IEFycmF5PEFzc2lnbmVkRXh0ZW5zaW9uPixcbiAgb25saW5lOiBib29sZWFuIHwgbnVsbCA9IG51bGwsXG4gIGVuYWJsZWRGZWF0dXJlRmxhZ3M6IEFycmF5PHN0cmluZz4gfCBudWxsID0gbnVsbCxcbik6IEFycmF5PENvbm5lY3RlZEV4dGVuc2lvbj4ge1xuICBjb25zdCBpc09ubGluZSA9IG9ubGluZSA/PyBuYXZpZ2F0b3Iub25MaW5lO1xuICBjb25zdCBmZWF0dXJlRmxhZ3MgPVxuICAgIGVuYWJsZWRGZWF0dXJlRmxhZ3MgPz9cbiAgICBPYmplY3QuZW50cmllcyhmZWF0dXJlRmxhZ3NTdG9yZS5nZXRTdGF0ZSgpLmZsYWdzKVxuICAgICAgLmZpbHRlcigoWywgeyBlbmFibGVkIH1dKSA9PiBlbmFibGVkKVxuICAgICAgLm1hcCgoW25hbWVdKSA9PiBuYW1lKTtcbiAgcmV0dXJuIGFzc2lnbmVkRXh0ZW5zaW9uc1xuICAgIC5maWx0ZXIoKGUpID0+IGNoZWNrU3RhdHVzRm9yKGlzT25saW5lLCBlLm9ubGluZSwgZS5vZmZsaW5lKSlcbiAgICAuZmlsdGVyKChlKSA9PiBlLmZlYXR1cmVGbGFnID09PSB1bmRlZmluZWQgfHwgZmVhdHVyZUZsYWdzPy5pbmNsdWRlcyhlLmZlYXR1cmVGbGFnKSk7XG59XG5cbmZ1bmN0aW9uIGdldEFzc2lnbmVkRXh0ZW5zaW9uc0Zyb21TbG90RGF0YShcbiAgc2xvdE5hbWU6IHN0cmluZyxcbiAgaW50ZXJuYWxTdGF0ZTogRXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSxcbiAgY29uZmlnOiBFeHRlbnNpb25TbG90Q29uZmlnT2JqZWN0LFxuICBleHRlbnNpb25Db25maWdTdG9yZVN0YXRlOiBFeHRlbnNpb25zQ29uZmlnU3RvcmUsXG4pOiBBcnJheTxBc3NpZ25lZEV4dGVuc2lvbj4ge1xuICBjb25zdCBhdHRhY2hlZElkcyA9IGludGVybmFsU3RhdGUuc2xvdHNbc2xvdE5hbWVdLmF0dGFjaGVkSWRzO1xuICBjb25zdCBhc3NpZ25lZElkcyA9IGNhbGN1bGF0ZUFzc2lnbmVkSWRzKGNvbmZpZywgYXR0YWNoZWRJZHMpO1xuICBjb25zdCBleHRlbnNpb25zOiBBcnJheTxBc3NpZ25lZEV4dGVuc2lvbj4gPSBbXTtcbiAgbGV0IHVzZXI6IExvZ2dlZEluVXNlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBmb3IgKGxldCBpZCBvZiBhc3NpZ25lZElkcykge1xuICAgIGNvbnN0IHsgY29uZmlnOiBleHRlbnNpb25Db25maWcgfSA9IGdldEV4dGVuc2lvbkNvbmZpZ0Zyb21TdG9yZShleHRlbnNpb25Db25maWdTdG9yZVN0YXRlLCBzbG90TmFtZSwgaWQpO1xuICAgIGNvbnN0IG5hbWUgPSBnZXRFeHRlbnNpb25OYW1lRnJvbUlkKGlkKTtcbiAgICBjb25zdCBleHRlbnNpb24gPSBpbnRlcm5hbFN0YXRlLmV4dGVuc2lvbnNbbmFtZV07XG5cbiAgICAvLyBpZiB0aGUgZXh0ZW5zaW9uIGhhcyBub3QgYmVlbiByZWdpc3RlcmVkIHlldCwgZG8gbm90IGluY2x1ZGUgaXRcbiAgICBpZiAoZXh0ZW5zaW9uKSB7XG4gICAgICBjb25zdCByZXF1aXJlZFByaXZpbGVnZXMgPSBleHRlbnNpb25Db25maWc/LlsnRGlzcGxheSBjb25kaXRpb25zJ10/LnByaXZpbGVnZXMgPz8gZXh0ZW5zaW9uLnByaXZpbGVnZXMgPz8gW107XG4gICAgICBpZiAoXG4gICAgICAgIHJlcXVpcmVkUHJpdmlsZWdlcyAmJlxuICAgICAgICAodHlwZW9mIHJlcXVpcmVkUHJpdmlsZWdlcyA9PT0gJ3N0cmluZycgfHwgKEFycmF5LmlzQXJyYXkocmVxdWlyZWRQcml2aWxlZ2VzKSAmJiByZXF1aXJlZFByaXZpbGVnZXMubGVuZ3RoID4gMCkpXG4gICAgICApIHtcbiAgICAgICAgaWYgKGlzVW5kZWZpbmVkKHVzZXIpKSB7XG4gICAgICAgICAgdXNlciA9IGdldFNlc3Npb25TdG9yZSgpLmdldFN0YXRlKCkuc2Vzc2lvbj8udXNlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdXNlcikge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF1c2VySGFzQWNjZXNzKHJlcXVpcmVkUHJpdmlsZWdlcywgdXNlcikpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBleHRlbnNpb25zLnB1c2goe1xuICAgICAgICBpZCxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgbW9kdWxlTmFtZTogZXh0ZW5zaW9uLm1vZHVsZU5hbWUsXG4gICAgICAgIGNvbmZpZzogZXh0ZW5zaW9uQ29uZmlnLFxuICAgICAgICBmZWF0dXJlRmxhZzogZXh0ZW5zaW9uLmZlYXR1cmVGbGFnLFxuICAgICAgICBtZXRhOiBleHRlbnNpb24ubWV0YSxcbiAgICAgICAgb25saW5lOiBleHRlbnNpb24ub25saW5lID8/IHRydWUsXG4gICAgICAgIG9mZmxpbmU6IGV4dGVuc2lvbi5vZmZsaW5lID8/IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGV4dGVuc2lvbnM7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgbGlzdCBvZiBleHRlbnNpb25zIGFzc2lnbmVkIHRvIGEgZ2l2ZW4gc2xvdFxuICpcbiAqIEBwYXJhbSBzbG90TmFtZSBUaGUgc2xvdCB0byBsb2FkIHRoZSBhc3NpZ25lZCBleHRlbnNpb25zIGZvclxuICogQHJldHVybnMgQW4gYXJyYXkgb2YgZXh0ZW5zaW9ucyBhc3NpZ25lZCB0byB0aGUgbmFtZWQgc2xvdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXNzaWduZWRFeHRlbnNpb25zKHNsb3ROYW1lOiBzdHJpbmcpOiBBcnJheTxBc3NpZ25lZEV4dGVuc2lvbj4ge1xuICBjb25zdCBpbnRlcm5hbFN0YXRlID0gZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5nZXRTdGF0ZSgpO1xuICBjb25zdCB7IGNvbmZpZzogc2xvdENvbmZpZyB9ID0gZ2V0RXh0ZW5zaW9uU2xvdENvbmZpZyhzbG90TmFtZSk7XG4gIGNvbnN0IGV4dGVuc2lvblN0b3JlU3RhdGUgPSBleHRlbnNpb25zQ29uZmlnU3RvcmUuZ2V0U3RhdGUoKTtcbiAgcmV0dXJuIGdldEFzc2lnbmVkRXh0ZW5zaW9uc0Zyb21TbG90RGF0YShzbG90TmFtZSwgaW50ZXJuYWxTdGF0ZSwgc2xvdENvbmZpZywgZXh0ZW5zaW9uU3RvcmVTdGF0ZSk7XG59XG5cbmZ1bmN0aW9uIGNhbGN1bGF0ZUFzc2lnbmVkSWRzKGNvbmZpZzogRXh0ZW5zaW9uU2xvdENvbmZpZ09iamVjdCwgYXR0YWNoZWRJZHM6IEFycmF5PHN0cmluZz4pIHtcbiAgY29uc3QgYWRkZWRJZHMgPSBjb25maWcuYWRkIHx8IFtdO1xuICBjb25zdCByZW1vdmVkSWRzID0gY29uZmlnLnJlbW92ZSB8fCBbXTtcbiAgY29uc3QgaWRPcmRlciA9IGNvbmZpZy5vcmRlciB8fCBbXTtcbiAgY29uc3QgeyBleHRlbnNpb25zIH0gPSBleHRlbnNpb25JbnRlcm5hbFN0b3JlLmdldFN0YXRlKCk7XG5cbiAgcmV0dXJuIFsuLi5hdHRhY2hlZElkcywgLi4uYWRkZWRJZHNdXG4gICAgLmZpbHRlcigoaWQpID0+ICFyZW1vdmVkSWRzLmluY2x1ZGVzKGlkKSlcbiAgICAuc29ydCgoaWRBLCBpZEIpID0+IHtcbiAgICAgIGNvbnN0IGFpID0gZ2V0T3JkZXIoaWRBLCBpZE9yZGVyLCBleHRlbnNpb25zW2dldEV4dGVuc2lvbk5hbWVGcm9tSWQoaWRBKV0/Lm9yZGVyLCBhdHRhY2hlZElkcyk7XG4gICAgICBjb25zdCBiaSA9IGdldE9yZGVyKGlkQiwgaWRPcmRlciwgZXh0ZW5zaW9uc1tnZXRFeHRlbnNpb25OYW1lRnJvbUlkKGlkQildPy5vcmRlciwgYXR0YWNoZWRJZHMpO1xuXG4gICAgICBpZiAoYmkgPT09IC0xKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH0gZWxzZSBpZiAoYWkgPT09IC0xKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGFpIC0gYmk7XG4gICAgICB9XG4gICAgfSk7XG59XG5cbi8qKlxuICogVXNlZCBieSBieSBleHRlbnNpb24gc2xvdHMgYXQgbW91bnQgdGltZS5cbiAqXG4gKiBAcGFyYW0gbW9kdWxlTmFtZSBUaGUgbmFtZSBvZiB0aGUgbW9kdWxlIHRoYXQgY29udGFpbnMgdGhlIGV4dGVuc2lvbiBzbG90XG4gKiBAcGFyYW0gc2xvdE5hbWUgVGhlIGV4dGVuc2lvbiBzbG90IG5hbWUgdGhhdCBpcyBhY3R1YWxseSB1c2VkXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyRXh0ZW5zaW9uU2xvdDogKG1vZHVsZU5hbWU6IHN0cmluZywgc2xvdE5hbWU6IHN0cmluZykgPT4gdm9pZCA9IChtb2R1bGVOYW1lLCBzbG90TmFtZSkgPT5cbiAgZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5zZXRTdGF0ZSgoc3RhdGUpID0+IHtcbiAgICBjb25zdCBleGlzdGluZ01vZHVsZU5hbWUgPSBzdGF0ZS5zbG90c1tzbG90TmFtZV0/Lm1vZHVsZU5hbWU7XG4gICAgaWYgKGV4aXN0aW5nTW9kdWxlTmFtZSAmJiBleGlzdGluZ01vZHVsZU5hbWUgIT0gbW9kdWxlTmFtZSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgQW4gZXh0ZW5zaW9uIHNsb3Qgd2l0aCB0aGUgbmFtZSAnJHtzbG90TmFtZX0nIGFscmVhZHkgZXhpc3RzLiBSZWZ1c2luZyB0byByZWdpc3RlciB0aGUgc2FtZSBzbG90IG5hbWUgdHdpY2UgKGluIFwicmVnaXN0ZXJFeHRlbnNpb25TbG90XCIpLiBUaGUgZXhpc3Rpbmcgb25lIGlzIGZyb20gbW9kdWxlICR7ZXhpc3RpbmdNb2R1bGVOYW1lfS5gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG4gICAgaWYgKGV4aXN0aW5nTW9kdWxlTmFtZSAmJiBleGlzdGluZ01vZHVsZU5hbWUgPT0gbW9kdWxlTmFtZSkge1xuICAgICAgLy8gUmUtcmVuZGVyaW5nIGFuIGV4aXN0aW5nIHNsb3RcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG4gICAgaWYgKHN0YXRlLnNsb3RzW3Nsb3ROYW1lXSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNsb3RzOiB7XG4gICAgICAgICAgLi4uc3RhdGUuc2xvdHMsXG4gICAgICAgICAgW3Nsb3ROYW1lXToge1xuICAgICAgICAgICAgLi4uc3RhdGUuc2xvdHNbc2xvdE5hbWVdLFxuICAgICAgICAgICAgbW9kdWxlTmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gICAgY29uc3Qgc2xvdCA9IGNyZWF0ZU5ld0V4dGVuc2lvblNsb3RJbmZvKHNsb3ROYW1lLCBtb2R1bGVOYW1lKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBzbG90czoge1xuICAgICAgICAuLi5zdGF0ZS5zbG90cyxcbiAgICAgICAgW3Nsb3ROYW1lXTogc2xvdCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSk7XG5cbi8qKlxuICogQGludGVybmFsXG4gKiBKdXN0IGZvciB0ZXN0aW5nLlxuICovXG5leHBvcnQgY29uc3QgcmVzZXQ6ICgpID0+IHZvaWQgPSAoKSA9PlxuICBleHRlbnNpb25TdG9yZS5zZXRTdGF0ZSgoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNsb3RzOiB7fSxcbiAgICAgIGV4dGVuc2lvbnM6IHt9LFxuICAgIH07XG4gIH0pO1xuIl0sIm5hbWVzIjpbImdldFNlc3Npb25TdG9yZSIsInVzZXJIYXNBY2Nlc3MiLCJnZXRFeHRlbnNpb25Db25maWdGcm9tU3RvcmUiLCJnZXRFeHRlbnNpb25zQ29uZmlnU3RvcmUiLCJnZXRFeHRlbnNpb25TbG90Q29uZmlnIiwiZ2V0RXh0ZW5zaW9uU2xvdENvbmZpZ0Zyb21TdG9yZSIsImdldEV4dGVuc2lvblNsb3RzQ29uZmlnU3RvcmUiLCJmZWF0dXJlRmxhZ3NTdG9yZSIsImlzRXF1YWwiLCJpc1VuZGVmaW5lZCIsImdldEV4dGVuc2lvbkludGVybmFsU3RvcmUiLCJjaGVja1N0YXR1c0ZvciIsImdldEV4dGVuc2lvblN0b3JlIiwidXBkYXRlSW50ZXJuYWxFeHRlbnNpb25TdG9yZSIsImV4dGVuc2lvbkludGVybmFsU3RvcmUiLCJleHRlbnNpb25TdG9yZSIsInNsb3RzQ29uZmlnU3RvcmUiLCJleHRlbnNpb25zQ29uZmlnU3RvcmUiLCJ1cGRhdGVFeHRlbnNpb25PdXRwdXRTdG9yZSIsImludGVybmFsU3RhdGUiLCJleHRlbnNpb25TbG90Q29uZmlncyIsInNsb3RzIiwiT2JqZWN0IiwiZW50cmllcyIsInNsb3ROYW1lIiwic2xvdCIsImNvbmZpZyIsIm5hbWUiLCJhc3NpZ25lZEV4dGVuc2lvbnMiLCJnZXRBc3NpZ25lZEV4dGVuc2lvbnNGcm9tU2xvdERhdGEiLCJtb2R1bGVOYW1lIiwiZ2V0U3RhdGUiLCJzZXRTdGF0ZSIsInN1YnNjcmliZSIsImludGVybmFsU3RvcmUiLCJzbG90Q29uZmlncyIsImV4dGVuc2lvbkNvbmZpZ3MiLCJjcmVhdGVOZXdFeHRlbnNpb25TbG90SW5mbyIsImF0dGFjaGVkSWRzIiwiZ2V0RXh0ZW5zaW9uTmFtZUZyb21JZCIsImV4dGVuc2lvbklkIiwic3BsaXQiLCJleHRlbnNpb25OYW1lIiwiZ2V0RXh0ZW5zaW9uUmVnaXN0cmF0aW9uRnJvbSIsInN0YXRlIiwiZXh0ZW5zaW9ucyIsImdldEV4dGVuc2lvblJlZ2lzdHJhdGlvbiIsInJlZ2lzdGVyRXh0ZW5zaW9uIiwiZXh0ZW5zaW9uUmVnaXN0cmF0aW9uIiwiaW5zdGFuY2VzIiwiYXR0YWNoIiwiZXhpc3RpbmdTbG90IiwiZGV0YWNoIiwiZXh0ZW5zaW9uU2xvdE5hbWUiLCJpbmNsdWRlcyIsImZpbHRlciIsImlkIiwiZGV0YWNoQWxsIiwiZ2V0T3JkZXIiLCJjb25maWd1cmVkT3JkZXIiLCJyZWdpc3RlcmVkT3JkZXJJbmRleCIsImF0dGFjaGVkT3JkZXIiLCJjb25maWd1cmVkSW5kZXgiLCJpbmRleE9mIiwidW5kZWZpbmVkIiwiYXNzaWduZWRJbmRleCIsImdldENvbm5lY3RlZEV4dGVuc2lvbnMiLCJvbmxpbmUiLCJlbmFibGVkRmVhdHVyZUZsYWdzIiwiaXNPbmxpbmUiLCJuYXZpZ2F0b3IiLCJvbkxpbmUiLCJmZWF0dXJlRmxhZ3MiLCJmbGFncyIsImVuYWJsZWQiLCJtYXAiLCJlIiwib2ZmbGluZSIsImZlYXR1cmVGbGFnIiwiZXh0ZW5zaW9uQ29uZmlnU3RvcmVTdGF0ZSIsImFzc2lnbmVkSWRzIiwiY2FsY3VsYXRlQXNzaWduZWRJZHMiLCJ1c2VyIiwiZXh0ZW5zaW9uQ29uZmlnIiwiZXh0ZW5zaW9uIiwicmVxdWlyZWRQcml2aWxlZ2VzIiwicHJpdmlsZWdlcyIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsInNlc3Npb24iLCJwdXNoIiwibWV0YSIsImdldEFzc2lnbmVkRXh0ZW5zaW9ucyIsInNsb3RDb25maWciLCJleHRlbnNpb25TdG9yZVN0YXRlIiwiYWRkZWRJZHMiLCJhZGQiLCJyZW1vdmVkSWRzIiwicmVtb3ZlIiwiaWRPcmRlciIsIm9yZGVyIiwic29ydCIsImlkQSIsImlkQiIsImFpIiwiYmkiLCJyZWdpc3RlckV4dGVuc2lvblNsb3QiLCJleGlzdGluZ01vZHVsZU5hbWUiLCJjb25zb2xlIiwid2FybiIsInJlc2V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../framework/esm-extensions/src/extensions.ts\n");
|
|
6714
6714
|
|
|
6715
6715
|
/***/ }),
|
|
6716
6716
|
|
|
@@ -7117,7 +7117,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
7117
7117
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
7118
7118
|
|
|
7119
7119
|
"use strict";
|
|
7120
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useAssignedExtensions: () => (/* binding */ useAssignedExtensions)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var
|
|
7120
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useAssignedExtensions: () => (/* binding */ useAssignedExtensions)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _useExtensionStore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./useExtensionStore */ \"../../framework/esm-react-utils/src/useExtensionStore.ts\");\n/** @module @category Extension */ \n\n/**\n * Gets the assigned extensions for a given extension slot name.\n * Does not consider if offline or online.\n * @param slotName The name of the slot to get the assigned extensions for.\n */ function useAssignedExtensions(slotName) {\n var slots = (0,_useExtensionStore__WEBPACK_IMPORTED_MODULE_1__.useExtensionStore)().slots;\n var extensions = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function() {\n var _slots_slotName;\n var _slots_slotName_assignedExtensions;\n return (_slots_slotName_assignedExtensions = (_slots_slotName = slots[slotName]) === null || _slots_slotName === void 0 ? void 0 : _slots_slotName.assignedExtensions) !== null && _slots_slotName_assignedExtensions !== void 0 ? _slots_slotName_assignedExtensions : [];\n }, [\n slots,\n slotName\n ]);\n return extensions;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9zcmMvdXNlQXNzaWduZWRFeHRlbnNpb25zLnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxnQ0FBZ0MsR0FDQTtBQUN3QjtBQUV4RDs7OztDQUlDLEdBQ00sU0FBU0Usc0JBQXNCQyxRQUFnQixFQUFFO0lBQ3RELElBQU0sUUFBWUYscUVBQWlCQSxHQUEzQkc7SUFFUixJQUFNQyxhQUFhTCw4Q0FBT0EsQ0FBQyxXQUFNO1lBQ3hCSTtZQUFBQTtRQUFQLE9BQU9BLENBQUFBLHFDQUFBQSxDQUFBQSxrQkFBQUEsS0FBSyxDQUFDRCxTQUFTLGNBQWZDLDZCQUFBQSxLQUFBQSxJQUFBQSxnQkFBaUJFLGtCQUFrQixjQUFuQ0YsZ0RBQUFBLHFDQUF1QyxFQUFFO0lBQ2xELEdBQUc7UUFBQ0E7UUFBT0Q7S0FBUztJQUVwQixPQUFPRTtBQUNULENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tcmVhY3QtdXRpbHMvc3JjL3VzZUFzc2lnbmVkRXh0ZW5zaW9ucy50cz84ZDMyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbW9kdWxlIEBjYXRlZ29yeSBFeHRlbnNpb24gKi9cbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFeHRlbnNpb25TdG9yZSB9IGZyb20gJy4vdXNlRXh0ZW5zaW9uU3RvcmUnO1xuXG4vKipcbiAqIEdldHMgdGhlIGFzc2lnbmVkIGV4dGVuc2lvbnMgZm9yIGEgZ2l2ZW4gZXh0ZW5zaW9uIHNsb3QgbmFtZS5cbiAqIERvZXMgbm90IGNvbnNpZGVyIGlmIG9mZmxpbmUgb3Igb25saW5lLlxuICogQHBhcmFtIHNsb3ROYW1lIFRoZSBuYW1lIG9mIHRoZSBzbG90IHRvIGdldCB0aGUgYXNzaWduZWQgZXh0ZW5zaW9ucyBmb3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VBc3NpZ25lZEV4dGVuc2lvbnMoc2xvdE5hbWU6IHN0cmluZykge1xuICBjb25zdCB7IHNsb3RzIH0gPSB1c2VFeHRlbnNpb25TdG9yZSgpO1xuXG4gIGNvbnN0IGV4dGVuc2lvbnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gc2xvdHNbc2xvdE5hbWVdPy5hc3NpZ25lZEV4dGVuc2lvbnMgPz8gW107XG4gIH0sIFtzbG90cywgc2xvdE5hbWVdKTtcblxuICByZXR1cm4gZXh0ZW5zaW9ucztcbn1cbiJdLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlRXh0ZW5zaW9uU3RvcmUiLCJ1c2VBc3NpZ25lZEV4dGVuc2lvbnMiLCJzbG90TmFtZSIsInNsb3RzIiwiZXh0ZW5zaW9ucyIsImFzc2lnbmVkRXh0ZW5zaW9ucyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/src/useAssignedExtensions.ts\n");
|
|
7121
7121
|
|
|
7122
7122
|
/***/ }),
|
|
7123
7123
|
|
|
@@ -8273,7 +8273,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
8273
8273
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
8274
8274
|
|
|
8275
8275
|
"use strict";
|
|
8276
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setupPaths: () => (/* binding */ setupPaths),\n/* harmony export */ setupUtils: () => (/* binding */ setupUtils)\n/* harmony export */ });\n/* harmony import */ var _openmrs_esm_styleguide_dist_openmrs_esm_styleguide_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @openmrs/esm-styleguide/dist/openmrs-esm-styleguide.css */ \"../../framework/esm-styleguide/dist/openmrs-esm-styleguide.css\");\n/* harmony import */ var import_map_overrides__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! import-map-overrides */ \"../../../node_modules/import-map-overrides/dist/import-map-overrides.js\");\n/* harmony import */ var _openmrs_esm_framework__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @openmrs/esm-framework */ \"webpack/sharing/consume/default/@openmrs/esm-framework/@openmrs/esm-framework\");\n/* harmony import */ var _openmrs_esm_framework__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_openmrs_esm_framework__WEBPACK_IMPORTED_MODULE_2__);\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nfunction _ts_generator(thisArg, body) {\n var f, y, t, g, _ = {\n label: 0,\n sent: function() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n };\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() {\n return this;\n }), g;\n function verb(n) {\n return function(v) {\n return step([\n n,\n v\n ]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while(_)try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [\n op[0] & 2,\n t.value\n ];\n switch(op[0]){\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [\n 0\n ];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [\n 6,\n e\n ];\n y = 0;\n } finally{\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\n\n\n\nfunction setupPaths(config) {\n var error = false;\n if (!config.apiUrl) {\n console.error(\"initializeSpa() was called without supplying an apiUrl. This means that the application cannot communicate with the backend.\");\n error = true;\n }\n if (!config.spaPath) {\n console.error(\"initializeSpa() was called without supplying a spaPath. This means that the application cannot properly generate urls.\");\n error = true;\n }\n if (error) {\n throw new Error(\"One or more required properties in the basic configuration of the application was missing and the application cannot be rendered. Please see the browser console for details.\");\n }\n window.openmrsBase = config.apiUrl;\n window.spaBase = config.spaPath;\n window.spaEnv = config.env || \"production\";\n window.spaVersion = \"5.3.3-pre.1352-20240105\";\n var spaBaseWithSlash = window.spaBase.endsWith(\"/\") ? window.spaBase : window.spaBase + \"/\";\n window.getOpenmrsSpaBase = function() {\n return spaBaseWithSlash;\n };\n}\nfunction setupUtils() {\n window.copyText = function(source) {\n var sel = window.getSelection();\n if (sel) {\n var r = document.createRange();\n r.selectNode(source);\n sel.removeAllRanges();\n sel.addRange(r);\n document.execCommand(\"copy\");\n sel.removeAllRanges();\n }\n };\n}\nfunction wireSpaPaths() {\n var baseElement = document.createElement(\"base\");\n var baseHref = window.getOpenmrsSpaBase();\n baseElement.href = baseHref;\n document.head.appendChild(baseElement);\n __webpack_require__.p = baseHref;\n}\n/**\n * Initializes the OpenMRS Frontend App Shell.\n * @param config The global configuration to apply.\n */ function initializeSpa(config) {\n setupUtils();\n setupPaths(config);\n wireSpaPaths();\n return Promise.resolve(__webpack_require__.I(\"default\")).then(/*#__PURE__*/ _async_to_generator(function() {\n var _config_configUrls, configUrls, _config_offline, offline, run;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n _config_configUrls = config.configUrls, configUrls = _config_configUrls === void 0 ? [] : _config_configUrls, _config_offline = config.offline, offline = _config_offline === void 0 ? true : _config_offline;\n return [\n 4,\n Promise.all(/*! import() */[__webpack_require__.e(\"vendors-node_modules_i18next-browser-languagedetector_dist_esm_i18nextBrowserLanguageDetector-bec0ef\"), __webpack_require__.e(\"src_run_ts\")]).then(__webpack_require__.bind(__webpack_require__, /*! ./run */ \"./src/run.ts\"))\n ];\n case 1:\n run = _state.sent().run;\n return [\n 2,\n run(configUrls, offline)\n ];\n }\n });\n }));\n}\nwindow.initializeSpa = initializeSpa;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvaW5kZXgudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFpRTtBQUNuQztBQUNFO0FBR3pCLFNBQVNBLFdBQVdDLE1BQWlCLEVBQUU7SUFDNUMsSUFBSUMsUUFBUSxLQUFLO0lBQ2pCLElBQUksQ0FBQ0QsT0FBT0UsTUFBTSxFQUFFO1FBQ2xCQyxRQUFRRixLQUFLLENBQ1g7UUFFRkEsUUFBUSxJQUFJO0lBQ2QsQ0FBQztJQUVELElBQUksQ0FBQ0QsT0FBT0ksT0FBTyxFQUFFO1FBQ25CRCxRQUFRRixLQUFLLENBQ1g7UUFFRkEsUUFBUSxJQUFJO0lBQ2QsQ0FBQztJQUVELElBQUlBLE9BQU87UUFDVCxNQUFNLElBQUlJLE1BQ1IsaUxBQ0E7SUFDSixDQUFDO0lBRURDLE9BQU9DLFdBQVcsR0FBR1AsT0FBT0UsTUFBTTtJQUNsQ0ksT0FBT0UsT0FBTyxHQUFHUixPQUFPSSxPQUFPO0lBQy9CRSxPQUFPRyxNQUFNLEdBQUdULE9BQU9VLEdBQUcsSUFBSTtJQUM5QkosT0FBT0ssVUFBVSxHQUFHQyx5QkFBeUI7SUFDN0MsSUFBTUUsbUJBQW1CUixPQUFPRSxPQUFPLENBQUNPLFFBQVEsQ0FBQyxPQUFPVCxPQUFPRSxPQUFPLEdBQUdGLE9BQU9FLE9BQU8sR0FBRyxHQUFHO0lBQzdGRixPQUFPVSxpQkFBaUIsR0FBRztlQUFNRjs7QUFDbkMsQ0FBQztBQUVNLFNBQVNHLGFBQWE7SUFDM0JYLE9BQU9ZLFFBQVEsR0FBRyxTQUFDQyxRQUF3QjtRQUN6QyxJQUFNQyxNQUFNZCxPQUFPZSxZQUFZO1FBRS9CLElBQUlELEtBQUs7WUFDUCxJQUFNRSxJQUFJQyxTQUFTQyxXQUFXO1lBQzlCRixFQUFFRyxVQUFVLENBQUNOO1lBQ2JDLElBQUlNLGVBQWU7WUFDbkJOLElBQUlPLFFBQVEsQ0FBQ0w7WUFDYkMsU0FBU0ssV0FBVyxDQUFDO1lBQ3JCUixJQUFJTSxlQUFlO1FBQ3JCLENBQUM7SUFDSDtBQUNGLENBQUM7QUFFRCxTQUFTRyxlQUFlO0lBQ3RCLElBQU1DLGNBQWNQLFNBQVNRLGFBQWEsQ0FBQztJQUMzQyxJQUFNQyxXQUFXMUIsT0FBT1UsaUJBQWlCO0lBQ3pDYyxZQUFZRyxJQUFJLEdBQUdEO0lBQ25CVCxTQUFTVyxJQUFJLENBQUNDLFdBQVcsQ0FBQ0w7SUFDMUJNLHFCQUF1QkEsR0FBR0o7QUFDNUI7QUFFQTs7O0NBR0MsR0FDRCxTQUFTSyxjQUFjckMsTUFBaUIsRUFBRTtJQUN4Q2lCO0lBQ0FsQixXQUFXQztJQUNYNkI7SUFDQSxPQUFPUyxRQUFRQyxPQUFPLENBQUNDLHFCQUF3QkEsQ0FBQyxZQUFZQyxJQUFJLGVBQUMsK0JBQVk7Z0NBQ25FQyw2QkFBaUJDLFNBQ2pCQzs7Ozt5Q0FEb0M1QyxPQUFwQzBDLFlBQUFBLHdGQUFvQzFDLE9BQW5CMkMsU0FBQUEsdUNBQVUsSUFBSTtvQkFDdkI7O3dCQUFNLGlSQUFPOzs7b0JBQXJCQyxNQUFRLGNBQVJBO29CQUNSOzt3QkFBT0EsSUFBSUYsWUFBWUM7Ozs7SUFDekI7QUFDRjtBQUVBckMsT0FBTytCLGFBQWEsR0FBR0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4vc3JjL2luZGV4LnRzP2FkYTIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdAb3Blbm1ycy9lc20tc3R5bGVndWlkZS9kaXN0L29wZW5tcnMtZXNtLXN0eWxlZ3VpZGUuY3NzJztcbmltcG9ydCAnaW1wb3J0LW1hcC1vdmVycmlkZXMnO1xuaW1wb3J0ICdAb3Blbm1ycy9lc20tZnJhbWV3b3JrJztcbmltcG9ydCB0eXBlIHsgU3BhQ29uZmlnIH0gZnJvbSAnQG9wZW5tcnMvZXNtLWZyYW1ld29yay9zcmMvaW50ZXJuYWwnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBQYXRocyhjb25maWc6IFNwYUNvbmZpZykge1xuICBsZXQgZXJyb3IgPSBmYWxzZTtcbiAgaWYgKCFjb25maWcuYXBpVXJsKSB7XG4gICAgY29uc29sZS5lcnJvcihcbiAgICAgICdpbml0aWFsaXplU3BhKCkgd2FzIGNhbGxlZCB3aXRob3V0IHN1cHBseWluZyBhbiBhcGlVcmwuIFRoaXMgbWVhbnMgdGhhdCB0aGUgYXBwbGljYXRpb24gY2Fubm90IGNvbW11bmljYXRlIHdpdGggdGhlIGJhY2tlbmQuJyxcbiAgICApO1xuICAgIGVycm9yID0gdHJ1ZTtcbiAgfVxuXG4gIGlmICghY29uZmlnLnNwYVBhdGgpIHtcbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgJ2luaXRpYWxpemVTcGEoKSB3YXMgY2FsbGVkIHdpdGhvdXQgc3VwcGx5aW5nIGEgc3BhUGF0aC4gVGhpcyBtZWFucyB0aGF0IHRoZSBhcHBsaWNhdGlvbiBjYW5ub3QgcHJvcGVybHkgZ2VuZXJhdGUgdXJscy4nLFxuICAgICk7XG4gICAgZXJyb3IgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGVycm9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ09uZSBvciBtb3JlIHJlcXVpcmVkIHByb3BlcnRpZXMgaW4gdGhlIGJhc2ljIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGFwcGxpY2F0aW9uIHdhcyBtaXNzaW5nIGFuZCB0aGUgYXBwbGljYXRpb24gY2Fubm90IGJlIHJlbmRlcmVkLiBQbGVhc2Ugc2VlIHRoZSBicm93c2VyIGNvbnNvbGUgZm9yIGRldGFpbHMuJyxcbiAgICApO1xuICB9XG5cbiAgd2luZG93Lm9wZW5tcnNCYXNlID0gY29uZmlnLmFwaVVybDtcbiAgd2luZG93LnNwYUJhc2UgPSBjb25maWcuc3BhUGF0aDtcbiAgd2luZG93LnNwYUVudiA9IGNvbmZpZy5lbnYgfHwgJ3Byb2R1Y3Rpb24nO1xuICB3aW5kb3cuc3BhVmVyc2lvbiA9IHByb2Nlc3MuZW52LkJVSUxEX1ZFUlNJT047XG4gIGNvbnN0IHNwYUJhc2VXaXRoU2xhc2ggPSB3aW5kb3cuc3BhQmFzZS5lbmRzV2l0aCgnLycpID8gd2luZG93LnNwYUJhc2UgOiB3aW5kb3cuc3BhQmFzZSArICcvJztcbiAgd2luZG93LmdldE9wZW5tcnNTcGFCYXNlID0gKCkgPT4gc3BhQmFzZVdpdGhTbGFzaDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldHVwVXRpbHMoKSB7XG4gIHdpbmRvdy5jb3B5VGV4dCA9IChzb3VyY2U6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgY29uc3Qgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuXG4gICAgaWYgKHNlbCkge1xuICAgICAgY29uc3QgciA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgICByLnNlbGVjdE5vZGUoc291cmNlKTtcbiAgICAgIHNlbC5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgIHNlbC5hZGRSYW5nZShyKTtcbiAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XG4gICAgICBzZWwucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiB3aXJlU3BhUGF0aHMoKSB7XG4gIGNvbnN0IGJhc2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYmFzZScpO1xuICBjb25zdCBiYXNlSHJlZiA9IHdpbmRvdy5nZXRPcGVubXJzU3BhQmFzZSgpO1xuICBiYXNlRWxlbWVudC5ocmVmID0gYmFzZUhyZWY7XG4gIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoYmFzZUVsZW1lbnQpO1xuICBfX3dlYnBhY2tfcHVibGljX3BhdGhfXyA9IGJhc2VIcmVmO1xufVxuXG4vKipcbiAqIEluaXRpYWxpemVzIHRoZSBPcGVuTVJTIEZyb250ZW5kIEFwcCBTaGVsbC5cbiAqIEBwYXJhbSBjb25maWcgVGhlIGdsb2JhbCBjb25maWd1cmF0aW9uIHRvIGFwcGx5LlxuICovXG5mdW5jdGlvbiBpbml0aWFsaXplU3BhKGNvbmZpZzogU3BhQ29uZmlnKSB7XG4gIHNldHVwVXRpbHMoKTtcbiAgc2V0dXBQYXRocyhjb25maWcpO1xuICB3aXJlU3BhUGF0aHMoKTtcbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShfX3dlYnBhY2tfaW5pdF9zaGFyaW5nX18oJ2RlZmF1bHQnKSkudGhlbihhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgeyBjb25maWdVcmxzID0gW10sIG9mZmxpbmUgPSB0cnVlIH0gPSBjb25maWc7XG4gICAgY29uc3QgeyBydW4gfSA9IGF3YWl0IGltcG9ydCgnLi9ydW4nKTtcbiAgICByZXR1cm4gcnVuKGNvbmZpZ1VybHMsIG9mZmxpbmUpO1xuICB9KTtcbn1cblxud2luZG93LmluaXRpYWxpemVTcGEgPSBpbml0aWFsaXplU3BhO1xuIl0sIm5hbWVzIjpbInNldHVwUGF0aHMiLCJjb25maWciLCJlcnJvciIsImFwaVVybCIsImNvbnNvbGUiLCJzcGFQYXRoIiwiRXJyb3IiLCJ3aW5kb3ciLCJvcGVubXJzQmFzZSIsInNwYUJhc2UiLCJzcGFFbnYiLCJlbnYiLCJzcGFWZXJzaW9uIiwicHJvY2VzcyIsIkJVSUxEX1ZFUlNJT04iLCJzcGFCYXNlV2l0aFNsYXNoIiwiZW5kc1dpdGgiLCJnZXRPcGVubXJzU3BhQmFzZSIsInNldHVwVXRpbHMiLCJjb3B5VGV4dCIsInNvdXJjZSIsInNlbCIsImdldFNlbGVjdGlvbiIsInIiLCJkb2N1bWVudCIsImNyZWF0ZVJhbmdlIiwic2VsZWN0Tm9kZSIsInJlbW92ZUFsbFJhbmdlcyIsImFkZFJhbmdlIiwiZXhlY0NvbW1hbmQiLCJ3aXJlU3BhUGF0aHMiLCJiYXNlRWxlbWVudCIsImNyZWF0ZUVsZW1lbnQiLCJiYXNlSHJlZiIsImhyZWYiLCJoZWFkIiwiYXBwZW5kQ2hpbGQiLCJfX3dlYnBhY2tfcHVibGljX3BhdGhfXyIsImluaXRpYWxpemVTcGEiLCJQcm9taXNlIiwicmVzb2x2ZSIsIl9fd2VicGFja19pbml0X3NoYXJpbmdfXyIsInRoZW4iLCJjb25maWdVcmxzIiwib2ZmbGluZSIsInJ1biJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/index.ts\n");
|
|
8276
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setupPaths: () => (/* binding */ setupPaths),\n/* harmony export */ setupUtils: () => (/* binding */ setupUtils)\n/* harmony export */ });\n/* harmony import */ var _openmrs_esm_styleguide_dist_openmrs_esm_styleguide_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @openmrs/esm-styleguide/dist/openmrs-esm-styleguide.css */ \"../../framework/esm-styleguide/dist/openmrs-esm-styleguide.css\");\n/* harmony import */ var import_map_overrides__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! import-map-overrides */ \"../../../node_modules/import-map-overrides/dist/import-map-overrides.js\");\n/* harmony import */ var _openmrs_esm_framework__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @openmrs/esm-framework */ \"webpack/sharing/consume/default/@openmrs/esm-framework/@openmrs/esm-framework\");\n/* harmony import */ var _openmrs_esm_framework__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_openmrs_esm_framework__WEBPACK_IMPORTED_MODULE_2__);\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nfunction _ts_generator(thisArg, body) {\n var f, y, t, g, _ = {\n label: 0,\n sent: function() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n };\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() {\n return this;\n }), g;\n function verb(n) {\n return function(v) {\n return step([\n n,\n v\n ]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while(_)try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [\n op[0] & 2,\n t.value\n ];\n switch(op[0]){\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [\n 0\n ];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [\n 6,\n e\n ];\n y = 0;\n } finally{\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\n\n\n\nfunction setupPaths(config) {\n var error = false;\n if (!config.apiUrl) {\n console.error(\"initializeSpa() was called without supplying an apiUrl. This means that the application cannot communicate with the backend.\");\n error = true;\n }\n if (!config.spaPath) {\n console.error(\"initializeSpa() was called without supplying a spaPath. This means that the application cannot properly generate urls.\");\n error = true;\n }\n if (error) {\n throw new Error(\"One or more required properties in the basic configuration of the application was missing and the application cannot be rendered. Please see the browser console for details.\");\n }\n window.openmrsBase = config.apiUrl;\n window.spaBase = config.spaPath;\n window.spaEnv = config.env || \"production\";\n window.spaVersion = \"5.3.3-pre.1353-20240105\";\n var spaBaseWithSlash = window.spaBase.endsWith(\"/\") ? window.spaBase : window.spaBase + \"/\";\n window.getOpenmrsSpaBase = function() {\n return spaBaseWithSlash;\n };\n}\nfunction setupUtils() {\n window.copyText = function(source) {\n var sel = window.getSelection();\n if (sel) {\n var r = document.createRange();\n r.selectNode(source);\n sel.removeAllRanges();\n sel.addRange(r);\n document.execCommand(\"copy\");\n sel.removeAllRanges();\n }\n };\n}\nfunction wireSpaPaths() {\n var baseElement = document.createElement(\"base\");\n var baseHref = window.getOpenmrsSpaBase();\n baseElement.href = baseHref;\n document.head.appendChild(baseElement);\n __webpack_require__.p = baseHref;\n}\n/**\n * Initializes the OpenMRS Frontend App Shell.\n * @param config The global configuration to apply.\n */ function initializeSpa(config) {\n setupUtils();\n setupPaths(config);\n wireSpaPaths();\n return Promise.resolve(__webpack_require__.I(\"default\")).then(/*#__PURE__*/ _async_to_generator(function() {\n var _config_configUrls, configUrls, _config_offline, offline, run;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n _config_configUrls = config.configUrls, configUrls = _config_configUrls === void 0 ? [] : _config_configUrls, _config_offline = config.offline, offline = _config_offline === void 0 ? true : _config_offline;\n return [\n 4,\n Promise.all(/*! import() */[__webpack_require__.e(\"vendors-node_modules_i18next-browser-languagedetector_dist_esm_i18nextBrowserLanguageDetector-bec0ef\"), __webpack_require__.e(\"src_run_ts\")]).then(__webpack_require__.bind(__webpack_require__, /*! ./run */ \"./src/run.ts\"))\n ];\n case 1:\n run = _state.sent().run;\n return [\n 2,\n run(configUrls, offline)\n ];\n }\n });\n }));\n}\nwindow.initializeSpa = initializeSpa;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvaW5kZXgudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFpRTtBQUNuQztBQUNFO0FBR3pCLFNBQVNBLFdBQVdDLE1BQWlCLEVBQUU7SUFDNUMsSUFBSUMsUUFBUSxLQUFLO0lBQ2pCLElBQUksQ0FBQ0QsT0FBT0UsTUFBTSxFQUFFO1FBQ2xCQyxRQUFRRixLQUFLLENBQ1g7UUFFRkEsUUFBUSxJQUFJO0lBQ2QsQ0FBQztJQUVELElBQUksQ0FBQ0QsT0FBT0ksT0FBTyxFQUFFO1FBQ25CRCxRQUFRRixLQUFLLENBQ1g7UUFFRkEsUUFBUSxJQUFJO0lBQ2QsQ0FBQztJQUVELElBQUlBLE9BQU87UUFDVCxNQUFNLElBQUlJLE1BQ1IsaUxBQ0E7SUFDSixDQUFDO0lBRURDLE9BQU9DLFdBQVcsR0FBR1AsT0FBT0UsTUFBTTtJQUNsQ0ksT0FBT0UsT0FBTyxHQUFHUixPQUFPSSxPQUFPO0lBQy9CRSxPQUFPRyxNQUFNLEdBQUdULE9BQU9VLEdBQUcsSUFBSTtJQUM5QkosT0FBT0ssVUFBVSxHQUFHQyx5QkFBeUI7SUFDN0MsSUFBTUUsbUJBQW1CUixPQUFPRSxPQUFPLENBQUNPLFFBQVEsQ0FBQyxPQUFPVCxPQUFPRSxPQUFPLEdBQUdGLE9BQU9FLE9BQU8sR0FBRyxHQUFHO0lBQzdGRixPQUFPVSxpQkFBaUIsR0FBRztlQUFNRjs7QUFDbkMsQ0FBQztBQUVNLFNBQVNHLGFBQWE7SUFDM0JYLE9BQU9ZLFFBQVEsR0FBRyxTQUFDQyxRQUF3QjtRQUN6QyxJQUFNQyxNQUFNZCxPQUFPZSxZQUFZO1FBRS9CLElBQUlELEtBQUs7WUFDUCxJQUFNRSxJQUFJQyxTQUFTQyxXQUFXO1lBQzlCRixFQUFFRyxVQUFVLENBQUNOO1lBQ2JDLElBQUlNLGVBQWU7WUFDbkJOLElBQUlPLFFBQVEsQ0FBQ0w7WUFDYkMsU0FBU0ssV0FBVyxDQUFDO1lBQ3JCUixJQUFJTSxlQUFlO1FBQ3JCLENBQUM7SUFDSDtBQUNGLENBQUM7QUFFRCxTQUFTRyxlQUFlO0lBQ3RCLElBQU1DLGNBQWNQLFNBQVNRLGFBQWEsQ0FBQztJQUMzQyxJQUFNQyxXQUFXMUIsT0FBT1UsaUJBQWlCO0lBQ3pDYyxZQUFZRyxJQUFJLEdBQUdEO0lBQ25CVCxTQUFTVyxJQUFJLENBQUNDLFdBQVcsQ0FBQ0w7SUFDMUJNLHFCQUF1QkEsR0FBR0o7QUFDNUI7QUFFQTs7O0NBR0MsR0FDRCxTQUFTSyxjQUFjckMsTUFBaUIsRUFBRTtJQUN4Q2lCO0lBQ0FsQixXQUFXQztJQUNYNkI7SUFDQSxPQUFPUyxRQUFRQyxPQUFPLENBQUNDLHFCQUF3QkEsQ0FBQyxZQUFZQyxJQUFJLGVBQUMsK0JBQVk7Z0NBQ25FQyw2QkFBaUJDLFNBQ2pCQzs7Ozt5Q0FEb0M1QyxPQUFwQzBDLFlBQUFBLHdGQUFvQzFDLE9BQW5CMkMsU0FBQUEsdUNBQVUsSUFBSTtvQkFDdkI7O3dCQUFNLGlSQUFPOzs7b0JBQXJCQyxNQUFRLGNBQVJBO29CQUNSOzt3QkFBT0EsSUFBSUYsWUFBWUM7Ozs7SUFDekI7QUFDRjtBQUVBckMsT0FBTytCLGFBQWEsR0FBR0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4vc3JjL2luZGV4LnRzP2FkYTIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdAb3Blbm1ycy9lc20tc3R5bGVndWlkZS9kaXN0L29wZW5tcnMtZXNtLXN0eWxlZ3VpZGUuY3NzJztcbmltcG9ydCAnaW1wb3J0LW1hcC1vdmVycmlkZXMnO1xuaW1wb3J0ICdAb3Blbm1ycy9lc20tZnJhbWV3b3JrJztcbmltcG9ydCB0eXBlIHsgU3BhQ29uZmlnIH0gZnJvbSAnQG9wZW5tcnMvZXNtLWZyYW1ld29yay9zcmMvaW50ZXJuYWwnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBQYXRocyhjb25maWc6IFNwYUNvbmZpZykge1xuICBsZXQgZXJyb3IgPSBmYWxzZTtcbiAgaWYgKCFjb25maWcuYXBpVXJsKSB7XG4gICAgY29uc29sZS5lcnJvcihcbiAgICAgICdpbml0aWFsaXplU3BhKCkgd2FzIGNhbGxlZCB3aXRob3V0IHN1cHBseWluZyBhbiBhcGlVcmwuIFRoaXMgbWVhbnMgdGhhdCB0aGUgYXBwbGljYXRpb24gY2Fubm90IGNvbW11bmljYXRlIHdpdGggdGhlIGJhY2tlbmQuJyxcbiAgICApO1xuICAgIGVycm9yID0gdHJ1ZTtcbiAgfVxuXG4gIGlmICghY29uZmlnLnNwYVBhdGgpIHtcbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgJ2luaXRpYWxpemVTcGEoKSB3YXMgY2FsbGVkIHdpdGhvdXQgc3VwcGx5aW5nIGEgc3BhUGF0aC4gVGhpcyBtZWFucyB0aGF0IHRoZSBhcHBsaWNhdGlvbiBjYW5ub3QgcHJvcGVybHkgZ2VuZXJhdGUgdXJscy4nLFxuICAgICk7XG4gICAgZXJyb3IgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGVycm9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ09uZSBvciBtb3JlIHJlcXVpcmVkIHByb3BlcnRpZXMgaW4gdGhlIGJhc2ljIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGFwcGxpY2F0aW9uIHdhcyBtaXNzaW5nIGFuZCB0aGUgYXBwbGljYXRpb24gY2Fubm90IGJlIHJlbmRlcmVkLiBQbGVhc2Ugc2VlIHRoZSBicm93c2VyIGNvbnNvbGUgZm9yIGRldGFpbHMuJyxcbiAgICApO1xuICB9XG5cbiAgd2luZG93Lm9wZW5tcnNCYXNlID0gY29uZmlnLmFwaVVybDtcbiAgd2luZG93LnNwYUJhc2UgPSBjb25maWcuc3BhUGF0aDtcbiAgd2luZG93LnNwYUVudiA9IGNvbmZpZy5lbnYgfHwgJ3Byb2R1Y3Rpb24nO1xuICB3aW5kb3cuc3BhVmVyc2lvbiA9IHByb2Nlc3MuZW52LkJVSUxEX1ZFUlNJT047XG4gIGNvbnN0IHNwYUJhc2VXaXRoU2xhc2ggPSB3aW5kb3cuc3BhQmFzZS5lbmRzV2l0aCgnLycpID8gd2luZG93LnNwYUJhc2UgOiB3aW5kb3cuc3BhQmFzZSArICcvJztcbiAgd2luZG93LmdldE9wZW5tcnNTcGFCYXNlID0gKCkgPT4gc3BhQmFzZVdpdGhTbGFzaDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldHVwVXRpbHMoKSB7XG4gIHdpbmRvdy5jb3B5VGV4dCA9IChzb3VyY2U6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgY29uc3Qgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuXG4gICAgaWYgKHNlbCkge1xuICAgICAgY29uc3QgciA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgICByLnNlbGVjdE5vZGUoc291cmNlKTtcbiAgICAgIHNlbC5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgIHNlbC5hZGRSYW5nZShyKTtcbiAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XG4gICAgICBzZWwucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiB3aXJlU3BhUGF0aHMoKSB7XG4gIGNvbnN0IGJhc2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYmFzZScpO1xuICBjb25zdCBiYXNlSHJlZiA9IHdpbmRvdy5nZXRPcGVubXJzU3BhQmFzZSgpO1xuICBiYXNlRWxlbWVudC5ocmVmID0gYmFzZUhyZWY7XG4gIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoYmFzZUVsZW1lbnQpO1xuICBfX3dlYnBhY2tfcHVibGljX3BhdGhfXyA9IGJhc2VIcmVmO1xufVxuXG4vKipcbiAqIEluaXRpYWxpemVzIHRoZSBPcGVuTVJTIEZyb250ZW5kIEFwcCBTaGVsbC5cbiAqIEBwYXJhbSBjb25maWcgVGhlIGdsb2JhbCBjb25maWd1cmF0aW9uIHRvIGFwcGx5LlxuICovXG5mdW5jdGlvbiBpbml0aWFsaXplU3BhKGNvbmZpZzogU3BhQ29uZmlnKSB7XG4gIHNldHVwVXRpbHMoKTtcbiAgc2V0dXBQYXRocyhjb25maWcpO1xuICB3aXJlU3BhUGF0aHMoKTtcbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShfX3dlYnBhY2tfaW5pdF9zaGFyaW5nX18oJ2RlZmF1bHQnKSkudGhlbihhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgeyBjb25maWdVcmxzID0gW10sIG9mZmxpbmUgPSB0cnVlIH0gPSBjb25maWc7XG4gICAgY29uc3QgeyBydW4gfSA9IGF3YWl0IGltcG9ydCgnLi9ydW4nKTtcbiAgICByZXR1cm4gcnVuKGNvbmZpZ1VybHMsIG9mZmxpbmUpO1xuICB9KTtcbn1cblxud2luZG93LmluaXRpYWxpemVTcGEgPSBpbml0aWFsaXplU3BhO1xuIl0sIm5hbWVzIjpbInNldHVwUGF0aHMiLCJjb25maWciLCJlcnJvciIsImFwaVVybCIsImNvbnNvbGUiLCJzcGFQYXRoIiwiRXJyb3IiLCJ3aW5kb3ciLCJvcGVubXJzQmFzZSIsInNwYUJhc2UiLCJzcGFFbnYiLCJlbnYiLCJzcGFWZXJzaW9uIiwicHJvY2VzcyIsIkJVSUxEX1ZFUlNJT04iLCJzcGFCYXNlV2l0aFNsYXNoIiwiZW5kc1dpdGgiLCJnZXRPcGVubXJzU3BhQmFzZSIsInNldHVwVXRpbHMiLCJjb3B5VGV4dCIsInNvdXJjZSIsInNlbCIsImdldFNlbGVjdGlvbiIsInIiLCJkb2N1bWVudCIsImNyZWF0ZVJhbmdlIiwic2VsZWN0Tm9kZSIsInJlbW92ZUFsbFJhbmdlcyIsImFkZFJhbmdlIiwiZXhlY0NvbW1hbmQiLCJ3aXJlU3BhUGF0aHMiLCJiYXNlRWxlbWVudCIsImNyZWF0ZUVsZW1lbnQiLCJiYXNlSHJlZiIsImhyZWYiLCJoZWFkIiwiYXBwZW5kQ2hpbGQiLCJfX3dlYnBhY2tfcHVibGljX3BhdGhfXyIsImluaXRpYWxpemVTcGEiLCJQcm9taXNlIiwicmVzb2x2ZSIsIl9fd2VicGFja19pbml0X3NoYXJpbmdfXyIsInRoZW4iLCJjb25maWdVcmxzIiwib2ZmbGluZSIsInJ1biJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/index.ts\n");
|
|
8277
8277
|
|
|
8278
8278
|
/***/ }),
|
|
8279
8279
|
|
|
@@ -12773,8 +12773,8 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
12773
12773
|
/******/ var promises = [];
|
|
12774
12774
|
/******/ switch(name) {
|
|
12775
12775
|
/******/ case "default": {
|
|
12776
|
-
/******/ register("@openmrs/esm-framework/src/internal", "5.3.3-pre.
|
|
12777
|
-
/******/ register("@openmrs/esm-framework", "5.3.3-pre.
|
|
12776
|
+
/******/ register("@openmrs/esm-framework/src/internal", "5.3.3-pre.1353", () => (() => (__webpack_require__(/*! ../../framework/esm-framework/src/internal.ts */ "../../framework/esm-framework/src/internal.ts"))), 1);
|
|
12777
|
+
/******/ register("@openmrs/esm-framework", "5.3.3-pre.1353", () => (() => (__webpack_require__(/*! ../../framework/esm-framework/src/index.ts */ "../../framework/esm-framework/src/index.ts"))), 1);
|
|
12778
12778
|
/******/ register("dayjs", "1.11.5", () => (() => (__webpack_require__(/*! ../../../node_modules/dayjs/dayjs.min.js */ "../../../node_modules/dayjs/dayjs.min.js"))), 1);
|
|
12779
12779
|
/******/ register("i18next", "21.10.0", () => (() => (__webpack_require__(/*! ../../../node_modules/i18next/dist/esm/i18next.js */ "../../../node_modules/i18next/dist/esm/i18next.js"))), 1);
|
|
12780
12780
|
/******/ register("react-dom", "18.2.0", () => (() => (__webpack_require__(/*! ../../../node_modules/react-dom/index.js */ "../../../node_modules/react-dom/index.js"))), 1);
|