@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,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 React, { useEffect, useState } from 'react';
5
2
  import { BrowserRouter, Route, Routes } from 'react-router-dom';
6
3
  import { QueryClient, QueryClientProvider } from 'react-query';
@@ -26,7 +23,9 @@ function AppReferrals(_ref) {
26
23
  setAppInitialized(isAppInitialized);
27
24
  }, [appSettings, callbacks, components]);
28
25
  useEffect(() => {
29
- dispatch(setData(_objectSpread({}, appState)));
26
+ dispatch(setData({
27
+ ...appState
28
+ }));
30
29
  }, []);
31
30
 
32
31
  //TODO Remove this when the Client Header component moves to a different team/repo
@@ -1 +1 @@
1
- {"version":3,"file":"AppReferrals.js","names":["React","useEffect","useState","BrowserRouter","Route","Routes","QueryClient","QueryClientProvider","ReferralBuilder","SupportingInfo","Review","setData","useAppCreateReferralContext","usePerson","initApp","jsx","_jsx","jsxs","_jsxs","queryClient","AppReferrals","_ref","appSettings","appState","callbacks","components","appInitialized","setAppInitialized","isAppInitialized","dispatch","_objectSpread","currentEmployee","currentProvider","person","id","children","client","basename","future","v7_startTransition","v7_relativeSplatPath","path","element"],"sources":["../src/AppReferrals.js"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { BrowserRouter, Route, Routes } from 'react-router-dom';\nimport {\n QueryClient,\n QueryClientProvider,\n} from 'react-query';\nimport ReferralBuilder from './pages/builder/ReferralBuilder';\nimport SupportingInfo from './pages/supporting-info/SupportingInfo';\nimport Review from './pages/review/Review';\nimport './AppReferrals.scss';\nimport { setData, useAppCreateReferralContext } from './context/AppCreateReferralProvider';\nimport usePerson from './hooks/usePerson';\nimport { initApp } from './api/config';\n\nconst queryClient = new QueryClient();\nfunction AppReferrals({\n appSettings,\n appState,\n callbacks,\n components,\n}) {\n const [appInitialized, setAppInitialized] = useState(false);\n useEffect(() => {\n const isAppInitialized = initApp(appSettings, callbacks, components);\n setAppInitialized(isAppInitialized);\n }, [appSettings, callbacks, components]);\n\n useEffect(() => {\n dispatch(setData({\n ...appState\n }))\n }, [])\n\n //TODO Remove this when the Client Header component moves to a different team/repo\n\n const { dispatch } = useAppCreateReferralContext();\n const { currentEmployee, currentProvider } = appState;\n\n const person = usePerson();\n if (!currentEmployee || !currentProvider || !person) return null;\n\n if (!appInitialized) return null;\n\n return (\n <div id=\"app-referrals-container\">\n <QueryClientProvider client={queryClient}>\n <BrowserRouter basename={appSettings.basename} future={{ v7_startTransition: true, v7_relativeSplatPath: true }}>\n <Routes>\n <Route path=\"create\">\n <Route path=\"builder\" element={<ReferralBuilder />} />\n <Route path=\"supporting-info\" element={<SupportingInfo />} />\n <Route path=\"review\" element={<Review />} />\n </Route>\n\n {\n /* Any Future routes can be included here to handle more features inside the same repo\n <Route path=\"cases\">\n <Route path=\":id\" component={Referrals} />\n </Route>\n <Route path=\"referrals\">\n <Route path=\":id\" component={Referrals} />\n </Route> \n */\n }\n </Routes>\n </BrowserRouter>\n </QueryClientProvider>\n </div>\n )\n}\n\nexport default AppReferrals;\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAClD,SAASC,aAAa,EAAEC,KAAK,EAAEC,MAAM,QAAQ,kBAAkB;AAC/D,SACEC,WAAW,EACXC,mBAAmB,QACd,aAAa;AACpB,OAAOC,eAAe,MAAM,iCAAiC;AAC7D,OAAOC,cAAc,MAAM,wCAAwC;AACnE,OAAOC,MAAM,MAAM,uBAAuB;AAC1C,OAAO,qBAAqB;AAC5B,SAASC,OAAO,EAAEC,2BAA2B,QAAQ,qCAAqC;AAC1F,OAAOC,SAAS,MAAM,mBAAmB;AACzC,SAASC,OAAO,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEvC,MAAMC,WAAW,GAAG,IAAIb,WAAW,CAAC,CAAC;AACrC,SAASc,YAAYA,CAAAC,IAAA,EAKlB;EAAA,IALmB;IACpBC,WAAW;IACXC,QAAQ;IACRC,SAAS;IACTC;EACF,CAAC,GAAAJ,IAAA;EACC,MAAM,CAACK,cAAc,EAAEC,iBAAiB,CAAC,GAAGzB,QAAQ,CAAC,KAAK,CAAC;EAC3DD,SAAS,CAAC,MAAM;IACd,MAAM2B,gBAAgB,GAAGd,OAAO,CAACQ,WAAW,EAAEE,SAAS,EAAEC,UAAU,CAAC;IACpEE,iBAAiB,CAACC,gBAAgB,CAAC;EACrC,CAAC,EAAE,CAACN,WAAW,EAAEE,SAAS,EAAEC,UAAU,CAAC,CAAC;EAExCxB,SAAS,CAAC,MAAM;IACd4B,QAAQ,CAAClB,OAAO,CAAAmB,aAAA,KACXP,QAAQ,CACZ,CAAC,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;;EAEN;;EAEA,MAAM;IAAEM;EAAS,CAAC,GAAGjB,2BAA2B,CAAC,CAAC;EAClD,MAAM;IAAEmB,eAAe;IAAEC;EAAgB,CAAC,GAAGT,QAAQ;EAErD,MAAMU,MAAM,GAAGpB,SAAS,CAAC,CAAC;EAC1B,IAAI,CAACkB,eAAe,IAAI,CAACC,eAAe,IAAI,CAACC,MAAM,EAAE,OAAO,IAAI;EAEhE,IAAI,CAACP,cAAc,EAAE,OAAO,IAAI;EAEhC,oBACEV,IAAA;IAAKkB,EAAE,EAAC,yBAAyB;IAAAC,QAAA,eAC/BnB,IAAA,CAACT,mBAAmB;MAAC6B,MAAM,EAAEjB,WAAY;MAAAgB,QAAA,eACvCnB,IAAA,CAACb,aAAa;QAACkC,QAAQ,EAAEf,WAAW,CAACe,QAAS;QAACC,MAAM,EAAE;UAAEC,kBAAkB,EAAE,IAAI;UAAEC,oBAAoB,EAAE;QAAK,CAAE;QAAAL,QAAA,eAC9GnB,IAAA,CAACX,MAAM;UAAA8B,QAAA,eACLjB,KAAA,CAACd,KAAK;YAACqC,IAAI,EAAC,QAAQ;YAAAN,QAAA,gBAClBnB,IAAA,CAACZ,KAAK;cAACqC,IAAI,EAAC,SAAS;cAACC,OAAO,eAAE1B,IAAA,CAACR,eAAe,IAAE;YAAE,CAAE,CAAC,eACtDQ,IAAA,CAACZ,KAAK;cAACqC,IAAI,EAAC,iBAAiB;cAACC,OAAO,eAAE1B,IAAA,CAACP,cAAc,IAAE;YAAE,CAAE,CAAC,eAC7DO,IAAA,CAACZ,KAAK;cAACqC,IAAI,EAAC,QAAQ;cAACC,OAAO,eAAE1B,IAAA,CAACN,MAAM,IAAE;YAAE,CAAE,CAAC;UAAA,CACvC;QAAC,CAYF;MAAC,CACI;IAAC,CACG;EAAC,CACnB,CAAC;AAEV;AAEA,eAAeU,YAAY","ignoreList":[]}
1
+ {"version":3,"file":"AppReferrals.js","names":["React","useEffect","useState","BrowserRouter","Route","Routes","QueryClient","QueryClientProvider","ReferralBuilder","SupportingInfo","Review","setData","useAppCreateReferralContext","usePerson","initApp","jsx","_jsx","jsxs","_jsxs","queryClient","AppReferrals","_ref","appSettings","appState","callbacks","components","appInitialized","setAppInitialized","isAppInitialized","dispatch","currentEmployee","currentProvider","person","id","children","client","basename","future","v7_startTransition","v7_relativeSplatPath","path","element"],"sources":["../src/AppReferrals.js"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { BrowserRouter, Route, Routes } from 'react-router-dom';\nimport {\n QueryClient,\n QueryClientProvider,\n} from 'react-query';\nimport ReferralBuilder from './pages/builder/ReferralBuilder';\nimport SupportingInfo from './pages/supporting-info/SupportingInfo';\nimport Review from './pages/review/Review';\nimport './AppReferrals.scss';\nimport { setData, useAppCreateReferralContext } from './context/AppCreateReferralProvider';\nimport usePerson from './hooks/usePerson';\nimport { initApp } from './api/config';\n\nconst queryClient = new QueryClient();\nfunction AppReferrals({\n appSettings,\n appState,\n callbacks,\n components,\n}) {\n const [appInitialized, setAppInitialized] = useState(false);\n useEffect(() => {\n const isAppInitialized = initApp(appSettings, callbacks, components);\n setAppInitialized(isAppInitialized);\n }, [appSettings, callbacks, components]);\n\n useEffect(() => {\n dispatch(setData({\n ...appState\n }))\n }, [])\n\n //TODO Remove this when the Client Header component moves to a different team/repo\n\n const { dispatch } = useAppCreateReferralContext();\n const { currentEmployee, currentProvider } = appState;\n\n const person = usePerson();\n if (!currentEmployee || !currentProvider || !person) return null;\n\n if (!appInitialized) return null;\n\n return (\n <div id=\"app-referrals-container\">\n <QueryClientProvider client={queryClient}>\n <BrowserRouter basename={appSettings.basename} future={{ v7_startTransition: true, v7_relativeSplatPath: true }}>\n <Routes>\n <Route path=\"create\">\n <Route path=\"builder\" element={<ReferralBuilder />} />\n <Route path=\"supporting-info\" element={<SupportingInfo />} />\n <Route path=\"review\" element={<Review />} />\n </Route>\n\n {\n /* Any Future routes can be included here to handle more features inside the same repo\n <Route path=\"cases\">\n <Route path=\":id\" component={Referrals} />\n </Route>\n <Route path=\"referrals\">\n <Route path=\":id\" component={Referrals} />\n </Route> \n */\n }\n </Routes>\n </BrowserRouter>\n </QueryClientProvider>\n </div>\n )\n}\n\nexport default AppReferrals;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAClD,SAASC,aAAa,EAAEC,KAAK,EAAEC,MAAM,QAAQ,kBAAkB;AAC/D,SACEC,WAAW,EACXC,mBAAmB,QACd,aAAa;AACpB,OAAOC,eAAe,MAAM,iCAAiC;AAC7D,OAAOC,cAAc,MAAM,wCAAwC;AACnE,OAAOC,MAAM,MAAM,uBAAuB;AAC1C,OAAO,qBAAqB;AAC5B,SAASC,OAAO,EAAEC,2BAA2B,QAAQ,qCAAqC;AAC1F,OAAOC,SAAS,MAAM,mBAAmB;AACzC,SAASC,OAAO,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEvC,MAAMC,WAAW,GAAG,IAAIb,WAAW,CAAC,CAAC;AACrC,SAASc,YAAYA,CAAAC,IAAA,EAKlB;EAAA,IALmB;IACpBC,WAAW;IACXC,QAAQ;IACRC,SAAS;IACTC;EACF,CAAC,GAAAJ,IAAA;EACC,MAAM,CAACK,cAAc,EAAEC,iBAAiB,CAAC,GAAGzB,QAAQ,CAAC,KAAK,CAAC;EAC3DD,SAAS,CAAC,MAAM;IACd,MAAM2B,gBAAgB,GAAGd,OAAO,CAACQ,WAAW,EAAEE,SAAS,EAAEC,UAAU,CAAC;IACpEE,iBAAiB,CAACC,gBAAgB,CAAC;EACrC,CAAC,EAAE,CAACN,WAAW,EAAEE,SAAS,EAAEC,UAAU,CAAC,CAAC;EAExCxB,SAAS,CAAC,MAAM;IACd4B,QAAQ,CAAClB,OAAO,CAAC;MACf,GAAGY;IACL,CAAC,CAAC,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;;EAEN;;EAEA,MAAM;IAAEM;EAAS,CAAC,GAAGjB,2BAA2B,CAAC,CAAC;EAClD,MAAM;IAAEkB,eAAe;IAAEC;EAAgB,CAAC,GAAGR,QAAQ;EAErD,MAAMS,MAAM,GAAGnB,SAAS,CAAC,CAAC;EAC1B,IAAI,CAACiB,eAAe,IAAI,CAACC,eAAe,IAAI,CAACC,MAAM,EAAE,OAAO,IAAI;EAEhE,IAAI,CAACN,cAAc,EAAE,OAAO,IAAI;EAEhC,oBACEV,IAAA;IAAKiB,EAAE,EAAC,yBAAyB;IAAAC,QAAA,eAC/BlB,IAAA,CAACT,mBAAmB;MAAC4B,MAAM,EAAEhB,WAAY;MAAAe,QAAA,eACvClB,IAAA,CAACb,aAAa;QAACiC,QAAQ,EAAEd,WAAW,CAACc,QAAS;QAACC,MAAM,EAAE;UAAEC,kBAAkB,EAAE,IAAI;UAAEC,oBAAoB,EAAE;QAAK,CAAE;QAAAL,QAAA,eAC9GlB,IAAA,CAACX,MAAM;UAAA6B,QAAA,eACLhB,KAAA,CAACd,KAAK;YAACoC,IAAI,EAAC,QAAQ;YAAAN,QAAA,gBAClBlB,IAAA,CAACZ,KAAK;cAACoC,IAAI,EAAC,SAAS;cAACC,OAAO,eAAEzB,IAAA,CAACR,eAAe,IAAE;YAAE,CAAE,CAAC,eACtDQ,IAAA,CAACZ,KAAK;cAACoC,IAAI,EAAC,iBAAiB;cAACC,OAAO,eAAEzB,IAAA,CAACP,cAAc,IAAE;YAAE,CAAE,CAAC,eAC7DO,IAAA,CAACZ,KAAK;cAACoC,IAAI,EAAC,QAAQ;cAACC,OAAO,eAAEzB,IAAA,CAACN,MAAM,IAAE;YAAE,CAAE,CAAC;UAAA,CACvC;QAAC,CAYF;MAAC,CACI;IAAC,CACG;EAAC,CACnB,CAAC;AAEV;AAEA,eAAeU,YAAY","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 { render, screen } from "@testing-library/react";
5
2
  import AppReferrals from "./AppReferrals";
6
3
  import mockAppReferralsProps from "./__testUtils__/mockData/components/mockAppReferrals";
@@ -9,7 +6,9 @@ import AppCreateReferralProvider from "./context/AppCreateReferralProvider";
9
6
  import { act } from "./__testUtils__/test-utils";
10
7
  import { jsx as _jsx } from "react/jsx-runtime";
11
8
  jest.mock('@unite-us/shares-utils', () => ({
12
- ShareDrawer: jest.fn(props => /*#__PURE__*/_jsx("share-drawer", _objectSpread({}, props)))
9
+ ShareDrawer: jest.fn(props => /*#__PURE__*/_jsx("share-drawer", {
10
+ ...props
11
+ }))
13
12
  }));
14
13
  describe('AppReferrals', () => {
15
14
  beforeEach(() => {
@@ -18,11 +17,13 @@ describe('AppReferrals', () => {
18
17
  it('should render the route "builder"', async () => {
19
18
  window.history.pushState({}, 'Test page', '/create/builder');
20
19
  render(/*#__PURE__*/_jsx(AppCreateReferralProvider, {
21
- children: /*#__PURE__*/_jsx(AppReferrals, _objectSpread(_objectSpread({}, mockAppReferralsProps), {}, {
22
- appState: _objectSpread(_objectSpread({}, mockAppReferralsProps.appState), {}, {
20
+ children: /*#__PURE__*/_jsx(AppReferrals, {
21
+ ...mockAppReferralsProps,
22
+ appState: {
23
+ ...mockAppReferralsProps.appState,
23
24
  person
24
- })
25
- }))
25
+ }
26
+ })
26
27
  }));
27
28
  expect(document.querySelector('#app-referrals-container')).not.toBeNull();
28
29
  expect(await screen.findByText(/Prepare Your Referrals/i)).toBeInTheDocument();
@@ -31,22 +32,26 @@ describe('AppReferrals', () => {
31
32
  window.history.pushState({}, 'Test page', '/create/supporting-info');
32
33
  // We need await/act because we set the component local state with the ferms we fetch we the components renders
33
34
  await act(async () => render(/*#__PURE__*/_jsx(AppCreateReferralProvider, {
34
- children: /*#__PURE__*/_jsx(AppReferrals, _objectSpread(_objectSpread({}, mockAppReferralsProps), {}, {
35
- appState: _objectSpread(_objectSpread({}, mockAppReferralsProps.appState), {}, {
35
+ children: /*#__PURE__*/_jsx(AppReferrals, {
36
+ ...mockAppReferralsProps,
37
+ appState: {
38
+ ...mockAppReferralsProps.appState,
36
39
  person
37
- })
38
- }))
40
+ }
41
+ })
39
42
  })));
40
43
  expect(await screen.findByText(/Provide supporting information to help quickly connect your client with services./i)).toBeInTheDocument();
41
44
  });
42
45
  it('should render the route "review"', () => {
43
46
  window.history.pushState({}, 'Test page', '/create/review');
44
47
  render(/*#__PURE__*/_jsx(AppCreateReferralProvider, {
45
- children: /*#__PURE__*/_jsx(AppReferrals, _objectSpread(_objectSpread({}, mockAppReferralsProps), {}, {
46
- appState: _objectSpread(_objectSpread({}, mockAppReferralsProps.appState), {}, {
48
+ children: /*#__PURE__*/_jsx(AppReferrals, {
49
+ ...mockAppReferralsProps,
50
+ appState: {
51
+ ...mockAppReferralsProps.appState,
47
52
  person
48
- })
49
- }))
53
+ }
54
+ })
50
55
  }));
51
56
  expect(screen.getByText(/Review Referrals/i)).toBeInTheDocument();
52
57
  });
@@ -67,11 +72,13 @@ describe('AppReferrals', () => {
67
72
  }]
68
73
  }));
69
74
  render(/*#__PURE__*/_jsx(AppCreateReferralProvider, {
70
- children: /*#__PURE__*/_jsx(AppReferrals, _objectSpread(_objectSpread({}, mockAppReferralsProps), {}, {
71
- appState: _objectSpread(_objectSpread({}, mockAppReferralsProps.appState), {}, {
75
+ children: /*#__PURE__*/_jsx(AppReferrals, {
76
+ ...mockAppReferralsProps,
77
+ appState: {
78
+ ...mockAppReferralsProps.appState,
72
79
  person
73
- })
74
- }))
80
+ }
81
+ })
75
82
  }));
76
83
  expect(await screen.findByText(/Prepare Your Referrals/i)).toBeInTheDocument();
77
84
  const persistedState = JSON.parse(sessionStorage.getItem('ehrstate-app-create-referral'));
@@ -1 +1 @@
1
- {"version":3,"file":"AppReferrals.test.js","names":["render","screen","AppReferrals","mockAppReferralsProps","person","AppCreateReferralProvider","act","jsx","_jsx","jest","mock","ShareDrawer","fn","props","_objectSpread","describe","beforeEach","sessionStorage","clear","it","window","history","pushState","children","appState","expect","document","querySelector","not","toBeNull","findByText","toBeInTheDocument","getByText","setItem","JSON","stringify","draftState","persistedAttachments","id","filename","referrals","persistedState","parse","getItem","toEqual"],"sources":["../src/AppReferrals.test.js"],"sourcesContent":["import { render, screen } from \"@testing-library/react\";\nimport AppReferrals from \"./AppReferrals\";\nimport mockAppReferralsProps from \"./__testUtils__/mockData/components/mockAppReferrals\";\nimport { person } from \"./__testUtils__/mockData/mockPeople\";\nimport AppCreateReferralProvider from \"./context/AppCreateReferralProvider\";\nimport { act } from \"./__testUtils__/test-utils\";\n\njest.mock('@unite-us/shares-utils', () => ({\n ShareDrawer: jest.fn((props) => <share-drawer {...props} />),\n}));\n\ndescribe('AppReferrals', () => {\n beforeEach(() => {\n sessionStorage.clear();\n });\n\n it('should render the route \"builder\"', async () => {\n window.history.pushState({}, 'Test page', '/create/builder')\n\n render(\n <AppCreateReferralProvider>\n <AppReferrals {...mockAppReferralsProps} appState={{ ...mockAppReferralsProps.appState, person }} />\n </AppCreateReferralProvider>)\n expect(document.querySelector('#app-referrals-container')).not.toBeNull();\n expect(await screen.findByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n });\n\n it('should render the route \"supporting info\"', async () => {\n window.history.pushState({}, 'Test page', '/create/supporting-info')\n // We need await/act because we set the component local state with the ferms we fetch we the components renders\n await act(async () => render(\n <AppCreateReferralProvider>\n <AppReferrals {...mockAppReferralsProps} appState={{ ...mockAppReferralsProps.appState, person }} />\n </AppCreateReferralProvider>\n ))\n\n expect(await screen.findByText(/Provide supporting information to help quickly connect your client with services./i)).toBeInTheDocument();\n });\n\n it('should render the route \"review\"', () => {\n window.history.pushState({}, 'Test page', '/create/review')\n render(\n <AppCreateReferralProvider>\n <AppReferrals {...mockAppReferralsProps} appState={{ ...mockAppReferralsProps.appState, person }} />\n </AppCreateReferralProvider>)\n expect(screen.getByText(/Review Referrals/i)).toBeInTheDocument();\n });\n\n it('reinitializes state instead of reusing persisted draft attachments', async () => {\n window.history.pushState({}, 'Test page', '/create/builder');\n sessionStorage.setItem('ehrstate-app-create-referral', JSON.stringify({\n draftState: {\n persistedAttachments: [{ id: 'old-file', filename: 'old.pdf' }],\n },\n referrals: [{\n persistedAttachments: [{ id: 'old-file', filename: 'old.pdf' }],\n }],\n }));\n\n render(\n <AppCreateReferralProvider>\n <AppReferrals {...mockAppReferralsProps} appState={{ ...mockAppReferralsProps.appState, person }} />\n </AppCreateReferralProvider>\n );\n\n expect(await screen.findByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n\n const persistedState = JSON.parse(sessionStorage.getItem('ehrstate-app-create-referral'));\n expect(persistedState.draftState).toBeNull();\n expect(persistedState.referrals).toEqual([]);\n });\n\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AppReferrals.test.js","names":["render","screen","AppReferrals","mockAppReferralsProps","person","AppCreateReferralProvider","act","jsx","_jsx","jest","mock","ShareDrawer","fn","props","describe","beforeEach","sessionStorage","clear","it","window","history","pushState","children","appState","expect","document","querySelector","not","toBeNull","findByText","toBeInTheDocument","getByText","setItem","JSON","stringify","draftState","persistedAttachments","id","filename","referrals","persistedState","parse","getItem","toEqual"],"sources":["../src/AppReferrals.test.js"],"sourcesContent":["import { render, screen } from \"@testing-library/react\";\nimport AppReferrals from \"./AppReferrals\";\nimport mockAppReferralsProps from \"./__testUtils__/mockData/components/mockAppReferrals\";\nimport { person } from \"./__testUtils__/mockData/mockPeople\";\nimport AppCreateReferralProvider from \"./context/AppCreateReferralProvider\";\nimport { act } from \"./__testUtils__/test-utils\";\n\njest.mock('@unite-us/shares-utils', () => ({\n ShareDrawer: jest.fn((props) => <share-drawer {...props} />),\n}));\n\ndescribe('AppReferrals', () => {\n beforeEach(() => {\n sessionStorage.clear();\n });\n\n it('should render the route \"builder\"', async () => {\n window.history.pushState({}, 'Test page', '/create/builder')\n\n render(\n <AppCreateReferralProvider>\n <AppReferrals {...mockAppReferralsProps} appState={{ ...mockAppReferralsProps.appState, person }} />\n </AppCreateReferralProvider>)\n expect(document.querySelector('#app-referrals-container')).not.toBeNull();\n expect(await screen.findByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n });\n\n it('should render the route \"supporting info\"', async () => {\n window.history.pushState({}, 'Test page', '/create/supporting-info')\n // We need await/act because we set the component local state with the ferms we fetch we the components renders\n await act(async () => render(\n <AppCreateReferralProvider>\n <AppReferrals {...mockAppReferralsProps} appState={{ ...mockAppReferralsProps.appState, person }} />\n </AppCreateReferralProvider>\n ))\n\n expect(await screen.findByText(/Provide supporting information to help quickly connect your client with services./i)).toBeInTheDocument();\n });\n\n it('should render the route \"review\"', () => {\n window.history.pushState({}, 'Test page', '/create/review')\n render(\n <AppCreateReferralProvider>\n <AppReferrals {...mockAppReferralsProps} appState={{ ...mockAppReferralsProps.appState, person }} />\n </AppCreateReferralProvider>)\n expect(screen.getByText(/Review Referrals/i)).toBeInTheDocument();\n });\n\n it('reinitializes state instead of reusing persisted draft attachments', async () => {\n window.history.pushState({}, 'Test page', '/create/builder');\n sessionStorage.setItem('ehrstate-app-create-referral', JSON.stringify({\n draftState: {\n persistedAttachments: [{ id: 'old-file', filename: 'old.pdf' }],\n },\n referrals: [{\n persistedAttachments: [{ id: 'old-file', filename: 'old.pdf' }],\n }],\n }));\n\n render(\n <AppCreateReferralProvider>\n <AppReferrals {...mockAppReferralsProps} appState={{ ...mockAppReferralsProps.appState, person }} />\n </AppCreateReferralProvider>\n );\n\n expect(await screen.findByText(/Prepare Your Referrals/i)).toBeInTheDocument();\n\n const persistedState = JSON.parse(sessionStorage.getItem('ehrstate-app-create-referral'));\n expect(persistedState.draftState).toBeNull();\n expect(persistedState.referrals).toEqual([]);\n });\n\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 { programsMap } from './mockPrograms';
5
2
  import { unlistedProgramsMap } from './mockUnlistedPrograms';
6
3
  import { providersMap } from './mockProviders';
@@ -65,21 +62,20 @@ const filterSingleProgram = _ref2 => {
65
62
  const sendingProviderType = sendingProviderIsCC ? 'coordination_center' : 'provider';
66
63
  const sendingProvider = providers.find(provider => provider.attributes.licensed && provider.attributes.provider_type === sendingProviderType && provider.attributes.sensitive === sendingProviderSensitive);
67
64
  return programs.filter(program => {
68
- var _relationships$fee_sc, _feeSchedulePrograms$, _feeSchedulePrograms$2;
69
65
  const {
70
66
  attributes,
71
67
  relationships
72
68
  } = program;
73
69
  const receivingProvider = providers.find(provider => provider.id === relationships.provider.data.id);
74
70
  const inCurrentProviderMatch = programInCurrentProvider ? relationships.provider.data.id === sendingProvider.id : relationships.provider.data.id !== sendingProvider.id;
75
- const receivingProviderSensitiveMatch = (receivingProvider === null || receivingProvider === void 0 ? void 0 : receivingProvider.attributes.sensitive) === receivingProviderSensitive;
76
- const receivingProviderInNetworkMatch = (receivingProvider === null || receivingProvider === void 0 ? void 0 : receivingProvider.attributes.licensed) === receivingProviderLicensed;
77
- const providerIsCCMatch = receivingProviderIsCC ? (receivingProvider === null || receivingProvider === void 0 ? void 0 : receivingProvider.attributes.provider_type) === 'coordination_center' : (receivingProvider === null || receivingProvider === void 0 ? void 0 : receivingProvider.attributes.provider_type) === 'provider';
71
+ const receivingProviderSensitiveMatch = receivingProvider?.attributes.sensitive === receivingProviderSensitive;
72
+ const receivingProviderInNetworkMatch = receivingProvider?.attributes.licensed === receivingProviderLicensed;
73
+ const providerIsCCMatch = receivingProviderIsCC ? receivingProvider?.attributes.provider_type === 'coordination_center' : receivingProvider?.attributes.provider_type === 'provider';
78
74
  const programReceivingReferralsMatch = attributes.receiving_referrals === receivingReferrals;
79
- const fspId = (_relationships$fee_sc = relationships.fee_schedule_program) === null || _relationships$fee_sc === void 0 || (_relationships$fee_sc = _relationships$fee_sc.data) === null || _relationships$fee_sc === void 0 ? void 0 : _relationships$fee_sc.id;
75
+ const fspId = relationships.fee_schedule_program?.data?.id;
80
76
  const isFundedMatch = !!fspId === isFunded;
81
- const requiresAuthorizationMatch = (!!fspId && ((_feeSchedulePrograms$ = feeSchedulePrograms.find(fsp => fsp.id === fspId)) === null || _feeSchedulePrograms$ === void 0 || (_feeSchedulePrograms$ = _feeSchedulePrograms$.attributes) === null || _feeSchedulePrograms$ === void 0 ? void 0 : _feeSchedulePrograms$.authorization_required)) === requiresAuthorization;
82
- const cmCodeRequiredOnAuthorizationMatch = (!!fspId && ((_feeSchedulePrograms$2 = feeSchedulePrograms.find(fsp => fsp.id === fspId)) === null || _feeSchedulePrograms$2 === void 0 || (_feeSchedulePrograms$2 = _feeSchedulePrograms$2.attributes) === null || _feeSchedulePrograms$2 === void 0 ? void 0 : _feeSchedulePrograms$2.cm_code_required_on_authorization)) === cmCodeRequiredOnAuthorization;
77
+ const requiresAuthorizationMatch = (!!fspId && feeSchedulePrograms.find(fsp => fsp.id === fspId)?.attributes?.authorization_required) === requiresAuthorization;
78
+ const cmCodeRequiredOnAuthorizationMatch = (!!fspId && feeSchedulePrograms.find(fsp => fsp.id === fspId)?.attributes?.cm_code_required_on_authorization) === cmCodeRequiredOnAuthorization;
83
79
  return inCurrentProviderMatch && programReceivingReferralsMatch && receivingProviderInNetworkMatch && receivingProviderSensitiveMatch && providerIsCCMatch && isFundedMatch && requiresAuthorizationMatch && cmCodeRequiredOnAuthorizationMatch;
84
80
  });
85
81
  };
@@ -213,17 +209,15 @@ const filterByProviderUniqueness = (programs, programsInSameProvider) => {
213
209
  };
214
210
  const filterByFunding = (programs, isFunded) => {
215
211
  return programs.filter(program => {
216
- var _program$relationship;
217
- const fspId = (_program$relationship = program.relationships.fee_schedule_program) === null || _program$relationship === void 0 || (_program$relationship = _program$relationship.data) === null || _program$relationship === void 0 ? void 0 : _program$relationship.id;
212
+ const fspId = program.relationships.fee_schedule_program?.data?.id;
218
213
  return isFunded ? !!fspId : !fspId;
219
214
  });
220
215
  };
221
216
  const filterByAuthorization = (programs, requiresAuthorization) => {
222
217
  return programs.filter(program => {
223
- var _program$relationship2, _fsp$attributes;
224
- const fspId = (_program$relationship2 = program.relationships.fee_schedule_program) === null || _program$relationship2 === void 0 || (_program$relationship2 = _program$relationship2.data) === null || _program$relationship2 === void 0 ? void 0 : _program$relationship2.id;
218
+ const fspId = program.relationships.fee_schedule_program?.data?.id;
225
219
  const fsp = feeSchedulePrograms.find(fsp => fsp.id === fspId);
226
- return requiresAuthorization === !!(fsp !== null && fsp !== void 0 && (_fsp$attributes = fsp.attributes) !== null && _fsp$attributes !== void 0 && _fsp$attributes.authorization_required);
220
+ return requiresAuthorization === !!fsp?.attributes?.authorization_required;
227
221
  });
228
222
  };
229
223
  const applyBasicFilters = (filteredPrograms, config) => {
@@ -275,9 +269,10 @@ const filterGroupedPrograms = config => {
275
269
  const providerMatch = getProviderMatchedPrograms(networkMatch, programsInSameProvider);
276
270
  const receivingProviderMatch = filterByReceivingProvider(providerMatch, config);
277
271
  const hasMixedDistributions = onAndOffPlatformPrograms || ccAndNonCCPrograms || licensedAndUnlicensedReceivingProviders;
278
- const configWithoutProviderFilter = _objectSpread(_objectSpread({}, config), {}, {
272
+ const configWithoutProviderFilter = {
273
+ ...config,
279
274
  programsInSameProvider: hasMixedDistributions ? true : config.programsInSameProvider
280
- });
275
+ };
281
276
  let filteredPrograms = applyBasicFilters(receivingProviderMatch, configWithoutProviderFilter);
282
277
  if (licensedAndUnlicensedReceivingProviders && !onAndOffPlatformPrograms && !ccAndNonCCPrograms) {
283
278
  filteredPrograms = applyLicensedDistribution(filteredPrograms, programCount, licensedProviderIsCC);
@@ -377,13 +372,12 @@ const filterAndSelectPrograms = _ref7 => {
377
372
 
378
373
  // Group all unlisted programs by service, filter by program count and filter by results amount
379
374
  const filterAndSelectUnlistedPrograms = _ref8 => {
380
- var _groupedUnlistedProgr;
381
375
  let {
382
376
  programCount = 1,
383
377
  results = 1
384
378
  } = _ref8;
385
379
  const groupedUnlistedProgramsByService = Object.values(groupBy(unlistedPrograms, 'services[0]'));
386
- let selectedUnlistedPrograms = (_groupedUnlistedProgr = groupedUnlistedProgramsByService.filter(group => group.length === programCount)) === null || _groupedUnlistedProgr === void 0 || (_groupedUnlistedProgr = _groupedUnlistedProgr.slice(0, results)) === null || _groupedUnlistedProgr === void 0 ? void 0 : _groupedUnlistedProgr.flat();
380
+ let selectedUnlistedPrograms = groupedUnlistedProgramsByService.filter(group => group.length === programCount)?.slice(0, results)?.flat();
387
381
  return selectedUnlistedPrograms;
388
382
  };
389
383
 
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["programsMap","unlistedProgramsMap","providersMap","servicesMap","feeScheduleProgramsMap","all","groupBy","compact","uniqBy","providers","Array","from","values","programs","unlistedPrograms","services","feeSchedulePrograms","separateProgramsByNetwork","_ref","singleNetwork","programsWithSharedNetwork","programsWithSingleSharedNetwork","forEach","program","providerId","relationships","provider","data","id","find","networkIds","networks","map","network","hasSharedNetwork","some","otherProgram","otherProviderId","otherProvider","otherNetworkIds","networkId","includes","hasSingleSharedNetwork","length","push","filterSingleProgram","_ref2","receivingProviderIsCC","sendingProviderIsCC","programInCurrentProvider","sendingProviderSensitive","receivingProviderLicensed","receivingProviderSensitive","receivingReferrals","isFunded","requiresAuthorization","cmCodeRequiredOnAuthorization","sendingProviderType","sendingProvider","attributes","licensed","provider_type","sensitive","filter","_relationships$fee_sc","_feeSchedulePrograms$","_feeSchedulePrograms$2","receivingProvider","inCurrentProviderMatch","receivingProviderSensitiveMatch","receivingProviderInNetworkMatch","providerIsCCMatch","programReceivingReferralsMatch","receiving_referrals","fspId","fee_schedule_program","isFundedMatch","requiresAuthorizationMatch","fsp","authorization_required","cmCodeRequiredOnAuthorizationMatch","cm_code_required_on_authorization","getCCOrNonCCPrograms","_ref3","filteredPrograms","providerType","getLicensedOrUnlicensedPrograms","_ref4","isLicensed","licensedProviderIsCC","getSensitiveAndNonSensitivePrograms","_ref5","sensitiveProviderCount","programCount","sensitiveReceivingReferrals","sensitivePrograms","slice","nonSensitivePrograms","distributePrograms","type1Programs","type2Programs","maxPerType","Math","floor","selectedType1","selectedType2","remaining","extraType1","stillRemaining","applyPlatformDistribution","onPlatform","offPlatform","applyCCDistribution","ccPrograms","nonCCPrograms","applyLicensedDistribution","licensedPrograms","unlicensedPrograms","getNetworkMatchedPrograms","programsInSameNetwork","getProviderMatchedPrograms","networkMatch","programsInSameProvider","programsGroupedByProviderId","Object","flat","filterByReceivingProvider","providerMatch","config","licensedAndUnlicensedReceivingProviders","sensitiveAndNonSensitiveReceivingProvider","ccAndNonCCPrograms","p","providerInNetworkMatch","providerIsSensitiveMatch","filterByPlatform","onAndOffPlatformPrograms","filterByProviderUniqueness","filterByFunding","_program$relationship","filterByAuthorization","_program$relationship2","_fsp$attributes","applyBasicFilters","result","getProgramsWithSameFeeSchedule","_ref6","programsGroupedByFeeSchedule","groupWithEnoughPrograms","group","filterGroupedPrograms","sameFeeScheduleProgram","receivingProviderMatch","hasMixedDistributions","configWithoutProviderFilter","_objectSpread","filterAndSelectPrograms","_ref7","isGrouped","sensitiveService","serviceCount","selectPrograms","filterAndSelectUnlistedPrograms","_ref8","_groupedUnlistedProgr","results","groupedUnlistedProgramsByService","selectedUnlistedPrograms","filteredServices","s","selectedPrograms","programServices","_ref9","isOffPlatform","getSelectedPrograms","options","getSelectedUnlistedPrograms"],"sources":["../../../src/__testUtils__/mockData/utils.js"],"sourcesContent":["import { programsMap } from './mockPrograms';\nimport { unlistedProgramsMap } from './mockUnlistedPrograms';\nimport { providersMap } from './mockProviders';\nimport { servicesMap } from './mockServices'\nimport { feeScheduleProgramsMap } from './mockFeeSchedulePrograms'\nimport { all, groupBy, compact, uniqBy } from 'lodash';\n\nconst providers = Array.from(providersMap.values());\nconst programs = Array.from(programsMap.values());\nconst unlistedPrograms = Array.from(unlistedProgramsMap.values());\nconst services = Array.from(servicesMap.values());\nconst feeSchedulePrograms = Array.from(feeScheduleProgramsMap.values());\n\n// Function to separate programs into those with shared and non-shared networks\nconst separateProgramsByNetwork = ({ singleNetwork }) => {\n const programsWithSharedNetwork = [];\n const programsWithSingleSharedNetwork = [];\n\n programs.forEach((program) => {\n const providerId = program.relationships.provider.data.id;\n const provider = providers.find((provider) => provider.id === providerId);\n\n if (provider) {\n const networkIds = provider.relationships.networks.data.map((network) => network.id);\n\n const hasSharedNetwork = programs.some((otherProgram) => {\n if (otherProgram.id !== program.id) {\n const otherProviderId = otherProgram.relationships.provider.data.id;\n const otherProvider = providers.find((otherProvider) => otherProvider.id === otherProviderId);\n \n if (otherProvider) {\n const otherNetworkIds = otherProvider.relationships.networks.data.map((network) => network.id);\n return networkIds.some((networkId) => otherNetworkIds.includes(networkId));\n }\n }\n return false;\n });\n\n const hasSingleSharedNetwork = hasSharedNetwork && provider.relationships.networks.data.length === 1;\n\n if (singleNetwork && hasSingleSharedNetwork) {\n programsWithSingleSharedNetwork.push(program);\n } else if (hasSharedNetwork) {\n programsWithSharedNetwork.push(program);\n }\n }\n });\n\n return { programsWithSharedNetwork, programsWithSingleSharedNetwork };\n}\n\nconst filterSingleProgram = ({\n receivingProviderIsCC = false,\n sendingProviderIsCC = false,\n programInCurrentProvider = false,\n sendingProviderSensitive,\n receivingProviderLicensed,\n receivingProviderSensitive = false,\n receivingReferrals = true,\n isFunded = false,\n requiresAuthorization = false,\n cmCodeRequiredOnAuthorization = false,\n}) => {\n const sendingProviderType = sendingProviderIsCC ? 'coordination_center' : 'provider';\n const sendingProvider = providers.find((provider) => (\n provider.attributes.licensed && provider.attributes.provider_type === sendingProviderType && provider.attributes.sensitive === sendingProviderSensitive\n ));\n return programs.filter((program) => {\n const { attributes, relationships } = program;\n const receivingProvider = providers.find((provider) => provider.id === relationships.provider.data.id);\n const inCurrentProviderMatch = programInCurrentProvider ?\n relationships.provider.data.id === sendingProvider.id :\n relationships.provider.data.id !== sendingProvider.id;\n const receivingProviderSensitiveMatch = receivingProvider?.attributes.sensitive === receivingProviderSensitive;\n const receivingProviderInNetworkMatch = receivingProvider?.attributes.licensed === receivingProviderLicensed;\n const providerIsCCMatch = receivingProviderIsCC ? receivingProvider?.attributes.provider_type === 'coordination_center' : receivingProvider?.attributes.provider_type === 'provider'\n const programReceivingReferralsMatch = attributes.receiving_referrals === receivingReferrals;\n const fspId = relationships.fee_schedule_program?.data?.id;\n const isFundedMatch = !!fspId === isFunded;\n const requiresAuthorizationMatch = (!!fspId && feeSchedulePrograms.find((fsp) => fsp.id === fspId)?.attributes?.authorization_required) === requiresAuthorization;\n const cmCodeRequiredOnAuthorizationMatch = (!!fspId && feeSchedulePrograms.find((fsp) => fsp.id === fspId)?.attributes?.cm_code_required_on_authorization) === cmCodeRequiredOnAuthorization;\n\n return inCurrentProviderMatch && programReceivingReferralsMatch && receivingProviderInNetworkMatch &&\n receivingProviderSensitiveMatch && providerIsCCMatch && isFundedMatch && requiresAuthorizationMatch && cmCodeRequiredOnAuthorizationMatch;\n })\n}\n\nconst getCCOrNonCCPrograms = ({ filteredPrograms, providerType }) => (\n filteredPrograms.filter((program) => {\n const providerId = program.relationships.provider.data.id;\n const provider = providers.find((provider) => provider.id === providerId);\n return provider.attributes.provider_type === providerType;\n })\n);\n\nconst getLicensedOrUnlicensedPrograms = ({ filteredPrograms, isLicensed, licensedProviderIsCC }) => (\n filteredPrograms.filter((program) => {\n const providerId = program.relationships.provider.data.id;\n const provider = providers.find((provider) => provider.id === providerId);\n return provider.attributes.licensed === isLicensed && (licensedProviderIsCC ? provider.attributes.provider_type === 'coordination_center' : true);\n })\n);\n\nconst getSensitiveAndNonSensitivePrograms = ({ filteredPrograms, sensitiveProviderCount, programCount, sensitiveReceivingReferrals }) => {\n const sensitivePrograms = filteredPrograms.filter((program) => {\n const providerId = program.relationships.provider.data.id;\n const provider = providers.find((provider) => provider.id === providerId);\n return provider.attributes.sensitive && (sensitiveReceivingReferrals ? program.attributes.receiving_referrals === sensitiveReceivingReferrals : true);\n }).slice(0, sensitiveProviderCount);\n\n const nonSensitivePrograms = filteredPrograms.filter((program) => {\n const providerId = program.relationships.provider.data.id;\n const provider = providers.find((provider) => provider.id === providerId);\n return !provider.attributes.sensitive;\n }).slice(0, programCount - sensitiveProviderCount);\n\n return [...nonSensitivePrograms, ...sensitivePrograms];\n}\n\nconst distributePrograms = (type1Programs, type2Programs, programCount) => {\n const maxPerType = Math.floor(programCount / 2);\n const selectedType1 = type1Programs.slice(0, maxPerType);\n const selectedType2 = type2Programs.slice(0, maxPerType);\n \n const remaining = programCount - selectedType1.length - selectedType2.length;\n \n if (remaining > 0) {\n const extraType1 = type1Programs.slice(selectedType1.length, selectedType1.length + remaining);\n selectedType1.push(...extraType1);\n const stillRemaining = remaining - extraType1.length;\n if (stillRemaining > 0) {\n selectedType2.push(...type2Programs.slice(selectedType2.length, selectedType2.length + stillRemaining));\n }\n }\n \n return compact([...selectedType1, ...selectedType2]);\n};\n\nconst applyPlatformDistribution = (filteredPrograms, programCount) => {\n const onPlatform = filteredPrograms.filter((program) => program.attributes.receiving_referrals);\n const offPlatform = filteredPrograms.filter((program) => !program.attributes.receiving_referrals);\n return distributePrograms(onPlatform, offPlatform, programCount);\n};\n\nconst applyCCDistribution = (filteredPrograms, programCount) => {\n const ccPrograms = getCCOrNonCCPrograms({ filteredPrograms, providerType: 'coordination_center' });\n const nonCCPrograms = getCCOrNonCCPrograms({ filteredPrograms, providerType: 'provider' });\n return distributePrograms(ccPrograms, nonCCPrograms, programCount);\n};\n\nconst applyLicensedDistribution = (filteredPrograms, programCount, licensedProviderIsCC) => {\n const licensedPrograms = getLicensedOrUnlicensedPrograms({ filteredPrograms, isLicensed: true, licensedProviderIsCC });\n const unlicensedPrograms = getLicensedOrUnlicensedPrograms({ filteredPrograms, isLicensed: false });\n return distributePrograms(licensedPrograms, unlicensedPrograms, programCount);\n};\n\nconst getNetworkMatchedPrograms = (programsInSameNetwork, singleNetwork, programsWithSharedNetwork, programsWithSingleSharedNetwork) => {\n if (programsInSameNetwork && singleNetwork) {\n return programsWithSingleSharedNetwork;\n }\n if (programsInSameNetwork) {\n return programsWithSharedNetwork;\n }\n return programs;\n};\n\nconst getProviderMatchedPrograms = (networkMatch, programsInSameProvider) => {\n const programsGroupedByProviderId = Object.values(groupBy(networkMatch, 'relationships.provider.data.id'));\n return programsInSameProvider\n ? programsGroupedByProviderId.filter(programs => programs.length > 1).flat()\n : programsGroupedByProviderId.flat();\n};\n\nconst filterByReceivingProvider = (providerMatch, config) => {\n const {\n receivingProviderLicensed,\n receivingProviderIsCC,\n receivingProviderSensitive,\n licensedAndUnlicensedReceivingProviders,\n sensitiveAndNonSensitiveReceivingProvider,\n ccAndNonCCPrograms\n } = config;\n\n return providerMatch.filter((program) => {\n const providerId = program.relationships.provider.data.id;\n const provider = providers.find((p) => p.id === providerId);\n \n const providerInNetworkMatch = receivingProviderLicensed ? provider.attributes.licensed : !provider.attributes.licensed;\n const providerIsCCMatch = receivingProviderIsCC ? provider.attributes.provider_type === 'coordination_center' : provider.attributes.provider_type === 'provider';\n const providerIsSensitiveMatch = provider.attributes.sensitive === receivingProviderSensitive;\n\n return (licensedAndUnlicensedReceivingProviders || providerInNetworkMatch) &&\n (sensitiveAndNonSensitiveReceivingProvider || providerIsSensitiveMatch) &&\n (ccAndNonCCPrograms || providerIsCCMatch);\n });\n};\n\nconst filterByPlatform = (programs, onAndOffPlatformPrograms, receivingReferrals) => {\n if (onAndOffPlatformPrograms) {\n return programs;\n }\n return programs.filter((program) => program.attributes.receiving_referrals === receivingReferrals);\n};\n\nconst filterByProviderUniqueness = (programs, programsInSameProvider) => {\n if (programsInSameProvider) {\n return programs;\n }\n return uniqBy(programs, 'relationships.provider.data.id');\n};\n\nconst filterByFunding = (programs, isFunded) => {\n return programs.filter(program => {\n const fspId = program.relationships.fee_schedule_program?.data?.id;\n return isFunded ? !!fspId : !fspId;\n });\n};\n\nconst filterByAuthorization = (programs, requiresAuthorization) => {\n return programs.filter(program => {\n const fspId = program.relationships.fee_schedule_program?.data?.id;\n const fsp = feeSchedulePrograms.find((fsp) => fsp.id === fspId);\n return requiresAuthorization === !!fsp?.attributes?.authorization_required;\n });\n};\n\nconst applyBasicFilters = (filteredPrograms, config) => {\n const { onAndOffPlatformPrograms, receivingReferrals, programsInSameProvider, isFunded, requiresAuthorization } = config;\n \n let result = filteredPrograms;\n result = filterByPlatform(result, onAndOffPlatformPrograms, receivingReferrals);\n result = filterByProviderUniqueness(result, programsInSameProvider);\n result = filterByFunding(result, isFunded);\n result = filterByAuthorization(result, requiresAuthorization);\n\n return result;\n};\n\nconst getProgramsWithSameFeeSchedule = ({ filteredPrograms, programCount }) => {\n const programsGroupedByFeeSchedule = Object.values(groupBy(filteredPrograms, 'relationships.fee_schedule_program.data.id'));\n const groupWithEnoughPrograms = programsGroupedByFeeSchedule.find(group => group.length >= programCount);\n return groupWithEnoughPrograms ? groupWithEnoughPrograms.slice(0, programCount) : [];\n}\n\nconst filterGroupedPrograms = (config) => {\n const {\n programsInSameNetwork,\n singleNetwork,\n programsInSameProvider,\n onAndOffPlatformPrograms,\n ccAndNonCCPrograms,\n licensedAndUnlicensedReceivingProviders,\n sensitiveAndNonSensitiveReceivingProvider,\n sameFeeScheduleProgram,\n programCount,\n sensitiveProviderCount,\n sensitiveReceivingReferrals,\n licensedProviderIsCC\n } = config;\n\n const { programsWithSharedNetwork, programsWithSingleSharedNetwork } = separateProgramsByNetwork({ singleNetwork });\n\n const networkMatch = getNetworkMatchedPrograms(programsInSameNetwork, singleNetwork, programsWithSharedNetwork, programsWithSingleSharedNetwork);\n const providerMatch = getProviderMatchedPrograms(networkMatch, programsInSameProvider);\n const receivingProviderMatch = filterByReceivingProvider(providerMatch, config);\n const hasMixedDistributions = onAndOffPlatformPrograms || ccAndNonCCPrograms || licensedAndUnlicensedReceivingProviders;\n const configWithoutProviderFilter = { ...config, programsInSameProvider: hasMixedDistributions ? true : config.programsInSameProvider };\n let filteredPrograms = applyBasicFilters(receivingProviderMatch, configWithoutProviderFilter);\n\n if (licensedAndUnlicensedReceivingProviders && !onAndOffPlatformPrograms && !ccAndNonCCPrograms) {\n filteredPrograms = applyLicensedDistribution(filteredPrograms, programCount, licensedProviderIsCC);\n }\n\n if (ccAndNonCCPrograms && !onAndOffPlatformPrograms) {\n filteredPrograms = applyCCDistribution(filteredPrograms, programCount);\n }\n\n if (onAndOffPlatformPrograms) {\n filteredPrograms = applyPlatformDistribution(filteredPrograms, programCount);\n }\n\n if (sensitiveAndNonSensitiveReceivingProvider) {\n filteredPrograms = getSensitiveAndNonSensitivePrograms({ \n filteredPrograms, \n sensitiveReceivingReferrals, \n sensitiveProviderCount, \n programCount \n });\n }\n\n if (sameFeeScheduleProgram) {\n filteredPrograms = getProgramsWithSameFeeSchedule({ filteredPrograms, programCount });\n }\n\n return filteredPrograms;\n};\n\n// Function to filter and select programs based on criteria\nconst filterAndSelectPrograms = ({\n sendingProviderIsCC = false,\n sendingProviderSensitive = false,\n receivingProviderIsCC = false,\n licensedProviderIsCC = false,\n programInCurrentProvider = false,\n receivingProviderLicensed = true,\n licensedAndUnlicensedReceivingProviders = false,\n receivingProviderSensitive = false,\n sensitiveAndNonSensitiveReceivingProvider = false,\n receivingReferrals = true,\n sensitiveReceivingReferrals,\n onAndOffPlatformPrograms = false,\n ccAndNonCCPrograms = false,\n programsInSameNetwork = false,\n singleNetwork = false,\n programsInSameProvider = false,\n isGrouped = false,\n isFunded = false,\n requiresAuthorization = false,\n sensitiveProviderCount = 1,\n programCount = isGrouped ? 2 : 1,\n sensitiveService = false,\n serviceCount = 1,\n cmCodeRequiredOnAuthorization = false,\n sameFeeScheduleProgram = false,\n}) => {\n // Get the current provider based on criteria\n let filteredPrograms;\n\n if (isGrouped) {\n filteredPrograms = filterGroupedPrograms({\n receivingProviderIsCC,\n receivingProviderLicensed,\n licensedProviderIsCC,\n licensedAndUnlicensedReceivingProviders,\n sensitiveAndNonSensitiveReceivingProvider,\n sensitiveProviderCount,\n programCount,\n receivingProviderSensitive,\n receivingReferrals,\n sensitiveReceivingReferrals,\n onAndOffPlatformPrograms,\n ccAndNonCCPrograms,\n programsInSameNetwork,\n singleNetwork,\n programsInSameProvider,\n isFunded,\n requiresAuthorization,\n sameFeeScheduleProgram,\n });\n } else {\n filteredPrograms = filterSingleProgram({\n receivingProviderIsCC,\n sendingProviderIsCC,\n sendingProviderSensitive,\n programInCurrentProvider,\n receivingProviderLicensed,\n receivingProviderSensitive,\n receivingReferrals,\n isFunded,\n requiresAuthorization,\n cmCodeRequiredOnAuthorization,\n })\n }\n // Select programs and services\n return selectPrograms(filteredPrograms, serviceCount, programCount, sensitiveService);\n}\n\n// Group all unlisted programs by service, filter by program count and filter by results amount\nconst filterAndSelectUnlistedPrograms = ({\n programCount = 1,\n results = 1,\n}) => {\n const groupedUnlistedProgramsByService = Object.values(groupBy(unlistedPrograms, 'services[0]'));\n\n let selectedUnlistedPrograms = groupedUnlistedProgramsByService\n .filter(group => group.length === programCount)\n ?.slice(0, results)\n ?.flat();\n\n return selectedUnlistedPrograms;\n}\n\n// Function to select programs and services\nconst selectPrograms = (filteredPrograms, serviceCount, programCount, sensitiveService) => {\n const filteredServices = services.filter((s) => s.attributes.sensitive === sensitiveService);\n\n const selectedPrograms = filteredPrograms.slice(0, programCount).map((program) => {\n const programServices = filteredServices\n .filter((s) => program.relationships.services.data.map(({ id }) => id).includes(s.id))\n .slice(0, serviceCount).map((s) => s.id);\n return {\n id: program.id,\n services: programServices,\n isOffPlatform: !program.attributes.receiving_referrals\n }\n });\n\n return selectedPrograms;\n}\n\nexport const getSelectedPrograms = (options) => {\n return filterAndSelectPrograms(options);\n}\n\nexport const getSelectedUnlistedPrograms = (options) => {\n return filterAndSelectUnlistedPrograms(options);\n}\n"],"mappings":";;;AAAA,SAASA,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,mBAAmB,QAAQ,wBAAwB;AAC5D,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,sBAAsB,QAAQ,2BAA2B;AAClE,SAASC,GAAG,EAAEC,OAAO,EAAEC,OAAO,EAAEC,MAAM,QAAQ,QAAQ;AAEtD,MAAMC,SAAS,GAAGC,KAAK,CAACC,IAAI,CAACT,YAAY,CAACU,MAAM,CAAC,CAAC,CAAC;AACnD,MAAMC,QAAQ,GAAGH,KAAK,CAACC,IAAI,CAACX,WAAW,CAACY,MAAM,CAAC,CAAC,CAAC;AACjD,MAAME,gBAAgB,GAAGJ,KAAK,CAACC,IAAI,CAACV,mBAAmB,CAACW,MAAM,CAAC,CAAC,CAAC;AACjE,MAAMG,QAAQ,GAAGL,KAAK,CAACC,IAAI,CAACR,WAAW,CAACS,MAAM,CAAC,CAAC,CAAC;AACjD,MAAMI,mBAAmB,GAAGN,KAAK,CAACC,IAAI,CAACP,sBAAsB,CAACQ,MAAM,CAAC,CAAC,CAAC;;AAEvE;AACA,MAAMK,yBAAyB,GAAGC,IAAA,IAAuB;EAAA,IAAtB;IAAEC;EAAc,CAAC,GAAAD,IAAA;EAClD,MAAME,yBAAyB,GAAG,EAAE;EACpC,MAAMC,+BAA+B,GAAG,EAAE;EAE1CR,QAAQ,CAACS,OAAO,CAAEC,OAAO,IAAK;IAC5B,MAAMC,UAAU,GAAGD,OAAO,CAACE,aAAa,CAACC,QAAQ,CAACC,IAAI,CAACC,EAAE;IACzD,MAAMF,QAAQ,GAAGjB,SAAS,CAACoB,IAAI,CAAEH,QAAQ,IAAKA,QAAQ,CAACE,EAAE,KAAKJ,UAAU,CAAC;IAEzE,IAAIE,QAAQ,EAAE;MACZ,MAAMI,UAAU,GAAGJ,QAAQ,CAACD,aAAa,CAACM,QAAQ,CAACJ,IAAI,CAACK,GAAG,CAAEC,OAAO,IAAKA,OAAO,CAACL,EAAE,CAAC;MAEpF,MAAMM,gBAAgB,GAAGrB,QAAQ,CAACsB,IAAI,CAAEC,YAAY,IAAK;QACvD,IAAIA,YAAY,CAACR,EAAE,KAAKL,OAAO,CAACK,EAAE,EAAE;UAClC,MAAMS,eAAe,GAAGD,YAAY,CAACX,aAAa,CAACC,QAAQ,CAACC,IAAI,CAACC,EAAE;UACnE,MAAMU,aAAa,GAAG7B,SAAS,CAACoB,IAAI,CAAES,aAAa,IAAKA,aAAa,CAACV,EAAE,KAAKS,eAAe,CAAC;UAE7F,IAAIC,aAAa,EAAE;YACjB,MAAMC,eAAe,GAAGD,aAAa,CAACb,aAAa,CAACM,QAAQ,CAACJ,IAAI,CAACK,GAAG,CAAEC,OAAO,IAAKA,OAAO,CAACL,EAAE,CAAC;YAC9F,OAAOE,UAAU,CAACK,IAAI,CAAEK,SAAS,IAAKD,eAAe,CAACE,QAAQ,CAACD,SAAS,CAAC,CAAC;UAC5E;QACF;QACA,OAAO,KAAK;MACd,CAAC,CAAC;MAEF,MAAME,sBAAsB,GAAGR,gBAAgB,IAAIR,QAAQ,CAACD,aAAa,CAACM,QAAQ,CAACJ,IAAI,CAACgB,MAAM,KAAK,CAAC;MAEpG,IAAIxB,aAAa,IAAIuB,sBAAsB,EAAE;QAC3CrB,+BAA+B,CAACuB,IAAI,CAACrB,OAAO,CAAC;MAC/C,CAAC,MAAM,IAAIW,gBAAgB,EAAE;QAC3Bd,yBAAyB,CAACwB,IAAI,CAACrB,OAAO,CAAC;MACzC;IACF;EACF,CAAC,CAAC;EAEF,OAAO;IAAEH,yBAAyB;IAAEC;EAAgC,CAAC;AACvE,CAAC;AAED,MAAMwB,mBAAmB,GAAGC,KAAA,IAWtB;EAAA,IAXuB;IAC3BC,qBAAqB,GAAG,KAAK;IAC7BC,mBAAmB,GAAG,KAAK;IAC3BC,wBAAwB,GAAG,KAAK;IAChCC,wBAAwB;IACxBC,yBAAyB;IACzBC,0BAA0B,GAAG,KAAK;IAClCC,kBAAkB,GAAG,IAAI;IACzBC,QAAQ,GAAG,KAAK;IAChBC,qBAAqB,GAAG,KAAK;IAC7BC,6BAA6B,GAAG;EAClC,CAAC,GAAAV,KAAA;EACC,MAAMW,mBAAmB,GAAGT,mBAAmB,GAAG,qBAAqB,GAAG,UAAU;EACpF,MAAMU,eAAe,GAAGjD,SAAS,CAACoB,IAAI,CAAEH,QAAQ,IAC9CA,QAAQ,CAACiC,UAAU,CAACC,QAAQ,IAAIlC,QAAQ,CAACiC,UAAU,CAACE,aAAa,KAAKJ,mBAAmB,IAAI/B,QAAQ,CAACiC,UAAU,CAACG,SAAS,KAAKZ,wBAChI,CAAC;EACF,OAAOrC,QAAQ,CAACkD,MAAM,CAAExC,OAAO,IAAK;IAAA,IAAAyC,qBAAA,EAAAC,qBAAA,EAAAC,sBAAA;IAClC,MAAM;MAAEP,UAAU;MAAElC;IAAc,CAAC,GAAGF,OAAO;IAC7C,MAAM4C,iBAAiB,GAAG1D,SAAS,CAACoB,IAAI,CAAEH,QAAQ,IAAKA,QAAQ,CAACE,EAAE,KAAKH,aAAa,CAACC,QAAQ,CAACC,IAAI,CAACC,EAAE,CAAC;IACtG,MAAMwC,sBAAsB,GAAGnB,wBAAwB,GACrDxB,aAAa,CAACC,QAAQ,CAACC,IAAI,CAACC,EAAE,KAAK8B,eAAe,CAAC9B,EAAE,GACrDH,aAAa,CAACC,QAAQ,CAACC,IAAI,CAACC,EAAE,KAAK8B,eAAe,CAAC9B,EAAE;IACvD,MAAMyC,+BAA+B,GAAG,CAAAF,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAER,UAAU,CAACG,SAAS,MAAKV,0BAA0B;IAC9G,MAAMkB,+BAA+B,GAAG,CAAAH,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAER,UAAU,CAACC,QAAQ,MAAKT,yBAAyB;IAC5G,MAAMoB,iBAAiB,GAAGxB,qBAAqB,GAAG,CAAAoB,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAER,UAAU,CAACE,aAAa,MAAK,qBAAqB,GAAG,CAAAM,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAER,UAAU,CAACE,aAAa,MAAK,UAAU;IACpL,MAAMW,8BAA8B,GAAGb,UAAU,CAACc,mBAAmB,KAAKpB,kBAAkB;IAC5F,MAAMqB,KAAK,IAAAV,qBAAA,GAAGvC,aAAa,CAACkD,oBAAoB,cAAAX,qBAAA,gBAAAA,qBAAA,GAAlCA,qBAAA,CAAoCrC,IAAI,cAAAqC,qBAAA,uBAAxCA,qBAAA,CAA0CpC,EAAE;IAC1D,MAAMgD,aAAa,GAAG,CAAC,CAACF,KAAK,KAAKpB,QAAQ;IAC1C,MAAMuB,0BAA0B,GAAG,CAAC,CAAC,CAACH,KAAK,MAAAT,qBAAA,GAAIjD,mBAAmB,CAACa,IAAI,CAAEiD,GAAG,IAAKA,GAAG,CAAClD,EAAE,KAAK8C,KAAK,CAAC,cAAAT,qBAAA,gBAAAA,qBAAA,GAAnDA,qBAAA,CAAqDN,UAAU,cAAAM,qBAAA,uBAA/DA,qBAAA,CAAiEc,sBAAsB,OAAMxB,qBAAqB;IACjK,MAAMyB,kCAAkC,GAAG,CAAC,CAAC,CAACN,KAAK,MAAAR,sBAAA,GAAIlD,mBAAmB,CAACa,IAAI,CAAEiD,GAAG,IAAKA,GAAG,CAAClD,EAAE,KAAK8C,KAAK,CAAC,cAAAR,sBAAA,gBAAAA,sBAAA,GAAnDA,sBAAA,CAAqDP,UAAU,cAAAO,sBAAA,uBAA/DA,sBAAA,CAAiEe,iCAAiC,OAAMzB,6BAA6B;IAE5L,OAAOY,sBAAsB,IAAII,8BAA8B,IAAIF,+BAA+B,IAChGD,+BAA+B,IAAIE,iBAAiB,IAAIK,aAAa,IAAIC,0BAA0B,IAAIG,kCAAkC;EAC7I,CAAC,CAAC;AACJ,CAAC;AAED,MAAME,oBAAoB,GAAGC,KAAA;EAAA,IAAC;IAAEC,gBAAgB;IAAEC;EAAa,CAAC,GAAAF,KAAA;EAAA,OAC9DC,gBAAgB,CAACrB,MAAM,CAAExC,OAAO,IAAK;IACnC,MAAMC,UAAU,GAAGD,OAAO,CAACE,aAAa,CAACC,QAAQ,CAACC,IAAI,CAACC,EAAE;IACzD,MAAMF,QAAQ,GAAGjB,SAAS,CAACoB,IAAI,CAAEH,QAAQ,IAAKA,QAAQ,CAACE,EAAE,KAAKJ,UAAU,CAAC;IACzE,OAAOE,QAAQ,CAACiC,UAAU,CAACE,aAAa,KAAKwB,YAAY;EAC3D,CAAC,CAAC;AAAA,CACH;AAED,MAAMC,+BAA+B,GAAGC,KAAA;EAAA,IAAC;IAAEH,gBAAgB;IAAEI,UAAU;IAAEC;EAAqB,CAAC,GAAAF,KAAA;EAAA,OAC7FH,gBAAgB,CAACrB,MAAM,CAAExC,OAAO,IAAK;IACnC,MAAMC,UAAU,GAAGD,OAAO,CAACE,aAAa,CAACC,QAAQ,CAACC,IAAI,CAACC,EAAE;IACzD,MAAMF,QAAQ,GAAGjB,SAAS,CAACoB,IAAI,CAAEH,QAAQ,IAAKA,QAAQ,CAACE,EAAE,KAAKJ,UAAU,CAAC;IACzE,OAAOE,QAAQ,CAACiC,UAAU,CAACC,QAAQ,KAAK4B,UAAU,KAAKC,oBAAoB,GAAG/D,QAAQ,CAACiC,UAAU,CAACE,aAAa,KAAK,qBAAqB,GAAG,IAAI,CAAC;EACnJ,CAAC,CAAC;AAAA,CACH;AAED,MAAM6B,mCAAmC,GAAGC,KAAA,IAA6F;EAAA,IAA5F;IAAEP,gBAAgB;IAAEQ,sBAAsB;IAAEC,YAAY;IAAEC;EAA4B,CAAC,GAAAH,KAAA;EAClI,MAAMI,iBAAiB,GAAGX,gBAAgB,CAACrB,MAAM,CAAExC,OAAO,IAAK;IAC7D,MAAMC,UAAU,GAAGD,OAAO,CAACE,aAAa,CAACC,QAAQ,CAACC,IAAI,CAACC,EAAE;IACzD,MAAMF,QAAQ,GAAGjB,SAAS,CAACoB,IAAI,CAAEH,QAAQ,IAAKA,QAAQ,CAACE,EAAE,KAAKJ,UAAU,CAAC;IACzE,OAAOE,QAAQ,CAACiC,UAAU,CAACG,SAAS,KAAKgC,2BAA2B,GAAGvE,OAAO,CAACoC,UAAU,CAACc,mBAAmB,KAAKqB,2BAA2B,GAAG,IAAI,CAAC;EACvJ,CAAC,CAAC,CAACE,KAAK,CAAC,CAAC,EAAEJ,sBAAsB,CAAC;EAEnC,MAAMK,oBAAoB,GAAGb,gBAAgB,CAACrB,MAAM,CAAExC,OAAO,IAAK;IAChE,MAAMC,UAAU,GAAGD,OAAO,CAACE,aAAa,CAACC,QAAQ,CAACC,IAAI,CAACC,EAAE;IACzD,MAAMF,QAAQ,GAAGjB,SAAS,CAACoB,IAAI,CAAEH,QAAQ,IAAKA,QAAQ,CAACE,EAAE,KAAKJ,UAAU,CAAC;IACzE,OAAO,CAACE,QAAQ,CAACiC,UAAU,CAACG,SAAS;EACvC,CAAC,CAAC,CAACkC,KAAK,CAAC,CAAC,EAAEH,YAAY,GAAGD,sBAAsB,CAAC;EAElD,OAAO,CAAC,GAAGK,oBAAoB,EAAE,GAAGF,iBAAiB,CAAC;AACxD,CAAC;AAED,MAAMG,kBAAkB,GAAGA,CAACC,aAAa,EAAEC,aAAa,EAAEP,YAAY,KAAK;EACzE,MAAMQ,UAAU,GAAGC,IAAI,CAACC,KAAK,CAACV,YAAY,GAAG,CAAC,CAAC;EAC/C,MAAMW,aAAa,GAAGL,aAAa,CAACH,KAAK,CAAC,CAAC,EAAEK,UAAU,CAAC;EACxD,MAAMI,aAAa,GAAGL,aAAa,CAACJ,KAAK,CAAC,CAAC,EAAEK,UAAU,CAAC;EAExD,MAAMK,SAAS,GAAGb,YAAY,GAAGW,aAAa,CAAC7D,MAAM,GAAG8D,aAAa,CAAC9D,MAAM;EAE5E,IAAI+D,SAAS,GAAG,CAAC,EAAE;IACjB,MAAMC,UAAU,GAAGR,aAAa,CAACH,KAAK,CAACQ,aAAa,CAAC7D,MAAM,EAAE6D,aAAa,CAAC7D,MAAM,GAAG+D,SAAS,CAAC;IAC9FF,aAAa,CAAC5D,IAAI,CAAC,GAAG+D,UAAU,CAAC;IACjC,MAAMC,cAAc,GAAGF,SAAS,GAAGC,UAAU,CAAChE,MAAM;IACpD,IAAIiE,cAAc,GAAG,CAAC,EAAE;MACtBH,aAAa,CAAC7D,IAAI,CAAC,GAAGwD,aAAa,CAACJ,KAAK,CAACS,aAAa,CAAC9D,MAAM,EAAE8D,aAAa,CAAC9D,MAAM,GAAGiE,cAAc,CAAC,CAAC;IACzG;EACF;EAEA,OAAOrG,OAAO,CAAC,CAAC,GAAGiG,aAAa,EAAE,GAAGC,aAAa,CAAC,CAAC;AACtD,CAAC;AAED,MAAMI,yBAAyB,GAAGA,CAACzB,gBAAgB,EAAES,YAAY,KAAK;EACpE,MAAMiB,UAAU,GAAG1B,gBAAgB,CAACrB,MAAM,CAAExC,OAAO,IAAKA,OAAO,CAACoC,UAAU,CAACc,mBAAmB,CAAC;EAC/F,MAAMsC,WAAW,GAAG3B,gBAAgB,CAACrB,MAAM,CAAExC,OAAO,IAAK,CAACA,OAAO,CAACoC,UAAU,CAACc,mBAAmB,CAAC;EACjG,OAAOyB,kBAAkB,CAACY,UAAU,EAAEC,WAAW,EAAElB,YAAY,CAAC;AAClE,CAAC;AAED,MAAMmB,mBAAmB,GAAGA,CAAC5B,gBAAgB,EAAES,YAAY,KAAK;EAC9D,MAAMoB,UAAU,GAAG/B,oBAAoB,CAAC;IAAEE,gBAAgB;IAAEC,YAAY,EAAE;EAAsB,CAAC,CAAC;EAClG,MAAM6B,aAAa,GAAGhC,oBAAoB,CAAC;IAAEE,gBAAgB;IAAEC,YAAY,EAAE;EAAW,CAAC,CAAC;EAC1F,OAAOa,kBAAkB,CAACe,UAAU,EAAEC,aAAa,EAAErB,YAAY,CAAC;AACpE,CAAC;AAED,MAAMsB,yBAAyB,GAAGA,CAAC/B,gBAAgB,EAAES,YAAY,EAAEJ,oBAAoB,KAAK;EAC1F,MAAM2B,gBAAgB,GAAG9B,+BAA+B,CAAC;IAAEF,gBAAgB;IAAEI,UAAU,EAAE,IAAI;IAAEC;EAAqB,CAAC,CAAC;EACtH,MAAM4B,kBAAkB,GAAG/B,+BAA+B,CAAC;IAAEF,gBAAgB;IAAEI,UAAU,EAAE;EAAM,CAAC,CAAC;EACnG,OAAOU,kBAAkB,CAACkB,gBAAgB,EAAEC,kBAAkB,EAAExB,YAAY,CAAC;AAC/E,CAAC;AAED,MAAMyB,yBAAyB,GAAGA,CAACC,qBAAqB,EAAEpG,aAAa,EAAEC,yBAAyB,EAAEC,+BAA+B,KAAK;EACtI,IAAIkG,qBAAqB,IAAIpG,aAAa,EAAE;IAC1C,OAAOE,+BAA+B;EACxC;EACA,IAAIkG,qBAAqB,EAAE;IACzB,OAAOnG,yBAAyB;EAClC;EACA,OAAOP,QAAQ;AACjB,CAAC;AAED,MAAM2G,0BAA0B,GAAGA,CAACC,YAAY,EAAEC,sBAAsB,KAAK;EAC3E,MAAMC,2BAA2B,GAAGC,MAAM,CAAChH,MAAM,CAACN,OAAO,CAACmH,YAAY,EAAE,gCAAgC,CAAC,CAAC;EAC1G,OAAOC,sBAAsB,GACzBC,2BAA2B,CAAC5D,MAAM,CAAClD,QAAQ,IAAIA,QAAQ,CAAC8B,MAAM,GAAG,CAAC,CAAC,CAACkF,IAAI,CAAC,CAAC,GAC1EF,2BAA2B,CAACE,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,MAAMC,yBAAyB,GAAGA,CAACC,aAAa,EAAEC,MAAM,KAAK;EAC3D,MAAM;IACJ7E,yBAAyB;IACzBJ,qBAAqB;IACrBK,0BAA0B;IAC1B6E,uCAAuC;IACvCC,yCAAyC;IACzCC;EACF,CAAC,GAAGH,MAAM;EAEV,OAAOD,aAAa,CAAChE,MAAM,CAAExC,OAAO,IAAK;IACvC,MAAMC,UAAU,GAAGD,OAAO,CAACE,aAAa,CAACC,QAAQ,CAACC,IAAI,CAACC,EAAE;IACzD,MAAMF,QAAQ,GAAGjB,SAAS,CAACoB,IAAI,CAAEuG,CAAC,IAAKA,CAAC,CAACxG,EAAE,KAAKJ,UAAU,CAAC;IAE3D,MAAM6G,sBAAsB,GAAGlF,yBAAyB,GAAGzB,QAAQ,CAACiC,UAAU,CAACC,QAAQ,GAAG,CAAClC,QAAQ,CAACiC,UAAU,CAACC,QAAQ;IACvH,MAAMW,iBAAiB,GAAGxB,qBAAqB,GAAGrB,QAAQ,CAACiC,UAAU,CAACE,aAAa,KAAK,qBAAqB,GAAGnC,QAAQ,CAACiC,UAAU,CAACE,aAAa,KAAK,UAAU;IAChK,MAAMyE,wBAAwB,GAAG5G,QAAQ,CAACiC,UAAU,CAACG,SAAS,KAAKV,0BAA0B;IAE7F,OAAO,CAAC6E,uCAAuC,IAAII,sBAAsB,MACtEH,yCAAyC,IAAII,wBAAwB,CAAC,KACtEH,kBAAkB,IAAI5D,iBAAiB,CAAC;EAC7C,CAAC,CAAC;AACJ,CAAC;AAED,MAAMgE,gBAAgB,GAAGA,CAAC1H,QAAQ,EAAE2H,wBAAwB,EAAEnF,kBAAkB,KAAK;EACnF,IAAImF,wBAAwB,EAAE;IAC5B,OAAO3H,QAAQ;EACjB;EACA,OAAOA,QAAQ,CAACkD,MAAM,CAAExC,OAAO,IAAKA,OAAO,CAACoC,UAAU,CAACc,mBAAmB,KAAKpB,kBAAkB,CAAC;AACpG,CAAC;AAED,MAAMoF,0BAA0B,GAAGA,CAAC5H,QAAQ,EAAE6G,sBAAsB,KAAK;EACvE,IAAIA,sBAAsB,EAAE;IAC1B,OAAO7G,QAAQ;EACjB;EACA,OAAOL,MAAM,CAACK,QAAQ,EAAE,gCAAgC,CAAC;AAC3D,CAAC;AAED,MAAM6H,eAAe,GAAGA,CAAC7H,QAAQ,EAAEyC,QAAQ,KAAK;EAC9C,OAAOzC,QAAQ,CAACkD,MAAM,CAACxC,OAAO,IAAI;IAAA,IAAAoH,qBAAA;IAChC,MAAMjE,KAAK,IAAAiE,qBAAA,GAAGpH,OAAO,CAACE,aAAa,CAACkD,oBAAoB,cAAAgE,qBAAA,gBAAAA,qBAAA,GAA1CA,qBAAA,CAA4ChH,IAAI,cAAAgH,qBAAA,uBAAhDA,qBAAA,CAAkD/G,EAAE;IAClE,OAAO0B,QAAQ,GAAG,CAAC,CAACoB,KAAK,GAAG,CAACA,KAAK;EACpC,CAAC,CAAC;AACJ,CAAC;AAED,MAAMkE,qBAAqB,GAAGA,CAAC/H,QAAQ,EAAE0C,qBAAqB,KAAK;EACjE,OAAO1C,QAAQ,CAACkD,MAAM,CAACxC,OAAO,IAAI;IAAA,IAAAsH,sBAAA,EAAAC,eAAA;IAChC,MAAMpE,KAAK,IAAAmE,sBAAA,GAAGtH,OAAO,CAACE,aAAa,CAACkD,oBAAoB,cAAAkE,sBAAA,gBAAAA,sBAAA,GAA1CA,sBAAA,CAA4ClH,IAAI,cAAAkH,sBAAA,uBAAhDA,sBAAA,CAAkDjH,EAAE;IAClE,MAAMkD,GAAG,GAAG9D,mBAAmB,CAACa,IAAI,CAAEiD,GAAG,IAAKA,GAAG,CAAClD,EAAE,KAAK8C,KAAK,CAAC;IAC/D,OAAOnB,qBAAqB,KAAK,CAAC,EAACuB,GAAG,aAAHA,GAAG,gBAAAgE,eAAA,GAAHhE,GAAG,CAAEnB,UAAU,cAAAmF,eAAA,eAAfA,eAAA,CAAiB/D,sBAAsB;EAC5E,CAAC,CAAC;AACJ,CAAC;AAED,MAAMgE,iBAAiB,GAAGA,CAAC3D,gBAAgB,EAAE4C,MAAM,KAAK;EACtD,MAAM;IAAEQ,wBAAwB;IAAEnF,kBAAkB;IAAEqE,sBAAsB;IAAEpE,QAAQ;IAAEC;EAAsB,CAAC,GAAGyE,MAAM;EAExH,IAAIgB,MAAM,GAAG5D,gBAAgB;EAC7B4D,MAAM,GAAGT,gBAAgB,CAACS,MAAM,EAAER,wBAAwB,EAAEnF,kBAAkB,CAAC;EAC/E2F,MAAM,GAAGP,0BAA0B,CAACO,MAAM,EAAEtB,sBAAsB,CAAC;EACnEsB,MAAM,GAAGN,eAAe,CAACM,MAAM,EAAE1F,QAAQ,CAAC;EAC1C0F,MAAM,GAAGJ,qBAAqB,CAACI,MAAM,EAAEzF,qBAAqB,CAAC;EAE7D,OAAOyF,MAAM;AACf,CAAC;AAED,MAAMC,8BAA8B,GAAGC,KAAA,IAAwC;EAAA,IAAvC;IAAE9D,gBAAgB;IAAES;EAAa,CAAC,GAAAqD,KAAA;EACxE,MAAMC,4BAA4B,GAAGvB,MAAM,CAAChH,MAAM,CAACN,OAAO,CAAC8E,gBAAgB,EAAE,4CAA4C,CAAC,CAAC;EAC3H,MAAMgE,uBAAuB,GAAGD,4BAA4B,CAACtH,IAAI,CAACwH,KAAK,IAAIA,KAAK,CAAC1G,MAAM,IAAIkD,YAAY,CAAC;EACxG,OAAOuD,uBAAuB,GAAGA,uBAAuB,CAACpD,KAAK,CAAC,CAAC,EAAEH,YAAY,CAAC,GAAG,EAAE;AACtF,CAAC;AAED,MAAMyD,qBAAqB,GAAItB,MAAM,IAAK;EACxC,MAAM;IACJT,qBAAqB;IACrBpG,aAAa;IACbuG,sBAAsB;IACtBc,wBAAwB;IACxBL,kBAAkB;IAClBF,uCAAuC;IACvCC,yCAAyC;IACzCqB,sBAAsB;IACtB1D,YAAY;IACZD,sBAAsB;IACtBE,2BAA2B;IAC3BL;EACF,CAAC,GAAGuC,MAAM;EAEV,MAAM;IAAE5G,yBAAyB;IAAEC;EAAgC,CAAC,GAAGJ,yBAAyB,CAAC;IAAEE;EAAc,CAAC,CAAC;EAEnH,MAAMsG,YAAY,GAAGH,yBAAyB,CAACC,qBAAqB,EAAEpG,aAAa,EAAEC,yBAAyB,EAAEC,+BAA+B,CAAC;EAChJ,MAAM0G,aAAa,GAAGP,0BAA0B,CAACC,YAAY,EAAEC,sBAAsB,CAAC;EACtF,MAAM8B,sBAAsB,GAAG1B,yBAAyB,CAACC,aAAa,EAAEC,MAAM,CAAC;EAC/E,MAAMyB,qBAAqB,GAAGjB,wBAAwB,IAAIL,kBAAkB,IAAIF,uCAAuC;EACvH,MAAMyB,2BAA2B,GAAAC,aAAA,CAAAA,aAAA,KAAQ3B,MAAM;IAAEN,sBAAsB,EAAE+B,qBAAqB,GAAG,IAAI,GAAGzB,MAAM,CAACN;EAAsB,EAAE;EACvI,IAAItC,gBAAgB,GAAG2D,iBAAiB,CAACS,sBAAsB,EAAEE,2BAA2B,CAAC;EAE7F,IAAIzB,uCAAuC,IAAI,CAACO,wBAAwB,IAAI,CAACL,kBAAkB,EAAE;IAC/F/C,gBAAgB,GAAG+B,yBAAyB,CAAC/B,gBAAgB,EAAES,YAAY,EAAEJ,oBAAoB,CAAC;EACpG;EAEA,IAAI0C,kBAAkB,IAAI,CAACK,wBAAwB,EAAE;IACnDpD,gBAAgB,GAAG4B,mBAAmB,CAAC5B,gBAAgB,EAAES,YAAY,CAAC;EACxE;EAEA,IAAI2C,wBAAwB,EAAE;IAC5BpD,gBAAgB,GAAGyB,yBAAyB,CAACzB,gBAAgB,EAAES,YAAY,CAAC;EAC9E;EAEA,IAAIqC,yCAAyC,EAAE;IAC7C9C,gBAAgB,GAAGM,mCAAmC,CAAC;MACrDN,gBAAgB;MAChBU,2BAA2B;MAC3BF,sBAAsB;MACtBC;IACF,CAAC,CAAC;EACJ;EAEA,IAAI0D,sBAAsB,EAAE;IAC1BnE,gBAAgB,GAAG6D,8BAA8B,CAAC;MAAE7D,gBAAgB;MAAES;IAAa,CAAC,CAAC;EACvF;EAEA,OAAOT,gBAAgB;AACzB,CAAC;;AAED;AACA,MAAMwE,uBAAuB,GAAGC,KAAA,IA0B1B;EAAA,IA1B2B;IAC/B7G,mBAAmB,GAAG,KAAK;IAC3BE,wBAAwB,GAAG,KAAK;IAChCH,qBAAqB,GAAG,KAAK;IAC7B0C,oBAAoB,GAAG,KAAK;IAC5BxC,wBAAwB,GAAG,KAAK;IAChCE,yBAAyB,GAAG,IAAI;IAChC8E,uCAAuC,GAAG,KAAK;IAC/C7E,0BAA0B,GAAG,KAAK;IAClC8E,yCAAyC,GAAG,KAAK;IACjD7E,kBAAkB,GAAG,IAAI;IACzByC,2BAA2B;IAC3B0C,wBAAwB,GAAG,KAAK;IAChCL,kBAAkB,GAAG,KAAK;IAC1BZ,qBAAqB,GAAG,KAAK;IAC7BpG,aAAa,GAAG,KAAK;IACrBuG,sBAAsB,GAAG,KAAK;IAC9BoC,SAAS,GAAG,KAAK;IACjBxG,QAAQ,GAAG,KAAK;IAChBC,qBAAqB,GAAG,KAAK;IAC7BqC,sBAAsB,GAAG,CAAC;IAC1BC,YAAY,GAAGiE,SAAS,GAAG,CAAC,GAAG,CAAC;IAChCC,gBAAgB,GAAG,KAAK;IACxBC,YAAY,GAAG,CAAC;IAChBxG,6BAA6B,GAAG,KAAK;IACrC+F,sBAAsB,GAAG;EAC3B,CAAC,GAAAM,KAAA;EACC;EACA,IAAIzE,gBAAgB;EAEpB,IAAI0E,SAAS,EAAE;IACb1E,gBAAgB,GAAGkE,qBAAqB,CAAC;MACvCvG,qBAAqB;MACrBI,yBAAyB;MACzBsC,oBAAoB;MACpBwC,uCAAuC;MACvCC,yCAAyC;MACzCtC,sBAAsB;MACtBC,YAAY;MACZzC,0BAA0B;MAC1BC,kBAAkB;MAClByC,2BAA2B;MAC3B0C,wBAAwB;MACxBL,kBAAkB;MAClBZ,qBAAqB;MACrBpG,aAAa;MACbuG,sBAAsB;MACtBpE,QAAQ;MACRC,qBAAqB;MACrBgG;IACF,CAAC,CAAC;EACJ,CAAC,MAAM;IACLnE,gBAAgB,GAAGvC,mBAAmB,CAAC;MACrCE,qBAAqB;MACrBC,mBAAmB;MACnBE,wBAAwB;MACxBD,wBAAwB;MACxBE,yBAAyB;MACzBC,0BAA0B;MAC1BC,kBAAkB;MAClBC,QAAQ;MACRC,qBAAqB;MACrBC;IACF,CAAC,CAAC;EACJ;EACA;EACA,OAAOyG,cAAc,CAAC7E,gBAAgB,EAAE4E,YAAY,EAAEnE,YAAY,EAAEkE,gBAAgB,CAAC;AACvF,CAAC;;AAED;AACA,MAAMG,+BAA+B,GAAGC,KAAA,IAGlC;EAAA,IAAAC,qBAAA;EAAA,IAHmC;IACvCvE,YAAY,GAAG,CAAC;IAChBwE,OAAO,GAAG;EACZ,CAAC,GAAAF,KAAA;EACC,MAAMG,gCAAgC,GAAG1C,MAAM,CAAChH,MAAM,CAACN,OAAO,CAACQ,gBAAgB,EAAE,aAAa,CAAC,CAAC;EAEhG,IAAIyJ,wBAAwB,IAAAH,qBAAA,GAAGE,gCAAgC,CAC5DvG,MAAM,CAACsF,KAAK,IAAIA,KAAK,CAAC1G,MAAM,KAAKkD,YAAY,CAAC,cAAAuE,qBAAA,gBAAAA,qBAAA,GADlBA,qBAAA,CAE3BpE,KAAK,CAAC,CAAC,EAAEqE,OAAO,CAAC,cAAAD,qBAAA,uBAFUA,qBAAA,CAG3BvC,IAAI,CAAC,CAAC;EAEV,OAAO0C,wBAAwB;AACjC,CAAC;;AAED;AACA,MAAMN,cAAc,GAAGA,CAAC7E,gBAAgB,EAAE4E,YAAY,EAAEnE,YAAY,EAAEkE,gBAAgB,KAAK;EACzF,MAAMS,gBAAgB,GAAGzJ,QAAQ,CAACgD,MAAM,CAAE0G,CAAC,IAAKA,CAAC,CAAC9G,UAAU,CAACG,SAAS,KAAKiG,gBAAgB,CAAC;EAE5F,MAAMW,gBAAgB,GAAGtF,gBAAgB,CAACY,KAAK,CAAC,CAAC,EAAEH,YAAY,CAAC,CAAC7D,GAAG,CAAET,OAAO,IAAK;IAChF,MAAMoJ,eAAe,GAAGH,gBAAgB,CACrCzG,MAAM,CAAE0G,CAAC,IAAKlJ,OAAO,CAACE,aAAa,CAACV,QAAQ,CAACY,IAAI,CAACK,GAAG,CAAC4I,KAAA;MAAA,IAAC;QAAEhJ;MAAG,CAAC,GAAAgJ,KAAA;MAAA,OAAKhJ,EAAE;IAAA,EAAC,CAACa,QAAQ,CAACgI,CAAC,CAAC7I,EAAE,CAAC,CAAC,CACrFoE,KAAK,CAAC,CAAC,EAAEgE,YAAY,CAAC,CAAChI,GAAG,CAAEyI,CAAC,IAAKA,CAAC,CAAC7I,EAAE,CAAC;IAC1C,OAAO;MACLA,EAAE,EAAEL,OAAO,CAACK,EAAE;MACdb,QAAQ,EAAE4J,eAAe;MACzBE,aAAa,EAAE,CAACtJ,OAAO,CAACoC,UAAU,CAACc;IACrC,CAAC;EACH,CAAC,CAAC;EAEF,OAAOiG,gBAAgB;AACzB,CAAC;AAED,OAAO,MAAMI,mBAAmB,GAAIC,OAAO,IAAK;EAC9C,OAAOnB,uBAAuB,CAACmB,OAAO,CAAC;AACzC,CAAC;AAED,OAAO,MAAMC,2BAA2B,GAAID,OAAO,IAAK;EACtD,OAAOb,+BAA+B,CAACa,OAAO,CAAC;AACjD,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"utils.js","names":["programsMap","unlistedProgramsMap","providersMap","servicesMap","feeScheduleProgramsMap","all","groupBy","compact","uniqBy","providers","Array","from","values","programs","unlistedPrograms","services","feeSchedulePrograms","separateProgramsByNetwork","_ref","singleNetwork","programsWithSharedNetwork","programsWithSingleSharedNetwork","forEach","program","providerId","relationships","provider","data","id","find","networkIds","networks","map","network","hasSharedNetwork","some","otherProgram","otherProviderId","otherProvider","otherNetworkIds","networkId","includes","hasSingleSharedNetwork","length","push","filterSingleProgram","_ref2","receivingProviderIsCC","sendingProviderIsCC","programInCurrentProvider","sendingProviderSensitive","receivingProviderLicensed","receivingProviderSensitive","receivingReferrals","isFunded","requiresAuthorization","cmCodeRequiredOnAuthorization","sendingProviderType","sendingProvider","attributes","licensed","provider_type","sensitive","filter","receivingProvider","inCurrentProviderMatch","receivingProviderSensitiveMatch","receivingProviderInNetworkMatch","providerIsCCMatch","programReceivingReferralsMatch","receiving_referrals","fspId","fee_schedule_program","isFundedMatch","requiresAuthorizationMatch","fsp","authorization_required","cmCodeRequiredOnAuthorizationMatch","cm_code_required_on_authorization","getCCOrNonCCPrograms","_ref3","filteredPrograms","providerType","getLicensedOrUnlicensedPrograms","_ref4","isLicensed","licensedProviderIsCC","getSensitiveAndNonSensitivePrograms","_ref5","sensitiveProviderCount","programCount","sensitiveReceivingReferrals","sensitivePrograms","slice","nonSensitivePrograms","distributePrograms","type1Programs","type2Programs","maxPerType","Math","floor","selectedType1","selectedType2","remaining","extraType1","stillRemaining","applyPlatformDistribution","onPlatform","offPlatform","applyCCDistribution","ccPrograms","nonCCPrograms","applyLicensedDistribution","licensedPrograms","unlicensedPrograms","getNetworkMatchedPrograms","programsInSameNetwork","getProviderMatchedPrograms","networkMatch","programsInSameProvider","programsGroupedByProviderId","Object","flat","filterByReceivingProvider","providerMatch","config","licensedAndUnlicensedReceivingProviders","sensitiveAndNonSensitiveReceivingProvider","ccAndNonCCPrograms","p","providerInNetworkMatch","providerIsSensitiveMatch","filterByPlatform","onAndOffPlatformPrograms","filterByProviderUniqueness","filterByFunding","filterByAuthorization","applyBasicFilters","result","getProgramsWithSameFeeSchedule","_ref6","programsGroupedByFeeSchedule","groupWithEnoughPrograms","group","filterGroupedPrograms","sameFeeScheduleProgram","receivingProviderMatch","hasMixedDistributions","configWithoutProviderFilter","filterAndSelectPrograms","_ref7","isGrouped","sensitiveService","serviceCount","selectPrograms","filterAndSelectUnlistedPrograms","_ref8","results","groupedUnlistedProgramsByService","selectedUnlistedPrograms","filteredServices","s","selectedPrograms","programServices","_ref9","isOffPlatform","getSelectedPrograms","options","getSelectedUnlistedPrograms"],"sources":["../../../src/__testUtils__/mockData/utils.js"],"sourcesContent":["import { programsMap } from './mockPrograms';\nimport { unlistedProgramsMap } from './mockUnlistedPrograms';\nimport { providersMap } from './mockProviders';\nimport { servicesMap } from './mockServices'\nimport { feeScheduleProgramsMap } from './mockFeeSchedulePrograms'\nimport { all, groupBy, compact, uniqBy } from 'lodash';\n\nconst providers = Array.from(providersMap.values());\nconst programs = Array.from(programsMap.values());\nconst unlistedPrograms = Array.from(unlistedProgramsMap.values());\nconst services = Array.from(servicesMap.values());\nconst feeSchedulePrograms = Array.from(feeScheduleProgramsMap.values());\n\n// Function to separate programs into those with shared and non-shared networks\nconst separateProgramsByNetwork = ({ singleNetwork }) => {\n const programsWithSharedNetwork = [];\n const programsWithSingleSharedNetwork = [];\n\n programs.forEach((program) => {\n const providerId = program.relationships.provider.data.id;\n const provider = providers.find((provider) => provider.id === providerId);\n\n if (provider) {\n const networkIds = provider.relationships.networks.data.map((network) => network.id);\n\n const hasSharedNetwork = programs.some((otherProgram) => {\n if (otherProgram.id !== program.id) {\n const otherProviderId = otherProgram.relationships.provider.data.id;\n const otherProvider = providers.find((otherProvider) => otherProvider.id === otherProviderId);\n \n if (otherProvider) {\n const otherNetworkIds = otherProvider.relationships.networks.data.map((network) => network.id);\n return networkIds.some((networkId) => otherNetworkIds.includes(networkId));\n }\n }\n return false;\n });\n\n const hasSingleSharedNetwork = hasSharedNetwork && provider.relationships.networks.data.length === 1;\n\n if (singleNetwork && hasSingleSharedNetwork) {\n programsWithSingleSharedNetwork.push(program);\n } else if (hasSharedNetwork) {\n programsWithSharedNetwork.push(program);\n }\n }\n });\n\n return { programsWithSharedNetwork, programsWithSingleSharedNetwork };\n}\n\nconst filterSingleProgram = ({\n receivingProviderIsCC = false,\n sendingProviderIsCC = false,\n programInCurrentProvider = false,\n sendingProviderSensitive,\n receivingProviderLicensed,\n receivingProviderSensitive = false,\n receivingReferrals = true,\n isFunded = false,\n requiresAuthorization = false,\n cmCodeRequiredOnAuthorization = false,\n}) => {\n const sendingProviderType = sendingProviderIsCC ? 'coordination_center' : 'provider';\n const sendingProvider = providers.find((provider) => (\n provider.attributes.licensed && provider.attributes.provider_type === sendingProviderType && provider.attributes.sensitive === sendingProviderSensitive\n ));\n return programs.filter((program) => {\n const { attributes, relationships } = program;\n const receivingProvider = providers.find((provider) => provider.id === relationships.provider.data.id);\n const inCurrentProviderMatch = programInCurrentProvider ?\n relationships.provider.data.id === sendingProvider.id :\n relationships.provider.data.id !== sendingProvider.id;\n const receivingProviderSensitiveMatch = receivingProvider?.attributes.sensitive === receivingProviderSensitive;\n const receivingProviderInNetworkMatch = receivingProvider?.attributes.licensed === receivingProviderLicensed;\n const providerIsCCMatch = receivingProviderIsCC ? receivingProvider?.attributes.provider_type === 'coordination_center' : receivingProvider?.attributes.provider_type === 'provider'\n const programReceivingReferralsMatch = attributes.receiving_referrals === receivingReferrals;\n const fspId = relationships.fee_schedule_program?.data?.id;\n const isFundedMatch = !!fspId === isFunded;\n const requiresAuthorizationMatch = (!!fspId && feeSchedulePrograms.find((fsp) => fsp.id === fspId)?.attributes?.authorization_required) === requiresAuthorization;\n const cmCodeRequiredOnAuthorizationMatch = (!!fspId && feeSchedulePrograms.find((fsp) => fsp.id === fspId)?.attributes?.cm_code_required_on_authorization) === cmCodeRequiredOnAuthorization;\n\n return inCurrentProviderMatch && programReceivingReferralsMatch && receivingProviderInNetworkMatch &&\n receivingProviderSensitiveMatch && providerIsCCMatch && isFundedMatch && requiresAuthorizationMatch && cmCodeRequiredOnAuthorizationMatch;\n })\n}\n\nconst getCCOrNonCCPrograms = ({ filteredPrograms, providerType }) => (\n filteredPrograms.filter((program) => {\n const providerId = program.relationships.provider.data.id;\n const provider = providers.find((provider) => provider.id === providerId);\n return provider.attributes.provider_type === providerType;\n })\n);\n\nconst getLicensedOrUnlicensedPrograms = ({ filteredPrograms, isLicensed, licensedProviderIsCC }) => (\n filteredPrograms.filter((program) => {\n const providerId = program.relationships.provider.data.id;\n const provider = providers.find((provider) => provider.id === providerId);\n return provider.attributes.licensed === isLicensed && (licensedProviderIsCC ? provider.attributes.provider_type === 'coordination_center' : true);\n })\n);\n\nconst getSensitiveAndNonSensitivePrograms = ({ filteredPrograms, sensitiveProviderCount, programCount, sensitiveReceivingReferrals }) => {\n const sensitivePrograms = filteredPrograms.filter((program) => {\n const providerId = program.relationships.provider.data.id;\n const provider = providers.find((provider) => provider.id === providerId);\n return provider.attributes.sensitive && (sensitiveReceivingReferrals ? program.attributes.receiving_referrals === sensitiveReceivingReferrals : true);\n }).slice(0, sensitiveProviderCount);\n\n const nonSensitivePrograms = filteredPrograms.filter((program) => {\n const providerId = program.relationships.provider.data.id;\n const provider = providers.find((provider) => provider.id === providerId);\n return !provider.attributes.sensitive;\n }).slice(0, programCount - sensitiveProviderCount);\n\n return [...nonSensitivePrograms, ...sensitivePrograms];\n}\n\nconst distributePrograms = (type1Programs, type2Programs, programCount) => {\n const maxPerType = Math.floor(programCount / 2);\n const selectedType1 = type1Programs.slice(0, maxPerType);\n const selectedType2 = type2Programs.slice(0, maxPerType);\n \n const remaining = programCount - selectedType1.length - selectedType2.length;\n \n if (remaining > 0) {\n const extraType1 = type1Programs.slice(selectedType1.length, selectedType1.length + remaining);\n selectedType1.push(...extraType1);\n const stillRemaining = remaining - extraType1.length;\n if (stillRemaining > 0) {\n selectedType2.push(...type2Programs.slice(selectedType2.length, selectedType2.length + stillRemaining));\n }\n }\n \n return compact([...selectedType1, ...selectedType2]);\n};\n\nconst applyPlatformDistribution = (filteredPrograms, programCount) => {\n const onPlatform = filteredPrograms.filter((program) => program.attributes.receiving_referrals);\n const offPlatform = filteredPrograms.filter((program) => !program.attributes.receiving_referrals);\n return distributePrograms(onPlatform, offPlatform, programCount);\n};\n\nconst applyCCDistribution = (filteredPrograms, programCount) => {\n const ccPrograms = getCCOrNonCCPrograms({ filteredPrograms, providerType: 'coordination_center' });\n const nonCCPrograms = getCCOrNonCCPrograms({ filteredPrograms, providerType: 'provider' });\n return distributePrograms(ccPrograms, nonCCPrograms, programCount);\n};\n\nconst applyLicensedDistribution = (filteredPrograms, programCount, licensedProviderIsCC) => {\n const licensedPrograms = getLicensedOrUnlicensedPrograms({ filteredPrograms, isLicensed: true, licensedProviderIsCC });\n const unlicensedPrograms = getLicensedOrUnlicensedPrograms({ filteredPrograms, isLicensed: false });\n return distributePrograms(licensedPrograms, unlicensedPrograms, programCount);\n};\n\nconst getNetworkMatchedPrograms = (programsInSameNetwork, singleNetwork, programsWithSharedNetwork, programsWithSingleSharedNetwork) => {\n if (programsInSameNetwork && singleNetwork) {\n return programsWithSingleSharedNetwork;\n }\n if (programsInSameNetwork) {\n return programsWithSharedNetwork;\n }\n return programs;\n};\n\nconst getProviderMatchedPrograms = (networkMatch, programsInSameProvider) => {\n const programsGroupedByProviderId = Object.values(groupBy(networkMatch, 'relationships.provider.data.id'));\n return programsInSameProvider\n ? programsGroupedByProviderId.filter(programs => programs.length > 1).flat()\n : programsGroupedByProviderId.flat();\n};\n\nconst filterByReceivingProvider = (providerMatch, config) => {\n const {\n receivingProviderLicensed,\n receivingProviderIsCC,\n receivingProviderSensitive,\n licensedAndUnlicensedReceivingProviders,\n sensitiveAndNonSensitiveReceivingProvider,\n ccAndNonCCPrograms\n } = config;\n\n return providerMatch.filter((program) => {\n const providerId = program.relationships.provider.data.id;\n const provider = providers.find((p) => p.id === providerId);\n \n const providerInNetworkMatch = receivingProviderLicensed ? provider.attributes.licensed : !provider.attributes.licensed;\n const providerIsCCMatch = receivingProviderIsCC ? provider.attributes.provider_type === 'coordination_center' : provider.attributes.provider_type === 'provider';\n const providerIsSensitiveMatch = provider.attributes.sensitive === receivingProviderSensitive;\n\n return (licensedAndUnlicensedReceivingProviders || providerInNetworkMatch) &&\n (sensitiveAndNonSensitiveReceivingProvider || providerIsSensitiveMatch) &&\n (ccAndNonCCPrograms || providerIsCCMatch);\n });\n};\n\nconst filterByPlatform = (programs, onAndOffPlatformPrograms, receivingReferrals) => {\n if (onAndOffPlatformPrograms) {\n return programs;\n }\n return programs.filter((program) => program.attributes.receiving_referrals === receivingReferrals);\n};\n\nconst filterByProviderUniqueness = (programs, programsInSameProvider) => {\n if (programsInSameProvider) {\n return programs;\n }\n return uniqBy(programs, 'relationships.provider.data.id');\n};\n\nconst filterByFunding = (programs, isFunded) => {\n return programs.filter(program => {\n const fspId = program.relationships.fee_schedule_program?.data?.id;\n return isFunded ? !!fspId : !fspId;\n });\n};\n\nconst filterByAuthorization = (programs, requiresAuthorization) => {\n return programs.filter(program => {\n const fspId = program.relationships.fee_schedule_program?.data?.id;\n const fsp = feeSchedulePrograms.find((fsp) => fsp.id === fspId);\n return requiresAuthorization === !!fsp?.attributes?.authorization_required;\n });\n};\n\nconst applyBasicFilters = (filteredPrograms, config) => {\n const { onAndOffPlatformPrograms, receivingReferrals, programsInSameProvider, isFunded, requiresAuthorization } = config;\n \n let result = filteredPrograms;\n result = filterByPlatform(result, onAndOffPlatformPrograms, receivingReferrals);\n result = filterByProviderUniqueness(result, programsInSameProvider);\n result = filterByFunding(result, isFunded);\n result = filterByAuthorization(result, requiresAuthorization);\n\n return result;\n};\n\nconst getProgramsWithSameFeeSchedule = ({ filteredPrograms, programCount }) => {\n const programsGroupedByFeeSchedule = Object.values(groupBy(filteredPrograms, 'relationships.fee_schedule_program.data.id'));\n const groupWithEnoughPrograms = programsGroupedByFeeSchedule.find(group => group.length >= programCount);\n return groupWithEnoughPrograms ? groupWithEnoughPrograms.slice(0, programCount) : [];\n}\n\nconst filterGroupedPrograms = (config) => {\n const {\n programsInSameNetwork,\n singleNetwork,\n programsInSameProvider,\n onAndOffPlatformPrograms,\n ccAndNonCCPrograms,\n licensedAndUnlicensedReceivingProviders,\n sensitiveAndNonSensitiveReceivingProvider,\n sameFeeScheduleProgram,\n programCount,\n sensitiveProviderCount,\n sensitiveReceivingReferrals,\n licensedProviderIsCC\n } = config;\n\n const { programsWithSharedNetwork, programsWithSingleSharedNetwork } = separateProgramsByNetwork({ singleNetwork });\n\n const networkMatch = getNetworkMatchedPrograms(programsInSameNetwork, singleNetwork, programsWithSharedNetwork, programsWithSingleSharedNetwork);\n const providerMatch = getProviderMatchedPrograms(networkMatch, programsInSameProvider);\n const receivingProviderMatch = filterByReceivingProvider(providerMatch, config);\n const hasMixedDistributions = onAndOffPlatformPrograms || ccAndNonCCPrograms || licensedAndUnlicensedReceivingProviders;\n const configWithoutProviderFilter = { ...config, programsInSameProvider: hasMixedDistributions ? true : config.programsInSameProvider };\n let filteredPrograms = applyBasicFilters(receivingProviderMatch, configWithoutProviderFilter);\n\n if (licensedAndUnlicensedReceivingProviders && !onAndOffPlatformPrograms && !ccAndNonCCPrograms) {\n filteredPrograms = applyLicensedDistribution(filteredPrograms, programCount, licensedProviderIsCC);\n }\n\n if (ccAndNonCCPrograms && !onAndOffPlatformPrograms) {\n filteredPrograms = applyCCDistribution(filteredPrograms, programCount);\n }\n\n if (onAndOffPlatformPrograms) {\n filteredPrograms = applyPlatformDistribution(filteredPrograms, programCount);\n }\n\n if (sensitiveAndNonSensitiveReceivingProvider) {\n filteredPrograms = getSensitiveAndNonSensitivePrograms({ \n filteredPrograms, \n sensitiveReceivingReferrals, \n sensitiveProviderCount, \n programCount \n });\n }\n\n if (sameFeeScheduleProgram) {\n filteredPrograms = getProgramsWithSameFeeSchedule({ filteredPrograms, programCount });\n }\n\n return filteredPrograms;\n};\n\n// Function to filter and select programs based on criteria\nconst filterAndSelectPrograms = ({\n sendingProviderIsCC = false,\n sendingProviderSensitive = false,\n receivingProviderIsCC = false,\n licensedProviderIsCC = false,\n programInCurrentProvider = false,\n receivingProviderLicensed = true,\n licensedAndUnlicensedReceivingProviders = false,\n receivingProviderSensitive = false,\n sensitiveAndNonSensitiveReceivingProvider = false,\n receivingReferrals = true,\n sensitiveReceivingReferrals,\n onAndOffPlatformPrograms = false,\n ccAndNonCCPrograms = false,\n programsInSameNetwork = false,\n singleNetwork = false,\n programsInSameProvider = false,\n isGrouped = false,\n isFunded = false,\n requiresAuthorization = false,\n sensitiveProviderCount = 1,\n programCount = isGrouped ? 2 : 1,\n sensitiveService = false,\n serviceCount = 1,\n cmCodeRequiredOnAuthorization = false,\n sameFeeScheduleProgram = false,\n}) => {\n // Get the current provider based on criteria\n let filteredPrograms;\n\n if (isGrouped) {\n filteredPrograms = filterGroupedPrograms({\n receivingProviderIsCC,\n receivingProviderLicensed,\n licensedProviderIsCC,\n licensedAndUnlicensedReceivingProviders,\n sensitiveAndNonSensitiveReceivingProvider,\n sensitiveProviderCount,\n programCount,\n receivingProviderSensitive,\n receivingReferrals,\n sensitiveReceivingReferrals,\n onAndOffPlatformPrograms,\n ccAndNonCCPrograms,\n programsInSameNetwork,\n singleNetwork,\n programsInSameProvider,\n isFunded,\n requiresAuthorization,\n sameFeeScheduleProgram,\n });\n } else {\n filteredPrograms = filterSingleProgram({\n receivingProviderIsCC,\n sendingProviderIsCC,\n sendingProviderSensitive,\n programInCurrentProvider,\n receivingProviderLicensed,\n receivingProviderSensitive,\n receivingReferrals,\n isFunded,\n requiresAuthorization,\n cmCodeRequiredOnAuthorization,\n })\n }\n // Select programs and services\n return selectPrograms(filteredPrograms, serviceCount, programCount, sensitiveService);\n}\n\n// Group all unlisted programs by service, filter by program count and filter by results amount\nconst filterAndSelectUnlistedPrograms = ({\n programCount = 1,\n results = 1,\n}) => {\n const groupedUnlistedProgramsByService = Object.values(groupBy(unlistedPrograms, 'services[0]'));\n\n let selectedUnlistedPrograms = groupedUnlistedProgramsByService\n .filter(group => group.length === programCount)\n ?.slice(0, results)\n ?.flat();\n\n return selectedUnlistedPrograms;\n}\n\n// Function to select programs and services\nconst selectPrograms = (filteredPrograms, serviceCount, programCount, sensitiveService) => {\n const filteredServices = services.filter((s) => s.attributes.sensitive === sensitiveService);\n\n const selectedPrograms = filteredPrograms.slice(0, programCount).map((program) => {\n const programServices = filteredServices\n .filter((s) => program.relationships.services.data.map(({ id }) => id).includes(s.id))\n .slice(0, serviceCount).map((s) => s.id);\n return {\n id: program.id,\n services: programServices,\n isOffPlatform: !program.attributes.receiving_referrals\n }\n });\n\n return selectedPrograms;\n}\n\nexport const getSelectedPrograms = (options) => {\n return filterAndSelectPrograms(options);\n}\n\nexport const getSelectedUnlistedPrograms = (options) => {\n return filterAndSelectUnlistedPrograms(options);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -24,7 +24,7 @@ const {
24
24
  }
25
25
  } = mockAppReferralsProps;
26
26
  export const getUrl = path => {
27
- return "".concat(coreUrl).concat(path);
27
+ return `${coreUrl}${path}`;
28
28
  };
29
29
  export const handlers = [
30
30
  // Referral handlers
@@ -96,8 +96,7 @@ rest.get(getUrl('/services/:id'), (req, res, ctx) => {
96
96
  data: service
97
97
  }));
98
98
  }), rest.get(getUrl('/services'), (req, res, ctx) => {
99
- var _req$url$searchParams;
100
- const filterId = (_req$url$searchParams = req.url.searchParams.get('filter[id]')) !== null && _req$url$searchParams !== void 0 ? _req$url$searchParams : "";
99
+ const filterId = req.url.searchParams.get('filter[id]') ?? "";
101
100
  const ids = filterId.split(',').filter(i => !!i);
102
101
  return res(ctx.json({
103
102
  data: ids.map(id => servicesMap.get(id))
@@ -116,8 +115,7 @@ rest.get(getUrl('/programs/:id'), (req, res, ctx) => {
116
115
  data: program
117
116
  }));
118
117
  }), rest.get(getUrl('/programs'), (req, res, ctx) => {
119
- var _req$url$searchParams2;
120
- const filterId = (_req$url$searchParams2 = req.url.searchParams.get('filter[id]')) !== null && _req$url$searchParams2 !== void 0 ? _req$url$searchParams2 : "";
118
+ const filterId = req.url.searchParams.get('filter[id]') ?? "";
121
119
  const ids = filterId.split(',').filter(i => !!i);
122
120
  return res(ctx.json({
123
121
  data: ids.map(id => programsMap.get(id))
@@ -149,8 +147,7 @@ rest.get(getUrl('/networks/:id'), (req, res, ctx) => {
149
147
  data: network
150
148
  }));
151
149
  }), rest.get(getUrl('/networks'), (req, res, ctx) => {
152
- var _req$url$searchParams3;
153
- const filterId = (_req$url$searchParams3 = req.url.searchParams.get('filter[id]')) !== null && _req$url$searchParams3 !== void 0 ? _req$url$searchParams3 : "";
150
+ const filterId = req.url.searchParams.get('filter[id]') ?? "";
154
151
  const ids = filterId.split(',').filter(i => !!i);
155
152
  return res(ctx.json({
156
153
  data: ids.map(id => networksMap.get(id))
@@ -162,8 +159,7 @@ rest.get(getUrl('/employees'), (req, res, ctx) => {
162
159
  data: Array.from(employeesMap.values())
163
160
  }));
164
161
  }), rest.get(getUrl('/form_usages'), (req, res, ctx) => {
165
- var _req$url$searchParams4;
166
- const formIds = (_req$url$searchParams4 = req.url.searchParams.get('filter[form]')) !== null && _req$url$searchParams4 !== void 0 ? _req$url$searchParams4 : "";
162
+ const formIds = req.url.searchParams.get('filter[form]') ?? "";
167
163
  const formsUsages = mockFormUsages.filter(item => formIds.split(',').includes(item.relationships.form.data.id));
168
164
  return res(ctx.json({
169
165
  data: formsUsages
@@ -184,8 +180,7 @@ rest.get(getUrl('/employees'), (req, res, ctx) => {
184
180
  data: form
185
181
  }));
186
182
  }), rest.get(getUrl('/form_submissions'), (req, res, ctx) => {
187
- var _req$url$searchParams5;
188
- const formIds = (_req$url$searchParams5 = req.url.searchParams.get('filter[form]')) !== null && _req$url$searchParams5 !== void 0 ? _req$url$searchParams5 : "";
183
+ const formIds = req.url.searchParams.get('filter[form]') ?? "";
189
184
  const formsSubmissions = mockFormSubmissions.filter(item => formIds.split(',').includes(item.relationships.form.data.id));
190
185
  // if (!formsSubmissions) {
191
186
  // return res(ctx.status(404));
@@ -225,8 +220,7 @@ rest.post(getUrl('/service_authorizations'), (req, res, ctx) => {
225
220
  }),
226
221
  // Clinical Modifications handlers
227
222
  rest.get(getUrl('/clinical_modifications'), (req, res, ctx) => {
228
- var _req$url$searchParams6;
229
- const code = (_req$url$searchParams6 = req.url.searchParams.get('filter[code]')) !== null && _req$url$searchParams6 !== void 0 ? _req$url$searchParams6 : "";
223
+ const code = req.url.searchParams.get('filter[code]') ?? "";
230
224
  const mockCMs = mockClinicalModifications.filter(item => item.attributes.code.includes(code));
231
225
  return res(ctx.json({
232
226
  data: mockCMs