@unite-us/app-create-referral 0.15.166 → 0.15.168

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/dist/AppReferrals.js +3 -4
  2. package/dist/AppReferrals.js.map +1 -1
  3. package/dist/AppReferrals.test.js +27 -20
  4. package/dist/AppReferrals.test.js.map +1 -1
  5. package/dist/__testUtils__/mockData/utils.js +13 -19
  6. package/dist/__testUtils__/mockData/utils.js.map +1 -1
  7. package/dist/__testUtils__/mockServer/handlers.js +7 -13
  8. package/dist/__testUtils__/mockServer/handlers.js.map +1 -1
  9. package/dist/__testUtils__/test-utils.js +10 -15
  10. package/dist/__testUtils__/test-utils.js.map +1 -1
  11. package/dist/actions/Document/Contact/Group/fileUploadUtils.js +1 -1
  12. package/dist/actions/Document/Contact/Group/fileUploadUtils.js.map +1 -1
  13. package/dist/actions/Group/fetchCoreGroupForms.js +1 -1
  14. package/dist/actions/Group/fetchCoreGroupForms.js.map +1 -1
  15. package/dist/actions/Referral/cannotMoveToReferralReasons.js +10 -11
  16. package/dist/actions/Referral/cannotMoveToReferralReasons.js.map +1 -1
  17. package/dist/actions/Referral/fetchCoreServices.js +19 -25
  18. package/dist/actions/Referral/fetchCoreServices.js.map +1 -1
  19. package/dist/actions/Referral/removeReferralProgram.js +3 -5
  20. package/dist/actions/Referral/removeReferralProgram.js.map +1 -1
  21. package/dist/api/ApiHooks.js +39 -36
  22. package/dist/api/ApiHooks.js.map +1 -1
  23. package/dist/api/config.js +9 -8
  24. package/dist/api/config.js.map +1 -1
  25. package/dist/common/form/CurrencyField/index.js +3 -5
  26. package/dist/common/form/CurrencyField/index.js.map +1 -1
  27. package/dist/common/form/DocumentUploader/components/ContactDocumentsSelector.js +3 -3
  28. package/dist/common/form/DocumentUploader/components/ContactDocumentsSelector.js.map +1 -1
  29. package/dist/common/form/DocumentUploader/components/DocumentsListView.js +1 -1
  30. package/dist/common/form/DocumentUploader/components/DocumentsListView.js.map +1 -1
  31. package/dist/common/form/FileUploadV2/FileUpload.js +27 -15
  32. package/dist/common/form/FileUploadV2/FileUpload.js.map +1 -1
  33. package/dist/common/form/FileUploadV2/FileUpload.test.js +6 -10
  34. package/dist/common/form/FileUploadV2/FileUpload.test.js.map +1 -1
  35. package/dist/common/form/FileUploadV2/components/FilePreviewWrapper.js +6 -7
  36. package/dist/common/form/FileUploadV2/components/FilePreviewWrapper.js.map +1 -1
  37. package/dist/common/form/FormForm/index.js +10 -10
  38. package/dist/common/form/FormForm/index.js.map +1 -1
  39. package/dist/components/DollarAmount.js +2 -2
  40. package/dist/components/DollarAmount.js.map +1 -1
  41. package/dist/components/LineItem.js +1 -1
  42. package/dist/components/LineItem.js.map +1 -1
  43. package/dist/components/ReferralStepper.js +4 -5
  44. package/dist/components/ReferralStepper.js.map +1 -1
  45. package/dist/components/SearchableField.js +3 -4
  46. package/dist/components/SearchableField.js.map +1 -1
  47. package/dist/components/Stepper.js +7 -7
  48. package/dist/components/Stepper.js.map +1 -1
  49. package/dist/components/modal/Dialog.js +15 -10
  50. package/dist/components/modal/Dialog.js.map +1 -1
  51. package/dist/components/service_authorization/AuthorizationSpendCard.js +5 -5
  52. package/dist/components/service_authorization/AuthorizationSpendCard.js.map +1 -1
  53. package/dist/components/service_authorization/CapsInfo.js +10 -10
  54. package/dist/components/service_authorization/CapsInfo.js.map +1 -1
  55. package/dist/components/service_authorization/CaseStatus.js +2 -2
  56. package/dist/components/service_authorization/CaseStatus.js.map +1 -1
  57. package/dist/components/service_authorization/PreviousAuthorizationRequestsDetails.js +1 -2
  58. package/dist/components/service_authorization/PreviousAuthorizationRequestsDetails.js.map +1 -1
  59. package/dist/components/service_authorization/ReferralAuthSpendExpandable.js +2 -2
  60. package/dist/components/service_authorization/ReferralAuthSpendExpandable.js.map +1 -1
  61. package/dist/components/service_authorization/ReferralAuthorizationRequestSummary.js +4 -4
  62. package/dist/components/service_authorization/ReferralAuthorizationRequestSummary.js.map +1 -1
  63. package/dist/components/service_authorization/formatShortDate.js +1 -1
  64. package/dist/components/service_authorization/formatShortDate.js.map +1 -1
  65. package/dist/components/spinners/Spinner/Spinner.js +1 -1
  66. package/dist/components/spinners/Spinner/Spinner.js.map +1 -1
  67. package/dist/context/AppCreateReferralProvider.js +4 -4
  68. package/dist/context/AppCreateReferralProvider.js.map +1 -1
  69. package/dist/context/state.js +14 -6
  70. package/dist/context/state.js.map +1 -1
  71. package/dist/context/withAppCreateReferralContext.js +3 -5
  72. package/dist/context/withAppCreateReferralContext.js.map +1 -1
  73. package/dist/hooks/__tests__/useCreateReferrals.test.js +19 -17
  74. package/dist/hooks/__tests__/useCreateReferrals.test.js.map +1 -1
  75. package/dist/hooks/sendReferral.js +38 -35
  76. package/dist/hooks/sendReferral.js.map +1 -1
  77. package/dist/hooks/useClinicalModificationOptions.js +1 -2
  78. package/dist/hooks/useClinicalModificationOptions.js.map +1 -1
  79. package/dist/hooks/useCreateReferrals.js +107 -90
  80. package/dist/hooks/useCreateReferrals.js.map +1 -1
  81. package/dist/hooks/useCreateResourceList.js +11 -12
  82. package/dist/hooks/useCreateResourceList.js.map +1 -1
  83. package/dist/hooks/useCreateShareEvent.js +2 -2
  84. package/dist/hooks/useCreateShareEvent.js.map +1 -1
  85. package/dist/hooks/useForwardReferral.js +36 -36
  86. package/dist/hooks/useForwardReferral.js.map +1 -1
  87. package/dist/hooks/useUpdateResourceList.js +16 -17
  88. package/dist/hooks/useUpdateResourceList.js.map +1 -1
  89. package/dist/pages/builder/ReferralBuilder.js +32 -31
  90. package/dist/pages/builder/ReferralBuilder.js.map +1 -1
  91. package/dist/pages/builder/ReferralBuilderForm.js +7 -10
  92. package/dist/pages/builder/ReferralBuilderForm.js.map +1 -1
  93. package/dist/pages/builder/ReferralBuilderFormContent.js +43 -36
  94. package/dist/pages/builder/ReferralBuilderFormContent.js.map +1 -1
  95. package/dist/pages/builder/__tests__/AuthorizationRequiredPrograms.test.js +1 -1
  96. package/dist/pages/builder/__tests__/AuthorizationRequiredPrograms.test.js.map +1 -1
  97. package/dist/pages/builder/__tests__/NonSensitiveGroupedPrograms.test.js +16 -16
  98. package/dist/pages/builder/__tests__/NonSensitiveGroupedPrograms.test.js.map +1 -1
  99. package/dist/pages/builder/__tests__/NonSensitiveSingleProgram.test.js +12 -12
  100. package/dist/pages/builder/__tests__/NonSensitiveSingleProgram.test.js.map +1 -1
  101. package/dist/pages/builder/__tests__/ReferralBuilderForm.attachments.test.js +19 -14
  102. package/dist/pages/builder/__tests__/ReferralBuilderForm.attachments.test.js.map +1 -1
  103. package/dist/pages/builder/__tests__/SensitiveProviderGroupedPrograms.test.js +12 -12
  104. package/dist/pages/builder/__tests__/SensitiveProviderGroupedPrograms.test.js.map +1 -1
  105. package/dist/pages/builder/__tests__/SensitiveServiceGroupedPrograms.test.js +1 -1
  106. package/dist/pages/builder/__tests__/SensitiveServiceGroupedPrograms.test.js.map +1 -1
  107. package/dist/pages/builder/__tests__/SensitiveServiceSensitiveProviderGroupedPrograms.test.js +7 -7
  108. package/dist/pages/builder/__tests__/SensitiveServiceSensitiveProviderGroupedPrograms.test.js.map +1 -1
  109. package/dist/pages/builder/__tests__/SensitiveSingleProgram.test.js +15 -17
  110. package/dist/pages/builder/__tests__/SensitiveSingleProgram.test.js.map +1 -1
  111. package/dist/pages/builder/__tests__/buildDraftState.test.js +4 -6
  112. package/dist/pages/builder/__tests__/buildDraftState.test.js.map +1 -1
  113. package/dist/pages/builder/__tests__/buildGroupedReferrals.networkBug.test.js +4 -10
  114. package/dist/pages/builder/__tests__/buildGroupedReferrals.networkBug.test.js.map +1 -1
  115. package/dist/pages/builder/buildDraftState.js +2 -2
  116. package/dist/pages/builder/buildDraftState.js.map +1 -1
  117. package/dist/pages/builder/components/AuthorizationSubform.js +19 -19
  118. package/dist/pages/builder/components/AuthorizationSubform.js.map +1 -1
  119. package/dist/pages/builder/components/ChooseOneServiceTypeModal.js +5 -6
  120. package/dist/pages/builder/components/ChooseOneServiceTypeModal.js.map +1 -1
  121. package/dist/pages/builder/components/ProgramHeader.js +1 -1
  122. package/dist/pages/builder/components/ProgramHeader.js.map +1 -1
  123. package/dist/pages/builder/components/ProgramMenu.js +1 -1
  124. package/dist/pages/builder/components/ProgramMenu.js.map +1 -1
  125. package/dist/pages/builder/components/ReferralBuilderContent.js +5 -4
  126. package/dist/pages/builder/components/ReferralBuilderContent.js.map +1 -1
  127. package/dist/pages/builder/components/ReferralCard.js +11 -11
  128. package/dist/pages/builder/components/ReferralCard.js.map +1 -1
  129. package/dist/pages/builder/components/ReferralClientNeedsField.js +4 -6
  130. package/dist/pages/builder/components/ReferralClientNeedsField.js.map +1 -1
  131. package/dist/pages/builder/components/ReferralProgramCard.js +2 -2
  132. package/dist/pages/builder/components/ReferralProgramCard.js.map +1 -1
  133. package/dist/pages/builder/components/ReferralProgramMenu.js +3 -3
  134. package/dist/pages/builder/components/ReferralProgramMenu.js.map +1 -1
  135. package/dist/pages/builder/constants.js +18 -7
  136. package/dist/pages/builder/constants.js.map +1 -1
  137. package/dist/pages/builder/hooks/useBuildReferrals.js +6 -13
  138. package/dist/pages/builder/hooks/useBuildReferrals.js.map +1 -1
  139. package/dist/pages/builder/hooks/useReferralMutations.js +22 -15
  140. package/dist/pages/builder/hooks/useReferralMutations.js.map +1 -1
  141. package/dist/pages/builder/utils/buildGroupedReferrals.js +14 -25
  142. package/dist/pages/builder/utils/buildGroupedReferrals.js.map +1 -1
  143. package/dist/pages/builder/utils/buildGroupedReferralsHelpers.js +20 -40
  144. package/dist/pages/builder/utils/buildGroupedReferralsHelpers.js.map +1 -1
  145. package/dist/pages/builder/utils/formatProgramDetail.js +16 -18
  146. package/dist/pages/builder/utils/formatProgramDetail.js.map +1 -1
  147. package/dist/pages/builder/utils/referralBuilderFormDraftAuth.js +26 -26
  148. package/dist/pages/builder/utils/referralBuilderFormDraftAuth.js.map +1 -1
  149. package/dist/pages/builder/utils/referralBuilderFormUtils.js +15 -24
  150. package/dist/pages/builder/utils/referralBuilderFormUtils.js.map +1 -1
  151. package/dist/pages/builder/utils/referralBuilderFormValidation.js +20 -24
  152. package/dist/pages/builder/utils/referralBuilderFormValidation.js.map +1 -1
  153. package/dist/pages/builder/utils/referralBuilderUtils.js +20 -34
  154. package/dist/pages/builder/utils/referralBuilderUtils.js.map +1 -1
  155. package/dist/pages/builder/utils.js +45 -64
  156. package/dist/pages/builder/utils.js.map +1 -1
  157. package/dist/pages/review/DropdownMultiplesReferrals.js +12 -14
  158. package/dist/pages/review/DropdownMultiplesReferrals.js.map +1 -1
  159. package/dist/pages/review/ReferralsSent.js +19 -26
  160. package/dist/pages/review/ReferralsSent.js.map +1 -1
  161. package/dist/pages/review/Review.js +69 -88
  162. package/dist/pages/review/Review.js.map +1 -1
  163. package/dist/pages/review/SuccessReferralRedesign.js +2 -2
  164. package/dist/pages/review/SuccessReferralRedesign.js.map +1 -1
  165. package/dist/pages/review/__tests__/ReferralsSent.test.js +16 -16
  166. package/dist/pages/review/__tests__/ReferralsSent.test.js.map +1 -1
  167. package/dist/pages/review/__tests__/Review.test.js +30 -22
  168. package/dist/pages/review/__tests__/Review.test.js.map +1 -1
  169. package/dist/pages/review/constants.js +3 -3
  170. package/dist/pages/review/constants.js.map +1 -1
  171. package/dist/pages/review/referralStatusRedesign.js +5 -6
  172. package/dist/pages/review/referralStatusRedesign.js.map +1 -1
  173. package/dist/pages/supporting-info/SupportingInfo.js +14 -21
  174. package/dist/pages/supporting-info/SupportingInfo.js.map +1 -1
  175. package/dist/utils/attachmentUtils.js +1 -1
  176. package/dist/utils/attachmentUtils.js.map +1 -1
  177. package/dist/utils/handleDraftSaveResponse.js +1 -1
  178. package/dist/utils/handleDraftSaveResponse.js.map +1 -1
  179. package/dist/utils/referralToConsent.js +5 -8
  180. package/dist/utils/referralToConsent.js.map +1 -1
  181. package/dist/utils/validateCostAmount.js +1 -1
  182. package/dist/utils/validateCostAmount.js.map +1 -1
  183. package/dist/utils/validateUnitAmount.js +1 -1
  184. package/dist/utils/validateUnitAmount.js.map +1 -1
  185. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"buildGroupedReferrals.js","names":["every","head","flatMap","isUnlistedReferral","filterNetworks","programIsOffPlatform","programIsOnPlatform","separateSensitiveAndNonSensitiveAuthPrograms","createSameFeeReferrals","createSensitiveProgramReferrals","createNonAuthReferrals","assignSingleNetworkIfAvailable","attachUnlistedProgramToMatchingReferral","buildMultipleNetworkReferrals","buildNoNetworkReferrals","buildSameNetworkReferrals","createReferralSplitter","keepReferralsWithPrograms","splitProgramsByNetworkAvailability","splitReferralsByListingStatus","withPreventUngroup","fn","referral","prevent_ungroup","groupByNetworkImpl","networks","length","network","singleNetworkPrograms","multipleNetworkPrograms","noNetworkPrograms","programs","sameNetworkReferrals","multipleNetworkReferrals","noNetworkReferrals","groupByNetwork","groupByNetworkStatus","map","p","inNetworkPrograms","filter","OONPrograms","_objectSpread","isSensitiveProgram","program","_program$provider","provider","sensitive","groupBySensitivityImpl","groupBySensitivity","isCoordinationCenterProgram","_program$provider2","provider_type","groupByCCImpl","groupByCC","preventGroupingForSensitiveProvider","cloneReferralsWithPrograms","referrals","groupByFunded","fundedWithAuthorizationPrograms","_p$fee_schedule_progr","fee_schedule_program","authorization_required","fundedWithoutAuthorizationPrograms","_p$fee_schedule_progr2","sensitiveAuthPrograms","nonSensitive","nonSensitiveAuthPrograms","sameFeeReferrals","sensitiveProgramReferrals","nonAuthReferrals","groupUnlistedProgramsToReferrals","unlistedReferrals","listedReferrals","listedReferralCopies","unlistedReferralCopies","updatedUnlistedReferrals","unlistedReferral","updatedUnlistedReferralAfterListedMatch","updatedUnlistedReferral","Object","assign","GROUP_OPERATIONS","buildGroupedReferrals","newReferrals","currentProvider","groupedReferrals","reduce","operation"],"sources":["../../../../src/pages/builder/utils/buildGroupedReferrals.js"],"sourcesContent":["import { every, head, flatMap } from 'lodash';\nimport {\n isUnlistedReferral,\n filterNetworks,\n programIsOffPlatform,\n programIsOnPlatform,\n separateSensitiveAndNonSensitiveAuthPrograms,\n createSameFeeReferrals,\n createSensitiveProgramReferrals,\n createNonAuthReferrals,\n} from '../utils';\nimport {\n assignSingleNetworkIfAvailable,\n attachUnlistedProgramToMatchingReferral,\n buildMultipleNetworkReferrals,\n buildNoNetworkReferrals,\n buildSameNetworkReferrals,\n createReferralSplitter,\n keepReferralsWithPrograms,\n splitProgramsByNetworkAvailability,\n splitReferralsByListingStatus,\n} from './buildGroupedReferralsHelpers';\n\n// Grouping Rules:\n// - On- and off-platform programs cannot be grouped\n// - Service must be the same\n// - Programs in coordination centers cannot be grouped\n// - Programs must be in the same network\n// - Programs in sensitive providers cannot be grouped\n// - Programs at the same provider cannot be grouped\n// - Users at sensitive providers cannot group programs\n// - Funded programs that require authroization with the same fee schedule program can be grouped\n// - Unlisted programs can only be grouped with programs in the same service and with off platform referrals\n\nconst withPreventUngroup = (fn) => (referral) => (\n referral.prevent_ungroup ? [referral] : fn(referral)\n);\n\nconst groupByNetworkImpl = (referral) => {\n const networks = filterNetworks(referral);\n // if there is only one possible network, set the referral's network and return the referral\n if (networks.length === 1 || isUnlistedReferral(referral)) {\n referral.network = head(networks);\n return [referral];\n }\n\n const {\n singleNetworkPrograms,\n multipleNetworkPrograms,\n noNetworkPrograms,\n } = splitProgramsByNetworkAvailability(referral.programs);\n\n const sameNetworkReferrals = buildSameNetworkReferrals(referral, singleNetworkPrograms);\n const multipleNetworkReferrals = buildMultipleNetworkReferrals(referral, multipleNetworkPrograms);\n const noNetworkReferrals = buildNoNetworkReferrals(referral, noNetworkPrograms);\n\n return [...multipleNetworkReferrals, ...sameNetworkReferrals, ...noNetworkReferrals];\n}\n\nconst groupByNetwork = withPreventUngroup(groupByNetworkImpl);\n\nconst groupByNetworkStatus = (referral) => {\n if (referral.prevent_ungroup) {\n return [referral];\n }\n // if every program is on-platform or every programs is off-platform, return the referral\n if (every(referral.programs.map(p => programIsOnPlatform(p))) ||\n every(referral.programs.map(p => programIsOffPlatform(p)))) {\n return [referral];\n }\n // divide programs into on- and off-platform referrals\n const inNetworkPrograms = referral.programs.filter(p => programIsOnPlatform(p));\n const OONPrograms = referral.programs.filter(p => programIsOffPlatform(p));\n\n return [\n ...inNetworkPrograms.length ? [{ ...referral, programs: inNetworkPrograms }] : [],\n ...OONPrograms.length ? [{ ...referral, programs: OONPrograms }] : []\n ];\n}\n\nconst isSensitiveProgram = (program) => !!program?.provider?.sensitive;\nconst groupBySensitivityImpl = createReferralSplitter(isSensitiveProgram);\n\nconst groupBySensitivity = withPreventUngroup(groupBySensitivityImpl);\n\nconst isCoordinationCenterProgram = (program) => (\n program?.provider?.provider_type === 'coordination_center'\n);\nconst groupByCCImpl = createReferralSplitter(isCoordinationCenterProgram);\n\nconst groupByCC = withPreventUngroup(groupByCCImpl);\n\nconst preventGroupingForSensitiveProvider = (referral) => {\n assignSingleNetworkIfAvailable(referral);\n const { programs } = referral;\n return programs.length > 1 ?\n programs.map(program => ({ ...referral, programs: [program] })) :\n [referral];\n};\n\nconst cloneReferralsWithPrograms = (referrals) => (\n referrals.map((referral) => ({\n ...referral,\n programs: [...referral.programs],\n }))\n);\n\nconst groupByFunded = (referral) => {\n assignSingleNetworkIfAvailable(referral);\n\n const fundedWithAuthorizationPrograms = referral.programs.filter(p => p.fee_schedule_program?.authorization_required);\n const fundedWithoutAuthorizationPrograms = referral.programs.filter(p => !p.fee_schedule_program?.authorization_required);\n\n const {\n sensitive: sensitiveAuthPrograms,\n nonSensitive: nonSensitiveAuthPrograms,\n } = separateSensitiveAndNonSensitiveAuthPrograms(fundedWithAuthorizationPrograms);\n\n const sameFeeReferrals = createSameFeeReferrals(referral, nonSensitiveAuthPrograms);\n const sensitiveProgramReferrals = createSensitiveProgramReferrals(referral, sensitiveAuthPrograms);\n const nonAuthReferrals = createNonAuthReferrals(referral, fundedWithoutAuthorizationPrograms);\n\n return [...nonAuthReferrals, ...sameFeeReferrals, ...sensitiveProgramReferrals];\n};\n\nconst groupUnlistedProgramsToReferrals = (referrals) => {\n const { unlistedReferrals, listedReferrals } = splitReferralsByListingStatus(referrals);\n\n if (unlistedReferrals.length === 0) {\n return listedReferrals;\n }\n\n const listedReferralCopies = cloneReferralsWithPrograms(listedReferrals);\n const unlistedReferralCopies = cloneReferralsWithPrograms(unlistedReferrals);\n\n const updatedUnlistedReferrals = keepReferralsWithPrograms(\n unlistedReferralCopies.map((unlistedReferral) => {\n const updatedUnlistedReferralAfterListedMatch = attachUnlistedProgramToMatchingReferral(\n unlistedReferral,\n listedReferralCopies,\n );\n\n const updatedUnlistedReferral = attachUnlistedProgramToMatchingReferral(\n updatedUnlistedReferralAfterListedMatch,\n unlistedReferralCopies.filter((referral) => referral !== unlistedReferral),\n );\n\n Object.assign(unlistedReferral, updatedUnlistedReferral);\n\n return unlistedReferral;\n }),\n );\n\n return [...listedReferralCopies, ...updatedUnlistedReferrals];\n}\n\nconst GROUP_OPERATIONS = [\n groupByFunded,\n groupByNetwork,\n groupByNetworkStatus,\n groupBySensitivity,\n groupByCC,\n];\n\nexport const buildGroupedReferrals = (newReferrals, currentProvider) => {\n // if the current provider is sensitive, prevent grouping\n if (currentProvider?.sensitive) {\n return flatMap(newReferrals, preventGroupingForSensitiveProvider);\n }\n\n const groupedReferrals = GROUP_OPERATIONS.reduce(\n (referrals, operation) => flatMap(referrals, operation),\n newReferrals,\n );\n\n return groupUnlistedProgramsToReferrals(groupedReferrals);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"buildGroupedReferrals.js","names":["every","head","flatMap","isUnlistedReferral","filterNetworks","programIsOffPlatform","programIsOnPlatform","separateSensitiveAndNonSensitiveAuthPrograms","createSameFeeReferrals","createSensitiveProgramReferrals","createNonAuthReferrals","assignSingleNetworkIfAvailable","attachUnlistedProgramToMatchingReferral","buildMultipleNetworkReferrals","buildNoNetworkReferrals","buildSameNetworkReferrals","createReferralSplitter","keepReferralsWithPrograms","splitProgramsByNetworkAvailability","splitReferralsByListingStatus","withPreventUngroup","fn","referral","prevent_ungroup","groupByNetworkImpl","networks","length","network","singleNetworkPrograms","multipleNetworkPrograms","noNetworkPrograms","programs","sameNetworkReferrals","multipleNetworkReferrals","noNetworkReferrals","groupByNetwork","groupByNetworkStatus","map","p","inNetworkPrograms","filter","OONPrograms","isSensitiveProgram","program","provider","sensitive","groupBySensitivityImpl","groupBySensitivity","isCoordinationCenterProgram","provider_type","groupByCCImpl","groupByCC","preventGroupingForSensitiveProvider","cloneReferralsWithPrograms","referrals","groupByFunded","fundedWithAuthorizationPrograms","fee_schedule_program","authorization_required","fundedWithoutAuthorizationPrograms","sensitiveAuthPrograms","nonSensitive","nonSensitiveAuthPrograms","sameFeeReferrals","sensitiveProgramReferrals","nonAuthReferrals","groupUnlistedProgramsToReferrals","unlistedReferrals","listedReferrals","listedReferralCopies","unlistedReferralCopies","updatedUnlistedReferrals","unlistedReferral","updatedUnlistedReferralAfterListedMatch","updatedUnlistedReferral","Object","assign","GROUP_OPERATIONS","buildGroupedReferrals","newReferrals","currentProvider","groupedReferrals","reduce","operation"],"sources":["../../../../src/pages/builder/utils/buildGroupedReferrals.js"],"sourcesContent":["import { every, head, flatMap } from 'lodash';\nimport {\n isUnlistedReferral,\n filterNetworks,\n programIsOffPlatform,\n programIsOnPlatform,\n separateSensitiveAndNonSensitiveAuthPrograms,\n createSameFeeReferrals,\n createSensitiveProgramReferrals,\n createNonAuthReferrals,\n} from '../utils';\nimport {\n assignSingleNetworkIfAvailable,\n attachUnlistedProgramToMatchingReferral,\n buildMultipleNetworkReferrals,\n buildNoNetworkReferrals,\n buildSameNetworkReferrals,\n createReferralSplitter,\n keepReferralsWithPrograms,\n splitProgramsByNetworkAvailability,\n splitReferralsByListingStatus,\n} from './buildGroupedReferralsHelpers';\n\n// Grouping Rules:\n// - On- and off-platform programs cannot be grouped\n// - Service must be the same\n// - Programs in coordination centers cannot be grouped\n// - Programs must be in the same network\n// - Programs in sensitive providers cannot be grouped\n// - Programs at the same provider cannot be grouped\n// - Users at sensitive providers cannot group programs\n// - Funded programs that require authroization with the same fee schedule program can be grouped\n// - Unlisted programs can only be grouped with programs in the same service and with off platform referrals\n\nconst withPreventUngroup = (fn) => (referral) => (\n referral.prevent_ungroup ? [referral] : fn(referral)\n);\n\nconst groupByNetworkImpl = (referral) => {\n const networks = filterNetworks(referral);\n // if there is only one possible network, set the referral's network and return the referral\n if (networks.length === 1 || isUnlistedReferral(referral)) {\n referral.network = head(networks);\n return [referral];\n }\n\n const {\n singleNetworkPrograms,\n multipleNetworkPrograms,\n noNetworkPrograms,\n } = splitProgramsByNetworkAvailability(referral.programs);\n\n const sameNetworkReferrals = buildSameNetworkReferrals(referral, singleNetworkPrograms);\n const multipleNetworkReferrals = buildMultipleNetworkReferrals(referral, multipleNetworkPrograms);\n const noNetworkReferrals = buildNoNetworkReferrals(referral, noNetworkPrograms);\n\n return [...multipleNetworkReferrals, ...sameNetworkReferrals, ...noNetworkReferrals];\n}\n\nconst groupByNetwork = withPreventUngroup(groupByNetworkImpl);\n\nconst groupByNetworkStatus = (referral) => {\n if (referral.prevent_ungroup) {\n return [referral];\n }\n // if every program is on-platform or every programs is off-platform, return the referral\n if (every(referral.programs.map(p => programIsOnPlatform(p))) ||\n every(referral.programs.map(p => programIsOffPlatform(p)))) {\n return [referral];\n }\n // divide programs into on- and off-platform referrals\n const inNetworkPrograms = referral.programs.filter(p => programIsOnPlatform(p));\n const OONPrograms = referral.programs.filter(p => programIsOffPlatform(p));\n\n return [\n ...inNetworkPrograms.length ? [{ ...referral, programs: inNetworkPrograms }] : [],\n ...OONPrograms.length ? [{ ...referral, programs: OONPrograms }] : []\n ];\n}\n\nconst isSensitiveProgram = (program) => !!program?.provider?.sensitive;\nconst groupBySensitivityImpl = createReferralSplitter(isSensitiveProgram);\n\nconst groupBySensitivity = withPreventUngroup(groupBySensitivityImpl);\n\nconst isCoordinationCenterProgram = (program) => (\n program?.provider?.provider_type === 'coordination_center'\n);\nconst groupByCCImpl = createReferralSplitter(isCoordinationCenterProgram);\n\nconst groupByCC = withPreventUngroup(groupByCCImpl);\n\nconst preventGroupingForSensitiveProvider = (referral) => {\n assignSingleNetworkIfAvailable(referral);\n const { programs } = referral;\n return programs.length > 1 ?\n programs.map(program => ({ ...referral, programs: [program] })) :\n [referral];\n};\n\nconst cloneReferralsWithPrograms = (referrals) => (\n referrals.map((referral) => ({\n ...referral,\n programs: [...referral.programs],\n }))\n);\n\nconst groupByFunded = (referral) => {\n assignSingleNetworkIfAvailable(referral);\n\n const fundedWithAuthorizationPrograms = referral.programs.filter(p => p.fee_schedule_program?.authorization_required);\n const fundedWithoutAuthorizationPrograms = referral.programs.filter(p => !p.fee_schedule_program?.authorization_required);\n\n const {\n sensitive: sensitiveAuthPrograms,\n nonSensitive: nonSensitiveAuthPrograms,\n } = separateSensitiveAndNonSensitiveAuthPrograms(fundedWithAuthorizationPrograms);\n\n const sameFeeReferrals = createSameFeeReferrals(referral, nonSensitiveAuthPrograms);\n const sensitiveProgramReferrals = createSensitiveProgramReferrals(referral, sensitiveAuthPrograms);\n const nonAuthReferrals = createNonAuthReferrals(referral, fundedWithoutAuthorizationPrograms);\n\n return [...nonAuthReferrals, ...sameFeeReferrals, ...sensitiveProgramReferrals];\n};\n\nconst groupUnlistedProgramsToReferrals = (referrals) => {\n const { unlistedReferrals, listedReferrals } = splitReferralsByListingStatus(referrals);\n\n if (unlistedReferrals.length === 0) {\n return listedReferrals;\n }\n\n const listedReferralCopies = cloneReferralsWithPrograms(listedReferrals);\n const unlistedReferralCopies = cloneReferralsWithPrograms(unlistedReferrals);\n\n const updatedUnlistedReferrals = keepReferralsWithPrograms(\n unlistedReferralCopies.map((unlistedReferral) => {\n const updatedUnlistedReferralAfterListedMatch = attachUnlistedProgramToMatchingReferral(\n unlistedReferral,\n listedReferralCopies,\n );\n\n const updatedUnlistedReferral = attachUnlistedProgramToMatchingReferral(\n updatedUnlistedReferralAfterListedMatch,\n unlistedReferralCopies.filter((referral) => referral !== unlistedReferral),\n );\n\n Object.assign(unlistedReferral, updatedUnlistedReferral);\n\n return unlistedReferral;\n }),\n );\n\n return [...listedReferralCopies, ...updatedUnlistedReferrals];\n}\n\nconst GROUP_OPERATIONS = [\n groupByFunded,\n groupByNetwork,\n groupByNetworkStatus,\n groupBySensitivity,\n groupByCC,\n];\n\nexport const buildGroupedReferrals = (newReferrals, currentProvider) => {\n // if the current provider is sensitive, prevent grouping\n if (currentProvider?.sensitive) {\n return flatMap(newReferrals, preventGroupingForSensitiveProvider);\n }\n\n const groupedReferrals = GROUP_OPERATIONS.reduce(\n (referrals, operation) => flatMap(referrals, operation),\n newReferrals,\n );\n\n return groupUnlistedProgramsToReferrals(groupedReferrals);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,14 +1,13 @@
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; }
4
1
  import { every, groupBy, head } from 'lodash';
