{"version":3,"file":"js/rescript-bundles-user-dashboard-projects-create-internet-rfp-project-providers-selection-efef767b696584c8d0f3.chunk.js","mappings":"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","sources":["webpack://datacenters/./client/app/rescript/bindings/Notification.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/create-internet-rfp-project-providers-selection/CreateInternetRfpProjectProvidersSelection.scss?06b9","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/create-internet-rfp-project-providers-selection/CreateInternetRfpProjectProvidersSelection_SelectProvidersSection.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/create-internet-rfp-project-providers-selection/CreateInternetRfpProjectProvidersSelection.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/create-internet-rfp-project-providers-selection/CreateInternetRfpProjectProvidersSelection__JsBridge.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/create-internet-rfp-project-providers-selection/index.js"],"sourcesContent":["// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as ReactNotifications from \"react-notifications\";\n\nvar Container = {};\n\nfunction success(message, title, timeout) {\n ReactNotifications.NotificationManager.success(message, title, timeout);\n}\n\nfunction error(message, title, timeout) {\n ReactNotifications.NotificationManager.error(message, title, timeout);\n}\n\nvar NotificationManager = {\n success: success,\n error: error\n};\n\nvar Manager = {};\n\nexport {\n Container ,\n NotificationManager ,\n Manager ,\n}\n/* react-notifications Not a pure module */\n","// extracted by mini-css-extract-plugin\nexport var column = \"CreateInternetRfpProjectProvidersSelection__column__Uv3Wn\";\nexport var container = \"CreateInternetRfpProjectProvidersSelection__container__OPWaR\";\nexport var contentWrapper = \"CreateInternetRfpProjectProvidersSelection__contentWrapper__ybKgN\";\nexport var deselectAll = \"CreateInternetRfpProjectProvidersSelection__deselectAll__wjcIt\";\nexport var flex = \"CreateInternetRfpProjectProvidersSelection__flex__ysQLO\";\nexport var flexColumn = \"CreateInternetRfpProjectProvidersSelection__flexColumn__BGNGG\";\nexport var gap1 = \"CreateInternetRfpProjectProvidersSelection__gap1__Er87I\";\nexport var gap2 = \"CreateInternetRfpProjectProvidersSelection__gap2___dMrc\";\nexport var gap3 = \"CreateInternetRfpProjectProvidersSelection__gap3__U6eUl\";\nexport var gap4 = \"CreateInternetRfpProjectProvidersSelection__gap4__tyQfS\";\nexport var gap5 = \"CreateInternetRfpProjectProvidersSelection__gap5__Kvrrh\";\nexport var heading = \"CreateInternetRfpProjectProvidersSelection__heading__Ommrd\";\nexport var row = \"CreateInternetRfpProjectProvidersSelection__row__tegMP\";\nexport var selectProvidersSectionHeading = \"CreateInternetRfpProjectProvidersSelection__selectProvidersSectionHeading__b6Xc0\";\nexport var subHeading = \"CreateInternetRfpProjectProvidersSelection__subHeading__tqxFq\";","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as ID from \"../../../../libs/ID.res.js\";\nimport * as Js_array from \"rescript/lib/es6/js_array.js\";\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as ProviderSelectionTile from \"../_components/ProviderSelectionTile/ProviderSelectionTile.res.js\";\nimport * as CreateInternetRfpProjectProvidersSelectionScss from \"./CreateInternetRfpProjectProvidersSelection.scss\";\n\nvar css = CreateInternetRfpProjectProvidersSelectionScss;\n\nfunction CreateInternetRfpProjectProvidersSelection_SelectProvidersSection(props) {\n var userRole = props.userRole;\n var toggleProviderSelection = props.toggleProviderSelection;\n var selectedProviders = props.selectedProviders;\n return JsxRuntime.jsxs(JsxRuntime.Fragment, {\n children: [\n JsxRuntime.jsx(\"h2\", {\n children: \"Select Your Internet Providers\",\n className: css.selectProvidersSectionHeading\n }),\n JsxRuntime.jsx(\"p\", {\n children: \"Deselect all\",\n className: css.deselectAll,\n onClick: props.onDeselectAll\n }),\n Belt_Array.map(props.providers, (function (provider) {\n return JsxRuntime.jsx(ProviderSelectionTile.make, {\n provider: provider,\n checked: Js_array.includes(provider.id, selectedProviders),\n onToggle: (function (param) {\n toggleProviderSelection(provider);\n }),\n userRole: userRole,\n selectedProviders: selectedProviders\n }, ID.toString(provider.id) + \"-Provider-Selection-Tile\");\n }))\n ]\n });\n}\n\nvar make = CreateInternetRfpProjectProvidersSelection_SelectProvidersSection;\n\nexport {\n css ,\n make ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Api from \"../../../../api/Api.res.js\";\nimport * as Url from \"../../../../utils/Url.res.js\";\nimport * as Hooks from \"../../../../libs/Hooks.res.js\";\nimport * as React from \"react\";\nimport * as $$Promise from \"../../../../bindings/Promise.res.js\";\nimport * as Caml_obj from \"rescript/lib/es6/caml_obj.js\";\nimport * as Debounce from \"rescript-debounce/src/Debounce.res.js\";\nimport * as Js_array from \"rescript/lib/es6/js_array.js\";\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport * as Visibility from \"../../../../libs/Visibility.res.js\";\nimport * as $$Notification from \"../../../../bindings/Notification.res.js\";\nimport * as SentryLogger from \"../../../../loggers/SentryLogger.res.js\";\nimport * as ProjectWizard from \"../_components/ProjectWizard/ProjectWizard.res.js\";\nimport * as Routes_Project from \"../../../../routes/common/Routes_Project.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as ReactNotifications from \"react-notifications\";\nimport * as SignInModalContainer from \"../../../../styleguide/modals/SignInModal/SignInModalContainer.res.js\";\nimport * as ProjectWizardNavigation from \"../_components/ProjectWizardNavigation/ProjectWizardNavigation.res.js\";\nimport * as CreateInternetRfpProjectProvidersSelectionScss from \"./CreateInternetRfpProjectProvidersSelection.scss\";\nimport * as CreateInternetRfpProjectProvidersSelection_SelectProvidersSection from \"./CreateInternetRfpProjectProvidersSelection_SelectProvidersSection.res.js\";\n\nvar css = CreateInternetRfpProjectProvidersSelectionScss;\n\nvar persistDraft = Debounce.make(900, (function (param) {\n if (param[1].TAG === \"Draft\") {\n return $$Promise.wait(Api.saveProjectProvidersSelectionDraft(param[0]), (function (x) {\n if (x.TAG === \"Ok\") {\n return $$Notification.NotificationManager.success(\"Draft saved!\", \"\", 1000);\n }\n SentryLogger.error1({\n rootModule: \"CreateInternetRfpProjectProvidersSelection\",\n subModulePath: {\n hd: \"Api\",\n tl: /* [] */0\n },\n value: \"persistDraft\",\n fullPath: \"CreateInternetRfpProjectProvidersSelection.Api.persistDraft\"\n }, \"SaveInternetRfpProjectProvidersSelectionDraft::Error\", [\n \"Error\",\n x._0\n ]);\n $$Notification.NotificationManager.error(\"Something went wrong trying to save the draft\", \"\", 1000);\n }));\n }\n \n }));\n\nfunction submitForm(selectedProvidersIds, context) {\n if (context.TAG === \"Draft\") {\n return $$Promise.wait(Api.saveProjectProvidersSelection(selectedProvidersIds), (function (x) {\n if (x.TAG === \"Ok\") {\n return Url.visit(Routes_Project.Internet.GeneralInfo.$$new);\n }\n SentryLogger.error1({\n rootModule: \"CreateInternetRfpProjectProvidersSelection\",\n subModulePath: {\n hd: \"Api\",\n tl: /* [] */0\n },\n value: \"submitForm\",\n fullPath: \"CreateInternetRfpProjectProvidersSelection.Api.submitForm\"\n }, \"SaveInternetRfpProjectProvidersSelection::Error\", [\n \"Error\",\n x._0\n ]);\n $$Notification.NotificationManager.error(\"Something went wrong trying to save the draft\", \"\", 1000);\n }));\n }\n var projectId = context.projectId;\n $$Promise.wait(Api.updateProjectProvidersSelection(selectedProvidersIds, projectId), (function (x) {\n if (x.TAG === \"Ok\") {\n return Url.visit(Routes_Project.Internet.GeneralInfo.show(projectId));\n }\n SentryLogger.error1({\n rootModule: \"CreateInternetRfpProjectProvidersSelection\",\n subModulePath: {\n hd: \"Api\",\n tl: /* [] */0\n },\n value: \"submitForm\",\n fullPath: \"CreateInternetRfpProjectProvidersSelection.Api.submitForm\"\n }, \"UpdateInternetProjectProvidersSelection::Error\", [\n \"Error\",\n x._0\n ]);\n $$Notification.NotificationManager.error(\"Something went wrong trying to update the project\", \"\", 1000);\n }));\n}\n\nfunction saveDraftProjectAndContinueLater(selectedProvidersIds, context) {\n if (context.TAG === \"Draft\") {\n return $$Promise.wait(Api.saveInternetDraftProjectProvidersSelection(selectedProvidersIds), (function (x) {\n if (x.TAG === \"Ok\") {\n return Url.visit(Routes_Project.index);\n }\n SentryLogger.error1({\n rootModule: \"CreateInternetRfpProjectProvidersSelection\",\n subModulePath: {\n hd: \"Api\",\n tl: /* [] */0\n },\n value: \"saveDraftProjectAndContinueLater\",\n fullPath: \"CreateInternetRfpProjectProvidersSelection.Api.saveDraftProjectAndContinueLater\"\n }, \"saveDraftProjectAndContinueLater::saveProjectDraft::Error\", [\n \"Error\",\n x._0\n ]);\n $$Notification.NotificationManager.error(\"Something went wrong trying to save the draft\", \"\", 1000);\n }));\n } else {\n return $$Promise.wait(Api.updateProjectProvidersSelection(selectedProvidersIds, context.projectId), (function (x) {\n if (x.TAG === \"Ok\") {\n return Url.visit(Routes_Project.index);\n }\n SentryLogger.error1({\n rootModule: \"CreateInternetRfpProjectProvidersSelection\",\n subModulePath: {\n hd: \"Api\",\n tl: /* [] */0\n },\n value: \"saveDraftProjectAndContinueLater\",\n fullPath: \"CreateInternetRfpProjectProvidersSelection.Api.saveDraftProjectAndContinueLater\"\n }, \"UpdateInternetRfpProjectProvidersSelection::Error\", [\n \"Error\",\n x._0\n ]);\n $$Notification.NotificationManager.error(\"Something went wrong trying to update the project\", \"\", 1000);\n }));\n }\n}\n\nvar Api$1 = {\n persistDraft: persistDraft,\n submitForm: submitForm,\n saveDraftProjectAndContinueLater: saveDraftProjectAndContinueLater\n};\n\nfunction CreateInternetRfpProjectProvidersSelection(props) {\n var userRole = props.userRole;\n var projectStatus = props.projectStatus;\n var userLoginStatus = props.userLoginStatus;\n var providers = props.providers;\n var context = props.context;\n var match = React.useState(function () {\n return \"Hidden\";\n });\n var toggleSignInModal = match[1];\n var signInModal = match[0];\n var initialState = React.useMemo((function () {\n var tmp;\n if (context.TAG === \"Draft\") {\n var selectedProvidersIds = context.selectedProvidersIds;\n tmp = selectedProvidersIds !== undefined ? selectedProvidersIds : (\n userRole === \"User\" ? Belt_Array.map(Belt_Array.slice(providers, 0, 0), (function (p) {\n return p.id;\n })) : Belt_Array.map(providers, (function (p) {\n return p.id;\n }))\n );\n } else {\n tmp = context.selectedProvidersIds;\n }\n return {\n selectedProviders: tmp,\n userLoginStatus: userLoginStatus\n };\n }), providers);\n var match$1 = Hooks.useReducer(initialState, (function (state, action) {\n if (typeof action !== \"object\") {\n return {\n TAG: \"UpdateWithSideEffects\",\n _0: {\n selectedProviders: [],\n userLoginStatus: state.userLoginStatus\n },\n _1: (function (param) {\n persistDraft([\n [],\n context\n ]);\n })\n };\n }\n if (action.TAG !== \"ToggleProviderSelection\") {\n return {\n TAG: \"UpdateWithSideEffects\",\n _0: {\n selectedProviders: state.selectedProviders,\n userLoginStatus: action._0\n },\n _1: (function (param) {\n saveDraftProjectAndContinueLater(state.selectedProviders, context);\n })\n };\n }\n var provider = action._0;\n var selectedProviders = Js_array.includes(provider.id, state.selectedProviders) ? Js_array.filter((function (id) {\n return Caml_obj.notequal(id, provider.id);\n }), state.selectedProviders) : Belt_Array.concat(state.selectedProviders, [provider.id]);\n return {\n TAG: \"UpdateWithSideEffects\",\n _0: {\n selectedProviders: selectedProviders,\n userLoginStatus: state.userLoginStatus\n },\n _1: (function (param) {\n persistDraft([\n selectedProviders,\n context\n ]);\n })\n };\n }));\n var dispatch = match$1[1];\n var state = match$1[0];\n var navigationPreviousControl_1 = function (param) {\n if (context.TAG === \"Draft\") {\n return Url.visit(Routes_Project.Internet.$$new);\n } else {\n return Url.visit(Routes_Project.Internet.Configuration.show(context.projectId));\n }\n };\n var navigationPreviousControl = [\n \"Back\",\n navigationPreviousControl_1,\n \"Enabled\"\n ];\n var navigationNextControl = React.useMemo((function () {\n var match = state.selectedProviders;\n return [\n \"Next Step\",\n (function () {\n submitForm(state.selectedProviders, context);\n }),\n match.length !== 0 ? \"Enabled\" : \"Disabled\"\n ];\n }), [state.selectedProviders]);\n var navigationContinueLaterControl = React.useMemo((function () {\n var match = state.userLoginStatus;\n if (match === \"LoggedIn\" && projectStatus === \"Draft\") {\n return [\n \"Save and Continue Later\",\n (function () {\n saveDraftProjectAndContinueLater(state.selectedProviders, context);\n })\n ];\n }\n \n }), [state.selectedProviders]);\n var tmp;\n tmp = context.TAG === \"Draft\" ? \"Step 2: Select Internet Providers\" : \"Step 2: Edit Internet Providers\";\n var tmp$1;\n tmp$1 = signInModal === \"Shown\" ? JsxRuntime.jsx(SignInModalContainer.make, {\n close: (function () {\n toggleSignInModal(function (param) {\n return Visibility.toggle(signInModal);\n });\n }),\n callback: (function () {\n dispatch({\n TAG: \"ToggleLoginStatus\",\n _0: \"LoggedIn\"\n });\n }),\n setUserData: props.setUserData,\n subTitle: \"Sign In to save the project detail and continue later\"\n }) : null;\n return JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsx(ReactNotifications.NotificationContainer, {}),\n JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsx(\"h1\", {\n children: tmp,\n className: css.heading\n }),\n JsxRuntime.jsx(ProjectWizard.H2.make, {\n children: \"Compare Top ISPs and Telecom Carriers\"\n }),\n JsxRuntime.jsx(\"div\", {\n children: \"Based on your configurations from the previous step, we've matched your project with the following Internet service providers (ISPs). By default, all providers will be invited to provide solutions and pricing for your business Internet services. You may deselect any providers.\",\n className: css.subHeading\n }),\n JsxRuntime.jsx(CreateInternetRfpProjectProvidersSelection_SelectProvidersSection.make, {\n providers: providers,\n selectedProviders: state.selectedProviders,\n onDeselectAll: (function (param) {\n dispatch(\"DeselectAll\");\n }),\n toggleProviderSelection: (function (provider) {\n dispatch({\n TAG: \"ToggleProviderSelection\",\n _0: provider\n });\n }),\n userRole: userRole\n })\n ],\n className: css.contentWrapper\n }),\n JsxRuntime.jsx(ProjectWizardNavigation.make, {\n stepLabel: \"Step 2 of 3\",\n controls: {\n TAG: \"PreviousAndNextAndContinueLater\",\n next: navigationNextControl,\n previous: navigationPreviousControl,\n continueLater: navigationContinueLaterControl\n },\n mobile: props.mobile\n }),\n tmp$1\n ],\n className: css.container\n });\n}\n\nvar make = CreateInternetRfpProjectProvidersSelection;\n\nexport {\n css ,\n Api$1 as Api,\n make ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as ID from \"../../../../libs/ID.res.js\";\nimport * as React from \"react\";\nimport * as Project from \"../../../../models/Project.res.js\";\nimport * as Provider from \"../../../../models/Provider.res.js\";\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport * as Belt_Result from \"rescript/lib/es6/belt_Result.js\";\nimport * as Caml_option from \"rescript/lib/es6/caml_option.js\";\nimport * as RailsContext from \"../../../../models/RailsContext.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as Json_Decode$JsonCombinators from \"@glennsl/rescript-json-combinators/src/Json_Decode.res.js\";\nimport * as CreateInternetRfpProjectProvidersSelection from \"./CreateInternetRfpProjectProvidersSelection.res.js\";\n\nfunction CreateInternetRfpProjectProvidersSelection__JsBridge$default(props) {\n var status = props.status;\n var selectedProvidersIds = props.selectedProvidersIds;\n var projectId = props.projectId;\n var providers = props.providers;\n var railsContext = props.railsContext;\n var railsContext$1 = React.useMemo((function () {\n return RailsContext.fromJson(railsContext);\n }), [railsContext]);\n var providers$1 = React.useMemo((function () {\n return Belt_Array.map(providers, Provider.Simple.fromJson);\n }), [providers]);\n var projectId$1 = React.useMemo((function () {\n return Belt_Result.getExn(Json_Decode$JsonCombinators.decode(projectId, Json_Decode$JsonCombinators.option(Project.Id.decoder)));\n }), [projectId]);\n var context = React.useMemo((function () {\n var match = Belt_Array.map(selectedProvidersIds, ID.fromJson);\n if (projectId$1 !== undefined) {\n return {\n TAG: \"Project\",\n projectId: Caml_option.valFromOption(projectId$1),\n selectedProvidersIds: match\n };\n } else if (match.length !== 0) {\n return {\n TAG: \"Draft\",\n selectedProvidersIds: match\n };\n } else {\n return {\n TAG: \"Draft\",\n selectedProvidersIds: undefined\n };\n }\n }), [\n projectId$1,\n selectedProvidersIds\n ]);\n var projectStatus = React.useMemo((function () {\n return Project.Status.fromString(status);\n }), [status]);\n return JsxRuntime.jsx(CreateInternetRfpProjectProvidersSelection.make, {\n mobile: railsContext$1.mobile,\n context: context,\n providers: providers$1,\n userLoginStatus: railsContext$1.userLoginStatus,\n setUserData: props.reduxfunction.setUserData,\n projectStatus: projectStatus,\n userRole: railsContext$1.userRole\n });\n}\n\nvar $$default = CreateInternetRfpProjectProvidersSelection__JsBridge$default;\n\nexport {\n $$default as default,\n}\n/* ID Not a pure module */\n","import * as React from 'react';\nimport ReduxProvider from 'ReduxProvider';\nimport { connect } from 'react-redux';\nimport { setUserData } from 'Client/common/actions/userActions';\nimport CreateInternetRfpProjectProvidersSelection from './CreateInternetRfpProjectProvidersSelection__JsBridge.res.js';\n\nconst mapDispatchToProps = dispatch => ({\n reduxfunction: {\n setUserData: userData => {\n dispatch(setUserData(userData));\n },\n },\n});\n\nconst CreateInternetRfpProjectProvidersSelectionContainer = connect(\n null,\n mapDispatchToProps,\n)(CreateInternetRfpProjectProvidersSelection);\n\nexport default ({ context, ...props }) => (\n \n \n \n);\n"],"names":["NotificationManager","success","message","title","timeout","ReactNotifications","error","column","container","contentWrapper","deselectAll","flex","flexColumn","gap1","gap2","gap3","gap4","gap5","heading","row","selectProvidersSectionHeading","subHeading","css","CreateInternetRfpProjectProvidersSelectionScss","make","props","userRole","toggleProviderSelection","selectedProviders","JsxRuntime","children","className","onClick","onDeselectAll","Belt_Array","providers","provider","ProviderSelectionTile","checked","Js_array","id","onToggle","param","ID","persistDraft","Debounce","TAG","$$Promise","Api","x","$$Notification","SentryLogger","rootModule","subModulePath","hd","tl","value","fullPath","_0","submitForm","selectedProvidersIds","context","Url","Routes_Project","GeneralInfo","$$new","projectId","show","saveDraftProjectAndContinueLater","tmp","tmp$1","projectStatus","userLoginStatus","match","React","toggleSignInModal","signInModal","initialState","undefined","p","match$1","Hooks","state","action","_1","Caml_obj","dispatch","navigationPreviousControl","Configuration","navigationNextControl","length","navigationContinueLaterControl","SignInModalContainer","close","Visibility","callback","setUserData","subTitle","ProjectWizard","CreateInternetRfpProjectProvidersSelection_SelectProvidersSection","ProjectWizardNavigation","stepLabel","controls","next","previous","continueLater","mobile","$$default","status","railsContext","railsContext$1","RailsContext","providers$1","Provider","fromJson","projectId$1","Belt_Result","Json_Decode$JsonCombinators","Project","decoder","Caml_option","fromString","CreateInternetRfpProjectProvidersSelection","reduxfunction","CreateInternetRfpProjectProvidersSelectionContainer","connect","userData","_ref","_objectWithoutProperties","_excluded","ReduxProvider"],"sourceRoot":""}