{"version":3,"file":"js/rescript-bundles-user-dashboard-projects-user-projects-9cfa6117b4e81c83c31b.chunk.js","mappings":"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","sources":["webpack://datacenters/./node_modules/@rescript/react/src/RescriptReactRouter.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-projects/UserProjects.scss?ddc6","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-projects/UserProjects_List_Item.scss?1c10","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-projects/UserProjects_List_Controls.scss?238e","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-projects/UserProjects_List_ControlsForUser.res.js","webpack://datacenters/./client/app/rescript/styleguide/icons/IconPause.res.js","webpack://datacenters/./client/app/rescript/styleguide/modals/PreparingProposalModal/PreparingProposalModal.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-projects/UserProjects_List_ControlsForAdmin.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-projects/UserProjects_List_ControlsForProvider.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-projects/UserProjects_List_Item.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-projects/UserProjects_List.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-projects/UserProjects_List_Filters.scss?001f","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-projects/UserProjects_List_Input.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-projects/UserProjects_List_Filter_Status.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-projects/UserProjects_List_Filter_Category.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-projects/UserProjects_List_Filter_Provider.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-projects/UserProjects.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-projects/UserProjects__JsBridge.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-projects/index.js","webpack://datacenters/./client/app/rescript/libs/Char.res.js","webpack://datacenters/./client/app/rescript/models/ProviderAsFilter.res.js","webpack://datacenters/./client/app/rescript/styleguide/components/Badge/BadgeCss.res.js","webpack://datacenters/./client/app/rescript/styleguide/components/Badge/Badge.scss?14be","webpack://datacenters/./client/app/rescript/styleguide/components/Badge/Badge.res.js","webpack://datacenters/./client/app/rescript/styleguide/components/Pagination/Pagination.scss?5bec","webpack://datacenters/./client/app/rescript/styleguide/components/Pagination/Pagination.res.js","webpack://datacenters/./client/app/rescript/styleguide/icons/IconDownload.res.js"],"sourcesContent":["// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as React from \"react\";\nimport * as Js_array from \"rescript/lib/es6/js_array.js\";\nimport * as Js_string from \"rescript/lib/es6/js_string.js\";\n\nfunction safeMakeEvent(eventName) {\n  if (typeof Event === \"function\") {\n    return new Event(eventName);\n  }\n  var $$event = document.createEvent(\"Event\");\n  $$event.initEvent(eventName, true, true);\n  return $$event;\n}\n\nfunction pathParse(str) {\n  switch (str) {\n    case \"\" :\n    case \"/\" :\n        return /* [] */0;\n    default:\n      var raw = Js_string.sliceToEnd(1, str);\n      var match = raw[raw.length - 1 | 0];\n      var raw$1 = match === \"/\" ? Js_string.slice(0, -1, raw) : raw;\n      var match$1 = Js_string.splitAtMost(\"?\", 2, raw$1);\n      var raw$2 = match$1.length !== 2 ? raw$1 : match$1[0];\n      var a = Js_array.filter((function (item) {\n              return item.length !== 0;\n            }), Js_string.split(\"/\", raw$2));\n      var _i = a.length - 1 | 0;\n      var _res = /* [] */0;\n      while(true) {\n        var res = _res;\n        var i = _i;\n        if (i < 0) {\n          return res;\n        }\n        _res = {\n          hd: a[i],\n          tl: res\n        };\n        _i = i - 1 | 0;\n        continue ;\n      };\n  }\n}\n\nfunction path(serverUrlString, param) {\n  var match = typeof window === \"undefined\" ? undefined : window;\n  if (serverUrlString !== undefined) {\n    return pathParse(serverUrlString);\n  } else if (match !== undefined) {\n    return pathParse(match.location.pathname);\n  } else {\n    return /* [] */0;\n  }\n}\n\nfunction hash() {\n  var $$window = typeof window === \"undefined\" ? undefined : window;\n  if ($$window === undefined) {\n    return \"\";\n  }\n  var raw = $$window.location.hash;\n  switch (raw) {\n    case \"\" :\n    case \"#\" :\n        return \"\";\n    default:\n      return Js_string.sliceToEnd(1, raw);\n  }\n}\n\nfunction searchParse(str) {\n  switch (str) {\n    case \"\" :\n    case \"?\" :\n        return \"\";\n    default:\n      var match = Js_string.splitAtMost(\"?\", 2, str);\n      if (match.length !== 2) {\n        return \"\";\n      } else {\n        return match[1];\n      }\n  }\n}\n\nfunction search(serverUrlString, param) {\n  var match = typeof window === \"undefined\" ? undefined : window;\n  if (serverUrlString !== undefined) {\n    return searchParse(serverUrlString);\n  } else if (match !== undefined) {\n    return searchParse(match.location.search);\n  } else {\n    return \"\";\n  }\n}\n\nfunction push(path) {\n  var match = typeof history === \"undefined\" ? undefined : history;\n  var match$1 = typeof window === \"undefined\" ? undefined : window;\n  if (match !== undefined && match$1 !== undefined) {\n    match.pushState(null, \"\", path);\n    match$1.dispatchEvent(safeMakeEvent(\"popstate\"));\n    return ;\n  }\n  \n}\n\nfunction replace(path) {\n  var match = typeof history === \"undefined\" ? undefined : history;\n  var match$1 = typeof window === \"undefined\" ? undefined : window;\n  if (match !== undefined && match$1 !== undefined) {\n    match.replaceState(null, \"\", path);\n    match$1.dispatchEvent(safeMakeEvent(\"popstate\"));\n    return ;\n  }\n  \n}\n\nfunction urlNotEqual(a, b) {\n  if (a.hash !== b.hash || a.search !== b.search) {\n    return true;\n  } else {\n    var _aList = a.path;\n    var _bList = b.path;\n    while(true) {\n      var bList = _bList;\n      var aList = _aList;\n      if (!aList) {\n        if (bList) {\n          return true;\n        } else {\n          return false;\n        }\n      }\n      if (!bList) {\n        return true;\n      }\n      if (aList.hd !== bList.hd) {\n        return true;\n      }\n      _bList = bList.tl;\n      _aList = aList.tl;\n      continue ;\n    };\n  }\n}\n\nfunction url(serverUrlString, param) {\n  return {\n          path: path(serverUrlString, undefined),\n          hash: hash(),\n          search: search(serverUrlString, undefined)\n        };\n}\n\nfunction watchUrl(callback) {\n  var $$window = typeof window === \"undefined\" ? undefined : window;\n  if ($$window === undefined) {\n    return function () {\n      \n    };\n  }\n  var watcherID = function () {\n    callback(url(undefined, undefined));\n  };\n  $$window.addEventListener(\"popstate\", watcherID);\n  return watcherID;\n}\n\nfunction unwatchUrl(watcherID) {\n  var $$window = typeof window === \"undefined\" ? undefined : window;\n  if ($$window !== undefined) {\n    $$window.removeEventListener(\"popstate\", watcherID);\n    return ;\n  }\n  \n}\n\nfunction useUrl(serverUrl, param) {\n  var match = React.useState(function () {\n        if (serverUrl !== undefined) {\n          return serverUrl;\n        } else {\n          return url(undefined, undefined);\n        }\n      });\n  var setUrl = match[1];\n  var url$1 = match[0];\n  React.useEffect((function () {\n          var watcherId = watchUrl(function (url) {\n                setUrl(function (param) {\n                      return url;\n                    });\n              });\n          var newUrl = url(undefined, undefined);\n          if (urlNotEqual(newUrl, url$1)) {\n            setUrl(function (param) {\n                  return newUrl;\n                });\n          }\n          return (function () {\n                    unwatchUrl(watcherId);\n                  });\n        }), []);\n  return url$1;\n}\n\nvar dangerouslyGetInitialUrl = url;\n\nexport {\n  push ,\n  replace ,\n  watchUrl ,\n  unwatchUrl ,\n  dangerouslyGetInitialUrl ,\n  useUrl ,\n}\n/* react Not a pure module */\n","// extracted by mini-css-extract-plugin\nexport var buttonContainer = \"UserProjects__buttonContainer__Yrfxj\";\nexport var column = \"UserProjects__column__TcN85\";\nexport var container = \"UserProjects__container__iej2w\";\nexport var contentWrapper = \"UserProjects__contentWrapper__Zifb_\";\nexport var downloadIcon = \"UserProjects__downloadIcon__R8j79\";\nexport var filters = \"UserProjects__filters__ABkgo\";\nexport var flex = \"UserProjects__flex__Tzxjh\";\nexport var flexColumn = \"UserProjects__flexColumn__QAYs8\";\nexport var gap1 = \"UserProjects__gap1__KKrDI\";\nexport var gap2 = \"UserProjects__gap2__IKTYP\";\nexport var gap3 = \"UserProjects__gap3__iFcuK\";\nexport var gap4 = \"UserProjects__gap4__vS4MX\";\nexport var gap5 = \"UserProjects__gap5__QZHgt\";\nexport var heading = \"UserProjects__heading__IKNNm\";\nexport var newProjectMenu = \"UserProjects__newProjectMenu__HzQHl\";\nexport var newProjectMenuItem = \"UserProjects__newProjectMenuItem__JZ0LG\";\nexport var newProjectMenuItemControl = \"UserProjects__newProjectMenuItemControl__oEA3l\";\nexport var noResults = \"UserProjects__noResults__MaaR5\";\nexport var pagination = \"UserProjects__pagination__NPeHV\";\nexport var popoverBody = \"UserProjects__popoverBody__AqCuu\";\nexport var popoverRow = \"UserProjects__popoverRow__lNyOf\";\nexport var popoverTrigger = \"UserProjects__popoverTrigger__luDdm\";\nexport var projectsCount = \"UserProjects__projectsCount__o7N1c\";\nexport var row = \"UserProjects__row__RFO5y\";\nexport var sortAndCount = \"UserProjects__sortAndCount__ZAmG3\";\nexport var sortSelection = \"UserProjects__sortSelection__V2DaQ\";\nexport var title = \"UserProjects__title__oX0rM\";","// extracted by mini-css-extract-plugin\nexport var column = \"UserProjects_List_Item__column__pIesK\";\nexport var continueButton = \"UserProjects_List_Item__continueButton__lAS4T\";\nexport var deleteButton = \"UserProjects_List_Item__deleteButton__mNDSS\";\nexport var draftButtonsContainer = \"UserProjects_List_Item__draftButtonsContainer__KN15M\";\nexport var draftMessage = \"UserProjects_List_Item__draftMessage__rGpRq\";\nexport var draftProjectItem = \"UserProjects_List_Item__draftProjectItem__eNXjJ\";\nexport var finalizedMessage = \"UserProjects_List_Item__finalizedMessage__zOqeo\";\nexport var finalizedProjectItem = \"UserProjects_List_Item__finalizedProjectItem__dU6tX\";\nexport var flex = \"UserProjects_List_Item__flex__nySym\";\nexport var flexColumn = \"UserProjects_List_Item__flexColumn__zPqFB\";\nexport var gap1 = \"UserProjects_List_Item__gap1__NhaHQ\";\nexport var gap2 = \"UserProjects_List_Item__gap2__c4mHr\";\nexport var gap3 = \"UserProjects_List_Item__gap3__S0l2Q\";\nexport var gap4 = \"UserProjects_List_Item__gap4__bibUB\";\nexport var gap5 = \"UserProjects_List_Item__gap5__MFiAZ\";\nexport var inactiveMessage = \"UserProjects_List_Item__inactiveMessage__Uzlfk\";\nexport var inactiveProjectItem = \"UserProjects_List_Item__inactiveProjectItem__Ewc62\";\nexport var modalMessageButtons = \"UserProjects_List_Item__modalMessageButtons__Xo9jX\";\nexport var modalMessageContainer = \"UserProjects_List_Item__modalMessageContainer__kDxgA\";\nexport var modalMessageOverlay = \"UserProjects_List_Item__modalMessageOverlay__QtJp9\";\nexport var modalMessageText = \"UserProjects_List_Item__modalMessageText__xo0Va\";\nexport var productTag = \"UserProjects_List_Item__productTag__Cyt1v\";\nexport var projectDescription = \"UserProjects_List_Item__projectDescription__FK_X2\";\nexport var projectInfo = \"UserProjects_List_Item__projectInfo__CmVPP\";\nexport var projectItem = \"UserProjects_List_Item__projectItem__WLZVx\";\nexport var projectItemContainer = \"UserProjects_List_Item__projectItemContainer__l7BNN\";\nexport var projectLabel = \"UserProjects_List_Item__projectLabel__ZqH84\";\nexport var projectName = \"UserProjects_List_Item__projectName__xMxql\";\nexport var projectTitle = \"UserProjects_List_Item__projectTitle__SbJXW\";\nexport var projectUser = \"UserProjects_List_Item__projectUser__u1e_D\";\nexport var projectUserAvatar = \"UserProjects_List_Item__projectUserAvatar__X0QSR\";\nexport var projectUserText = \"UserProjects_List_Item__projectUserText__pm52_\";\nexport var proposalLabel = \"UserProjects_List_Item__proposalLabel__w0UKh\";\nexport var reviewMessage = \"UserProjects_List_Item__reviewMessage__QkIAt\";\nexport var reviewProjectItem = \"UserProjects_List_Item__reviewProjectItem__G1Uxx\";\nexport var row = \"UserProjects_List_Item__row__tDGBM\";","// extracted by mini-css-extract-plugin\nexport var activeProposals = \"UserProjects_List_Controls__activeProposals__faN0v\";\nexport var buttonsContainer = \"UserProjects_List_Controls__buttonsContainer__ji74b\";\nexport var column = \"UserProjects_List_Controls__column__FkubY\";\nexport var deleteButton = \"UserProjects_List_Controls__deleteButton__squn2\";\nexport var draftButtonsContainer = \"UserProjects_List_Controls__draftButtonsContainer__Bi6En\";\nexport var fakeLink = \"UserProjects_List_Controls__fakeLink__fSc_4\";\nexport var flex = \"UserProjects_List_Controls__flex__yKUKz\";\nexport var flexColumn = \"UserProjects_List_Controls__flexColumn__ssxgf\";\nexport var gap1 = \"UserProjects_List_Controls__gap1__XmzbU\";\nexport var gap2 = \"UserProjects_List_Controls__gap2__fboo2\";\nexport var gap3 = \"UserProjects_List_Controls__gap3__lbETH\";\nexport var gap4 = \"UserProjects_List_Controls__gap4__Q1sch\";\nexport var gap5 = \"UserProjects_List_Controls__gap5__aYvqp\";\nexport var largeHeight = \"UserProjects_List_Controls__largeHeight__H72PJ\";\nexport var link = \"UserProjects_List_Controls__link__rgKE6\";\nexport var modalMessageButtons = \"UserProjects_List_Controls__modalMessageButtons__CXBHP\";\nexport var modalMessageContainer = \"UserProjects_List_Controls__modalMessageContainer__MGJzL\";\nexport var modalMessageOverlay = \"UserProjects_List_Controls__modalMessageOverlay___0CvW\";\nexport var modalMessageText = \"UserProjects_List_Controls__modalMessageText__BsHVc\";\nexport var pillTitle = \"UserProjects_List_Controls__pillTitle__qjVxk\";\nexport var popoverBody = \"UserProjects_List_Controls__popoverBody__FbplC\";\nexport var popoverBodyActions = \"UserProjects_List_Controls__popoverBodyActions__m5YxS\";\nexport var popoverBodyActionsAdmin = \"UserProjects_List_Controls__popoverBodyActionsAdmin__ZjkPQ\";\nexport var popoverBodyPositionAdmin = \"UserProjects_List_Controls__popoverBodyPositionAdmin__jQlA1\";\nexport var popoverButton = \"UserProjects_List_Controls__popoverButton__Ht0VO\";\nexport var popoverIconActions = \"UserProjects_List_Controls__popoverIconActions__syenn\";\nexport var popoverProjectActions = \"UserProjects_List_Controls__popoverProjectActions__J8eQv\";\nexport var popoverRow = \"UserProjects_List_Controls__popoverRow__Z2avR\";\nexport var projectActions = \"UserProjects_List_Controls__projectActions__SIlDX\";\nexport var projectLabel = \"UserProjects_List_Controls__projectLabel__A20XE\";\nexport var projectLocationAndProviders = \"UserProjects_List_Controls__projectLocationAndProviders__spe8m\";\nexport var projectLocations = \"UserProjects_List_Controls__projectLocations__PvamY\";\nexport var projectProposalDates = \"UserProjects_List_Controls__projectProposalDates__BzJNl\";\nexport var projectProviderAdminControls = \"UserProjects_List_Controls__projectProviderAdminControls__omsDP\";\nexport var projectProviderLogo = \"UserProjects_List_Controls__projectProviderLogo__m3UXr\";\nexport var projectStatusBadge = \"UserProjects_List_Controls__projectStatusBadge___yn5n\";\nexport var projectStatusControl = \"UserProjects_List_Controls__projectStatusControl__uhB1u\";\nexport var projectStatusFinalized = \"UserProjects_List_Controls__projectStatusFinalized__ygI95\";\nexport var projectStatusInactive = \"UserProjects_List_Controls__projectStatusInactive__nGCRL\";\nexport var projectUserControls = \"UserProjects_List_Controls__projectUserControls__aQLGk\";\nexport var proposalDate = \"UserProjects_List_Controls__proposalDate__vwHXz\";\nexport var proposalDateContainer = \"UserProjects_List_Controls__proposalDateContainer__f8GN6\";\nexport var proposalDropdownTrigger = \"UserProjects_List_Controls__proposalDropdownTrigger__OtnM2\";\nexport var proposalLabel = \"UserProjects_List_Controls__proposalLabel__EAJjl\";\nexport var proposalStatus = \"UserProjects_List_Controls__proposalStatus__Bj6Nr\";\nexport var proposalsButton = \"UserProjects_List_Controls__proposalsButton__CAQJ1\";\nexport var providerDropdown = \"UserProjects_List_Controls__providerDropdown__kbTmW\";\nexport var row = \"UserProjects_List_Controls__row__RsQHF\";\nexport var smallHeight = \"UserProjects_List_Controls__smallHeight__qF1om\";\nexport var sortSelection = \"UserProjects_List_Controls__sortSelection__pUZGw\";\nexport var status = \"UserProjects_List_Controls__status__yTarI\";","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\nimport * as Api from \"../../../../api/Api.res.js\";\nimport * as Url from \"../../../../utils/Url.res.js\";\nimport * as React from \"react\";\nimport * as Button from \"../../../../styleguide/components/Button/Button.res.js\";\nimport * as Toggle from \"../../../../styleguide/forms/Toggle/Toggle.res.js\";\nimport * as Control from \"../../../../styleguide/components/Control/Control.res.js\";\nimport * as Popover from \"../../../../styleguide/components/Popover/Popover.res.js\";\nimport * as $$Promise from \"../../../../bindings/Promise.res.js\";\nimport * as IconMenu from \"../../../../styleguide/icons/IconMenu.res.js\";\nimport * as Belt_Option from \"rescript/lib/es6/belt_Option.js\";\nimport * as SentryLogger from \"../../../../loggers/SentryLogger.res.js\";\nimport * as ProjectService from \"../../../../services/ProjectService.res.js\";\nimport * as Routes_Project from \"../../../../routes/common/Routes_Project.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as UserProjects_List_ControlsScss from \"./UserProjects_List_Controls.scss\";\n\nvar css = UserProjects_List_ControlsScss;\n\nfunction UserProjects_List_ControlsForUser(props) {\n  var updateProjectStatus = props.updateProjectStatus;\n  var project = props.project;\n  var match = React.useState(function () {\n        return \"Hidden\";\n      });\n  var setDeleteModalVisibility = match[1];\n  var tmp;\n  if (project.TAG === \"Draft\") {\n    var totalLocations = project.data.totalLocations;\n    tmp = totalLocations !== undefined ? totalLocations : 0;\n  } else {\n    var totalLocations$1 = project.data.totalLocations;\n    tmp = totalLocations$1 !== undefined ? totalLocations$1 : 0;\n  }\n  var tmp$1;\n  if (project.TAG === \"Draft\") {\n    var totalProviders = project.data.totalProviders;\n    tmp$1 = totalProviders !== undefined ? totalProviders : 0;\n  } else {\n    var totalProviders$1 = project.data.totalProviders;\n    tmp$1 = totalProviders$1 !== undefined ? totalProviders$1 : 0;\n  }\n  var tmp$2;\n  if (project.TAG === \"Draft\") {\n    tmp$2 = null;\n  } else {\n    var match$1 = project.data;\n    var totalProposals = match$1.totalProposals;\n    var projectId = project.id;\n    if (props.userRole === \"Admin\") {\n      var tmp$3;\n      tmp$3 = match$1.status === \"Active\" ? JsxRuntime.jsxs(JsxRuntime.Fragment, {\n              children: [\n                JsxRuntime.jsx(Control.make, {\n                      className: css.deleteButton,\n                      onClick: (function (param) {\n                          setDeleteModalVisibility(function (param) {\n                                return \"Shown\";\n                              });\n                        }),\n                      children: \"Delete\"\n                    }),\n                match[0] === \"Shown\" ? JsxRuntime.jsx(\"div\", {\n                        children: JsxRuntime.jsxs(\"div\", {\n                              children: [\n                                JsxRuntime.jsx(\"div\", {\n                                      children: \"Are you sure?\",\n                                      className: css.modalMessageText\n                                    }),\n                                JsxRuntime.jsxs(\"div\", {\n                                      children: [\n                                        JsxRuntime.jsx(Button.make, {\n                                              size: \"SM\",\n                                              color: \"Gray\",\n                                              onClick: (function (param) {\n                                                  setDeleteModalVisibility(function (param) {\n                                                        return \"Hidden\";\n                                                      });\n                                                }),\n                                              children: \"Cancel\"\n                                            }),\n                                        JsxRuntime.jsx(Button.make, {\n                                              size: \"SM\",\n                                              color: \"Pink\",\n                                              onClick: (function (param) {\n                                                  $$Promise.wait(Api.deleteProject(projectId), (function (x) {\n                                                          if (x.TAG !== \"Ok\") {\n                                                            return SentryLogger.error({\n                                                                        rootModule: \"UserProjects_List_ControlsForUser\",\n                                                                        subModulePath: /* [] */0,\n                                                                        value: \"make\",\n                                                                        fullPath: \"UserProjects_List_ControlsForUser.make\"\n                                                                      }, \"DeleteProject::Error\");\n                                                          }\n                                                          window.location.reload();\n                                                        }));\n                                                }),\n                                              children: \"Yes, delete it\"\n                                            })\n                                      ],\n                                      className: css.modalMessageButtons\n                                    })\n                              ],\n                              className: css.modalMessageContainer\n                            }),\n                        className: css.modalMessageOverlay\n                      }) : null\n              ]\n            }) : null;\n      tmp$2 = JsxRuntime.jsxs(\"div\", {\n            children: [\n              JsxRuntime.jsx(\"a\", {\n                    children: totalProposals !== undefined && totalProposals !== 0 ? String(totalProposals) + \" Proposals\" : \"No proposals\",\n                    className: Cx.cx([\n                          css.proposalsButton,\n                          Belt_Option.getWithDefault(totalProposals, 0) > 0 ? css.activeProposals : \"\"\n                        ]),\n                    href: Routes_Project.Proposal.index(projectId)\n                  }),\n              tmp$3\n            ],\n            className: css.buttonsContainer\n          });\n    } else {\n      tmp$2 = JsxRuntime.jsx(\"a\", {\n            children: totalProposals !== undefined && totalProposals !== 0 ? String(totalProposals) + \" Proposals\" : \"No proposals\",\n            className: Cx.cx([\n                  css.proposalsButton,\n                  Belt_Option.getWithDefault(totalProposals, 0) > 0 ? css.activeProposals : \"\"\n                ]),\n            href: Routes_Project.Proposal.index(projectId)\n          });\n    }\n  }\n  var tmp$4;\n  if (project.TAG === \"Draft\") {\n    tmp$4 = null;\n  } else {\n    var status = project.data.status;\n    var category = project.category;\n    var projectId$1 = project.id;\n    var tmp$5;\n    var exit = 0;\n    switch (status) {\n      case \"Active\" :\n      case \"Inactive\" :\n          exit = 1;\n          break;\n      default:\n        tmp$5 = null;\n    }\n    if (exit === 1) {\n      var tmp$6;\n      tmp$6 = status === \"Active\" ? true : false;\n      tmp$5 = JsxRuntime.jsx(Toggle.make, {\n            on: tmp$6,\n            size: \"MD\",\n            onChange: (function () {\n                var tmp;\n                switch (status) {\n                  case \"Draft\" :\n                      tmp = \"Draft\";\n                      break;\n                  case \"Active\" :\n                      tmp = \"Inactive\";\n                      break;\n                  case \"Inactive\" :\n                      tmp = \"Active\";\n                      break;\n                  case \"Finalized\" :\n                      tmp = \"Finalized\";\n                      break;\n                  case \"Review\" :\n                      tmp = \"Review\";\n                      break;\n                  \n                }\n                updateProjectStatus(projectId$1, tmp);\n              })\n          });\n    }\n    tmp$4 = JsxRuntime.jsxs(JsxRuntime.Fragment, {\n          children: [\n            JsxRuntime.jsx(\"div\", {\n                  children: tmp$5,\n                  className: css.projectStatus\n                }),\n            JsxRuntime.jsx(\"div\", {\n                  children: JsxRuntime.jsxs(Popover.make, {\n                        children: [\n                          JsxRuntime.jsx(Popover.Trigger.make, {\n                                className: css.popoverIconActions,\n                                children: JsxRuntime.jsx(IconMenu.make, {\n                                      size: \"LG\",\n                                      color: \"Teal\"\n                                    })\n                              }),\n                          JsxRuntime.jsxs(Popover.Body.make, {\n                                position: {\n                                  TAG: \"Below\",\n                                  _0: \"RightEdge\"\n                                },\n                                className: Cx.cx([\n                                      css.popoverBody,\n                                      css.popoverBodyActions\n                                    ]),\n                                children: [\n                                  JsxRuntime.jsx(\"div\", {\n                                        children: JsxRuntime.jsx(\"div\", {\n                                              children: \"Edit\",\n                                              className: css.sortSelection,\n                                              onClick: (function (param) {\n                                                  Url.visit(Routes_Project.update(projectId$1));\n                                                })\n                                            }),\n                                        className: css.popoverRow\n                                      }),\n                                  JsxRuntime.jsx(\"div\", {\n                                        children: JsxRuntime.jsx(\"div\", {\n                                              children: \"Clone project\",\n                                              className: css.sortSelection,\n                                              onClick: (function (param) {\n                                                  ProjectService.cloneProject(projectId$1, category);\n                                                })\n                                            }),\n                                        className: css.popoverRow\n                                      })\n                                ]\n                              })\n                        ]\n                      }),\n                  className: css.projectActions\n                })\n          ]\n        });\n  }\n  return JsxRuntime.jsxs(\"div\", {\n              children: [\n                JsxRuntime.jsxs(\"div\", {\n                      children: [\n                        JsxRuntime.jsx(\"div\", {\n                              children: \"Locations\",\n                              className: css.projectLabel\n                            }),\n                        JsxRuntime.jsxs(\"div\", {\n                              children: [\n                                JsxRuntime.jsx(\"span\", {\n                                      children: String(tmp)\n                                    }),\n                                \" locations, \",\n                                JsxRuntime.jsx(\"span\", {\n                                      children: String(tmp$1)\n                                    }),\n                                \" providers\"\n                              ],\n                              className: css.projectLocationAndProviders\n                            }),\n                        tmp$2\n                      ],\n                      className: css.projectLocations\n                    }),\n                tmp$4\n              ],\n              className: css.projectUserControls\n            });\n}\n\nvar make = UserProjects_List_ControlsForUser;\n\nexport {\n  css ,\n  make ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Icon from \"../components/Icon/Icon.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\n\nfunction IconPause(props) {\n  var __title = props.title;\n  var title = __title !== undefined ? __title : \"Pause\";\n  return JsxRuntime.jsx(Icon.make, {\n              title: title,\n              size: props.size,\n              className: props.className,\n              children: JsxRuntime.jsxs(\"g\", {\n                    children: [\n                      JsxRuntime.jsx(\"rect\", {\n                            height: \"12\",\n                            width: \"3\",\n                            rx: \"1\",\n                            x: \"3\",\n                            y: \"2\"\n                          }),\n                      JsxRuntime.jsx(\"rect\", {\n                            height: \"12\",\n                            width: \"3\",\n                            rx: \"1\",\n                            x: \"10\",\n                            y: \"2\"\n                          })\n                    ],\n                    fill: Icon.mapColor(props.color),\n                    fillRule: \"evenodd\"\n                  })\n            });\n}\n\nvar make = IconPause;\n\nexport {\n  make ,\n}\n/* Icon Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as P from \"../../components/Paragraph/P.res.js\";\nimport * as ID from \"../../../libs/ID.res.js\";\nimport * as Api from \"../../../api/Api.res.js\";\nimport * as React from \"react\";\nimport * as Button from \"../../components/Button/Button.res.js\";\nimport * as Control from \"../../components/Control/Control.res.js\";\nimport * as $$Promise from \"../../../bindings/Promise.res.js\";\nimport * as Caml_obj from \"rescript/lib/es6/caml_obj.js\";\nimport * as Dropdown from \"../../forms/Dropdown/Dropdown.res.js\";\nimport * as Provider from \"../../../models/Provider.res.js\";\nimport * as Textarea from \"../../forms/Textarea/Textarea.res.js\";\nimport * as IconClose from \"../../icons/IconClose.res.js\";\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport * as Caml_option from \"rescript/lib/es6/caml_option.js\";\nimport * as SentryLogger from \"../../../loggers/SentryLogger.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as NoBidModalScss from \"../NoBidModal/NoBidModal.scss\";\n\nvar css = NoBidModalScss;\n\nfunction reducer(state, action) {\n  switch (action.TAG) {\n    case \"FetchProviders\" :\n        var res = action._0;\n        var match = res.providers;\n        var providerId;\n        if (match.length !== 1) {\n          providerId = undefined;\n        } else {\n          var provider = match[0];\n          providerId = Caml_option.some(provider.id);\n        }\n        var input = state.input;\n        return {\n                input: {\n                  message: input.message,\n                  providerId: providerId\n                },\n                providers: res.providers,\n                fetchProviderApiStatus: \"Success\",\n                preparingProposalApiStatus: state.preparingProposalApiStatus\n              };\n    case \"SetFetchProviderApiStatus\" :\n        return {\n                input: state.input,\n                providers: state.providers,\n                fetchProviderApiStatus: action._0,\n                preparingProposalApiStatus: state.preparingProposalApiStatus\n              };\n    case \"Update\" :\n        return {\n                input: action._0,\n                providers: state.providers,\n                fetchProviderApiStatus: state.fetchProviderApiStatus,\n                preparingProposalApiStatus: state.preparingProposalApiStatus\n              };\n    case \"SetPreparingProposalApiStatus\" :\n        return {\n                input: state.input,\n                providers: state.providers,\n                fetchProviderApiStatus: state.fetchProviderApiStatus,\n                preparingProposalApiStatus: action._0\n              };\n    \n  }\n}\n\nfunction PreparingProposalModal(props) {\n  var projectId = props.projectId;\n  var close = props.close;\n  var match = React.useReducer(reducer, {\n        input: Provider.Simple.NoBidInput.empty(),\n        providers: [],\n        fetchProviderApiStatus: \"Success\",\n        preparingProposalApiStatus: \"Success\"\n      });\n  var dispatch = match[1];\n  var state = match[0];\n  var fetchProviders = function () {\n    dispatch({\n          TAG: \"SetFetchProviderApiStatus\",\n          _0: \"Fetching\"\n        });\n    $$Promise.wait(Api.fetchProviders(projectId), (function (x) {\n            if (x.TAG === \"Ok\") {\n              return dispatch({\n                          TAG: \"FetchProviders\",\n                          _0: x._0\n                        });\n            }\n            SentryLogger.error1({\n                  rootModule: \"PreparingProposalModal\",\n                  subModulePath: /* [] */0,\n                  value: \"make\",\n                  fullPath: \"PreparingProposalModal.make\"\n                }, \"PreparingProposalModal::FetchProviders::Error\", [\n                  \"Error\",\n                  x._0\n                ]);\n            dispatch({\n                  TAG: \"SetFetchProviderApiStatus\",\n                  _0: \"Error\"\n                });\n          }));\n  };\n  var sendSetPreparingStatus = function () {\n    $$Promise.wait(Api.setStatusOfProposalToPreparingByProvider(projectId, state.input), (function (x) {\n            if (x.TAG === \"Ok\") {\n              window.location.reload();\n              return ;\n            }\n            SentryLogger.error1({\n                  rootModule: \"PreparingProposalModal\",\n                  subModulePath: /* [] */0,\n                  value: \"make\",\n                  fullPath: \"PreparingProposalModal.make\"\n                }, \"PreparingProposalModal::PreparingProposalStatus::Error\", [\n                  \"Error\",\n                  x._0\n                ]);\n            dispatch({\n                  TAG: \"SetPreparingProposalApiStatus\",\n                  _0: \"Error\"\n                });\n          }));\n  };\n  React.useEffect((function () {\n          fetchProviders();\n        }), []);\n  var match$1 = state.fetchProviderApiStatus;\n  var tmp;\n  if (match$1 === \"Error\") {\n    tmp = JsxRuntime.jsx(P.make, {\n          children: \"Error on fetching providers. Please try again later.\"\n        });\n  } else if (match$1 === \"Fetching\") {\n    tmp = JsxRuntime.jsx(P.make, {\n          children: \"Fetching providers. Please wait...\"\n        });\n  } else {\n    var match$2 = state.providers;\n    if (match$2.length !== 0) {\n      var exit = 0;\n      switch (props.userRole) {\n        case \"Provider\" :\n            tmp = JsxRuntime.jsxs(JsxRuntime.Fragment, {\n                  children: [\n                    JsxRuntime.jsx(\"p\", {\n                          children: \"Inform a project manager that you are working on the proposal.\",\n                          className: css.description\n                        }),\n                    JsxRuntime.jsxs(\"div\", {\n                          children: [\n                            JsxRuntime.jsx(\"label\", {\n                                  children: \"Message to the Client\",\n                                  className: css.label\n                                }),\n                            JsxRuntime.jsx(Textarea.make, {\n                                  id: \"preparing-proposal--message\",\n                                  value: state.input.message,\n                                  rows: 4,\n                                  placeholder: \"Describe the reason\",\n                                  className: css.message,\n                                  onChange: (function ($$event) {\n                                      var init = state.input;\n                                      dispatch({\n                                            TAG: \"Update\",\n                                            _0: {\n                                              message: $$event.target.value,\n                                              providerId: init.providerId\n                                            }\n                                          });\n                                    })\n                                })\n                          ],\n                          className: css.field\n                        })\n                  ]\n                });\n            break;\n        case \"Admin\" :\n        case \"Concierge\" :\n            exit = 1;\n            break;\n        default:\n          tmp = null;\n      }\n      if (exit === 1) {\n        var id = state.input.providerId;\n        var tmp$1;\n        if (id !== undefined) {\n          var id$1 = Caml_option.valFromOption(id);\n          tmp$1 = Belt_Array.map(state.providers, (function (provider) {\n                  if (Caml_obj.equal(provider.id, id$1)) {\n                    return JsxRuntime.jsxs(\"div\", {\n                                children: [\n                                  JsxRuntime.jsx(\"img\", {\n                                        className: css.providerLogo,\n                                        src: provider.logo\n                                      }),\n                                  JsxRuntime.jsx(\"label\", {\n                                        children: provider.name,\n                                        className: css.option\n                                      })\n                                ],\n                                className: css.logoNamePair\n                              });\n                  } else {\n                    return null;\n                  }\n                }));\n        } else {\n          tmp$1 = \"Select a Provider\";\n        }\n        tmp = JsxRuntime.jsxs(JsxRuntime.Fragment, {\n              children: [\n                JsxRuntime.jsx(\"p\", {\n                      children: \"Select the provider for which you want to set preparing status and click the button to confirm.\",\n                      className: css.description\n                    }),\n                JsxRuntime.jsxs(\"div\", {\n                      children: [\n                        JsxRuntime.jsx(\"label\", {\n                              children: \"Provider\",\n                              className: css.label\n                            }),\n                        JsxRuntime.jsxs(Dropdown.make, {\n                              children: [\n                                JsxRuntime.jsx(Dropdown.Trigger.make, {\n                                      className: css.dropdownTrigger,\n                                      iconSize: \"XS\",\n                                      iconColor: \"Gray\",\n                                      children: tmp$1\n                                    }),\n                                JsxRuntime.jsx(Dropdown.Body.make, {\n                                      position: {\n                                        TAG: \"Below\",\n                                        _0: \"LeftEdge\"\n                                      },\n                                      className: css.dropdownBody,\n                                      children: Belt_Array.map(state.providers, (function (provider) {\n                                              var id = \"no-bid--provider-\" + ID.toString(provider.id);\n                                              return JsxRuntime.jsx(\"div\", {\n                                                          children: JsxRuntime.jsxs(Control.make, {\n                                                                className: css.logoNamePair,\n                                                                onClick: (function (param) {\n                                                                    var init = state.input;\n                                                                    dispatch({\n                                                                          TAG: \"Update\",\n                                                                          _0: {\n                                                                            message: init.message,\n                                                                            providerId: Caml_option.some(provider.id)\n                                                                          }\n                                                                        });\n                                                                  }),\n                                                                children: [\n                                                                  JsxRuntime.jsx(\"img\", {\n                                                                        className: css.providerLogo,\n                                                                        src: provider.logo\n                                                                      }),\n                                                                  JsxRuntime.jsx(\"label\", {\n                                                                        children: provider.name,\n                                                                        className: css.option\n                                                                      })\n                                                                ]\n                                                              }),\n                                                          className: css.dropdownBodyRow\n                                                        }, id);\n                                            }))\n                                    })\n                              ]\n                            })\n                      ],\n                      className: css.field\n                    }),\n                JsxRuntime.jsxs(\"div\", {\n                      children: [\n                        JsxRuntime.jsx(\"label\", {\n                              children: \"Message to the Client\",\n                              className: css.label\n                            }),\n                        JsxRuntime.jsx(Textarea.make, {\n                              id: \"no-bid--message\",\n                              value: state.input.message,\n                              rows: 4,\n                              placeholder: \"Describe the reason\",\n                              className: css.message,\n                              onChange: (function ($$event) {\n                                  var init = state.input;\n                                  dispatch({\n                                        TAG: \"Update\",\n                                        _0: {\n                                          message: $$event.target.value,\n                                          providerId: init.providerId\n                                        }\n                                      });\n                                })\n                            })\n                      ],\n                      className: css.field\n                    })\n              ]\n            });\n      }\n      \n    } else {\n      tmp = JsxRuntime.jsx(P.make, {\n            children: \"No providers found\"\n          });\n    }\n  }\n  var match$3 = state.preparingProposalApiStatus;\n  var match$4 = state.providers.length;\n  var tmp$2;\n  if (match$4 !== 0) {\n    if (match$4 !== 1) {\n      var match$5 = state.input.message;\n      var tmp$3 = match$5 === \"\" ? true : false;\n      var match$6 = state.input.message;\n      var match$7 = state.input.providerId;\n      var tmp$4 = match$6 === \"\" ? true : match$7 === undefined;\n      tmp$2 = JsxRuntime.jsx(Button.make, {\n            size: \"SM\",\n            color: \"Teal\",\n            disabled: tmp$3,\n            visuallyDisabled: tmp$4,\n            className: css.sendButton,\n            onClick: (function (param) {\n                sendSetPreparingStatus();\n              }),\n            children: \"Set Status\"\n          });\n    } else {\n      tmp$2 = JsxRuntime.jsx(Button.make, {\n            size: \"SM\",\n            color: \"Teal\",\n            disabled: state.input.message === \"\",\n            visuallyDisabled: state.input.message === \"\",\n            className: css.sendButton,\n            onClick: (function (param) {\n                var uniqueProvider = Belt_Array.get(state.providers, 0);\n                if (uniqueProvider === undefined) {\n                  return ;\n                }\n                var init = state.input;\n                dispatch({\n                      TAG: \"Update\",\n                      _0: {\n                        message: init.message,\n                        providerId: Caml_option.some(uniqueProvider.id)\n                      }\n                    });\n                sendSetPreparingStatus();\n              }),\n            children: \"Set Status\"\n          });\n    }\n  } else {\n    tmp$2 = null;\n  }\n  return JsxRuntime.jsxs(\"div\", {\n              children: [\n                JsxRuntime.jsx(\"div\", {\n                      className: css.modalOverlay,\n                      onClick: (function (param) {\n                          close();\n                        })\n                    }),\n                JsxRuntime.jsx(\"div\", {\n                      children: JsxRuntime.jsxs(\"div\", {\n                            children: [\n                              JsxRuntime.jsx(Control.make, {\n                                    className: css.closeOverlayButton,\n                                    onClick: (function (param) {\n                                        close();\n                                      }),\n                                    children: JsxRuntime.jsx(IconClose.make, {\n                                          title: \"Close\",\n                                          size: \"MD\",\n                                          color: \"Gray\"\n                                        })\n                                  }),\n                              JsxRuntime.jsx(\"h2\", {\n                                    children: props.title\n                                  }),\n                              tmp,\n                              match$3 === \"Error\" ? JsxRuntime.jsx(\"div\", {\n                                      children: JsxRuntime.jsx(\"div\", {\n                                            children: JsxRuntime.jsx(P.make, {\n                                                  children: \"Error in setting Proposal Status. Please try again later.\"\n                                                }),\n                                            className: css.errors\n                                          }),\n                                      className: css.errorContainer\n                                    }) : null,\n                              JsxRuntime.jsx(\"div\", {\n                                    children: tmp$2,\n                                    className: css.buttons\n                                  })\n                            ],\n                            className: css.modalContents\n                          }),\n                      className: css.modal\n                    })\n              ],\n              className: css.modalContainer\n            });\n}\n\nvar make = PreparingProposalModal;\n\nexport {\n  css ,\n  reducer ,\n  make ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as A from \"../../../../styleguide/components/Link/A.res.js\";\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\nimport * as Url from \"../../../../utils/Url.res.js\";\nimport * as React from \"react\";\nimport * as Button from \"../../../../styleguide/components/Button/Button.res.js\";\nimport * as IconOk from \"../../../../styleguide/icons/IconOk.res.js\";\nimport * as Popover from \"../../../../styleguide/components/Popover/Popover.res.js\";\nimport * as Project from \"../../../../models/Project.res.js\";\nimport * as IconMenu from \"../../../../styleguide/icons/IconMenu.res.js\";\nimport * as IconPause from \"../../../../styleguide/icons/IconPause.res.js\";\nimport * as NoBidModal from \"../../../../styleguide/modals/NoBidModal/NoBidModal.res.js\";\nimport * as Routes_Project from \"../../../../routes/common/Routes_Project.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as PreparingProposalModal from \"../../../../styleguide/modals/PreparingProposalModal/PreparingProposalModal.res.js\";\nimport * as UserProjects_List_ControlsScss from \"./UserProjects_List_Controls.scss\";\n\nvar css = UserProjects_List_ControlsScss;\n\nfunction reducer(state, action) {\n  if (action === \"ToggleNoBidModal\") {\n    return {\n            isNoBidModalShown: !state.isNoBidModalShown,\n            isPreparingProposalModalShown: state.isPreparingProposalModalShown\n          };\n  } else {\n    return {\n            isNoBidModalShown: state.isNoBidModalShown,\n            isPreparingProposalModalShown: !state.isPreparingProposalModalShown\n          };\n  }\n}\n\nfunction UserProjects_List_ControlsForAdmin(props) {\n  var userRole = props.userRole;\n  var projectData = props.projectData;\n  var projectId = props.projectId;\n  var match = React.useReducer(reducer, {\n        isNoBidModalShown: false,\n        isPreparingProposalModalShown: false\n      });\n  var dispatch = match[1];\n  var state = match[0];\n  var total = projectData.totalProposals;\n  var match$1 = projectData.status;\n  var tmp;\n  switch (match$1) {\n    case \"Active\" :\n        var match$2 = projectData.totalProposals;\n        var exit = 0;\n        if (match$2 !== undefined && match$2 !== 0) {\n          var canSendProposals = projectData.canSendProposals;\n          tmp = JsxRuntime.jsxs(\"div\", {\n                children: [\n                  JsxRuntime.jsx(Button.AsLink.make, {\n                        href: Routes_Project.Proposal.index(projectId),\n                        size: \"SM\",\n                        color: \"White\",\n                        children: \"View Proposals\"\n                      }),\n                  canSendProposals !== undefined && canSendProposals ? JsxRuntime.jsxs(Popover.make, {\n                          children: [\n                            JsxRuntime.jsx(Popover.Trigger.make, {\n                                  className: css.popoverProjectActions,\n                                  children: JsxRuntime.jsx(IconMenu.make, {\n                                        size: \"LG\",\n                                        color: \"Teal\"\n                                      })\n                                }),\n                            JsxRuntime.jsxs(Popover.Body.make, {\n                                  position: {\n                                    TAG: \"Below\",\n                                    _0: \"RightEdge\"\n                                  },\n                                  className: Cx.cx([\n                                        css.popoverBody,\n                                        css.popoverBodyActionsAdmin,\n                                        css.popoverBodyPositionAdmin\n                                      ]),\n                                  children: [\n                                    JsxRuntime.jsx(\"div\", {\n                                          children: JsxRuntime.jsx(\"div\", {\n                                                children: \"Send Proposal\",\n                                                className: css.sortSelection,\n                                                onClick: (function (param) {\n                                                    Url.visit(Routes_Project.Proposal.$$new(projectId));\n                                                  })\n                                              }),\n                                          className: css.popoverRow\n                                        }),\n                                    JsxRuntime.jsx(\"div\", {\n                                          children: JsxRuntime.jsx(\"div\", {\n                                                children: \"Set Preparing Status\",\n                                                className: css.sortSelection,\n                                                onClick: (function (param) {\n                                                    dispatch(\"TogglePreparingProposalModal\");\n                                                  })\n                                              }),\n                                          className: css.popoverRow\n                                        }),\n                                    JsxRuntime.jsx(\"div\", {\n                                          children: JsxRuntime.jsx(\"div\", {\n                                                children: \"No Bid\",\n                                                className: css.sortSelection,\n                                                onClick: (function (param) {\n                                                    dispatch(\"ToggleNoBidModal\");\n                                                  })\n                                              }),\n                                          className: css.popoverRow\n                                        })\n                                  ]\n                                })\n                          ]\n                        }) : null\n                ],\n                className: css.projectStatusControl\n              });\n        } else {\n          exit = 1;\n        }\n        if (exit === 1) {\n          tmp = JsxRuntime.jsxs(\"div\", {\n                children: [\n                  JsxRuntime.jsx(Button.AsLink.make, {\n                        href: Routes_Project.Proposal.$$new(projectId),\n                        size: \"SM\",\n                        color: \"Teal\",\n                        margin: \"RightMargin\",\n                        children: \"Send Proposal\"\n                      }),\n                  JsxRuntime.jsxs(Popover.make, {\n                        children: [\n                          JsxRuntime.jsx(Popover.Trigger.make, {\n                                className: css.popoverIconActions,\n                                children: JsxRuntime.jsx(Button.make, {\n                                      size: \"XS\",\n                                      color: \"Teal\",\n                                      buttonClassName: css.popoverButton,\n                                      children: JsxRuntime.jsx(IconMenu.make, {\n                                            size: \"LG\",\n                                            color: \"White\"\n                                          })\n                                    })\n                              }),\n                          JsxRuntime.jsxs(Popover.Body.make, {\n                                position: {\n                                  TAG: \"Below\",\n                                  _0: \"RightEdge\"\n                                },\n                                className: Cx.cx([\n                                      css.popoverBody,\n                                      css.popoverBodyActionsAdmin,\n                                      css.popoverBodyPositionAdmin\n                                    ]),\n                                children: [\n                                  JsxRuntime.jsx(\"div\", {\n                                        children: JsxRuntime.jsx(\"div\", {\n                                              children: \"Set Preparing Status\",\n                                              className: css.sortSelection,\n                                              onClick: (function (param) {\n                                                  dispatch(\"TogglePreparingProposalModal\");\n                                                })\n                                            }),\n                                        className: css.popoverRow\n                                      }),\n                                  JsxRuntime.jsx(\"div\", {\n                                        children: JsxRuntime.jsx(\"div\", {\n                                              children: \"No Bid\",\n                                              className: css.sortSelection,\n                                              onClick: (function (param) {\n                                                  dispatch(\"ToggleNoBidModal\");\n                                                })\n                                            }),\n                                        className: css.popoverRow\n                                      })\n                                ]\n                              })\n                        ]\n                      })\n                ],\n                className: css.projectStatusControl\n              });\n        }\n        break;\n    case \"Inactive\" :\n        tmp = JsxRuntime.jsxs(\"div\", {\n              children: [\n                JsxRuntime.jsx(\"div\", {\n                      children: JsxRuntime.jsxs(\"div\", {\n                            children: [\n                              JsxRuntime.jsx(IconPause.make, {\n                                    size: \"SM\",\n                                    color: \"White\"\n                                  }),\n                              JsxRuntime.jsx(\"span\", {\n                                    children: Project.Status.toString(projectData.status)\n                                  })\n                            ],\n                            className: css.pillTitle\n                          }),\n                      className: css.projectStatusInactive\n                    }),\n                JsxRuntime.jsx(A.make, {\n                      href: Routes_Project.Proposal.index(projectId),\n                      className: css.link,\n                      children: \"View Proposals\"\n                    })\n              ],\n              className: css.projectStatusControl\n            });\n        break;\n    case \"Finalized\" :\n        tmp = JsxRuntime.jsxs(\"div\", {\n              children: [\n                JsxRuntime.jsx(\"div\", {\n                      children: JsxRuntime.jsxs(\"div\", {\n                            children: [\n                              JsxRuntime.jsx(IconOk.make, {\n                                    size: \"SM\",\n                                    color: \"White\"\n                                  }),\n                              JsxRuntime.jsx(\"span\", {\n                                    children: Project.Status.toString(projectData.status)\n                                  })\n                            ],\n                            className: css.pillTitle\n                          }),\n                      className: css.projectStatusFinalized\n                    }),\n                JsxRuntime.jsx(A.make, {\n                      href: Routes_Project.Proposal.index(projectId),\n                      className: css.link,\n                      children: \"View Proposals\"\n                    })\n              ],\n              className: css.projectStatusControl\n            });\n        break;\n    case \"Draft\" :\n    case \"Review\" :\n        tmp = null;\n        break;\n    \n  }\n  return JsxRuntime.jsxs(\"div\", {\n              children: [\n                JsxRuntime.jsxs(\"div\", {\n                      children: [\n                        JsxRuntime.jsx(\"div\", {\n                              children: \"Proposals\",\n                              className: css.proposalLabel\n                            }),\n                        JsxRuntime.jsxs(\"div\", {\n                              children: [\n                                JsxRuntime.jsx(\"span\", {\n                                      children: String(total !== undefined ? total : 0)\n                                    }),\n                                \" sent\"\n                              ],\n                              className: css.projectLocationAndProviders\n                            }),\n                        tmp\n                      ],\n                      className: css.projectLocations\n                    }),\n                state.isNoBidModalShown ? JsxRuntime.jsx(NoBidModal.make, {\n                        title: \"No Bid\",\n                        close: (function () {\n                            dispatch(\"ToggleNoBidModal\");\n                          }),\n                        projectId: projectId,\n                        userRole: userRole\n                      }) : null,\n                state.isPreparingProposalModalShown ? JsxRuntime.jsx(PreparingProposalModal.make, {\n                        title: \"Set Preparing Status\",\n                        close: (function () {\n                            dispatch(\"TogglePreparingProposalModal\");\n                          }),\n                        projectId: projectId,\n                        userRole: userRole\n                      }) : null\n              ],\n              className: Cx.cx([\n                    css.projectProviderAdminControls,\n                    projectData.status === \"Review\" ? css.smallHeight : css.largeHeight\n                  ])\n            });\n}\n\nvar make = UserProjects_List_ControlsForAdmin;\n\nexport {\n  css ,\n  reducer ,\n  make ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\nimport * as $$Date from \"../../../../libs/Date.res.js\";\nimport * as React from \"react\";\nimport * as Button from \"../../../../styleguide/components/Button/Button.res.js\";\nimport * as Popover from \"../../../../styleguide/components/Popover/Popover.res.js\";\nimport * as IconMenu from \"../../../../styleguide/icons/IconMenu.res.js\";\nimport * as NoBidModal from \"../../../../styleguide/modals/NoBidModal/NoBidModal.res.js\";\nimport * as Routes_Project from \"../../../../routes/common/Routes_Project.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as PreparingProposalModal from \"../../../../styleguide/modals/PreparingProposalModal/PreparingProposalModal.res.js\";\nimport * as ProjectProposalStatusDropdown from \"../_components/ProjectProposalStatusDropdown/ProjectProposalStatusDropdown.res.js\";\nimport * as UserProjects_List_ControlsScss from \"./UserProjects_List_Controls.scss\";\n\nvar css = UserProjects_List_ControlsScss;\n\nfunction UserProjects_List_ControlsForProvider(props) {\n  var userRole = props.userRole;\n  var projectId = props.projectId;\n  var match = React.useState(function () {\n        return \"Hidden\";\n      });\n  var setBidModalVisibility = match[1];\n  var match$1 = React.useState(function () {\n        return \"Hidden\";\n      });\n  var setPreparingProposalModalVisibility = match$1[1];\n  var details = props.projectData.proposalDetails;\n  var tmp;\n  if (details !== undefined) {\n    var match$2 = details.status;\n    tmp = JsxRuntime.jsxs(JsxRuntime.Fragment, {\n          children: [\n            JsxRuntime.jsx(ProjectProposalStatusDropdown.make, {\n                  proposal: details,\n                  projectId: projectId,\n                  userViewContext: props.userViewContext,\n                  iconSize: \"XS\",\n                  updateProposalStatus: props.updateProposalStatus,\n                  setBidModalVisibility: (function (visibility) {\n                      setBidModalVisibility(function (param) {\n                            return visibility;\n                          });\n                    }),\n                  className: css.providerDropdown\n                }),\n            match$2 === \"Preparing\" ? null : JsxRuntime.jsxs(\"div\", {\n                    children: [\n                      JsxRuntime.jsxs(\"div\", {\n                            children: [\n                              JsxRuntime.jsx(\"div\", {\n                                    children: \"Sent\",\n                                    className: css.proposalLabel\n                                  }),\n                              JsxRuntime.jsx(\"div\", {\n                                    children: $$Date.Naive.format(details.sentAt, \"dd MMM yyyy\"),\n                                    className: css.proposalDate\n                                  })\n                            ],\n                            className: css.proposalDateContainer\n                          }),\n                      JsxRuntime.jsxs(\"div\", {\n                            children: [\n                              JsxRuntime.jsx(\"div\", {\n                                    children: \"Expires\",\n                                    className: css.proposalLabel\n                                  }),\n                              JsxRuntime.jsx(\"div\", {\n                                    children: $$Date.Naive.format(details.expiresAt, \"dd MMM yyyy\"),\n                                    className: css.proposalDate\n                                  })\n                            ],\n                            className: css.proposalDateContainer\n                          })\n                    ],\n                    className: css.projectProposalDates\n                  })\n          ]\n        });\n  } else {\n    tmp = JsxRuntime.jsx(\"div\", {\n          children: JsxRuntime.jsxs(JsxRuntime.Fragment, {\n                children: [\n                  JsxRuntime.jsx(Button.AsLink.make, {\n                        href: Routes_Project.Proposal.$$new(projectId),\n                        size: \"SM\",\n                        color: \"Teal\",\n                        margin: \"RightMargin\",\n                        children: \"Send Proposal\"\n                      }),\n                  JsxRuntime.jsxs(Popover.make, {\n                        children: [\n                          JsxRuntime.jsx(Popover.Trigger.make, {\n                                className: css.popoverIconActions,\n                                children: JsxRuntime.jsx(Button.make, {\n                                      size: \"XS\",\n                                      color: \"Teal\",\n                                      buttonClassName: css.popoverButton,\n                                      children: JsxRuntime.jsx(IconMenu.make, {\n                                            size: \"LG\",\n                                            color: \"White\"\n                                          })\n                                    })\n                              }),\n                          JsxRuntime.jsxs(Popover.Body.make, {\n                                position: {\n                                  TAG: \"Below\",\n                                  _0: \"RightEdge\"\n                                },\n                                className: Cx.cx([\n                                      css.popoverBody,\n                                      css.popoverBodyActionsAdmin,\n                                      css.popoverBodyPositionAdmin\n                                    ]),\n                                children: [\n                                  JsxRuntime.jsx(\"div\", {\n                                        children: JsxRuntime.jsx(\"div\", {\n                                              children: \"Set Preparing Status\",\n                                              className: css.sortSelection,\n                                              onClick: (function (param) {\n                                                  setPreparingProposalModalVisibility(function (param) {\n                                                        return \"Shown\";\n                                                      });\n                                                })\n                                            }),\n                                        className: css.popoverRow\n                                      }),\n                                  JsxRuntime.jsx(\"div\", {\n                                        children: JsxRuntime.jsx(\"div\", {\n                                              children: \"No Bid\",\n                                              className: css.sortSelection,\n                                              onClick: (function (param) {\n                                                  setBidModalVisibility(function (param) {\n                                                        return \"Shown\";\n                                                      });\n                                                })\n                                            }),\n                                        className: css.popoverRow\n                                      })\n                                ]\n                              })\n                        ]\n                      })\n                ]\n              }),\n          className: css.projectStatusControl\n        });\n  }\n  return JsxRuntime.jsxs(\"div\", {\n              children: [\n                JsxRuntime.jsxs(\"div\", {\n                      children: [\n                        JsxRuntime.jsx(\"div\", {\n                              children: \"Proposal status\",\n                              className: Cx.cx([\n                                    css.proposalLabel,\n                                    css.status\n                                  ])\n                            }),\n                        tmp\n                      ],\n                      className: css.projectLocations\n                    }),\n                match[0] === \"Shown\" ? JsxRuntime.jsx(NoBidModal.make, {\n                        title: \"No Bid\",\n                        close: (function () {\n                            setBidModalVisibility(function (param) {\n                                  return \"Hidden\";\n                                });\n                          }),\n                        projectId: projectId,\n                        userRole: userRole\n                      }) : null,\n                match$1[0] === \"Shown\" ? JsxRuntime.jsx(PreparingProposalModal.make, {\n                        title: \"Set Preparing Status\",\n                        close: (function () {\n                            setPreparingProposalModalVisibility(function (param) {\n                                  return \"Hidden\";\n                                });\n                          }),\n                        projectId: projectId,\n                        userRole: userRole\n                      }) : null\n              ],\n              className: css.projectProviderAdminControls\n            });\n}\n\nvar make = UserProjects_List_ControlsForProvider;\n\nexport {\n  css ,\n  make ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as A from \"../../../../styleguide/components/Link/A.res.js\";\nimport * as P from \"../../../../styleguide/components/Paragraph/P.res.js\";\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\nimport * as Api from \"../../../../api/Api.res.js\";\nimport * as Url from \"../../../../utils/Url.res.js\";\nimport * as Badge from \"../../../../styleguide/components/Badge/Badge.res.js\";\nimport * as React from \"react\";\nimport * as Button from \"../../../../styleguide/components/Button/Button.res.js\";\nimport * as Control from \"../../../../styleguide/components/Control/Control.res.js\";\nimport * as $$Promise from \"../../../../bindings/Promise.res.js\";\nimport * as Cloudinary from \"../../../../libs/Cloudinary.res.js\";\nimport * as Belt_Option from \"rescript/lib/es6/belt_Option.js\";\nimport * as Caml_option from \"rescript/lib/es6/caml_option.js\";\nimport * as SentryLogger from \"../../../../loggers/SentryLogger.res.js\";\nimport * as IconUserAvatar from \"../../../../styleguide/icons/IconUserAvatar.res.js\";\nimport * as Routes_Project from \"../../../../routes/common/Routes_Project.res.js\";\nimport Format from \"date-fns/format\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as UserProjects_List_ItemScss from \"./UserProjects_List_Item.scss\";\nimport * as UserProjects_List_ControlsForUser from \"./UserProjects_List_ControlsForUser.res.js\";\nimport * as UserProjects_List_ControlsForAdmin from \"./UserProjects_List_ControlsForAdmin.res.js\";\nimport * as UserProjects_List_ControlsForProvider from \"./UserProjects_List_ControlsForProvider.res.js\";\n\nvar css = UserProjects_List_ItemScss;\n\nfunction date(date$1) {\n  return Format(date$1, \"dd MMM yyyy\");\n}\n\nfunction imageUrl(publicId) {\n  return Cloudinary.Url.build(\"Auto\", {\n              hd: \"Dpr\",\n              tl: {\n                hd: \"Quality\",\n                tl: {\n                  hd: {\n                    TAG: \"Crop\",\n                    _0: \"Fill\"\n                  },\n                  tl: {\n                    hd: {\n                      TAG: \"Width\",\n                      _0: 200\n                    },\n                    tl: {\n                      hd: {\n                        TAG: \"Height\",\n                        _0: 200\n                      },\n                      tl: /* [] */0\n                    }\n                  }\n                }\n              }\n            }, Cloudinary.imageUrl(publicId));\n}\n\nvar Helpers = {\n  date: date,\n  imageUrl: imageUrl\n};\n\nfunction UserProjects_List_Item(props) {\n  var userViewContext = props.userViewContext;\n  var userRole = props.userRole;\n  var project = props.project;\n  var category = React.useMemo((function () {\n          return project.category;\n        }), [project]);\n  var projectUrl = React.useMemo((function () {\n          if (project.TAG === \"Draft\") {\n            return project.data.redirectUrl;\n          } else {\n            return Routes_Project.show(project.id);\n          }\n        }), [project]);\n  var defaultTitle = React.useMemo((function () {\n          switch (category.TAG) {\n            case \"Colocation\" :\n                return \"Colocation RFP Project\";\n            case \"Cloud\" :\n                if (category._0 === \"IaasServer\") {\n                  return \"Cloud IaaS Server Project\";\n                } else {\n                  return \"Cloud IaaS Storage Project\";\n                }\n            case \"Internet\" :\n                return \"Internet RFP Project\";\n            case \"Network\" :\n                switch (category._0) {\n                  case \"SdWan\" :\n                      return \"Network SD-WAN Project\";\n                  case \"PrivateLine\" :\n                      return \"Network Private Line Project\";\n                  case \"Mpls\" :\n                      return \"Network MPLS Project\";\n                  \n                }\n            case \"BareMetal\" :\n                return \"Bare Metal Project\";\n            \n          }\n        }), [category]);\n  var match = React.useState(function () {\n        return \"Hidden\";\n      });\n  var setDeleteModalVisibility = match[1];\n  var tmp;\n  if (project.TAG === \"Draft\") {\n    tmp = JsxRuntime.jsx(\"div\", {\n          children: \"This project is still being drafted. Click title to continue editing.\",\n          className: css.draftMessage\n        });\n  } else {\n    switch (project.data.status) {\n      case \"Draft\" :\n      case \"Active\" :\n          tmp = null;\n          break;\n      case \"Inactive\" :\n          tmp = JsxRuntime.jsx(\"div\", {\n                children: \"This project is inactive.\",\n                className: css.inactiveMessage\n              });\n          break;\n      case \"Finalized\" :\n          tmp = JsxRuntime.jsx(\"div\", {\n                children: \"This project has been finalized.\",\n                className: css.finalizedMessage\n              });\n          break;\n      case \"Review\" :\n          tmp = JsxRuntime.jsx(\"div\", {\n                children: \"This project is under review.\",\n                className: css.reviewMessage\n              });\n          break;\n      \n    }\n  }\n  var tmp$1;\n  switch (category.TAG) {\n    case \"Colocation\" :\n        tmp$1 = JsxRuntime.jsx(Badge.make, {\n              badgeType: \"Colocation\",\n              className: css.productTag,\n              children: \"Colocation\"\n            });\n        break;\n    case \"Cloud\" :\n        tmp$1 = category._0 === \"IaasServer\" ? JsxRuntime.jsx(Badge.make, {\n                badgeType: \"Cloud\",\n                className: css.productTag,\n                children: \"Cloud IaaS Server\"\n              }) : JsxRuntime.jsx(Badge.make, {\n                badgeType: \"Cloud\",\n                className: css.productTag,\n                children: \"Cloud IaaS Storage\"\n              });\n        break;\n    case \"Internet\" :\n        tmp$1 = JsxRuntime.jsx(Badge.make, {\n              badgeType: \"Internet\",\n              className: css.productTag,\n              children: \"Internet\"\n            });\n        break;\n    case \"Network\" :\n        switch (category._0) {\n          case \"SdWan\" :\n              tmp$1 = JsxRuntime.jsx(Badge.make, {\n                    badgeType: \"Network\",\n                    className: css.productTag,\n                    children: \"Network SD-WAN\"\n                  });\n              break;\n          case \"PrivateLine\" :\n              tmp$1 = JsxRuntime.jsx(Badge.make, {\n                    badgeType: \"Network\",\n                    className: css.productTag,\n                    children: \"Network Private Line\"\n                  });\n              break;\n          case \"Mpls\" :\n              tmp$1 = JsxRuntime.jsx(Badge.make, {\n                    badgeType: \"Network\",\n                    className: css.productTag,\n                    children: \"Network MPLS\"\n                  });\n              break;\n          \n        }\n        break;\n    case \"BareMetal\" :\n        tmp$1 = JsxRuntime.jsx(Badge.make, {\n              badgeType: \"BareMetal\",\n              className: css.productTag,\n              children: \"Bare Metal\"\n            });\n        break;\n    \n  }\n  var tmp$2;\n  if (project.TAG === \"Draft\") {\n    var match$1 = project.data;\n    tmp$2 = Belt_Option.getWithDefault(match$1.title, \"Draft: \" + (defaultTitle + (\" (\" + (Format(match$1.startDate, \"dd MMM yyyy\") + \")\"))));\n  } else {\n    var match$2 = project.data;\n    tmp$2 = match$2.businessName + (\": \" + match$2.title);\n  }\n  var tmp$3;\n  if (project.TAG === \"Draft\") {\n    var match$3 = project.data;\n    tmp$3 = \"Created \" + (Format(match$3.createdAt, \"MMM dd, yyyy\") + (\" - \" + Belt_Option.getWithDefault(match$3.description, \"-\")));\n  } else {\n    var match$4 = project.data;\n    var createdAt = match$4.createdAt;\n    var proposalDetails = match$4.proposalDetails;\n    var description = match$4.description;\n    if (proposalDetails !== undefined) {\n      var match$5 = proposalDetails.status;\n      tmp$3 = match$5 === \"Preparing\" ? proposalDetails.statusMessage : \"Created \" + (Format(createdAt, \"MMM dd, yyyy\") + (\" - \" + description));\n    } else {\n      tmp$3 = \"Created \" + (Format(createdAt, \"MMM dd, yyyy\") + (\" - \" + description));\n    }\n  }\n  var tmp$4;\n  var exit = 0;\n  var startDate;\n  var endDate;\n  if (project.TAG === \"Draft\") {\n    var match$6 = project.data;\n    var endDate$1 = match$6.endDate;\n    var startDate$1 = match$6.startDate;\n    if (endDate$1 !== undefined) {\n      startDate = startDate$1;\n      endDate = Caml_option.valFromOption(endDate$1);\n      exit = 1;\n    } else {\n      tmp$4 = Format(startDate$1, \"dd MMM yyyy\") + \" - n/a\";\n    }\n  } else {\n    var match$7 = project.data;\n    startDate = match$7.startDate;\n    endDate = match$7.endDate;\n    exit = 1;\n  }\n  if (exit === 1) {\n    tmp$4 = Format(startDate, \"dd MMM yyyy\") + (\" - \" + Format(endDate, \"dd MMM yyyy\"));\n  }\n  var tmp$5;\n  if (project.TAG === \"Draft\") {\n    var redirectUrl = project.data.redirectUrl;\n    var category$1 = project.category;\n    var id = project.id;\n    var tmp$6;\n    switch (category$1.TAG) {\n      case \"Cloud\" :\n          tmp$6 = category$1._0 === \"IaasServer\" ? \"Continue IaaS Server\" : \"Continue IaaS Storage\";\n          break;\n      case \"Colocation\" :\n      case \"Internet\" :\n          tmp$6 = \"Continue RFP\";\n          break;\n      case \"Network\" :\n          switch (category$1._0) {\n            case \"SdWan\" :\n                tmp$6 = \"Continue SD-WAN\";\n                break;\n            case \"PrivateLine\" :\n                tmp$6 = \"Continue Private Line\";\n                break;\n            case \"Mpls\" :\n                tmp$6 = \"Continue MPLS\";\n                break;\n            \n          }\n          break;\n      case \"BareMetal\" :\n          tmp$6 = \"Continue Bare Metal\";\n          break;\n      \n    }\n    tmp$5 = JsxRuntime.jsxs(\"div\", {\n          children: [\n            JsxRuntime.jsx(Button.make, {\n                  size: \"SM\",\n                  color: \"Teal\",\n                  className: css.continueButton,\n                  onClick: (function (param) {\n                      Url.visit(redirectUrl);\n                    }),\n                  children: tmp$6\n                }),\n            JsxRuntime.jsx(Control.make, {\n                  className: css.deleteButton,\n                  onClick: (function (param) {\n                      setDeleteModalVisibility(function (param) {\n                            return \"Shown\";\n                          });\n                    }),\n                  children: \"Delete\"\n                }),\n            match[0] === \"Shown\" ? JsxRuntime.jsx(\"div\", {\n                    children: JsxRuntime.jsxs(\"div\", {\n                          children: [\n                            JsxRuntime.jsx(\"div\", {\n                                  children: \"Are you sure?\",\n                                  className: css.modalMessageText\n                                }),\n                            JsxRuntime.jsxs(\"div\", {\n                                  children: [\n                                    JsxRuntime.jsx(Button.make, {\n                                          size: \"SM\",\n                                          color: \"Gray\",\n                                          onClick: (function (param) {\n                                              setDeleteModalVisibility(function (param) {\n                                                    return \"Hidden\";\n                                                  });\n                                            }),\n                                          children: \"Cancel\"\n                                        }),\n                                    JsxRuntime.jsx(Button.make, {\n                                          size: \"SM\",\n                                          color: \"Pink\",\n                                          onClick: (function (param) {\n                                              $$Promise.wait(Api.deleteProject(id), (function (x) {\n                                                      if (x.TAG !== \"Ok\") {\n                                                        return SentryLogger.error({\n                                                                    rootModule: \"UserProjects_List_Item\",\n                                                                    subModulePath: /* [] */0,\n                                                                    value: \"make\",\n                                                                    fullPath: \"UserProjects_List_Item.make\"\n                                                                  }, \"DeleteProject::Error\");\n                                                      }\n                                                      window.location.reload();\n                                                    }));\n                                            }),\n                                          children: \"Yes, delete it\"\n                                        })\n                                  ],\n                                  className: css.modalMessageButtons\n                                })\n                          ],\n                          className: css.modalMessageContainer\n                        }),\n                    className: css.modalMessageOverlay\n                  }) : null\n          ],\n          className: css.draftButtonsContainer\n        });\n  } else {\n    tmp$5 = null;\n  }\n  var tmp$7;\n  var exit$1 = 0;\n  var contact;\n  if (project.TAG === \"Draft\") {\n    var contact$1 = project.data.contact;\n    if (contact$1 !== undefined) {\n      contact = contact$1;\n      exit$1 = 1;\n    } else {\n      tmp$7 = null;\n    }\n  } else {\n    var contact$2 = project.data.contact;\n    if (contact$2 !== undefined) {\n      contact = contact$2;\n      exit$1 = 1;\n    } else {\n      tmp$7 = null;\n    }\n  }\n  if (exit$1 === 1) {\n    var image = contact.image;\n    var tmp$8;\n    tmp$8 = image !== undefined && image !== \"\" ? JsxRuntime.jsx(\"img\", {\n            src: imageUrl(image)\n          }) : JsxRuntime.jsx(IconUserAvatar.make, {\n            size: \"XL\"\n          });\n    var title = contact.jobTitle;\n    tmp$7 = JsxRuntime.jsxs(JsxRuntime.Fragment, {\n          children: [\n            JsxRuntime.jsx(\"div\", {\n                  children: tmp$8,\n                  className: css.projectUserAvatar\n                }),\n            JsxRuntime.jsxs(\"div\", {\n                  children: [\n                    JsxRuntime.jsx(P.make, {\n                          children: contact.fullName\n                        }),\n                    JsxRuntime.jsx(\"span\", {\n                          children: (\n                            title !== undefined ? title + \" at \" : \"\"\n                          ) + contact.companyName\n                        })\n                  ],\n                  className: css.projectUserText\n                })\n          ]\n        });\n  }\n  var tmp$9;\n  var exit$2 = 0;\n  switch (userViewContext) {\n    case \"Personal\" :\n        tmp$9 = JsxRuntime.jsx(UserProjects_List_ControlsForUser.make, {\n              project: project,\n              updateProjectStatus: props.updateProjectStatus,\n              userRole: userRole\n            });\n        break;\n    case \"Admin\" :\n    case \"Visitor\" :\n        exit$2 = 1;\n        break;\n    \n  }\n  if (exit$2 === 1) {\n    if (project.TAG === \"Draft\") {\n      tmp$9 = null;\n    } else {\n      var projectData = project.data;\n      var projectId = project.id;\n      if (userViewContext === \"Admin\") {\n        switch (userRole) {\n          case \"Provider\" :\n              tmp$9 = JsxRuntime.jsx(UserProjects_List_ControlsForProvider.make, {\n                    projectId: projectId,\n                    projectData: projectData,\n                    userRole: userRole,\n                    updateProposalStatus: props.updateProposalStatus,\n                    userViewContext: userViewContext\n                  });\n              break;\n          case \"User\" :\n          case \"Visitor\" :\n              tmp$9 = null;\n              break;\n          default:\n            tmp$9 = JsxRuntime.jsx(UserProjects_List_ControlsForAdmin.make, {\n                  projectId: projectId,\n                  projectData: projectData,\n                  userRole: userRole\n                });\n        }\n      } else {\n        tmp$9 = null;\n      }\n    }\n  }\n  var tmp$10;\n  if (project.TAG === \"Draft\") {\n    tmp$10 = css.draftProjectItem;\n  } else {\n    switch (project.data.status) {\n      case \"Draft\" :\n          tmp$10 = css.draftProjectItem;\n          break;\n      case \"Active\" :\n          tmp$10 = \"\";\n          break;\n      case \"Inactive\" :\n          tmp$10 = css.inactiveProjectItem;\n          break;\n      case \"Finalized\" :\n          tmp$10 = css.finalizedProjectItem;\n          break;\n      case \"Review\" :\n          tmp$10 = css.reviewProjectItem;\n          break;\n      \n    }\n  }\n  return JsxRuntime.jsxs(\"div\", {\n              children: [\n                tmp,\n                JsxRuntime.jsxs(\"div\", {\n                      children: [\n                        JsxRuntime.jsxs(\"div\", {\n                              children: [\n                                JsxRuntime.jsxs(\"div\", {\n                                      children: [\n                                        tmp$1,\n                                        JsxRuntime.jsx(\"div\", {\n                                              children: JsxRuntime.jsx(A.make, {\n                                                    id: \"projectLink\",\n                                                    href: projectUrl,\n                                                    children: tmp$2\n                                                  }),\n                                              className: css.projectTitle\n                                            }),\n                                        JsxRuntime.jsx(\"div\", {\n                                              children: tmp$3,\n                                              className: css.projectDescription\n                                            })\n                                      ],\n                                      className: css.projectName\n                                    }),\n                                JsxRuntime.jsxs(\"div\", {\n                                      children: [\n                                        JsxRuntime.jsx(\"div\", {\n                                              children: \"Estimated project dates\",\n                                              className: css.projectLabel\n                                            }),\n                                        JsxRuntime.jsx(\"div\", {\n                                              children: tmp$4,\n                                              className: css.projectDates\n                                            }),\n                                        tmp$5,\n                                        JsxRuntime.jsx(\"div\", {\n                                              children: tmp$7,\n                                              className: css.projectUser\n                                            })\n                                      ]\n                                    })\n                              ],\n                              className: css.projectInfo\n                            }),\n                        tmp$9\n                      ],\n                      className: css.projectItemContainer\n                    })\n              ],\n              className: Cx.cx([\n                    css.projectItem,\n                    tmp$10\n                  ])\n            });\n}\n\nvar make = UserProjects_List_Item;\n\nexport {\n  css ,\n  Helpers ,\n  make ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport * as Pagination from \"../../../../styleguide/components/Pagination/Pagination.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as UserProjectsScss from \"./UserProjects.scss\";\nimport * as UserProjects_List_Item from \"./UserProjects_List_Item.res.js\";\n\nvar css = UserProjectsScss;\n\nfunction UserProjects_List(props) {\n  var userViewContext = props.userViewContext;\n  var updateProposalStatus = props.updateProposalStatus;\n  var updateProjectStatus = props.updateProjectStatus;\n  var userRole = props.userRole;\n  return JsxRuntime.jsxs(JsxRuntime.Fragment, {\n              children: [\n                JsxRuntime.jsx(\"div\", {\n                      children: Belt_Array.map(props.projects, (function (project) {\n                              return JsxRuntime.jsx(UserProjects_List_Item.make, {\n                                          project: project,\n                                          userRole: userRole,\n                                          updateProjectStatus: updateProjectStatus,\n                                          updateProposalStatus: updateProposalStatus,\n                                          userViewContext: userViewContext\n                                        }, project.id);\n                            })),\n                      className: css.projectsWrapper\n                    }),\n                JsxRuntime.jsx(\"div\", {\n                      children: JsxRuntime.jsx(Pagination.make, {\n                            currentPage: props.currentPage,\n                            totalPages: props.totalPages,\n                            onPageClick: props.onPageClick\n                          }),\n                      className: css.pagination\n                    })\n              ]\n            });\n}\n\nvar make = UserProjects_List;\n\nexport {\n  css ,\n  make ,\n}\n/* css Not a pure module */\n","// extracted by mini-css-extract-plugin\nexport var column = \"UserProjects_List_Filters__column__YcmNN\";\nexport var dropdownBody = \"UserProjects_List_Filters__dropdownBody__eG158\";\nexport var dropdownBodyHeading = \"UserProjects_List_Filters__dropdownBodyHeading__NQR10\";\nexport var dropdownBodyRow = \"UserProjects_List_Filters__dropdownBodyRow__N0OfM\";\nexport var dropdownTrigger = \"UserProjects_List_Filters__dropdownTrigger__z9CdD\";\nexport var flex = \"UserProjects_List_Filters__flex___Sctn\";\nexport var flexColumn = \"UserProjects_List_Filters__flexColumn__ByGoa\";\nexport var gap1 = \"UserProjects_List_Filters__gap1__DfiJ0\";\nexport var gap2 = \"UserProjects_List_Filters__gap2__mnCx_\";\nexport var gap3 = \"UserProjects_List_Filters__gap3__idqPk\";\nexport var gap4 = \"UserProjects_List_Filters__gap4__LDOiY\";\nexport var gap5 = \"UserProjects_List_Filters__gap5__C0JZr\";\nexport var label = \"UserProjects_List_Filters__label__gXoGF\";\nexport var row = \"UserProjects_List_Filters__row__aGnni\";\nexport var searchFieldInput = \"UserProjects_List_Filters__searchFieldInput__jE1iM\";\nexport var searchIcon = \"UserProjects_List_Filters__searchIcon__NPFw4\";","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as SearchField from \"../../../../styleguide/forms/SearchField/SearchField.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as UserProjects_List_FiltersScss from \"./UserProjects_List_Filters.scss\";\n\nvar css = UserProjects_List_FiltersScss;\n\nfunction UserProjects_List_Input(props) {\n  var update = props.update;\n  var filters = props.filters;\n  var query = filters.query;\n  var tmp;\n  switch (props.userViewContext) {\n    case \"Admin\" :\n        tmp = \"Search by title or client name\";\n        break;\n    case \"Personal\" :\n    case \"Visitor\" :\n        tmp = \"Search by title\";\n        break;\n    \n  }\n  return JsxRuntime.jsx(SearchField.make, {\n              id: \"user-projects-list-filter--address\",\n              value: query !== undefined ? query : \"\",\n              placeholder: tmp,\n              inputClassName: css.searchFieldInput,\n              iconClassName: css.searchIcon,\n              onChange: (function ($$event) {\n                  update({\n                        query: $$event.target.value,\n                        providerIds: filters.providerIds,\n                        statuses: filters.statuses,\n                        sortBy: filters.sortBy,\n                        categories: filters.categories\n                      });\n                })\n            });\n}\n\nvar make = UserProjects_List_Input;\n\nexport {\n  css ,\n  make ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Project from \"../../../../models/Project.res.js\";\nimport * as Checkbox from \"../../../../styleguide/forms/Checkbox/Checkbox.res.js\";\nimport * as Dropdown from \"../../../../styleguide/forms/Dropdown/Dropdown.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 UserProjects_List_FiltersScss from \"./UserProjects_List_Filters.scss\";\n\nvar css = UserProjects_List_FiltersScss;\n\nfunction statusList(userRole) {\n  switch (userRole) {\n    case \"Provider\" :\n        return [\n                \"Active\",\n                \"Inactive\",\n                \"Finalized\"\n              ];\n    case \"User\" :\n    case \"Visitor\" :\n        return [];\n    case \"Admin\" :\n    case \"Concierge\" :\n        return [\n                \"Active\",\n                \"Review\",\n                \"Inactive\",\n                \"Finalized\",\n                \"Draft\"\n              ];\n    case \"Agent\" :\n        return [\n                \"Active\",\n                \"Review\",\n                \"Inactive\",\n                \"Finalized\"\n              ];\n    \n  }\n}\n\nfunction UserProjects_List_Filter_Status(props) {\n  var update = props.update;\n  var filters = props.filters;\n  var statuses = filters.statuses;\n  var tmp;\n  if (statuses !== undefined) {\n    var x = statuses.length;\n    tmp = x !== 0 ? (\n        x !== 1 ? String(x) + \" statuses\" : \"1 status\"\n      ) : \"All statuses\";\n  } else {\n    tmp = \"All statuses\";\n  }\n  return JsxRuntime.jsx(\"div\", {\n              children: JsxRuntime.jsxs(Dropdown.make, {\n                    children: [\n                      JsxRuntime.jsx(Dropdown.Trigger.make, {\n                            className: css.dropdownTrigger,\n                            iconSize: \"XS\",\n                            iconColor: \"Gray\",\n                            children: tmp\n                          }),\n                      JsxRuntime.jsxs(Dropdown.Body.make, {\n                            position: {\n                              TAG: \"Below\",\n                              _0: \"LeftEdge\"\n                            },\n                            className: css.dropdownBody,\n                            withButton: true,\n                            children: [\n                              JsxRuntime.jsx(\"div\", {\n                                    children: \"Statuses\",\n                                    className: css.dropdownBodyHeading\n                                  }),\n                              Belt_Array.mapWithIndex(statusList(props.userRole), (function (idx, item) {\n                                      var statuses = filters.statuses;\n                                      return JsxRuntime.jsxs(\"div\", {\n                                                  children: [\n                                                    JsxRuntime.jsx(Checkbox.make, {\n                                                          id: String(idx),\n                                                          size: \"SM\",\n                                                          checked: statuses !== undefined ? (function (__x) {\n                                                                  return Js_array.includes(item, __x);\n                                                                })(statuses) : false,\n                                                          onChange: (function ($$event) {\n                                                              var checked = $$event.target.checked;\n                                                              var statuses = filters.statuses;\n                                                              var statuses$1 = statuses !== undefined ? (\n                                                                  checked ? Belt_Array.concat(statuses, [item]) : Belt_Array.keep(statuses, (function (value) {\n                                                                            return value !== item;\n                                                                          }))\n                                                                ) : (\n                                                                  checked ? [item] : []\n                                                                );\n                                                              update({\n                                                                    query: filters.query,\n                                                                    providerIds: filters.providerIds,\n                                                                    statuses: statuses$1,\n                                                                    sortBy: filters.sortBy,\n                                                                    categories: filters.categories\n                                                                  });\n                                                            })\n                                                        }),\n                                                    JsxRuntime.jsx(\"div\", {\n                                                          children: Project.Status.toString(item),\n                                                          className: css.label\n                                                        })\n                                                  ],\n                                                  className: css.dropdownBodyRow\n                                                }, String(idx));\n                                    }))\n                            ]\n                          })\n                    ]\n                  }),\n              className: css.statusFilter\n            });\n}\n\nvar make = UserProjects_List_Filter_Status;\n\nexport {\n  css ,\n  statusList ,\n  make ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Project from \"../../../../models/Project.res.js\";\nimport * as Checkbox from \"../../../../styleguide/forms/Checkbox/Checkbox.res.js\";\nimport * as Dropdown from \"../../../../styleguide/forms/Dropdown/Dropdown.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 UserProjects_List_FiltersScss from \"./UserProjects_List_Filters.scss\";\n\nvar css = UserProjects_List_FiltersScss;\n\nvar categoryList = [\n  \"BareMetal\",\n  \"Colocation\",\n  \"Cloud\",\n  \"Internet\",\n  \"Network\"\n];\n\nfunction UserProjects_List_Filter_Category(props) {\n  var update = props.update;\n  var filters = props.filters;\n  var categories = filters.categories;\n  var tmp;\n  if (categories !== undefined) {\n    var x = categories.length;\n    tmp = x !== 0 ? (\n        x !== 1 ? String(x) + \" categories\" : \"1 category\"\n      ) : \"All categories\";\n  } else {\n    tmp = \"All categories\";\n  }\n  return JsxRuntime.jsx(\"div\", {\n              children: JsxRuntime.jsxs(Dropdown.make, {\n                    children: [\n                      JsxRuntime.jsx(Dropdown.Trigger.make, {\n                            className: css.dropdownTrigger,\n                            iconSize: \"XS\",\n                            iconColor: \"Gray\",\n                            children: tmp\n                          }),\n                      JsxRuntime.jsxs(Dropdown.Body.make, {\n                            position: {\n                              TAG: \"Below\",\n                              _0: \"LeftEdge\"\n                            },\n                            className: css.dropdownBody,\n                            withButton: true,\n                            children: [\n                              JsxRuntime.jsx(\"div\", {\n                                    children: \"Categories\",\n                                    className: css.dropdownBodyHeading\n                                  }),\n                              Belt_Array.mapWithIndex(categoryList, (function (idx, item) {\n                                      var categories = filters.categories;\n                                      return JsxRuntime.jsxs(\"div\", {\n                                                  children: [\n                                                    JsxRuntime.jsx(Checkbox.make, {\n                                                          id: String(idx),\n                                                          size: \"SM\",\n                                                          checked: categories !== undefined ? (function (__x) {\n                                                                  return Js_array.includes(item, __x);\n                                                                })(categories) : false,\n                                                          onChange: (function ($$event) {\n                                                              var checked = $$event.target.checked;\n                                                              var categories = filters.categories;\n                                                              var categories$1 = categories !== undefined ? (\n                                                                  checked ? Belt_Array.concat(categories, [item]) : Belt_Array.keep(categories, (function (value) {\n                                                                            return value !== item;\n                                                                          }))\n                                                                ) : (\n                                                                  checked ? [item] : []\n                                                                );\n                                                              update({\n                                                                    query: filters.query,\n                                                                    providerIds: filters.providerIds,\n                                                                    statuses: filters.statuses,\n                                                                    sortBy: filters.sortBy,\n                                                                    categories: categories$1\n                                                                  });\n                                                            })\n                                                        }),\n                                                    JsxRuntime.jsx(\"div\", {\n                                                          children: Project.ProjectType.toLabel(item),\n                                                          className: css.label\n                                                        })\n                                                  ],\n                                                  className: css.dropdownBodyRow\n                                                }, String(idx));\n                                    }))\n                            ]\n                          })\n                    ]\n                  }),\n              className: css.categoryFilter\n            });\n}\n\nvar make = UserProjects_List_Filter_Category;\n\nexport {\n  css ,\n  categoryList ,\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 Checkbox from \"../../../../styleguide/forms/Checkbox/Checkbox.res.js\";\nimport * as Dropdown from \"../../../../styleguide/forms/Dropdown/Dropdown.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 UserProjects_List_FiltersScss from \"./UserProjects_List_Filters.scss\";\n\nvar css = UserProjects_List_FiltersScss;\n\nfunction UserProjects_List_Filter_Provider(props) {\n  var update = props.update;\n  var filters = props.filters;\n  var providerIds = filters.providerIds;\n  var tmp;\n  if (providerIds !== undefined) {\n    var x = providerIds.length;\n    tmp = x !== 0 ? (\n        x !== 1 ? String(x) + \" Providers\" : \"1 Provider\"\n      ) : \"Provider\";\n  } else {\n    tmp = \"Provider\";\n  }\n  return JsxRuntime.jsxs(Dropdown.make, {\n              children: [\n                JsxRuntime.jsx(Dropdown.Trigger.make, {\n                      className: css.dropdownTrigger,\n                      iconSize: \"XS\",\n                      iconColor: \"Gray\",\n                      children: tmp\n                    }),\n                JsxRuntime.jsx(Dropdown.Body.make, {\n                      position: {\n                        TAG: \"Below\",\n                        _0: \"LeftEdge\"\n                      },\n                      className: css.dropdownBody,\n                      children: Belt_Array.map(props.providers, (function (provider) {\n                              var id = \"user-colocation-rfp-projects-list-filter--provider-\" + ID.toString(provider.id);\n                              var providerIds = filters.providerIds;\n                              return JsxRuntime.jsxs(\"div\", {\n                                          children: [\n                                            JsxRuntime.jsx(Checkbox.make, {\n                                                  id: id,\n                                                  size: \"SM\",\n                                                  checked: providerIds !== undefined ? (function (__x) {\n                                                          return Js_array.includes(provider.id, __x);\n                                                        })(providerIds) : false,\n                                                  onChange: (function ($$event) {\n                                                      var checked = $$event.target.checked;\n                                                      var providerIds = filters.providerIds;\n                                                      var providerIds$1 = providerIds !== undefined ? (\n                                                          checked ? Belt_Array.concat(providerIds, [provider.id]) : Belt_Array.keep(providerIds, (function (value) {\n                                                                    return ID.toString(value) !== ID.toString(provider.id);\n                                                                  }))\n                                                        ) : (\n                                                          checked ? [provider.id] : []\n                                                        );\n                                                      update({\n                                                            query: filters.query,\n                                                            providerIds: providerIds$1,\n                                                            statuses: filters.statuses,\n                                                            sortBy: filters.sortBy,\n                                                            categories: filters.categories\n                                                          });\n                                                    })\n                                                }),\n                                            JsxRuntime.jsx(\"div\", {\n                                                  children: provider.name,\n                                                  className: css.label\n                                                })\n                                          ],\n                                          className: css.dropdownBodyRow\n                                        }, id);\n                            }))\n                    })\n              ]\n            });\n}\n\nvar make = UserProjects_List_Filter_Provider;\n\nexport {\n  css ,\n  make ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as A from \"../../../../styleguide/components/Link/A.res.js\";\nimport * as Api from \"../../../../api/Api.res.js\";\nimport * as Url from \"../../../../utils/Url.res.js\";\nimport * as React from \"react\";\nimport * as Button from \"../../../../styleguide/components/Button/Button.res.js\";\nimport * as Control from \"../../../../styleguide/components/Control/Control.res.js\";\nimport * as Popover from \"../../../../styleguide/components/Popover/Popover.res.js\";\nimport * as Project from \"../../../../models/Project.res.js\";\nimport * as $$Promise from \"../../../../bindings/Promise.res.js\";\nimport * as Dropdown from \"../../../../styleguide/forms/Dropdown/Dropdown.res.js\";\nimport * as TopNavbar from \"../../top-navbar/TopNavbar.res.js\";\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport * as IconSelect from \"../../../../styleguide/icons/IconSelect.res.js\";\nimport * as ProjectTile from \"../../../../models/ProjectTile.res.js\";\nimport * as IconDownload from \"../../../../styleguide/icons/IconDownload.res.js\";\nimport * as SentryLogger from \"../../../../loggers/SentryLogger.res.js\";\nimport * as AdminTopNavbar from \"../../../dashboard/common/admin-top-navbar/AdminTopNavbar.res.js\";\nimport * as Routes_Project from \"../../../../routes/common/Routes_Project.res.js\";\nimport * as UserProjects_List from \"./UserProjects_List.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as ConciergeTopNavbar from \"../../../dashboard/common/concierge-top-navbar/ConciergeTopNavbar.res.js\";\nimport * as UserProjectsScss from \"./UserProjects.scss\";\nimport * as RescriptReactRouter from \"@rescript/react/src/RescriptReactRouter.res.js\";\nimport * as FetchProjectsRequest from \"../../../../api/requests/FetchProjectsRequest.res.js\";\nimport * as UserProjects_List_Input from \"./UserProjects_List_Input.res.js\";\nimport * as UserProjects_List_Filter_Status from \"./UserProjects_List_Filter_Status.res.js\";\nimport * as UserProjects_List_Filter_Category from \"./UserProjects_List_Filter_Category.res.js\";\nimport * as UserProjects_List_Filter_Provider from \"./UserProjects_List_Filter_Provider.res.js\";\n\nvar css = UserProjectsScss;\n\nfunction reducer(state, action) {\n  switch (action.TAG) {\n    case \"Paginate\" :\n        return {\n                projects: state.projects,\n                filters: state.filters,\n                currentPage: action._0,\n                totalProjects: state.totalProjects,\n                totalPages: state.totalPages\n              };\n    case \"UpdateFilter\" :\n        return {\n                projects: state.projects,\n                filters: action._0,\n                currentPage: 1,\n                totalProjects: state.totalProjects,\n                totalPages: state.totalPages\n              };\n    case \"FetchProjects\" :\n        var res = action._0;\n        return {\n                projects: res.projects,\n                filters: state.filters,\n                currentPage: state.currentPage,\n                totalProjects: res.totalProjects,\n                totalPages: res.totalPages\n              };\n    case \"UpdateProjectStatus\" :\n        var project = action._0;\n        return {\n                projects: Belt_Array.map(state.projects, (function (item) {\n                        if (ProjectTile.eq(item, project)) {\n                          return project;\n                        } else {\n                          return item;\n                        }\n                      })),\n                filters: state.filters,\n                currentPage: state.currentPage,\n                totalProjects: state.totalProjects,\n                totalPages: state.totalPages\n              };\n    case \"UpdateProjectProposal\" :\n        var proposal = action._1;\n        var projectId = action._0;\n        return {\n                projects: Belt_Array.map(state.projects, (function (item) {\n                        if (item.TAG === \"Draft\") {\n                          return item;\n                        }\n                        var data = item.data;\n                        var id = item.id;\n                        if (Project.Id.$eq(id, projectId)) {\n                          return {\n                                  TAG: \"Project\",\n                                  id: id,\n                                  category: item.category,\n                                  data: {\n                                    title: data.title,\n                                    description: data.description,\n                                    startDate: data.startDate,\n                                    endDate: data.endDate,\n                                    contact: data.contact,\n                                    businessName: data.businessName,\n                                    totalLocations: data.totalLocations,\n                                    totalProviders: data.totalProviders,\n                                    totalProposals: data.totalProposals,\n                                    canSendProposals: data.canSendProposals,\n                                    status: data.status,\n                                    proposalsBreakdown: data.proposalsBreakdown,\n                                    providerLogo: data.providerLogo,\n                                    providerName: data.providerName,\n                                    proposalDetails: proposal,\n                                    createdAt: data.createdAt,\n                                    category: data.category\n                                  }\n                                };\n                        } else {\n                          return item;\n                        }\n                      })),\n                filters: state.filters,\n                currentPage: state.currentPage,\n                totalProjects: state.totalProjects,\n                totalPages: state.totalPages\n              };\n    \n  }\n}\n\nfunction UserProjects(props) {\n  var isNotOnlyProviderMember = props.isNotOnlyProviderMember;\n  var isConcierge = props.isConcierge;\n  var userViewContext = props.userViewContext;\n  var userRole = props.userRole;\n  var providers = props.providers;\n  var match = React.useReducer(reducer, {\n        projects: props.projects,\n        filters: props.filters,\n        currentPage: props.currentPage,\n        totalProjects: props.totalProjects,\n        totalPages: props.totalPages\n      });\n  var dispatch = match[1];\n  var state = match[0];\n  var fetchProjects = function () {\n    $$Promise.wait(Api.fetchProjects(state.currentPage, state.filters, userViewContext, isConcierge), (function (x) {\n            if (x.TAG === \"Ok\") {\n              return dispatch({\n                          TAG: \"FetchProjects\",\n                          _0: x._0\n                        });\n            } else {\n              return SentryLogger.error1({\n                          rootModule: \"UserProjects\",\n                          subModulePath: /* [] */0,\n                          value: \"make\",\n                          fullPath: \"UserProjects.make\"\n                        }, \"FetchProjects::Error\", [\n                          \"Error\",\n                          x._0\n                        ]);\n            }\n          }));\n  };\n  var updateProjectStatus = function (projectId, projectStatus) {\n    $$Promise.wait(Api.updateProjectStatus(projectId, projectStatus), (function (x) {\n            if (x.TAG === \"Ok\") {\n              return dispatch({\n                          TAG: \"UpdateProjectStatus\",\n                          _0: x._0.project\n                        });\n            } else {\n              return SentryLogger.error1({\n                          rootModule: \"UserProjects\",\n                          subModulePath: /* [] */0,\n                          value: \"make\",\n                          fullPath: \"UserProjects.make\"\n                        }, \"UpdateStatus::Error\", [\n                          \"Error\",\n                          x._0\n                        ]);\n            }\n          }));\n  };\n  var updateProposalStatus = function (projectId, proposal, message, param) {\n    $$Promise.wait(Api.updateProjectProposalStatus(projectId, proposal, message, undefined), (function (x) {\n            if (x.TAG === \"Ok\") {\n              return dispatch({\n                          TAG: \"UpdateProjectProposal\",\n                          _0: projectId,\n                          _1: x._0.proposal\n                        });\n            } else {\n              return SentryLogger.error1({\n                          rootModule: \"UserProjects\",\n                          subModulePath: /* [] */0,\n                          value: \"make\",\n                          fullPath: \"UserProjects.make\"\n                        }, \"UpdateProposalStatus::Error\", [\n                          \"Error\",\n                          x._0\n                        ]);\n            }\n          }));\n  };\n  React.useEffect((function () {\n          RescriptReactRouter.push(\"?\" + FetchProjectsRequest.queryString(state.currentPage, state.filters, userViewContext, isConcierge));\n          fetchProjects();\n        }), [\n        state.currentPage,\n        state.filters\n      ]);\n  var tmp;\n  switch (userViewContext) {\n    case \"Admin\" :\n        switch (userRole) {\n          case \"Admin\" :\n              tmp = JsxRuntime.jsx(AdminTopNavbar.make, {\n                    selectedCategory: isConcierge ? \"ConciergeProjects\" : \"Projects\",\n                    isAdmin: true,\n                    isConcierge: isConcierge,\n                    isNotOnlyProviderMember: isNotOnlyProviderMember\n                  });\n              break;\n          case \"Provider\" :\n              tmp = JsxRuntime.jsx(AdminTopNavbar.make, {\n                    selectedCategory: isConcierge ? \"ConciergeProjects\" : \"Projects\",\n                    isAdmin: false,\n                    isConcierge: isConcierge,\n                    isNotOnlyProviderMember: isNotOnlyProviderMember\n                  });\n              break;\n          case \"User\" :\n          case \"Visitor\" :\n              tmp = null;\n              break;\n          case \"Concierge\" :\n          case \"Agent\" :\n              tmp = isConcierge ? JsxRuntime.jsx(ConciergeTopNavbar.make, {\n                      selectedCategory: \"Projects\"\n                    }) : null;\n              break;\n          \n        }\n        break;\n    case \"Personal\" :\n    case \"Visitor\" :\n        tmp = JsxRuntime.jsx(TopNavbar.make, {\n              selectedCategory: \"Projects\"\n            });\n        break;\n    \n  }\n  var tmp$1;\n  switch (userViewContext) {\n    case \"Admin\" :\n        tmp$1 = isConcierge ? \"Concierge Projects\" : \"Provider Projects\";\n        break;\n    case \"Personal\" :\n    case \"Visitor\" :\n        tmp$1 = \"Personal Projects\";\n        break;\n    \n  }\n  var tmp$2;\n  switch (userViewContext) {\n    case \"Personal\" :\n        var tmp$3;\n        var exit = 0;\n        switch (userRole) {\n          case \"Admin\" :\n          case \"Concierge\" :\n          case \"Agent\" :\n              exit = 1;\n              break;\n          default:\n            tmp$3 = null;\n        }\n        if (exit === 1) {\n          tmp$3 = JsxRuntime.jsxs(JsxRuntime.Fragment, {\n                children: [\n                  JsxRuntime.jsx(\"div\", {\n                        children: JsxRuntime.jsx(Control.make, {\n                              className: css.newProjectMenuItemControl,\n                              onClick: (function (param) {\n                                  Url.visit(Routes_Project.Internet.$$new);\n                                }),\n                              children: \"Internet RFP\"\n                            }),\n                        className: css.newProjectMenuItem\n                      }),\n                  JsxRuntime.jsx(\"div\", {\n                        children: JsxRuntime.jsx(Control.make, {\n                              className: css.newProjectMenuItemControl,\n                              onClick: (function (param) {\n                                  Url.visit(Routes_Project.Network.$$new);\n                                }),\n                              children: \"Network RFP\"\n                            }),\n                        className: css.newProjectMenuItem\n                      })\n                ]\n              });\n        }\n        tmp$2 = JsxRuntime.jsxs(Popover.make, {\n              className: css.buttonContainer,\n              children: [\n                JsxRuntime.jsx(Popover.Trigger.make, {\n                      className: css.buttonContainer,\n                      children: JsxRuntime.jsx(Button.make, {\n                            size: \"SM\",\n                            color: \"Primary\",\n                            children: \"Add New Project\"\n                          })\n                    }),\n                JsxRuntime.jsxs(Dropdown.Body.make, {\n                      position: {\n                        TAG: \"Below\",\n                        _0: \"RightEdge\"\n                      },\n                      className: css.newProjectMenu,\n                      children: [\n                        JsxRuntime.jsx(\"div\", {\n                              children: JsxRuntime.jsx(Control.make, {\n                                    className: css.newProjectMenuItemControl,\n                                    onClick: (function (param) {\n                                        Url.visit(Routes_Project.BareMetal.$$new);\n                                      }),\n                                    children: \"Bare Metal RFP\"\n                                  }),\n                              className: css.newProjectMenuItem\n                            }),\n                        JsxRuntime.jsx(\"div\", {\n                              children: JsxRuntime.jsx(Control.make, {\n                                    className: css.newProjectMenuItemControl,\n                                    onClick: (function (param) {\n                                        Url.visit(Routes_Project.Colocation.$$new);\n                                      }),\n                                    children: \"Colocation RFP\"\n                                  }),\n                              className: css.newProjectMenuItem\n                            }),\n                        JsxRuntime.jsx(\"div\", {\n                              children: JsxRuntime.jsx(Control.make, {\n                                    className: css.newProjectMenuItemControl,\n                                    onClick: (function (param) {\n                                        Url.visit(Routes_Project.Cloud.$$new);\n                                      }),\n                                    children: \"Cloud RFP\"\n                                  }),\n                              className: css.newProjectMenuItem\n                            }),\n                        tmp$3\n                      ]\n                    })\n              ]\n            });\n        break;\n    case \"Admin\" :\n    case \"Visitor\" :\n        tmp$2 = null;\n        break;\n    \n  }\n  var tmp$4;\n  if (state.projects.length !== 0) {\n    var x = state.totalProjects;\n    var match$1 = props.mobile || props.tablet;\n    var tmp$5;\n    tmp$5 = userRole === \"Admin\" && !match$1 ? JsxRuntime.jsx(\"div\", {\n            children: JsxRuntime.jsx(A.make, {\n                  href: Routes_Project.toCsv,\n                  children: JsxRuntime.jsx(IconDownload.make, {\n                        title: \"Download\",\n                        size: \"SM\",\n                        color: \"DarkerGray\"\n                      })\n                }),\n            className: css.downloadIcon\n          }) : null;\n    var sortBy = state.filters.sortBy;\n    var tmp$6;\n    if (sortBy !== undefined && typeof sortBy === \"object\") {\n      var variant = sortBy.NAME;\n      tmp$6 = variant === \"Created\" ? (\n          sortBy.VAL === \"Desc\" ? \"Newest\" : \"Oldest\"\n        ) : (\n          variant === \"End\" ? (\n              sortBy.VAL === \"Desc\" ? \"Ends later\" : \"Ends sooner\"\n            ) : (\n              variant === \"Start\" ? (\n                  sortBy.VAL === \"Desc\" ? \"Starts later\" : \"Starts sooner\"\n                ) : \"Choose a sort criteria\"\n            )\n        );\n    } else {\n      tmp$6 = \"Choose a sort criteria\";\n    }\n    tmp$4 = JsxRuntime.jsxs(JsxRuntime.Fragment, {\n          children: [\n            JsxRuntime.jsxs(\"div\", {\n                  children: [\n                    JsxRuntime.jsx(\"div\", {\n                          children: x !== 1 ? String(x) + \" projects\" : \"1 project\",\n                          className: css.projectsCount\n                        }),\n                    JsxRuntime.jsx(\"div\", {\n                          children: JsxRuntime.jsxs(Popover.make, {\n                                children: [\n                                  tmp$5,\n                                  JsxRuntime.jsxs(Popover.Trigger.make, {\n                                        className: css.popoverTrigger,\n                                        children: [\n                                          JsxRuntime.jsx(Control.AsLink.make, {\n                                                color: \"Gray\",\n                                                onClick: (function (param) {\n                                                    \n                                                  }),\n                                                children: tmp$6\n                                              }),\n                                          JsxRuntime.jsx(IconSelect.make, {\n                                                size: \"XXXS\",\n                                                color: \"GrayText\"\n                                              })\n                                        ]\n                                      }),\n                                  JsxRuntime.jsxs(Popover.Body.make, {\n                                        position: {\n                                          TAG: \"Below\",\n                                          _0: \"RightEdge\"\n                                        },\n                                        className: css.popoverBody,\n                                        children: [\n                                          JsxRuntime.jsx(\"div\", {\n                                                children: JsxRuntime.jsx(\"div\", {\n                                                      children: \"Newest\",\n                                                      className: css.sortSelection,\n                                                      onClick: (function (param) {\n                                                          var init = state.filters;\n                                                          dispatch({\n                                                                TAG: \"UpdateFilter\",\n                                                                _0: {\n                                                                  query: init.query,\n                                                                  providerIds: init.providerIds,\n                                                                  statuses: init.statuses,\n                                                                  sortBy: {\n                                                                    NAME: \"Created\",\n                                                                    VAL: \"Desc\"\n                                                                  },\n                                                                  categories: init.categories\n                                                                }\n                                                              });\n                                                        })\n                                                    }),\n                                                className: css.popoverRow\n                                              }),\n                                          JsxRuntime.jsx(\"div\", {\n                                                children: JsxRuntime.jsx(\"div\", {\n                                                      children: \"Oldest\",\n                                                      className: css.sortSelection,\n                                                      onClick: (function (param) {\n                                                          var init = state.filters;\n                                                          dispatch({\n                                                                TAG: \"UpdateFilter\",\n                                                                _0: {\n                                                                  query: init.query,\n                                                                  providerIds: init.providerIds,\n                                                                  statuses: init.statuses,\n                                                                  sortBy: {\n                                                                    NAME: \"Created\",\n                                                                    VAL: \"Asc\"\n                                                                  },\n                                                                  categories: init.categories\n                                                                }\n                                                              });\n                                                        })\n                                                    }),\n                                                className: css.popoverRow\n                                              }),\n                                          JsxRuntime.jsx(\"div\", {\n                                                children: JsxRuntime.jsx(\"div\", {\n                                                      children: \"Starts sooner\",\n                                                      className: css.sortSelection,\n                                                      onClick: (function (param) {\n                                                          var init = state.filters;\n                                                          dispatch({\n                                                                TAG: \"UpdateFilter\",\n                                                                _0: {\n                                                                  query: init.query,\n                                                                  providerIds: init.providerIds,\n                                                                  statuses: init.statuses,\n                                                                  sortBy: {\n                                                                    NAME: \"Start\",\n                                                                    VAL: \"Asc\"\n                                                                  },\n                                                                  categories: init.categories\n                                                                }\n                                                              });\n                                                        })\n                                                    }),\n                                                className: css.popoverRow\n                                              }),\n                                          JsxRuntime.jsx(\"div\", {\n                                                children: JsxRuntime.jsx(\"div\", {\n                                                      children: \"Starts later\",\n                                                      className: css.sortSelection,\n                                                      onClick: (function (param) {\n                                                          var init = state.filters;\n                                                          dispatch({\n                                                                TAG: \"UpdateFilter\",\n                                                                _0: {\n                                                                  query: init.query,\n                                                                  providerIds: init.providerIds,\n                                                                  statuses: init.statuses,\n                                                                  sortBy: {\n                                                                    NAME: \"Start\",\n                                                                    VAL: \"Desc\"\n                                                                  },\n                                                                  categories: init.categories\n                                                                }\n                                                              });\n                                                        })\n                                                    }),\n                                                className: css.popoverRow\n                                              }),\n                                          JsxRuntime.jsx(\"div\", {\n                                                children: JsxRuntime.jsx(\"div\", {\n                                                      children: \"Ends sooner\",\n                                                      className: css.sortSelection,\n                                                      onClick: (function (param) {\n                                                          var init = state.filters;\n                                                          dispatch({\n                                                                TAG: \"UpdateFilter\",\n                                                                _0: {\n                                                                  query: init.query,\n                                                                  providerIds: init.providerIds,\n                                                                  statuses: init.statuses,\n                                                                  sortBy: {\n                                                                    NAME: \"End\",\n                                                                    VAL: \"Asc\"\n                                                                  },\n                                                                  categories: init.categories\n                                                                }\n                                                              });\n                                                        })\n                                                    }),\n                                                className: css.popoverRow\n                                              }),\n                                          JsxRuntime.jsx(\"div\", {\n                                                children: JsxRuntime.jsx(\"div\", {\n                                                      children: \"Ends later\",\n                                                      className: css.sortSelection,\n                                                      onClick: (function (param) {\n                                                          var init = state.filters;\n                                                          dispatch({\n                                                                TAG: \"UpdateFilter\",\n                                                                _0: {\n                                                                  query: init.query,\n                                                                  providerIds: init.providerIds,\n                                                                  statuses: init.statuses,\n                                                                  sortBy: {\n                                                                    NAME: \"End\",\n                                                                    VAL: \"Desc\"\n                                                                  },\n                                                                  categories: init.categories\n                                                                }\n                                                              });\n                                                        })\n                                                    }),\n                                                className: css.popoverRow\n                                              })\n                                        ]\n                                      })\n                                ]\n                              }),\n                          className: css.sorting\n                        })\n                  ],\n                  className: css.sortAndCount\n                }),\n            JsxRuntime.jsx(UserProjects_List.make, {\n                  projects: state.projects,\n                  userRole: userRole,\n                  totalPages: state.totalPages,\n                  currentPage: state.currentPage,\n                  updateProjectStatus: updateProjectStatus,\n                  updateProposalStatus: updateProposalStatus,\n                  onPageClick: (function (pageNum) {\n                      dispatch({\n                            TAG: \"Paginate\",\n                            _0: pageNum\n                          });\n                    }),\n                  userViewContext: userViewContext\n                })\n          ]\n        });\n  } else {\n    tmp$4 = JsxRuntime.jsx(\"div\", {\n          children: \"No projects found\",\n          className: css.noResults\n        });\n  }\n  return JsxRuntime.jsxs(\"div\", {\n              children: [\n                tmp,\n                JsxRuntime.jsxs(\"div\", {\n                      children: [\n                        JsxRuntime.jsxs(\"div\", {\n                              children: [\n                                JsxRuntime.jsx(\"h1\", {\n                                      children: tmp$1,\n                                      className: css.title\n                                    }),\n                                tmp$2\n                              ],\n                              className: css.heading\n                            }),\n                        JsxRuntime.jsxs(\"div\", {\n                              children: [\n                                JsxRuntime.jsx(UserProjects_List_Input.make, {\n                                      filters: state.filters,\n                                      update: (function (filters) {\n                                          dispatch({\n                                                TAG: \"UpdateFilter\",\n                                                _0: filters\n                                              });\n                                        }),\n                                      userViewContext: userViewContext\n                                    }),\n                                providers.length > 1 ? JsxRuntime.jsx(UserProjects_List_Filter_Provider.make, {\n                                        filters: state.filters,\n                                        update: (function (filters) {\n                                            dispatch({\n                                                  TAG: \"UpdateFilter\",\n                                                  _0: filters\n                                                });\n                                          }),\n                                        providers: providers\n                                      }) : null,\n                                JsxRuntime.jsx(UserProjects_List_Filter_Status.make, {\n                                      filters: state.filters,\n                                      update: (function (filters) {\n                                          dispatch({\n                                                TAG: \"UpdateFilter\",\n                                                _0: filters\n                                              });\n                                        }),\n                                      userRole: userRole\n                                    }),\n                                JsxRuntime.jsx(UserProjects_List_Filter_Category.make, {\n                                      filters: state.filters,\n                                      update: (function (filters) {\n                                          dispatch({\n                                                TAG: \"UpdateFilter\",\n                                                _0: filters\n                                              });\n                                        })\n                                    })\n                              ],\n                              className: css.filters\n                            }),\n                        tmp$4\n                      ],\n                      className: css.contentWrapper\n                    })\n              ],\n              className: css.container\n            });\n}\n\nvar make = UserProjects;\n\nexport {\n  css ,\n  reducer ,\n  make ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as React from \"react\";\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport * as Belt_Result from \"rescript/lib/es6/belt_Result.js\";\nimport * as ProjectTile from \"../../../../models/ProjectTile.res.js\";\nimport * as RailsContext from \"../../../../models/RailsContext.res.js\";\nimport * as UserProjects from \"./UserProjects.res.js\";\nimport * as ProviderAsFilter from \"../../../../models/ProviderAsFilter.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as ProjectsViewContext from \"../../../../models/ProjectsViewContext.res.js\";\nimport * as Json_Decode$JsonCombinators from \"@glennsl/rescript-json-combinators/src/Json_Decode.res.js\";\nimport * as UserProjects_List_Filter_Data from \"./UserProjects_List_Filter_Data.res.js\";\n\nfunction UserProjects__JsBridge$default(props) {\n  var isNotOnlyProviderMember = props.isNotOnlyProviderMember;\n  var isConcierge = props.isConcierge;\n  var viewContext = props.viewContext;\n  var railsContext = props.railsContext;\n  var searchParams = props.searchParams;\n  var filters = props.filters;\n  var projects = props.projects;\n  var railsContext$1 = React.useMemo((function () {\n          return RailsContext.fromJson(railsContext);\n        }), [railsContext]);\n  var projects$1 = React.useMemo((function () {\n          return Belt_Result.getExn(Json_Decode$JsonCombinators.decode(projects, Json_Decode$JsonCombinators.array(ProjectTile.decoder)));\n        }), [projects]);\n  var providers = React.useMemo((function () {\n          return Belt_Array.map(filters.providers, ProviderAsFilter.fromJs);\n        }), [filters.providers]);\n  var filters$1 = React.useMemo((function () {\n          return UserProjects_List_Filter_Data.Input.fromJs(searchParams);\n        }), [searchParams]);\n  var userViewContext = React.useMemo((function () {\n          return ProjectsViewContext.fromString(viewContext);\n        }), [viewContext]);\n  var isConcierge$1 = React.useMemo((function () {\n          return Belt_Result.getExn(Json_Decode$JsonCombinators.decode(isConcierge, Json_Decode$JsonCombinators.bool));\n        }), [isConcierge]);\n  var isNotOnlyProviderMember$1 = React.useMemo((function () {\n          return Belt_Result.getExn(Json_Decode$JsonCombinators.decode(isNotOnlyProviderMember, Json_Decode$JsonCombinators.bool));\n        }), [isNotOnlyProviderMember]);\n  return JsxRuntime.jsx(UserProjects.make, {\n              projects: projects$1,\n              providers: providers,\n              filters: filters$1,\n              userRole: railsContext$1.userRole,\n              userViewContext: userViewContext,\n              totalProjects: props.totalProjects,\n              currentPage: props.currentPage,\n              totalPages: props.totalPages,\n              isConcierge: isConcierge$1,\n              isNotOnlyProviderMember: isNotOnlyProviderMember$1,\n              mobile: props.mobile,\n              tablet: props.tablet\n            });\n}\n\nvar $$default = UserProjects__JsBridge$default;\n\nexport {\n  $$default as default,\n}\n/* react Not a pure module */\n","import * as React from 'react';\n\nimport UserProjects from './UserProjects__JsBridge.res.js';\n\n// TODO: Projects refactoring. Avoid props spread. Be explicit with what you're passing\nexport default ({ context, ...props }) => <UserProjects {...props} railsContext={context} />;\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as JsxRuntime from \"react/jsx-runtime\";\n\nvar arrow = '\\u279e';\n\nvar middot = '\\u00b7';\n\nvar mdash = '\\u2014';\n\nvar rightCaret = '\\u203a';\n\nvar ampersand = '\\u0026';\n\nvar times = '\\u00D7';\n\nfunction Char$Middot(props) {\n  return JsxRuntime.jsx(\"span\", {\n              children: \" \" + (middot + \" \"),\n              style: {\n                padding: \"0 1px\"\n              }\n            });\n}\n\nvar Middot = {\n  make: Char$Middot\n};\n\nfunction Char$RightArrow(props) {\n  return JsxRuntime.jsx(\"div\", {\n              children: arrow,\n              className: props.className\n            });\n}\n\nvar RightArrow = {\n  make: Char$RightArrow\n};\n\nfunction Char$LeftArrow(props) {\n  return JsxRuntime.jsx(\"div\", {\n              children: arrow,\n              style: {\n                transform: \"rotate(180deg)\"\n              }\n            });\n}\n\nvar LeftArrow = {\n  make: Char$LeftArrow\n};\n\nfunction Char$RightCaret(props) {\n  return JsxRuntime.jsx(\"span\", {\n              children: rightCaret\n            });\n}\n\nvar RightCaret = {\n  make: Char$RightCaret\n};\n\nfunction Char$Ampersand(props) {\n  return JsxRuntime.jsx(\"span\", {\n              children: ampersand\n            });\n}\n\nvar Ampersand = {\n  make: Char$Ampersand\n};\n\nfunction Char$Times(props) {\n  return JsxRuntime.jsx(\"span\", {\n              children: times\n            });\n}\n\nvar Times = {\n  make: Char$Times\n};\n\nexport {\n  arrow ,\n  middot ,\n  mdash ,\n  rightCaret ,\n  ampersand ,\n  times ,\n  Middot ,\n  RightArrow ,\n  LeftArrow ,\n  RightCaret ,\n  Ampersand ,\n  Times ,\n}\n/* react/jsx-runtime Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as ID from \"../libs/ID.res.js\";\nimport * as Belt_Result from \"rescript/lib/es6/belt_Result.js\";\nimport * as Json$JsonCombinators from \"@glennsl/rescript-json-combinators/src/Json.res.js\";\nimport * as Json_Decode$JsonCombinators from \"@glennsl/rescript-json-combinators/src/Json_Decode.res.js\";\n\nfunction fromJs(js) {\n  return {\n          id: js.id,\n          name: js.name\n        };\n}\n\nvar decoder = Json_Decode$JsonCombinators.object(function (field) {\n      return {\n              id: field.required(\"id\", ID.decoder),\n              name: field.required(\"name\", Json_Decode$JsonCombinators.string)\n            };\n    });\n\nfunction fromJson(json) {\n  return Belt_Result.getExn(Json$JsonCombinators.decode(json, decoder));\n}\n\nexport {\n  fromJs ,\n  decoder ,\n  fromJson ,\n}\n/* decoder Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\n\nvar badge = Cx.cx([\n      \"inline-flex\",\n      \"gap-2\",\n      \"items-center\",\n      \"rounded-sm\",\n      \"font-medium\",\n      \"w-auto\"\n    ]);\n\nvar gray = Cx.cx([\n      badge,\n      \"bg-gray-100\",\n      \"text-gray-700\"\n    ]);\n\nvar red = Cx.cx([\n      badge,\n      \"bg-red-100\",\n      \"text-red-600\"\n    ]);\n\nvar green = Cx.cx([\n      badge,\n      \"bg-green-100\",\n      \"text-green-600\"\n    ]);\n\nvar blue = Cx.cx([\n      badge,\n      \"bg-blue-100\",\n      \"text-blue-700\"\n    ]);\n\nvar yellow = Cx.cx([\n      badge,\n      \"bg-yellow-100\",\n      \"text-yellow-900\"\n    ]);\n\nvar purple = Cx.cx([\n      badge,\n      \"bg-purple-100\",\n      \"text-purple-900\"\n    ]);\n\nvar xs = Cx.cx([\n      \"px-2 py-1\",\n      \"text-xs\"\n    ]);\n\nvar small = Cx.cx([\n      \"px-2 py-1\",\n      \"text-sm\"\n    ]);\n\nvar medium = Cx.cx([\n      \"px-3 py-2\",\n      \"text-base\"\n    ]);\n\nvar large = Cx.cx([\n      \"px-4 py-3\",\n      \"text-lg\"\n    ]);\n\nvar colocation = Cx.cx([\n      badge,\n      \"bg-blue-100\",\n      \"text-blue-700\"\n    ]);\n\nvar internet = Cx.cx([\n      badge,\n      \"bg-red-100\",\n      \"text-red-600\"\n    ]);\n\nvar cloud = Cx.cx([\n      badge,\n      \"bg-green-100\",\n      \"text-green-600\"\n    ]);\n\nvar network = Cx.cx([\n      badge,\n      \"bg-teal-100\",\n      \"text-teal-700\"\n    ]);\n\nvar bareMetal = Cx.cx([\n      badge,\n      \"bg-purple-100\",\n      \"text-purple-900\"\n    ]);\n\nvar $$default = Cx.cx([\n      badge,\n      \"bg-gray-100\",\n      \"text-gray-700\"\n    ]);\n\nvar Project = {\n  colocation: colocation,\n  internet: internet,\n  cloud: cloud,\n  network: network,\n  bareMetal: bareMetal,\n  $$default: $$default\n};\n\nvar admin = Cx.cx([\n      badge,\n      \"bg-blue-100\",\n      \"text-blue-700\"\n    ]);\n\nvar agent = Cx.cx([\n      badge,\n      \"bg-red-100\",\n      \"text-red-600\"\n    ]);\n\nvar provider = Cx.cx([\n      badge,\n      \"bg-green-100\",\n      \"text-green-600\"\n    ]);\n\nvar user = Cx.cx([\n      badge,\n      \"bg-teal-100\",\n      \"text-teal-700\"\n    ]);\n\nvar concierge = Cx.cx([\n      badge,\n      \"bg-purple-100\",\n      \"text-purple-900\"\n    ]);\n\nvar visitor = Cx.cx([\n      badge,\n      \"bg-gray-100\",\n      \"text-gray-700\"\n    ]);\n\nvar Role = {\n  admin: admin,\n  agent: agent,\n  provider: provider,\n  user: user,\n  concierge: concierge,\n  visitor: visitor\n};\n\nvar User = {\n  Role: Role\n};\n\nvar disabled = \"opacity-25\";\n\nexport {\n  badge ,\n  gray ,\n  red ,\n  green ,\n  blue ,\n  yellow ,\n  purple ,\n  xs ,\n  small ,\n  medium ,\n  large ,\n  disabled ,\n  Project ,\n  User ,\n}\n/* badge Not a pure module */\n","// extracted by mini-css-extract-plugin\nexport var badge = \"Badge__badge__EWW0H\";\nexport var colorBareMetal = \"Badge__colorBareMetal__e9uPF\";\nexport var colorCloud = \"Badge__colorCloud__ovF58\";\nexport var colorColocation = \"Badge__colorColocation__mfyy3\";\nexport var colorDefault = \"Badge__colorDefault__EtjfF\";\nexport var colorInternet = \"Badge__colorInternet__MnO94\";\nexport var colorNetwork = \"Badge__colorNetwork___y2ys\";\nexport var column = \"Badge__column__YqGMN\";\nexport var flex = \"Badge__flex__YI6i1\";\nexport var flexColumn = \"Badge__flexColumn__ZGauC\";\nexport var gap1 = \"Badge__gap1__Iv5Me\";\nexport var gap2 = \"Badge__gap2__LGpeY\";\nexport var gap3 = \"Badge__gap3__NjlH8\";\nexport var gap4 = \"Badge__gap4__HRtbm\";\nexport var gap5 = \"Badge__gap5__WuXgH\";\nexport var row = \"Badge__row__sRcbE\";\nexport var wrapper = \"Badge__wrapper__BnseJ\";","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\nimport * as Role from \"../../../models/Role.res.js\";\nimport * as BadgeCss from \"./BadgeCss.res.js\";\nimport * as BadgeScss from \"./Badge.scss\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\n\nvar css = BadgeScss;\n\nfunction Badge(props) {\n  var __className = props.className;\n  var className = __className !== undefined ? __className : \"\";\n  var tmp;\n  switch (props.badgeType) {\n    case \"Colocation\" :\n        tmp = css.colorColocation;\n        break;\n    case \"Cloud\" :\n        tmp = css.colorCloud;\n        break;\n    case \"Internet\" :\n        tmp = css.colorInternet;\n        break;\n    case \"Network\" :\n        tmp = css.colorNetwork;\n        break;\n    case \"BareMetal\" :\n        tmp = css.colorBareMetal;\n        break;\n    case \"Default\" :\n        tmp = css.colorDefault;\n        break;\n    \n  }\n  return JsxRuntime.jsx(\"div\", {\n              children: JsxRuntime.jsx(\"button\", {\n                    children: props.children,\n                    className: Cx.cx([\n                          css.badge,\n                          tmp,\n                          className\n                        ]),\n                    disabled: true\n                  }),\n              className: css.wrapper\n            });\n}\n\nfunction Badge$Span(props) {\n  var __className = props.className;\n  var __size = props.size;\n  var __enabled = props.enabled;\n  var __id = props.id;\n  var id = __id !== undefined ? __id : \"\";\n  var enabled = __enabled !== undefined ? __enabled : true;\n  var size = __size !== undefined ? __size : \"XS\";\n  var className = __className !== undefined ? __className : \"\";\n  var tmp;\n  switch (props.color) {\n    case \"Gray\" :\n        tmp = BadgeCss.gray;\n        break;\n    case \"Red\" :\n        tmp = BadgeCss.red;\n        break;\n    case \"Green\" :\n        tmp = BadgeCss.green;\n        break;\n    case \"Blue\" :\n        tmp = BadgeCss.blue;\n        break;\n    case \"Yellow\" :\n        tmp = BadgeCss.yellow;\n        break;\n    case \"Purple\" :\n        tmp = BadgeCss.purple;\n        break;\n    \n  }\n  var tmp$1;\n  switch (size) {\n    case \"XS\" :\n        tmp$1 = BadgeCss.xs;\n        break;\n    case \"SM\" :\n        tmp$1 = BadgeCss.small;\n        break;\n    case \"MD\" :\n        tmp$1 = BadgeCss.medium;\n        break;\n    case \"LG\" :\n        tmp$1 = BadgeCss.large;\n        break;\n    \n  }\n  return JsxRuntime.jsx(\"span\", {\n              children: props.children,\n              className: Cx.cx([\n                    tmp,\n                    tmp$1,\n                    enabled ? \"\" : BadgeCss.disabled,\n                    className\n                  ]),\n              id: id,\n              onClick: props.onClick\n            });\n}\n\nvar Span = {\n  Css: undefined,\n  make: Badge$Span\n};\n\nfunction Badge$Project(props) {\n  var __className = props.className;\n  var __size = props.size;\n  var __id = props.id;\n  var id = __id !== undefined ? __id : \"\";\n  var size = __size !== undefined ? __size : \"XS\";\n  var className = __className !== undefined ? __className : \"\";\n  var tmp;\n  switch (props.category) {\n    case \"Colocation\" :\n        tmp = BadgeCss.Project.colocation;\n        break;\n    case \"Cloud\" :\n        tmp = BadgeCss.Project.cloud;\n        break;\n    case \"Internet\" :\n        tmp = BadgeCss.Project.internet;\n        break;\n    case \"Network\" :\n        tmp = BadgeCss.Project.network;\n        break;\n    case \"BareMetal\" :\n        tmp = BadgeCss.Project.bareMetal;\n        break;\n    \n  }\n  var tmp$1;\n  switch (size) {\n    case \"XS\" :\n        tmp$1 = BadgeCss.xs;\n        break;\n    case \"SM\" :\n        tmp$1 = BadgeCss.small;\n        break;\n    case \"MD\" :\n        tmp$1 = BadgeCss.medium;\n        break;\n    case \"LG\" :\n        tmp$1 = BadgeCss.large;\n        break;\n    \n  }\n  return JsxRuntime.jsx(\"span\", {\n              children: props.children,\n              className: Cx.cx([\n                    tmp,\n                    tmp$1,\n                    className\n                  ]),\n              id: id\n            });\n}\n\nvar Project = {\n  Css: undefined,\n  make: Badge$Project\n};\n\nfunction Badge$User$Role(props) {\n  var __className = props.className;\n  var __size = props.size;\n  var role = props.role;\n  var __id = props.id;\n  var id = __id !== undefined ? __id : \"\";\n  var size = __size !== undefined ? __size : \"XS\";\n  var className = __className !== undefined ? __className : \"\";\n  var tmp;\n  switch (role) {\n    case \"Admin\" :\n        tmp = BadgeCss.User.Role.admin;\n        break;\n    case \"Provider\" :\n        tmp = BadgeCss.User.Role.provider;\n        break;\n    case \"User\" :\n        tmp = BadgeCss.User.Role.user;\n        break;\n    case \"Visitor\" :\n        tmp = BadgeCss.User.Role.visitor;\n        break;\n    case \"Concierge\" :\n        tmp = BadgeCss.User.Role.concierge;\n        break;\n    case \"Agent\" :\n        tmp = BadgeCss.User.Role.agent;\n        break;\n    \n  }\n  var tmp$1;\n  switch (size) {\n    case \"XS\" :\n        tmp$1 = BadgeCss.xs;\n        break;\n    case \"SM\" :\n        tmp$1 = BadgeCss.small;\n        break;\n    case \"MD\" :\n        tmp$1 = BadgeCss.medium;\n        break;\n    case \"LG\" :\n        tmp$1 = BadgeCss.large;\n        break;\n    \n  }\n  return JsxRuntime.jsx(\"span\", {\n              children: Role.toCapital(role),\n              className: Cx.cx([\n                    tmp,\n                    tmp$1,\n                    className\n                  ]),\n              id: id\n            });\n}\n\nvar Role$1 = {\n  Css: undefined,\n  make: Badge$User$Role\n};\n\nvar User = {\n  Role: Role$1\n};\n\nvar make = Badge;\n\nexport {\n  css ,\n  make ,\n  Span ,\n  Project ,\n  User ,\n}\n/* css Not a pure module */\n","// extracted by mini-css-extract-plugin\nexport var active = \"Pagination__active__EK2e1\";\nexport var column = \"Pagination__column__pRq2C\";\nexport var disabled = \"Pagination__disabled__FbUC6\";\nexport var flex = \"Pagination__flex__DwHSX\";\nexport var flexColumn = \"Pagination__flexColumn__Z4xK0\";\nexport var gap1 = \"Pagination__gap1__aoXRh\";\nexport var gap2 = \"Pagination__gap2__EJjiH\";\nexport var gap3 = \"Pagination__gap3__HT6F_\";\nexport var gap4 = \"Pagination__gap4__AyBux\";\nexport var gap5 = \"Pagination__gap5__tImuc\";\nexport var pageItem = \"Pagination__pageItem__NsQSw\";\nexport var row = \"Pagination__row__lF2Xq\";\nexport var symbol = \"Pagination__symbol__KHv6r\";","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\nimport * as Caml from \"rescript/lib/es6/caml.js\";\nimport * as Char from \"../../../libs/Char.res.js\";\nimport * as Control from \"../Control/Control.res.js\";\nimport * as Caml_obj from \"rescript/lib/es6/caml_obj.js\";\nimport * as Belt_List from \"rescript/lib/es6/belt_List.js\";\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport * as PaginationScss from \"./Pagination.scss\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\n\nvar css = PaginationScss;\n\nfunction range(start, end_) {\n  if (start > end_) {\n    return /* [] */0;\n  } else if (start === end_) {\n    return {\n            hd: {\n              TAG: \"Page\",\n              _0: start\n            },\n            tl: /* [] */0\n          };\n  } else {\n    return {\n            hd: {\n              TAG: \"Page\",\n              _0: start\n            },\n            tl: range(start + 1 | 0, end_)\n          };\n  }\n}\n\nfunction generatePageNumbers(currentPage, totalPages) {\n  var startPage = Caml.int_max(2, currentPage - 1 | 0);\n  var endPage = Caml.int_min(totalPages - 1 | 0, currentPage + 1 | 0);\n  var pages = range(startPage, endPage);\n  var hasLeftSpill = startPage > 2;\n  var hasRightSpill = (totalPages - endPage | 0) > 1;\n  if (hasLeftSpill) {\n    if (hasRightSpill) {\n      return Belt_List.concatMany([\n                  {\n                    hd: \"LeftArrow\",\n                    tl: {\n                      hd: {\n                        TAG: \"Page\",\n                        _0: 1\n                      },\n                      tl: {\n                        hd: \"Ellipsis\",\n                        tl: /* [] */0\n                      }\n                    }\n                  },\n                  pages,\n                  {\n                    hd: \"Ellipsis\",\n                    tl: {\n                      hd: {\n                        TAG: \"Page\",\n                        _0: totalPages\n                      },\n                      tl: {\n                        hd: \"RightArrow\",\n                        tl: /* [] */0\n                      }\n                    }\n                  }\n                ]);\n    } else {\n      return Belt_List.concat({\n                  hd: \"LeftArrow\",\n                  tl: {\n                    hd: {\n                      TAG: \"Page\",\n                      _0: 1\n                    },\n                    tl: {\n                      hd: \"Ellipsis\",\n                      tl: /* [] */0\n                    }\n                  }\n                }, {\n                  hd: {\n                    TAG: \"Page\",\n                    _0: totalPages\n                  },\n                  tl: {\n                    hd: \"RightArrow\",\n                    tl: /* [] */0\n                  }\n                });\n    }\n  } else if (hasRightSpill) {\n    return Belt_List.concat({\n                hd: \"LeftArrow\",\n                tl: {\n                  hd: {\n                    TAG: \"Page\",\n                    _0: 1\n                  },\n                  tl: /* [] */0\n                }\n              }, {\n                hd: \"Ellipsis\",\n                tl: {\n                  hd: {\n                    TAG: \"Page\",\n                    _0: totalPages\n                  },\n                  tl: {\n                    hd: \"RightArrow\",\n                    tl: /* [] */0\n                  }\n                }\n              });\n  } else {\n    return Belt_List.concatMany([\n                {\n                  hd: \"LeftArrow\",\n                  tl: /* [] */0\n                },\n                range(1, totalPages),\n                {\n                  hd: \"RightArrow\",\n                  tl: /* [] */0\n                }\n              ]);\n  }\n}\n\nfunction isSpecialPage(pageNumber, specialPages) {\n  if (specialPages !== undefined) {\n    return Belt_Array.some(specialPages, (function (page) {\n                  return Caml_obj.equal(page, pageNumber);\n                }));\n  } else {\n    return false;\n  }\n}\n\nfunction Pagination(props) {\n  var __specialClassName = props.specialClassName;\n  var specialPages = props.specialPages;\n  var onPageClick = props.onPageClick;\n  var totalPages = props.totalPages;\n  var currentPage = props.currentPage;\n  var specialClassName = __specialClassName !== undefined ? __specialClassName : \"\";\n  var pageNumbers = generatePageNumbers(currentPage, totalPages);\n  return JsxRuntime.jsx(\"div\", {\n              children: JsxRuntime.jsx(\"nav\", {\n                    children: Belt_List.toArray(Belt_List.mapWithIndex(pageNumbers, (function (index, pageNumber) {\n                                if (typeof pageNumber !== \"object\") {\n                                  switch (pageNumber) {\n                                    case \"Ellipsis\" :\n                                        return JsxRuntime.jsx(Control.make, {\n                                                    className: Cx.cx([\n                                                          css.pageItem,\n                                                          css.disabled,\n                                                          css.symbol\n                                                        ]),\n                                                    children: \"...\"\n                                                  }, \"pagination\" + String(index));\n                                    case \"LeftArrow\" :\n                                        return JsxRuntime.jsx(Control.make, {\n                                                    className: Cx.cx([\n                                                          css.pageItem,\n                                                          currentPage === 1 ? css.disabled : \"\",\n                                                          css.symbol\n                                                        ]),\n                                                    onClick: (function (param) {\n                                                        onPageClick(currentPage - 1 | 0);\n                                                      }),\n                                                    children: JsxRuntime.jsx(Char.LeftArrow.make, {})\n                                                  }, \"pagination\" + String(index));\n                                    case \"RightArrow\" :\n                                        return JsxRuntime.jsx(Control.make, {\n                                                    className: Cx.cx([\n                                                          css.pageItem,\n                                                          currentPage === totalPages ? css.disabled : \"\",\n                                                          css.symbol\n                                                        ]),\n                                                    onClick: (function (param) {\n                                                        onPageClick(currentPage + 1 | 0);\n                                                      }),\n                                                    children: JsxRuntime.jsx(Char.RightArrow.make, {})\n                                                  }, \"pagination\" + String(index));\n                                    \n                                  }\n                                } else {\n                                  var number = pageNumber._0;\n                                  var tmp;\n                                  tmp = typeof pageNumber !== \"object\" || pageNumber._0 !== currentPage ? \"\" : css.active;\n                                  return JsxRuntime.jsx(Control.make, {\n                                              className: Cx.cx([\n                                                    css.pageItem,\n                                                    tmp,\n                                                    isSpecialPage(number, specialPages) ? specialClassName : \"\"\n                                                  ]),\n                                              onClick: (function (param) {\n                                                  onPageClick(number);\n                                                }),\n                                              children: String(number)\n                                            }, \"pagination\" + String(index));\n                                }\n                              })))\n                  }),\n              className: props.className\n            });\n}\n\nvar make = Pagination;\n\nexport {\n  css ,\n  range ,\n  generatePageNumbers ,\n  isSpecialPage ,\n  make ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Icon from \"../components/Icon/Icon.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\n\nfunction IconDownload(props) {\n  var __title = props.title;\n  var title = __title !== undefined ? __title : \"Download\";\n  return JsxRuntime.jsx(Icon.make, {\n              title: title,\n              size: props.size,\n              className: props.className,\n              children: JsxRuntime.jsx(\"g\", {\n                    children: JsxRuntime.jsx(\"g\", {\n                          children: JsxRuntime.jsx(\"path\", {\n                                d: \"M2,6 L4,6 L4,16 L16,16 L16,6 L18,6 L18,17 C18,17.5522847 17.5522847,18 17,18 L3,18 C2.44771525,18 2,17.5522847 2,17 L2,6 Z M9,2 L11,2 L11,11.5 L12.75,9.75 L14,11 L10,15 L6,11 L7.25,9.75 L9,11.5 L9,2 Z\"\n                              }),\n                          fill: Icon.mapColor(props.color),\n                          fillRule: \"nonzero\",\n                          transform: \"translate(-2.000000, -2.000000)\"\n                        }),\n                    fill: \"none\",\n                    fillRule: \"evenodd\",\n                    stroke: \"none\",\n                    strokeWidth: \"1\"\n                  })\n            });\n}\n\nvar make = IconDownload;\n\nexport {\n  make ,\n}\n/* Icon Not a pure module */\n"],"names":["safeMakeEvent","eventName","Event","$$event","document","createEvent","initEvent","pathParse","str","raw","raw$1","length","match$1","raw$2","a","item","_i","_res","res","i","hd","tl","path","serverUrlString","param","match","window","undefined","location","pathname","hash","$$window","searchParse","search","push","history","pushState","dispatchEvent","replace","replaceState","url","useUrl","serverUrl","setUrl","url$1","watcherId","callback","watcherID","addEventListener","watchUrl","newUrl","b","_aList","_bList","bList","aList","urlNotEqual","removeEventListener","buttonContainer","column","container","contentWrapper","downloadIcon","filters","flex","flexColumn","gap1","gap2","gap3","gap4","gap5","heading","newProjectMenu","newProjectMenuItem","newProjectMenuItemControl","noResults","pagination","popoverBody","popoverRow","popoverTrigger","projectsCount","row","sortAndCount","sortSelection","title","continueButton","deleteButton","draftButtonsContainer","draftMessage","draftProjectItem","finalizedMessage","finalizedProjectItem","inactiveMessage","inactiveProjectItem","modalMessageButtons","modalMessageContainer","modalMessageOverlay","modalMessageText","productTag","projectDescription","projectInfo","projectItem","projectItemContainer","projectLabel","projectName","projectTitle","projectUser","projectUserAvatar","projectUserText","proposalLabel","reviewMessage","reviewProjectItem","activeProposals","buttonsContainer","fakeLink","largeHeight","pillTitle","popoverBodyActions","popoverBodyActionsAdmin","popoverBodyPositionAdmin","popoverButton","popoverIconActions","popoverProjectActions","projectActions","projectLocationAndProviders","projectLocations","projectProposalDates","projectProviderAdminControls","projectProviderLogo","projectStatusBadge","projectStatusControl","projectStatusFinalized","projectStatusInactive","projectUserControls","proposalDate","proposalDateContainer","proposalDropdownTrigger","proposalStatus","proposalsButton","providerDropdown","smallHeight","css","UserProjects_List_ControlsScss","make","props","tmp","tmp$1","tmp$2","tmp$4","updateProjectStatus","project","React","setDeleteModalVisibility","TAG","totalLocations","data","totalLocations$1","totalProviders","totalProviders$1","tmp$3","totalProposals","projectId","id","userRole","status","JsxRuntime","children","Control","className","onClick","Button","size","color","$$Promise","Api","x","SentryLogger","rootModule","subModulePath","value","fullPath","reload","String","Cx","Belt_Option","href","Routes_Project","index","tmp$5","tmp$6","category","projectId$1","exit","Toggle","on","onChange","projectStatus","Popover","IconMenu","position","_0","Url","ProjectService","__title","Icon","height","width","rx","y","fill","fillRule","reducer","state","action","providerId","providers","provider","Caml_option","input","message","fetchProviderApiStatus","preparingProposalApiStatus","close","Provider","NoBidInput","empty","dispatch","sendSetPreparingStatus","P","description","label","Textarea","rows","placeholder","init","target","field","id$1","Belt_Array","Caml_obj","providerLogo","src","logo","name","option","logoNamePair","Dropdown","dropdownTrigger","iconSize","iconColor","dropdownBody","ID","dropdownBodyRow","match$3","match$4","match$6","match$7","disabled","visuallyDisabled","sendButton","uniqueProvider","modalOverlay","closeOverlayButton","IconClose","errors","errorContainer","buttons","modalContents","modal","modalContainer","isNoBidModalShown","isPreparingProposalModalShown","projectData","total","match$2","canSendProposals","$$new","margin","buttonClassName","IconPause","Project","toString","A","link","IconOk","NoBidModal","PreparingProposalModal","setBidModalVisibility","setPreparingProposalModalVisibility","details","proposalDetails","ProjectProposalStatusDropdown","proposal","userViewContext","updateProposalStatus","visibility","$$Date","format","sentAt","expiresAt","UserProjects_List_ItemScss","imageUrl","publicId","Cloudinary","build","projectUrl","redirectUrl","defaultTitle","Badge","badgeType","Format","startDate","businessName","createdAt","statusMessage","endDate","tmp$7","endDate$1","startDate$1","category$1","contact","tmp$9","exit$1","contact$1","contact$2","tmp$8","image","IconUserAvatar","jobTitle","fullName","companyName","tmp$10","exit$2","UserProjects_List_ControlsForUser","UserProjects_List_ControlsForProvider","UserProjects_List_ControlsForAdmin","projectDates","UserProjectsScss","projects","UserProjects_List_Item","projectsWrapper","Pagination","currentPage","totalPages","onPageClick","dropdownBodyHeading","searchFieldInput","searchIcon","UserProjects_List_FiltersScss","update","query","SearchField","inputClassName","iconClassName","providerIds","statuses","sortBy","categories","statusList","withButton","idx","__x","Checkbox","checked","Js_array","statuses$1","statusFilter","categoryList","categories$1","toLabel","categoryFilter","providerIds$1","totalProjects","ProjectTile","_1","$eq","proposalsBreakdown","providerName","isNotOnlyProviderMember","isConcierge","RescriptReactRouter","FetchProjectsRequest","AdminTopNavbar","selectedCategory","isAdmin","ConciergeTopNavbar","TopNavbar","mobile","tablet","IconDownload","variant","NAME","VAL","IconSelect","sorting","UserProjects_List","pageNum","UserProjects_List_Input","UserProjects_List_Filter_Provider","UserProjects_List_Filter_Status","UserProjects_List_Filter_Category","$$default","viewContext","railsContext","searchParams","railsContext$1","RailsContext","projects$1","Belt_Result","Json_Decode$JsonCombinators","ProviderAsFilter","filters$1","UserProjects_List_Filter_Data","fromJs","ProjectsViewContext","isConcierge$1","isNotOnlyProviderMember$1","UserProjects","_ref","context","_objectWithoutProperties","_excluded","Object","assign","mdash","times","Middot","style","padding","RightArrow","LeftArrow","transform","RightCaret","Ampersand","js","required","badge","gray","red","green","blue","yellow","purple","xs","small","medium","large","colocation","internet","cloud","network","bareMetal","User","Role","admin","agent","user","concierge","visitor","colorBareMetal","colorCloud","colorColocation","colorDefault","colorInternet","colorNetwork","wrapper","BadgeScss","Span","Css","__className","__size","__enabled","enabled","__id","BadgeCss","role","active","pageItem","symbol","PaginationScss","range","start","end_","isSpecialPage","pageNumber","specialPages","page","__specialClassName","specialClassName","pageNumbers","startPage","Caml","endPage","pages","hasRightSpill","Belt_List","generatePageNumbers","number","Char","d","stroke","strokeWidth"],"sourceRoot":""}