@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.
- package/dist/assets/icons/error/Error.js +6 -0
- package/dist/assets/icons/error/Error.js.map +1 -0
- package/dist/components/Checkbox/Checkbox.js +37 -0
- package/dist/components/Checkbox/Checkbox.js.map +1 -0
- package/dist/components/Checkbox/Checkbox.module.scss +10 -0
- package/dist/components/Checkbox/index.js +2 -0
- package/dist/components/Checkbox/index.js.map +1 -0
- package/dist/components/ControlWrapper/ControlWrapper.js +37 -0
- package/dist/components/ControlWrapper/ControlWrapper.js.map +1 -0
- package/dist/components/ControlWrapper/index.js +2 -0
- package/dist/components/ControlWrapper/index.js.map +1 -0
- package/dist/components/DateRangeGroup/DateRangeGroup.js +69 -0
- package/dist/components/DateRangeGroup/DateRangeGroup.js.map +1 -0
- package/dist/components/DateRangeGroup/DateRangeGroup.styles.js +59 -0
- package/dist/components/DateRangeGroup/DateRangeGroup.styles.js.map +1 -0
- package/dist/components/DateRangeGroup/components/CalendarModal.js +90 -0
- package/dist/components/DateRangeGroup/components/CalendarModal.js.map +1 -0
- package/dist/components/DateRangeGroup/index.js +2 -0
- package/dist/components/DateRangeGroup/index.js.map +1 -0
- package/dist/components/ErrorBoundary/ErrorBoundary.js +22 -0
- package/dist/components/ErrorBoundary/ErrorBoundary.js.map +1 -0
- package/dist/components/FileUploader/FileUploader.js +30 -0
- package/dist/components/FileUploader/FileUploader.js.map +1 -0
- package/dist/components/FileUploader/index.js +2 -0
- package/dist/components/FileUploader/index.js.map +1 -0
- package/dist/components/FormBuilder/FormBuilder.js +74 -0
- package/dist/components/FormBuilder/FormBuilder.js.map +1 -0
- package/dist/components/FormBuilder/FormBuilder.module.scss +94 -0
- package/dist/components/FormBuilder/index.js +2 -0
- package/dist/components/FormBuilder/index.js.map +1 -0
- package/dist/components/FormBuilder/utils/extractFormControlValues/extractFormControlValues.js +50 -0
- package/dist/components/FormBuilder/utils/extractFormControlValues/extractFormControlValues.js.map +1 -0
- package/dist/components/FormBuilder/utils/extractFormControlValues/index.js +2 -0
- package/dist/components/FormBuilder/utils/extractFormControlValues/index.js.map +1 -0
- package/dist/components/FormBuilder/utils/jsonToUrlEncoded/index.js +2 -0
- package/dist/components/FormBuilder/utils/jsonToUrlEncoded/index.js.map +1 -0
- package/dist/components/FormBuilder/utils/jsonToUrlEncoded/jsonToUrlEncoded.js +15 -0
- package/dist/components/FormBuilder/utils/jsonToUrlEncoded/jsonToUrlEncoded.js.map +1 -0
- package/dist/components/FormFooter/FormFooter.js +46 -0
- package/dist/components/FormFooter/FormFooter.js.map +1 -0
- package/dist/components/FormFooter/FormFooter.module.scss +65 -0
- package/dist/components/FormFooter/components/Switch.js +15 -0
- package/dist/components/FormFooter/components/Switch.js.map +1 -0
- package/dist/components/FormFooter/index.js +2 -0
- package/dist/components/FormFooter/index.js.map +1 -0
- package/dist/components/FormGroup/FormGroup.js +18 -0
- package/dist/components/FormGroup/FormGroup.js.map +1 -0
- package/dist/components/FormGroup/FormGroup.module.scss +69 -0
- package/dist/components/FormGroup/index.js +2 -0
- package/dist/components/FormGroup/index.js.map +1 -0
- package/dist/components/FormList/FormList.js +66 -0
- package/dist/components/FormList/FormList.js.map +1 -0
- package/dist/components/FormList/FormList.module.scss +173 -0
- package/dist/components/FormList/index.js +2 -0
- package/dist/components/FormList/index.js.map +1 -0
- package/dist/components/GeneralFormGroup/GeneralFormGroup.js +4 -0
- package/dist/components/GeneralFormGroup/GeneralFormGroup.js.map +1 -0
- package/dist/components/GeneralFormGroup/index.js +2 -0
- package/dist/components/GeneralFormGroup/index.js.map +1 -0
- package/dist/components/Group/Group.js +32 -0
- package/dist/components/Group/Group.js.map +1 -0
- package/dist/components/Group/Group.module.scss +28 -0
- package/dist/components/Group/index.js +2 -0
- package/dist/components/Group/index.js.map +1 -0
- package/dist/components/Input/Input.js +57 -0
- package/dist/components/Input/Input.js.map +1 -0
- package/dist/components/Input/Input.module.scss +3 -0
- package/dist/components/Input/index.js +2 -0
- package/dist/components/Input/index.js.map +1 -0
- package/dist/components/Input/input.styles.js +24 -0
- package/dist/components/Input/input.styles.js.map +1 -0
- package/dist/components/InputFreeSolo/InputFreeSolo.js +67 -0
- package/dist/components/InputFreeSolo/InputFreeSolo.js.map +1 -0
- package/dist/components/InputFreeSolo/InputFreeSolo.module.scss +29 -0
- package/dist/components/InputFreeSolo/index.js +2 -0
- package/dist/components/InputFreeSolo/index.js.map +1 -0
- package/dist/components/MrnInput/MrnInput.js +64 -0
- package/dist/components/MrnInput/MrnInput.js.map +1 -0
- package/dist/components/MrnInput/MrnInput.module.scss +31 -0
- package/dist/components/MrnInput/hooks/useMrn.js +92 -0
- package/dist/components/MrnInput/hooks/useMrn.js.map +1 -0
- package/dist/components/MrnInput/index.js +2 -0
- package/dist/components/MrnInput/index.js.map +1 -0
- package/dist/components/MrnInput/services/fetchMrn.js +30 -0
- package/dist/components/MrnInput/services/fetchMrn.js.map +1 -0
- package/dist/components/MrnInput/ui-helper/Link/Link.js +15 -0
- package/dist/components/MrnInput/ui-helper/Link/Link.js.map +1 -0
- package/dist/components/MrnInput/utils/mrnUtils/mrnUtils.js +35 -0
- package/dist/components/MrnInput/utils/mrnUtils/mrnUtils.js.map +1 -0
- package/dist/components/MrnInput/utils/resolveMrnLinks/resolveMrnLink.js +11 -0
- package/dist/components/MrnInput/utils/resolveMrnLinks/resolveMrnLink.js.map +1 -0
- package/dist/components/MrnInput/utils/resolveNestedQueryLink/resolveNestedQueryLink.js +19 -0
- package/dist/components/MrnInput/utils/resolveNestedQueryLink/resolveNestedQueryLink.js.map +1 -0
- package/dist/components/MrnInput/utils/urlSearchParam/urlSearchParam.js +8 -0
- package/dist/components/MrnInput/utils/urlSearchParam/urlSearchParam.js.map +1 -0
- package/dist/components/MultiSelect/MultiSelect.js +61 -0
- package/dist/components/MultiSelect/MultiSelect.js.map +1 -0
- package/dist/components/MultiSelect/MultiSelect.module.scss +13 -0
- package/dist/components/MultiSelect/index.js +2 -0
- package/dist/components/MultiSelect/index.js.map +1 -0
- package/dist/components/MultiSelect/utils/extractSelectedOptionValues/extractSelectedOptionValues.js +21 -0
- package/dist/components/MultiSelect/utils/extractSelectedOptionValues/extractSelectedOptionValues.js.map +1 -0
- package/dist/components/MultiSelect/utils/extractSelectedOptionValues/index.js +2 -0
- package/dist/components/MultiSelect/utils/extractSelectedOptionValues/index.js.map +1 -0
- package/dist/components/PasswordInput/PasswordInput.js +21 -0
- package/dist/components/PasswordInput/PasswordInput.js.map +1 -0
- package/dist/components/PasswordInput/PasswordInput.module.scss +26 -0
- package/dist/components/PasswordInput/index.js +2 -0
- package/dist/components/PasswordInput/index.js.map +1 -0
- package/dist/components/QueryControl/QueryControl.js +95 -0
- package/dist/components/QueryControl/QueryControl.js.map +1 -0
- package/dist/components/QueryControl/data/defaultControls.js +95 -0
- package/dist/components/QueryControl/data/defaultControls.js.map +1 -0
- package/dist/components/QueryControl/index.js +2 -0
- package/dist/components/QueryControl/index.js.map +1 -0
- package/dist/components/QueryControl/ui-helper/Wrapper/QueryControlWrapper.js +8 -0
- package/dist/components/QueryControl/ui-helper/Wrapper/QueryControlWrapper.js.map +1 -0
- package/dist/components/QueryControl/ui-helper/Wrapper/QueryControlWrapper.styles.js +14 -0
- package/dist/components/QueryControl/ui-helper/Wrapper/QueryControlWrapper.styles.js.map +1 -0
- package/dist/components/QueryControl/ui-helper/Wrapper/index.js +2 -0
- package/dist/components/QueryControl/ui-helper/Wrapper/index.js.map +1 -0
- package/dist/components/QueryControl/utils/allControlsHidden/allControlsHidden.js +39 -0
- package/dist/components/QueryControl/utils/allControlsHidden/allControlsHidden.js.map +1 -0
- package/dist/components/QueryControl/utils/allControlsHidden/index.js +2 -0
- package/dist/components/QueryControl/utils/allControlsHidden/index.js.map +1 -0
- package/dist/components/QueryControl/utils/getMatchingControls.js +19 -0
- package/dist/components/QueryControl/utils/getMatchingControls.js.map +1 -0
- package/dist/components/QueryControl/utils/hasExpertControl/hasExpertControl.js +38 -0
- package/dist/components/QueryControl/utils/hasExpertControl/hasExpertControl.js.map +1 -0
- package/dist/components/QueryControl/utils/hasExpertControl/index.js +2 -0
- package/dist/components/QueryControl/utils/hasExpertControl/index.js.map +1 -0
- package/dist/components/QueryControl/utils/hideGroup/hideGroup.js +9 -0
- package/dist/components/QueryControl/utils/hideGroup/hideGroup.js.map +1 -0
- package/dist/components/QueryControl/utils/hideGroup/index.js +2 -0
- package/dist/components/QueryControl/utils/hideGroup/index.js.map +1 -0
- package/dist/components/Select/Select.js +67 -0
- package/dist/components/Select/Select.js.map +1 -0
- package/dist/components/Select/Select.module.scss +15 -0
- package/dist/components/Select/index.js +2 -0
- package/dist/components/Select/index.js.map +1 -0
- package/dist/components/Select/utils/getSelectedOption.js +8 -0
- package/dist/components/Select/utils/getSelectedOption.js.map +1 -0
- package/dist/components/Textarea/Textarea.js +55 -0
- package/dist/components/Textarea/Textarea.js.map +1 -0
- package/dist/components/Textarea/Textarea.module.scss +14 -0
- package/dist/components/Textarea/Textarea.types.js +2 -0
- package/dist/components/Textarea/Textarea.types.js.map +1 -0
- package/dist/components/Textarea/aiWrapper/aiAction.js +21 -0
- package/dist/components/Textarea/aiWrapper/aiAction.js.map +1 -0
- package/dist/components/Textarea/aiWrapper/aiLayout.js +21 -0
- package/dist/components/Textarea/aiWrapper/aiLayout.js.map +1 -0
- package/dist/components/Textarea/aiWrapper/index.js +29 -0
- package/dist/components/Textarea/aiWrapper/index.js.map +1 -0
- package/dist/components/Textarea/aiWrapper/useAi.js +74 -0
- package/dist/components/Textarea/aiWrapper/useAi.js.map +1 -0
- package/dist/components/Textarea/editors/Default.js +26 -0
- package/dist/components/Textarea/editors/Default.js.map +1 -0
- package/dist/components/Textarea/editors/Html.js +9 -0
- package/dist/components/Textarea/editors/Html.js.map +1 -0
- package/dist/components/Textarea/editors/Json.js +9 -0
- package/dist/components/Textarea/editors/Json.js.map +1 -0
- package/dist/components/Textarea/editors/Markdown.js +20 -0
- package/dist/components/Textarea/editors/Markdown.js.map +1 -0
- package/dist/components/Textarea/editors/Richtext.js +13 -0
- package/dist/components/Textarea/editors/Richtext.js.map +1 -0
- package/dist/components/Textarea/index.js +2 -0
- package/dist/components/Textarea/index.js.map +1 -0
- package/dist/components/addressGroup/AddressGroup.js +39 -0
- package/dist/components/addressGroup/AddressGroup.js.map +1 -0
- package/dist/components/addressGroup/AddressGroup.module.scss +72 -0
- package/dist/components/addressGroup/index.js +2 -0
- package/dist/components/addressGroup/index.js.map +1 -0
- package/dist/components/addressGroup/utils/Countries.js +1249 -0
- package/dist/components/addressGroup/utils/Countries.js.map +1 -0
- package/dist/components/states/error/index.js +15 -0
- package/dist/components/states/error/index.js.map +1 -0
- package/dist/context/FormData.js +109 -0
- package/dist/context/FormData.js.map +1 -0
- package/dist/hooks/useDependent/enhanced/useInputDependent/useInputDependent.js +36 -0
- package/dist/hooks/useDependent/enhanced/useInputDependent/useInputDependent.js.map +1 -0
- package/dist/hooks/useDependent/enhanced/useOptionsGenerator/useOptionsGenerator.js +16 -0
- package/dist/hooks/useDependent/enhanced/useOptionsGenerator/useOptionsGenerator.js.map +1 -0
- package/dist/hooks/useDependent/useDependent.js +86 -0
- package/dist/hooks/useDependent/useDependent.js.map +1 -0
- package/dist/hooks/useValueGenerator/useValueGenerator.js +99 -0
- package/dist/hooks/useValueGenerator/useValueGenerator.js.map +1 -0
- package/dist/index.d.ts +1 -2
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/styles/Hidden.styles.js +16 -0
- package/dist/styles/Hidden.styles.js.map +1 -0
- package/dist/styles/Skeleton.js +40 -0
- package/dist/styles/Skeleton.js.map +1 -0
- package/dist/styles/Textfield.styles.js +34 -0
- package/dist/styles/Textfield.styles.js.map +1 -0
- package/dist/styles/formControl.module.scss +59 -0
- package/dist/testutils.js +22 -0
- package/dist/testutils.js.map +1 -0
- package/dist/types/controlProps.js +2 -0
- package/dist/types/controlProps.js.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/ui/menu/hooks/useMenu.js +41 -0
- package/dist/ui/menu/hooks/useMenu.js.map +1 -0
- package/dist/ui/menu/index.js +13 -0
- package/dist/ui/menu/index.js.map +1 -0
- package/dist/ui/menu/test/createControl.js +30 -0
- package/dist/ui/menu/test/createControl.js.map +1 -0
- package/dist/ui/menu/utils/detemineSubmenuTabs/index.js +82 -0
- package/dist/ui/menu/utils/detemineSubmenuTabs/index.js.map +1 -0
- package/dist/ui-helper/HeaderCollapseButton/index.js +9 -0
- package/dist/ui-helper/HeaderCollapseButton/index.js.map +1 -0
- package/dist/ui-helper/notifications/Error.js +77 -0
- package/dist/ui-helper/notifications/Error.js.map +1 -0
- package/dist/ui-helper/notifications/images/background.js +7 -0
- package/dist/ui-helper/notifications/images/background.js.map +1 -0
- package/dist/ui-helper/notifications/images/spinner.js +6 -0
- package/dist/ui-helper/notifications/images/spinner.js.map +1 -0
- package/dist/ui-helper/notifications/images/under-improvement.js +6 -0
- package/dist/ui-helper/notifications/images/under-improvement.js.map +1 -0
- package/dist/utils/findFormControlError/index.js +24 -0
- package/dist/utils/findFormControlError/index.js.map +1 -0
- package/dist/utils/hasGroupRequiredFieldsWithValues/index.js +22 -0
- package/dist/utils/hasGroupRequiredFieldsWithValues/index.js.map +1 -0
- 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 @@
|
|
|
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":"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"}
|
|
@@ -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 @@
|
|
|
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":"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"}
|
|
@@ -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 @@
|
|
|
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
|