@unite-us/app-create-referral 0.15.144 → 0.15.146

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
3
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
- import React, { useEffect, useState, useRef, useCallback } from 'react';
5
- import { isEqual, isEmpty, get, some, values } from 'lodash';
4
+ import React, { useEffect, useState, useRef, useCallback, useMemo } from 'react';
5
+ import { isEqual, isEmpty, get, some, values, intersectionBy, compact } from 'lodash';
6
6
  import { useNavigate, useLocation } from 'react-router-dom';
7
7
  import { Button } from '@unite-us/app-components';
8
8
  import { setData, useAppCreateReferralContext } from '../../context/AppCreateReferralProvider';
@@ -21,6 +21,8 @@ import fetchCaseDocuments from '../../actions/Document/Contact/Group/fetchCaseDo
21
21
  import classNames from 'classnames';
22
22
  import fetchNetworks from '../../actions/Referral/fetchNetworks';
23
23
  import { useFeatureFlag } from '../../utils/useFeatureFlag';
24
+ import { useFind } from '../../api/ApiHooks';
25
+ import { mapClientNeeds } from './utils/referralBuilderFormUtils';
24
26
  import ChooseOneServiceTypeModal from './components/ChooseOneServiceTypeModal';
25
27
  import { REFERRAL_BUILDER_DESCRIPTION } from './constants';
26
28
  import { handleKeyDown } from '../../common/utils/utils';
@@ -61,7 +63,7 @@ export default function ReferralBuilder() {
61
63
  }, []);
62
64
  const hint542SupersetUnlistedPrograms = useFeatureFlag('hint542SupersetUnlistedPrograms', false);
63
65
  const crtb854ForwardingSuperset = useFeatureFlag('crtb854ForwardingSuperset', false);
64
- const showClientNeeds = useFeatureFlag('crtb2130MultipleClientNeeds', false);
66
+ const featureFlagClientNeeds = useFeatureFlag('crtb2130MultipleClientNeeds', false);
65
67
  const [servicesState, setServicesState] = useState([]);
66
68
  const [aboutGroupedReferralsModalIsOpen, setAboutGroupedReferralsModalIsOpen] = useState(false);
67
69
  const [isOpenChooseOneServiceTypeModal, setChooseOneServiceTypeModalIsOpen] = useState(false);