5
2
  import { OFF_PLATFORM_REFERRALS_ONLY } from '../constants';
6
3
  import { filterNetworks, isUnlistedProgram } from '../utils';
7
4
  export const createReferralWithPrograms = function (referral, programs) {
8
5
  let extraFields = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
9
- return _objectSpread(_objectSpread({}, referral), {}, {
10
- programs
11
- }, extraFields);
6
+ return {
7
+ ...referral,
8
+ programs,
9
+ ...extraFields
10
+ };
12
11
  };
13
12
  export const createSingleProgramReferral = function (referral, program) {
14
13
  let extraFields = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
@@ -21,40 +20,26 @@ export const assignSingleNetworkIfAvailable = referral => {
21
20
  }
22
21
  };
23
22
  export const getReferralNetworkForProgram = (referral, program) => {
24
- const networkOptions = filterNetworks(_objectSpread(_objectSpread({}, referral), {}, {
23
+ const networkOptions = filterNetworks({
24
+ ...referral,
25
25
  programs: [program]
26
- }));
26
+ });
27
27
  if (networkOptions.length === 1) {
28
28
  return head(networkOptions);
29
29
  }
30
- return networkOptions.find(network => {
31
- var _referral$network;
32
- return network.id === ((_referral$network = referral.network) === null || _referral$network === void 0 ? void 0 : _referral$network.id);
33
- }) || null;
34
- };
35
- const hasSingleNetwork = program => {
36
- var _program$provider;
37
- return ((_program$provider = program.provider) === null || _program$provider === void 0 || (_program$provider = _program$provider.networks) === null || _program$provider === void 0 ? void 0 : _program$provider.length) === 1;
38
- };
39
- const hasMultipleNetworks = program => {
40
- var _program$provider2;
41
- return ((_program$provider2 = program.provider) === null || _program$provider2 === void 0 || (_program$provider2 = _program$provider2.networks) === null || _program$provider2 === void 0 ? void 0 : _program$provider2.length) > 1;
42
- };
43
- const hasNoNetworks = program => {
44
- var _program$provider3;
45
- return !((_program$provider3 = program.provider) !== null && _program$provider3 !== void 0 && (_program$provider3 = _program$provider3.networks) !== null && _program$provider3 !== void 0 && _program$provider3.length);
30
+ return networkOptions.find(network => network.id === referral.network?.id) || null;
46
31
  };
