@openmrs/esm-form-engine-lib 3.1.5-pre.1886 → 3.1.5-pre.1891
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/dist/openmrs-esm-form-engine-lib.js +1 -1
- package/jest.config.js +2 -2
- package/package.json +6 -5
- package/src/components/error/error-modal.component.tsx +1 -1
- package/src/components/field-label/field-label.component.tsx +4 -5
- package/src/components/inputs/multi-select/multi-select.component.tsx +9 -13
- package/src/components/inputs/radio/radio.component.tsx +4 -3
- package/src/components/inputs/text/text.component.tsx +3 -1
- package/src/components/label/label.component.tsx +1 -1
- package/src/declarations.d.ts +0 -1
- package/tsconfig.json +12 -2
@@ -1 +1 @@
|
|
1
|
-
var _openmrs_esm_form_engine_lib;(()=>{"use strict";var e,r,t,n,o,i,
|
1
|
+
var _openmrs_esm_form_engine_lib;(()=>{"use strict";var e,r,t,n,o,a,i,l,s,u,f,p,d,c,h,m,v,g,b,y,_,w={78008:(e,r,t)=>{var n={"./start":()=>Promise.all([t.e(633),t.e(981),t.e(837),t.e(72),t.e(785),t.e(879),t.e(102)]).then((()=>()=>t(96102)))},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})}},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 w[e].call(t.exports,t,t.exports,P),t.loaded=!0,t.exports}P.m=w,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 a={};e=e||[null,r({}),r([]),r(r)];for(var i=2&n&&t;"object"==typeof i&&!~e.indexOf(i);i=r(i))Object.getOwnPropertyNames(i).forEach((e=>a[e]=()=>t[e]));return a.default=()=>t,P.d(o,a),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,a)=>{if(t[e])t[e].push(r);else{var i,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){i=f;break}}i||(l=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,P.nc&&i.setAttribute("nonce",P.nc),i.setAttribute("data-webpack",n+o),i.src=e),t[e]=[r];var p=(r,n)=>{i.onerror=i.onload=null,clearTimeout(d);var o=t[e];if(delete t[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach((e=>e(n))),r)return r(n)},d=setTimeout(p.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=p.bind(null,i.onerror),i.onload=p.bind(null,i.onload),l&&document.head.appendChild(i)}},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 a=P.S[t],i="@openmrs/esm-form-engine-lib",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","6.3.1-pre.3047",(()=>Promise.all([P.e(502),P.e(633),P.e(981),P.e(521),P.e(72),P.e(785),P.e(576),P.e(243)]).then((()=>()=>P(23521))))),l("@openmrs/esm-patient-common-lib","10.2.1-pre.7822",(()=>Promise.all([P.e(502),P.e(981),P.e(670),P.e(72),P.e(785),P.e(879),P.e(624)]).then((()=>()=>P(43670))))),l("dayjs","1.11.13",(()=>P.e(353).then((()=>()=>P(74353))))),l("i18next","23.16.0",(()=>P.e(635).then((()=>()=>P(72635))))),l("react-i18next","11.18.6",(()=>Promise.all([P.e(414),P.e(72)]).then((()=>()=>P(93414))))),l("react","18.3.1",(()=>P.e(540).then((()=>()=>P(96540))))),l("swr/_internal","2.2.5",(()=>Promise.all([P.e(993),P.e(72)]).then((()=>()=>P(14993)))))),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},a=(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],a=(typeof n)[0];if(t>=r.length)return"u"==a;var i=r[t],l=(typeof i)[0];if(a!=l)return"o"==a&&"n"==l||"s"==l||"u"==a;if("o"!=a&&"u"!=a&&n!=i)return n<i;t++}},i=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 a=[];for(o=1;o<e.length;o++){var l=e[o];a.push(0===l?"not("+s()+")":1===l?"("+s()+" || "+s()+")":2===l?a.pop()+" "+a.pop():i(l))}return s();function s(){return a.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 a=0,i=1,s=!0;;i++,a++){var u,f,p=i<e.length?(typeof e[i])[0]:"";if(a>=r.length||"o"==(f=(typeof(u=r[a]))[0]))return!s||("u"==p?i>t&&!n:""==p!=n);if("u"==f){if(!s||"u"!=p)return!1}else if(s)if(p==f)if(i<=t){if(u!=e[i])return!1}else{if(n?u>e[i]:u<e[i])return!1;u!=e[i]&&(s=!1)}else if("s"!=p&&"n"!=p){if(n||i<=t)return!1;s=!1,i--}else{if(i<=t||f<p!=n)return!1;s=!1}else"s"!=p&&"n"!=p&&(s=!1,i--)}}var d=[],c=d.pop.bind(d);for(a=1;a<e.length;a++){var h=e[a];d.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)),{}),p=(e,r,t)=>{var n=t?f(e[r]):e[r];return Object.keys(n).reduce(((e,r)=>!e||!n[e].loaded&&a(e,r)?r:e),0)},d=(e,r,t,n)=>"Unsatisfied version "+t+" from "+(t&&e[r][t].from)+" of shared singleton module "+r+" (required "+i(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,a){var i=P.I(r);return i&&i.then&&!n?i.then(e.bind(e,r,P.S[r],t,!1,o,a)):e(r,P.S[r],t,n,o,a)})(((e,r,t,n,o,a)=>{if(!s(r,t))return m(e,t,a);var i=p(r,t,n);return l(o,i)||h(d(r,t,i,o)),u(r[t][i])})),g={},b={16072:()=>v("default","react",!1,[1,18],(()=>P.e(540).then((()=>()=>P(96540))))),29197:()=>v("default","@openmrs/esm-framework",!1,[1,6],(()=>Promise.all([P.e(502),P.e(633),P.e(521),P.e(576)]).then((()=>()=>P(23521))))),53941:()=>v("default","react-i18next",!1,[1,11],(()=>P.e(414).then((()=>()=>P(93414))))),88465:()=>v("default","swr/_internal",!1,[1,2],(()=>P.e(993).then((()=>()=>P(14993))))),70231:()=>v("default","dayjs",!1,[1,1],(()=>P.e(353).then((()=>()=>P(74353))))),76766:()=>v("default","i18next",!1,[1,23],(()=>P.e(635).then((()=>()=>P(72635))))),80879:()=>v("default","@openmrs/esm-patient-common-lib",!1,[1,10],(()=>Promise.all([P.e(502),P.e(670)]).then((()=>()=>P(43670)))))},y={72:[16072],102:[70231],576:[70231,76766],785:[29197,53941,88465],879:[80879]},_={},P.f.consumes=(e,r)=>{P.o(y,e)&&y[e].forEach((e=>{if(P.o(g,e))return r.push(g[e]);if(!_[e]){var t=r=>{g[e]=0,P.m[e]=t=>{delete P.c[e],t.exports=r()}};_[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(/^(576|72|785|879)$/.test(r))e[r]=0;else{var o=new Promise(((t,o)=>n=e[r]=[t,o]));t.push(n[2]=o);var a=P.p+P.u(r),i=new Error;P.l(a,(t=>{if(P.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)}};var r=(r,t)=>{var n,o,[a,i,l]=t,s=0;if(a.some((r=>0!==e[r]))){for(n in i)P.o(i,n)&&(P.m[n]=i[n]);l&&l(P)}for(r&&r(t);s<a.length;s++)o=a[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/jest.config.js
CHANGED
@@ -13,9 +13,9 @@ module.exports = {
|
|
13
13
|
coverageReporters: ['json-summary', 'lcov'],
|
14
14
|
collectCoverageFrom: ['./src/**', '!./src/components/**/*.snap'],
|
15
15
|
transform: {
|
16
|
-
'^.+\\.
|
16
|
+
'^.+\\.[jt]sx?$': ['@swc/jest'],
|
17
17
|
},
|
18
|
-
transformIgnorePatterns: ['/node_modules/(?!@openmrs)'],
|
18
|
+
transformIgnorePatterns: ['/node_modules/(?!@openmrs|.+\\.pnp\\.[^\\/]+$)'],
|
19
19
|
moduleDirectories: ['node_modules', '__mocks__', __dirname],
|
20
20
|
moduleNameMapper: {
|
21
21
|
'^dexie$': require.resolve('dexie'),
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@openmrs/esm-form-engine-lib",
|
3
|
-
"version": "3.1.5-pre.
|
3
|
+
"version": "3.1.5-pre.1891",
|
4
4
|
"description": "React Form Engine for O3",
|
5
5
|
"browser": "dist/openmrs-esm-form-engine-lib.js",
|
6
6
|
"main": "src/index.ts",
|
@@ -29,7 +29,7 @@
|
|
29
29
|
"access": "public"
|
30
30
|
},
|
31
31
|
"dependencies": {
|
32
|
-
"@carbon/react": "^1.
|
32
|
+
"@carbon/react": "^1.83.0",
|
33
33
|
"classnames": "^2.5.1",
|
34
34
|
"lodash-es": "^4.17.21",
|
35
35
|
"react-error-boundary": "^4.0.13",
|
@@ -88,15 +88,16 @@
|
|
88
88
|
"react": "^18.3.1",
|
89
89
|
"react-dom": "^18.3.1",
|
90
90
|
"react-i18next": "^11.18.6",
|
91
|
+
"resize-observer-polyfill": "^1.5.1",
|
91
92
|
"sass": "^1.77.2",
|
92
93
|
"swc-loader": "^0.2.6",
|
93
94
|
"swr": "^2.2.5",
|
94
95
|
"turbo": "^2.5.2",
|
95
96
|
"typescript": "^4.9.5",
|
96
|
-
"webpack": "^5.
|
97
|
+
"webpack": "^5.99.9",
|
97
98
|
"webpack-bundle-analyzer": "^4.10.2",
|
98
|
-
"webpack-cli": "^
|
99
|
-
"webpack-dev-server": "^
|
99
|
+
"webpack-cli": "^6.0.1",
|
100
|
+
"webpack-dev-server": "^5.2.1"
|
100
101
|
},
|
101
102
|
"lint-staged": {
|
102
103
|
"*.{ts,tsx}": "eslint --cache --fix --max-warnings 0",
|
@@ -19,7 +19,7 @@ const ErrorModal: React.FC<{ errors: ValidationResult[] }> = ({ errors }) => {
|
|
19
19
|
}
|
20
20
|
});
|
21
21
|
|
22
|
-
return Object.values(errorMessages).
|
22
|
+
return Object.values(errorMessages).join(', ');
|
23
23
|
}, [errors, t]);
|
24
24
|
|
25
25
|
return (
|
@@ -1,10 +1,9 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { Tooltip } from '@carbon/react';
|
3
|
+
import { Information } from '@carbon/react/icons';
|
3
4
|
import { useTranslation } from 'react-i18next';
|
4
5
|
import { type FormField } from '../../types';
|
5
|
-
|
6
6
|
import styles from './field-label.scss';
|
7
|
-
import { Information } from '@carbon/react/icons';
|
8
7
|
|
9
8
|
interface FieldLabelProps {
|
10
9
|
field: FormField;
|
@@ -19,8 +18,8 @@ const TooltipWrapper: React.FC<{ field: FormField; children: React.ReactNode }>
|
|
19
18
|
const hasTooltip = Boolean(field.questionInfo);
|
20
19
|
|
21
20
|
return hasTooltip ? (
|
22
|
-
<Tooltip
|
23
|
-
{children}
|
21
|
+
<Tooltip autoAlign label={t(field.questionInfo)}>
|
22
|
+
<div>{children}</div>
|
24
23
|
</Tooltip>
|
25
24
|
) : (
|
26
25
|
<>{children}</>
|
@@ -42,7 +41,7 @@ const FieldLabel: React.FC<FieldLabelProps> = ({ field, customLabel }) => {
|
|
42
41
|
)}
|
43
42
|
{hasTooltip && (
|
44
43
|
<Information
|
45
|
-
size={
|
44
|
+
size={16}
|
46
45
|
aria-hidden="true"
|
47
46
|
className={styles.tooltipIcon}
|
48
47
|
data-testid={`${field.id}-information-icon`}
|
@@ -93,27 +93,23 @@ const MultiSelect: React.FC<FormFieldInputProps> = ({ field, value, errors, warn
|
|
93
93
|
<Layer>
|
94
94
|
{isSearchable ? (
|
95
95
|
<FilterableMultiSelect
|
96
|
+
disabled={field.isDisabled}
|
96
97
|
id={field.id}
|
97
|
-
key={field.id}
|
98
|
-
placeholder={t('search', 'Search') + '...'}
|
99
|
-
onChange={handleSelectItemsChange}
|
100
|
-
items={selectOptions}
|
101
98
|
initialSelectedItems={initiallySelectedQuestionItems}
|
102
|
-
label={''}
|
103
|
-
titleText={<FieldLabel field={field} />}
|
104
|
-
itemToString={(item) => (item ? t(item.label) : ' ')}
|
105
|
-
disabled={field.isDisabled}
|
106
99
|
invalid={errors.length > 0}
|
107
100
|
invalidText={errors[0]?.message}
|
101
|
+
items={selectOptions}
|
102
|
+
itemToString={(item) => (item ? t(item.label) : ' ')}
|
103
|
+
key={field.id}
|
104
|
+
onChange={handleSelectItemsChange}
|
105
|
+
placeholder={t('search', 'Search') + '...'}
|
106
|
+
readOnly={isTrue(field.readonly)}
|
107
|
+
titleText={<FieldLabel field={field} />}
|
108
108
|
warn={warnings.length > 0}
|
109
109
|
warnText={warnings[0]?.message}
|
110
|
-
readOnly={isTrue(field.readonly)}
|
111
110
|
/>
|
112
111
|
) : (
|
113
|
-
<CheckboxGroup
|
114
|
-
name={field.id}
|
115
|
-
legendText={<FieldLabel field={field} />}
|
116
|
-
readOnly={isTrue(field.readonly)}>
|
112
|
+
<CheckboxGroup legendText={<FieldLabel field={field} />} readOnly={isTrue(field.readonly)}>
|
117
113
|
{field.questionOptions.answers?.map((value, index) => {
|
118
114
|
return (
|
119
115
|
<Checkbox
|
@@ -53,9 +53,10 @@ const Radio: React.FC<FormFieldInputProps> = ({ field, value, errors, warnings,
|
|
53
53
|
labelText={t(answer.label) ?? ''}
|
54
54
|
value={answer.concept}
|
55
55
|
key={index}
|
56
|
-
onClick={(e) => {
|
57
|
-
if (value && e.target.checked) {
|
58
|
-
e.target.checked = false;
|
56
|
+
onClick={(e: React.MouseEvent<HTMLInputElement>) => {
|
57
|
+
if (value && (e.target as HTMLInputElement).checked) {
|
58
|
+
(e.target as HTMLInputElement).checked = false;
|
59
|
+
e.preventDefault();
|
59
60
|
handleChange(null);
|
60
61
|
} else {
|
61
62
|
handleChange(answer.concept);
|
@@ -45,7 +45,9 @@ const TextField: React.FC<FormFieldInputProps> = ({ field, value, errors, warnin
|
|
45
45
|
invalid={errors.length > 0}
|
46
46
|
invalidText={errors[0]?.message}
|
47
47
|
labelText={<FieldLabel field={field} />}
|
48
|
-
|
48
|
+
maxCount={
|
49
|
+
field.questionOptions.max ? Number(field.questionOptions.max) : Number(field.questionOptions.maxLength)
|
50
|
+
}
|
49
51
|
name={field.id}
|
50
52
|
onBlur={onBlur}
|
51
53
|
onChange={(event) => {
|
@@ -10,7 +10,7 @@ type LabelProps = {
|
|
10
10
|
const LabelField: React.FC<LabelProps> = ({ value, tooltipText }) => {
|
11
11
|
return (
|
12
12
|
<div className={styles.label}>
|
13
|
-
<DefinitionTooltip
|
13
|
+
<DefinitionTooltip autoAlign tabIndex={0} definition={tooltipText ?? ''}>
|
14
14
|
<span className="cds--label">{`${value}:`}</span>
|
15
15
|
</DefinitionTooltip>
|
16
16
|
</div>
|
package/src/declarations.d.ts
CHANGED
package/tsconfig.json
CHANGED
@@ -6,7 +6,17 @@
|
|
6
6
|
"jsx": "react",
|
7
7
|
"skipLibCheck": true,
|
8
8
|
"moduleResolution": "node",
|
9
|
-
"lib": [
|
9
|
+
"lib": [
|
10
|
+
"dom",
|
11
|
+
"es5",
|
12
|
+
"scripthost",
|
13
|
+
"es2015",
|
14
|
+
"es2015.promise",
|
15
|
+
"es2016.array.include",
|
16
|
+
"es2018",
|
17
|
+
"es2020",
|
18
|
+
"es2022"
|
19
|
+
],
|
10
20
|
"resolveJsonModule": true,
|
11
21
|
"noEmit": true,
|
12
22
|
"target": "esnext",
|
@@ -15,5 +25,5 @@
|
|
15
25
|
"__mocks__": ["./__mocks__"]
|
16
26
|
}
|
17
27
|
},
|
18
|
-
"include": ["src/**/*", "./setupTests.ts"]
|
28
|
+
"include": ["src/**/*", "./setupTests.ts", "jest.config.js"]
|
19
29
|
}
|