@micromerce/formbuilder-react 1.0.658 → 1.0.661

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.
Files changed (225) hide show
  1. package/dist/assets/icons/error/Error.js +6 -0
  2. package/dist/assets/icons/error/Error.js.map +1 -0
  3. package/dist/components/Checkbox/Checkbox.js +37 -0
  4. package/dist/components/Checkbox/Checkbox.js.map +1 -0
  5. package/dist/components/Checkbox/Checkbox.module.scss +10 -0
  6. package/dist/components/Checkbox/index.js +2 -0
  7. package/dist/components/Checkbox/index.js.map +1 -0
  8. package/dist/components/ControlWrapper/ControlWrapper.js +37 -0
  9. package/dist/components/ControlWrapper/ControlWrapper.js.map +1 -0
  10. package/dist/components/ControlWrapper/index.js +2 -0
  11. package/dist/components/ControlWrapper/index.js.map +1 -0
  12. package/dist/components/DateRangeGroup/DateRangeGroup.js +69 -0
  13. package/dist/components/DateRangeGroup/DateRangeGroup.js.map +1 -0
  14. package/dist/components/DateRangeGroup/DateRangeGroup.styles.js +59 -0
  15. package/dist/components/DateRangeGroup/DateRangeGroup.styles.js.map +1 -0
  16. package/dist/components/DateRangeGroup/components/CalendarModal.js +90 -0
  17. package/dist/components/DateRangeGroup/components/CalendarModal.js.map +1 -0
  18. package/dist/components/DateRangeGroup/index.js +2 -0
  19. package/dist/components/DateRangeGroup/index.js.map +1 -0
  20. package/dist/components/ErrorBoundary/ErrorBoundary.js +22 -0
  21. package/dist/components/ErrorBoundary/ErrorBoundary.js.map +1 -0
  22. package/dist/components/FileUploader/FileUploader.js +30 -0
  23. package/dist/components/FileUploader/FileUploader.js.map +1 -0
  24. package/dist/components/FileUploader/index.js +2 -0
  25. package/dist/components/FileUploader/index.js.map +1 -0
  26. package/dist/components/FormBuilder/FormBuilder.js +74 -0
  27. package/dist/components/FormBuilder/FormBuilder.js.map +1 -0
  28. package/dist/components/FormBuilder/FormBuilder.module.scss +94 -0
  29. package/dist/components/FormBuilder/index.js +2 -0
  30. package/dist/components/FormBuilder/index.js.map +1 -0
  31. package/dist/components/FormBuilder/utils/extractFormControlValues/extractFormControlValues.js +50 -0
  32. package/dist/components/FormBuilder/utils/extractFormControlValues/extractFormControlValues.js.map +1 -0
  33. package/dist/components/FormBuilder/utils/extractFormControlValues/index.js +2 -0
  34. package/dist/components/FormBuilder/utils/extractFormControlValues/index.js.map +1 -0
  35. package/dist/components/FormBuilder/utils/jsonToUrlEncoded/index.js +2 -0
  36. package/dist/components/FormBuilder/utils/jsonToUrlEncoded/index.js.map +1 -0
  37. package/dist/components/FormBuilder/utils/jsonToUrlEncoded/jsonToUrlEncoded.js +15 -0
  38. package/dist/components/FormBuilder/utils/jsonToUrlEncoded/jsonToUrlEncoded.js.map +1 -0
  39. package/dist/components/FormFooter/FormFooter.js +46 -0
  40. package/dist/components/FormFooter/FormFooter.js.map +1 -0
  41. package/dist/components/FormFooter/FormFooter.module.scss +65 -0
  42. package/dist/components/FormFooter/components/Switch.js +15 -0
  43. package/dist/components/FormFooter/components/Switch.js.map +1 -0
  44. package/dist/components/FormFooter/index.js +2 -0
  45. package/dist/components/FormFooter/index.js.map +1 -0
  46. package/dist/components/FormGroup/FormGroup.js +18 -0
  47. package/dist/components/FormGroup/FormGroup.js.map +1 -0
  48. package/dist/components/FormGroup/FormGroup.module.scss +69 -0
  49. package/dist/components/FormGroup/index.js +2 -0
  50. package/dist/components/FormGroup/index.js.map +1 -0
  51. package/dist/components/FormList/FormList.js +66 -0
  52. package/dist/components/FormList/FormList.js.map +1 -0
  53. package/dist/components/FormList/FormList.module.scss +173 -0
  54. package/dist/components/FormList/index.js +2 -0
  55. package/dist/components/FormList/index.js.map +1 -0
  56. package/dist/components/GeneralFormGroup/GeneralFormGroup.js +4 -0
  57. package/dist/components/GeneralFormGroup/GeneralFormGroup.js.map +1 -0
  58. package/dist/components/GeneralFormGroup/index.js +2 -0
  59. package/dist/components/GeneralFormGroup/index.js.map +1 -0
  60. package/dist/components/Group/Group.js +32 -0
  61. package/dist/components/Group/Group.js.map +1 -0
  62. package/dist/components/Group/Group.module.scss +28 -0
  63. package/dist/components/Group/index.js +2 -0
  64. package/dist/components/Group/index.js.map +1 -0
  65. package/dist/components/Input/Input.js +57 -0
  66. package/dist/components/Input/Input.js.map +1 -0
  67. package/dist/components/Input/Input.module.scss +3 -0
  68. package/dist/components/Input/index.js +2 -0
  69. package/dist/components/Input/index.js.map +1 -0
  70. package/dist/components/Input/input.styles.js +24 -0
  71. package/dist/components/Input/input.styles.js.map +1 -0
  72. package/dist/components/InputFreeSolo/InputFreeSolo.js +67 -0
  73. package/dist/components/InputFreeSolo/InputFreeSolo.js.map +1 -0
  74. package/dist/components/InputFreeSolo/InputFreeSolo.module.scss +29 -0
  75. package/dist/components/InputFreeSolo/index.js +2 -0
  76. package/dist/components/InputFreeSolo/index.js.map +1 -0
  77. package/dist/components/MrnInput/MrnInput.js +64 -0
  78. package/dist/components/MrnInput/MrnInput.js.map +1 -0
  79. package/dist/components/MrnInput/MrnInput.module.scss +31 -0
  80. package/dist/components/MrnInput/hooks/useMrn.js +92 -0
  81. package/dist/components/MrnInput/hooks/useMrn.js.map +1 -0
  82. package/dist/components/MrnInput/index.js +2 -0
  83. package/dist/components/MrnInput/index.js.map +1 -0
  84. package/dist/components/MrnInput/services/fetchMrn.js +30 -0
  85. package/dist/components/MrnInput/services/fetchMrn.js.map +1 -0
  86. package/dist/components/MrnInput/ui-helper/Link/Link.js +15 -0
  87. package/dist/components/MrnInput/ui-helper/Link/Link.js.map +1 -0
  88. package/dist/components/MrnInput/utils/mrnUtils/mrnUtils.js +35 -0
  89. package/dist/components/MrnInput/utils/mrnUtils/mrnUtils.js.map +1 -0
  90. package/dist/components/MrnInput/utils/resolveMrnLinks/resolveMrnLink.js +11 -0
  91. package/dist/components/MrnInput/utils/resolveMrnLinks/resolveMrnLink.js.map +1 -0
  92. package/dist/components/MrnInput/utils/resolveNestedQueryLink/resolveNestedQueryLink.js +19 -0
  93. package/dist/components/MrnInput/utils/resolveNestedQueryLink/resolveNestedQueryLink.js.map +1 -0
  94. package/dist/components/MrnInput/utils/urlSearchParam/urlSearchParam.js +8 -0
  95. package/dist/components/MrnInput/utils/urlSearchParam/urlSearchParam.js.map +1 -0
  96. package/dist/components/MultiSelect/MultiSelect.js +61 -0
  97. package/dist/components/MultiSelect/MultiSelect.js.map +1 -0
  98. package/dist/components/MultiSelect/MultiSelect.module.scss +13 -0
  99. package/dist/components/MultiSelect/index.js +2 -0
  100. package/dist/components/MultiSelect/index.js.map +1 -0
  101. package/dist/components/MultiSelect/utils/extractSelectedOptionValues/extractSelectedOptionValues.js +21 -0
  102. package/dist/components/MultiSelect/utils/extractSelectedOptionValues/extractSelectedOptionValues.js.map +1 -0
  103. package/dist/components/MultiSelect/utils/extractSelectedOptionValues/index.js +2 -0
  104. package/dist/components/MultiSelect/utils/extractSelectedOptionValues/index.js.map +1 -0
  105. package/dist/components/PasswordInput/PasswordInput.js +21 -0
  106. package/dist/components/PasswordInput/PasswordInput.js.map +1 -0
  107. package/dist/components/PasswordInput/PasswordInput.module.scss +26 -0
  108. package/dist/components/PasswordInput/index.js +2 -0
  109. package/dist/components/PasswordInput/index.js.map +1 -0
  110. package/dist/components/QueryControl/QueryControl.js +95 -0
  111. package/dist/components/QueryControl/QueryControl.js.map +1 -0
  112. package/dist/components/QueryControl/data/defaultControls.js +95 -0
  113. package/dist/components/QueryControl/data/defaultControls.js.map +1 -0
  114. package/dist/components/QueryControl/index.js +2 -0
  115. package/dist/components/QueryControl/index.js.map +1 -0
  116. package/dist/components/QueryControl/ui-helper/Wrapper/QueryControlWrapper.js +8 -0
  117. package/dist/components/QueryControl/ui-helper/Wrapper/QueryControlWrapper.js.map +1 -0
  118. package/dist/components/QueryControl/ui-helper/Wrapper/QueryControlWrapper.styles.js +14 -0
  119. package/dist/components/QueryControl/ui-helper/Wrapper/QueryControlWrapper.styles.js.map +1 -0
  120. package/dist/components/QueryControl/ui-helper/Wrapper/index.js +2 -0
  121. package/dist/components/QueryControl/ui-helper/Wrapper/index.js.map +1 -0
  122. package/dist/components/QueryControl/utils/allControlsHidden/allControlsHidden.js +39 -0
  123. package/dist/components/QueryControl/utils/allControlsHidden/allControlsHidden.js.map +1 -0
  124. package/dist/components/QueryControl/utils/allControlsHidden/index.js +2 -0
  125. package/dist/components/QueryControl/utils/allControlsHidden/index.js.map +1 -0
  126. package/dist/components/QueryControl/utils/getMatchingControls.js +19 -0
  127. package/dist/components/QueryControl/utils/getMatchingControls.js.map +1 -0
  128. package/dist/components/QueryControl/utils/hasExpertControl/hasExpertControl.js +38 -0
  129. package/dist/components/QueryControl/utils/hasExpertControl/hasExpertControl.js.map +1 -0
  130. package/dist/components/QueryControl/utils/hasExpertControl/index.js +2 -0
  131. package/dist/components/QueryControl/utils/hasExpertControl/index.js.map +1 -0
  132. package/dist/components/QueryControl/utils/hideGroup/hideGroup.js +9 -0
  133. package/dist/components/QueryControl/utils/hideGroup/hideGroup.js.map +1 -0
  134. package/dist/components/QueryControl/utils/hideGroup/index.js +2 -0
  135. package/dist/components/QueryControl/utils/hideGroup/index.js.map +1 -0
  136. package/dist/components/Select/Select.js +67 -0
  137. package/dist/components/Select/Select.js.map +1 -0
  138. package/dist/components/Select/Select.module.scss +15 -0
  139. package/dist/components/Select/index.js +2 -0
  140. package/dist/components/Select/index.js.map +1 -0
  141. package/dist/components/Select/utils/getSelectedOption.js +8 -0
  142. package/dist/components/Select/utils/getSelectedOption.js.map +1 -0
  143. package/dist/components/Textarea/Textarea.js +55 -0
  144. package/dist/components/Textarea/Textarea.js.map +1 -0
  145. package/dist/components/Textarea/Textarea.module.scss +14 -0
  146. package/dist/components/Textarea/Textarea.types.js +2 -0
  147. package/dist/components/Textarea/Textarea.types.js.map +1 -0
  148. package/dist/components/Textarea/aiWrapper/aiAction.js +21 -0
  149. package/dist/components/Textarea/aiWrapper/aiAction.js.map +1 -0
  150. package/dist/components/Textarea/aiWrapper/aiLayout.js +21 -0
  151. package/dist/components/Textarea/aiWrapper/aiLayout.js.map +1 -0
  152. package/dist/components/Textarea/aiWrapper/index.js +29 -0
  153. package/dist/components/Textarea/aiWrapper/index.js.map +1 -0
  154. package/dist/components/Textarea/aiWrapper/useAi.js +74 -0
  155. package/dist/components/Textarea/aiWrapper/useAi.js.map +1 -0
  156. package/dist/components/Textarea/editors/Default.js +26 -0
  157. package/dist/components/Textarea/editors/Default.js.map +1 -0
  158. package/dist/components/Textarea/editors/Html.js +9 -0
  159. package/dist/components/Textarea/editors/Html.js.map +1 -0
  160. package/dist/components/Textarea/editors/Json.js +9 -0
  161. package/dist/components/Textarea/editors/Json.js.map +1 -0
  162. package/dist/components/Textarea/editors/Markdown.js +20 -0
  163. package/dist/components/Textarea/editors/Markdown.js.map +1 -0
  164. package/dist/components/Textarea/editors/Richtext.js +13 -0
  165. package/dist/components/Textarea/editors/Richtext.js.map +1 -0
  166. package/dist/components/Textarea/index.js +2 -0
  167. package/dist/components/Textarea/index.js.map +1 -0
  168. package/dist/components/addressGroup/AddressGroup.js +39 -0
  169. package/dist/components/addressGroup/AddressGroup.js.map +1 -0
  170. package/dist/components/addressGroup/AddressGroup.module.scss +72 -0
  171. package/dist/components/addressGroup/index.js +2 -0
  172. package/dist/components/addressGroup/index.js.map +1 -0
  173. package/dist/components/addressGroup/utils/Countries.js +1249 -0
  174. package/dist/components/addressGroup/utils/Countries.js.map +1 -0
  175. package/dist/components/states/error/index.js +15 -0
  176. package/dist/components/states/error/index.js.map +1 -0
  177. package/dist/context/FormData.js +109 -0
  178. package/dist/context/FormData.js.map +1 -0
  179. package/dist/hooks/useDependent/enhanced/useInputDependent/useInputDependent.js +36 -0
  180. package/dist/hooks/useDependent/enhanced/useInputDependent/useInputDependent.js.map +1 -0
  181. package/dist/hooks/useDependent/enhanced/useOptionsGenerator/useOptionsGenerator.js +16 -0
  182. package/dist/hooks/useDependent/enhanced/useOptionsGenerator/useOptionsGenerator.js.map +1 -0
  183. package/dist/hooks/useDependent/useDependent.js +86 -0
  184. package/dist/hooks/useDependent/useDependent.js.map +1 -0
  185. package/dist/hooks/useValueGenerator/useValueGenerator.js +99 -0
  186. package/dist/hooks/useValueGenerator/useValueGenerator.js.map +1 -0
  187. package/dist/index.d.ts +1 -2
  188. package/dist/index.js +17 -0
  189. package/dist/index.js.map +1 -0
  190. package/dist/styles/Hidden.styles.js +16 -0
  191. package/dist/styles/Hidden.styles.js.map +1 -0
  192. package/dist/styles/Skeleton.js +40 -0
  193. package/dist/styles/Skeleton.js.map +1 -0
  194. package/dist/styles/Textfield.styles.js +34 -0
  195. package/dist/styles/Textfield.styles.js.map +1 -0
  196. package/dist/styles/formControl.module.scss +59 -0
  197. package/dist/testutils.js +22 -0
  198. package/dist/testutils.js.map +1 -0
  199. package/dist/types/controlProps.js +2 -0
  200. package/dist/types/controlProps.js.map +1 -0
  201. package/dist/types/index.js +2 -0
  202. package/dist/types/index.js.map +1 -0
  203. package/dist/ui/menu/hooks/useMenu.js +41 -0
  204. package/dist/ui/menu/hooks/useMenu.js.map +1 -0
  205. package/dist/ui/menu/index.js +13 -0
  206. package/dist/ui/menu/index.js.map +1 -0
  207. package/dist/ui/menu/test/createControl.js +30 -0
  208. package/dist/ui/menu/test/createControl.js.map +1 -0
  209. package/dist/ui/menu/utils/detemineSubmenuTabs/index.js +82 -0
  210. package/dist/ui/menu/utils/detemineSubmenuTabs/index.js.map +1 -0
  211. package/dist/ui-helper/HeaderCollapseButton/index.js +9 -0
  212. package/dist/ui-helper/HeaderCollapseButton/index.js.map +1 -0
  213. package/dist/ui-helper/notifications/Error.js +77 -0
  214. package/dist/ui-helper/notifications/Error.js.map +1 -0
  215. package/dist/ui-helper/notifications/images/background.js +7 -0
  216. package/dist/ui-helper/notifications/images/background.js.map +1 -0
  217. package/dist/ui-helper/notifications/images/spinner.js +6 -0
  218. package/dist/ui-helper/notifications/images/spinner.js.map +1 -0
  219. package/dist/ui-helper/notifications/images/under-improvement.js +6 -0
  220. package/dist/ui-helper/notifications/images/under-improvement.js.map +1 -0
  221. package/dist/utils/findFormControlError/index.js +24 -0
  222. package/dist/utils/findFormControlError/index.js.map +1 -0
  223. package/dist/utils/hasGroupRequiredFieldsWithValues/index.js +22 -0
  224. package/dist/utils/hasGroupRequiredFieldsWithValues/index.js.map +1 -0
  225. package/package.json +2 -4