32
+ const hasSingleNetwork = program => program.provider?.networks?.length === 1;
33
+ const hasMultipleNetworks = program => program.provider?.networks?.length > 1;
34
+ const hasNoNetworks = program => !program.provider?.networks?.length;
47
35
  export const splitProgramsByNetworkAvailability = programs => ({
48
36
  singleNetworkPrograms: programs.filter(hasSingleNetwork),
49
37
  multipleNetworkPrograms: programs.filter(hasMultipleNetworks),
50
38
  noNetworkPrograms: programs.filter(hasNoNetworks)
51
39
  });
52
- export const buildSameNetworkReferrals = (referral, programs) => Object.values(groupBy(programs, 'provider.networks[0].id')).map(groupedPrograms => {
53
- var _groupedPrograms$0$pr;
54
- return createReferralWithPrograms(referral, groupedPrograms, {
55
- network: head((_groupedPrograms$0$pr = groupedPrograms[0].provider) === null || _groupedPrograms$0$pr === void 0 ? void 0 : _groupedPrograms$0$pr.networks)
56
- });
57
- });
40
+ export const buildSameNetworkReferrals = (referral, programs) => Object.values(groupBy(programs, 'provider.networks[0].id')).map(groupedPrograms => createReferralWithPrograms(referral, groupedPrograms, {
41
+ network: head(groupedPrograms[0].provider?.networks)
42
+ }));
58
43
  export const buildMultipleNetworkReferrals = (referral, programs) => programs.map(program => createSingleProgramReferral(referral, program, {
59
44
  network: getReferralNetworkForProgram(referral, program)
60
45
  }));
