@openmrs/esm-form-engine-lib 3.3.1-pre.2201 → 3.3.1-pre.2208
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
var _openmrs_esm_form_engine_lib;(()=>{"use strict";var e,r,t,n,o,i,a,l,s,u,f,d,p,c,h,m,v,g,b,y,w,_={78008:(e,r,t)=>{var n={"./start":()=>Promise.all([t.e(177),t.e(435),t.e(759),t.e(72),t.e(286),t.e(
|
|
1
|
+
var _openmrs_esm_form_engine_lib;(()=>{"use strict";var e,r,t,n,o,i,a,l,s,u,f,d,p,c,h,m,v,g,b,y,w,_={78008:(e,r,t)=>{var n={"./start":()=>Promise.all([t.e(177),t.e(435),t.e(759),t.e(72),t.e(286),t.e(449)]).then((()=>()=>t(69449)))},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),i=(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:()=>i})}},j={};function P(e){var r=j[e];if(void 0!==r)return r.exports;var t=j[e]={id:e,loaded:!1,exports:{}};return _[e].call(t.exports,t,t.exports,P),t.loaded=!0,t.exports}P.m=_,P.c=j,P.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return P.d(r,{a:r}),r},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,P.t=function(t,n){if(1&n&&(t=this(t)),8&n)return t;if("object"==typeof t&&t){if(4&n&&t.__esModule)return t;if(16&n&&"function"==typeof t.then)return t}var o=Object.create(null);P.r(o);var i={};e=e||[null,r({}),r([]),r(r)];for(var a=2&n&&t;"object"==typeof a&&!~e.indexOf(a);a=r(a))Object.getOwnPropertyNames(a).forEach((e=>i[e]=()=>t[e]));return i.default=()=>t,P.d(o,i),o},P.d=(e,r)=>{for(var t in r)P.o(r,t)&&!P.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},P.f={},P.e=e=>Promise.all(Object.keys(P.f).reduce(((r,t)=>(P.f[t](e,r),r)),[])),P.u=e=>e+".js",P.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),P.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t={},n="@openmrs/esm-form-engine-lib:",P.l=(e,r,o,i)=>{if(t[e])t[e].push(r);else{var a,l;if(void 0!==o)for(var s=document.getElementsByTagName("script"),u=0;u<s.length;u++){var f=s[u];if(f.getAttribute("src")==e||f.getAttribute("data-webpack")==n+o){a=f;break}}a||(l=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,P.nc&&a.setAttribute("nonce",P.nc),a.setAttribute("data-webpack",n+o),a.src=e),t[e]=[r];var d=(r,n)=>{a.onerror=a.onload=null,clearTimeout(p);var o=t[e];if(delete t[e],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach((e=>e(n))),r)return r(n)},p=setTimeout(d.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=d.bind(null,a.onerror),a.onload=d.bind(null,a.onload),l&&document.head.appendChild(a)}},P.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},P.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),P.j=719,(()=>{P.S={};var e={},r={};P.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];P.o(P.S,t)||(P.S[t]={});var i=P.S[t],a="@openmrs/esm-form-engine-lib",l=(e,r,t,n)=>{var o=i[e]=i[e]||{},l=o[r];(!l||!l.loaded&&(!n!=!l.eager?n:a>l.from))&&(o[r]={get:t,from:a,eager:!!n})},s=[];return"default"===t&&(l("@openmrs/esm-framework","8.0.1-pre.3511",(()=>Promise.all([P.e(177),P.e(747),P.e(435),P.e(72),P.e(184),P.e(286),P.e(796)]).then((()=>()=>P(16747))))),l("dayjs","1.11.13",(()=>P.e(353).then((()=>()=>P(74353))))),l("i18next","25.6.0",(()=>P.e(635).then((()=>()=>P(72635))))),l("react-i18next","16.0.0",(()=>Promise.all([P.e(255),P.e(72)]).then((()=>()=>P(77255))))),l("react","18.3.1",(()=>P.e(540).then((()=>()=>P(96540))))),l("swr/immutable","2.3.3",(()=>Promise.all([P.e(177),P.e(72),P.e(606)]).then((()=>()=>P(54225))))),l("swr/infinite","2.3.3",(()=>Promise.all([P.e(177),P.e(72),P.e(41)]).then((()=>()=>P(23041)))))),e[t]=s.length?Promise.all(s).then((()=>e[t]=1)):1}}})(),(()=>{var e;P.g.importScripts&&(e=P.g.location+"");var r=P.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),P.p=e})(),o=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},i=(e,r)=>{e=o(e),r=o(r);for(var t=0;;){if(t>=e.length)return t<r.length&&"u"!=(typeof r[t])[0];var n=e[t],i=(typeof n)[0];if(t>=r.length)return"u"==i;var a=r[t],l=(typeof a)[0];if(i!=l)return"o"==i&&"n"==l||"s"==l||"u"==i;if("o"!=i&&"u"!=i&&n!=a)return n<a;t++}},a=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,o=1;o<e.length;o++)n--,t+="u"==(typeof(l=e[o]))[0]?"-":(n>0?".":"")+(n=2,l);return t}var i=[];for(o=1;o<e.length;o++){var l=e[o];i.push(0===l?"not("+s()+")":1===l?"("+s()+" || "+s()+")":2===l?i.pop()+" "+i.pop():a(l))}return s();function s(){return i.pop().replace(/^\((.+)\)$/,"$1")}},l=(e,r)=>{if(0 in e){r=o(r);var t=e[0],n=t<0;n&&(t=-t-1);for(var i=0,a=1,s=!0;;a++,i++){var u,f,d=a<e.length?(typeof e[a])[0]:"";if(i>=r.length||"o"==(f=(typeof(u=r[i]))[0]))return!s||("u"==d?a>t&&!n:""==d!=n);if("u"==f){if(!s||"u"!=d)return!1}else if(s)if(d==f)if(a<=t){if(u!=e[a])return!1}else{if(n?u>e[a]:u<e[a])return!1;u!=e[a]&&(s=!1)}else if("s"!=d&&"n"!=d){if(n||a<=t)return!1;s=!1,a--}else{if(a<=t||f<d!=n)return!1;s=!1}else"s"!=d&&"n"!=d&&(s=!1,a--)}}var p=[],c=p.pop.bind(p);for(i=1;i<e.length;i++){var h=e[i];p.push(1==h?c()|c():2==h?c()&c():h?l(h,r):!c())}return!!c()},s=(e,r)=>e&&P.o(e,r),u=e=>(e.loaded=1,e.get()),f=e=>Object.keys(e).reduce(((r,t)=>(e[t].eager&&(r[t]=e[t]),r)),{}),d=(e,r,t)=>{var n=t?f(e[r]):e[r];return Object.keys(n).reduce(((e,r)=>!e||!n[e].loaded&&i(e,r)?r:e),0)},p=(e,r,t,n)=>"Unsatisfied version "+t+" from "+(t&&e[r][t].from)+" of shared singleton module "+r+" (required "+a(n)+")",c=e=>{throw new Error(e)},h=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},m=(e,r,t)=>t?t():((e,r)=>c("Shared module "+r+" doesn't exist in shared scope "+e))(e,r),v=(e=>function(r,t,n,o,i){var a=P.I(r);return a&&a.then&&!n?a.then(e.bind(e,r,P.S[r],t,!1,o,i)):e(r,P.S[r],t,n,o,i)})(((e,r,t,n,o,i)=>{if(!s(r,t))return m(e,t,i);var a=d(r,t,n);return l(o,a)||h(p(r,t,a,o)),u(r[t][a])})),g={},b={16072:()=>v("default","react",!1,[1,18],(()=>P.e(540).then((()=>()=>P(96540))))),56339:()=>v("default","swr/infinite",!1,[1,2],(()=>P.e(422).then((()=>()=>P(23041))))),92232:()=>v("default","i18next",!1,[1,25],(()=>P.e(635).then((()=>()=>P(72635))))),2076:()=>v("default","react-i18next",!1,[1,16],(()=>P.e(255).then((()=>()=>P(77255))))),15847:()=>v("default","@openmrs/esm-framework",!1,[1,8],(()=>Promise.all([P.e(177),P.e(747),P.e(184)]).then((()=>()=>P(16747))))),44209:()=>v("default","swr/immutable",!1,[1,2],(()=>Promise.all([P.e(177),P.e(225)]).then((()=>()=>P(54225))))),70231:()=>v("default","dayjs",!1,[1,1],(()=>P.e(353).then((()=>()=>P(74353)))))},y={72:[16072],184:[56339,92232],286:[2076,15847],449:[44209,70231],796:[44209,70231]},w={},P.f.consumes=(e,r)=>{P.o(y,e)&&y[e].forEach((e=>{if(P.o(g,e))return r.push(g[e]);if(!w[e]){var t=r=>{g[e]=0,P.m[e]=t=>{delete P.c[e],t.exports=r()}};w[e]=!0;var n=r=>{delete g[e],P.m[e]=t=>{throw delete P.c[e],r}};try{var o=b[e]();o.then?r.push(g[e]=o.then(t).catch(n)):t(o)}catch(e){n(e)}}}))},(()=>{var e={719:0};P.f.j=(r,t)=>{var n=P.o(e,r)?e[r]:void 0;if(0!==n)if(n)t.push(n[2]);else if(/^(184|286|72)$/.test(r))e[r]=0;else{var o=new Promise(((t,o)=>n=e[r]=[t,o]));t.push(n[2]=o);var i=P.p+P.u(r),a=new Error;P.l(i,(t=>{if(P.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n)){var o=t&&("load"===t.type?"missing":t.type),i=t&&t.target&&t.target.src;a.message="Loading chunk "+r+" failed.\n("+o+": "+i+")",a.name="ChunkLoadError",a.type=o,a.request=i,n[1](a)}}),"chunk-"+r,r)}};var r=(r,t)=>{var n,o,[i,a,l]=t,s=0;if(i.some((r=>0!==e[r]))){for(n in a)P.o(a,n)&&(P.m[n]=a[n]);l&&l(P)}for(r&&r(t);s<i.length;s++)o=i[s],P.o(e,o)&&e[o]&&e[o][0](),e[o]=0},t=globalThis.webpackChunk_openmrs_esm_form_engine_lib=globalThis.webpackChunk_openmrs_esm_form_engine_lib||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),P.nc=void 0;var S=P(78008);_openmrs_esm_form_engine_lib=S})();
|
package/package.json
CHANGED
|
@@ -54,7 +54,7 @@ const FormProcessorFactory = ({
|
|
|
54
54
|
});
|
|
55
55
|
const { t } = useTranslation();
|
|
56
56
|
const { formFields: rawFormFields, conceptReferences } = useFormFields(formJson);
|
|
57
|
-
const { concepts: formFieldsConcepts, isLoading: isLoadingConcepts } = useConcepts(conceptReferences);
|
|
57
|
+
const { concepts: formFieldsConcepts, isLoading: isLoadingConcepts } = useConcepts(Array.from(conceptReferences));
|
|
58
58
|
const formFieldsWithMeta = useFormFieldsMeta(rawFormFields, formFieldsConcepts);
|
|
59
59
|
const formFieldAdapters = useFormFieldValueAdapters(rawFormFields);
|
|
60
60
|
const formFieldValidators = useFormFieldValidators(rawFormFields);
|
package/src/hooks/useConcepts.ts
CHANGED
|
@@ -1,53 +1,58 @@
|
|
|
1
1
|
import { useMemo } from 'react';
|
|
2
|
-
import
|
|
3
|
-
import { type FetchResponse, openmrsFetch,
|
|
4
|
-
import { useRestApiMaxResults } from './useRestApiMaxResults';
|
|
5
|
-
|
|
6
|
-
type ConceptFetchResponse = FetchResponse<{ results: Array<OpenmrsResource> }>;
|
|
2
|
+
import useSWR from 'swr';
|
|
3
|
+
import { type Concept, type FetchResponse, openmrsFetch, restBaseUrl } from '@openmrs/esm-framework';
|
|
7
4
|
|
|
8
5
|
const conceptRepresentation =
|
|
9
6
|
'custom:(uuid,display,conceptClass:(uuid,display),answers:(uuid,display),conceptMappings:(conceptReferenceTerm:(conceptSource:(name),code)))';
|
|
10
7
|
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
type ConceptRepresentation = Pick<Concept, 'uuid' | 'display'> & {
|
|
9
|
+
conceptClass: Pick<Concept['conceptClass'], 'uuid' | 'display'>;
|
|
10
|
+
answers: Array<{
|
|
11
|
+
uuid: string;
|
|
12
|
+
display: string;
|
|
13
|
+
}>;
|
|
14
|
+
conceptMappings: Array<{
|
|
15
|
+
conceptReferenceTerm: {
|
|
16
|
+
conceptSource: {
|
|
17
|
+
name: string;
|
|
18
|
+
};
|
|
19
|
+
code: string;
|
|
20
|
+
};
|
|
21
|
+
}>;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
type ConceptFetchResponse = FetchResponse<{ [reference: string]: ConceptRepresentation }>;
|
|
25
|
+
|
|
26
|
+
export function useConcepts(references: Array<string>): {
|
|
27
|
+
concepts: Array<ConceptRepresentation> | undefined;
|
|
13
28
|
isLoading: boolean;
|
|
14
29
|
error: Error | undefined;
|
|
15
30
|
} {
|
|
16
|
-
const {
|
|
17
|
-
|
|
18
|
-
|
|
31
|
+
const { data, error, isLoading } = useSWR<ConceptFetchResponse, Error>(
|
|
32
|
+
[`${restBaseUrl}/conceptreferences?v=${conceptRepresentation}`, references],
|
|
33
|
+
([url, refs]) =>
|
|
34
|
+
openmrsFetch(url, {
|
|
35
|
+
headers: {
|
|
36
|
+
'Content-Type': 'application/json',
|
|
37
|
+
},
|
|
38
|
+
body: {
|
|
39
|
+
references: refs,
|
|
40
|
+
},
|
|
41
|
+
method: 'POST',
|
|
42
|
+
}),
|
|
43
|
+
{
|
|
44
|
+
revalidateIfStale: false,
|
|
45
|
+
revalidateOnFocus: false,
|
|
46
|
+
revalidateOnReconnect: false,
|
|
47
|
+
shouldRetryOnError: false,
|
|
48
|
+
},
|
|
49
|
+
);
|
|
19
50
|
|
|
20
|
-
const
|
|
21
|
-
if (index >= totalPages) {
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
51
|
+
const concepts = useMemo(() => (data?.data ? Object.values(data.data) : undefined), [data]);
|
|
24
52
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
',',
|
|
30
|
-
)}&v=${conceptRepresentation}&limit=${maxResults}`;
|
|
53
|
+
return {
|
|
54
|
+
concepts,
|
|
55
|
+
isLoading,
|
|
56
|
+
error,
|
|
31
57
|
};
|
|
32
|
-
|
|
33
|
-
const { data, error, isLoading } = useSWRInfinite<ConceptFetchResponse, Error>(getUrl, openmrsFetch, {
|
|
34
|
-
initialSize: totalPages,
|
|
35
|
-
revalidateIfStale: false,
|
|
36
|
-
revalidateOnFocus: false,
|
|
37
|
-
revalidateOnReconnect: false,
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
const results = useMemo(
|
|
41
|
-
() => ({
|
|
42
|
-
// data?.[0] check is added for tests, as response is undefined in tests
|
|
43
|
-
// hence the returned concepts are [undefined], which breaks the form-helper.ts
|
|
44
|
-
// As it cannot read `uuid` of `undefined`
|
|
45
|
-
concepts: data && data?.[0] ? [].concat(...data.map((res) => res?.data?.results)) : undefined,
|
|
46
|
-
error,
|
|
47
|
-
isLoading,
|
|
48
|
-
}),
|
|
49
|
-
[data, error, isLoading],
|
|
50
|
-
);
|
|
51
|
-
|
|
52
|
-
return results;
|
|
53
58
|
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { useMemo } from 'react';
|
|
2
|
-
import useSWR from 'swr';
|
|
3
|
-
import { type FetchResponse, openmrsFetch, restBaseUrl } from '@openmrs/esm-framework';
|
|
4
|
-
|
|
5
|
-
type GlobalPropertyResponse = FetchResponse<{
|
|
6
|
-
results: Array<{ property: string; value: string }>;
|
|
7
|
-
}>;
|
|
8
|
-
|
|
9
|
-
const DEFAULT_CHUNK_SIZE = 100;
|
|
10
|
-
|
|
11
|
-
export function useRestApiMaxResults() {
|
|
12
|
-
const { data, error, isLoading } = useSWR<GlobalPropertyResponse, Error>(
|
|
13
|
-
`${restBaseUrl}/systemsetting?q=webservices.rest.maxResultsAbsolute&v=custom:(property,value)`,
|
|
14
|
-
openmrsFetch,
|
|
15
|
-
);
|
|
16
|
-
|
|
17
|
-
const maxResults = useMemo(() => {
|
|
18
|
-
try {
|
|
19
|
-
const maxResultsValue = data?.data.results.find(
|
|
20
|
-
(prop) => prop.property === 'webservices.rest.maxResultsAbsolute',
|
|
21
|
-
)?.value;
|
|
22
|
-
|
|
23
|
-
const parsedValue = parseInt(maxResultsValue ?? '');
|
|
24
|
-
return !isNaN(parsedValue) && parsedValue > 0 ? parsedValue : DEFAULT_CHUNK_SIZE;
|
|
25
|
-
} catch {
|
|
26
|
-
return DEFAULT_CHUNK_SIZE;
|
|
27
|
-
}
|
|
28
|
-
}, [data]);
|
|
29
|
-
|
|
30
|
-
return {
|
|
31
|
-
maxResults,
|
|
32
|
-
error,
|
|
33
|
-
isLoading,
|
|
34
|
-
};
|
|
35
|
-
}
|