@@ -0,0 +1,32 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React, { useState } from "react";
3
+ import { isGroupRequired } from "../../utils/hasGroupRequiredFieldsWithValues";
4
+ import HeaderCollapseButton from "../../ui-helper/HeaderCollapseButton";
5
+ import * as listStyles from "../FormList/FormList.module.scss";
6
+ import QueryControl from "../QueryControl";
7
+ import * as styles from "./Group.module.scss";
8
+ const Group = ({ ...props }) => {
9
+ const { id, control, objectPathId, groupIsRequired, isInGroup, controlProps, } = props;
10
+ const { "custom-attributes": customAttributes, displayName, controls, required, } = control;
11
+ const itemsLength = Object.entries(controls)?.length ?? 0;
12
+ const defaultCollapseThreshold = Number(customAttributes?.defaultCollapseThreshold);
13
+ const isClosed = itemsLength === 0 || defaultCollapseThreshold <= itemsLength;
14
+ const [isOpen, setIsOpen] = useState(!isClosed);
15
+ const handleToggleOpenState = () => setIsOpen((prev) => !prev);
16
+ const currObjectPathId = objectPathId || id;
17
+ const isRequired = isInGroup
18
+ ? required || groupIsRequired
19
+ : required || isGroupRequired({ controls });
20
+ const groupStyle = controlProps?.groupProps?.style ?? {};
21
+ const groupLabelStyle = controlProps?.groupProps?.label?.style ?? {};
22
+ const isHiddenGroup = !isOpen
23
+ ? { display: "none", visibility: "hidden" }
24
+ : {};
25
+ return (_jsxs("div", { className: styles["form-group-container"], id: id, "data-testid": id, style: groupStyle, children: [_jsxs("div", { className: styles["group-header"], children: [_jsx("h3", { className: `${styles["control-label-group"]} ${listStyles["control-label-group"]}`, style: groupLabelStyle, children: displayName }), _jsx(HeaderCollapseButton, { isOpen: isOpen, onClick: handleToggleOpenState })] }), _jsx("div", { role: "group", style: isHiddenGroup, children: controls &&
26
+ Object.entries(controls).map(([key, value]) => {
27
+ const groupObjectPathId = `${currObjectPathId}.controls.${key}`;
28
+ return (_jsx(React.Fragment, { children: _jsx(QueryControl, { formControl: value, id: id, objectPathId: groupObjectPathId, groupIsRequired: isRequired, isInGroup: true, controlProps: controlProps }, id) }, groupObjectPathId));
29
+ }) })] }));
30
+ };
31
+ export default Group;
32
+ //# sourceMappingURL=Group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Group.js","sourceRoot":"","sources":["../../../src/components/Group/Group.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ .form-group-container {
2
+ margin: 30px 0 20px;
3
+ padding: 10px 0;
4
+
5
+ .group-header {
6
+ display: flex;
7
+ align-items: center;
8
+ justify-content: space-between;
9
+ }
10
+
11
+ .control-label-group {
12
+ font-size: 14px;
13
+ font-weight: 400;
14
+ font-size: 18px;
15
+ color: #0000008A;
16
+ margin-top: 0;
17
+ margin-bottom: 0;
18
+ margin-left: 210px;
19
+
20
+ @media screen and (max-width: 767px) {
21
+ margin-left: 0;
22
+ }
23
+ }
24
+
25
+ & > .form-group-container:first-of-type {
26
+ margin-top: 10px;
27
+ }
28
+ }
@@ -0,0 +1,2 @@
1
+ export { default } from "./Group";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Group/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import omit from "lodash/omit";
3
+ import useInputDependent from "../../hooks/useDependent/enhanced/useInputDependent/useInputDependent";
4
+ import * as formControlStyles from "../../styles/formControl.module.scss";
5
+ import * as inputStyles from "./Input.module.scss";
6
+ import { StyledClearButton, StyledClearButtonWrapper, StyledInputWrapper, } from "./input.styles";
7
+ const Input = ({ onChangeValue, hasClearButton = false, onClearCallback, controlProps, ...props }) => {
8
+ const { control, id, objectPathId, ...restProps } = props;
9
+ const { value = "", displayName, "custom-attributes": customAttributes, error, placeholder, required, hasEdited, ...restControl } = control;
10
+ const query = customAttributes?.defaultValue;
11
+ const { textColor } = useInputDependent({
12
+ onChangeValue,
13
+ query,
14
+ objectPathId,
15
+ value,
16
+ hasEdited,
17
+ });
18
+ const errorClass = error ? "error" : "";
19
+ let className = formControlStyles["form-control"];
20
+ className = errorClass
21
+ ? className + " " + inputStyles[errorClass]
22
+ : className;
23
+ const requiredPlaceholder = placeholder
24
+ ? required
25
+ ? placeholder + " *"
26
+ : placeholder
27
+ : "";
28
+ const handleOnChange = (e) => {
29
+ onChangeValue({ value: e.target.value, hasEdited: "edited" });
30
+ };
31
+ const handleOnClear = () => {
32
+ onChangeValue({ value: "" });
33
+ onClearCallback?.();
34
+ };
35
+ const preventDefaultWheel = (e) => {
36
+ const element = e.target;
37
+ if (element.type === "number")
38
+ element.blur();
39
+ };
40
+ return (_jsxs(StyledInputWrapper, { children: [_jsx("input", { role: "textbox", "data-testid": `input-control-${id}`, max: control.type === "date" ? "9999-12-31" : null, className: className, id: objectPathId || id, name: objectPathId || id, value: value, onChange: handleOnChange, onWheel: preventDefaultWheel, placeholder: requiredPlaceholder, required: required, ...omit(customAttributes, [
41
+ "defaultValue",
42
+ "mrnPreview",
43
+ "mrnSources",
44
+ ]), ...omit(restControl, [
45
+ "displayName",
46
+ "placholder",
47
+ "control",
48
+ "error",
49
+ "defaultValue",
50
+ ]), ...omit(restProps, ["defaultValue", "mrnPreview", "mrnSources"]), style: {
51
+ color: textColor,
52
+ minWidth: hasClearButton ? "175px" : "",
53
+ ...controlProps?.inputProps?.style,
54
+ } }), hasClearButton && control.type === "date" && (_jsx(StyledClearButtonWrapper, { inputValue: value, children: _jsx(StyledClearButton, { "data-testid": "input_clearButton", fontSize: "small", onClick: handleOnClear }) }))] }));
55
+ };
56
+ export default Input;
57
+ //# sourceMappingURL=Input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../src/components/Input/Input.tsx"],"names":[],"mappings":";AAAA,OAAO,IAAI,MAAM,aAAa,CAAC;AAO/B,OAAO,iBAAiB,MAAM,uEAAuE,CAAC;AACtG,OAAO,KAAK,iBAAiB,MAAM,sCAAsC,CAAC;AAG1E,OAAO,KAAK,WAAW,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAgBxB,MAAM,KAAK,GAAG,CAAC,EACb,aAAa,EACb,cAAc,GAAG,KAAK,EACtB,eAAe,EACf,YAAY,EACZ,GAAG,KAAK,EACD,EAAE,EAAE;IACX,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAC1D,MAAM,EACJ,KAAK,GAAG,EAAE,EACV,WAAW,EACX,mBAAmB,EAAE,gBAAgB,EACrC,KAAK,EACL,WAAW,EACX,QAAQ,EACR,SAAS,EACT,GAAG,WAAW,EACf,GAAG,OAAO,CAAC;IAEZ,MAAM,KAAK,GAAG,gBAAgB,EAAE,YAAY,CAAC;IAC7C,MAAM,EAAE,SAAS,EAAE,GAAG,iBAAiB,CAAC;QACtC,aAAa;QACb,KAAK;QACL,YAAY;QACZ,KAAK;QACL,SAAS;KACV,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,IAAI,SAAS,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAClD,SAAS,GAAG,UAAU;QACpB,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,WAAW,CAAC,UAAU,CAAC;QAC3C,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,mBAAmB,GAAG,WAAW;QACrC,CAAC,CAAC,QAAQ;YACR,CAAC,CAAC,WAAW,GAAG,IAAI;YACpB,CAAC,CAAC,WAAW;QACf,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,cAAc,GAAG,CAAC,CAAgC,EAAE,EAAE;QAC1D,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7B,eAAe,EAAE,EAAE,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,CAA+B,EAAE,EAAE;QAC9D,MAAM,OAAO,GAAG,CAAC,CAAC,MAA0B,CAAC;QAC7C,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,kBAAkB,eACjB,gBACE,IAAI,EAAC,SAAS,iBACD,iBAAiB,EAAE,EAAE,EAClC,GAAG,EAAE,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAClD,SAAS,EAAE,SAAS,EACpB,EAAE,EAAE,YAAY,IAAI,EAAE,EACtB,IAAI,EAAE,YAAY,IAAI,EAAE,EACxB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,mBAAmB,EAC5B,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,QAAQ,KACd,IAAI,CAAC,gBAAgB,EAAE;oBACzB,cAAc;oBACd,YAAY;oBACZ,YAAY;iBACb,CAAC,KACE,IAAI,CAAC,WAAW,EAAE;oBACpB,aAAa;oBACb,YAAY;oBACZ,SAAS;oBACT,OAAO;oBACP,cAAc;iBACf,CAAC,KACE,IAAI,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,EACjE,KAAK,EAAE;oBACL,KAAK,EAAE,SAAS;oBAChB,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACvC,GAAG,YAAY,EAAE,UAAU,EAAE,KAAK;iBACnC,GACD,EACD,cAAc,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,CAC5C,KAAC,wBAAwB,IAAC,UAAU,EAAE,KAAK,YACzC,KAAC,iBAAiB,mBACH,mBAAmB,EAChC,QAAQ,EAAC,OAAO,EAChB,OAAO,EAAE,aAAa,GACtB,GACuB,CAC5B,IACkB,CACtB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,3 @@
1
+ .error {
2
+ border-color: #a94442;
3
+ }
@@ -0,0 +1,2 @@
1
+ export { default } from "./Input";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Input/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,24 @@
1
+ import styled from "styled-components";
2
+ import { Clear } from "@mui/icons-material";
3
+ export const StyledInputWrapper = styled.div `
4
+ width: 100%;
5
+ position: relative;
6
+ `;
7
+ export const StyledClearButtonWrapper = styled.div `
8
+ position: absolute;
9
+ top: 50%;
10
+ transform: translateY(-50%);
11
+ right: 40px;
12
+ border-radius: 100%;
13
+ display: ${(props) => (props.inputValue === "" ? "none" : "flex")};
14
+ justify-content: center;
15
+ align-items: center;
16
+ cursor: pointer;
17
+ &:hover {
18
+ background-color: #f5f5f5;
19
+ }
20
+ `;
21
+ export const StyledClearButton = styled(Clear) `
22
+ color: #767676;
23
+ `;
24
+ //# sourceMappingURL=input.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.styles.js","sourceRoot":"","sources":["../../../src/components/Input/input.styles.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAA;;;CAG3C,CAAC;AAMF,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAmC;;;;;;aAMxE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;;;;;;;CAOlE,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;CAE7C,CAAC"}
@@ -0,0 +1,67 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import Autocomplete from "@mui/material/Autocomplete";
3
+ import Box from "@mui/material/Box";
4
+ import Tooltip from "@mui/material/Tooltip";
5
+ import omit from "lodash/omit";
6
+ import useInputDependent from "../../hooks/useDependent/enhanced/useInputDependent/useInputDependent";
7
+ import TextField from "../../styles/Textfield.styles";
8
+ import * as styles from "./InputFreeSolo.module.scss";
9
+ const InputFreeSolo = ({ ...props }) => {
10
+ const { id, control, onChangeValue, objectPathId } = props;
11
+ const { value = "", "custom-attributes": customAttributes, error, hasEdited, ...restControl } = control;
12
+ const { options } = customAttributes;
13
+ const errorClass = error ? "error" : "";
14
+ const mappedOption = options.map((opt) => ({
15
+ label: opt.text || opt.value,
16
+ value: opt.value,
17
+ tooltip: opt.tooltip,
18
+ default: opt.default,
19
+ }));
20
+ let defaultValue = mappedOption.find((option) => option.value === value) || {
21
+ label: value,
22
+ value: value,
23
+ };
24
+ if (value === "") {
25
+ const defaultOption = mappedOption.find((option) => option.default);
26
+ if (defaultOption) {
27
+ defaultValue = defaultOption;
28
+ }
29
+ }
30
+ const clearStylesActive = restControl.type === "number" || restControl.type === "date";
31
+ const currObjectPathId = objectPathId || id;
32
+ const query = customAttributes?.defaultValue;
33
+ const { textColor } = useInputDependent({
34
+ onChangeValue,
35
+ query,
36
+ objectPathId: currObjectPathId,
37
+ value,
38
+ hasEdited,
39
+ });
40
+ const handleOnChange = (option) => {
41
+ onChangeValue({ value: option, hasEdited: "edited" });
42
+ };
43
+ const preventDefaultWheel = (e) => {
44
+ const element = e.target;
45
+ if (element.type === "number")
46
+ element.blur();
47
+ };
48
+ return (_jsx(Autocomplete, { className: `${styles["form-control"]}`, freeSolo: true, id: id, value: defaultValue, inputValue: value, options: mappedOption, readOnly: customAttributes?.readOnly, size: "small", onInputChange: (e, option) => handleOnChange(option), getOptionLabel: (option) => option.value || "", renderOption: (props, option) => (_jsx(Box, { component: "li", ...props, children: _jsxs("div", { className: styles.boxContainer, children: [_jsx("p", { children: option.label }), option.tooltip && (_jsx(Tooltip, { title: option.tooltip, arrow: true, children: _jsx("span", { children: _jsx("i", { className: "fas fa-info-circle fa-xs" }) }) }))] }) })), renderInput: (params) => (_jsx(TextField, { ...params, className: styles[errorClass], variant: "outlined", ...omit(restControl, [
49
+ "displayName",
50
+ "control",
51
+ "error",
52
+ "defaultValue",
53
+ ]), ...omit(customAttributes, ["defaultValue"]), inputProps: { ...params.inputProps }, onWheel: preventDefaultWheel, sx: {
54
+ "& input": {
55
+ color: textColor,
56
+ "&::-webkit-outer-spin-button, &::-webkit-inner-spin-button": {
57
+ "-webkit-appearance": "none",
58
+ margin: 0,
59
+ },
60
+ },
61
+ "& .MuiAutocomplete-endAdornment": {
62
+ right: clearStylesActive ? "35px !important" : "9px",
63
+ },
64
+ } })) }));
65
+ };
66
+ export default InputFreeSolo;
67
+ //# sourceMappingURL=InputFreeSolo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputFreeSolo.js","sourceRoot":"","sources":["../../../src/components/InputFreeSolo/InputFreeSolo.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ .form-control {
2
+ width: 100%;
3
+
4
+ &:has(input[readonly]) {
5
+ background-color: #e0e0e033;
6
+ cursor: not-allowed;
7
+ }
8
+ }
9
+
10
+ .error fieldset {
11
+ border-color: #a94442;
12
+ }
13
+
14
+ .boxContainer {
15
+ display: flex;
16
+ align-items: center;
17
+ justify-content: space-between;
18
+ width: 100%;
19
+ height: 100%;
20
+
21
+ p {
22
+ margin: 0;
23
+ padding: 0;
24
+ }
25
+
26
+ i {
27
+ color: #000000B2;
28
+ }
29
+ }
@@ -0,0 +1,2 @@
1
+ export { default } from "./InputFreeSolo";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/InputFreeSolo/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import Autocomplete from "@mui/material/Autocomplete";
3
+ import CircularProgress from "@mui/material/CircularProgress";
4
+ import uniqueId from "lodash/uniqueId";
5
+ import useInputDependent from "../../hooks/useDependent/enhanced/useInputDependent/useInputDependent";
6
+ import TextField from "../../styles/Textfield.styles";
7
+ import Select from "../Select";
8
+ import * as styles from "./MrnInput.module.scss";
9
+ import useMrn from "./hooks/useMrn";
10
+ import Link from "./ui-helper/Link/Link";
11
+ function customizer(option, key) {
12
+ if (key === "mrnEntries") {
13
+ return option?.mrnEntries;
14
+ }
15
+ }
16
+ const MrnInput = ({ onChangeValue, controlProps, objectPathId, ...props }) => {
17
+ const { id, control } = props || {};
18
+ const { value = "", "custom-attributes": customAttributes, displayName, error, hasEdited, } = control || {};
19
+ const errorClass = error ? "error" : "";
20
+ const query = customAttributes?.defaultValue;
21
+ const { isLoading, isOpen, isDisabled, mrnOptions, selectedOption, setSelectedOption, setSearchText, setIsOpen, currentMrnOption, onChangeCurrentMrnOption, } = useMrn({ value, customAttributes, objectPathId, onChangeValue });
22
+ const { textColor } = useInputDependent({
23
+ onChangeValue,
24
+ query,
25
+ objectPathId,
26
+ value,
27
+ hasEdited,
28
+ });
29
+ const mrnSourcesLength = customAttributes?.mrnSources?.length || 1;
30
+ const handleChangeSelectedOption = (option) => {
31
+ onChangeValue({
32
+ hasEdited: "edited",
33
+ value: option?.mrn || "",
34
+ mrnEntries: option?.mrnEntries || null,
35
+ }, (_objValue, _srcValue, key) => customizer(option, key));
36
+ setSelectedOption(option);
37
+ };
38
+ const handleOnChange = (event) => {
39
+ setSearchText(event?.target?.value);
40
+ };
41
+ const classes = mrnSourcesLength > 1 ? styles["with-select"] : "";
42
+ return (_jsxs("div", { className: `${styles["mrn-input-container"]} ${classes}`, "data-testid": `mrn-input-container ${id}`, style: { color: textColor }, children: [mrnSourcesLength > 1 && (_jsx("div", { style: { width: "35%", height: "40px" }, children: _jsx(Select, { id: uniqueId(), control: {
43
+ control: "select",
44
+ options: customAttributes?.mrnSources?.map((source) => ({
45
+ value: source?.mrn,
46
+ text: source?.name,
47
+ ...source,
48
+ })),
49
+ value: currentMrnOption?.mrn,
50
+ }, controlProps: controlProps, onChangeValue: onChangeCurrentMrnOption }) })), _jsx(Autocomplete, { id: id, sx: {
51
+ width: "100%",
52
+ backgroundColor: "white",
53
+ ...controlProps?.selectProps?.sx,
54
+ }, "data-testid": `mrn-input ${id}`, size: "small", value: selectedOption, readOnly: customAttributes?.readOnly, disabled: value ? false : isDisabled, onChange: (e, option) => handleChangeSelectedOption(option), isOptionEqualToValue: (option, optionValue) => option?.mrn === optionValue?.mrn, filterOptions: (options, state) => options, getOptionLabel: (option) => option?.key, options: mrnOptions, open: isOpen, onOpen: () => setIsOpen(true), onClose: () => setIsOpen(false), loading: isLoading, PaperComponent: (paperProps) => Link(paperProps.children, currentMrnOption?.["mrn-ref"] || currentMrnOption?.mrn, currentMrnOption?.name || displayName, controlProps?.mrnProps?.disableMrnLink, paperProps), renderInput: (params) => (_jsx(TextField, { ...params, className: styles[errorClass], onChange: handleOnChange, required: customAttributes?.required, sx: controlProps?.selectProps?.textField?.sx, InputProps: {
55
+ style: {
56
+ minHeight: 40,
57
+ color: textColor,
58
+ },
59
+ ...params.InputProps,
60
+ endAdornment: (_jsxs(_Fragment, { children: [isLoading && (_jsx(CircularProgress, { style: { marginRight: 30 }, color: "inherit", size: 20 })), params.InputProps.endAdornment] })),
61
+ } })) })] }));
62
+ };
63
+ export default MrnInput;
64
+ //# sourceMappingURL=MrnInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MrnInput.js","sourceRoot":"","sources":["../../../src/components/MrnInput/MrnInput.tsx"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AAEvC,OAAO,iBAAiB,MAAM,uEAAuE,CAAC;AACtG,OAAO,SAAS,MAAM,+BAA+B,CAAC;AAGtD,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AACjD,OAAO,MAAM,MAAM,gBAAgB,CAAC;AACpC,OAAO,IAAI,MAAM,uBAAuB,CAAC;AAEzC,SAAS,UAAU,CAAC,MAAM,EAAE,GAAG;IAC7B,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;QACzB,OAAO,MAAM,EAAE,UAAU,CAAC;IAC5B,CAAC;AACH,CAAC;AAaD,MAAM,QAAQ,GAAG,CAAC,EAChB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,GAAG,KAAK,EACD,EAAE,EAAE;IACX,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;IACpC,MAAM,EACJ,KAAK,GAAG,EAAE,EACV,mBAAmB,EAAE,gBAAgB,EACrC,WAAW,EACX,KAAK,EACL,SAAS,GACV,GAAG,OAAO,IAAI,EAAE,CAAC;IAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,gBAAgB,EAAE,YAAY,CAAC;IAE7C,MAAM,EACJ,SAAS,EACT,MAAM,EACN,UAAU,EACV,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,wBAAwB,GACzB,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC;IAErE,MAAM,EAAE,SAAS,EAAE,GAAG,iBAAiB,CAAC;QACtC,aAAa;QACb,KAAK;QACL,YAAY;QACZ,KAAK;QACL,SAAS;KACV,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,gBAAgB,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC;IAEnE,MAAM,0BAA0B,GAAG,CAAC,MAAkB,EAAE,EAAE;QACxD,aAAa,CACX;YACE,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE;YACxB,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,IAAI;SACvC,EACD,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CACvD,CAAC;QACF,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,KAAoC,EAAE,EAAE;QAC9D,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAElE,OAAO,CACL,eACE,SAAS,EAAE,GAAG,MAAM,CAAC,qBAAqB,CAAC,IAAI,OAAO,EAAE,iBAC3C,uBAAuB,EAAE,EAAE,EACxC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,aAE1B,gBAAgB,GAAG,CAAC,IAAI,CACvB,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAC1C,KAAC,MAAM,IACL,EAAE,EAAE,QAAQ,EAAE,EACd,OAAO,EAAE;wBACP,OAAO,EAAE,QAAQ;wBACjB,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;4BACtD,KAAK,EAAE,MAAM,EAAE,GAAG;4BAClB,IAAI,EAAE,MAAM,EAAE,IAAI;4BAClB,GAAG,MAAM;yBACV,CAAC,CAAC;wBACH,KAAK,EAAE,gBAAgB,EAAE,GAAG;qBAC7B,EACD,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,wBAAwB,GACvC,GACE,CACP,EACD,KAAC,YAAY,IACX,EAAE,EAAE,EAAE,EACN,EAAE,EAAE;oBACF,KAAK,EAAE,MAAM;oBACb,eAAe,EAAE,OAAO;oBACxB,GAAG,YAAY,EAAE,WAAW,EAAE,EAAE;iBACjC,iBACY,aAAa,EAAE,EAAE,EAC9B,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EACpC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,EACpC,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAC3D,oBAAoB,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAC5C,MAAM,EAAE,GAAG,KAAK,WAAW,EAAE,GAAG,EAElC,aAAa,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,EAC1C,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EACvC,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAC/B,OAAO,EAAE,SAAS,EAClB,cAAc,EAAE,CAAC,UAAU,EAAE,EAAE,CAC7B,IAAI,CACF,UAAU,CAAC,QAAQ,EACnB,gBAAgB,EAAE,CAAC,SAAS,CAAC,IAAI,gBAAgB,EAAE,GAAG,EACtD,gBAAgB,EAAE,IAAI,IAAI,WAAW,EACrC,YAAY,EAAE,QAAQ,EAAE,cAAc,EACtC,UAAU,CACX,EAEH,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,KAAC,SAAS,OACJ,MAAM,EACV,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,EAC7B,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EACpC,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAC5C,UAAU,EAAE;wBACV,KAAK,EAAE;4BACL,SAAS,EAAE,EAAE;4BACb,KAAK,EAAE,SAAS;yBACjB;wBACD,GAAG,MAAM,CAAC,UAAU;wBACpB,YAAY,EAAE,CACZ,8BACG,SAAS,IAAI,CACZ,KAAC,gBAAgB,IACf,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAC1B,KAAK,EAAC,SAAS,EACf,IAAI,EAAE,EAAE,GACR,CACH,EACA,MAAM,CAAC,UAAU,CAAC,YAAY,IAC9B,CACJ;qBACF,GACD,CACH,GACD,IACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,31 @@
1
+ .mrn-input-container {
2
+ width: 100%;
3
+ input {
4
+ max-width: calc(100% - 35px);
5
+ white-space: nowrap;
6
+ overflow: hidden;
7
+ text-overflow: ellipsis;
8
+ color: rgba(0,0,0,0.54) !important;
9
+ font-weight: 400 !important;
10
+ }
11
+ }
12
+
13
+ .error fieldset {
14
+ border-color: #a94442;
15
+ }
16
+
17
+ .hidden {
18
+ display: none !important;
19
+ visibility: hidden !important;
20
+ }
21
+
22
+ .with-select {
23
+ display: flex;
24
+ align-items: center;
25
+ gap: 10px;
26
+
27
+ @media only screen and (max-width: 991px) {
28
+ flex-direction: column;
29
+ align-items: flex-start;
30
+ }
31
+ }
@@ -0,0 +1,92 @@
1
+ import { useContext, useEffect, useState } from "react";
2
+ import { useUpdateEffect } from "usehooks-ts";
3
+ import { FormDataContext } from "../../../context/FormData";
4
+ import useDependent from "../../../hooks/useDependent/useDependent";
5
+ import getSelectedOption from "../../Select/utils/getSelectedOption";
6
+ import fetchMrn from "../services/fetchMrn";
7
+ import { determineUrlSearchParams } from "../utils/urlSearchParam/urlSearchParam";
8
+ const useMrn = ({ value, customAttributes, objectPathId, onChangeValue, }) => {
9
+ const { resolveUrl } = useContext(FormDataContext);
10
+ if (!resolveUrl)
11
+ throw new Error("resolveUrl Prop is not defined");
12
+ const [isLoading, setIsLoading] = useState(false);
13
+ const [isOpen, setIsOpen] = useState(false);
14
+ const [mrnOptions, setMrnOptions] = useState([]);
15
+ const [selectedOption, setSelectedOption] = useState(null);
16
+ const [searchText, setSearchText] = useState("");
17
+ const selectedMrnSource = customAttributes?.mrnSources?.find((source) => value?.includes(source?.mrn));
18
+ const mrnWhenMrnSources = selectedMrnSource || customAttributes?.mrnSources?.[0];
19
+ const initialMrnOption = mrnWhenMrnSources || customAttributes;
20
+ const [currentMrnOption, setCurrentMrnOption] = useState(initialMrnOption);
21
+ const currentMrnQuery = currentMrnOption?.["mrn-ref-params"] || currentMrnOption?.query;
22
+ const { dependentControls, resolvedQuery, isDisabled } = useDependent({
23
+ query: currentMrnQuery,
24
+ objectPathId,
25
+ });
26
+ const mrn = currentMrnOption?.["mrn-ref"] || currentMrnOption?.mrn;
27
+ useEffect(() => {
28
+ let isMounted = true;
29
+ setCurrentMrnOption(initialMrnOption); //* Reset the currentMrnOption when the mrnSources change -> necessary for rerenders in lists
30
+ const fetchDefaultOption = async () => {
31
+ const urlParams = determineUrlSearchParams(resolvedQuery);
32
+ const fetchSelectedMrnOption = await fetchMrn(value, currentMrnOption, urlParams, resolveUrl);
33
+ if (isMounted) {
34
+ onChangeValue({ mrnEntries: fetchSelectedMrnOption?.[0]?.mrnEntries });
35
+ setSelectedOption(fetchSelectedMrnOption?.[0]);
36
+ }
37
+ };
38
+ value ? fetchDefaultOption() : setSelectedOption(null);
39
+ return () => {
40
+ isMounted = false;
41
+ };
42
+ }, [value]);
43
+ const handleChangeCurrentMrnOption = (newSource) => {
44
+ const selectedValue = getSelectedOption(customAttributes?.mrnSources?.map((source) => ({
45
+ value: source?.mrn,
46
+ text: source?.name,
47
+ ...source,
48
+ })), newSource?.value);
49
+ setCurrentMrnOption(selectedValue);
50
+ setMrnOptions([]);
51
+ };
52
+ useUpdateEffect(() => {
53
+ const timer = setTimeout(() => {
54
+ handleTriggerSearch(searchText);
55
+ }, 500);
56
+ return () => clearTimeout(timer);
57
+ }, [searchText]);
58
+ const handleTriggerSearch = async (searchText) => {
59
+ setIsLoading(true);
60
+ setMrnOptions([]);
61
+ const urlParams = determineUrlSearchParams(resolvedQuery, searchText);
62
+ const filteredOptions = await fetchMrn(mrn, currentMrnOption, urlParams, resolveUrl);
63
+ setMrnOptions(filteredOptions);
64
+ setIsLoading(false);
65
+ };
66
+ useEffect(() => {
67
+ const fetchMrnOptions = async () => {
68
+ setIsLoading(true);
69
+ const urlParams = determineUrlSearchParams(resolvedQuery);
70
+ const fetchedMrnOptions = await fetchMrn(mrn, currentMrnOption, urlParams, resolveUrl);
71
+ setMrnOptions(fetchedMrnOptions);
72
+ setIsLoading(false);
73
+ };
74
+ !isOpen && setIsLoading(false);
75
+ isOpen && fetchMrnOptions();
76
+ }, [isOpen]);
77
+ return {
78
+ isLoading,
79
+ isOpen,
80
+ isDisabled,
81
+ mrnOptions,
82
+ selectedOption,
83
+ setSelectedOption,
84
+ setSearchText,
85
+ setIsOpen,
86
+ currentMrnOption,
87
+ onChangeCurrentMrnOption: handleChangeCurrentMrnOption,
88
+ dependentControls,
89
+ };
90
+ };
91
+ export default useMrn;
92
+ //# sourceMappingURL=useMrn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMrn.js","sourceRoot":"","sources":["../../../../src/components/MrnInput/hooks/useMrn.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { default } from "./MrnInput";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/MrnInput/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,30 @@
1
+ const fetchMrn = async (mrnRef, attributes, params, resolveUrl) => {
2
+ const mrnDisplayField = attributes["mrn-ref-display-field"] || attributes.displayField || "name";
3
+ const mrnField = attributes["mrn-ref-mrn-field"] || "_mrn" || attributes.mrnField;
4
+ // handle response
5
+ const json = await resolveUrl(mrnRef, params, {
6
+ headers: {
7
+ accept: "application/xhtml-form+json",
8
+ },
9
+ });
10
+ const hasValues = !!(json?.items || json?.values);
11
+ if (!json || !hasValues) {
12
+ throw new Error("unable to handle response - json expected");
13
+ }
14
+ const items = json.items || [json];
15
+ const selectedAttributes = items.map((item) => {
16
+ const allMrnAttributesKeys = Object.keys(item?.values).filter((key) => !key.startsWith("_"));
17
+ const allMrnAttributes = {};
18
+ allMrnAttributesKeys.forEach((attributeKey) => {
19
+ allMrnAttributes[attributeKey] = item.values[attributeKey];
20
+ });
21
+ return {
22
+ key: item.values[mrnDisplayField],
23
+ mrn: item.values[mrnField],
24
+ mrnEntries: allMrnAttributes,
25
+ };
26
+ });
27
+ return selectedAttributes;
28
+ };
29
+ export default fetchMrn;
30
+ //# sourceMappingURL=fetchMrn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchMrn.js","sourceRoot":"","sources":["../../../../src/components/MrnInput/services/fetchMrn.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAAG,KAAK,EACpB,MAAc,EACd,UAA6B,EAC7B,MAAe,EACf,UAAuB,EACvB,EAAE;IACF,MAAM,eAAe,GACnB,UAAU,CAAC,uBAAuB,CAAC,IAAI,UAAU,CAAC,YAAY,IAAI,MAAM,CAAC;IAC3E,MAAM,QAAQ,GACZ,UAAU,CAAC,mBAAmB,CAAC,IAAI,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC;IACnE,kBAAkB;IAClB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE;QAC5C,OAAO,EAAE;YACP,MAAM,EAAE,6BAA6B;SACtC;KACF,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,MAAM,CAAC,CAAC;IAClD,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnC,MAAM,kBAAkB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;QACjD,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAC3D,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAC9B,CAAC;QACF,MAAM,gBAAgB,GAAG,EAAE,CAAC;QAC5B,oBAAoB,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YAC5C,gBAAgB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YACjC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC1B,UAAU,EAAE,gBAAgB;SAC7B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,kBAAkB,CAAC;AAC5B,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import AddIcon from "@mui/icons-material/Add";
3
+ import Paper from "@mui/material/Paper";
4
+ import { extractMrn } from "../../utils/mrnUtils/mrnUtils";
5
+ import resolveMrnLink from "../../utils/resolveMrnLinks/resolveMrnLink";
6
+ const Link = (children, mrnRef, displayName, disableMrnLink, params) => {
7
+ const applicationId = extractMrn(mrnRef)?.applicationId;
8
+ const windowLocation = {
9
+ hash: window.top.location.hash,
10
+ pathname: window.top.location.pathname,
11
+ };
12
+ return (_jsxs(Paper, { ...params, style: { zIndex: 999999999 }, children: [children, !disableMrnLink && (_jsx("a", { className: "mrn-reference-link", "data-testid": "link__mrn-reference-link", href: resolveMrnLink(windowLocation, mrnRef, applicationId), onMouseDown: (e) => e.preventDefault(), rel: "noreferrer", target: "_blank", style: { color: "#4a96d2", textDecoration: "none" }, children: _jsx("ul", { style: { listStyle: "none", padding: "12px" }, children: _jsxs("li", { style: { display: "flex", alignItems: "center", gap: "3px" }, children: [_jsx(AddIcon, { className: "add-icon", style: { marginTop: "-2px" } }), _jsx("span", { children: displayName })] }) }) }))] }));
13
+ };
14
+ export default Link;
15
+ //# sourceMappingURL=Link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Link.js","sourceRoot":"","sources":["../../../../../src/components/MrnInput/ui-helper/Link/Link.tsx"],"names":[],"mappings":";AAAA,OAAO,OAAO,MAAM,yBAAyB,CAAC;AAC9C,OAAO,KAAK,MAAM,qBAAqB,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,cAAc,MAAM,4CAA4C,CAAC;AAExE,MAAM,IAAI,GAAG,CACX,QAAmB,EACnB,MAAc,EACd,WAAmB,EACnB,cAAuB,EACvB,MAAW,EACX,EAAE;IACF,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAExD,MAAM,cAAc,GAAG;QACrB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI;QAC9B,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ;KACvC,CAAC;IAEF,OAAO,CACL,MAAC,KAAK,OAAK,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,aAC5C,QAAQ,EACR,CAAC,cAAc,IAAI,CAClB,YACE,SAAS,EAAC,oBAAoB,iBAClB,0BAA0B,EACtC,IAAI,EAAE,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,CAAC,EAC3D,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EACtC,GAAG,EAAC,YAAY,EAChB,MAAM,EAAC,QAAQ,EACf,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,YAEnD,aAAI,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAC/C,cAAI,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,aAC9D,KAAC,OAAO,IAAC,SAAS,EAAC,UAAU,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAI,EAC9D,yBAAO,WAAW,GAAQ,IACvB,GACF,GACH,CACL,IACK,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -0,0 +1,35 @@
1
+ const MRN_SRV_REGEX = /mrn:srv:([a-z-A-Z0-9]+):([a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}):([^\s]*)/g;
2
+ // mrn:srv:{service):{applicationId}:{resource}
3
+ // mrn:srv:entity:bf1a6272-995d-458e-b575-da4d50a05a04:entries
4
+ // mrn:srv:entity:bf1a6272-995d-458e-b575-da4d50a05a04:entries/bf1a6272-995d-458e-b575-da4d50a05a04
5
+ export const extractMrn = (mrn) => {
6
+ if (mrn) {
7
+ const matchAll = [...mrn.matchAll(MRN_SRV_REGEX)];
8
+ const match = matchAll && matchAll[0];
9
+ if (match && match.length === 4) {
10
+ return {
11
+ matchAll,
12
+ mrn: match[0],
13
+ serviceName: match[1],
14
+ applicationId: match[2],
15
+ resource: match[3],
16
+ };
17
+ }
18
+ return extractMrnWithoutResource(mrn);
19
+ }
20
+ };
21
+ const extractMrnWithoutResource = (mrn) => {
22
+ const regex = /mrn:srv:([a-z-A-Z0-9]+):([a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12})/g;
23
+ const matchAll = [...mrn.matchAll(regex)];
24
+ const match = matchAll && matchAll[0];
25
+ if (match && match.length === 3) {
26
+ return {
27
+ matchAll,
28
+ mrn: match[0],
29
+ serviceName: match[1],
30
+ applicationId: match[2],
31
+ };
32
+ }
33
+ return null;
34
+ };
35
+ //# sourceMappingURL=mrnUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mrnUtils.js","sourceRoot":"","sources":["../../../../../src/components/MrnInput/utils/mrnUtils/mrnUtils.ts"],"names":[],"mappings":"AAQA,MAAM,aAAa,GACjB,2GAA2G,CAAC;AAE9G,+CAA+C;AAC/C,8DAA8D;AAC9D,mGAAmG;AAEnG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAe,EAAE;IACrD,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO;gBACL,QAAQ;gBACR,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;gBACb,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;gBACrB,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;gBACvB,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;aACnB,CAAC;QACJ,CAAC;QACD,OAAO,yBAAyB,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,GAAW,EAAE,EAAE;IAChD,MAAM,KAAK,GACT,kGAAkG,CAAC;IACrG,MAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO;YACL,QAAQ;YACR,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YACb,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;YACrB,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;SACxB,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ const resolveMrnLink = (windowLocation, mrn, applicationId) => {
2
+ const isSolutionService = windowLocation.pathname === "/solution/index.html";
3
+ if (isSolutionService) {
4
+ const path = windowLocation.pathname.replace("index", "resolver");
5
+ const hash = windowLocation.hash.split("/")[0];
6
+ return path + hash + "?mrn=" + encodeURIComponent(mrn);
7
+ }
8
+ return windowLocation.pathname + "#" + applicationId;
9
+ };
10
+ export default resolveMrnLink;
11
+ //# sourceMappingURL=resolveMrnLink.js.map