@@ -90,10 +75,7 @@ export const splitReferralsByListingStatus = referrals => {
90
75
  unlistedReferrals
91
76
  };
92
77
  };
93
- const matchesOffPlatformService = (unlistedReferral, referral) => {
94
- var _unlistedReferral$pro, _referral$programs$;
95
- return ((_unlistedReferral$pro = unlistedReferral.programs[0]) === null || _unlistedReferral$pro === void 0 ? void 0 : _unlistedReferral$pro.services[0]) === referral.service.id && ((_referral$programs$ = referral.programs[0]) === null || _referral$programs$ === void 0 || (_referral$programs$ = _referral$programs$.status) === null || _referral$programs$ === void 0 ? void 0 : _referral$programs$.toLowerCase()) === OFF_PLATFORM_REFERRALS_ONLY;
96
- };
78
+ const matchesOffPlatformService = (unlistedReferral, referral) => unlistedReferral.programs[0]?.services[0] === referral.service.id && referral.programs[0]?.status?.toLowerCase() === OFF_PLATFORM_REFERRALS_ONLY;
97
79
  export const attachUnlistedProgramToMatchingReferral = (unlistedReferral, referrals) => {
98
80
  const unlistedProgram = unlistedReferral.programs[0];
99
81
  const matchingReferral = referrals.find(referral => matchesOffPlatformService(unlistedReferral, referral));
@@ -101,12 +83,10 @@ export const attachUnlistedProgramToMatchingReferral = (unlistedReferral, referr
101
83
  return unlistedReferral;
102
84
  }
103
85
  matchingReferral.programs.push(unlistedProgram);
104
- return _objectSpread(_objectSpread({}, unlistedReferral), {}, {
86
+ return {
87
+ ...unlistedReferral,
105
88
  programs: unlistedReferral.programs.slice(1)
106
- });
89
+ };
107
90
  };
108
- export const keepReferralsWithPrograms = referrals => referrals.filter(referral => {
109
- var _referral$programs;
110
- return (referral === null || referral === void 0 || (_referral$programs = referral.programs) === null || _referral$programs === void 0 ? void 0 : _referral$programs.length) > 0;
111
- });
91
+ export const keepReferralsWithPrograms = referrals => referrals.filter(referral => referral?.programs?.length > 0);
112
92
  //# sourceMappingURL=buildGroupedReferralsHelpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildGroupedReferralsHelpers.js","names":["every","groupBy","head","OFF_PLATFORM_REFERRALS_ONLY","filterNetworks","isUnlistedProgram","createReferralWithPrograms","referral","programs","extraFields","arguments","length","undefined","_objectSpread","createSingleProgramReferral","program","assignSingleNetworkIfAvailable","networks","network","getReferralNetworkForProgram","networkOptions","find","_referral$network","id","hasSingleNetwork","_program$provider","provider","hasMultipleNetworks","_program$provider2","hasNoNetworks","_program$provider3","splitProgramsByNetworkAvailability","singleNetworkPrograms","filter","multipleNetworkPrograms","noNetworkPrograms","buildSameNetworkReferrals","Object","values","map","groupedPrograms","_groupedPrograms$0$pr","buildMultipleNetworkReferrals","buildNoNetworkReferrals","shouldReturnReferralAsIs","predicate","splitReferralByProgramPredicate","matchingPrograms","remainingPrograms","createSplitReferrals","createReferralSplitter","splitReferralsByListingStatus","referrals","listedReferrals","unlistedReferrals","forEach","push","matchesOffPlatformService","unlistedReferral","_unlistedReferral$pro","_referral$programs$","services","service","status","toLowerCase","attachUnlistedProgramToMatchingReferral","unlistedProgram","matchingReferral","slice","keepReferralsWithPrograms","_referral$programs"],"sources":["../../../../src/pages/builder/utils/buildGroupedReferralsHelpers.js"],"sourcesContent":["import { every, groupBy, head } from 'lodash';\nimport { OFF_PLATFORM_REFERRALS_ONLY } from '../constants';\nimport { filterNetworks, isUnlistedProgram } from '../utils';\n\nexport const createReferralWithPrograms = (referral, programs, extraFields = {}) => ({\n ...referral,\n programs,\n ...extraFields,\n});\n\nexport const createSingleProgramReferral = (referral, program, extraFields = {}) => (\n createReferralWithPrograms(referral, [program], extraFields)\n);\n\nexport const assignSingleNetworkIfAvailable = (referral) => {\n const networks = filterNetworks(referral);\n\n if (networks.length === 1) {\n referral.network = head(networks);\n }\n};\n\nexport const getReferralNetworkForProgram = (referral, program) => {\n const networkOptions = filterNetworks({ ...referral, programs: [program] });\n\n if (networkOptions.length === 1) {\n return head(networkOptions);\n }\n\n return networkOptions.find((network) => network.id === referral.network?.id) || null;\n};\n\nconst hasSingleNetwork = (program) => program.provider?.networks?.length === 1;\nconst hasMultipleNetworks = (program) => program.provider?.networks?.length > 1;\nconst hasNoNetworks = (program) => !program.provider?.networks?.length;\n\nexport const splitProgramsByNetworkAvailability = (programs) => ({\n singleNetworkPrograms: programs.filter(hasSingleNetwork),\n multipleNetworkPrograms: programs.filter(hasMultipleNetworks),\n noNetworkPrograms: programs.filter(hasNoNetworks),\n});\n\nexport const buildSameNetworkReferrals = (referral, programs) => (\n Object.values(groupBy(programs, 'provider.networks[0].id')).map((groupedPrograms) => (\n createReferralWithPrograms(referral, groupedPrograms, {\n network: head(groupedPrograms[0].provider?.networks),\n })\n ))\n);\n\nexport const buildMultipleNetworkReferrals = (referral, programs) => (\n programs.map((program) => (\n createSingleProgramReferral(referral, program, {\n network: getReferralNetworkForProgram(referral, program),\n })\n ))\n);\n\nexport const buildNoNetworkReferrals = (referral, programs) => (\n programs.map((program) => createSingleProgramReferral(referral, program))\n);\n\nexport const shouldReturnReferralAsIs = (referral, predicate) => (\n every(referral.programs, (program) => !predicate(program)) ||\n (referral.programs.length === 1 && predicate(head(referral.programs)))\n);\n\nexport const splitReferralByProgramPredicate = (referral, predicate) => ({\n matchingPrograms: referral.programs.filter(predicate),\n remainingPrograms: referral.programs.filter((program) => !predicate(program)),\n});\n\nexport const createSplitReferrals = (referral, matchingPrograms, remainingPrograms) => (\n [\n ...matchingPrograms.map((program) => createSingleProgramReferral(referral, program)),\n ...(remainingPrograms.length > 0 ? [createReferralWithPrograms(referral, remainingPrograms)] : []),\n ]\n);\n\nexport const createReferralSplitter = (predicate) => (referral) => {\n if (shouldReturnReferralAsIs(referral, predicate)) {\n return [referral];\n }\n\n const { matchingPrograms, remainingPrograms } = splitReferralByProgramPredicate(\n referral,\n predicate,\n );\n\n return createSplitReferrals(referral, matchingPrograms, remainingPrograms);\n};\n\nexport const splitReferralsByListingStatus = (referrals) => {\n const listedReferrals = [];\n const unlistedReferrals = [];\n\n referrals.forEach((referral) => {\n if (every(referral.programs, isUnlistedProgram)) {\n unlistedReferrals.push(referral);\n return;\n }\n\n listedReferrals.push(referral);\n });\n\n return { listedReferrals, unlistedReferrals };\n};\n\nconst matchesOffPlatformService = (unlistedReferral, referral) => (\n unlistedReferral.programs[0]?.services[0] === referral.service.id &&\n referral.programs[0]?.status?.toLowerCase() === OFF_PLATFORM_REFERRALS_ONLY\n);\n\nexport const attachUnlistedProgramToMatchingReferral = (unlistedReferral, referrals) => {\n const unlistedProgram = unlistedReferral.programs[0];\n const matchingReferral = referrals.find((referral) => (\n matchesOffPlatformService(unlistedReferral, referral)\n ));\n\n if (!unlistedProgram || !matchingReferral) {\n return unlistedReferral;\n }\n\n matchingReferral.programs.push(unlistedProgram);\n\n return {\n ...unlistedReferral,\n programs: unlistedReferral.programs.slice(1),\n };\n};\n\nexport const keepReferralsWithPrograms = (referrals) => (\n referrals.filter((referral) => referral?.programs?.length > 0)\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"buildGroupedReferralsHelpers.js","names":["every","groupBy","head","OFF_PLATFORM_REFERRALS_ONLY","filterNetworks","isUnlistedProgram","createReferralWithPrograms","referral","programs","extraFields","arguments","length","undefined","createSingleProgramReferral","program","assignSingleNetworkIfAvailable","networks","network","getReferralNetworkForProgram","networkOptions","find","id","hasSingleNetwork","provider","hasMultipleNetworks","hasNoNetworks","splitProgramsByNetworkAvailability","singleNetworkPrograms","filter","multipleNetworkPrograms","noNetworkPrograms","buildSameNetworkReferrals","Object","values","map","groupedPrograms","buildMultipleNetworkReferrals","buildNoNetworkReferrals","shouldReturnReferralAsIs","predicate","splitReferralByProgramPredicate","matchingPrograms","remainingPrograms","createSplitReferrals","createReferralSplitter","splitReferralsByListingStatus","referrals","listedReferrals","unlistedReferrals","forEach","push","matchesOffPlatformService","unlistedReferral","services","service","status","toLowerCase","attachUnlistedProgramToMatchingReferral","unlistedProgram","matchingReferral","slice","keepReferralsWithPrograms"],"sources":["../../../../src/pages/builder/utils/buildGroupedReferralsHelpers.js"],"sourcesContent":["import { every, groupBy, head } from 'lodash';\nimport { OFF_PLATFORM_REFERRALS_ONLY } from '../constants';\nimport { filterNetworks, isUnlistedProgram } from '../utils';\n\nexport const createReferralWithPrograms = (referral, programs, extraFields = {}) => ({\n ...referral,\n programs,\n ...extraFields,\n});\n\nexport const createSingleProgramReferral = (referral, program, extraFields = {}) => (\n createReferralWithPrograms(referral, [program], extraFields)\n);\n\nexport const assignSingleNetworkIfAvailable = (referral) => {\n const networks = filterNetworks(referral);\n\n if (networks.length === 1) {\n referral.network = head(networks);\n }\n};\n\nexport const getReferralNetworkForProgram = (referral, program) => {\n const networkOptions = filterNetworks({ ...referral, programs: [program] });\n\n if (networkOptions.length === 1) {\n return head(networkOptions);\n }\n\n return networkOptions.find((network) => network.id === referral.network?.id) || null;\n};\n\nconst hasSingleNetwork = (program) => program.provider?.networks?.length === 1;\nconst hasMultipleNetworks = (program) => program.provider?.networks?.length > 1;\nconst hasNoNetworks = (program) => !program.provider?.networks?.length;\n\nexport const splitProgramsByNetworkAvailability = (programs) => ({\n singleNetworkPrograms: programs.filter(hasSingleNetwork),\n multipleNetworkPrograms: programs.filter(hasMultipleNetworks),\n noNetworkPrograms: programs.filter(hasNoNetworks),\n});\n\nexport const buildSameNetworkReferrals = (referral, programs) => (\n Object.values(groupBy(programs, 'provider.networks[0].id')).map((groupedPrograms) => (\n createReferralWithPrograms(referral, groupedPrograms, {\n network: head(groupedPrograms[0].provider?.networks),\n })\n ))\n);\n\nexport const buildMultipleNetworkReferrals = (referral, programs) => (\n programs.map((program) => (\n createSingleProgramReferral(referral, program, {\n network: getReferralNetworkForProgram(referral, program),\n })\n ))\n);\n\nexport const buildNoNetworkReferrals = (referral, programs) => (\n programs.map((program) => createSingleProgramReferral(referral, program))\n);\n\nexport const shouldReturnReferralAsIs = (referral, predicate) => (\n every(referral.programs, (program) => !predicate(program)) ||\n (referral.programs.length === 1 && predicate(head(referral.programs)))\n);\n\nexport const splitReferralByProgramPredicate = (referral, predicate) => ({\n matchingPrograms: referral.programs.filter(predicate),\n remainingPrograms: referral.programs.filter((program) => !predicate(program)),\n});\n\nexport const createSplitReferrals = (referral, matchingPrograms, remainingPrograms) => (\n [\n ...matchingPrograms.map((program) => createSingleProgramReferral(referral, program)),\n ...(remainingPrograms.length > 0 ? [createReferralWithPrograms(referral, remainingPrograms)] : []),\n ]\n);\n\nexport const createReferralSplitter = (predicate) => (referral) => {\n if (shouldReturnReferralAsIs(referral, predicate)) {\n return [referral];\n }\n\n const { matchingPrograms, remainingPrograms } = splitReferralByProgramPredicate(\n referral,\n predicate,\n );\n\n return createSplitReferrals(referral, matchingPrograms, remainingPrograms);\n};\n\nexport const splitReferralsByListingStatus = (referrals) => {\n const listedReferrals = [];\n const unlistedReferrals = [];\n\n referrals.forEach((referral) => {\n if (every(referral.programs, isUnlistedProgram)) {\n unlistedReferrals.push(referral);\n return;\n }\n\n listedReferrals.push(referral);\n });\n\n return { listedReferrals, unlistedReferrals };\n};\n\nconst matchesOffPlatformService = (unlistedReferral, referral) => (\n unlistedReferral.programs[0]?.services[0] === referral.service.id &&\n referral.programs[0]?.status?.toLowerCase() === OFF_PLATFORM_REFERRALS_ONLY\n);\n\nexport const attachUnlistedProgramToMatchingReferral = (unlistedReferral, referrals) => {\n const unlistedProgram = unlistedReferral.programs[0];\n const matchingReferral = referrals.find((referral) => (\n matchesOffPlatformService(unlistedReferral, referral)\n ));\n\n if (!unlistedProgram || !matchingReferral) {\n return unlistedReferral;\n }\n\n matchingReferral.programs.push(unlistedProgram);\n\n return {\n ...unlistedReferral,\n programs: unlistedReferral.programs.slice(1),\n };\n};\n\nexport const keepReferralsWithPrograms = (referrals) => (\n referrals.filter((referral) => referral?.programs?.length > 0)\n);\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,3 @@
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; }
4
1
  import { isEmpty } from 'lodash';