@@ -83,7 +85,33 @@ export default function ReferralBuilder() {
83
85
  const query = new URLSearchParams(location.search);
84
86
  const caseId = contextCaseId || query.get('caseId');
85
87
  const personId = (person === null || person === void 0 ? void 0 : person.id) || query.get('person');
86
- const errors = buildReferralErrors(fieldErrors);
88
+ const {
89
+ data: clientNeedsData
90
+ } = useFind("people/".concat(personId, "/person_condition"), {
91
+ most_recent: true
92
+ }, {
93
+ queryConfig: {
94
+ placeholderData: undefined
95
+ }
96
+ });
97
+ const clientNeeds = useMemo(() => mapClientNeeds(clientNeedsData), [clientNeedsData]);
98
+ const showClientNeeds = featureFlagClientNeeds && !isEmpty(clientNeeds);
99
+ const errors = Object.keys(fieldErrors).reduce((acc, index) => {
100
+ const fieldError = fieldErrors[index];
101
+ acc[index] = {
102
+ service: fieldError === null || fieldError === void 0 ? void 0 : fieldError.service,
103
+ network: fieldError === null || fieldError === void 0 ? void 0 : fieldError.network,
104
+ primary_worker: fieldError === null || fieldError === void 0 ? void 0 : fieldError.primary_worker,
105
+ description: fieldError === null || fieldError === void 0 ? void 0 : fieldError.description,
106
+ amount_requested: (fieldError === null || fieldError === void 0 ? void 0 : fieldError.amount_requested) || (fieldError === null || fieldError === void 0 ? void 0 : fieldError.amount_exceeded),
107
+ service_end: (fieldError === null || fieldError === void 0 ? void 0 : fieldError.service_end) || (fieldError === null || fieldError === void 0 ? void 0 : fieldError.invalid_insurance_auth_dates),
108
+ passthrough_dates: fieldError === null || fieldError === void 0 ? void 0 : fieldError.passthrough_dates,
109
+ opened_date: fieldError === null || fieldError === void 0 ? void 0 : fieldError.opened_date,
110
+ icd10_code: fieldError === null || fieldError === void 0 ? void 0 : fieldError.icd10_code,
111
+ client_need: fieldError === null || fieldError === void 0 ? void 0 : fieldError.client_need
112
+ };
113
+ return acc;
114
+ }, {});
87
115
  const setReferralErrors = (referralIndex, newErrors) => {
88
116
  setFieldErrors(prevFieldErrors => {
89
117
  const currentErrors = prevFieldErrors[referralIndex];
@@ -148,6 +176,15 @@ export default function ReferralBuilder() {
148
176
  }
149
177
  }
150
178
  }, [isLoading]);
179
+ useEffect(() => {
180
+ if (isEmpty(referrals)) {
181
+ return;
182
+ }
183
+ const initErrors = initializeReferralErrors(referrals, showClientNeeds);
184
+ referrals.forEach((_referral, index) => {
185
+ setReferralErrors(index, initErrors[index]);
186
+ });
187
+ }, [referrals, showClientNeeds]);
151
188
  useEffect(() => {
152
189
  const syncExpandedCardWhenChevronHidden = () => {
153
190
  const currentWindowWidth = window.innerWidth;
@@ -1 +1 @@
1
- {"version":3,"file":"ReferralBuilder.js","names":["React","useEffect","useState","useRef","useCallback","isEqual","isEmpty","get","some","values","useNavigate","useLocation","Button","setData","useAppCreateReferralContext","StepHeader","isUnlistedProgram","getReferralSubtitle","initializeReferralErrors","generateErrorMessage","hasOffPlatformReferrals","isEmptyErrors","updatedReferralsBySelectedServices","useBuildReferrals","useReferralMutations","CreateReferralContainer","NavButtons","NoReferralsDisplay","Spinner","useCreateReferrals","CALLBACKS","coreApi","fetchContactDocuments","fetchCaseDocuments","classNames","fetchNetworks","useFeatureFlag","ChooseOneServiceTypeModal","REFERRAL_BUILDER_DESCRIPTION","handleKeyDown","AboutGroupedReferralsModal","buildReferralErrors","getFirstIndexWithErrors","focusReferralError","getSelectedReferral","getUnselectedReferralIndexes","splitServicesBySelection","getServiceNameById","buildProgramsToServicesState","ReferralBuilderContent","clearDraftState","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ReferralBuilder","_location$state$selec","_location$state","location","navigate","dispatch","state","referrals","selectedPrograms","currentEmployee","currentProvider","fieldsConfig","source","person","draftState","referralDescription","caseId","contextCaseId","referralId","referralType","form","ChooseOneServiceTypeModalRef","previousWindowWidthRef","window","innerWidth","openChooseOneServiceTypeModal","current","openDialog","closeChooseOneServiceTypeModal","closeDialog","hint542SupersetUnlistedPrograms","crtb854ForwardingSuperset","showClientNeeds","servicesState","setServicesState","aboutGroupedReferralsModalIsOpen","setAboutGroupedReferralsModalIsOpen","isOpenChooseOneServiceTypeModal","setChooseOneServiceTypeModalIsOpen","selectedIndex","setSelectedIndex","selectedReferral","fieldErrors","setFieldErrors","nextClicked","setNextClicked","saveDraftClicked","setSaveDraftClicked","isSavingDraft","setIsSavingDraft","expandReferralsCard","setExpandReferralsCard","documents","setDocuments","caseDocuments","setCaseDocuments","loadedDocuments","setloadedDocuments","isEmrSource","networksUnlistedProgram","setNetworksUnlistedProgram","caseData","setCaseData","hasDraftReferral","referralBuilderTitle","isForwardReferralPath","query","URLSearchParams","search","personId","id","errors","setReferralErrors","referralIndex","newErrors","prevFieldErrors","currentErrors","updatedErrors","_objectSpread","onReferralsBuilt","groupedReferrals","initErrors","forEach","_referral","index","isLoading","saveValuesOnChange","moveToExistingReferral","moveToNewReferral","removeProgram","updateAttachments","updatePersistedAttachments","handleServiceSelectionChange","programId","serviceId","prevState","map","service","selected","findServiceName","_ref","serviceToFind","hasUnlistedPrograms","program","then","networks","syncExpandedCardWhenChevronHidden","currentWindowWidth","previousWindowWidth","addEventListener","removeEventListener","onLearnMoreClick","onCloseGroupedReferralsModal","refModal","openModal","closeModal","onReferralCardClick","result","fetchCaseData","data","findRecord","error","console","updatedReferrals","referral","attachableDocuments","doc","attached","document","hasMoreThanOneServiceType","_program$services","services","length","getSelected","firstIndexWithErrors","focusErrors","Boolean","formRef","onNextClick","concat","navigateBack","draftCaseId","redirectToDraftReferral","onNavigateBack","navigateToAddResources","onNavigateToAddResources","createReferrals","handleSaveDraftReferral","draft","onSaveDraftReferral","notify","success","changeWidthReferralCard","prevExpandReferralsCard","center","referralSubtitle","unselectedReferralIndexes","allPrograms","flatMap","r","programs","errorMessage","currentReferral","xlOrLgInvisibleChevron","xlOrLgSpaceReferralDiv","onConfirmApplyChanges","selectedServices","unselectedServices","onDeselectProgram","children","className","header","type","onClick","onKeyDown","event","label","link","ref","onClose","modalRef","onConfirm","onServiceSelectionChange","onBackClick","onForwardClick","primaryLabel","hideForwardButtons","hideSaveDraftLink","disabled","selectedFormKey"],"sources":["../../../src/pages/builder/ReferralBuilder.js"],"sourcesContent":["import React, { useEffect, useState, useRef, useCallback } from 'react';\nimport { isEqual, isEmpty, get, some, values } from 'lodash';\nimport { useNavigate, useLocation } from 'react-router-dom';\nimport { Button } from '@unite-us/app-components';\nimport { setData, useAppCreateReferralContext } from '../../context/AppCreateReferralProvider';\nimport StepHeader from '../../components/StepHeader';\nimport { isUnlistedProgram, getReferralSubtitle, initializeReferralErrors, generateErrorMessage, hasOffPlatformReferrals, isEmptyErrors, updatedReferralsBySelectedServices } from './utils';\nimport useBuildReferrals from './hooks/useBuildReferrals';\nimport useReferralMutations from './hooks/useReferralMutations';\nimport CreateReferralContainer from '../../components/CreateReferralContainer';\nimport NavButtons from '../../components/NavButtons';\nimport NoReferralsDisplay from '../../components/NoReferralsDisplay';\nimport Spinner from '../../components/spinners/Spinner';\nimport useCreateReferrals from '../../hooks/useCreateReferrals';\nimport { CALLBACKS, coreApi } from '../../api/config';\nimport fetchContactDocuments from '../../actions/Document/Contact/Group/fetchContactDocuments';\nimport fetchCaseDocuments from '../../actions/Document/Contact/Group/fetchCaseDocuments';\nimport classNames from 'classnames';\nimport fetchNetworks from '../../actions/Referral/fetchNetworks';\nimport { useFeatureFlag } from '../../utils/useFeatureFlag';\nimport ChooseOneServiceTypeModal from './components/ChooseOneServiceTypeModal';\nimport {\n REFERRAL_BUILDER_DESCRIPTION,\n} from './constants';\nimport { handleKeyDown } from '../../common/utils/utils';\nimport AboutGroupedReferralsModal from './components/AboutGroupedReferralsModal';\nimport {\n buildReferralErrors,\n getFirstIndexWithErrors,\n focusReferralError,\n getSelectedReferral,\n getUnselectedReferralIndexes,\n splitServicesBySelection,\n getServiceNameById,\n buildProgramsToServicesState,\n} from './utils/referralBuilderUtils';\nimport ReferralBuilderContent from './components/ReferralBuilderContent';\nimport clearDraftState from './clearDraftState';\n\nexport default function ReferralBuilder() {\n const location = useLocation();\n const navigate = useNavigate();\n const {\n dispatch,\n state: {\n referrals,\n selectedPrograms,\n currentEmployee,\n currentProvider,\n fieldsConfig,\n source,\n person,\n draftState,\n referralDescription,\n caseId: contextCaseId,\n referralId,\n referralType,\n },\n } = useAppCreateReferralContext();\n const form = useRef();\n const ChooseOneServiceTypeModalRef = useRef();\n const previousWindowWidthRef = useRef(window.innerWidth);\n\n const openChooseOneServiceTypeModal = useCallback(() => {\n ChooseOneServiceTypeModalRef.current.openDialog();\n }, []);\n\n const closeChooseOneServiceTypeModal = useCallback(() => {\n ChooseOneServiceTypeModalRef.current.closeDialog();\n }, []);\n\n const hint542SupersetUnlistedPrograms = useFeatureFlag('hint542SupersetUnlistedPrograms', false);\n const crtb854ForwardingSuperset = useFeatureFlag('crtb854ForwardingSuperset', false);\n const showClientNeeds = useFeatureFlag('crtb2130MultipleClientNeeds', false);\n\n const [servicesState, setServicesState] = useState([]);\n const [aboutGroupedReferralsModalIsOpen, setAboutGroupedReferralsModalIsOpen] = useState(false);\n const [isOpenChooseOneServiceTypeModal, setChooseOneServiceTypeModalIsOpen] = useState(false);\n const [selectedIndex, setSelectedIndex] = useState(location.state?.selectedReferral ?? 0);\n const [fieldErrors, setFieldErrors] = useState({})\n const [nextClicked, setNextClicked] = useState(false);\n const [saveDraftClicked, setSaveDraftClicked] = useState(false);\n const [isSavingDraft, setIsSavingDraft] = useState(false);\n const [expandReferralsCard, setExpandReferralsCard] = useState(false);\n const [documents, setDocuments] = useState([]);\n const [caseDocuments, setCaseDocuments] = useState([]);\n const [loadedDocuments, setloadedDocuments] = useState(false);\n const isEmrSource = source === 'emr';\n const [networksUnlistedProgram, setNetworksUnlistedProgram] = useState([]);\n const [caseData, setCaseData] = useState(null);\n const hasDraftReferral = draftState?.state === 'draft';\n const referralBuilderTitle = hasDraftReferral ? 'Edit Your Referrals' : 'Prepare Your Referrals';\n const isForwardReferralPath = !!referralId && !!referralType;\n const query = new URLSearchParams(location.search);\n const caseId = contextCaseId || query.get('caseId');\n const personId = person?.id || query.get('person');\n\n const errors = buildReferralErrors(fieldErrors);\n const setReferralErrors = (referralIndex, newErrors) => {\n setFieldErrors((prevFieldErrors) => {\n const currentErrors = prevFieldErrors[referralIndex];\n const updatedErrors = { ...currentErrors, ...newErrors };\n \n if (isEqual(updatedErrors, currentErrors)) {\n return prevFieldErrors;\n }\n \n return {\n ...prevFieldErrors,\n [referralIndex]: updatedErrors,\n };\n });\n };\n\n const onReferralsBuilt = (groupedReferrals) => {\n if(!isEmpty(groupedReferrals)) {\n const initErrors = initializeReferralErrors(groupedReferrals, showClientNeeds);\n groupedReferrals.forEach((_referral, index) => {\n setReferralErrors(index, initErrors[index]);\n });\n }\n };\n\n const { isLoading } = useBuildReferrals(onReferralsBuilt);\n\n const {\n saveValuesOnChange,\n moveToExistingReferral,\n moveToNewReferral,\n removeProgram,\n updateAttachments,\n updatePersistedAttachments,\n } = useReferralMutations({\n referrals,\n selectedPrograms,\n selectedIndex,\n setSelectedIndex,\n errors,\n setFieldErrors,\n dispatch,\n });\n\n const handleServiceSelectionChange = (programId, serviceId) => {\n setServicesState(prevState =>\n prevState.map(service =>\n service.programId === programId && service.serviceId === serviceId\n ? { ...service, selected: !service.selected }\n : service\n )\n );\n };\n\n const findServiceName = ({ serviceToFind }) => (\n getServiceNameById(referrals, serviceToFind)\n );\n\n useEffect(() => {\n setServicesState(buildProgramsToServicesState(selectedPrograms, referrals));\n }, [selectedPrograms]);\n\n useEffect(() => {\n if (!isLoading && hint542SupersetUnlistedPrograms) {\n // If the selected programs contain unlisted programs, fetch the networks from the user provider\n const hasUnlistedPrograms = selectedPrograms?.some((program) => isUnlistedProgram(program));\n if (hasUnlistedPrograms) {\n fetchNetworks(currentProvider).then((networks) => {\n setNetworksUnlistedProgram(networks);\n });\n }\n }\n }, [isLoading]);\n\n useEffect(() => {\n const syncExpandedCardWhenChevronHidden = () => {\n const currentWindowWidth = window.innerWidth;\n const previousWindowWidth = previousWindowWidthRef.current;\n\n if (currentWindowWidth >= 1024) {\n setExpandReferralsCard(true);\n } else if (previousWindowWidth >= 1024) {\n setExpandReferralsCard(false);\n }\n\n previousWindowWidthRef.current = currentWindowWidth;\n };\n\n syncExpandedCardWhenChevronHidden();\n window.addEventListener('resize', syncExpandedCardWhenChevronHidden);\n return () => window.removeEventListener('resize', syncExpandedCardWhenChevronHidden);\n }, []);\n\n\n const onLearnMoreClick = () => {\n setAboutGroupedReferralsModalIsOpen(true);\n };\n\n const onCloseGroupedReferralsModal = () => {\n setAboutGroupedReferralsModalIsOpen(false);\n }\n\n const refModal = useRef(null);\n useEffect(() => {\n if (aboutGroupedReferralsModalIsOpen) {\n refModal.current.openModal();\n } else {\n refModal.current.closeModal();\n }\n }, [aboutGroupedReferralsModalIsOpen]);\n\n useEffect(() => {\n if (!isLoading && isOpenChooseOneServiceTypeModal) {\n openChooseOneServiceTypeModal();\n }\n }, [isLoading]);\n\n const onReferralCardClick = (index) => {\n setSelectedIndex(index);\n }\n\n useEffect(() => {\n fetchContactDocuments(person.id).then((result) => {\n setDocuments(result);\n });\n }, []);\n\n useEffect(() => {\n if (caseId && crtb854ForwardingSuperset) {\n fetchCaseDocuments(caseId).then((result) => {\n setCaseDocuments(result);\n });\n }\n }, []);\n\n useEffect(() => {\n const fetchCaseData = async () => {\n if (caseId) {\n try {\n const { data: { data: caseData } } = await coreApi.findRecord('case', caseId);\n setCaseData(caseData);\n } catch (error) {\n console.error('Error fetching case data:', error);\n }\n }\n };\n fetchCaseData();\n }, [caseId]);\n\n useEffect(() => {\n if (!isEmpty(referrals) && !loadedDocuments && (!isEmpty(documents) || !isEmpty(caseDocuments))) {\n const updatedReferrals = referrals.map((referral) => {\n if(!referral.attachableDocuments) {\n return {\n ...referral,\n attachableDocuments: [...documents, ...caseDocuments].map((doc) => ({ attached: false, document: doc })),\n };\n } else {\n return referral;\n }\n });\n\n dispatch(setData({\n referrals: updatedReferrals,\n }));\n\n setloadedDocuments(true);\n }\n\n const hasMoreThanOneServiceType = selectedPrograms?.some((program) => {\n return program?.services?.length > 1\n })\n setChooseOneServiceTypeModalIsOpen(hasMoreThanOneServiceType)\n }, [referrals]);\n\n const getSelected = () => getSelectedReferral(referrals, selectedIndex);\n\n const firstIndexWithErrors = getFirstIndexWithErrors(errors);\n\n const focusErrors = () => {\n let index = selectedIndex;\n if (!some(values(errors[index]), Boolean)) {\n index = firstIndexWithErrors; \n setSelectedIndex(index);\n }\n\n focusReferralError({\n errors,\n index,\n formRef: form,\n });\n }\n\n const onNextClick = () => {\n if (isEmptyErrors(errors)) {\n return navigate(`/create/${isForwardReferralPath ? 'review' : 'supporting-info'}`);\n }\n\n focusErrors();\n setNextClicked(true);\n }\n\n const navigateBack = () => {\n if (hasDraftReferral) {\n const draftCaseId = get(draftState, 'case.id', null);\n CALLBACKS.redirectToDraftReferral(draftCaseId);\n } else if (CALLBACKS.onNavigateBack) {\n CALLBACKS.onNavigateBack(crtb854ForwardingSuperset ? { referralId, referralDescription } : { referralDescription });\n } else {\n navigate(-1);\n }\n };\n\n const navigateToAddResources = () => CALLBACKS.onNavigateToAddResources();\n\n const createReferrals = useCreateReferrals();\n const handleSaveDraftReferral = async () => {\n setSaveDraftClicked(true);\n if (isSavingDraft) return;\n if (!isEmptyErrors(errors)) {\n focusErrors();\n return;\n }\n\n setIsSavingDraft(true);\n try {\n await createReferrals({ draft: true });\n const { onSaveDraftReferral } = CALLBACKS;\n onSaveDraftReferral && onSaveDraftReferral();\n clearDraftState(dispatch);\n CALLBACKS.notify.success('Draft referral successfully saved');\n } finally {\n setIsSavingDraft(false);\n }\n };\n\n const changeWidthReferralCard = () => {\n setExpandReferralsCard((prevExpandReferralsCard) => !prevExpandReferralsCard);\n };\n\n if (isLoading) return <Spinner center />;\n\n const referralSubtitle = getReferralSubtitle(referrals, getSelected());\n const unselectedReferralIndexes = getUnselectedReferralIndexes(referrals, selectedIndex);\n const allPrograms = referrals?.flatMap((r) => r.programs);\n const errorMessage = generateErrorMessage(errors);\n const currentReferral = getSelected();\n\n const xlOrLgInvisibleChevron = classNames({\n 'lg:invisible': true\n });\n\n const xlOrLgSpaceReferralDiv = classNames({\n 'lg:space-x-6': true\n });\n\n const onConfirmApplyChanges = () => {\n const {\n selectedServices,\n unselectedServices,\n } = splitServicesBySelection(servicesState);\n const updatedReferrals = updatedReferralsBySelectedServices(referrals, selectedServices);\n\n const initErrors = initializeReferralErrors(updatedReferrals, showClientNeeds);\n setFieldErrors(initErrors);\n\n dispatch(setData({\n referrals: updatedReferrals,\n }));\n\n unselectedServices.forEach((service) => {\n CALLBACKS.onDeselectProgram({\n id: service.programId,\n service: service.serviceId,\n });\n });\n\n closeChooseOneServiceTypeModal();\n };\n\n\n return (\n <CreateReferralContainer>\n <div className=\"px-12\">\n <StepHeader header={referralBuilderTitle}>\n {REFERRAL_BUILDER_DESCRIPTION}\n <br />\n <Button\n type=\"button\"\n onClick={onLearnMoreClick}\n onKeyDown={(event) => handleKeyDown(event, onLearnMoreClick)}\n aria-expanded={aboutGroupedReferralsModalIsOpen}\n label=\"Click here to learn more about referrals.\"\n className=\"border-0\"\n link\n />\n </StepHeader>\n\n <AboutGroupedReferralsModal ref={refModal} onClose={onCloseGroupedReferralsModal} />\n\n {isOpenChooseOneServiceTypeModal && (\n <ChooseOneServiceTypeModal \n closeDialog={closeChooseOneServiceTypeModal}\n programs={selectedPrograms}\n referrals={referrals}\n modalRef={ChooseOneServiceTypeModalRef}\n findServiceName={findServiceName}\n onConfirm={onConfirmApplyChanges}\n onServiceSelectionChange={handleServiceSelectionChange}\n servicesState={servicesState}\n />\n )}\n <>\n <NavButtons\n onBackClick={navigateBack}\n onForwardClick={onNextClick}\n onSaveDraftReferral={handleSaveDraftReferral}\n primaryLabel=\"Next\"\n hideForwardButtons={isEmpty(referrals)}\n hideSaveDraftLink={get(fieldsConfig, 'hideSaveDraftLink')}\n hasOffPlatformReferrals={hasOffPlatformReferrals(referrals)}\n hasDraftReferral={hasDraftReferral}\n isForwardReferralPath={isForwardReferralPath}\n disabled={isSavingDraft}\n isSavingDraft={isSavingDraft}\n />\n\n {!isEmpty(allPrograms) ? (\n <ReferralBuilderContent\n key={selectedIndex}\n selectedFormKey={selectedIndex}\n errorMessage={errorMessage}\n nextClicked={nextClicked}\n saveDraftClicked={saveDraftClicked}\n xlOrLgSpaceReferralDiv={xlOrLgSpaceReferralDiv}\n expandReferralsCard={expandReferralsCard}\n xlOrLgInvisibleChevron={xlOrLgInvisibleChevron}\n changeWidthReferralCard={changeWidthReferralCard}\n referrals={referrals}\n currentEmployee={currentEmployee}\n currentProvider={currentProvider}\n hasDraftReferral={hasDraftReferral}\n navigateToAddResources={navigateToAddResources}\n referralSubtitle={referralSubtitle}\n saveValuesOnChange={saveValuesOnChange}\n unselectedReferralIndexes={unselectedReferralIndexes}\n removeProgram={removeProgram}\n form={form}\n moveToNewReferral={moveToNewReferral}\n moveToExistingReferral={moveToExistingReferral}\n updateAttachments={updateAttachments}\n source={source}\n networksUnlistedProgram={networksUnlistedProgram}\n setReferralErrors={setReferralErrors}\n referralDescription={referralDescription}\n person={person}\n caseData={caseData}\n personId={personId}\n selectedIndex={selectedIndex}\n isEmrSource={isEmrSource}\n errors={errors}\n onReferralCardClick={onReferralCardClick}\n currentReferral={currentReferral}\n updatePersistedAttachments={updatePersistedAttachments}\n />\n ) : (\n <NoReferralsDisplay\n hasDraftReferral={hasDraftReferral}\n navigateToAddResources={navigateToAddResources}\n onClick={navigateBack}\n />\n )}\n\n <NavButtons\n onBackClick={navigateBack}\n onForwardClick={onNextClick}\n onSaveDraftReferral={handleSaveDraftReferral}\n primaryLabel=\"Next\"\n hideForwardButtons={isEmpty(referrals)}\n hideSaveDraftLink={get(fieldsConfig, 'hideSaveDraftLink')}\n hasDraftReferral={hasDraftReferral}\n hasOffPlatformReferrals={hasOffPlatformReferrals(referrals)}\n isForwardReferralPath={isForwardReferralPath}\n disabled={isSavingDraft}\n isSavingDraft={isSavingDraft}\n />\n </>\n </div>\n </CreateReferralContainer>\n )\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAKC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,WAAW,QAAQ,OAAO;AACxE,SAASC,OAAO,EAAEC,OAAO,EAAEC,GAAG,EAAEC,IAAI,EAAEC,MAAM,QAAQ,QAAQ;AAC5D,SAASC,WAAW,EAAEC,WAAW,QAAQ,kBAAkB;AAC3D,SAASC,MAAM,QAAQ,0BAA0B;AACjD,SAASC,OAAO,EAAEC,2BAA2B,QAAQ,yCAAyC;AAC9F,OAAOC,UAAU,MAAM,6BAA6B;AACpD,SAASC,iBAAiB,EAAEC,mBAAmB,EAAEC,wBAAwB,EAAEC,oBAAoB,EAAEC,uBAAuB,EAAEC,aAAa,EAAEC,kCAAkC,QAAQ,SAAS;AAC5L,OAAOC,iBAAiB,MAAM,2BAA2B;AACzD,OAAOC,oBAAoB,MAAM,8BAA8B;AAC/D,OAAOC,uBAAuB,MAAM,0CAA0C;AAC9E,OAAOC,UAAU,MAAM,6BAA6B;AACpD,OAAOC,kBAAkB,MAAM,qCAAqC;AACpE,OAAOC,OAAO,MAAM,mCAAmC;AACvD,OAAOC,kBAAkB,MAAM,gCAAgC;AAC/D,SAASC,SAAS,EAAEC,OAAO,QAAQ,kBAAkB;AACrD,OAAOC,qBAAqB,MAAM,4DAA4D;AAC9F,OAAOC,kBAAkB,MAAM,yDAAyD;AACxF,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,aAAa,MAAM,sCAAsC;AAChE,SAASC,cAAc,QAAQ,4BAA4B;AAC3D,OAAOC,yBAAyB,MAAM,wCAAwC;AAC9E,SACEC,4BAA4B,QACvB,aAAa;AACpB,SAASC,aAAa,QAAQ,0BAA0B;AACxD,OAAOC,0BAA0B,MAAM,yCAAyC;AAChF,SACEC,mBAAmB,EACnBC,uBAAuB,EACvBC,kBAAkB,EAClBC,mBAAmB,EACnBC,4BAA4B,EAC5BC,wBAAwB,EACxBC,kBAAkB,EAClBC,4BAA4B,QACvB,8BAA8B;AACrC,OAAOC,sBAAsB,MAAM,qCAAqC;AACxE,OAAOC,eAAe,MAAM,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAEhD,eAAe,SAASC,eAAeA,CAAA,EAAG;EAAA,IAAAC,qBAAA,EAAAC,eAAA;EACxC,MAAMC,QAAQ,GAAGjD,WAAW,CAAC,CAAC;EAC9B,MAAMkD,QAAQ,GAAGnD,WAAW,CAAC,CAAC;EAC9B,MAAM;IACJoD,QAAQ;IACRC,KAAK,EAAE;MACLC,SAAS;MACTC,gBAAgB;MAChBC,eAAe;MACfC,eAAe;MACfC,YAAY;MACZC,MAAM;MACNC,MAAM;MACNC,UAAU;MACVC,mBAAmB;MACnBC,MAAM,EAAEC,aAAa;MACrBC,UAAU;MACVC;IACF;EACF,CAAC,GAAG9D,2BAA2B,CAAC,CAAC;EACjC,MAAM+D,IAAI,GAAG1E,MAAM,CAAC,CAAC;EACrB,MAAM2E,4BAA4B,GAAG3E,MAAM,CAAC,CAAC;EAC7C,MAAM4E,sBAAsB,GAAG5E,MAAM,CAAC6E,MAAM,CAACC,UAAU,CAAC;EAExD,MAAMC,6BAA6B,GAAG9E,WAAW,CAAC,MAAM;IACtD0E,4BAA4B,CAACK,OAAO,CAACC,UAAU,CAAC,CAAC;EACnD,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,8BAA8B,GAAGjF,WAAW,CAAC,MAAM;IACvD0E,4BAA4B,CAACK,OAAO,CAACG,WAAW,CAAC,CAAC;EACpD,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,+BAA+B,GAAGnD,cAAc,CAAC,iCAAiC,EAAE,KAAK,CAAC;EAChG,MAAMoD,yBAAyB,GAAGpD,cAAc,CAAC,2BAA2B,EAAE,KAAK,CAAC;EACpF,MAAMqD,eAAe,GAAGrD,cAAc,CAAC,6BAA6B,EAAE,KAAK,CAAC;EAE5E,MAAM,CAACsD,aAAa,EAAEC,gBAAgB,CAAC,GAAGzF,QAAQ,CAAC,EAAE,CAAC;EACtD,MAAM,CAAC0F,gCAAgC,EAAEC,mCAAmC,CAAC,GAAG3F,QAAQ,CAAC,KAAK,CAAC;EAC/F,MAAM,CAAC4F,+BAA+B,EAAEC,kCAAkC,CAAC,GAAG7F,QAAQ,CAAC,KAAK,CAAC;EAC7F,MAAM,CAAC8F,aAAa,EAAEC,gBAAgB,CAAC,GAAG/F,QAAQ,EAAAwD,qBAAA,IAAAC,eAAA,GAACC,QAAQ,CAACG,KAAK,cAAAJ,eAAA,uBAAdA,eAAA,CAAgBuC,gBAAgB,cAAAxC,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC;EACzF,MAAM,CAACyC,WAAW,EAAEC,cAAc,CAAC,GAAGlG,QAAQ,CAAC,CAAC,CAAC,CAAC;EAClD,MAAM,CAACmG,WAAW,EAAEC,cAAc,CAAC,GAAGpG,QAAQ,CAAC,KAAK,CAAC;EACrD,MAAM,CAACqG,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGtG,QAAQ,CAAC,KAAK,CAAC;EAC/D,MAAM,CAACuG,aAAa,EAAEC,gBAAgB,CAAC,GAAGxG,QAAQ,CAAC,KAAK,CAAC;EACzD,MAAM,CAACyG,mBAAmB,EAAEC,sBAAsB,CAAC,GAAG1G,QAAQ,CAAC,KAAK,CAAC;EACrE,MAAM,CAAC2G,SAAS,EAAEC,YAAY,CAAC,GAAG5G,QAAQ,CAAC,EAAE,CAAC;EAC9C,MAAM,CAAC6G,aAAa,EAAEC,gBAAgB,CAAC,GAAG9G,QAAQ,CAAC,EAAE,CAAC;EACtD,MAAM,CAAC+G,eAAe,EAAEC,kBAAkB,CAAC,GAAGhH,QAAQ,CAAC,KAAK,CAAC;EAC7D,MAAMiH,WAAW,GAAG9C,MAAM,KAAK,KAAK;EACpC,MAAM,CAAC+C,uBAAuB,EAAEC,0BAA0B,CAAC,GAAGnH,QAAQ,CAAC,EAAE,CAAC;EAC1E,MAAM,CAACoH,QAAQ,EAAEC,WAAW,CAAC,GAAGrH,QAAQ,CAAC,IAAI,CAAC;EAC9C,MAAMsH,gBAAgB,GAAG,CAAAjD,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAER,KAAK,MAAK,OAAO;EACtD,MAAM0D,oBAAoB,GAAGD,gBAAgB,GAAG,qBAAqB,GAAG,wBAAwB;EAChG,MAAME,qBAAqB,GAAG,CAAC,CAAC/C,UAAU,IAAI,CAAC,CAACC,YAAY;EAC5D,MAAM+C,KAAK,GAAG,IAAIC,eAAe,CAAChE,QAAQ,CAACiE,MAAM,CAAC;EAClD,MAAMpD,MAAM,GAAGC,aAAa,IAAIiD,KAAK,CAACpH,GAAG,CAAC,QAAQ,CAAC;EACnD,MAAMuH,QAAQ,GAAG,CAAAxD,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEyD,EAAE,KAAIJ,KAAK,CAACpH,GAAG,CAAC,QAAQ,CAAC;EAElD,MAAMyH,MAAM,GAAGvF,mBAAmB,CAAC0D,WAAW,CAAC;EAC/C,MAAM8B,iBAAiB,GAAGA,CAACC,aAAa,EAAEC,SAAS,KAAK;IACtD/B,cAAc,CAAEgC,eAAe,IAAK;MAClC,MAAMC,aAAa,GAAGD,eAAe,CAACF,aAAa,CAAC;MACpD,MAAMI,aAAa,GAAAC,aAAA,CAAAA,aAAA,KAAQF,aAAa,GAAKF,SAAS,CAAE;MAExD,IAAI9H,OAAO,CAACiI,aAAa,EAAED,aAAa,CAAC,EAAE;QACzC,OAAOD,eAAe;MACxB;MAEA,OAAAG,aAAA,CAAAA,aAAA,KACKH,eAAe;QAClB,CAACF,aAAa,GAAGI;MAAa;IAElC,CAAC,CAAC;EACJ,CAAC;EAED,MAAME,gBAAgB,GAAIC,gBAAgB,IAAK;IAC7C,IAAG,CAACnI,OAAO,CAACmI,gBAAgB,CAAC,EAAE;MAC7B,MAAMC,UAAU,GAAGxH,wBAAwB,CAACuH,gBAAgB,EAAEhD,eAAe,CAAC;MAC9EgD,gBAAgB,CAACE,OAAO,CAAC,CAACC,SAAS,EAAEC,KAAK,KAAK;QAC7CZ,iBAAiB,CAACY,KAAK,EAAEH,UAAU,CAACG,KAAK,CAAC,CAAC;MAC7C,CAAC,CAAC;IACJ;EACF,CAAC;EAED,MAAM;IAAEC;EAAU,CAAC,GAAGvH,iBAAiB,CAACiH,gBAAgB,CAAC;EAEzD,MAAM;IACJO,kBAAkB;IAClBC,sBAAsB;IACtBC,iBAAiB;IACjBC,aAAa;IACbC,iBAAiB;IACjBC;EACF,CAAC,GAAG5H,oBAAoB,CAAC;IACvBwC,SAAS;IACTC,gBAAgB;IAChB+B,aAAa;IACbC,gBAAgB;IAChB+B,MAAM;IACN5B,cAAc;IACdtC;EACF,CAAC,CAAC;EAEF,MAAMuF,4BAA4B,GAAGA,CAACC,SAAS,EAAEC,SAAS,KAAK;IAC7D5D,gBAAgB,CAAC6D,SAAS,IACxBA,SAAS,CAACC,GAAG,CAACC,OAAO,IACnBA,OAAO,CAACJ,SAAS,KAAKA,SAAS,IAAII,OAAO,CAACH,SAAS,KAAKA,SAAS,GAAAhB,aAAA,CAAAA,aAAA,KACzDmB,OAAO;MAAEC,QAAQ,EAAE,CAACD,OAAO,CAACC;IAAQ,KACzCD,OACN,CACF,CAAC;EACH,CAAC;EAED,MAAME,eAAe,GAAGC,IAAA;IAAA,IAAC;MAAEC;IAAc,CAAC,GAAAD,IAAA;IAAA,OACxC9G,kBAAkB,CAACiB,SAAS,EAAE8F,aAAa,CAAC;EAAA,CAC7C;EAED7J,SAAS,CAAC,MAAM;IACd0F,gBAAgB,CAAC3C,4BAA4B,CAACiB,gBAAgB,EAAED,SAAS,CAAC,CAAC;EAC7E,CAAC,EAAE,CAACC,gBAAgB,CAAC,CAAC;EAEtBhE,SAAS,CAAC,MAAM;IACd,IAAI,CAAC6I,SAAS,IAAIvD,+BAA+B,EAAE;MACjD;MACA,MAAMwE,mBAAmB,GAAG9F,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEzD,IAAI,CAAEwJ,OAAO,IAAKhJ,iBAAiB,CAACgJ,OAAO,CAAC,CAAC;MAC3F,IAAID,mBAAmB,EAAE;QACvB5H,aAAa,CAACgC,eAAe,CAAC,CAAC8F,IAAI,CAAEC,QAAQ,IAAK;UAChD7C,0BAA0B,CAAC6C,QAAQ,CAAC;QACtC,CAAC,CAAC;MACJ;IACF;EACF,CAAC,EAAE,CAACpB,SAAS,CAAC,CAAC;EAEf7I,SAAS,CAAC,MAAM;IACd,MAAMkK,iCAAiC,GAAGA,CAAA,KAAM;MAC9C,MAAMC,kBAAkB,GAAGpF,MAAM,CAACC,UAAU;MAC5C,MAAMoF,mBAAmB,GAAGtF,sBAAsB,CAACI,OAAO;MAE1D,IAAIiF,kBAAkB,IAAI,IAAI,EAAE;QAC9BxD,sBAAsB,CAAC,IAAI,CAAC;MAC9B,CAAC,MAAM,IAAIyD,mBAAmB,IAAI,IAAI,EAAE;QACtCzD,sBAAsB,CAAC,KAAK,CAAC;MAC/B;MAEA7B,sBAAsB,CAACI,OAAO,GAAGiF,kBAAkB;IACrD,CAAC;IAEDD,iCAAiC,CAAC,CAAC;IACnCnF,MAAM,CAACsF,gBAAgB,CAAC,QAAQ,EAAEH,iCAAiC,CAAC;IACpE,OAAO,MAAMnF,MAAM,CAACuF,mBAAmB,CAAC,QAAQ,EAAEJ,iCAAiC,CAAC;EACtF,CAAC,EAAE,EAAE,CAAC;EAGN,MAAMK,gBAAgB,GAAGA,CAAA,KAAM;IAC7B3E,mCAAmC,CAAC,IAAI,CAAC;EAC3C,CAAC;EAED,MAAM4E,4BAA4B,GAAGA,CAAA,KAAM;IACzC5E,mCAAmC,CAAC,KAAK,CAAC;EAC5C,CAAC;EAED,MAAM6E,QAAQ,GAAGvK,MAAM,CAAC,IAAI,CAAC;EAC7BF,SAAS,CAAC,MAAM;IACd,IAAI2F,gCAAgC,EAAE;MACpC8E,QAAQ,CAACvF,OAAO,CAACwF,SAAS,CAAC,CAAC;IAC9B,CAAC,MAAM;MACLD,QAAQ,CAACvF,OAAO,CAACyF,UAAU,CAAC,CAAC;IAC/B;EACF,CAAC,EAAE,CAAChF,gCAAgC,CAAC,CAAC;EAEtC3F,SAAS,CAAC,MAAM;IACd,IAAI,CAAC6I,SAAS,IAAIhD,+BAA+B,EAAE;MACjDZ,6BAA6B,CAAC,CAAC;IACjC;EACF,CAAC,EAAE,CAAC4D,SAAS,CAAC,CAAC;EAEf,MAAM+B,mBAAmB,GAAIhC,KAAK,IAAK;IACrC5C,gBAAgB,CAAC4C,KAAK,CAAC;EACzB,CAAC;EAED5I,SAAS,CAAC,MAAM;IACd+B,qBAAqB,CAACsC,MAAM,CAACyD,EAAE,CAAC,CAACkC,IAAI,CAAEa,MAAM,IAAK;MAChDhE,YAAY,CAACgE,MAAM,CAAC;IACtB,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN7K,SAAS,CAAC,MAAM;IACd,IAAIwE,MAAM,IAAIe,yBAAyB,EAAE;MACvCvD,kBAAkB,CAACwC,MAAM,CAAC,CAACwF,IAAI,CAAEa,MAAM,IAAK;QAC1C9D,gBAAgB,CAAC8D,MAAM,CAAC;MAC1B,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,EAAE,CAAC;EAEN7K,SAAS,CAAC,MAAM;IACd,MAAM8K,aAAa,GAAG,MAAAA,CAAA,KAAY;MAChC,IAAItG,MAAM,EAAE;QACV,IAAI;UACF,MAAM;YAAEuG,IAAI,EAAE;cAAEA,IAAI,EAAE1D;YAAS;UAAE,CAAC,GAAG,MAAMvF,OAAO,CAACkJ,UAAU,CAAC,MAAM,EAAExG,MAAM,CAAC;UAC7E8C,WAAW,CAACD,QAAQ,CAAC;QACvB,CAAC,CAAC,OAAO4D,KAAK,EAAE;UACdC,OAAO,CAACD,KAAK,CAAC,2BAA2B,EAAEA,KAAK,CAAC;QACnD;MACF;IACF,CAAC;IACDH,aAAa,CAAC,CAAC;EACjB,CAAC,EAAE,CAACtG,MAAM,CAAC,CAAC;EAEZxE,SAAS,CAAC,MAAM;IACd,IAAI,CAACK,OAAO,CAAC0D,SAAS,CAAC,IAAI,CAACiD,eAAe,KAAK,CAAC3G,OAAO,CAACuG,SAAS,CAAC,IAAI,CAACvG,OAAO,CAACyG,aAAa,CAAC,CAAC,EAAE;MAC/F,MAAMqE,gBAAgB,GAAGpH,SAAS,CAACyF,GAAG,CAAE4B,QAAQ,IAAK;QACnD,IAAG,CAACA,QAAQ,CAACC,mBAAmB,EAAE;UAChC,OAAA/C,aAAA,CAAAA,aAAA,KACG8C,QAAQ;YACXC,mBAAmB,EAAE,CAAC,GAAGzE,SAAS,EAAE,GAAGE,aAAa,CAAC,CAAC0C,GAAG,CAAE8B,GAAG,KAAM;cAAEC,QAAQ,EAAE,KAAK;cAAEC,QAAQ,EAAEF;YAAI,CAAC,CAAC;UAAC;QAE1G,CAAC,MAAM;UACL,OAAOF,QAAQ;QACjB;MACF,CAAC,CAAC;MAEFvH,QAAQ,CAACjD,OAAO,CAAC;QACfmD,SAAS,EAAEoH;MACb,CAAC,CAAC,CAAC;MAEHlE,kBAAkB,CAAC,IAAI,CAAC;IAC1B;IAEA,MAAMwE,yBAAyB,GAAGzH,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEzD,IAAI,CAAEwJ,OAAO,IAAK;MAAA,IAAA2B,iBAAA;MACpE,OAAO,CAAA3B,OAAO,aAAPA,OAAO,gBAAA2B,iBAAA,GAAP3B,OAAO,CAAE4B,QAAQ,cAAAD,iBAAA,uBAAjBA,iBAAA,CAAmBE,MAAM,IAAG,CAAC;IACtC,CAAC,CAAC;IACF9F,kCAAkC,CAAC2F,yBAAyB,CAAC;EAC/D,CAAC,EAAE,CAAC1H,SAAS,CAAC,CAAC;EAEf,MAAM8H,WAAW,GAAGA,CAAA,KAAMlJ,mBAAmB,CAACoB,SAAS,EAAEgC,aAAa,CAAC;EAEvE,MAAM+F,oBAAoB,GAAGrJ,uBAAuB,CAACsF,MAAM,CAAC;EAE5D,MAAMgE,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAInD,KAAK,GAAG7C,aAAa;IACzB,IAAI,CAACxF,IAAI,CAACC,MAAM,CAACuH,MAAM,CAACa,KAAK,CAAC,CAAC,EAAEoD,OAAO,CAAC,EAAE;MACzCpD,KAAK,GAAGkD,oBAAoB;MAC5B9F,gBAAgB,CAAC4C,KAAK,CAAC;IACzB;IAEAlG,kBAAkB,CAAC;MACjBqF,MAAM;MACNa,KAAK;MACLqD,OAAO,EAAErH;IACX,CAAC,CAAC;EACJ,CAAC;EAED,MAAMsH,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAI9K,aAAa,CAAC2G,MAAM,CAAC,EAAE;MACzB,OAAOnE,QAAQ,YAAAuI,MAAA,CAAY1E,qBAAqB,GAAG,QAAQ,GAAG,iBAAiB,CAAE,CAAC;IACpF;IAEAsE,WAAW,CAAC,CAAC;IACb1F,cAAc,CAAC,IAAI,CAAC;EACtB,CAAC;EAED,MAAM+F,YAAY,GAAGA,CAAA,KAAM;IACzB,IAAI7E,gBAAgB,EAAE;MACpB,MAAM8E,WAAW,GAAG/L,GAAG,CAACgE,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC;MACpDzC,SAAS,CAACyK,uBAAuB,CAACD,WAAW,CAAC;IAChD,CAAC,MAAM,IAAIxK,SAAS,CAAC0K,cAAc,EAAE;MACnC1K,SAAS,CAAC0K,cAAc,CAAChH,yBAAyB,GAAG;QAAEb,UAAU;QAAEH;MAAoB,CAAC,GAAG;QAAEA;MAAoB,CAAC,CAAC;IACrH,CAAC,MAAM;MACLX,QAAQ,CAAC,CAAC,CAAC,CAAC;IACd;EACF,CAAC;EAED,MAAM4I,sBAAsB,GAAGA,CAAA,KAAM3K,SAAS,CAAC4K,wBAAwB,CAAC,CAAC;EAEzE,MAAMC,eAAe,GAAG9K,kBAAkB,CAAC,CAAC;EAC5C,MAAM+K,uBAAuB,GAAG,MAAAA,CAAA,KAAY;IAC1CpG,mBAAmB,CAAC,IAAI,CAAC;IACzB,IAAIC,aAAa,EAAE;IACnB,IAAI,CAACpF,aAAa,CAAC2G,MAAM,CAAC,EAAE;MAC1BgE,WAAW,CAAC,CAAC;MACb;IACF;IAEAtF,gBAAgB,CAAC,IAAI,CAAC;IACtB,IAAI;MACF,MAAMiG,eAAe,CAAC;QAAEE,KAAK,EAAE;MAAK,CAAC,CAAC;MACtC,MAAM;QAAEC;MAAoB,CAAC,GAAGhL,SAAS;MACzCgL,mBAAmB,IAAIA,mBAAmB,CAAC,CAAC;MAC5C5J,eAAe,CAACY,QAAQ,CAAC;MACzBhC,SAAS,CAACiL,MAAM,CAACC,OAAO,CAAC,mCAAmC,CAAC;IAC/D,CAAC,SAAS;MACRtG,gBAAgB,CAAC,KAAK,CAAC;IACzB;EACF,CAAC;EAED,MAAMuG,uBAAuB,GAAGA,CAAA,KAAM;IACpCrG,sBAAsB,CAAEsG,uBAAuB,IAAK,CAACA,uBAAuB,CAAC;EAC/E,CAAC;EAED,IAAIpE,SAAS,EAAE,oBAAO1F,IAAA,CAACxB,OAAO;IAACuL,MAAM;EAAA,CAAE,CAAC;EAExC,MAAMC,gBAAgB,GAAGnM,mBAAmB,CAAC+C,SAAS,EAAE8H,WAAW,CAAC,CAAC,CAAC;EACtE,MAAMuB,yBAAyB,GAAGxK,4BAA4B,CAACmB,SAAS,EAAEgC,aAAa,CAAC;EACxF,MAAMsH,WAAW,GAAGtJ,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEuJ,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAACC,QAAQ,CAAC;EACzD,MAAMC,YAAY,GAAGvM,oBAAoB,CAAC6G,MAAM,CAAC;EACjD,MAAM2F,eAAe,GAAG7B,WAAW,CAAC,CAAC;EAErC,MAAM8B,sBAAsB,GAAG1L,UAAU,CAAC;IACxC,cAAc,EAAE;EAClB,CAAC,CAAC;EAEF,MAAM2L,sBAAsB,GAAG3L,UAAU,CAAC;IACxC,cAAc,EAAE;EAClB,CAAC,CAAC;EAEF,MAAM4L,qBAAqB,GAAGA,CAAA,KAAM;IAClC,MAAM;MACJC,gBAAgB;MAChBC;IACF,CAAC,GAAGlL,wBAAwB,CAAC4C,aAAa,CAAC;IAC3C,MAAM0F,gBAAgB,GAAG9J,kCAAkC,CAAC0C,SAAS,EAAE+J,gBAAgB,CAAC;IAExF,MAAMrF,UAAU,GAAGxH,wBAAwB,CAACkK,gBAAgB,EAAE3F,eAAe,CAAC;IAC9EW,cAAc,CAACsC,UAAU,CAAC;IAE1B5E,QAAQ,CAACjD,OAAO,CAAC;MACfmD,SAAS,EAAEoH;IACb,CAAC,CAAC,CAAC;IAEH4C,kBAAkB,CAACrF,OAAO,CAAEe,OAAO,IAAK;MACtC5H,SAAS,CAACmM,iBAAiB,CAAC;QAC1BlG,EAAE,EAAE2B,OAAO,CAACJ,SAAS;QACrBI,OAAO,EAAEA,OAAO,CAACH;MACnB,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFlE,8BAA8B,CAAC,CAAC;EAClC,CAAC;EAGD,oBACEjC,IAAA,CAAC3B,uBAAuB;IAAAyM,QAAA,eACtB5K,KAAA;MAAK6K,SAAS,EAAC,OAAO;MAAAD,QAAA,gBACpB5K,KAAA,CAACvC,UAAU;QAACqN,MAAM,EAAE3G,oBAAqB;QAAAyG,QAAA,GACtC5L,4BAA4B,eAC7Bc,IAAA,SAAK,CAAC,eACNA,IAAA,CAACxC,MAAM;UACLyN,IAAI,EAAC,QAAQ;UACbC,OAAO,EAAE9D,gBAAiB;UAC1B+D,SAAS,EAAGC,KAAK,IAAKjM,aAAa,CAACiM,KAAK,EAAEhE,gBAAgB,CAAE;UAC7D,iBAAe5E,gCAAiC;UAChD6I,KAAK,EAAC,2CAA2C;UACjDN,SAAS,EAAC,UAAU;UACpBO,IAAI;QAAA,CACL,CAAC;MAAA,CACQ,CAAC,eAEbtL,IAAA,CAACZ,0BAA0B;QAACmM,GAAG,EAAEjE,QAAS;QAACkE,OAAO,EAAEnE;MAA6B,CAAE,CAAC,EAEnF3E,+BAA+B,iBAC9B1C,IAAA,CAACf,yBAAyB;QACxBiD,WAAW,EAAED,8BAA+B;QAC5CoI,QAAQ,EAAExJ,gBAAiB;QAC3BD,SAAS,EAAEA,SAAU;QACrB6K,QAAQ,EAAE/J,4BAA6B;QACvC8E,eAAe,EAAEA,eAAgB;QACjCkF,SAAS,EAAEhB,qBAAsB;QACjCiB,wBAAwB,EAAE1F,4BAA6B;QACvD3D,aAAa,EAAEA;MAAc,CAC9B,CACF,eACDpC,KAAA,CAAAE,SAAA;QAAA0K,QAAA,gBACE9K,IAAA,CAAC1B,UAAU;UACTsN,WAAW,EAAE3C,YAAa;UAC1B4C,cAAc,EAAE9C,WAAY;UAC5BW,mBAAmB,EAAEF,uBAAwB;UAC7CsC,YAAY,EAAC,MAAM;UACnBC,kBAAkB,EAAE7O,OAAO,CAAC0D,SAAS,CAAE;UACvCoL,iBAAiB,EAAE7O,GAAG,CAAC6D,YAAY,EAAE,mBAAmB,CAAE;UAC1DhD,uBAAuB,EAAEA,uBAAuB,CAAC4C,SAAS,CAAE;UAC5DwD,gBAAgB,EAAEA,gBAAiB;UACnCE,qBAAqB,EAAEA,qBAAsB;UAC7C2H,QAAQ,EAAE5I,aAAc;UACxBA,aAAa,EAAEA;QAAc,CAC9B,CAAC,EAED,CAACnG,OAAO,CAACgN,WAAW,CAAC,gBACpBlK,IAAA,CAACH,sBAAsB;UAErBqM,eAAe,EAAEtJ,aAAc;UAC/B0H,YAAY,EAAEA,YAAa;UAC3BrH,WAAW,EAAEA,WAAY;UACzBE,gBAAgB,EAAEA,gBAAiB;UACnCsH,sBAAsB,EAAEA,sBAAuB;UAC/ClH,mBAAmB,EAAEA,mBAAoB;UACzCiH,sBAAsB,EAAEA,sBAAuB;UAC/CX,uBAAuB,EAAEA,uBAAwB;UACjDjJ,SAAS,EAAEA,SAAU;UACrBE,eAAe,EAAEA,eAAgB;UACjCC,eAAe,EAAEA,eAAgB;UACjCqD,gBAAgB,EAAEA,gBAAiB;UACnCiF,sBAAsB,EAAEA,sBAAuB;UAC/CW,gBAAgB,EAAEA,gBAAiB;UACnCrE,kBAAkB,EAAEA,kBAAmB;UACvCsE,yBAAyB,EAAEA,yBAA0B;UACrDnE,aAAa,EAAEA,aAAc;UAC7BrE,IAAI,EAAEA,IAAK;UACXoE,iBAAiB,EAAEA,iBAAkB;UACrCD,sBAAsB,EAAEA,sBAAuB;UAC/CG,iBAAiB,EAAEA,iBAAkB;UACrC9E,MAAM,EAAEA,MAAO;UACf+C,uBAAuB,EAAEA,uBAAwB;UACjDa,iBAAiB,EAAEA,iBAAkB;UACrCzD,mBAAmB,EAAEA,mBAAoB;UACzCF,MAAM,EAAEA,MAAO;UACfgD,QAAQ,EAAEA,QAAS;UACnBQ,QAAQ,EAAEA,QAAS;UACnB9B,aAAa,EAAEA,aAAc;UAC7BmB,WAAW,EAAEA,WAAY;UACzBa,MAAM,EAAEA,MAAO;UACf6C,mBAAmB,EAAEA,mBAAoB;UACzC8C,eAAe,EAAEA,eAAgB;UACjCvE,0BAA0B,EAAEA;QAA2B,GAlClDpD,aAmCN,CAAC,gBAEF5C,IAAA,CAACzB,kBAAkB;UACjB6F,gBAAgB,EAAEA,gBAAiB;UACnCiF,sBAAsB,EAAEA,sBAAuB;UAC/C6B,OAAO,EAAEjC;QAAa,CACvB,CACF,eAEDjJ,IAAA,CAAC1B,UAAU;UACTsN,WAAW,EAAE3C,YAAa;UAC1B4C,cAAc,EAAE9C,WAAY;UAC5BW,mBAAmB,EAAEF,uBAAwB;UAC7CsC,YAAY,EAAC,MAAM;UACnBC,kBAAkB,EAAE7O,OAAO,CAAC0D,SAAS,CAAE;UACvCoL,iBAAiB,EAAE7O,GAAG,CAAC6D,YAAY,EAAE,mBAAmB,CAAE;UAC1DoD,gBAAgB,EAAEA,gBAAiB;UACnCpG,uBAAuB,EAAEA,uBAAuB,CAAC4C,SAAS,CAAE;UAC5D0D,qBAAqB,EAAEA,qBAAsB;UAC7C2H,QAAQ,EAAE5I,aAAc;UACxBA,aAAa,EAAEA;QAAc,CAC9B,CAAC;MAAA,CACF,CAAC;IAAA,CACA;EAAC,CACiB,CAAC;AAE9B","ignoreList":[]}
1
+ {"version":3,"file":"ReferralBuilder.js","names":["React","useEffect","useState","useRef","useCallback","useMemo","isEqual","isEmpty","get","some","values","intersectionBy","compact","useNavigate","useLocation","Button","setData","useAppCreateReferralContext","StepHeader","isUnlistedProgram","getReferralSubtitle","initializeReferralErrors","generateErrorMessage","hasOffPlatformReferrals","isEmptyErrors","updatedReferralsBySelectedServices","useBuildReferrals","useReferralMutations","CreateReferralContainer","NavButtons","NoReferralsDisplay","Spinner","useCreateReferrals","CALLBACKS","coreApi","fetchContactDocuments","fetchCaseDocuments","classNames","fetchNetworks","useFeatureFlag","useFind","mapClientNeeds","ChooseOneServiceTypeModal","REFERRAL_BUILDER_DESCRIPTION","handleKeyDown","AboutGroupedReferralsModal","buildReferralErrors","getFirstIndexWithErrors","focusReferralError","getSelectedReferral","getUnselectedReferralIndexes","splitServicesBySelection","getServiceNameById","buildProgramsToServicesState","ReferralBuilderContent","clearDraftState","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ReferralBuilder","_location$state$selec","_location$state","location","navigate","dispatch","state","referrals","selectedPrograms","currentEmployee","currentProvider","fieldsConfig","source","person","draftState","referralDescription","caseId","contextCaseId","referralId","referralType","form","ChooseOneServiceTypeModalRef","previousWindowWidthRef","window","innerWidth","openChooseOneServiceTypeModal","current","openDialog","closeChooseOneServiceTypeModal","closeDialog","hint542SupersetUnlistedPrograms","crtb854ForwardingSuperset","featureFlagClientNeeds","servicesState","setServicesState","aboutGroupedReferralsModalIsOpen","setAboutGroupedReferralsModalIsOpen","isOpenChooseOneServiceTypeModal","setChooseOneServiceTypeModalIsOpen","selectedIndex","setSelectedIndex","selectedReferral","fieldErrors","setFieldErrors","nextClicked","setNextClicked","saveDraftClicked","setSaveDraftClicked","isSavingDraft","setIsSavingDraft","expandReferralsCard","setExpandReferralsCard","documents","setDocuments","caseDocuments","setCaseDocuments","loadedDocuments","setloadedDocuments","isEmrSource","networksUnlistedProgram","setNetworksUnlistedProgram","caseData","setCaseData","hasDraftReferral","referralBuilderTitle","isForwardReferralPath","query","URLSearchParams","search","personId","id","data","clientNeedsData","concat","most_recent","queryConfig","placeholderData","undefined","clientNeeds","showClientNeeds","errors","Object","keys","reduce","acc","index","fieldError","service","network","primary_worker","description","amount_requested","amount_exceeded","service_end","invalid_insurance_auth_dates","passthrough_dates","opened_date","icd10_code","client_need","setReferralErrors","referralIndex","newErrors","prevFieldErrors","currentErrors","updatedErrors","_objectSpread","onReferralsBuilt","groupedReferrals","initErrors","forEach","_referral","isLoading","saveValuesOnChange","moveToExistingReferral","moveToNewReferral","removeProgram","updateAttachments","updatePersistedAttachments","handleServiceSelectionChange","programId","serviceId","prevState","map","selected","findServiceName","_ref","serviceToFind","hasUnlistedPrograms","program","then","networks","syncExpandedCardWhenChevronHidden","currentWindowWidth","previousWindowWidth","addEventListener","removeEventListener","onLearnMoreClick","onCloseGroupedReferralsModal","refModal","openModal","closeModal","onReferralCardClick","result","fetchCaseData","findRecord","error","console","updatedReferrals","referral","attachableDocuments","doc","attached","document","hasMoreThanOneServiceType","_program$services","services","length","getSelected","firstIndexWithErrors","focusErrors","Boolean","formRef","onNextClick","navigateBack","draftCaseId","redirectToDraftReferral","onNavigateBack","navigateToAddResources","onNavigateToAddResources","createReferrals","handleSaveDraftReferral","draft","onSaveDraftReferral","notify","success","changeWidthReferralCard","prevExpandReferralsCard","center","referralSubtitle","unselectedReferralIndexes","allPrograms","flatMap","r","programs","errorMessage","currentReferral","xlOrLgInvisibleChevron","xlOrLgSpaceReferralDiv","onConfirmApplyChanges","selectedServices","unselectedServices","onDeselectProgram","children","className","header","type","onClick","onKeyDown","event","label","link","ref","onClose","modalRef","onConfirm","onServiceSelectionChange","onBackClick","onForwardClick","primaryLabel","hideForwardButtons","hideSaveDraftLink","disabled","selectedFormKey"],"sources":["../../../src/pages/builder/ReferralBuilder.js"],"sourcesContent":["import React, { useEffect, useState, useRef, useCallback, useMemo } from 'react';\nimport { isEqual, isEmpty, get, some, values, intersectionBy, compact } from 'lodash';\nimport { useNavigate, useLocation } from 'react-router-dom';\nimport { Button } from '@unite-us/app-components';\nimport { setData, useAppCreateReferralContext } from '../../context/AppCreateReferralProvider';\nimport StepHeader from '../../components/StepHeader';\nimport { isUnlistedProgram, getReferralSubtitle, initializeReferralErrors, generateErrorMessage, hasOffPlatformReferrals, isEmptyErrors, updatedReferralsBySelectedServices } from './utils';\nimport useBuildReferrals from './hooks/useBuildReferrals';\nimport useReferralMutations from './hooks/useReferralMutations';\nimport CreateReferralContainer from '../../components/CreateReferralContainer';\nimport NavButtons from '../../components/NavButtons';\nimport NoReferralsDisplay from '../../components/NoReferralsDisplay';\nimport Spinner from '../../components/spinners/Spinner';\nimport useCreateReferrals from '../../hooks/useCreateReferrals';\nimport { CALLBACKS, coreApi } from '../../api/config';\nimport fetchContactDocuments from '../../actions/Document/Contact/Group/fetchContactDocuments';\nimport fetchCaseDocuments from '../../actions/Document/Contact/Group/fetchCaseDocuments';\nimport classNames from 'classnames';\nimport fetchNetworks from '../../actions/Referral/fetchNetworks';\nimport { useFeatureFlag } from '../../utils/useFeatureFlag';\nimport { useFind } from '../../api/ApiHooks';\nimport { mapClientNeeds } from './utils/referralBuilderFormUtils';\nimport ChooseOneServiceTypeModal from './components/ChooseOneServiceTypeModal';\nimport {\n REFERRAL_BUILDER_DESCRIPTION,\n} from './constants';\nimport { handleKeyDown } from '../../common/utils/utils';\nimport AboutGroupedReferralsModal from './components/AboutGroupedReferralsModal';\nimport {\n buildReferralErrors,\n getFirstIndexWithErrors,\n focusReferralError,\n getSelectedReferral,\n getUnselectedReferralIndexes,\n splitServicesBySelection,\n getServiceNameById,\n buildProgramsToServicesState,\n} from './utils/referralBuilderUtils';\nimport ReferralBuilderContent from './components/ReferralBuilderContent';\nimport clearDraftState from './clearDraftState';\n\nexport default function ReferralBuilder() {\n const location = useLocation();\n const navigate = useNavigate();\n const {\n dispatch,\n state: {\n referrals,\n selectedPrograms,\n currentEmployee,\n currentProvider,\n fieldsConfig,\n source,\n person,\n draftState,\n referralDescription,\n caseId: contextCaseId,\n referralId,\n referralType,\n },\n } = useAppCreateReferralContext();\n const form = useRef();\n const ChooseOneServiceTypeModalRef = useRef();\n const previousWindowWidthRef = useRef(window.innerWidth);\n\n const openChooseOneServiceTypeModal = useCallback(() => {\n ChooseOneServiceTypeModalRef.current.openDialog();\n }, []);\n\n const closeChooseOneServiceTypeModal = useCallback(() => {\n ChooseOneServiceTypeModalRef.current.closeDialog();\n }, []);\n\n const hint542SupersetUnlistedPrograms = useFeatureFlag('hint542SupersetUnlistedPrograms', false);\n const crtb854ForwardingSuperset = useFeatureFlag('crtb854ForwardingSuperset', false);\n const featureFlagClientNeeds = useFeatureFlag('crtb2130MultipleClientNeeds', false);\n\n const [servicesState, setServicesState] = useState([]);\n const [aboutGroupedReferralsModalIsOpen, setAboutGroupedReferralsModalIsOpen] = useState(false);\n const [isOpenChooseOneServiceTypeModal, setChooseOneServiceTypeModalIsOpen] = useState(false);\n const [selectedIndex, setSelectedIndex] = useState(location.state?.selectedReferral ?? 0);\n const [fieldErrors, setFieldErrors] = useState({})\n const [nextClicked, setNextClicked] = useState(false);\n const [saveDraftClicked, setSaveDraftClicked] = useState(false);\n const [isSavingDraft, setIsSavingDraft] = useState(false);\n const [expandReferralsCard, setExpandReferralsCard] = useState(false);\n const [documents, setDocuments] = useState([]);\n const [caseDocuments, setCaseDocuments] = useState([]);\n const [loadedDocuments, setloadedDocuments] = useState(false);\n const isEmrSource = source === 'emr';\n const [networksUnlistedProgram, setNetworksUnlistedProgram] = useState([]);\n const [caseData, setCaseData] = useState(null);\n const hasDraftReferral = draftState?.state === 'draft';\n const referralBuilderTitle = hasDraftReferral ? 'Edit Your Referrals' : 'Prepare Your Referrals';\n const isForwardReferralPath = !!referralId && !!referralType;\n const query = new URLSearchParams(location.search);\n const caseId = contextCaseId || query.get('caseId');\n const personId = person?.id || query.get('person');\n const { data: clientNeedsData } = useFind(\n `people/${personId}/person_condition`,\n {\n most_recent: true,\n },\n {\n queryConfig: {\n placeholderData: undefined,\n },\n },\n );\n const clientNeeds = useMemo(\n () => mapClientNeeds(clientNeedsData),\n [clientNeedsData],\n );\n const showClientNeeds = featureFlagClientNeeds && !isEmpty(clientNeeds);\n\n const errors = Object.keys(fieldErrors).reduce((acc, index) => {\n const fieldError = fieldErrors[index];\n acc[index] = {\n service: fieldError?.service,\n network: fieldError?.network,\n primary_worker: fieldError?.primary_worker,\n description: fieldError?.description,\n amount_requested: fieldError?.amount_requested || fieldError?.amount_exceeded,\n service_end: fieldError?.service_end || fieldError?.invalid_insurance_auth_dates,\n passthrough_dates: fieldError?.passthrough_dates,\n opened_date: fieldError?.opened_date,\n icd10_code: fieldError?.icd10_code,\n client_need: fieldError?.client_need,\n }\n return acc;\n }, {});\n const setReferralErrors = (referralIndex, newErrors) => {\n setFieldErrors((prevFieldErrors) => {\n const currentErrors = prevFieldErrors[referralIndex];\n const updatedErrors = { ...currentErrors, ...newErrors };\n \n if (isEqual(updatedErrors, currentErrors)) {\n return prevFieldErrors;\n }\n \n return {\n ...prevFieldErrors,\n [referralIndex]: updatedErrors,\n };\n });\n };\n\n const onReferralsBuilt = (groupedReferrals) => {\n if(!isEmpty(groupedReferrals)) {\n const initErrors = initializeReferralErrors(groupedReferrals, showClientNeeds);\n groupedReferrals.forEach((_referral, index) => {\n setReferralErrors(index, initErrors[index]);\n });\n }\n };\n\n const { isLoading } = useBuildReferrals(onReferralsBuilt);\n\n const {\n saveValuesOnChange,\n moveToExistingReferral,\n moveToNewReferral,\n removeProgram,\n updateAttachments,\n updatePersistedAttachments,\n } = useReferralMutations({\n referrals,\n selectedPrograms,\n selectedIndex,\n setSelectedIndex,\n errors,\n setFieldErrors,\n dispatch,\n });\n\n const handleServiceSelectionChange = (programId, serviceId) => {\n setServicesState(prevState =>\n prevState.map(service =>\n service.programId === programId && service.serviceId === serviceId\n ? { ...service, selected: !service.selected }\n : service\n )\n );\n };\n\n const findServiceName = ({ serviceToFind }) => (\n getServiceNameById(referrals, serviceToFind)\n );\n\n useEffect(() => {\n setServicesState(buildProgramsToServicesState(selectedPrograms, referrals));\n }, [selectedPrograms]);\n\n useEffect(() => {\n if (!isLoading && hint542SupersetUnlistedPrograms) {\n // If the selected programs contain unlisted programs, fetch the networks from the user provider\n const hasUnlistedPrograms = selectedPrograms?.some((program) => isUnlistedProgram(program));\n if (hasUnlistedPrograms) {\n fetchNetworks(currentProvider).then((networks) => {\n setNetworksUnlistedProgram(networks);\n });\n }\n }\n }, [isLoading]);\n\n useEffect(() => {\n if (isEmpty(referrals)) {\n return;\n }\n\n const initErrors = initializeReferralErrors(referrals, showClientNeeds);\n\n referrals.forEach((_referral, index) => {\n setReferralErrors(index, initErrors[index]);\n });\n }, [referrals, showClientNeeds]);\n\n useEffect(() => {\n const syncExpandedCardWhenChevronHidden = () => {\n const currentWindowWidth = window.innerWidth;\n const previousWindowWidth = previousWindowWidthRef.current;\n\n if (currentWindowWidth >= 1024) {\n setExpandReferralsCard(true);\n } else if (previousWindowWidth >= 1024) {\n setExpandReferralsCard(false);\n }\n\n previousWindowWidthRef.current = currentWindowWidth;\n };\n\n syncExpandedCardWhenChevronHidden();\n window.addEventListener('resize', syncExpandedCardWhenChevronHidden);\n return () => window.removeEventListener('resize', syncExpandedCardWhenChevronHidden);\n }, []);\n\n\n const onLearnMoreClick = () => {\n setAboutGroupedReferralsModalIsOpen(true);\n };\n\n const onCloseGroupedReferralsModal = () => {\n setAboutGroupedReferralsModalIsOpen(false);\n }\n\n const refModal = useRef(null);\n useEffect(() => {\n if (aboutGroupedReferralsModalIsOpen) {\n refModal.current.openModal();\n } else {\n refModal.current.closeModal();\n }\n }, [aboutGroupedReferralsModalIsOpen]);\n\n useEffect(() => {\n if (!isLoading && isOpenChooseOneServiceTypeModal) {\n openChooseOneServiceTypeModal();\n }\n }, [isLoading]);\n\n const onReferralCardClick = (index) => {\n setSelectedIndex(index);\n }\n\n useEffect(() => {\n fetchContactDocuments(person.id).then((result) => {\n setDocuments(result);\n });\n }, []);\n\n useEffect(() => {\n if (caseId && crtb854ForwardingSuperset) {\n fetchCaseDocuments(caseId).then((result) => {\n setCaseDocuments(result);\n });\n }\n }, []);\n\n useEffect(() => {\n const fetchCaseData = async () => {\n if (caseId) {\n try {\n const { data: { data: caseData } } = await coreApi.findRecord('case', caseId);\n setCaseData(caseData);\n } catch (error) {\n console.error('Error fetching case data:', error);\n }\n }\n };\n fetchCaseData();\n }, [caseId]);\n\n useEffect(() => {\n if (!isEmpty(referrals) && !loadedDocuments && (!isEmpty(documents) || !isEmpty(caseDocuments))) {\n const updatedReferrals = referrals.map((referral) => {\n if(!referral.attachableDocuments) {\n return {\n ...referral,\n attachableDocuments: [...documents, ...caseDocuments].map((doc) => ({ attached: false, document: doc })),\n };\n } else {\n return referral;\n }\n });\n\n dispatch(setData({\n referrals: updatedReferrals,\n }));\n\n setloadedDocuments(true);\n }\n\n const hasMoreThanOneServiceType = selectedPrograms?.some((program) => {\n return program?.services?.length > 1\n })\n setChooseOneServiceTypeModalIsOpen(hasMoreThanOneServiceType)\n }, [referrals]);\n\n const getSelected = () => getSelectedReferral(referrals, selectedIndex);\n\n const firstIndexWithErrors = getFirstIndexWithErrors(errors);\n\n const focusErrors = () => {\n let index = selectedIndex;\n if (!some(values(errors[index]), Boolean)) {\n index = firstIndexWithErrors; \n setSelectedIndex(index);\n }\n\n focusReferralError({\n errors,\n index,\n formRef: form,\n });\n }\n\n const onNextClick = () => {\n if (isEmptyErrors(errors)) {\n return navigate(`/create/${isForwardReferralPath ? 'review' : 'supporting-info'}`);\n }\n\n focusErrors();\n setNextClicked(true);\n }\n\n const navigateBack = () => {\n if (hasDraftReferral) {\n const draftCaseId = get(draftState, 'case.id', null);\n CALLBACKS.redirectToDraftReferral(draftCaseId);\n } else if (CALLBACKS.onNavigateBack) {\n CALLBACKS.onNavigateBack(crtb854ForwardingSuperset ? { referralId, referralDescription } : { referralDescription });\n } else {\n navigate(-1);\n }\n };\n\n const navigateToAddResources = () => CALLBACKS.onNavigateToAddResources();\n\n const createReferrals = useCreateReferrals();\n const handleSaveDraftReferral = async () => {\n setSaveDraftClicked(true);\n if (isSavingDraft) return;\n if (!isEmptyErrors(errors)) {\n focusErrors();\n return;\n }\n\n setIsSavingDraft(true);\n try {\n await createReferrals({ draft: true });\n const { onSaveDraftReferral } = CALLBACKS;\n onSaveDraftReferral && onSaveDraftReferral();\n clearDraftState(dispatch);\n CALLBACKS.notify.success('Draft referral successfully saved');\n } finally {\n setIsSavingDraft(false);\n }\n };\n\n const changeWidthReferralCard = () => {\n setExpandReferralsCard((prevExpandReferralsCard) => !prevExpandReferralsCard);\n };\n\n if (isLoading) return <Spinner center />;\n\n const referralSubtitle = getReferralSubtitle(referrals, getSelected());\n const unselectedReferralIndexes = getUnselectedReferralIndexes(referrals, selectedIndex);\n const allPrograms = referrals?.flatMap((r) => r.programs);\n const errorMessage = generateErrorMessage(errors);\n const currentReferral = getSelected();\n\n const xlOrLgInvisibleChevron = classNames({\n 'lg:invisible': true\n });\n\n const xlOrLgSpaceReferralDiv = classNames({\n 'lg:space-x-6': true\n });\n\n const onConfirmApplyChanges = () => {\n const {\n selectedServices,\n unselectedServices,\n } = splitServicesBySelection(servicesState);\n const updatedReferrals = updatedReferralsBySelectedServices(referrals, selectedServices);\n\n const initErrors = initializeReferralErrors(updatedReferrals, showClientNeeds);\n setFieldErrors(initErrors);\n\n dispatch(setData({\n referrals: updatedReferrals,\n }));\n\n unselectedServices.forEach((service) => {\n CALLBACKS.onDeselectProgram({\n id: service.programId,\n service: service.serviceId,\n });\n });\n\n closeChooseOneServiceTypeModal();\n };\n\n\n return (\n <CreateReferralContainer>\n <div className=\"px-12\">\n <StepHeader header={referralBuilderTitle}>\n {REFERRAL_BUILDER_DESCRIPTION}\n <br />\n <Button\n type=\"button\"\n onClick={onLearnMoreClick}\n onKeyDown={(event) => handleKeyDown(event, onLearnMoreClick)}\n aria-expanded={aboutGroupedReferralsModalIsOpen}\n label=\"Click here to learn more about referrals.\"\n className=\"border-0\"\n link\n />\n </StepHeader>\n\n <AboutGroupedReferralsModal ref={refModal} onClose={onCloseGroupedReferralsModal} />\n\n {isOpenChooseOneServiceTypeModal && (\n <ChooseOneServiceTypeModal \n closeDialog={closeChooseOneServiceTypeModal}\n programs={selectedPrograms}\n referrals={referrals}\n modalRef={ChooseOneServiceTypeModalRef}\n findServiceName={findServiceName}\n onConfirm={onConfirmApplyChanges}\n onServiceSelectionChange={handleServiceSelectionChange}\n servicesState={servicesState}\n />\n )}\n <>\n <NavButtons\n onBackClick={navigateBack}\n onForwardClick={onNextClick}\n onSaveDraftReferral={handleSaveDraftReferral}\n primaryLabel=\"Next\"\n hideForwardButtons={isEmpty(referrals)}\n hideSaveDraftLink={get(fieldsConfig, 'hideSaveDraftLink')}\n hasOffPlatformReferrals={hasOffPlatformReferrals(referrals)}\n hasDraftReferral={hasDraftReferral}\n isForwardReferralPath={isForwardReferralPath}\n disabled={isSavingDraft}\n isSavingDraft={isSavingDraft}\n />\n\n {!isEmpty(allPrograms) ? (\n <ReferralBuilderContent\n key={selectedIndex}\n selectedFormKey={selectedIndex}\n errorMessage={errorMessage}\n nextClicked={nextClicked}\n saveDraftClicked={saveDraftClicked}\n xlOrLgSpaceReferralDiv={xlOrLgSpaceReferralDiv}\n expandReferralsCard={expandReferralsCard}\n xlOrLgInvisibleChevron={xlOrLgInvisibleChevron}\n changeWidthReferralCard={changeWidthReferralCard}\n referrals={referrals}\n currentEmployee={currentEmployee}\n currentProvider={currentProvider}\n hasDraftReferral={hasDraftReferral}\n navigateToAddResources={navigateToAddResources}\n referralSubtitle={referralSubtitle}\n saveValuesOnChange={saveValuesOnChange}\n unselectedReferralIndexes={unselectedReferralIndexes}\n removeProgram={removeProgram}\n form={form}\n moveToNewReferral={moveToNewReferral}\n moveToExistingReferral={moveToExistingReferral}\n updateAttachments={updateAttachments}\n source={source}\n networksUnlistedProgram={networksUnlistedProgram}\n setReferralErrors={setReferralErrors}\n referralDescription={referralDescription}\n person={person}\n caseData={caseData}\n personId={personId}\n selectedIndex={selectedIndex}\n isEmrSource={isEmrSource}\n errors={errors}\n onReferralCardClick={onReferralCardClick}\n currentReferral={currentReferral}\n updatePersistedAttachments={updatePersistedAttachments}\n />\n ) : (\n <NoReferralsDisplay\n hasDraftReferral={hasDraftReferral}\n navigateToAddResources={navigateToAddResources}\n onClick={navigateBack}\n />\n )}\n\n <NavButtons\n onBackClick={navigateBack}\n onForwardClick={onNextClick}\n onSaveDraftReferral={handleSaveDraftReferral}\n primaryLabel=\"Next\"\n hideForwardButtons={isEmpty(referrals)}\n hideSaveDraftLink={get(fieldsConfig, 'hideSaveDraftLink')}\n hasDraftReferral={hasDraftReferral}\n hasOffPlatformReferrals={hasOffPlatformReferrals(referrals)}\n isForwardReferralPath={isForwardReferralPath}\n disabled={isSavingDraft}\n isSavingDraft={isSavingDraft}\n />\n </>\n </div>\n </CreateReferralContainer>\n )\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAKC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACjF,SAASC,OAAO,EAAEC,OAAO,EAAEC,GAAG,EAAEC,IAAI,EAAEC,MAAM,EAAEC,cAAc,EAAEC,OAAO,QAAQ,QAAQ;AACrF,SAASC,WAAW,EAAEC,WAAW,QAAQ,kBAAkB;AAC3D,SAASC,MAAM,QAAQ,0BAA0B;AACjD,SAASC,OAAO,EAAEC,2BAA2B,QAAQ,yCAAyC;AAC9F,OAAOC,UAAU,MAAM,6BAA6B;AACpD,SAASC,iBAAiB,EAAEC,mBAAmB,EAAEC,wBAAwB,EAAEC,oBAAoB,EAAEC,uBAAuB,EAAEC,aAAa,EAAEC,kCAAkC,QAAQ,SAAS;AAC5L,OAAOC,iBAAiB,MAAM,2BAA2B;AACzD,OAAOC,oBAAoB,MAAM,8BAA8B;AAC/D,OAAOC,uBAAuB,MAAM,0CAA0C;AAC9E,OAAOC,UAAU,MAAM,6BAA6B;AACpD,OAAOC,kBAAkB,MAAM,qCAAqC;AACpE,OAAOC,OAAO,MAAM,mCAAmC;AACvD,OAAOC,kBAAkB,MAAM,gCAAgC;AAC/D,SAASC,SAAS,EAAEC,OAAO,QAAQ,kBAAkB;AACrD,OAAOC,qBAAqB,MAAM,4DAA4D;AAC9F,OAAOC,kBAAkB,MAAM,yDAAyD;AACxF,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,aAAa,MAAM,sCAAsC;AAChE,SAASC,cAAc,QAAQ,4BAA4B;AAC3D,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,cAAc,QAAQ,kCAAkC;AACjE,OAAOC,yBAAyB,MAAM,wCAAwC;AAC9E,SACEC,4BAA4B,QACvB,aAAa;AACpB,SAASC,aAAa,QAAQ,0BAA0B;AACxD,OAAOC,0BAA0B,MAAM,yCAAyC;AAChF,SACEC,mBAAmB,EACnBC,uBAAuB,EACvBC,kBAAkB,EAClBC,mBAAmB,EACnBC,4BAA4B,EAC5BC,wBAAwB,EACxBC,kBAAkB,EAClBC,4BAA4B,QACvB,8BAA8B;AACrC,OAAOC,sBAAsB,MAAM,qCAAqC;AACxE,OAAOC,eAAe,MAAM,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAEhD,eAAe,SAASC,eAAeA,CAAA,EAAG;EAAA,IAAAC,qBAAA,EAAAC,eAAA;EACxC,MAAMC,QAAQ,GAAGnD,WAAW,CAAC,CAAC;EAC9B,MAAMoD,QAAQ,GAAGrD,WAAW,CAAC,CAAC;EAC9B,MAAM;IACJsD,QAAQ;IACRC,KAAK,EAAE;MACLC,SAAS;MACTC,gBAAgB;MAChBC,eAAe;MACfC,eAAe;MACfC,YAAY;MACZC,MAAM;MACNC,MAAM;MACNC,UAAU;MACVC,mBAAmB;MACnBC,MAAM,EAAEC,aAAa;MACrBC,UAAU;MACVC;IACF;EACF,CAAC,GAAGhE,2BAA2B,CAAC,CAAC;EACjC,MAAMiE,IAAI,GAAG/E,MAAM,CAAC,CAAC;EACrB,MAAMgF,4BAA4B,GAAGhF,MAAM,CAAC,CAAC;EAC7C,MAAMiF,sBAAsB,GAAGjF,MAAM,CAACkF,MAAM,CAACC,UAAU,CAAC;EAExD,MAAMC,6BAA6B,GAAGnF,WAAW,CAAC,MAAM;IACtD+E,4BAA4B,CAACK,OAAO,CAACC,UAAU,CAAC,CAAC;EACnD,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,8BAA8B,GAAGtF,WAAW,CAAC,MAAM;IACvD+E,4BAA4B,CAACK,OAAO,CAACG,WAAW,CAAC,CAAC;EACpD,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,+BAA+B,GAAGrD,cAAc,CAAC,iCAAiC,EAAE,KAAK,CAAC;EAChG,MAAMsD,yBAAyB,GAAGtD,cAAc,CAAC,2BAA2B,EAAE,KAAK,CAAC;EACpF,MAAMuD,sBAAsB,GAAGvD,cAAc,CAAC,6BAA6B,EAAE,KAAK,CAAC;EAEnF,MAAM,CAACwD,aAAa,EAAEC,gBAAgB,CAAC,GAAG9F,QAAQ,CAAC,EAAE,CAAC;EACtD,MAAM,CAAC+F,gCAAgC,EAAEC,mCAAmC,CAAC,GAAGhG,QAAQ,CAAC,KAAK,CAAC;EAC/F,MAAM,CAACiG,+BAA+B,EAAEC,kCAAkC,CAAC,GAAGlG,QAAQ,CAAC,KAAK,CAAC;EAC7F,MAAM,CAACmG,aAAa,EAAEC,gBAAgB,CAAC,GAAGpG,QAAQ,EAAA6D,qBAAA,IAAAC,eAAA,GAACC,QAAQ,CAACG,KAAK,cAAAJ,eAAA,uBAAdA,eAAA,CAAgBuC,gBAAgB,cAAAxC,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC;EACzF,MAAM,CAACyC,WAAW,EAAEC,cAAc,CAAC,GAAGvG,QAAQ,CAAC,CAAC,CAAC,CAAC;EAClD,MAAM,CAACwG,WAAW,EAAEC,cAAc,CAAC,GAAGzG,QAAQ,CAAC,KAAK,CAAC;EACrD,MAAM,CAAC0G,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG3G,QAAQ,CAAC,KAAK,CAAC;EAC/D,MAAM,CAAC4G,aAAa,EAAEC,gBAAgB,CAAC,GAAG7G,QAAQ,CAAC,KAAK,CAAC;EACzD,MAAM,CAAC8G,mBAAmB,EAAEC,sBAAsB,CAAC,GAAG/G,QAAQ,CAAC,KAAK,CAAC;EACrE,MAAM,CAACgH,SAAS,EAAEC,YAAY,CAAC,GAAGjH,QAAQ,CAAC,EAAE,CAAC;EAC9C,MAAM,CAACkH,aAAa,EAAEC,gBAAgB,CAAC,GAAGnH,QAAQ,CAAC,EAAE,CAAC;EACtD,MAAM,CAACoH,eAAe,EAAEC,kBAAkB,CAAC,GAAGrH,QAAQ,CAAC,KAAK,CAAC;EAC7D,MAAMsH,WAAW,GAAG9C,MAAM,KAAK,KAAK;EACpC,MAAM,CAAC+C,uBAAuB,EAAEC,0BAA0B,CAAC,GAAGxH,QAAQ,CAAC,EAAE,CAAC;EAC1E,MAAM,CAACyH,QAAQ,EAAEC,WAAW,CAAC,GAAG1H,QAAQ,CAAC,IAAI,CAAC;EAC9C,MAAM2H,gBAAgB,GAAG,CAAAjD,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAER,KAAK,MAAK,OAAO;EACtD,MAAM0D,oBAAoB,GAAGD,gBAAgB,GAAG,qBAAqB,GAAG,wBAAwB;EAChG,MAAME,qBAAqB,GAAG,CAAC,CAAC/C,UAAU,IAAI,CAAC,CAACC,YAAY;EAC5D,MAAM+C,KAAK,GAAG,IAAIC,eAAe,CAAChE,QAAQ,CAACiE,MAAM,CAAC;EAClD,MAAMpD,MAAM,GAAGC,aAAa,IAAIiD,KAAK,CAACxH,GAAG,CAAC,QAAQ,CAAC;EACnD,MAAM2H,QAAQ,GAAG,CAAAxD,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEyD,EAAE,KAAIJ,KAAK,CAACxH,GAAG,CAAC,QAAQ,CAAC;EAClD,MAAM;IAAE6H,IAAI,EAAEC;EAAgB,CAAC,GAAG9F,OAAO,WAAA+F,MAAA,CAC7BJ,QAAQ,wBAClB;IACEK,WAAW,EAAE;EACf,CAAC,EACD;IACEC,WAAW,EAAE;MACXC,eAAe,EAAEC;IACnB;EACF,CACF,CAAC;EACD,MAAMC,WAAW,GAAGvI,OAAO,CACzB,MAAMoC,cAAc,CAAC6F,eAAe,CAAC,EACrC,CAACA,eAAe,CAClB,CAAC;EACD,MAAMO,eAAe,GAAG/C,sBAAsB,IAAI,CAACvF,OAAO,CAACqI,WAAW,CAAC;EAEvE,MAAME,MAAM,GAAGC,MAAM,CAACC,IAAI,CAACxC,WAAW,CAAC,CAACyC,MAAM,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAK;IAC7D,MAAMC,UAAU,GAAG5C,WAAW,CAAC2C,KAAK,CAAC;IACrCD,GAAG,CAACC,KAAK,CAAC,GAAG;MACXE,OAAO,EAAED,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEC,OAAO;MAC5BC,OAAO,EAAEF,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEE,OAAO;MAC5BC,cAAc,EAAEH,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEG,cAAc;MAC1CC,WAAW,EAAEJ,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEI,WAAW;MACpCC,gBAAgB,EAAE,CAAAL,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEK,gBAAgB,MAAIL,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEM,eAAe;MAC7EC,WAAW,EAAE,CAAAP,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEO,WAAW,MAAIP,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEQ,4BAA4B;MAChFC,iBAAiB,EAAET,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAES,iBAAiB;MAChDC,WAAW,EAAEV,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEU,WAAW;MACpCC,UAAU,EAAEX,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEW,UAAU;MAClCC,WAAW,EAAEZ,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEY;IAC3B,CAAC;IACD,OAAOd,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAAC;EACN,MAAMe,iBAAiB,GAAGA,CAACC,aAAa,EAAEC,SAAS,KAAK;IACtD1D,cAAc,CAAE2D,eAAe,IAAK;MAClC,MAAMC,aAAa,GAAGD,eAAe,CAACF,aAAa,CAAC;MACpD,MAAMI,aAAa,GAAAC,aAAA,CAAAA,aAAA,KAAQF,aAAa,GAAKF,SAAS,CAAE;MAExD,IAAI7J,OAAO,CAACgK,aAAa,EAAED,aAAa,CAAC,EAAE;QACzC,OAAOD,eAAe;MACxB;MAEA,OAAAG,aAAA,CAAAA,aAAA,KACKH,eAAe;QAClB,CAACF,aAAa,GAAGI;MAAa;IAElC,CAAC,CAAC;EACJ,CAAC;EAED,MAAME,gBAAgB,GAAIC,gBAAgB,IAAK;IAC7C,IAAG,CAAClK,OAAO,CAACkK,gBAAgB,CAAC,EAAE;MAC7B,MAAMC,UAAU,GAAGrJ,wBAAwB,CAACoJ,gBAAgB,EAAE5B,eAAe,CAAC;MAC9E4B,gBAAgB,CAACE,OAAO,CAAC,CAACC,SAAS,EAAEzB,KAAK,KAAK;QAC7Cc,iBAAiB,CAACd,KAAK,EAAEuB,UAAU,CAACvB,KAAK,CAAC,CAAC;MAC7C,CAAC,CAAC;IACJ;EACF,CAAC;EAED,MAAM;IAAE0B;EAAU,CAAC,GAAGnJ,iBAAiB,CAAC8I,gBAAgB,CAAC;EAEzD,MAAM;IACJM,kBAAkB;IAClBC,sBAAsB;IACtBC,iBAAiB;IACjBC,aAAa;IACbC,iBAAiB;IACjBC;EACF,CAAC,GAAGxJ,oBAAoB,CAAC;IACvB0C,SAAS;IACTC,gBAAgB;IAChB+B,aAAa;IACbC,gBAAgB;IAChBwC,MAAM;IACNrC,cAAc;IACdtC;EACF,CAAC,CAAC;EAEF,MAAMiH,4BAA4B,GAAGA,CAACC,SAAS,EAAEC,SAAS,KAAK;IAC7DtF,gBAAgB,CAACuF,SAAS,IACxBA,SAAS,CAACC,GAAG,CAACnC,OAAO,IACnBA,OAAO,CAACgC,SAAS,KAAKA,SAAS,IAAIhC,OAAO,CAACiC,SAAS,KAAKA,SAAS,GAAAf,aAAA,CAAAA,aAAA,KACzDlB,OAAO;MAAEoC,QAAQ,EAAE,CAACpC,OAAO,CAACoC;IAAQ,KACzCpC,OACN,CACF,CAAC;EACH,CAAC;EAED,MAAMqC,eAAe,GAAGC,IAAA;IAAA,IAAC;MAAEC;IAAc,CAAC,GAAAD,IAAA;IAAA,OACxCvI,kBAAkB,CAACiB,SAAS,EAAEuH,aAAa,CAAC;EAAA,CAC7C;EAED3L,SAAS,CAAC,MAAM;IACd+F,gBAAgB,CAAC3C,4BAA4B,CAACiB,gBAAgB,EAAED,SAAS,CAAC,CAAC;EAC7E,CAAC,EAAE,CAACC,gBAAgB,CAAC,CAAC;EAEtBrE,SAAS,CAAC,MAAM;IACd,IAAI,CAAC4K,SAAS,IAAIjF,+BAA+B,EAAE;MACjD;MACA,MAAMiG,mBAAmB,GAAGvH,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAE7D,IAAI,CAAEqL,OAAO,IAAK3K,iBAAiB,CAAC2K,OAAO,CAAC,CAAC;MAC3F,IAAID,mBAAmB,EAAE;QACvBvJ,aAAa,CAACkC,eAAe,CAAC,CAACuH,IAAI,CAAEC,QAAQ,IAAK;UAChDtE,0BAA0B,CAACsE,QAAQ,CAAC;QACtC,CAAC,CAAC;MACJ;IACF;EACF,CAAC,EAAE,CAACnB,SAAS,CAAC,CAAC;EAEf5K,SAAS,CAAC,MAAM;IACd,IAAIM,OAAO,CAAC8D,SAAS,CAAC,EAAE;MACtB;IACF;IAEA,MAAMqG,UAAU,GAAGrJ,wBAAwB,CAACgD,SAAS,EAAEwE,eAAe,CAAC;IAEvExE,SAAS,CAACsG,OAAO,CAAC,CAACC,SAAS,EAAEzB,KAAK,KAAK;MACtCc,iBAAiB,CAACd,KAAK,EAAEuB,UAAU,CAACvB,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC;EACJ,CAAC,EAAE,CAAC9E,SAAS,EAAEwE,eAAe,CAAC,CAAC;EAEhC5I,SAAS,CAAC,MAAM;IACd,MAAMgM,iCAAiC,GAAGA,CAAA,KAAM;MAC9C,MAAMC,kBAAkB,GAAG7G,MAAM,CAACC,UAAU;MAC5C,MAAM6G,mBAAmB,GAAG/G,sBAAsB,CAACI,OAAO;MAE1D,IAAI0G,kBAAkB,IAAI,IAAI,EAAE;QAC9BjF,sBAAsB,CAAC,IAAI,CAAC;MAC9B,CAAC,MAAM,IAAIkF,mBAAmB,IAAI,IAAI,EAAE;QACtClF,sBAAsB,CAAC,KAAK,CAAC;MAC/B;MAEA7B,sBAAsB,CAACI,OAAO,GAAG0G,kBAAkB;IACrD,CAAC;IAEDD,iCAAiC,CAAC,CAAC;IACnC5G,MAAM,CAAC+G,gBAAgB,CAAC,QAAQ,EAAEH,iCAAiC,CAAC;IACpE,OAAO,MAAM5G,MAAM,CAACgH,mBAAmB,CAAC,QAAQ,EAAEJ,iCAAiC,CAAC;EACtF,CAAC,EAAE,EAAE,CAAC;EAGN,MAAMK,gBAAgB,GAAGA,CAAA,KAAM;IAC7BpG,mCAAmC,CAAC,IAAI,CAAC;EAC3C,CAAC;EAED,MAAMqG,4BAA4B,GAAGA,CAAA,KAAM;IACzCrG,mCAAmC,CAAC,KAAK,CAAC;EAC5C,CAAC;EAED,MAAMsG,QAAQ,GAAGrM,MAAM,CAAC,IAAI,CAAC;EAC7BF,SAAS,CAAC,MAAM;IACd,IAAIgG,gCAAgC,EAAE;MACpCuG,QAAQ,CAAChH,OAAO,CAACiH,SAAS,CAAC,CAAC;IAC9B,CAAC,MAAM;MACLD,QAAQ,CAAChH,OAAO,CAACkH,UAAU,CAAC,CAAC;IAC/B;EACF,CAAC,EAAE,CAACzG,gCAAgC,CAAC,CAAC;EAEtChG,SAAS,CAAC,MAAM;IACd,IAAI,CAAC4K,SAAS,IAAI1E,+BAA+B,EAAE;MACjDZ,6BAA6B,CAAC,CAAC;IACjC;EACF,CAAC,EAAE,CAACsF,SAAS,CAAC,CAAC;EAEf,MAAM8B,mBAAmB,GAAIxD,KAAK,IAAK;IACrC7C,gBAAgB,CAAC6C,KAAK,CAAC;EACzB,CAAC;EAEDlJ,SAAS,CAAC,MAAM;IACdkC,qBAAqB,CAACwC,MAAM,CAACyD,EAAE,CAAC,CAAC2D,IAAI,CAAEa,MAAM,IAAK;MAChDzF,YAAY,CAACyF,MAAM,CAAC;IACtB,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN3M,SAAS,CAAC,MAAM;IACd,IAAI6E,MAAM,IAAIe,yBAAyB,EAAE;MACvCzD,kBAAkB,CAAC0C,MAAM,CAAC,CAACiH,IAAI,CAAEa,MAAM,IAAK;QAC1CvF,gBAAgB,CAACuF,MAAM,CAAC;MAC1B,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,EAAE,CAAC;EAEN3M,SAAS,CAAC,MAAM;IACd,MAAM4M,aAAa,GAAG,MAAAA,CAAA,KAAY;MAChC,IAAI/H,MAAM,EAAE;QACV,IAAI;UACF,MAAM;YAAEuD,IAAI,EAAE;cAAEA,IAAI,EAAEV;YAAS;UAAE,CAAC,GAAG,MAAMzF,OAAO,CAAC4K,UAAU,CAAC,MAAM,EAAEhI,MAAM,CAAC;UAC7E8C,WAAW,CAACD,QAAQ,CAAC;QACvB,CAAC,CAAC,OAAOoF,KAAK,EAAE;UACdC,OAAO,CAACD,KAAK,CAAC,2BAA2B,EAAEA,KAAK,CAAC;QACnD;MACF;IACF,CAAC;IACDF,aAAa,CAAC,CAAC;EACjB,CAAC,EAAE,CAAC/H,MAAM,CAAC,CAAC;EAEZ7E,SAAS,CAAC,MAAM;IACd,IAAI,CAACM,OAAO,CAAC8D,SAAS,CAAC,IAAI,CAACiD,eAAe,KAAK,CAAC/G,OAAO,CAAC2G,SAAS,CAAC,IAAI,CAAC3G,OAAO,CAAC6G,aAAa,CAAC,CAAC,EAAE;MAC/F,MAAM6F,gBAAgB,GAAG5I,SAAS,CAACmH,GAAG,CAAE0B,QAAQ,IAAK;QACnD,IAAG,CAACA,QAAQ,CAACC,mBAAmB,EAAE;UAChC,OAAA5C,aAAA,CAAAA,aAAA,KACG2C,QAAQ;YACXC,mBAAmB,EAAE,CAAC,GAAGjG,SAAS,EAAE,GAAGE,aAAa,CAAC,CAACoE,GAAG,CAAE4B,GAAG,KAAM;cAAEC,QAAQ,EAAE,KAAK;cAAEC,QAAQ,EAAEF;YAAI,CAAC,CAAC;UAAC;QAE1G,CAAC,MAAM;UACL,OAAOF,QAAQ;QACjB;MACF,CAAC,CAAC;MAEF/I,QAAQ,CAACnD,OAAO,CAAC;QACfqD,SAAS,EAAE4I;MACb,CAAC,CAAC,CAAC;MAEH1F,kBAAkB,CAAC,IAAI,CAAC;IAC1B;IAEA,MAAMgG,yBAAyB,GAAGjJ,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAE7D,IAAI,CAAEqL,OAAO,IAAK;MAAA,IAAA0B,iBAAA;MACpE,OAAO,CAAA1B,OAAO,aAAPA,OAAO,gBAAA0B,iBAAA,GAAP1B,OAAO,CAAE2B,QAAQ,cAAAD,iBAAA,uBAAjBA,iBAAA,CAAmBE,MAAM,IAAG,CAAC;IACtC,CAAC,CAAC;IACFtH,kCAAkC,CAACmH,yBAAyB,CAAC;EAC/D,CAAC,EAAE,CAAClJ,SAAS,CAAC,CAAC;EAEf,MAAMsJ,WAAW,GAAGA,CAAA,KAAM1K,mBAAmB,CAACoB,SAAS,EAAEgC,aAAa,CAAC;EAEvE,MAAMuH,oBAAoB,GAAG7K,uBAAuB,CAAC+F,MAAM,CAAC;EAE5D,MAAM+E,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAI1E,KAAK,GAAG9C,aAAa;IACzB,IAAI,CAAC5F,IAAI,CAACC,MAAM,CAACoI,MAAM,CAACK,KAAK,CAAC,CAAC,EAAE2E,OAAO,CAAC,EAAE;MACzC3E,KAAK,GAAGyE,oBAAoB;MAC5BtH,gBAAgB,CAAC6C,KAAK,CAAC;IACzB;IAEAnG,kBAAkB,CAAC;MACjB8F,MAAM;MACNK,KAAK;MACL4E,OAAO,EAAE7I;IACX,CAAC,CAAC;EACJ,CAAC;EAED,MAAM8I,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAIxM,aAAa,CAACsH,MAAM,CAAC,EAAE;MACzB,OAAO5E,QAAQ,YAAAqE,MAAA,CAAYR,qBAAqB,GAAG,QAAQ,GAAG,iBAAiB,CAAE,CAAC;IACpF;IAEA8F,WAAW,CAAC,CAAC;IACblH,cAAc,CAAC,IAAI,CAAC;EACtB,CAAC;EAED,MAAMsH,YAAY,GAAGA,CAAA,KAAM;IACzB,IAAIpG,gBAAgB,EAAE;MACpB,MAAMqG,WAAW,GAAG1N,GAAG,CAACoE,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC;MACpD3C,SAAS,CAACkM,uBAAuB,CAACD,WAAW,CAAC;IAChD,CAAC,MAAM,IAAIjM,SAAS,CAACmM,cAAc,EAAE;MACnCnM,SAAS,CAACmM,cAAc,CAACvI,yBAAyB,GAAG;QAAEb,UAAU;QAAEH;MAAoB,CAAC,GAAG;QAAEA;MAAoB,CAAC,CAAC;IACrH,CAAC,MAAM;MACLX,QAAQ,CAAC,CAAC,CAAC,CAAC;IACd;EACF,CAAC;EAED,MAAMmK,sBAAsB,GAAGA,CAAA,KAAMpM,SAAS,CAACqM,wBAAwB,CAAC,CAAC;EAEzE,MAAMC,eAAe,GAAGvM,kBAAkB,CAAC,CAAC;EAC5C,MAAMwM,uBAAuB,GAAG,MAAAA,CAAA,KAAY;IAC1C3H,mBAAmB,CAAC,IAAI,CAAC;IACzB,IAAIC,aAAa,EAAE;IACnB,IAAI,CAACtF,aAAa,CAACsH,MAAM,CAAC,EAAE;MAC1B+E,WAAW,CAAC,CAAC;MACb;IACF;IAEA9G,gBAAgB,CAAC,IAAI,CAAC;IACtB,IAAI;MACF,MAAMwH,eAAe,CAAC;QAAEE,KAAK,EAAE;MAAK,CAAC,CAAC;MACtC,MAAM;QAAEC;MAAoB,CAAC,GAAGzM,SAAS;MACzCyM,mBAAmB,IAAIA,mBAAmB,CAAC,CAAC;MAC5CnL,eAAe,CAACY,QAAQ,CAAC;MACzBlC,SAAS,CAAC0M,MAAM,CAACC,OAAO,CAAC,mCAAmC,CAAC;IAC/D,CAAC,SAAS;MACR7H,gBAAgB,CAAC,KAAK,CAAC;IACzB;EACF,CAAC;EAED,MAAM8H,uBAAuB,GAAGA,CAAA,KAAM;IACpC5H,sBAAsB,CAAE6H,uBAAuB,IAAK,CAACA,uBAAuB,CAAC;EAC/E,CAAC;EAED,IAAIjE,SAAS,EAAE,oBAAOpH,IAAA,CAAC1B,OAAO;IAACgN,MAAM;EAAA,CAAE,CAAC;EAExC,MAAMC,gBAAgB,GAAG5N,mBAAmB,CAACiD,SAAS,EAAEsJ,WAAW,CAAC,CAAC,CAAC;EACtE,MAAMsB,yBAAyB,GAAG/L,4BAA4B,CAACmB,SAAS,EAAEgC,aAAa,CAAC;EACxF,MAAM6I,WAAW,GAAG7K,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAE8K,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAACC,QAAQ,CAAC;EACzD,MAAMC,YAAY,GAAGhO,oBAAoB,CAACwH,MAAM,CAAC;EACjD,MAAMyG,eAAe,GAAG5B,WAAW,CAAC,CAAC;EAErC,MAAM6B,sBAAsB,GAAGnN,UAAU,CAAC;IACxC,cAAc,EAAE;EAClB,CAAC,CAAC;EAEF,MAAMoN,sBAAsB,GAAGpN,UAAU,CAAC;IACxC,cAAc,EAAE;EAClB,CAAC,CAAC;EAEF,MAAMqN,qBAAqB,GAAGA,CAAA,KAAM;IAClC,MAAM;MACJC,gBAAgB;MAChBC;IACF,CAAC,GAAGzM,wBAAwB,CAAC4C,aAAa,CAAC;IAC3C,MAAMkH,gBAAgB,GAAGxL,kCAAkC,CAAC4C,SAAS,EAAEsL,gBAAgB,CAAC;IAExF,MAAMjF,UAAU,GAAGrJ,wBAAwB,CAAC4L,gBAAgB,EAAEpE,eAAe,CAAC;IAC9EpC,cAAc,CAACiE,UAAU,CAAC;IAE1BvG,QAAQ,CAACnD,OAAO,CAAC;MACfqD,SAAS,EAAE4I;IACb,CAAC,CAAC,CAAC;IAEH2C,kBAAkB,CAACjF,OAAO,CAAEtB,OAAO,IAAK;MACtCpH,SAAS,CAAC4N,iBAAiB,CAAC;QAC1BzH,EAAE,EAAEiB,OAAO,CAACgC,SAAS;QACrBhC,OAAO,EAAEA,OAAO,CAACiC;MACnB,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF5F,8BAA8B,CAAC,CAAC;EAClC,CAAC;EAGD,oBACEjC,IAAA,CAAC7B,uBAAuB;IAAAkO,QAAA,eACtBnM,KAAA;MAAKoM,SAAS,EAAC,OAAO;MAAAD,QAAA,gBACpBnM,KAAA,CAACzC,UAAU;QAAC8O,MAAM,EAAElI,oBAAqB;QAAAgI,QAAA,GACtCnN,4BAA4B,eAC7Bc,IAAA,SAAK,CAAC,eACNA,IAAA,CAAC1C,MAAM;UACLkP,IAAI,EAAC,QAAQ;UACbC,OAAO,EAAE5D,gBAAiB;UAC1B6D,SAAS,EAAGC,KAAK,IAAKxN,aAAa,CAACwN,KAAK,EAAE9D,gBAAgB,CAAE;UAC7D,iBAAerG,gCAAiC;UAChDoK,KAAK,EAAC,2CAA2C;UACjDN,SAAS,EAAC,UAAU;UACpBO,IAAI;QAAA,CACL,CAAC;MAAA,CACQ,CAAC,eAEb7M,IAAA,CAACZ,0BAA0B;QAAC0N,GAAG,EAAE/D,QAAS;QAACgE,OAAO,EAAEjE;MAA6B,CAAE,CAAC,EAEnFpG,+BAA+B,iBAC9B1C,IAAA,CAACf,yBAAyB;QACxBiD,WAAW,EAAED,8BAA+B;QAC5C2J,QAAQ,EAAE/K,gBAAiB;QAC3BD,SAAS,EAAEA,SAAU;QACrBoM,QAAQ,EAAEtL,4BAA6B;QACvCuG,eAAe,EAAEA,eAAgB;QACjCgF,SAAS,EAAEhB,qBAAsB;QACjCiB,wBAAwB,EAAEvF,4BAA6B;QACvDrF,aAAa,EAAEA;MAAc,CAC9B,CACF,eACDpC,KAAA,CAAAE,SAAA;QAAAiM,QAAA,gBACErM,IAAA,CAAC5B,UAAU;UACT+O,WAAW,EAAE3C,YAAa;UAC1B4C,cAAc,EAAE7C,WAAY;UAC5BU,mBAAmB,EAAEF,uBAAwB;UAC7CsC,YAAY,EAAC,MAAM;UACnBC,kBAAkB,EAAExQ,OAAO,CAAC8D,SAAS,CAAE;UACvC2M,iBAAiB,EAAExQ,GAAG,CAACiE,YAAY,EAAE,mBAAmB,CAAE;UAC1DlD,uBAAuB,EAAEA,uBAAuB,CAAC8C,SAAS,CAAE;UAC5DwD,gBAAgB,EAAEA,gBAAiB;UACnCE,qBAAqB,EAAEA,qBAAsB;UAC7CkJ,QAAQ,EAAEnK,aAAc;UACxBA,aAAa,EAAEA;QAAc,CAC9B,CAAC,EAED,CAACvG,OAAO,CAAC2O,WAAW,CAAC,gBACpBzL,IAAA,CAACH,sBAAsB;UAErB4N,eAAe,EAAE7K,aAAc;UAC/BiJ,YAAY,EAAEA,YAAa;UAC3B5I,WAAW,EAAEA,WAAY;UACzBE,gBAAgB,EAAEA,gBAAiB;UACnC6I,sBAAsB,EAAEA,sBAAuB;UAC/CzI,mBAAmB,EAAEA,mBAAoB;UACzCwI,sBAAsB,EAAEA,sBAAuB;UAC/CX,uBAAuB,EAAEA,uBAAwB;UACjDxK,SAAS,EAAEA,SAAU;UACrBE,eAAe,EAAEA,eAAgB;UACjCC,eAAe,EAAEA,eAAgB;UACjCqD,gBAAgB,EAAEA,gBAAiB;UACnCwG,sBAAsB,EAAEA,sBAAuB;UAC/CW,gBAAgB,EAAEA,gBAAiB;UACnClE,kBAAkB,EAAEA,kBAAmB;UACvCmE,yBAAyB,EAAEA,yBAA0B;UACrDhE,aAAa,EAAEA,aAAc;UAC7B/F,IAAI,EAAEA,IAAK;UACX8F,iBAAiB,EAAEA,iBAAkB;UACrCD,sBAAsB,EAAEA,sBAAuB;UAC/CG,iBAAiB,EAAEA,iBAAkB;UACrCxG,MAAM,EAAEA,MAAO;UACf+C,uBAAuB,EAAEA,uBAAwB;UACjDwC,iBAAiB,EAAEA,iBAAkB;UACrCpF,mBAAmB,EAAEA,mBAAoB;UACzCF,MAAM,EAAEA,MAAO;UACfgD,QAAQ,EAAEA,QAAS;UACnBQ,QAAQ,EAAEA,QAAS;UACnB9B,aAAa,EAAEA,aAAc;UAC7BmB,WAAW,EAAEA,WAAY;UACzBsB,MAAM,EAAEA,MAAO;UACf6D,mBAAmB,EAAEA,mBAAoB;UACzC4C,eAAe,EAAEA,eAAgB;UACjCpE,0BAA0B,EAAEA;QAA2B,GAlClD9E,aAmCN,CAAC,gBAEF5C,IAAA,CAAC3B,kBAAkB;UACjB+F,gBAAgB,EAAEA,gBAAiB;UACnCwG,sBAAsB,EAAEA,sBAAuB;UAC/C6B,OAAO,EAAEjC;QAAa,CACvB,CACF,eAEDxK,IAAA,CAAC5B,UAAU;UACT+O,WAAW,EAAE3C,YAAa;UAC1B4C,cAAc,EAAE7C,WAAY;UAC5BU,mBAAmB,EAAEF,uBAAwB;UAC7CsC,YAAY,EAAC,MAAM;UACnBC,kBAAkB,EAAExQ,OAAO,CAAC8D,SAAS,CAAE;UACvC2M,iBAAiB,EAAExQ,GAAG,CAACiE,YAAY,EAAE,mBAAmB,CAAE;UAC1DoD,gBAAgB,EAAEA,gBAAiB;UACnCtG,uBAAuB,EAAEA,uBAAuB,CAAC8C,SAAS,CAAE;UAC5D0D,qBAAqB,EAAEA,qBAAsB;UAC7CkJ,QAAQ,EAAEnK,aAAc;UACxBA,aAAa,EAAEA;QAAc,CAC9B,CAAC;MAAA,CACF,CAAC;IAAA,CACA;EAAC,CACiB,CAAC;AAE9B","ignoreList":[]}
@@ -1,11 +1,15 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1
4
  import { useEffect, useRef, useState } from 'react';
2
5
  import { useQueryClient } from 'react-query';
3
6
  import { setData, useAppCreateReferralContext } from '../../../context/AppCreateReferralProvider';
4
- import { addProgramToReferral, addIdToUnlistedPrograms, buildReferralsFromPrograms, isUnlistedProgram, filterProgramsReceivingReferrals } from '../utils';
7
+ import { addProgramToReferral, addIdToUnlistedPrograms, buildReferralsFromPrograms, isUnlistedProgram, filterProgramsReceivingReferrals, referralIsOON } from '../utils';
5
8
  import { isEmpty, get } from 'lodash';
6
9
  import { buildGroupedReferrals } from '../utils/buildGroupedReferrals';
7
10
  import { coreApi } from '../../../api/config';
8
11
  import { useFeatureFlag } from '../../../utils/useFeatureFlag';
12
+ import fetchPrimaryWorkers from '../../../actions/Referral/fetchPrimaryWorkers';
9
13
  const extractUniqueServiceIds = referrals => [...new Set(referrals.map(referral => {
10
14
  var _referral$service;
11
15
  return (_referral$service = referral.service) === null || _referral$service === void 0 ? void 0 : _referral$service.id;
@@ -23,6 +27,38 @@ const assignServicesToPrograms = (referrals, servicesMap) => {
23
27
  if (service) referral.service = service;
24
28
  });
25
29
  };
30
+ const shouldHydratePrimaryWorker = referral => {
31
+ if (!referralIsOON(referral)) return false;
32
+ return !referral.primaryWorker;
33
+ };
34
+ const getPrimaryWorkersForProvider = async (primaryWorkersByProvider, providerId, currentEmployee) => {
35
+ primaryWorkersByProvider[providerId] = primaryWorkersByProvider[providerId] || fetchPrimaryWorkers({
36
+ providerId,
37
+ currentEmployee
38
+ });
39
+ const {
40
+ primary_workers: primaryWorkers = []
41
+ } = (await primaryWorkersByProvider[providerId]) || {};
42
+ return primaryWorkers;
43
+ };
44
+ const applyDefaultPrimaryWorker = (referral, primaryWorker) => {
45
+ if (!primaryWorker) return referral;
46
+ return _objectSpread(_objectSpread({}, referral), {}, {
47
+ primaryWorker
48
+ });
49
+ };
50
+ const hydrateDefaultPrimaryWorkers = async (referrals, currentEmployee) => {
51
+ const primaryWorkersByProvider = {};
52
+ return Promise.all(referrals.map(async referral => {
53
+ if (!shouldHydratePrimaryWorker(referral)) {
54
+ return referral;
55
+ }
56
+ const providerId = referral.sendingProvider.id;
57
+ const primaryWorkers = await getPrimaryWorkersForProvider(primaryWorkersByProvider, providerId, currentEmployee);
58
+ const primaryWorker = primaryWorkers.find(worker => worker.id === currentEmployee.id);
59
+ return applyDefaultPrimaryWorker(referral, primaryWorker);
60
+ }));
61
+ };
26
62
  const optimizedPopulateServices = async (referrals, queryClient) => {
27
63
  const uniqueServiceIds = extractUniqueServiceIds(referrals);
28
64
  if (uniqueServiceIds.length === 0) return;
@@ -37,6 +73,7 @@ export default function useBuildReferrals(onReferralsBuilt) {
37
73
  selectedPrograms,
38
74
  referrals,
39
75
  currentProvider,
76
+ currentEmployee,
40
77
  draftState,
41
78
  assistanceRequestId,
42
79
  referralDescription,
@@ -103,7 +140,7 @@ export default function useBuildReferrals(onReferralsBuilt) {
103
140
  });
104
141
  await Promise.all(feeSchedulePromises);
105
142
  await Promise.all(networkPromises);
106
- const groupedReferrals = buildGroupedReferrals(filteredReferrals, currentProvider);
143
+ const groupedReferrals = await hydrateDefaultPrimaryWorkers(buildGroupedReferrals(filteredReferrals, currentProvider), currentEmployee);
107
144
  if (!isEmpty(assistanceRequest)) {
108
145
  var _assistanceRequest, _assistanceRequest2;
109
146
  groupedReferrals[0].description = ((_assistanceRequest = assistanceRequest) === null || _assistanceRequest === void 0 ? void 0 : _assistanceRequest.description) || ((_assistanceRequest2 = assistanceRequest) === null || _assistanceRequest2 === void 0 || (_assistanceRequest2 = _assistanceRequest2.case) === null || _assistanceRequest2 === void 0 ? void 0 : _assistanceRequest2.description);
@@ -1 +1 @@
1
- {"version":3,"file":"useBuildReferrals.js","names":["useEffect","useRef","useState","useQueryClient","setData","useAppCreateReferralContext","addProgramToReferral","addIdToUnlistedPrograms","buildReferralsFromPrograms","isUnlistedProgram","filterProgramsReceivingReferrals","isEmpty","get","buildGroupedReferrals","coreApi","useFeatureFlag","extractUniqueServiceIds","referrals","Set","map","referral","_referral$service","service","id","filter","Boolean","fetchServicesBatch","queryClient","serviceIds","cacheKey","sort","join","fetchQuery","query","ids","assignServicesToPrograms","servicesMap","forEach","_referral$service2","optimizedPopulateServices","uniqueServiceIds","length","result","services","Map","s","useBuildReferrals","onReferralsBuilt","dispatch","state","selectedPrograms","currentProvider","draftState","assistanceRequestId","referralDescription","isAssistanceRequest","isLoading","setIsLoading","isBuildingRef","hint542SupersetUnlistedPrograms","crtb854ForwardingSuperset","buildReferrals","current","assistanceRequest","assistanceRequestResponse","findRecord","include","selectedProgramsFiltered","obj","newReferrals","newReferralsClone","JSON","parse","stringify","newReferralsCloneWithoutUnlisted","programs","p","includes","populateRelationship","flatPrograms","flatMap","filteredReferrals","providerPromises","networkPromises","feeSchedulePromises","program","push","Promise","all","then","provider","groupedReferrals","_assistanceRequest","_assistanceRequest2","description","case","err","console","error"],"sources":["../../../../src/pages/builder/hooks/useBuildReferrals.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useQueryClient } from 'react-query';\nimport { setData, useAppCreateReferralContext } from '../../../context/AppCreateReferralProvider';\nimport {\n addProgramToReferral,\n addIdToUnlistedPrograms,\n buildReferralsFromPrograms,\n isUnlistedProgram,\n filterProgramsReceivingReferrals\n} from '../utils';\nimport { isEmpty, get } from 'lodash';\nimport { buildGroupedReferrals } from '../utils/buildGroupedReferrals';\nimport { coreApi } from '../../../api/config';\nimport { useFeatureFlag } from '../../../utils/useFeatureFlag';\n\nconst extractUniqueServiceIds = (referrals) => [...new Set(\n referrals.map(referral => referral.service?.id).filter(Boolean)\n)];\n\nconst fetchServicesBatch = (queryClient, serviceIds) => {\n const cacheKey = ['services', serviceIds.sort().join(',')];\n return queryClient.fetchQuery(\n cacheKey,\n () => coreApi.query('services', { ids: serviceIds })\n );\n};\n\nconst assignServicesToPrograms = (referrals, servicesMap) => {\n referrals.forEach(referral => {\n const service = servicesMap.get(referral.service?.id);\n if (service) referral.service = service;\n });\n};\nconst optimizedPopulateServices = async (referrals, queryClient) => {\n const uniqueServiceIds = extractUniqueServiceIds(referrals);\n if (uniqueServiceIds.length === 0) return;\n\n const result = await fetchServicesBatch(queryClient, uniqueServiceIds);\n const services = get(result, 'response.data.data', get(result, 'data.data', []));\n assignServicesToPrograms(referrals, new Map(services.map(s => [s.id, s])));\n};\n\nexport default function useBuildReferrals(onReferralsBuilt) {\n const { dispatch, state: {\n selectedPrograms,\n referrals,\n currentProvider,\n draftState,\n assistanceRequestId,\n referralDescription,\n isAssistanceRequest,\n } } = useAppCreateReferralContext();\n const [isLoading, setIsLoading] = useState(false);\n const isBuildingRef = useRef(false);\n const queryClient = useQueryClient();\n\n const hint542SupersetUnlistedPrograms = useFeatureFlag('hint542SupersetUnlistedPrograms', false);\n const crtb854ForwardingSuperset = useFeatureFlag('crtb854ForwardingSuperset', false);\n\n const buildReferrals = async () => {\n try {\n // Build the referrals only one time\n if (!isEmpty(selectedPrograms) && isEmpty(referrals) && !isBuildingRef.current) {\n isBuildingRef.current = true;\n\n setIsLoading(true);\n let assistanceRequest = null;\n\n if (assistanceRequestId) {\n const assistanceRequestResponse = await coreApi.findRecord('assistance_request', assistanceRequestId, {\n include: 'case',\n })\n assistanceRequest = get(assistanceRequestResponse, 'data.data', null);\n }\n\n // Add an id and status to unlisted programs(programs without an id are unlisted programs)\n // Remove unlisted programs if the feature flag is disabled\n let selectedProgramsFiltered = hint542SupersetUnlistedPrograms ? addIdToUnlistedPrograms(selectedPrograms) : selectedPrograms.filter(obj => obj.id);\n\n const newReferrals = buildReferralsFromPrograms(selectedProgramsFiltered, currentProvider, draftState);\n\n // Loop over the referrals and if the program is unlisted, replace it with the selected program,\n // because it has the name and service data\n addProgramToReferral(newReferrals, selectedProgramsFiltered, isUnlistedProgram);\n\n // Create a copy of the referrals to avoid mutating the original data. To be able to get data from the programs\n const newReferralsClone = JSON.parse(JSON.stringify(newReferrals));\n const newReferralsCloneWithoutUnlisted = newReferralsClone.map((referral) => {\n referral.programs = referral.programs.filter((p) => !p.id.includes('unlisted'));\n return referral;\n });\n\n await coreApi.populateRelationship('programs', 'program', newReferralsCloneWithoutUnlisted);\n\n // Get all the programs from the referrals\n const flatPrograms = newReferralsCloneWithoutUnlisted.flatMap(referral => referral.programs);\n\n // Loop over the original referrals object and if the program is not unlisted, \n // replace it with the program from the flatPrograms array, since flatPrograms has all the data\n addProgramToReferral(newReferrals, flatPrograms, (p) => !isUnlistedProgram(p));\n\n const filteredReferrals = filterProgramsReceivingReferrals(newReferrals);\n await optimizedPopulateServices(filteredReferrals, queryClient);\n\n let providerPromises = [], networkPromises = [], feeSchedulePromises = [];\n\n filteredReferrals.forEach((referral) => {\n referral.programs.forEach((program) => {\n providerPromises.push(coreApi.populateRelationship('provider', 'provider', program));\n feeSchedulePromises.push(coreApi.populateRelationship('fee_schedule_program', 'fee_schedule_program', program));\n })\n });\n\n await Promise.all(providerPromises).then((programs) => {\n programs.forEach(async (program) => {\n networkPromises.push(coreApi.populateRelationship('networks', 'network', program.provider));\n })\n });\n\n await Promise.all(feeSchedulePromises);\n await Promise.all(networkPromises);\n\n const groupedReferrals = buildGroupedReferrals(filteredReferrals, currentProvider);\n\n if (!isEmpty(assistanceRequest)) {\n groupedReferrals[0].description = assistanceRequest?.description || assistanceRequest?.case?.description;\n }\n\n if ((crtb854ForwardingSuperset || isAssistanceRequest) && referralDescription) {\n groupedReferrals.forEach(referral => {\n referral.description = referralDescription;\n });\n }\n\n dispatch(setData({\n assistanceRequestId: assistanceRequest,\n referrals: groupedReferrals\n }))\n\n if (onReferralsBuilt) {\n onReferralsBuilt(groupedReferrals);\n }\n }\n } catch (err) { \n console.error(\"Error in buildReferrals:\", err);\n }\n finally {\n isBuildingRef.current = false;\n setIsLoading(false);\n }\n }\n\n useEffect(() => {\n buildReferrals();\n }, [selectedPrograms])\n\n return {\n referrals,\n isLoading\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useBuildReferrals.js","names":["useEffect","useRef","useState","useQueryClient","setData","useAppCreateReferralContext","addProgramToReferral","addIdToUnlistedPrograms","buildReferralsFromPrograms","isUnlistedProgram","filterProgramsReceivingReferrals","referralIsOON","isEmpty","get","buildGroupedReferrals","coreApi","useFeatureFlag","fetchPrimaryWorkers","extractUniqueServiceIds","referrals","Set","map","referral","_referral$service","service","id","filter","Boolean","fetchServicesBatch","queryClient","serviceIds","cacheKey","sort","join","fetchQuery","query","ids","assignServicesToPrograms","servicesMap","forEach","_referral$service2","shouldHydratePrimaryWorker","primaryWorker","getPrimaryWorkersForProvider","primaryWorkersByProvider","providerId","currentEmployee","primary_workers","primaryWorkers","applyDefaultPrimaryWorker","_objectSpread","hydrateDefaultPrimaryWorkers","Promise","all","sendingProvider","find","worker","optimizedPopulateServices","uniqueServiceIds","length","result","services","Map","s","useBuildReferrals","onReferralsBuilt","dispatch","state","selectedPrograms","currentProvider","draftState","assistanceRequestId","referralDescription","isAssistanceRequest","isLoading","setIsLoading","isBuildingRef","hint542SupersetUnlistedPrograms","crtb854ForwardingSuperset","buildReferrals","current","assistanceRequest","assistanceRequestResponse","findRecord","include","selectedProgramsFiltered","obj","newReferrals","newReferralsClone","JSON","parse","stringify","newReferralsCloneWithoutUnlisted","programs","p","includes","populateRelationship","flatPrograms","flatMap","filteredReferrals","providerPromises","networkPromises","feeSchedulePromises","program","push","then","provider","groupedReferrals","_assistanceRequest","_assistanceRequest2","description","case","err","console","error"],"sources":["../../../../src/pages/builder/hooks/useBuildReferrals.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useQueryClient } from 'react-query';\nimport { setData, useAppCreateReferralContext } from '../../../context/AppCreateReferralProvider';\nimport {\n addProgramToReferral,\n addIdToUnlistedPrograms,\n buildReferralsFromPrograms,\n isUnlistedProgram,\n filterProgramsReceivingReferrals,\n referralIsOON\n} from '../utils';\nimport { isEmpty, get } from 'lodash';\nimport { buildGroupedReferrals } from '../utils/buildGroupedReferrals';\nimport { coreApi } from '../../../api/config';\nimport { useFeatureFlag } from '../../../utils/useFeatureFlag';\nimport fetchPrimaryWorkers from '../../../actions/Referral/fetchPrimaryWorkers';\n\nconst extractUniqueServiceIds = (referrals) => [...new Set(\n referrals.map(referral => referral.service?.id).filter(Boolean)\n)];\n\nconst fetchServicesBatch = (queryClient, serviceIds) => {\n const cacheKey = ['services', serviceIds.sort().join(',')];\n return queryClient.fetchQuery(\n cacheKey,\n () => coreApi.query('services', { ids: serviceIds })\n );\n};\n\nconst assignServicesToPrograms = (referrals, servicesMap) => {\n referrals.forEach(referral => {\n const service = servicesMap.get(referral.service?.id);\n if (service) referral.service = service;\n });\n};\n\nconst shouldHydratePrimaryWorker = (referral) => {\n if (!referralIsOON(referral)) return false;\n\n return !referral.primaryWorker;\n};\n\nconst getPrimaryWorkersForProvider = async (primaryWorkersByProvider, providerId, currentEmployee) => {\n primaryWorkersByProvider[providerId] = primaryWorkersByProvider[providerId] || fetchPrimaryWorkers({\n providerId,\n currentEmployee,\n });\n\n const { primary_workers: primaryWorkers = [] } = await primaryWorkersByProvider[providerId] || {};\n return primaryWorkers;\n};\n\nconst applyDefaultPrimaryWorker = (referral, primaryWorker) => {\n if (!primaryWorker) return referral;\n\n return { ...referral, primaryWorker };\n};\n\nconst hydrateDefaultPrimaryWorkers = async (referrals, currentEmployee) => {\n const primaryWorkersByProvider = {};\n\n return Promise.all(referrals.map(async (referral) => {\n if (!shouldHydratePrimaryWorker(referral)) {\n return referral;\n }\n\n const providerId = referral.sendingProvider.id;\n const primaryWorkers = await getPrimaryWorkersForProvider(\n primaryWorkersByProvider,\n providerId,\n currentEmployee,\n );\n const primaryWorker = primaryWorkers.find((worker) => worker.id === currentEmployee.id);\n\n return applyDefaultPrimaryWorker(referral, primaryWorker);\n }));\n};\n\nconst optimizedPopulateServices = async (referrals, queryClient) => {\n const uniqueServiceIds = extractUniqueServiceIds(referrals);\n if (uniqueServiceIds.length === 0) return;\n\n const result = await fetchServicesBatch(queryClient, uniqueServiceIds);\n const services = get(result, 'response.data.data', get(result, 'data.data', []));\n assignServicesToPrograms(referrals, new Map(services.map(s => [s.id, s])));\n};\n\nexport default function useBuildReferrals(onReferralsBuilt) {\n const { dispatch, state: {\n selectedPrograms,\n referrals,\n currentProvider,\n currentEmployee,\n draftState,\n assistanceRequestId,\n referralDescription,\n isAssistanceRequest,\n } } = useAppCreateReferralContext();\n const [isLoading, setIsLoading] = useState(false);\n const isBuildingRef = useRef(false);\n const queryClient = useQueryClient();\n\n const hint542SupersetUnlistedPrograms = useFeatureFlag('hint542SupersetUnlistedPrograms', false);\n const crtb854ForwardingSuperset = useFeatureFlag('crtb854ForwardingSuperset', false);\n\n const buildReferrals = async () => {\n try {\n // Build the referrals only one time\n if (!isEmpty(selectedPrograms) && isEmpty(referrals) && !isBuildingRef.current) {\n isBuildingRef.current = true;\n\n setIsLoading(true);\n let assistanceRequest = null;\n\n if (assistanceRequestId) {\n const assistanceRequestResponse = await coreApi.findRecord('assistance_request', assistanceRequestId, {\n include: 'case',\n })\n assistanceRequest = get(assistanceRequestResponse, 'data.data', null);\n }\n\n // Add an id and status to unlisted programs(programs without an id are unlisted programs)\n // Remove unlisted programs if the feature flag is disabled\n let selectedProgramsFiltered = hint542SupersetUnlistedPrograms ? addIdToUnlistedPrograms(selectedPrograms) : selectedPrograms.filter(obj => obj.id);\n\n const newReferrals = buildReferralsFromPrograms(selectedProgramsFiltered, currentProvider, draftState);\n\n // Loop over the referrals and if the program is unlisted, replace it with the selected program,\n // because it has the name and service data\n addProgramToReferral(newReferrals, selectedProgramsFiltered, isUnlistedProgram);\n\n // Create a copy of the referrals to avoid mutating the original data. To be able to get data from the programs\n const newReferralsClone = JSON.parse(JSON.stringify(newReferrals));\n const newReferralsCloneWithoutUnlisted = newReferralsClone.map((referral) => {\n referral.programs = referral.programs.filter((p) => !p.id.includes('unlisted'));\n return referral;\n });\n\n await coreApi.populateRelationship('programs', 'program', newReferralsCloneWithoutUnlisted);\n\n // Get all the programs from the referrals\n const flatPrograms = newReferralsCloneWithoutUnlisted.flatMap(referral => referral.programs);\n\n // Loop over the original referrals object and if the program is not unlisted, \n // replace it with the program from the flatPrograms array, since flatPrograms has all the data\n addProgramToReferral(newReferrals, flatPrograms, (p) => !isUnlistedProgram(p));\n\n const filteredReferrals = filterProgramsReceivingReferrals(newReferrals);\n await optimizedPopulateServices(filteredReferrals, queryClient);\n\n let providerPromises = [], networkPromises = [], feeSchedulePromises = [];\n\n filteredReferrals.forEach((referral) => {\n referral.programs.forEach((program) => {\n providerPromises.push(coreApi.populateRelationship('provider', 'provider', program));\n feeSchedulePromises.push(coreApi.populateRelationship('fee_schedule_program', 'fee_schedule_program', program));\n })\n });\n\n await Promise.all(providerPromises).then((programs) => {\n programs.forEach(async (program) => {\n networkPromises.push(coreApi.populateRelationship('networks', 'network', program.provider));\n })\n });\n\n await Promise.all(feeSchedulePromises);\n await Promise.all(networkPromises);\n\n const groupedReferrals = await hydrateDefaultPrimaryWorkers(\n buildGroupedReferrals(filteredReferrals, currentProvider),\n currentEmployee,\n );\n\n if (!isEmpty(assistanceRequest)) {\n groupedReferrals[0].description = assistanceRequest?.description || assistanceRequest?.case?.description;\n }\n\n if ((crtb854ForwardingSuperset || isAssistanceRequest) && referralDescription) {\n groupedReferrals.forEach(referral => {\n referral.description = referralDescription;\n });\n }\n\n dispatch(setData({\n assistanceRequestId: assistanceRequest,\n referrals: groupedReferrals\n }))\n\n if (onReferralsBuilt) {\n onReferralsBuilt(groupedReferrals);\n }\n }\n } catch (err) { \n console.error(\"Error in buildReferrals:\", err);\n }\n finally {\n isBuildingRef.current = false;\n setIsLoading(false);\n }\n }\n\n useEffect(() => {\n buildReferrals();\n }, [selectedPrograms])\n\n return {\n referrals,\n isLoading\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unite-us/app-create-referral",
3
- "version": "0.15.144",
3
+ "version": "0.15.146",
4
4
  "main": "./dist/index.js",
5
5
  "files": [
6
6
  "dist/**"