5
2
  import { ageRangeConverters } from '@unite-us/app-components';
6
3
  import { SEARCH_ROLES, SERVICE_AREA_TYPES, STATIC_FILTER_OPTIONS } from '../../../constants';
@@ -25,7 +22,7 @@ const parseAge = _ref => {
25
22
  max_months
26
23
  } = _ref;
27
24
  if (!min_months && !max_months) return '';
28
- return processAgeText(...convertApiAgeRangeToUnits("".concat(min_months, "...").concat(max_months)));
25
+ return processAgeText(...convertApiAgeRangeToUnits(`${min_months}...${max_months}`));
29
26
  };
30
27
  const mapValuesToLabels = (values, options) => {
31
28
  return values.map(value => {
@@ -64,12 +61,12 @@ const getProgramProps = async _ref2 => {
64
61
  suggest_edit_enabled,
65
62
  id
66
63
  } = _ref2;
67
- const hasRequirements = !!(age_requirements !== null && age_requirements !== void 0 && age_requirements.min_months) || !!(age_requirements !== null && age_requirements !== void 0 && age_requirements.max_months) || !!city_requirements.length || !!county_requirements.length || !!gender_requirements.length || !!population_restrictions.length || !!postal_code_requirements.length || !!state_requirements.length;
68
- const hasAccessibility = !!delivery_options.length || !!languages.length || !!population_specializations.length || !!(age_specializations !== null && age_specializations !== void 0 && age_specializations.min_months) || !!(age_specializations !== null && age_specializations !== void 0 && age_specializations.max_months) || !!accessibility_options.length || !!transportation_options.length || !!payment_options.length;
64
+ const hasRequirements = !!age_requirements?.min_months || !!age_requirements?.max_months || !!city_requirements.length || !!county_requirements.length || !!gender_requirements.length || !!population_restrictions.length || !!postal_code_requirements.length || !!state_requirements.length;
65
+ const hasAccessibility = !!delivery_options.length || !!languages.length || !!population_specializations.length || !!age_specializations?.min_months || !!age_specializations?.max_months || !!accessibility_options.length || !!transportation_options.length || !!payment_options.length;
69
66
  const hasOtherEligibility = !!eligibility_text;
70
67
  const hasEligibility = hasRequirements || hasAccessibility || hasOtherEligibility;
71
68
  const hasContactInfo = !!phone_numbers.length || !!email_addresses.length || !!website_url || !!locations.length;
72
- const hours = selectHours(locations, provider === null || provider === void 0 ? void 0 : provider.hours);
69
+ const hours = selectHours(locations, provider?.hours);
73
70
  const accessibilityLabels = mapValuesToLabels(accessibility_options, ACCESSIBILITY_OPTIONS);
74
71
  const languageLabels = mapValuesToLabels(languages, LANGUAGE_OPTIONS);
75
72
  const transportationLabels = mapValuesToLabels(transportation_options, TRANSPORTATION_OPTIONS);
@@ -77,7 +74,7 @@ const getProgramProps = async _ref2 => {
77
74
  const populationRestrictionLabels = mapValuesToLabels(population_restrictions, POPULATIONS);
78
75
  const populationSpecializationLabels = mapValuesToLabels(population_specializations, POPULATIONS);
79
76
  const deliveryOptionLabels = mapValuesToLabels(delivery_options, PROGRAM_DELIVERY_OPTIONS);
80
- const providersWithServices = await fetchProviderPrograms(provider === null || provider === void 0 ? void 0 : provider.id, id);
77
+ const providersWithServices = await fetchProviderPrograms(provider?.id, id);
81
78
  const appRoles = [SEARCH_ROLES.PAYMENTS];
82
79
  return {
83
80
  name,
@@ -167,22 +164,20 @@ const generateServesThisAreaOption = area => {
167
164
  return US_STATES.find(state => state.value === area.state_abbreviation.toUpperCase()).display_name;
168
165
  };
169
166
  const getMapProps = _ref4 => {
170
- var _locations$find;
171
167
  let {
172
168
  locations = [],
173
169
  service_areas = []
174
170
  } = _ref4;
175
- const closestOrFirstLocation = (_locations$find = locations === null || locations === void 0 ? void 0 : locations.find(loc => loc.is_closest)) !== null && _locations$find !== void 0 ? _locations$find : locations[0];
171
+ const closestOrFirstLocation = locations?.find(loc => loc.is_closest) ?? locations[0];
176
172
  let servingArea = '';
177
- if ((service_areas === null || service_areas === void 0 ? void 0 : service_areas.length) > 0) {
178
- var _service_areas$find;
179
- const area = (_service_areas$find = service_areas.find(a => a.service_area_type !== SERVICE_AREA_TYPES.NATIONAL)) !== null && _service_areas$find !== void 0 ? _service_areas$find : service_areas[0];
173
+ if (service_areas?.length > 0) {
174
+ const area = service_areas.find(a => a.service_area_type !== SERVICE_AREA_TYPES.NATIONAL) ?? service_areas[0];
180
175
  servingArea = generateServesThisAreaOption(area);
181
176
  }
182
177
  const {
183
178
  latitude,
184
179
  longitude
185
- } = closestOrFirstLocation !== null && closestOrFirstLocation !== void 0 ? closestOrFirstLocation : {};
180
+ } = closestOrFirstLocation ?? {};
186
181
  return {
187
182
  latitude,
188
183
  longitude,
@@ -195,10 +190,13 @@ const getMapProps = _ref4 => {
195
190
  // eslint-disable-next-line import/prefer-default-export
196
191
  export const formatForProgramDetail = async program => {
197
192
  const programProps = await getProgramProps(program);
198
- const providerProps = program !== null && program !== void 0 && program.provider ? getProviderProps(program.provider) : {};
193
+ const providerProps = program?.provider ? getProviderProps(program.provider) : {};
199
194
  const mapProps = getMapProps(program);
200
- return _objectSpread(_objectSpread(_objectSpread({
201
- id: program.id
202
- }, programProps), providerProps), mapProps);
195
+ return {
196
+ id: program.id,
197
+ ...programProps,
198
+ ...providerProps,
199
+ ...mapProps
200
+ };
203
201
  };
204
202
  //# sourceMappingURL=formatProgramDetail.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatProgramDetail.js","names":["isEmpty","ageRangeConverters","SEARCH_ROLES","SERVICE_AREA_TYPES","STATIC_FILTER_OPTIONS","selectHours","fetchProviderPrograms","US_STATES","ACCESSIBILITY_OPTIONS","LANGUAGE_OPTIONS","TRANSPORTATION_OPTIONS","PAYMENT_OPTIONS","POPULATIONS","PROGRAM_DELIVERY_OPTIONS","convertApiAgeRangeToUnits","processAgeText","parseAge","_ref","min_months","max_months","concat","mapValuesToLabels","values","options","map","value","option","find","opt","label","join","getProgramProps","_ref2","name","description","eligibility_text","population_restrictions","accessibility_options","delivery_options","payment_options","population_specializations","languages","services","transportation_options","city_requirements","county_requirements","postal_code_requirements","state_requirements","age_specializations","gender_requirements","age_requirements","phone_numbers","email_addresses","website_url","locations","receiving_referrals","provider","offers_specialized_screening","fee_schedule_screenings","suggest_edit_enabled","id","hasRequirements","length","hasAccessibility","hasOtherEligibility","hasEligibility","hasContactInfo","hours","accessibilityLabels","languageLabels","transportationLabels","paymentLabels","populationRestrictionLabels","populationSpecializationLabels","deliveryOptionLabels","providersWithServices","appRoles","PAYMENTS","residency","hasEligibilityText","sort","_a","_b","is_primary","offersSpecializedScreening","feeScheduleScreenings","providerPrograms","favorPrimaryEmail","emailA","emailB","getProviderProps","_ref3","licensed","addresses","sensitive","emailsSortedByPriority","addr","email_address","provider_id","provider_name","provider_description","provider_phone_numbers","provider_email_addresses","provider_website_url","provider_hours","provider_licensed","provider_locations","provider_sensitive","hasOrgInfo","generateServesThisAreaOption","area","service_area_type","NATIONAL","state","state_abbreviation","toUpperCase","display_name","getMapProps","_ref4","_locations$find","service_areas","closestOrFirstLocation","loc","is_closest","servingArea","_service_areas$find","a","latitude","longitude","zoom","hasMap","formatForProgramDetail","program","programProps","providerProps","mapProps","_objectSpread"],"sources":["../../../../src/pages/builder/utils/formatProgramDetail.js"],"sourcesContent":["import { isEmpty } from 'lodash';\nimport { ageRangeConverters } from '@unite-us/app-components';\nimport { SEARCH_ROLES, SERVICE_AREA_TYPES, STATIC_FILTER_OPTIONS } from '../../../constants';\nimport selectHours from '../utils';\nimport fetchProviderPrograms from '../../../actions/Referral/fetchCoreServices';\n\nconst { US_STATES, ACCESSIBILITY_OPTIONS, LANGUAGE_OPTIONS, TRANSPORTATION_OPTIONS, PAYMENT_OPTIONS, POPULATIONS, PROGRAM_DELIVERY_OPTIONS } = STATIC_FILTER_OPTIONS;\nconst { convertApiAgeRangeToUnits, processAgeText } = ageRangeConverters;\nconst parseAge = ({ min_months, max_months }) => {\n if (!min_months && !max_months) return '';\n\n return processAgeText(...convertApiAgeRangeToUnits(`${min_months}...${max_months}`));\n};\n\nconst mapValuesToLabels = (values, options) => {\n return values\n .map((value) => {\n const option = options.find((opt) => opt.value === value);\n return option ? option.label : value;\n })\n .join(', ');\n}\n\nconst getProgramProps = async ({\n name,\n description,\n eligibility_text,\n population_restrictions = [],\n accessibility_options = [],\n delivery_options = [],\n payment_options = [],\n population_specializations = [],\n languages = [],\n services = [],\n transportation_options = [],\n city_requirements = [],\n county_requirements = [],\n postal_code_requirements = [],\n state_requirements = [],\n age_specializations = {},\n gender_requirements = [],\n age_requirements = {},\n phone_numbers = [],\n email_addresses = [],\n website_url,\n locations = [],\n receiving_referrals,\n provider,\n offers_specialized_screening,\n fee_schedule_screenings,\n suggest_edit_enabled,\n id,\n}) => {\n const hasRequirements = !!age_requirements?.min_months\n || !!age_requirements?.max_months\n || !!city_requirements.length\n || !!county_requirements.length\n || !!gender_requirements.length\n || !!population_restrictions.length\n || !!postal_code_requirements.length\n || !!state_requirements.length;\n const hasAccessibility = !!delivery_options.length\n || !!languages.length\n || !!population_specializations.length\n || !!age_specializations?.min_months\n || !!age_specializations?.max_months\n || !!accessibility_options.length\n || !!transportation_options.length\n || !!payment_options.length;\n const hasOtherEligibility = !!eligibility_text;\n const hasEligibility = hasRequirements || hasAccessibility || hasOtherEligibility;\n const hasContactInfo = !!phone_numbers.length\n || !!email_addresses.length\n || !!website_url\n || !!locations.length;\n const hours = selectHours(locations, provider?.hours);\n const accessibilityLabels = mapValuesToLabels(accessibility_options, ACCESSIBILITY_OPTIONS);\n const languageLabels = mapValuesToLabels(languages, LANGUAGE_OPTIONS);\n const transportationLabels = mapValuesToLabels(transportation_options, TRANSPORTATION_OPTIONS);\n const paymentLabels = mapValuesToLabels(payment_options, PAYMENT_OPTIONS);\n const populationRestrictionLabels = mapValuesToLabels(population_restrictions, POPULATIONS);\n const populationSpecializationLabels = mapValuesToLabels(population_specializations, POPULATIONS);\n const deliveryOptionLabels = mapValuesToLabels(delivery_options, PROGRAM_DELIVERY_OPTIONS);\n \n const providersWithServices = await fetchProviderPrograms(provider?.id, id);\n const appRoles = [SEARCH_ROLES.PAYMENTS]\n\n return {\n name,\n description,\n eligibility_text,\n hasRequirements,\n hasAccessibility,\n hasOtherEligibility,\n hasEligibility,\n hasContactInfo,\n postal_code_requirements: postal_code_requirements.join(', '),\n city_requirements: city_requirements.join('; '),\n county_requirements: county_requirements.join('; '),\n state_requirements: state_requirements.join(', '),\n age_requirements: parseAge(age_requirements),\n age_specializations: parseAge(age_specializations),\n gender_requirements: gender_requirements.join(', '),\n delivery_options: deliveryOptionLabels,\n population_restrictions: populationRestrictionLabels,\n languages: languageLabels,\n population_specializations: populationSpecializationLabels,\n accessibility_options: accessibilityLabels,\n residency: {\n state_requirements: state_requirements.join(', '),\n city_requirements: city_requirements.join('; '),\n county_requirements: county_requirements.join('; '),\n postal_code_requirements: postal_code_requirements.join(', '),\n },\n hasEligibilityText: !isEmpty(eligibility_text),\n transportation_options: transportationLabels,\n payment_options: paymentLabels,\n services: providersWithServices.services,\n phone_numbers,\n email_addresses: email_addresses.sort((_a, _b) => (_b.is_primary === null ? -1 : 1)),\n website_url,\n locations,\n hours,\n receiving_referrals,\n offersSpecializedScreening: offers_specialized_screening,\n feeScheduleScreenings: fee_schedule_screenings,\n suggest_edit_enabled,\n providerPrograms: providersWithServices.providerPrograms,\n appRoles,\n };\n}\n\nconst favorPrimaryEmail = (emailA, emailB) => {\n if (emailB.is_primary) {\n return 1;\n }\n if (emailA.is_primary) {\n return -1;\n }\n return 0;\n}\n\nconst getProviderProps = ({\n name,\n description,\n phone_numbers,\n email_addresses,\n website_url,\n hours,\n licensed,\n addresses,\n id,\n sensitive,\n}) => {\n const emailsSortedByPriority = email_addresses.length > 0\n ? email_addresses\n .sort(favorPrimaryEmail)\n .map((addr) => addr.email_address)\n : [];\n\n return {\n provider_id: id,\n provider_name: name,\n provider_description: description,\n provider_phone_numbers: phone_numbers,\n provider_email_addresses: emailsSortedByPriority,\n provider_website_url: website_url,\n provider_hours: hours,\n provider_licensed: licensed,\n provider_locations: addresses,\n provider_sensitive: sensitive,\n hasOrgInfo:\n !isEmpty(description)\n || !isEmpty(phone_numbers)\n || !isEmpty(email_addresses)\n || !isEmpty(website_url)\n || !isEmpty(hours)\n || !isEmpty(locations),\n };\n}\n\nconst generateServesThisAreaOption = (area) => {\n if (area.service_area_type === SERVICE_AREA_TYPES.NATIONAL) {\n return SERVICE_AREA_TYPES.NATIONAL;\n }\n return US_STATES.find(\n (state) => state.value === area.state_abbreviation.toUpperCase(),\n ).display_name;\n}\n\nconst getMapProps = ({ locations = [], service_areas = [] }) => {\n const closestOrFirstLocation = locations?.find((loc) => loc.is_closest) ?? locations[0];\n let servingArea = '';\n if (service_areas?.length > 0) {\n const area = service_areas.find(\n (a) => a.service_area_type !== SERVICE_AREA_TYPES.NATIONAL,\n ) ?? service_areas[0];\n servingArea = generateServesThisAreaOption(area);\n }\n const { latitude, longitude } = closestOrFirstLocation ?? {};\n\n return {\n latitude,\n longitude,\n zoom: '15',\n servingArea,\n hasMap: !!latitude && !!longitude,\n };\n}\n\n// eslint-disable-next-line import/prefer-default-export\nexport const formatForProgramDetail = async (program) => {\n const programProps = await getProgramProps(program);\n const providerProps = program?.provider \n ? getProviderProps(program.provider)\n : {};\n\n const mapProps = getMapProps(program);\n\n return {\n id: program.id,\n ...programProps,\n ...providerProps,\n ...mapProps,\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"formatProgramDetail.js","names":["isEmpty","ageRangeConverters","SEARCH_ROLES","SERVICE_AREA_TYPES","STATIC_FILTER_OPTIONS","selectHours","fetchProviderPrograms","US_STATES","ACCESSIBILITY_OPTIONS","LANGUAGE_OPTIONS","TRANSPORTATION_OPTIONS","PAYMENT_OPTIONS","POPULATIONS","PROGRAM_DELIVERY_OPTIONS","convertApiAgeRangeToUnits","processAgeText","parseAge","_ref","min_months","max_months","mapValuesToLabels","values","options","map","value","option","find","opt","label","join","getProgramProps","_ref2","name","description","eligibility_text","population_restrictions","accessibility_options","delivery_options","payment_options","population_specializations","languages","services","transportation_options","city_requirements","county_requirements","postal_code_requirements","state_requirements","age_specializations","gender_requirements","age_requirements","phone_numbers","email_addresses","website_url","locations","receiving_referrals","provider","offers_specialized_screening","fee_schedule_screenings","suggest_edit_enabled","id","hasRequirements","length","hasAccessibility","hasOtherEligibility","hasEligibility","hasContactInfo","hours","accessibilityLabels","languageLabels","transportationLabels","paymentLabels","populationRestrictionLabels","populationSpecializationLabels","deliveryOptionLabels","providersWithServices","appRoles","PAYMENTS","residency","hasEligibilityText","sort","_a","_b","is_primary","offersSpecializedScreening","feeScheduleScreenings","providerPrograms","favorPrimaryEmail","emailA","emailB","getProviderProps","_ref3","licensed","addresses","sensitive","emailsSortedByPriority","addr","email_address","provider_id","provider_name","provider_description","provider_phone_numbers","provider_email_addresses","provider_website_url","provider_hours","provider_licensed","provider_locations","provider_sensitive","hasOrgInfo","generateServesThisAreaOption","area","service_area_type","NATIONAL","state","state_abbreviation","toUpperCase","display_name","getMapProps","_ref4","service_areas","closestOrFirstLocation","loc","is_closest","servingArea","a","latitude","longitude","zoom","hasMap","formatForProgramDetail","program","programProps","providerProps","mapProps"],"sources":["../../../../src/pages/builder/utils/formatProgramDetail.js"],"sourcesContent":["import { isEmpty } from 'lodash';\nimport { ageRangeConverters } from '@unite-us/app-components';\nimport { SEARCH_ROLES, SERVICE_AREA_TYPES, STATIC_FILTER_OPTIONS } from '../../../constants';\nimport selectHours from '../utils';\nimport fetchProviderPrograms from '../../../actions/Referral/fetchCoreServices';\n\nconst { US_STATES, ACCESSIBILITY_OPTIONS, LANGUAGE_OPTIONS, TRANSPORTATION_OPTIONS, PAYMENT_OPTIONS, POPULATIONS, PROGRAM_DELIVERY_OPTIONS } = STATIC_FILTER_OPTIONS;\nconst { convertApiAgeRangeToUnits, processAgeText } = ageRangeConverters;\nconst parseAge = ({ min_months, max_months }) => {\n if (!min_months && !max_months) return '';\n\n return processAgeText(...convertApiAgeRangeToUnits(`${min_months}...${max_months}`));\n};\n\nconst mapValuesToLabels = (values, options) => {\n return values\n .map((value) => {\n const option = options.find((opt) => opt.value === value);\n return option ? option.label : value;\n })\n .join(', ');\n}\n\nconst getProgramProps = async ({\n name,\n description,\n eligibility_text,\n population_restrictions = [],\n accessibility_options = [],\n delivery_options = [],\n payment_options = [],\n population_specializations = [],\n languages = [],\n services = [],\n transportation_options = [],\n city_requirements = [],\n county_requirements = [],\n postal_code_requirements = [],\n state_requirements = [],\n age_specializations = {},\n gender_requirements = [],\n age_requirements = {},\n phone_numbers = [],\n email_addresses = [],\n website_url,\n locations = [],\n receiving_referrals,\n provider,\n offers_specialized_screening,\n fee_schedule_screenings,\n suggest_edit_enabled,\n id,\n}) => {\n const hasRequirements = !!age_requirements?.min_months\n || !!age_requirements?.max_months\n || !!city_requirements.length\n || !!county_requirements.length\n || !!gender_requirements.length\n || !!population_restrictions.length\n || !!postal_code_requirements.length\n || !!state_requirements.length;\n const hasAccessibility = !!delivery_options.length\n || !!languages.length\n || !!population_specializations.length\n || !!age_specializations?.min_months\n || !!age_specializations?.max_months\n || !!accessibility_options.length\n || !!transportation_options.length\n || !!payment_options.length;\n const hasOtherEligibility = !!eligibility_text;\n const hasEligibility = hasRequirements || hasAccessibility || hasOtherEligibility;\n const hasContactInfo = !!phone_numbers.length\n || !!email_addresses.length\n || !!website_url\n || !!locations.length;\n const hours = selectHours(locations, provider?.hours);\n const accessibilityLabels = mapValuesToLabels(accessibility_options, ACCESSIBILITY_OPTIONS);\n const languageLabels = mapValuesToLabels(languages, LANGUAGE_OPTIONS);\n const transportationLabels = mapValuesToLabels(transportation_options, TRANSPORTATION_OPTIONS);\n const paymentLabels = mapValuesToLabels(payment_options, PAYMENT_OPTIONS);\n const populationRestrictionLabels = mapValuesToLabels(population_restrictions, POPULATIONS);\n const populationSpecializationLabels = mapValuesToLabels(population_specializations, POPULATIONS);\n const deliveryOptionLabels = mapValuesToLabels(delivery_options, PROGRAM_DELIVERY_OPTIONS);\n \n const providersWithServices = await fetchProviderPrograms(provider?.id, id);\n const appRoles = [SEARCH_ROLES.PAYMENTS]\n\n return {\n name,\n description,\n eligibility_text,\n hasRequirements,\n hasAccessibility,\n hasOtherEligibility,\n hasEligibility,\n hasContactInfo,\n postal_code_requirements: postal_code_requirements.join(', '),\n city_requirements: city_requirements.join('; '),\n county_requirements: county_requirements.join('; '),\n state_requirements: state_requirements.join(', '),\n age_requirements: parseAge(age_requirements),\n age_specializations: parseAge(age_specializations),\n gender_requirements: gender_requirements.join(', '),\n delivery_options: deliveryOptionLabels,\n population_restrictions: populationRestrictionLabels,\n languages: languageLabels,\n population_specializations: populationSpecializationLabels,\n accessibility_options: accessibilityLabels,\n residency: {\n state_requirements: state_requirements.join(', '),\n city_requirements: city_requirements.join('; '),\n county_requirements: county_requirements.join('; '),\n postal_code_requirements: postal_code_requirements.join(', '),\n },\n hasEligibilityText: !isEmpty(eligibility_text),\n transportation_options: transportationLabels,\n payment_options: paymentLabels,\n services: providersWithServices.services,\n phone_numbers,\n email_addresses: email_addresses.sort((_a, _b) => (_b.is_primary === null ? -1 : 1)),\n website_url,\n locations,\n hours,\n receiving_referrals,\n offersSpecializedScreening: offers_specialized_screening,\n feeScheduleScreenings: fee_schedule_screenings,\n suggest_edit_enabled,\n providerPrograms: providersWithServices.providerPrograms,\n appRoles,\n };\n}\n\nconst favorPrimaryEmail = (emailA, emailB) => {\n if (emailB.is_primary) {\n return 1;\n }\n if (emailA.is_primary) {\n return -1;\n }\n return 0;\n}\n\nconst getProviderProps = ({\n name,\n description,\n phone_numbers,\n email_addresses,\n website_url,\n hours,\n licensed,\n addresses,\n id,\n sensitive,\n}) => {\n const emailsSortedByPriority = email_addresses.length > 0\n ? email_addresses\n .sort(favorPrimaryEmail)\n .map((addr) => addr.email_address)\n : [];\n\n return {\n provider_id: id,\n provider_name: name,\n provider_description: description,\n provider_phone_numbers: phone_numbers,\n provider_email_addresses: emailsSortedByPriority,\n provider_website_url: website_url,\n provider_hours: hours,\n provider_licensed: licensed,\n provider_locations: addresses,\n provider_sensitive: sensitive,\n hasOrgInfo:\n !isEmpty(description)\n || !isEmpty(phone_numbers)\n || !isEmpty(email_addresses)\n || !isEmpty(website_url)\n || !isEmpty(hours)\n || !isEmpty(locations),\n };\n}\n\nconst generateServesThisAreaOption = (area) => {\n if (area.service_area_type === SERVICE_AREA_TYPES.NATIONAL) {\n return SERVICE_AREA_TYPES.NATIONAL;\n }\n return US_STATES.find(\n (state) => state.value === area.state_abbreviation.toUpperCase(),\n ).display_name;\n}\n\nconst getMapProps = ({ locations = [], service_areas = [] }) => {\n const closestOrFirstLocation = locations?.find((loc) => loc.is_closest) ?? locations[0];\n let servingArea = '';\n if (service_areas?.length > 0) {\n const area = service_areas.find(\n (a) => a.service_area_type !== SERVICE_AREA_TYPES.NATIONAL,\n ) ?? service_areas[0];\n servingArea = generateServesThisAreaOption(area);\n }\n const { latitude, longitude } = closestOrFirstLocation ?? {};\n\n return {\n latitude,\n longitude,\n zoom: '15',\n servingArea,\n hasMap: !!latitude && !!longitude,\n };\n}\n\n// eslint-disable-next-line import/prefer-default-export\nexport const formatForProgramDetail = async (program) => {\n const programProps = await getProgramProps(program);\n const providerProps = program?.provider \n ? getProviderProps(program.provider)\n : {};\n\n const mapProps = getMapProps(program);\n\n return {\n id: program.id,\n ...programProps,\n ...providerProps,\n ...mapProps,\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,36 +1,30 @@
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; }
4
1
  import { feeScheduleProgramUtils } from '@unite-us/app-components';
5
2
  import { isEmpty } from 'lodash';
6
3
  import moment from 'moment';
7
4
  import { coreApi } from '../../../api/config';
8
- const shouldLoadDraftPaymentAuthorization = (referral, feeScheduleProgram) => referral.state === 'draft' && (feeScheduleProgram === null || feeScheduleProgram === void 0 ? void 0 : feeScheduleProgram.authorization_required);
5
+ const shouldLoadDraftPaymentAuthorization = (referral, feeScheduleProgram) => referral.state === 'draft' && feeScheduleProgram?.authorization_required;
9
6
  const fetchCaseData = async caseId => {
10
- var _caseResponse$data;
11
7
  const caseResponse = await coreApi.findRecord('case', caseId);
12
- return caseResponse === null || caseResponse === void 0 || (_caseResponse$data = caseResponse.data) === null || _caseResponse$data === void 0 ? void 0 : _caseResponse$data.data;
8
+ return caseResponse?.data?.data;
13
9
  };
14
10
  const fetchServiceAuthorizationData = async serviceAuthorizationId => {
15
- var _serviceAuthorization;
16
11
  const serviceAuthorizationResponse = await coreApi.findRecord('service_authorization', serviceAuthorizationId);
17
- return serviceAuthorizationResponse === null || serviceAuthorizationResponse === void 0 || (_serviceAuthorization = serviceAuthorizationResponse.data) === null || _serviceAuthorization === void 0 ? void 0 : _serviceAuthorization.data;
12
+ return serviceAuthorizationResponse?.data?.data;
18
13
  };
19
14
  const fetchClinicalModificationData = async clinicalModifications => {
20
- var _clinicalModification;
21
- const firstClinicalModification = clinicalModifications === null || clinicalModifications === void 0 ? void 0 : clinicalModifications[0];
15
+ const firstClinicalModification = clinicalModifications?.[0];
22
16
  if (!firstClinicalModification) {
23
17
  return null;
24
18
  }
25
19
  const clinicalModificationResponse = await coreApi.findRecord('clinical_modifications', firstClinicalModification.id);
26
- return clinicalModificationResponse === null || clinicalModificationResponse === void 0 || (_clinicalModification = clinicalModificationResponse.data) === null || _clinicalModification === void 0 ? void 0 : _clinicalModification.data;
20
+ return clinicalModificationResponse?.data?.data;
27
21
  };
28
22
  const buildAmountRequestedInitialValue = (serviceAuthorizationData, feeScheduleProgram) => {
29
- const isUnitBased = !feeScheduleProgramUtils.isCostPaymentType(feeScheduleProgram === null || feeScheduleProgram === void 0 ? void 0 : feeScheduleProgram.payment_type);
23
+ const isUnitBased = !feeScheduleProgramUtils.isCostPaymentType(feeScheduleProgram?.payment_type);
30
24
  if (isUnitBased) {
31
- return serviceAuthorizationData === null || serviceAuthorizationData === void 0 ? void 0 : serviceAuthorizationData.requested_unit_amount;
25
+ return serviceAuthorizationData?.requested_unit_amount;
32
26
  }
33
- return serviceAuthorizationData === null || serviceAuthorizationData === void 0 ? void 0 : serviceAuthorizationData.requested_cents;
27
+ return serviceAuthorizationData?.requested_cents;
34
28
  };
35
29
  const buildClinicalModificationValue = clinicalModificationData => {
36
30
  if (isEmpty(clinicalModificationData)) {
@@ -49,13 +43,12 @@ const buildPaymentAuthFormValues = _ref => {
49
43
  } = _ref;
50
44
  return {
51
45
  amount_requested: buildAmountRequestedInitialValue(serviceAuthorizationData, feeScheduleProgram),
52
- service_end: moment(serviceAuthorizationData === null || serviceAuthorizationData === void 0 ? void 0 : serviceAuthorizationData.requested_ends_at).unix(),
53
- service_start: moment(serviceAuthorizationData === null || serviceAuthorizationData === void 0 ? void 0 : serviceAuthorizationData.requested_starts_at).unix(),
46
+ service_end: moment(serviceAuthorizationData?.requested_ends_at).unix(),
47
+ service_start: moment(serviceAuthorizationData?.requested_starts_at).unix(),
54
48
  icd10_code: buildClinicalModificationValue(clinicalModificationData)
55
49
  };
56
50
  };
57
51
  export const fetchDraftPaymentAuthorizationValues = async _ref2 => {
58
- var _caseData$service_aut;
59
52
  let {
60
53
  caseId,
61
54
  referralState,
@@ -70,8 +63,8 @@ export const fetchDraftPaymentAuthorizationValues = async _ref2 => {
70
63
  return null;
71
64
  }
72
65
  const caseData = await fetchCaseData(caseId);
73
- const serviceAuthorizationData = await fetchServiceAuthorizationData(caseData === null || caseData === void 0 || (_caseData$service_aut = caseData.service_authorization) === null || _caseData$service_aut === void 0 ? void 0 : _caseData$service_aut.id);
74
- const clinicalModificationData = await fetchClinicalModificationData(serviceAuthorizationData === null || serviceAuthorizationData === void 0 ? void 0 : serviceAuthorizationData.clinical_modifications);
66
+ const serviceAuthorizationData = await fetchServiceAuthorizationData(caseData?.service_authorization?.id);
67
+ const clinicalModificationData = await fetchClinicalModificationData(serviceAuthorizationData?.clinical_modifications);
75
68
  return {
76
69
  paymentAuthFormValues: buildPaymentAuthFormValues({
77
70
  serviceAuthorizationData,
@@ -84,7 +77,6 @@ export const fetchDraftPaymentAuthorizationValues = async _ref2 => {
84
77
  };
85
78
  };
86
79
  export const mergeDraftPaymentAuthorizationInitialValues = _ref3 => {
87
- var _previousValues$case;
88
80
  let {
89
81
  previousValues,
90
82
  paymentAuthFormValues,
@@ -92,12 +84,20 @@ export const mergeDraftPaymentAuthorizationInitialValues = _ref3 => {
92
84
  crtb854ForwardingSuperset,
93
85
  referralDescription
94
86
  } = _ref3;
95
- const initialValues = _objectSpread(_objectSpread({}, previousValues), {}, {
96
- case: _objectSpread(_objectSpread({}, previousValues.case), {}, {
97
- service_authorization: _objectSpread(_objectSpread({}, (_previousValues$case = previousValues.case) === null || _previousValues$case === void 0 ? void 0 : _previousValues$case.service_authorization), serviceAuthorizationData)
98
- }),
99
- paymentAuthForm: _objectSpread(_objectSpread({}, previousValues.paymentAuthForm), paymentAuthFormValues)
100
- });
87
+ const initialValues = {
88
+ ...previousValues,
89
+ case: {
90
+ ...previousValues.case,
91
+ service_authorization: {
92
+ ...previousValues.case?.service_authorization,
93
+ ...serviceAuthorizationData
94
+ }
95
+ },
96
+ paymentAuthForm: {
97
+ ...previousValues.paymentAuthForm,
98
+ ...paymentAuthFormValues
99
+ }
100
+ };
101
101
  if (crtb854ForwardingSuperset && referralDescription) {
102
102
  initialValues.description = referralDescription;
103
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"referralBuilderFormDraftAuth.js","names":["feeScheduleProgramUtils","isEmpty","moment","coreApi","shouldLoadDraftPaymentAuthorization","referral","feeScheduleProgram","state","authorization_required","fetchCaseData","caseId","_caseResponse$data","caseResponse","findRecord","data","fetchServiceAuthorizationData","serviceAuthorizationId","_serviceAuthorization","serviceAuthorizationResponse","fetchClinicalModificationData","clinicalModifications","_clinicalModification","firstClinicalModification","clinicalModificationResponse","id","buildAmountRequestedInitialValue","serviceAuthorizationData","isUnitBased","isCostPaymentType","payment_type","requested_unit_amount","requested_cents","buildClinicalModificationValue","clinicalModificationData","value","code","buildPaymentAuthFormValues","_ref","amount_requested","service_end","requested_ends_at","unix","service_start","requested_starts_at","icd10_code","fetchDraftPaymentAuthorizationValues","_ref2","_caseData$service_aut","referralState","paymentType","authorizationRequired","caseData","service_authorization","clinical_modifications","paymentAuthFormValues","mergeDraftPaymentAuthorizationInitialValues","_ref3","_previousValues$case","previousValues","crtb854ForwardingSuperset","referralDescription","initialValues","_objectSpread","case","paymentAuthForm","description"],"sources":["../../../../src/pages/builder/utils/referralBuilderFormDraftAuth.js"],"sourcesContent":["import { feeScheduleProgramUtils } from '@unite-us/app-components';\nimport { isEmpty } from 'lodash';\nimport moment from 'moment';\nimport { coreApi } from '../../../api/config';\n\nconst shouldLoadDraftPaymentAuthorization = (referral, feeScheduleProgram) => (\n referral.state === 'draft' && feeScheduleProgram?.authorization_required\n);\n\nconst fetchCaseData = async (caseId) => {\n const caseResponse = await coreApi.findRecord('case', caseId);\n\n return caseResponse?.data?.data;\n};\n\nconst fetchServiceAuthorizationData = async (serviceAuthorizationId) => {\n const serviceAuthorizationResponse = await coreApi.findRecord(\n 'service_authorization',\n serviceAuthorizationId,\n );\n\n return serviceAuthorizationResponse?.data?.data;\n};\n\nconst fetchClinicalModificationData = async (clinicalModifications) => {\n const firstClinicalModification = clinicalModifications?.[0];\n\n if (!firstClinicalModification) {\n return null;\n }\n\n const clinicalModificationResponse = await coreApi.findRecord(\n 'clinical_modifications',\n firstClinicalModification.id,\n );\n\n return clinicalModificationResponse?.data?.data;\n};\n\nconst buildAmountRequestedInitialValue = (\n serviceAuthorizationData,\n feeScheduleProgram,\n) => {\n const isUnitBased = !feeScheduleProgramUtils.isCostPaymentType(\n feeScheduleProgram?.payment_type,\n );\n\n if (isUnitBased) {\n return serviceAuthorizationData?.requested_unit_amount;\n }\n\n return serviceAuthorizationData?.requested_cents;\n};\n\nconst buildClinicalModificationValue = (clinicalModificationData) => {\n if (isEmpty(clinicalModificationData)) {\n return {};\n }\n\n return {\n value: clinicalModificationData.code,\n id: clinicalModificationData.id,\n };\n};\n\nconst buildPaymentAuthFormValues = ({\n serviceAuthorizationData,\n clinicalModificationData,\n feeScheduleProgram,\n}) => ({\n amount_requested: buildAmountRequestedInitialValue(\n serviceAuthorizationData,\n feeScheduleProgram,\n ),\n service_end: moment(serviceAuthorizationData?.requested_ends_at).unix(),\n service_start: moment(serviceAuthorizationData?.requested_starts_at).unix(),\n icd10_code: buildClinicalModificationValue(clinicalModificationData),\n});\n\nexport const fetchDraftPaymentAuthorizationValues = async ({\n caseId,\n referralState,\n paymentType,\n authorizationRequired,\n}) => {\n if (!shouldLoadDraftPaymentAuthorization(\n { state: referralState },\n { authorization_required: authorizationRequired },\n )) {\n return null;\n }\n\n const caseData = await fetchCaseData(caseId);\n const serviceAuthorizationData = await fetchServiceAuthorizationData(\n caseData?.service_authorization?.id,\n );\n const clinicalModificationData = await fetchClinicalModificationData(\n serviceAuthorizationData?.clinical_modifications,\n );\n\n return {\n paymentAuthFormValues: buildPaymentAuthFormValues({\n serviceAuthorizationData,\n clinicalModificationData,\n feeScheduleProgram: { payment_type: paymentType },\n }),\n serviceAuthorizationData,\n };\n};\n\nexport const mergeDraftPaymentAuthorizationInitialValues = ({\n previousValues,\n paymentAuthFormValues,\n serviceAuthorizationData,\n crtb854ForwardingSuperset,\n referralDescription,\n}) => {\n const initialValues = {\n ...previousValues,\n case: {\n ...previousValues.case,\n service_authorization: {\n ...previousValues.case?.service_authorization,\n ...serviceAuthorizationData,\n },\n },\n paymentAuthForm: {\n ...previousValues.paymentAuthForm,\n ...paymentAuthFormValues,\n },\n };\n\n if (crtb854ForwardingSuperset && referralDescription) {\n initialValues.description = referralDescription;\n }\n\n return initialValues;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"referralBuilderFormDraftAuth.js","names":["feeScheduleProgramUtils","isEmpty","moment","coreApi","shouldLoadDraftPaymentAuthorization","referral","feeScheduleProgram","state","authorization_required","fetchCaseData","caseId","caseResponse","findRecord","data","fetchServiceAuthorizationData","serviceAuthorizationId","serviceAuthorizationResponse","fetchClinicalModificationData","clinicalModifications","firstClinicalModification","clinicalModificationResponse","id","buildAmountRequestedInitialValue","serviceAuthorizationData","isUnitBased","isCostPaymentType","payment_type","requested_unit_amount","requested_cents","buildClinicalModificationValue","clinicalModificationData","value","code","buildPaymentAuthFormValues","_ref","amount_requested","service_end","requested_ends_at","unix","service_start","requested_starts_at","icd10_code","fetchDraftPaymentAuthorizationValues","_ref2","referralState","paymentType","authorizationRequired","caseData","service_authorization","clinical_modifications","paymentAuthFormValues","mergeDraftPaymentAuthorizationInitialValues","_ref3","previousValues","crtb854ForwardingSuperset","referralDescription","initialValues","case","paymentAuthForm","description"],"sources":["../../../../src/pages/builder/utils/referralBuilderFormDraftAuth.js"],"sourcesContent":["import { feeScheduleProgramUtils } from '@unite-us/app-components';\nimport { isEmpty } from 'lodash';\nimport moment from 'moment';\nimport { coreApi } from '../../../api/config';\n\nconst shouldLoadDraftPaymentAuthorization = (referral, feeScheduleProgram) => (\n referral.state === 'draft' && feeScheduleProgram?.authorization_required\n);\n\nconst fetchCaseData = async (caseId) => {\n const caseResponse = await coreApi.findRecord('case', caseId);\n\n return caseResponse?.data?.data;\n};\n\nconst fetchServiceAuthorizationData = async (serviceAuthorizationId) => {\n const serviceAuthorizationResponse = await coreApi.findRecord(\n 'service_authorization',\n serviceAuthorizationId,\n );\n\n return serviceAuthorizationResponse?.data?.data;\n};\n\nconst fetchClinicalModificationData = async (clinicalModifications) => {\n const firstClinicalModification = clinicalModifications?.[0];\n\n if (!firstClinicalModification) {\n return null;\n }\n\n const clinicalModificationResponse = await coreApi.findRecord(\n 'clinical_modifications',\n firstClinicalModification.id,\n );\n\n return clinicalModificationResponse?.data?.data;\n};\n\nconst buildAmountRequestedInitialValue = (\n serviceAuthorizationData,\n feeScheduleProgram,\n) => {\n const isUnitBased = !feeScheduleProgramUtils.isCostPaymentType(\n feeScheduleProgram?.payment_type,\n );\n\n if (isUnitBased) {\n return serviceAuthorizationData?.requested_unit_amount;\n }\n\n return serviceAuthorizationData?.requested_cents;\n};\n\nconst buildClinicalModificationValue = (clinicalModificationData) => {\n if (isEmpty(clinicalModificationData)) {\n return {};\n }\n\n return {\n value: clinicalModificationData.code,\n id: clinicalModificationData.id,\n };\n};\n\nconst buildPaymentAuthFormValues = ({\n serviceAuthorizationData,\n clinicalModificationData,\n feeScheduleProgram,\n}) => ({\n amount_requested: buildAmountRequestedInitialValue(\n serviceAuthorizationData,\n feeScheduleProgram,\n ),\n service_end: moment(serviceAuthorizationData?.requested_ends_at).unix(),\n service_start: moment(serviceAuthorizationData?.requested_starts_at).unix(),\n icd10_code: buildClinicalModificationValue(clinicalModificationData),\n});\n\nexport const fetchDraftPaymentAuthorizationValues = async ({\n caseId,\n referralState,\n paymentType,\n authorizationRequired,\n}) => {\n if (!shouldLoadDraftPaymentAuthorization(\n { state: referralState },\n { authorization_required: authorizationRequired },\n )) {\n return null;\n }\n\n const caseData = await fetchCaseData(caseId);\n const serviceAuthorizationData = await fetchServiceAuthorizationData(\n caseData?.service_authorization?.id,\n );\n const clinicalModificationData = await fetchClinicalModificationData(\n serviceAuthorizationData?.clinical_modifications,\n );\n\n return {\n paymentAuthFormValues: buildPaymentAuthFormValues({\n serviceAuthorizationData,\n clinicalModificationData,\n feeScheduleProgram: { payment_type: paymentType },\n }),\n serviceAuthorizationData,\n };\n};\n\nexport const mergeDraftPaymentAuthorizationInitialValues = ({\n previousValues,\n paymentAuthFormValues,\n serviceAuthorizationData,\n crtb854ForwardingSuperset,\n referralDescription,\n}) => {\n const initialValues = {\n ...previousValues,\n case: {\n ...previousValues.case,\n service_authorization: {\n ...previousValues.case?.service_authorization,\n ...serviceAuthorizationData,\n },\n },\n paymentAuthForm: {\n ...previousValues.paymentAuthForm,\n ...paymentAuthFormValues,\n },\n };\n\n if (crtb854ForwardingSuperset && referralDescription) {\n initialValues.description = referralDescription;\n }\n\n return initialValues;\n};\n"],"mappings":"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","ignoreList":[]}