{"version":3,"file":"js/rescript-bundles-user-dashboard-projects-user-colocation-rfp-project-40697278151a579f7dff.chunk.js","mappings":"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","sources":["webpack://datacenters/./client/app/bundles/Client/common/global.js","webpack://datacenters/./client/app/rescript/bindings/GoogleMap.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-colocation-rfp-project/UserColocationRfpProject.scss?9170","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-colocation-rfp-project/UserColocationRfpProject_Details.scss?48f3","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-colocation-rfp-project/UserColocationRfpProject_Details_Locations.scss?75ff","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-colocation-rfp-project/UserColocationRfpProject_Details_Locations_Map.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-colocation-rfp-project/UserColocationRfpProject_Details_Locations_ProviderDataCentersLocationPanel.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-colocation-rfp-project/UserColocationRfpProject_Details_Locations.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-colocation-rfp-project/UserColocationRfpProject_Details_RequiredProducts.scss?f9bb","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-colocation-rfp-project/UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-colocation-rfp-project/UserColocationRfpProject_Details_RequiredProducts_RackDetail.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-colocation-rfp-project/UserColocationRfpProject_Details_RequiredProducts_CrossConnectDetail.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-colocation-rfp-project/UserColocationRfpProject_Details_RequiredProducts_CloudDirectConnectDetail.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-colocation-rfp-project/UserColocationRfpProject_Details_RequiredProducts_InternetConnectivityDetail.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-colocation-rfp-project/UserColocationRfpProject_Details_RequiredProducts_ProductPanel.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-colocation-rfp-project/UserColocationRfpProject_Details.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-colocation-rfp-project/UserColocationRfpProject.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-colocation-rfp-project/UserColocationRfpProject__JsBridge.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/user-colocation-rfp-project/index.js","webpack://datacenters/./client/app/rescript/models/ColocationRfpProjectId.res.js","webpack://datacenters/./client/app/rescript/models/ColocationRfpProject.res.js","webpack://datacenters/./client/app/rescript/styleguide/components/GoogleMap/GoogleMapWithBounds.res.js","webpack://datacenters/./client/app/rescript/styleguide/icons/IconSorting.res.js","webpack://datacenters/./client/app/rescript/styleguide/styles/GoogleMapStyles.res.js"],"sourcesContent":["export const RecaptchaSitekey = '6LfC-FYUAAAAAE7ZjgpKKxqsgJW72n5gskwIx2oe';\n\nexport const DCLinkedInURL = 'https://www.linkedin.com/company/3567716/';\nexport const DCTwitterURL = 'https://twitter.com/datacenterscom?lang=en';\nexport const DCYouTubeURL = 'https://www.youtube.com/user/datacenterscom';\nexport const DCFacebookURL = 'https://www.facebook.com/datacenters/';\n\nexport const DCContactNumber = '+1 833-471-7100';\nexport const DCContactNumberHRef = 'tel:+1-833-471-7100';\n\nexport const GoogleMapAPI = process.env.GOOGLE_MAPS_API;\nexport const GoogleMapLibraries = ['drawing'];\nexport const ImageErrorPlaceholder = CloudinaryCloudName =>\n  `https://res.cloudinary.com/${CloudinaryCloudName}/image-not-found.png`;\nexport const VideoUploadLimit = 6;\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport * as Cloudinary from \"../libs/Cloudinary.res.js\";\nimport * as Belt_Option from \"rescript/lib/es6/belt_Option.js\";\nimport * as GoogleMapStyles from \"../styleguide/styles/GoogleMapStyles.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as Api from \"@react-google-maps/api\";\nimport * as Json_Encode$JsonCombinators from \"@glennsl/rescript-json-combinators/src/Json_Encode.res.js\";\n\nfunction fromLocation($$location) {\n  return {\n          lat: $$location.latitude,\n          lng: $$location.longitude\n        };\n}\n\nfunction fromLocationForMap($$location) {\n  return {\n          lat: $$location.latitude,\n          lng: $$location.longitude\n        };\n}\n\nfunction fromPreloadedSearchLocationForMap(preloadedSearchLocation) {\n  return {\n          lat: preloadedSearchLocation.latitude,\n          lng: preloadedSearchLocation.longitude\n        };\n}\n\nfunction fromLocationShowForMap($$location) {\n  return {\n          lat: $$location.latitude,\n          lng: $$location.longitude\n        };\n}\n\nfunction fromLocationForProject($$location) {\n  return {\n          lat: $$location.latitude,\n          lng: $$location.longitude\n        };\n}\n\nfunction fromLocationForProjectsMap($$location) {\n  return {\n          lat: $$location.latitude,\n          lng: $$location.longitude\n        };\n}\n\nfunction toString(coordinates) {\n  return String(coordinates.lat) + (\";\" + String(coordinates.lng));\n}\n\nvar Coordinates = {\n  fromLocation: fromLocation,\n  fromLocationForMap: fromLocationForMap,\n  fromPreloadedSearchLocationForMap: fromPreloadedSearchLocationForMap,\n  fromLocationShowForMap: fromLocationShowForMap,\n  fromLocationForProject: fromLocationForProject,\n  fromLocationForProjectsMap: fromLocationForProjectsMap,\n  toString: toString\n};\n\nvar LatLng = {};\n\nvar LatLngBounds = {};\n\nfunction toJs(options) {\n  return {\n          position: options.position\n        };\n}\n\nvar ZoomControlOptions = {\n  toJs: toJs\n};\n\nfunction toJs$1(options) {\n  return {\n          mapTypeControl: options.mapTypeControl,\n          zoomControl: options.zoomControl,\n          zoomControlOptions: toJs(options.zoomControlOptions),\n          streetViewControl: options.streetViewControl,\n          fullscreenControl: options.fullscreenControl\n        };\n}\n\nvar Options = {\n  toJs: toJs$1\n};\n\nvar addStyledMap = (function(map, name, mapType){map.mapTypes.set(name, mapType)});\n\nfunction setStyle(map, style) {\n  var name = \"DCMapStyled\";\n  var mapType = new (google.maps.StyledMapType)(style, {\n        name: name\n      });\n  addStyledMap(map, name, mapType);\n  return map.setMapTypeId(name);\n}\n\nvar $$Map = {\n  addStyledMap: addStyledMap,\n  setStyle: setStyle\n};\n\nfunction setStyle$1(map, style) {\n  if (Belt_Option.isSome(style)) {\n    return setStyle(map, GoogleMapStyles.toJs(Belt_Option.getExn(style)));\n  }\n  \n}\n\nfunction fitBounds(map, coordinates) {\n  if (coordinates === undefined) {\n    return ;\n  }\n  if (coordinates.length === 0) {\n    return map.setZoom(map.getZoom());\n  }\n  var bounds = new (google.maps.LatLngBounds)(undefined);\n  Belt_Array.forEach(coordinates, (function (coordinate) {\n          bounds.extend(new (google.maps.LatLng)(coordinate.lat, coordinate.lng));\n        }));\n  map.fitBounds(bounds);\n}\n\nfunction onLoad(map, zoom, style) {\n  if (!Belt_Option.isSome(zoom)) {\n    map.setZoom(2);\n  }\n  setStyle$1(map, style);\n}\n\nvar Helpers = {\n  setStyle: setStyle$1,\n  fitBounds: fitBounds,\n  onLoad: onLoad\n};\n\nvar JsComponent = {};\n\nfunction GoogleMap(props) {\n  var onLoad$1 = props.onLoad;\n  var mapContainerClassName = props.mapContainerClassName;\n  var options = props.options;\n  var style = props.style;\n  var center = props.center;\n  var zoom = props.zoom;\n  var jsProps = {\n    onLoad: (function (map) {\n        onLoad(map, zoom, style);\n        onLoad$1(map);\n      }),\n    children: props.children\n  };\n  if (Belt_Option.isSome(zoom)) {\n    jsProps.zoom = zoom;\n  }\n  if (Belt_Option.isSome(center)) {\n    jsProps.center = center;\n  }\n  if (Belt_Option.isSome(style)) {\n    jsProps.style = style;\n  }\n  if (Belt_Option.isSome(options)) {\n    jsProps.options = Belt_Option.map(options, toJs$1);\n  }\n  if (Belt_Option.isSome(mapContainerClassName)) {\n    jsProps.mapContainerClassName = mapContainerClassName;\n  }\n  return JsxRuntime.jsx(Api.GoogleMap, jsProps);\n}\n\nvar LoadScript = {};\n\nvar overlayPaneName = \"floatPane\";\n\nvar OverlayView = {\n  overlayPaneName: overlayPaneName\n};\n\nvar Clusterer = {};\n\nfunction toJs$2(icon) {\n  return {\n          url: icon.url,\n          size: new (google.maps.Size)(icon.size[0], icon.size[1]),\n          origin: new (google.maps.Point)(icon.origin[0], icon.origin[1]),\n          anchor: new (google.maps.Point)(icon.anchor[0], icon.anchor[1])\n        };\n}\n\nvar default_url = Cloudinary.imageUrl(\"f_auto,w_28,h_28/static/maps/marker-purple.png\");\n\nvar default_size = [\n  28,\n  28\n];\n\nvar default_origin = [\n  0,\n  0\n];\n\nvar default_anchor = [\n  14,\n  14\n];\n\nvar $$default = {\n  url: default_url,\n  size: default_size,\n  origin: default_origin,\n  anchor: default_anchor\n};\n\nvar disabled_url = Cloudinary.imageUrl(\"f_auto,w_28,h_28/static/maps/marker-grey.png\");\n\nvar disabled_size = [\n  28,\n  28\n];\n\nvar disabled_origin = [\n  0,\n  0\n];\n\nvar disabled_anchor = [\n  14,\n  14\n];\n\nvar disabled = {\n  url: disabled_url,\n  size: disabled_size,\n  origin: disabled_origin,\n  anchor: disabled_anchor\n};\n\nvar sponsored_url = Cloudinary.imageUrl(\"f_auto,w_28,h_28/static/maps/marker-orange.png\");\n\nvar sponsored_size = [\n  28,\n  28\n];\n\nvar sponsored_origin = [\n  0,\n  0\n];\n\nvar sponsored_anchor = [\n  14,\n  14\n];\n\nvar sponsored = {\n  url: sponsored_url,\n  size: sponsored_size,\n  origin: sponsored_origin,\n  anchor: sponsored_anchor\n};\n\nvar red_url = Cloudinary.imageUrl(\"f_auto,w_28,h_28/static/maps/marker-red.png\");\n\nvar red_size = [\n  28,\n  28\n];\n\nvar red_origin = [\n  0,\n  0\n];\n\nvar red_anchor = [\n  14,\n  14\n];\n\nvar red = {\n  url: red_url,\n  size: red_size,\n  origin: red_origin,\n  anchor: red_anchor\n};\n\nvar orange_url = Cloudinary.imageUrl(\"f_auto,w_28,h_28/static/maps/marker-orange-new.png\");\n\nvar orange_size = [\n  28,\n  28\n];\n\nvar orange_origin = [\n  0,\n  0\n];\n\nvar orange_anchor = [\n  14,\n  14\n];\n\nvar orange = {\n  url: orange_url,\n  size: orange_size,\n  origin: orange_origin,\n  anchor: orange_anchor\n};\n\nvar Icon = {\n  toJs: toJs$2,\n  $$default: $$default,\n  disabled: disabled,\n  sponsored: sponsored,\n  red: red,\n  orange: orange\n};\n\nvar JsComponent$1 = {};\n\nfunction GoogleMap$Marker(props) {\n  var noClustererRedraw = props.noClustererRedraw;\n  var clusterer = props.clusterer;\n  var icon = props.icon;\n  var jsProps = {\n    position: props.position,\n    onClick: props.onClick,\n    onLoad: props.onLoad,\n    children: props.children\n  };\n  if (Belt_Option.isSome(icon)) {\n    jsProps.icon = Belt_Option.map(icon, toJs$2);\n  }\n  if (Belt_Option.isSome(clusterer)) {\n    jsProps.clusterer = clusterer;\n  }\n  if (Belt_Option.isSome(noClustererRedraw)) {\n    jsProps.noClustererRedraw = noClustererRedraw;\n  }\n  return JsxRuntime.jsx(Api.Marker, jsProps);\n}\n\nvar Marker = {\n  Icon: Icon,\n  JsComponent: JsComponent$1,\n  make: GoogleMap$Marker\n};\n\nvar Cluster = {};\n\nvar sponsoredImageUrl = Cloudinary.imageUrl(\"f_auto,w_46,h_46/static/maps/cluster-sponsored-purple.png\");\n\nvar $$default$1 = [{\n    textColor: \"#ffffff\",\n    height: 46,\n    width: 46,\n    url: Cloudinary.imageUrl(\"f_auto,w_46,h_46/static/maps/cluster-purple.png\")\n  }];\n\nvar red$1 = [{\n    textColor: \"#ffffff\",\n    height: 46,\n    width: 46,\n    url: Cloudinary.imageUrl(\"f_auto,w_46,h_46/static/maps/cluster-red.png\")\n  }];\n\nvar orange$1 = [{\n    textColor: \"#ffffff\",\n    height: 46,\n    width: 46,\n    url: Cloudinary.imageUrl(\"f_auto,w_46,h_46/static/maps/cluster-orange.png\")\n  }];\n\nvar sponsored$1 = [{\n    textColor: \"#ffffff\",\n    height: 46,\n    width: 46,\n    url: sponsoredImageUrl\n  }];\n\nvar Style = {\n  $$default: $$default$1,\n  red: red$1,\n  orange: orange$1,\n  sponsored: sponsored$1\n};\n\nvar JsComponent$2 = {};\n\nfunction GoogleMap$MarkerClusterer(props) {\n  var __zoomOnClick = props.zoomOnClick;\n  var zoomOnClick = __zoomOnClick !== undefined ? __zoomOnClick : true;\n  return JsxRuntime.jsx(Api.MarkerClusterer, {\n              averageCenter: props.averageCenter,\n              enableRetinaIcons: props.enableRetinaIcons,\n              gridSize: props.gridSize,\n              minimumClusterSize: props.minimumClusterSize,\n              imagePath: props.imagePath,\n              styles: props.styles,\n              zoomOnClick: zoomOnClick,\n              onClick: props.onClick,\n              onClusteringEnd: props.onClusteringEnd,\n              children: props.children\n            });\n}\n\nvar MarkerClusterer = {\n  sponsoredImageUrl: sponsoredImageUrl,\n  Style: Style,\n  JsComponent: JsComponent$2,\n  make: GoogleMap$MarkerClusterer\n};\n\nfunction toJson(latLngBound) {\n  return Json_Encode$JsonCombinators.object([\n              [\n                \"north\",\n                latLngBound.north\n              ],\n              [\n                \"east\",\n                latLngBound.east\n              ],\n              [\n                \"south\",\n                latLngBound.south\n              ],\n              [\n                \"west\",\n                latLngBound.west\n              ]\n            ]);\n}\n\nvar LatLngBoundsLiteral = {\n  toJson: toJson\n};\n\nfunction toJson$1(circleBounds) {\n  return Json_Encode$JsonCombinators.object([\n              [\n                \"latitude\",\n                circleBounds.latitude\n              ],\n              [\n                \"longitude\",\n                circleBounds.longitude\n              ],\n              [\n                \"radius\",\n                circleBounds.radius\n              ]\n            ]);\n}\n\nvar CircleBounds = {\n  toJson: toJson$1\n};\n\nvar ControlOptions = {};\n\nfunction toJs$3(options) {\n  return {\n          draggable: options.draggable,\n          editable: options.editable,\n          fillColor: options.fillColor,\n          fillOpacity: options.fillOpacity,\n          strokeColor: options.strokeColor,\n          strokeOpacity: options.strokeOpacity,\n          strokeWeight: options.strokeWeight,\n          geodesic: true\n        };\n}\n\nvar OverlayOptions = {\n  toJs: toJs$3\n};\n\nfunction toJs$4(options) {\n  return {\n          drawingControl: options.drawingControl,\n          drawingControlOptions: options.drawingControlOptions,\n          rectangleOptions: toJs$3(options.overlayOptions),\n          circleOptions: toJs$3(options.overlayOptions),\n          polygonOptions: toJs$3(options.overlayOptions)\n        };\n}\n\nvar Options$1 = {\n  toJs: toJs$4\n};\n\nvar JsComponent$3 = {};\n\nfunction GoogleMap$DrawingManager(props) {\n  return JsxRuntime.jsx(Api.DrawingManager, {\n              drawingMode: props.drawingMode,\n              options: Belt_Option.map(props.options, toJs$4),\n              onRectangleComplete: props.onRectangleComplete,\n              onCircleComplete: props.onCircleComplete,\n              onPolygonComplete: props.onPolygonComplete,\n              children: props.children\n            });\n}\n\nvar DrawingManager = {\n  LatLngBoundsLiteral: LatLngBoundsLiteral,\n  CircleBounds: CircleBounds,\n  ControlOptions: ControlOptions,\n  OverlayOptions: OverlayOptions,\n  Options: Options$1,\n  JsComponent: JsComponent$3,\n  make: GoogleMap$DrawingManager\n};\n\nfunction getPixelPositionOffset(width, height) {\n  return {\n          x: width / -2.0,\n          y: height * -1.0 - 5.0\n        };\n}\n\nfunction panBox(overlayView, position, contentWidth, contentHeight) {\n  var map = overlayView.getMap();\n  var mapBounds = map.getBounds();\n  var offset = getPixelPositionOffset(contentWidth, contentHeight);\n  if (!mapBounds.contains(position)) {\n    map.setCenter(position);\n  }\n  var padding = {\n    top: contentHeight + 40.0,\n    bottom: offset.y + 40.0,\n    left: offset.x * -1.0 + 20.0,\n    right: contentWidth + offset.x + 20.0\n  };\n  return map.panToBounds(new (google.maps.LatLngBounds)(position), padding);\n}\n\nvar Helpers$1 = {\n  widthPadding: 20.0,\n  heightPadding: 40.0,\n  getPixelPositionOffset: getPixelPositionOffset,\n  panBox: panBox\n};\n\nfunction GoogleMap$InfoBox(props) {\n  var contentHeight = props.contentHeight;\n  var contentWidth = props.contentWidth;\n  var position = props.position;\n  return JsxRuntime.jsx(Api.OverlayView, {\n              position: position,\n              mapPaneName: overlayPaneName,\n              getPixelPositionOffset: getPixelPositionOffset,\n              onLoad: (function (overlayView) {\n                  panBox(overlayView, position, contentWidth, contentHeight);\n                }),\n              children: props.children\n            });\n}\n\nvar InfoBox = {\n  Helpers: Helpers$1,\n  make: GoogleMap$InfoBox\n};\n\nvar Options$2 = {};\n\nvar KmlLayer = {\n  Options: Options$2\n};\n\nvar make = GoogleMap;\n\nexport {\n  Coordinates ,\n  LatLng ,\n  LatLngBounds ,\n  ZoomControlOptions ,\n  Options ,\n  $$Map ,\n  Helpers ,\n  JsComponent ,\n  make ,\n  LoadScript ,\n  OverlayView ,\n  Clusterer ,\n  Marker ,\n  Cluster ,\n  MarkerClusterer ,\n  DrawingManager ,\n  InfoBox ,\n  KmlLayer ,\n}\n/* default Not a pure module */\n","// extracted by mini-css-extract-plugin\nexport var column = \"UserColocationRfpProject__column__bqpDq\";\nexport var container = \"UserColocationRfpProject__container__HjEcg\";\nexport var contentWrapper = \"UserColocationRfpProject__contentWrapper__SVM4s\";\nexport var flex = \"UserColocationRfpProject__flex__CwLof\";\nexport var flexColumn = \"UserColocationRfpProject__flexColumn__FtPn6\";\nexport var gap1 = \"UserColocationRfpProject__gap1__YJPfR\";\nexport var gap2 = \"UserColocationRfpProject__gap2__kWTyu\";\nexport var gap3 = \"UserColocationRfpProject__gap3__dezgR\";\nexport var gap4 = \"UserColocationRfpProject__gap4__JM7Q4\";\nexport var gap5 = \"UserColocationRfpProject__gap5__TT7z3\";\nexport var row = \"UserColocationRfpProject__row__AC70j\";","// extracted by mini-css-extract-plugin\nexport var colLeft = \"UserColocationRfpProject_Details__colLeft__hZla6\";\nexport var colRight = \"UserColocationRfpProject_Details__colRight__QSf4I\";\nexport var column = \"UserColocationRfpProject_Details__column__SQb8u\";\nexport var columnWrapper = \"UserColocationRfpProject_Details__columnWrapper__z3xRF\";\nexport var descriptionContent = \"UserColocationRfpProject_Details__descriptionContent__GiOwQ\";\nexport var descriptionHeading = \"UserColocationRfpProject_Details__descriptionHeading__EbLoH\";\nexport var flex = \"UserColocationRfpProject_Details__flex__dsVw7\";\nexport var flexColumn = \"UserColocationRfpProject_Details__flexColumn__z9BO5\";\nexport var gap1 = \"UserColocationRfpProject_Details__gap1__hPo6d\";\nexport var gap2 = \"UserColocationRfpProject_Details__gap2__x6vav\";\nexport var gap3 = \"UserColocationRfpProject_Details__gap3__Gmt5X\";\nexport var gap4 = \"UserColocationRfpProject_Details__gap4__OBcRp\";\nexport var gap5 = \"UserColocationRfpProject_Details__gap5__MeaTl\";\nexport var lastUpdated = \"UserColocationRfpProject_Details__lastUpdated__a0XsR\";\nexport var reviewStatusWarning = \"UserColocationRfpProject_Details__reviewStatusWarning__wIBlj\";\nexport var row = \"UserColocationRfpProject_Details__row__PLnvq\";","// extracted by mini-css-extract-plugin\nexport var column = \"UserColocationRfpProject_Details_Locations__column__zze3r\";\nexport var datacentersCountText = \"UserColocationRfpProject_Details_Locations__datacentersCountText__XTNrx\";\nexport var editButton = \"UserColocationRfpProject_Details_Locations__editButton__dhbuG\";\nexport var emptyProviders = \"UserColocationRfpProject_Details_Locations__emptyProviders__mUq6n\";\nexport var flex = \"UserColocationRfpProject_Details_Locations__flex__omA_X\";\nexport var flexColumn = \"UserColocationRfpProject_Details_Locations__flexColumn__Nb56Z\";\nexport var gap1 = \"UserColocationRfpProject_Details_Locations__gap1__He5Ol\";\nexport var gap2 = \"UserColocationRfpProject_Details_Locations__gap2__Tnl9z\";\nexport var gap3 = \"UserColocationRfpProject_Details_Locations__gap3__SqCa7\";\nexport var gap4 = \"UserColocationRfpProject_Details_Locations__gap4__wJvtd\";\nexport var gap5 = \"UserColocationRfpProject_Details_Locations__gap5__D1Zgk\";\nexport var headingContentWrapper = \"UserColocationRfpProject_Details_Locations__headingContentWrapper__ftniM\";\nexport var locationHeading = \"UserColocationRfpProject_Details_Locations__locationHeading__MWZiV\";\nexport var mapContainer = \"UserColocationRfpProject_Details_Locations__mapContainer__c5MdY\";\nexport var mapElement = \"UserColocationRfpProject_Details_Locations__mapElement__q_joi\";\nexport var providerDetailRow = \"UserColocationRfpProject_Details_Locations__providerDetailRow__vfmQe\";\nexport var providerImage = \"UserColocationRfpProject_Details_Locations__providerImage__P5NWq\";\nexport var providerName = \"UserColocationRfpProject_Details_Locations__providerName__JTDCE\";\nexport var providerPanel = \"UserColocationRfpProject_Details_Locations__providerPanel__BW_BW\";\nexport var providerPanelBody = \"UserColocationRfpProject_Details_Locations__providerPanelBody__vjulR\";\nexport var providerPanelHeadingContainer = \"UserColocationRfpProject_Details_Locations__providerPanelHeadingContainer__bST65\";\nexport var providerPanelImageAndNameWrapper = \"UserColocationRfpProject_Details_Locations__providerPanelImageAndNameWrapper__VLAS5\";\nexport var providerTable = \"UserColocationRfpProject_Details_Locations__providerTable__TCBTj\";\nexport var providerTableHead = \"UserColocationRfpProject_Details_Locations__providerTableHead__s9T8d\";\nexport var providerTableHeadingContainer = \"UserColocationRfpProject_Details_Locations__providerTableHeadingContainer__ht37d\";\nexport var providerTitle = \"UserColocationRfpProject_Details_Locations__providerTitle__J8qXW\";\nexport var providersWrapper = \"UserColocationRfpProject_Details_Locations__providersWrapper__h_QEX\";\nexport var quantityText = \"UserColocationRfpProject_Details_Locations__quantityText__MBofK\";\nexport var roleText = \"UserColocationRfpProject_Details_Locations__roleText__o0MlH\";\nexport var row = \"UserColocationRfpProject_Details_Locations__row__c2ei6\";","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as ID from \"../../../../libs/ID.res.js\";\nimport * as GoogleMap from \"../../../../bindings/GoogleMap.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 GoogleMapStyles from \"../../../../styleguide/styles/GoogleMapStyles.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as GoogleMapWithBounds from \"../../../../styleguide/components/GoogleMap/GoogleMapWithBounds.res.js\";\nimport * as Global from \"Client/common/global\";\nimport * as Api from \"@react-google-maps/api\";\nimport * as UserColocationRfpProject_Details_LocationsScss from \"./UserColocationRfpProject_Details_Locations.scss\";\n\nvar css = UserColocationRfpProject_Details_LocationsScss;\n\nfunction getBounds(locations) {\n  return Belt_Array.map(locations, (function ($$location) {\n                return GoogleMap.Coordinates.fromLocationForProject($$location);\n              }));\n}\n\nfunction UserColocationRfpProject_Details_Locations_Map(props) {\n  var serverSide = props.serverSide;\n  var locations = props.locations;\n  return JsxRuntime.jsx(Api.LoadScript, {\n              googleMapsApiKey: Global.GoogleMapAPI,\n              libraries: Global.GoogleMapLibraries,\n              children: JsxRuntime.jsx(\"div\", {\n                    children: JsxRuntime.jsx(GoogleMapWithBounds.make, {\n                          mapContainerClassName: css.mapElement,\n                          style: GoogleMapStyles.standard,\n                          options: {\n                            mapTypeControl: false,\n                            zoomControl: true,\n                            zoomControlOptions: {\n                              position: 5\n                            },\n                            streetViewControl: false,\n                            fullscreenControl: false\n                          },\n                          bounds: getBounds(locations),\n                          children: JsxRuntime.jsx(GoogleMap.MarkerClusterer.make, {\n                                averageCenter: true,\n                                enableRetinaIcons: true,\n                                gridSize: 60,\n                                minimumClusterSize: 3,\n                                styles: GoogleMap.MarkerClusterer.Style.$$default,\n                                children: (function (clusterer) {\n                                    return Belt_Array.map(locations, (function ($$location) {\n                                                  return JsxRuntime.jsx(GoogleMap.Marker.make, {\n                                                              position: {\n                                                                lat: $$location.latitude,\n                                                                lng: $$location.longitude\n                                                              },\n                                                              icon: serverSide ? undefined : GoogleMap.Marker.Icon.$$default,\n                                                              clusterer: Caml_option.some(clusterer)\n                                                            }, ID.toString($$location.id));\n                                                }));\n                                  })\n                              })\n                        }),\n                    className: css.mapContainer\n                  })\n            });\n}\n\nvar make = UserColocationRfpProject_Details_Locations_Map;\n\nexport {\n  css ,\n  getBounds ,\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 Caml from \"rescript/lib/es6/caml.js\";\nimport * as React from \"react\";\nimport * as Picture from \"../../../../styleguide/forms/Picture/Picture.res.js\";\nimport * as $$Location from \"../../../../models/Location.res.js\";\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport * as IconSorting from \"../../../../styleguide/icons/IconSorting.res.js\";\nimport * as Belt_SortArray from \"rescript/lib/es6/belt_SortArray.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as UserProjectDetailsPanel from \"../_components/UserProjectDetailsPanel/UserProjectDetailsPanel.res.js\";\nimport * as UserColocationRfpProject_Details_LocationsScss from \"./UserColocationRfpProject_Details_Locations.scss\";\n\nvar css = UserColocationRfpProject_Details_LocationsScss;\n\nfunction datacenterTextWithCountDistinction(x) {\n  if (x !== 1) {\n    return \" data centers\";\n  } else {\n    return \" data center\";\n  }\n}\n\nfunction UserColocationRfpProject_Details_Locations_ProviderDataCentersLocationPanel$PanelHeading(props) {\n  var dataCentersCount = props.dataCentersCount;\n  var providerName = props.providerName;\n  return JsxRuntime.jsxs(\"div\", {\n              children: [\n                JsxRuntime.jsxs(\"div\", {\n                      children: [\n                        JsxRuntime.jsx(\"img\", {\n                              className: css.providerImage,\n                              alt: providerName,\n                              src: props.providerImage\n                            }),\n                        JsxRuntime.jsx(\"h5\", {\n                              children: providerName,\n                              className: css.providerName\n                            })\n                      ],\n                      className: css.providerPanelImageAndNameWrapper\n                    }),\n                JsxRuntime.jsx(\"p\", {\n                      children: String(dataCentersCount) + datacenterTextWithCountDistinction(dataCentersCount),\n                      className: css.datacentersCountText\n                    })\n              ],\n              className: css.providerPanelHeadingContainer\n            });\n}\n\nvar PanelHeading = {\n  make: UserColocationRfpProject_Details_Locations_ProviderDataCentersLocationPanel$PanelHeading\n};\n\nfunction UserColocationRfpProject_Details_Locations_ProviderDataCentersLocationPanel$PanelBody(props) {\n  var toggleDirection = props.toggleDirection;\n  var sortDirection = props.sortDirection;\n  var sortedLocations = Belt_SortArray.stableSortBy(props.locations, (function (x1, x2) {\n          if (sortDirection === \"Desc\") {\n            return Caml.string_compare(x2.name, x1.name);\n          } else {\n            return Caml.string_compare(x1.name, x2.name);\n          }\n        }));\n  return JsxRuntime.jsxs(\"table\", {\n              children: [\n                JsxRuntime.jsxs(\"colgroup\", {\n                      children: [\n                        JsxRuntime.jsx(\"col\", {\n                              width: \"50%\"\n                            }),\n                        JsxRuntime.jsx(\"col\", {\n                              width: \"50%\"\n                            })\n                      ]\n                    }),\n                JsxRuntime.jsx(\"thead\", {\n                      children: JsxRuntime.jsxs(\"tr\", {\n                            children: [\n                              JsxRuntime.jsxs(\"td\", {\n                                    children: [\n                                      JsxRuntime.jsx(P.make, {\n                                            children: \"Title\"\n                                          }),\n                                      JsxRuntime.jsx(IconSorting.make, {\n                                            size: \"XS\",\n                                            direction: sortDirection\n                                          })\n                                    ],\n                                    className: css.providerTableHeadingContainer,\n                                    onClick: (function (param) {\n                                        toggleDirection();\n                                      })\n                                  }),\n                              JsxRuntime.jsx(\"td\", {\n                                    children: JsxRuntime.jsx(P.make, {\n                                          children: \"Address\"\n                                        }),\n                                    className: css.providerTableHeadingContainer\n                                  })\n                            ]\n                          }),\n                      className: css.providerTableHead\n                    }),\n                JsxRuntime.jsx(\"tbody\", {\n                      children: Belt_Array.map(sortedLocations, (function ($$location) {\n                              return JsxRuntime.jsxs(\"tr\", {\n                                          children: [\n                                            JsxRuntime.jsxs(\"td\", {\n                                                  children: [\n                                                    JsxRuntime.jsx(Picture.make, {\n                                                          src: $$location.image,\n                                                          large: [\n                                                            60,\n                                                            40\n                                                          ],\n                                                          fallbackSrc: $$Location.imageNotFoundUrl\n                                                        }),\n                                                    JsxRuntime.jsx(P.make, {\n                                                          children: JsxRuntime.jsx(A.make, {\n                                                                href: $$location.url,\n                                                                targetBlank: true,\n                                                                children: $$location.name\n                                                              })\n                                                        })\n                                                  ],\n                                                  className: css.providerTitle\n                                                }),\n                                            JsxRuntime.jsx(\"td\", {\n                                                  children: $$location.fullAddress\n                                                })\n                                          ],\n                                          className: css.providerDetailRow\n                                        }, $$location.name + $$location.fullAddress);\n                            }))\n                    })\n              ],\n              className: css.providerTable\n            });\n}\n\nvar PanelBody = {\n  make: UserColocationRfpProject_Details_Locations_ProviderDataCentersLocationPanel$PanelBody\n};\n\nfunction toggleDirection(x) {\n  if (x === \"Desc\") {\n    return \"Asc\";\n  } else {\n    return \"Desc\";\n  }\n}\n\nfunction UserColocationRfpProject_Details_Locations_ProviderDataCentersLocationPanel(props) {\n  var provider = props.provider;\n  var match = React.useReducer((function (state, action) {\n          return {\n                  sortDirection: toggleDirection(state.sortDirection)\n                };\n        }), {\n        sortDirection: \"Asc\"\n      });\n  var dispatch = match[1];\n  return JsxRuntime.jsx(UserProjectDetailsPanel.make, {\n              className: css.providerPanel,\n              bodyClassName: css.providerPanelBody,\n              heading: JsxRuntime.jsx(UserColocationRfpProject_Details_Locations_ProviderDataCentersLocationPanel$PanelHeading, {\n                    providerName: provider.name,\n                    providerImage: provider.providerImage,\n                    dataCentersCount: provider.locations.length\n                  }),\n              children: JsxRuntime.jsx(UserColocationRfpProject_Details_Locations_ProviderDataCentersLocationPanel$PanelBody, {\n                    locations: provider.locations,\n                    sortDirection: match[0].sortDirection,\n                    toggleDirection: (function () {\n                        dispatch(\"ToggleSortDirection\");\n                      })\n                  })\n            });\n}\n\nvar make = UserColocationRfpProject_Details_Locations_ProviderDataCentersLocationPanel;\n\nexport {\n  css ,\n  datacenterTextWithCountDistinction ,\n  PanelHeading ,\n  PanelBody ,\n  toggleDirection ,\n  make ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as P from \"../../../../styleguide/components/Paragraph/P.res.js\";\nimport * as Button from \"../../../../styleguide/components/Button/Button.res.js\";\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport * as IconBuilding from \"../../../../styleguide/icons/IconBuilding.res.js\";\nimport * as Routes_Project from \"../../../../routes/common/Routes_Project.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as UserColocationRfpProject_Details_Locations_Map from \"./UserColocationRfpProject_Details_Locations_Map.res.js\";\nimport * as UserColocationRfpProject_Details_LocationsScss from \"./UserColocationRfpProject_Details_Locations.scss\";\nimport * as UserColocationRfpProject_Details_Locations_ProviderDataCentersLocationPanel from \"./UserColocationRfpProject_Details_Locations_ProviderDataCentersLocationPanel.res.js\";\n\nvar css = UserColocationRfpProject_Details_LocationsScss;\n\nfunction providerTextWithCountDistinction(x) {\n  if (x !== 1) {\n    return \" providers\";\n  } else {\n    return \" provider\";\n  }\n}\n\nfunction getHeadingQuantityTextForUser(userRole, locations, providers) {\n  switch (userRole) {\n    case \"User\" :\n    case \"Agent\" :\n        break;\n    default:\n      return \"\";\n  }\n  return String(locations.length) + (\" from \" + (String(providers.length) + providerTextWithCountDistinction(providers.length)));\n}\n\nfunction UserColocationRfpProject_Details_Locations(props) {\n  var providers = props.providers;\n  var userRole = props.userRole;\n  var locations = props.locations;\n  var tmp;\n  var exit = 0;\n  switch (userRole) {\n    case \"User\" :\n    case \"Agent\" :\n        exit = 1;\n        break;\n    default:\n      tmp = null;\n  }\n  if (exit === 1) {\n    tmp = JsxRuntime.jsx(Button.AsLink.make, {\n          href: Routes_Project.Colocation.$$Location.update(props.projectId),\n          size: \"SM\",\n          color: \"Teal\",\n          ghost: true,\n          buttonClassName: css.editButton,\n          children: \"Edit Locations\"\n        });\n  }\n  var tmp$1;\n  switch (userRole) {\n    case \"Provider\" :\n        tmp$1 = \"The list of your locations requested by the project owner. \";\n        break;\n    case \"Visitor\" :\n        tmp$1 = \"\";\n        break;\n    case \"Admin\" :\n    case \"Concierge\" :\n        tmp$1 = \"The list of locations and providers requested by the project owner. Only locations from providers that have accepted registration are shown.\";\n        break;\n    case \"User\" :\n    case \"Agent\" :\n        tmp$1 = \"The list of providers that you requested. Providers may be added or removed at the discretion of Datacenters.com. Only locations from providers that have accepted to participate in this project are shown.\";\n        break;\n    \n  }\n  return JsxRuntime.jsxs(\"div\", {\n              children: [\n                JsxRuntime.jsxs(\"div\", {\n                      children: [\n                        JsxRuntime.jsxs(\"div\", {\n                              children: [\n                                JsxRuntime.jsx(\"h2\", {\n                                      children: \"Providers and Locations\",\n                                      className: css.locationHeading\n                                    }),\n                                JsxRuntime.jsx(\"p\", {\n                                      children: getHeadingQuantityTextForUser(userRole, locations, providers),\n                                      className: css.quantityText\n                                    })\n                              ]\n                            }),\n                        tmp\n                      ],\n                      className: css.headingContentWrapper\n                    }),\n                JsxRuntime.jsx(\"p\", {\n                      children: tmp$1,\n                      className: css.roleText\n                    }),\n                providers.length !== 0 ? JsxRuntime.jsxs(JsxRuntime.Fragment, {\n                        children: [\n                          JsxRuntime.jsx(UserColocationRfpProject_Details_Locations_Map.make, {\n                                locations: locations,\n                                serverSide: props.serverSide\n                              }),\n                          JsxRuntime.jsx(\"div\", {\n                                children: Belt_Array.map(providers, (function (provider) {\n                                        return JsxRuntime.jsx(UserColocationRfpProject_Details_Locations_ProviderDataCentersLocationPanel.make, {\n                                                    provider: provider\n                                                  }, provider.name + \"-panel\");\n                                      })),\n                                className: css.providersWrapper\n                              })\n                        ]\n                      }) : JsxRuntime.jsxs(\"div\", {\n                        children: [\n                          JsxRuntime.jsx(IconBuilding.make, {\n                                size: \"XXXXXL\",\n                                color: \"Teal\"\n                              }),\n                          JsxRuntime.jsx(P.make, {\n                                children: \"Providers are still reviewing this project and acceptance is pending.\"\n                              })\n                        ],\n                        className: css.emptyProviders\n                      })\n              ]\n            });\n}\n\nvar make = UserColocationRfpProject_Details_Locations;\n\nexport {\n  css ,\n  providerTextWithCountDistinction ,\n  getHeadingQuantityTextForUser ,\n  make ,\n}\n/* css Not a pure module */\n","// extracted by mini-css-extract-plugin\nexport var additionalNotes = \"UserColocationRfpProject_Details_RequiredProducts__additionalNotes__ocVIk\";\nexport var checkboxes = \"UserColocationRfpProject_Details_RequiredProducts__checkboxes__Uuwfw\";\nexport var checkboxesContainer = \"UserColocationRfpProject_Details_RequiredProducts__checkboxesContainer__Lctao\";\nexport var column = \"UserColocationRfpProject_Details_RequiredProducts__column__Ce2oO\";\nexport var descriptionHeading = \"UserColocationRfpProject_Details_RequiredProducts__descriptionHeading__IX38Y\";\nexport var flex = \"UserColocationRfpProject_Details_RequiredProducts__flex__Soidp\";\nexport var flexColumn = \"UserColocationRfpProject_Details_RequiredProducts__flexColumn__KOujA\";\nexport var gap1 = \"UserColocationRfpProject_Details_RequiredProducts__gap1__MxajN\";\nexport var gap2 = \"UserColocationRfpProject_Details_RequiredProducts__gap2__RZ2lo\";\nexport var gap3 = \"UserColocationRfpProject_Details_RequiredProducts__gap3__rPgEi\";\nexport var gap4 = \"UserColocationRfpProject_Details_RequiredProducts__gap4__kxrAG\";\nexport var gap5 = \"UserColocationRfpProject_Details_RequiredProducts__gap5__BPBw6\";\nexport var lightBackground = \"UserColocationRfpProject_Details_RequiredProducts__lightBackground__O7aGf\";\nexport var notesContainer = \"UserColocationRfpProject_Details_RequiredProducts__notesContainer__Lfa1_\";\nexport var panel = \"UserColocationRfpProject_Details_RequiredProducts__panel__Vo22F\";\nexport var panelBody = \"UserColocationRfpProject_Details_RequiredProducts__panelBody__z1sTz\";\nexport var panelHeading = \"UserColocationRfpProject_Details_RequiredProducts__panelHeading__oy6eY\";\nexport var productName = \"UserColocationRfpProject_Details_RequiredProducts__productName__lxrWW\";\nexport var productRow = \"UserColocationRfpProject_Details_RequiredProducts__productRow__dtTuz\";\nexport var productServiceLabel = \"UserColocationRfpProject_Details_RequiredProducts__productServiceLabel__C8Yl6\";\nexport var productServiceValue = \"UserColocationRfpProject_Details_RequiredProducts__productServiceValue__Ls_TS\";\nexport var productsServiceWrapper = \"UserColocationRfpProject_Details_RequiredProducts__productsServiceWrapper__u4Nbj\";\nexport var propertiesContainer = \"UserColocationRfpProject_Details_RequiredProducts__propertiesContainer__G5VNx\";\nexport var propertyLeft = \"UserColocationRfpProject_Details_RequiredProducts__propertyLeft__Nhl0N\";\nexport var propertyRight = \"UserColocationRfpProject_Details_RequiredProducts__propertyRight__IOCEv\";\nexport var row = \"UserColocationRfpProject_Details_RequiredProducts__row__WfESW\";\nexport var stayShaded = \"UserColocationRfpProject_Details_RequiredProducts__stayShaded___Qgra\";\nexport var switchLight = \"UserColocationRfpProject_Details_RequiredProducts__switchLight__YOWXe\";\nexport var switchShaded = \"UserColocationRfpProject_Details_RequiredProducts__switchShaded__c9yYS\";\nexport var tickmarkIcon = \"UserColocationRfpProject_Details_RequiredProducts__tickmarkIcon__qx89j\";\nexport var withColon = \"UserColocationRfpProject_Details_RequiredProducts__withColon__qR8Xd\";","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as UserColocationRfpProject_Details_RequiredProductsScss from \"./UserColocationRfpProject_Details_RequiredProducts.scss\";\n\nvar css = UserColocationRfpProject_Details_RequiredProductsScss;\n\nfunction UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription(props) {\n  return JsxRuntime.jsxs(\"div\", {\n              children: [\n                JsxRuntime.jsx(\"p\", {\n                      children: props.label,\n                      className: Cx.cx([\n                            css.productServiceLabel,\n                            css.withColon\n                          ])\n                    }),\n                JsxRuntime.jsx(\"p\", {\n                      children: props.value,\n                      className: css.productServiceValue\n                    })\n              ],\n              className: css.productsServiceWrapper\n            });\n}\n\nvar make = UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription;\n\nexport {\n  css ,\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 Belt_Option from \"rescript/lib/es6/belt_Option.js\";\nimport * as Caml_option from \"rescript/lib/es6/caml_option.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as ProjectRequiredProducts_CheckmarkableOptions from \"../_components/ProjectRequiredProducts/ProjectRequiredProducts_CheckmarkableOptions.res.js\";\nimport * as UserColocationRfpProject_Details_RequiredProductsScss from \"./UserColocationRfpProject_Details_RequiredProducts.scss\";\nimport * as UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription from \"./UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription.res.js\";\n\nvar css = UserColocationRfpProject_Details_RequiredProductsScss;\n\nfunction UserColocationRfpProject_Details_RequiredProducts_RackDetail(props) {\n  var contractLength = props.contractLength;\n  var startDate = props.startDate;\n  var rackDetails = props.rackDetails;\n  var q = rackDetails.quantity;\n  var match = rackDetails.powerValue;\n  var match$1 = rackDetails.powerUnits;\n  var tmp;\n  var exit = 0;\n  if (match !== undefined && match$1 !== undefined) {\n    tmp = JsxRuntime.jsx(\"div\", {\n          children: JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription.make, {\n                label: \"Power in \" + match$1,\n                value: String(match)\n              }),\n          className: css.propertyLeft\n        });\n  } else {\n    exit = 1;\n  }\n  if (exit === 1) {\n    tmp = JsxRuntime.jsx(\"div\", {\n          className: css.propertyLeft\n        });\n  }\n  return JsxRuntime.jsxs(\"div\", {\n              children: [\n                JsxRuntime.jsx(\"p\", {\n                      children: \"Space & Power Requirements #\" + String(props.index + 1 | 0),\n                      className: css.productName\n                    }),\n                JsxRuntime.jsxs(\"div\", {\n                      children: [\n                        JsxRuntime.jsx(\"div\", {\n                              children: JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription.make, {\n                                    label: \"Quantity\",\n                                    value: q !== undefined ? String(q) : \"\"\n                                  }),\n                              className: Cx.cx([\n                                    css.propertyLeft,\n                                    css.stayShaded\n                                  ])\n                            }),\n                        JsxRuntime.jsx(\"div\", {\n                              children: JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription.make, {\n                                    label: \"Colocation Space\",\n                                    value: Belt_Option.getWithDefault(rackDetails.colocationSpace, \"\")\n                                  }),\n                              className: Cx.cx([\n                                    css.propertyRight,\n                                    css.switchShaded\n                                  ])\n                            }),\n                        JsxRuntime.jsx(\"div\", {\n                              children: JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription.make, {\n                                    label: \"Circuit Type\",\n                                    value: Belt_Option.getWithDefault(rackDetails.powerCircuit, \"\")\n                                  }),\n                              className: Cx.cx([\n                                    css.propertyRight,\n                                    css.switchLight\n                                  ])\n                            }),\n                        tmp,\n                        JsxRuntime.jsx(\"div\", {\n                              children: JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription.make, {\n                                    label: \"Start Date\",\n                                    value: startDate !== undefined ? $$Date.Naive.format(Caml_option.valFromOption(startDate), \"dd MMM yyyy\") : \"\"\n                                  }),\n                              className: Cx.cx([\n                                    css.propertyLeft,\n                                    css.stayShaded\n                                  ])\n                            }),\n                        JsxRuntime.jsx(\"div\", {\n                              children: JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription.make, {\n                                    label: \"Contract Length\",\n                                    value: contractLength !== undefined ? String(contractLength) + \" months\" : \"\"\n                                  }),\n                              className: Cx.cx([\n                                    css.propertyLeft,\n                                    css.switchShaded\n                                  ])\n                            }),\n                        JsxRuntime.jsx(ProjectRequiredProducts_CheckmarkableOptions.make, {\n                              options: rackDetails.additionalOptions,\n                              cssStart: \"SwitchLight\"\n                            })\n                      ],\n                      className: css.propertiesContainer\n                    })\n              ]\n            });\n}\n\nvar make = UserColocationRfpProject_Details_RequiredProducts_RackDetail;\n\nexport {\n  css ,\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 Belt_Option from \"rescript/lib/es6/belt_Option.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as UserColocationRfpProject_Details_RequiredProductsScss from \"./UserColocationRfpProject_Details_RequiredProducts.scss\";\nimport * as UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription from \"./UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription.res.js\";\n\nvar css = UserColocationRfpProject_Details_RequiredProductsScss;\n\nfunction UserColocationRfpProject_Details_RequiredProducts_CrossConnectDetail(props) {\n  var crossConnect = props.crossConnect;\n  return JsxRuntime.jsxs(\"div\", {\n              children: [\n                JsxRuntime.jsx(\"p\", {\n                      children: \"Cross Connect #\" + String(props.index + 1 | 0),\n                      className: css.productName\n                    }),\n                JsxRuntime.jsxs(\"div\", {\n                      children: [\n                        JsxRuntime.jsx(\"div\", {\n                              children: JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription.make, {\n                                    label: \"Quantity\",\n                                    value: String(Belt_Option.getWithDefault(crossConnect.quantity, 0))\n                                  }),\n                              className: Cx.cx([\n                                    css.propertyLeft,\n                                    css.stayShaded\n                                  ])\n                            }),\n                        JsxRuntime.jsx(\"div\", {\n                              children: JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription.make, {\n                                    label: \"Access Type\",\n                                    value: Belt_Option.getWithDefault(crossConnect.interconnect, \"\")\n                                  }),\n                              className: Cx.cx([\n                                    css.propertyRight,\n                                    css.switchShaded\n                                  ])\n                            }),\n                        JsxRuntime.jsx(\"div\", {\n                              children: JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription.make, {\n                                    label: \"Preferred Provider\",\n                                    value: Belt_Option.getWithDefault(crossConnect.provider, \"\")\n                                  }),\n                              className: Cx.cx([\n                                    css.propertyLeft,\n                                    css.switchLight\n                                  ])\n                            })\n                      ],\n                      className: css.propertiesContainer\n                    })\n              ]\n            });\n}\n\nvar make = UserColocationRfpProject_Details_RequiredProducts_CrossConnectDetail;\n\nexport {\n  css ,\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 Belt_Option from \"rescript/lib/es6/belt_Option.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as ProjectRequiredProducts_CheckmarkableOptions from \"../_components/ProjectRequiredProducts/ProjectRequiredProducts_CheckmarkableOptions.res.js\";\nimport * as UserColocationRfpProject_Details_RequiredProductsScss from \"./UserColocationRfpProject_Details_RequiredProducts.scss\";\nimport * as UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription from \"./UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription.res.js\";\n\nvar css = UserColocationRfpProject_Details_RequiredProductsScss;\n\nfunction UserColocationRfpProject_Details_RequiredProducts_CloudDirectConnectDetail(props) {\n  var cloudDirectConnect = props.cloudDirectConnect;\n  return JsxRuntime.jsxs(\"div\", {\n              children: [\n                JsxRuntime.jsx(\"p\", {\n                      children: \"Cloud Direct Connect #\" + String(props.index + 1 | 0),\n                      className: css.productName\n                    }),\n                JsxRuntime.jsxs(\"div\", {\n                      children: [\n                        JsxRuntime.jsx(\"div\", {\n                              children: JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription.make, {\n                                    label: \"Access Type\",\n                                    value: Belt_Option.getWithDefault(cloudDirectConnect.interconnect, \"\")\n                                  }),\n                              className: Cx.cx([\n                                    css.propertyLeft,\n                                    css.stayShaded\n                                  ])\n                            }),\n                        JsxRuntime.jsx(\"div\", {\n                              children: JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription.make, {\n                                    label: \"Bandwidth\",\n                                    value: Belt_Option.getWithDefault(cloudDirectConnect.bandwidth, \"\")\n                                  }),\n                              className: Cx.cx([\n                                    css.propertyRight,\n                                    css.switchShaded\n                                  ])\n                            }),\n                        JsxRuntime.jsx(\"div\", {\n                              children: JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription.make, {\n                                    label: \"Cloud Platform\",\n                                    value: Belt_Option.getWithDefault(cloudDirectConnect.cloudPlatform, \"\")\n                                  }),\n                              className: Cx.cx([\n                                    css.propertyLeft,\n                                    css.switchLight\n                                  ])\n                            }),\n                        JsxRuntime.jsx(\"div\", {\n                              className: css.propertyRight\n                            }),\n                        JsxRuntime.jsx(ProjectRequiredProducts_CheckmarkableOptions.make, {\n                              options: cloudDirectConnect.additionalOptions,\n                              cssStart: \"StayShaded\"\n                            })\n                      ],\n                      className: css.propertiesContainer\n                    })\n              ]\n            });\n}\n\nvar make = UserColocationRfpProject_Details_RequiredProducts_CloudDirectConnectDetail;\n\nexport {\n  css ,\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 Belt_Option from \"rescript/lib/es6/belt_Option.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as ProjectRequiredProducts_CheckmarkableOptions from \"../_components/ProjectRequiredProducts/ProjectRequiredProducts_CheckmarkableOptions.res.js\";\nimport * as UserColocationRfpProject_Details_RequiredProductsScss from \"./UserColocationRfpProject_Details_RequiredProducts.scss\";\nimport * as UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription from \"./UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription.res.js\";\n\nvar css = UserColocationRfpProject_Details_RequiredProductsScss;\n\nfunction UserColocationRfpProject_Details_RequiredProducts_InternetConnectivityDetail(props) {\n  var internetConnectivity = props.internetConnectivity;\n  return JsxRuntime.jsxs(\"div\", {\n              children: [\n                JsxRuntime.jsx(\"p\", {\n                      children: \"Bandwidth Requirement #\" + String(props.index + 1 | 0),\n                      className: css.productName\n                    }),\n                JsxRuntime.jsxs(\"div\", {\n                      children: [\n                        JsxRuntime.jsx(\"div\", {\n                              children: JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription.make, {\n                                    label: \"Access Type\",\n                                    value: Belt_Option.getWithDefault(internetConnectivity.interconnect, \"\")\n                                  }),\n                              className: Cx.cx([\n                                    css.propertyLeft,\n                                    css.stayShaded\n                                  ])\n                            }),\n                        JsxRuntime.jsx(\"div\", {\n                              children: JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription.make, {\n                                    label: \"Bandwidth\",\n                                    value: Belt_Option.getWithDefault(internetConnectivity.bandwidth, \"\")\n                                  }),\n                              className: Cx.cx([\n                                    css.propertyRight,\n                                    css.switchShaded\n                                  ])\n                            }),\n                        JsxRuntime.jsx(\"div\", {\n                              children: JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription.make, {\n                                    label: \"Provider\",\n                                    value: Belt_Option.getWithDefault(internetConnectivity.provider, \"\")\n                                  }),\n                              className: Cx.cx([\n                                    css.propertyLeft,\n                                    css.switchLight\n                                  ])\n                            }),\n                        JsxRuntime.jsx(\"div\", {\n                              className: css.propertyRight\n                            }),\n                        JsxRuntime.jsx(ProjectRequiredProducts_CheckmarkableOptions.make, {\n                              options: internetConnectivity.additionalOptions,\n                              cssStart: \"StayShaded\"\n                            })\n                      ],\n                      className: css.propertiesContainer\n                    })\n              ]\n            });\n}\n\nvar make = UserColocationRfpProject_Details_RequiredProducts_InternetConnectivityDetail;\n\nexport {\n  css ,\n  make ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Js_array from \"rescript/lib/es6/js_array.js\";\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport * as Belt_Option from \"rescript/lib/es6/belt_Option.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as UserProjectDetailsPanel from \"../_components/UserProjectDetailsPanel/UserProjectDetailsPanel.res.js\";\nimport * as RackTypesAndPowerDensity from \"../../../../models/RackTypesAndPowerDensity.res.js\";\nimport * as ProjectRequiredProducts_CheckmarkableOptions from \"../_components/ProjectRequiredProducts/ProjectRequiredProducts_CheckmarkableOptions.res.js\";\nimport * as UserColocationRfpProject_Details_RequiredProductsScss from \"./UserColocationRfpProject_Details_RequiredProducts.scss\";\nimport * as UserColocationRfpProject_Details_RequiredProducts_RackDetail from \"./UserColocationRfpProject_Details_RequiredProducts_RackDetail.res.js\";\nimport * as UserColocationRfpProject_Details_RequiredProducts_CrossConnectDetail from \"./UserColocationRfpProject_Details_RequiredProducts_CrossConnectDetail.res.js\";\nimport * as UserColocationRfpProject_Details_RequiredProducts_CloudDirectConnectDetail from \"./UserColocationRfpProject_Details_RequiredProducts_CloudDirectConnectDetail.res.js\";\nimport * as UserColocationRfpProject_Details_RequiredProducts_InternetConnectivityDetail from \"./UserColocationRfpProject_Details_RequiredProducts_InternetConnectivityDetail.res.js\";\n\nvar css = UserColocationRfpProject_Details_RequiredProductsScss;\n\nfunction panelHeading(rackTypesAndPowerDensities) {\n  var rackDetails = Js_array.joinWith(\", \", Belt_Array.map(rackTypesAndPowerDensities, (function (rack) {\n              return RackTypesAndPowerDensity.rackQuantityAndPowerDetailText(rack);\n            })));\n  return JsxRuntime.jsx(\"h4\", {\n              children: rackDetails,\n              className: css.panelHeading\n            });\n}\n\nfunction UserColocationRfpProject_Details_RequiredProducts_ProductPanel$CheckmarkableOptionsWithHeading(props) {\n  var options = props.options;\n  if (options.length !== 0) {\n    return JsxRuntime.jsxs(\"div\", {\n                children: [\n                  JsxRuntime.jsx(\"p\", {\n                        children: props.heading,\n                        className: css.productName\n                      }),\n                  JsxRuntime.jsx(\"div\", {\n                        children: JsxRuntime.jsx(ProjectRequiredProducts_CheckmarkableOptions.make, {\n                              options: options\n                            }),\n                        className: css.checkboxes\n                      })\n                ],\n                className: css.checkboxesContainer\n              });\n  } else {\n    return null;\n  }\n}\n\nvar CheckmarkableOptionsWithHeading = {\n  make: UserColocationRfpProject_Details_RequiredProducts_ProductPanel$CheckmarkableOptionsWithHeading\n};\n\nfunction UserColocationRfpProject_Details_RequiredProducts_ProductPanel(props) {\n  var __isExpanded = props.isExpanded;\n  var colocationSpaceConfiguration = props.colocationSpaceConfiguration;\n  var isExpanded = __isExpanded !== undefined ? __isExpanded : false;\n  var notes = colocationSpaceConfiguration.additionalNotesOrRequirements;\n  return JsxRuntime.jsx(UserProjectDetailsPanel.make, {\n              className: css.panel,\n              heading: panelHeading(colocationSpaceConfiguration.rackTypesAndPowerDensities),\n              isExpanded: isExpanded,\n              children: JsxRuntime.jsxs(\"div\", {\n                    children: [\n                      Belt_Array.mapWithIndex(colocationSpaceConfiguration.rackTypesAndPowerDensities, (function (index, rackDetails) {\n                              return JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_RackDetail.make, {\n                                          index: index,\n                                          rackDetails: rackDetails,\n                                          startDate: colocationSpaceConfiguration.startDate,\n                                          contractLength: colocationSpaceConfiguration.contractLength\n                                        }, Belt_Option.getWithDefault(rackDetails.colocationSpace, \"\") + String(index));\n                            })),\n                      Belt_Array.mapWithIndex(colocationSpaceConfiguration.internetConnectivities, (function (index, internetConnectivity) {\n                              var match = internetConnectivity.bandwidth;\n                              var match$1 = internetConnectivity.interconnect;\n                              var match$2 = internetConnectivity.provider;\n                              var match$3 = Belt_Array.get(internetConnectivity.additionalOptions, 0);\n                              if (match === undefined && match$1 === undefined && match$2 === undefined && match$3 === undefined) {\n                                return null;\n                              }\n                              return JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_InternetConnectivityDetail.make, {\n                                          index: index,\n                                          internetConnectivity: internetConnectivity\n                                        }, String(index) + \"-connectivity\");\n                            })),\n                      Belt_Array.mapWithIndex(colocationSpaceConfiguration.crossConnects, (function (index, crossConnect) {\n                              var match = crossConnect.quantity;\n                              var match$1 = crossConnect.interconnect;\n                              var match$2 = crossConnect.provider;\n                              if (match === undefined && match$1 === undefined && match$2 === undefined) {\n                                return null;\n                              }\n                              return JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_CrossConnectDetail.make, {\n                                          index: index,\n                                          crossConnect: crossConnect\n                                        }, String(index) + \"-crossConnect\");\n                            })),\n                      Belt_Array.mapWithIndex(colocationSpaceConfiguration.cloudDirectConnects, (function (index, cloudDirectConnect) {\n                              var match = cloudDirectConnect.bandwidth;\n                              var match$1 = cloudDirectConnect.interconnect;\n                              var match$2 = cloudDirectConnect.cloudPlatform;\n                              var match$3 = Belt_Array.get(cloudDirectConnect.additionalOptions, 0);\n                              if (match === undefined && match$1 === undefined && match$2 === undefined && match$3 === undefined) {\n                                return null;\n                              }\n                              return JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_CloudDirectConnectDetail.make, {\n                                          index: index,\n                                          cloudDirectConnect: cloudDirectConnect\n                                        }, String(index) + \"-cloudDirectConnects\");\n                            })),\n                      JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_ProductPanel$CheckmarkableOptionsWithHeading, {\n                            heading: \"Certification Requirements\",\n                            options: colocationSpaceConfiguration.certificationRequirements\n                          }),\n                      JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_ProductPanel$CheckmarkableOptionsWithHeading, {\n                            heading: \"Data Center Features\",\n                            options: colocationSpaceConfiguration.datacenterFeatures\n                          }),\n                      notes !== undefined ? JsxRuntime.jsxs(\"div\", {\n                              children: [\n                                JsxRuntime.jsx(\"p\", {\n                                      children: \"Custom Note or Requirements\",\n                                      className: css.productName\n                                    }),\n                                JsxRuntime.jsx(\"p\", {\n                                      children: notes,\n                                      className: css.additionalNotes\n                                    })\n                              ],\n                              className: css.notesContainer\n                            }) : null\n                    ],\n                    className: css.panelBody\n                  })\n            });\n}\n\nvar make = UserColocationRfpProject_Details_RequiredProducts_ProductPanel;\n\nexport {\n  css ,\n  panelHeading ,\n  CheckmarkableOptionsWithHeading ,\n  make ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as P from \"../../../../styleguide/components/Paragraph/P.res.js\";\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport Format from \"date-fns/format\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as ProjectEstimatedDates from \"../_components/ProjectEstimatedDates/ProjectEstimatedDates.res.js\";\nimport * as UserProjectDetailsOwner from \"../_components/UserProjectDetailsOwner/UserProjectDetailsOwner.res.js\";\nimport * as UserProjectDetailsDocuments from \"../_components/UserProjectDetailsDocuments/UserProjectDetailsDocuments.res.js\";\nimport * as UserProjectConciergesInformation from \"../_components/UserProjectDetailsContactInformation/UserProjectConciergesInformation.res.js\";\nimport * as UserProjectDetailsContactInformation from \"../_components/UserProjectDetailsContactInformation/UserProjectDetailsContactInformation.res.js\";\nimport * as UserColocationRfpProject_DetailsScss from \"./UserColocationRfpProject_Details.scss\";\nimport * as UserColocationRfpProject_Details_Locations from \"./UserColocationRfpProject_Details_Locations.res.js\";\nimport * as UserProjectDetailsBusinessContactInformation from \"../_components/UserProjectDetailsContactInformation/UserProjectDetailsBusinessContactInformation.res.js\";\nimport * as UserColocationRfpProject_Details_RequiredProducts_ProductPanel from \"./UserColocationRfpProject_Details_RequiredProducts_ProductPanel.res.js\";\n\nvar css = UserColocationRfpProject_DetailsScss;\n\nfunction UserColocationRfpProject_Details(props) {\n  var project = props.project;\n  var match = project.status;\n  var tmp;\n  tmp = match === \"Review\" ? JsxRuntime.jsxs(\"p\", {\n          children: [\n            \"NOTE: Please be advised that this project is in review. \",\n            \"A member of Datacenters.com will reach out to discuss this project before \",\n            \"it becomes active.\"\n          ],\n          className: Cx.cx([\n                css.reviewStatusWarning,\n                \"mb-4\"\n              ])\n        }) : null;\n  return JsxRuntime.jsxs(JsxRuntime.Fragment, {\n              children: [\n                JsxRuntime.jsxs(\"div\", {\n                      children: [\n                        JsxRuntime.jsxs(\"div\", {\n                              children: [\n                                JsxRuntime.jsx(\"h2\", {\n                                      children: \"Description\",\n                                      className: css.descriptionHeading\n                                    }),\n                                tmp,\n                                JsxRuntime.jsx(P.make, {\n                                      children: project.description\n                                    }),\n                                JsxRuntime.jsx(P.make, {\n                                      children: \"Project Last Updated \" + Format(project.updatedAt, \"MMM dd, yyyy, h:mm a\")\n                                    }),\n                                JsxRuntime.jsx(\"h2\", {\n                                      children: \"Required Products\",\n                                      className: css.descriptionHeading\n                                    }),\n                                Belt_Array.mapWithIndex(project.colocationConfigurations, (function (index, colocationSpaceConfiguration) {\n                                        return JsxRuntime.jsx(UserColocationRfpProject_Details_RequiredProducts_ProductPanel.make, {\n                                                    colocationSpaceConfiguration: colocationSpaceConfiguration,\n                                                    isExpanded: index === 0\n                                                  }, \"product-panel-\" + String(index));\n                                      })),\n                                project.documents.length !== 0 ? JsxRuntime.jsx(UserProjectDetailsDocuments.make, {\n                                        documents: project.documents,\n                                        projectId: project.id\n                                      }) : null\n                              ],\n                              className: css.colLeft\n                            }),\n                        JsxRuntime.jsxs(\"div\", {\n                              children: [\n                                JsxRuntime.jsx(ProjectEstimatedDates.make, {\n                                      estimatedDates: props.estimatedDates\n                                    }),\n                                JsxRuntime.jsx(UserProjectDetailsOwner.make, {\n                                      owner: project.owner,\n                                      isAgent: project.isAgent\n                                    }),\n                                project.contacts.length !== 0 ? JsxRuntime.jsx(UserProjectDetailsContactInformation.make, {\n                                        contacts: project.contacts\n                                      }) : null,\n                                JsxRuntime.jsx(UserProjectDetailsBusinessContactInformation.make, {\n                                      businessName: project.businessName,\n                                      businessEmail: project.businessEmail,\n                                      businessPhone: project.businessPhone,\n                                      businessContactName: project.businessContactName,\n                                      headquartersAddress: project.headquartersAddress\n                                    }),\n                                JsxRuntime.jsx(UserProjectConciergesInformation.make, {\n                                      concierges: props.concierges\n                                    })\n                              ],\n                              className: css.colRight\n                            })\n                      ],\n                      className: css.columnWrapper\n                    }),\n                JsxRuntime.jsx(UserColocationRfpProject_Details_Locations.make, {\n                      projectId: project.id,\n                      locations: project.locations,\n                      userRole: props.userRole,\n                      providers: project.providers,\n                      serverSide: props.serverSide\n                    })\n              ]\n            });\n}\n\nvar make = UserColocationRfpProject_Details;\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 ProjectHeader from \"../_components/ProjectHeader/ProjectHeader.res.js\";\nimport * as ProjectNavbar from \"../_components/ProjectNavbar/ProjectNavbar.res.js\";\nimport * as ProjectStickyBar from \"../_components/ProjectStickyBar/ProjectStickyBar.res.js\";\nimport * as ProjectTopNavbar from \"../_components/ProjectTopNavbar/ProjectTopNavbar.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as UserColocationRfpProjectScss from \"./UserColocationRfpProject.scss\";\nimport * as UserColocationRfpProject_Details from \"./UserColocationRfpProject_Details.res.js\";\n\nvar css = UserColocationRfpProjectScss;\n\nfunction UserColocationRfpProject(props) {\n  var projectStickyBarData = props.projectStickyBarData;\n  var userRole = props.userRole;\n  var viewContext = props.viewContext;\n  var project = props.project;\n  var stickyBarUserRole = Project.Role.toRole(projectStickyBarData.userProjectRole);\n  if (userRole === \"Visitor\") {\n    return null;\n  }\n  var total = project.totalProposals;\n  return JsxRuntime.jsxs(\"div\", {\n              children: [\n                JsxRuntime.jsx(ProjectTopNavbar.make, {\n                      viewContext: viewContext,\n                      userRole: userRole,\n                      projectStickyBarData: projectStickyBarData\n                    }),\n                JsxRuntime.jsxs(\"div\", {\n                      children: [\n                        JsxRuntime.jsx(ProjectHeader.make, {\n                              title: project.title,\n                              businessName: project.businessName,\n                              userRole: stickyBarUserRole,\n                              projectId: project.id,\n                              viewContext: viewContext,\n                              projectStatus: projectStickyBarData.project.status\n                            }),\n                        JsxRuntime.jsx(ProjectNavbar.make, {\n                              activeTab: \"Details\",\n                              userRole: stickyBarUserRole,\n                              projectId: project.id,\n                              totalProposals: total !== undefined ? total : 0,\n                              viewContext: viewContext\n                            }),\n                        JsxRuntime.jsx(UserColocationRfpProject_Details.make, {\n                              project: project,\n                              concierges: props.concierges,\n                              userRole: stickyBarUserRole,\n                              serverSide: props.serverSide,\n                              estimatedDates: props.estimatedDates\n                            }),\n                        JsxRuntime.jsx(ProjectStickyBar.make, {\n                              userRole: stickyBarUserRole,\n                              projectStickyBarData: projectStickyBarData,\n                              canSendProposals: props.canSendProposals,\n                              viewContext: viewContext,\n                              desktop: props.desktop,\n                              tablet: props.tablet,\n                              mobile: props.mobile\n                            })\n                      ],\n                      className: css.contentWrapper\n                    })\n              ],\n              className: css.container\n            });\n}\n\nvar make = UserColocationRfpProject;\n\nexport {\n  css ,\n  make ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as User from \"../../../../models/User.res.js\";\nimport * as React from \"react\";\nimport * as Project from \"../../../../models/Project.res.js\";\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport * as RailsContext from \"../../../../models/RailsContext.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as ProjectsViewContext from \"../../../../models/ProjectsViewContext.res.js\";\nimport * as ColocationRfpProject from \"../../../../models/ColocationRfpProject.res.js\";\nimport * as ProjectStickyBarData from \"../_components/ProjectStickyBar/ProjectStickyBarData.res.js\";\nimport * as UserColocationRfpProject from \"./UserColocationRfpProject.res.js\";\n\nfunction UserColocationRfpProject__JsBridge$default(props) {\n  var railsContext = props.railsContext;\n  var jsProps = props.jsProps;\n  var railsContext$1 = React.useMemo((function () {\n          return RailsContext.fromJson(railsContext);\n        }), [railsContext]);\n  var project = React.useMemo((function () {\n          return ColocationRfpProject.fromJson(jsProps.project);\n        }), [jsProps.project]);\n  var viewContext = React.useMemo((function () {\n          return ProjectsViewContext.fromString(jsProps.viewContext);\n        }), [jsProps.viewContext]);\n  var projectStickyBarData = React.useMemo((function () {\n          return ProjectStickyBarData.fromJson(jsProps.projectStickyBar);\n        }), [jsProps.projectStickyBar]);\n  var concierges = React.useMemo((function () {\n          return Belt_Array.map(jsProps.concierges, User.fromJson);\n        }), [jsProps.concierges]);\n  var estimatedDates = React.useMemo((function () {\n          return Project.EstimatedDates.fromJson(jsProps.estimatedDates);\n        }), [jsProps.estimatedDates]);\n  return JsxRuntime.jsx(UserColocationRfpProject.make, {\n              project: project,\n              concierges: concierges,\n              serverSide: railsContext$1.serverSide,\n              canSendProposals: jsProps.canSendProposals,\n              viewContext: viewContext,\n              userRole: railsContext$1.userRole,\n              projectStickyBarData: projectStickyBarData,\n              desktop: railsContext$1.desktop,\n              tablet: railsContext$1.tablet,\n              mobile: railsContext$1.mobile,\n              estimatedDates: estimatedDates\n            });\n}\n\nvar $$default = UserColocationRfpProject__JsBridge$default;\n\nexport {\n  $$default as default,\n}\n/* User Not a pure module */\n","import * as React from 'react';\n\nimport UserColocationRfpProject from './UserColocationRfpProject__JsBridge.res.js';\n\nexport default ({ context, ...props }) => <UserColocationRfpProject jsProps={props} railsContext={context} />;\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as ID from \"../libs/ID.res.js\";\n\nvar include = ID.$$String({});\n\nvar T = include.T;\n\nvar eq = include.eq;\n\nvar toJson = include.toJson;\n\nvar decoder = include.decoder;\n\nvar fromJson = include.fromJson;\n\nvar Comparable = include.Comparable;\n\nvar $$Map = include.$$Map;\n\nvar $$Set = include.$$Set;\n\nexport {\n  T ,\n  eq ,\n  toJson ,\n  decoder ,\n  fromJson ,\n  Comparable ,\n  $$Map ,\n  $$Set ,\n}\n/* include Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as $$Date from \"../libs/Date.res.js\";\nimport * as Project from \"./Project.res.js\";\nimport * as Belt_Result from \"rescript/lib/es6/belt_Result.js\";\nimport * as UserContact from \"./UserContact.res.js\";\nimport * as LocationForProject from \"./LocationForProject.res.js\";\nimport * as ProviderForProject from \"./ProviderForProject.res.js\";\nimport * as Json$JsonCombinators from \"@glennsl/rescript-json-combinators/src/Json.res.js\";\nimport * as ColocationRfpProjectId from \"./ColocationRfpProjectId.res.js\";\nimport * as ColocationConfiguration from \"./ColocationConfiguration.res.js\";\nimport * as Json_Decode$JsonCombinators from \"@glennsl/rescript-json-combinators/src/Json_Decode.res.js\";\n\nvar decoder = Json_Decode$JsonCombinators.object(function (field) {\n      return {\n              id: field.required(\"id\", ColocationRfpProjectId.decoder),\n              title: field.required(\"title\", Json_Decode$JsonCombinators.string),\n              description: field.required(\"description\", Json_Decode$JsonCombinators.string),\n              category: field.required(\"category\", Json_Decode$JsonCombinators.string),\n              status: field.required(\"status\", Project.Status.decoder),\n              totalLocations: field.required(\"totalLocations\", Json_Decode$JsonCombinators.option(Json_Decode$JsonCombinators.$$int)),\n              totalProviders: field.required(\"totalProviders\", Json_Decode$JsonCombinators.option(Json_Decode$JsonCombinators.$$int)),\n              totalProposals: field.required(\"totalProposals\", Json_Decode$JsonCombinators.option(Json_Decode$JsonCombinators.$$int)),\n              startDate: field.required(\"startDate\", $$Date.Naive.decoder),\n              endDate: field.required(\"endDate\", $$Date.Naive.decoder),\n              isAgent: field.required(\"isAgent\", Json_Decode$JsonCombinators.bool),\n              businessName: field.required(\"businessName\", Json_Decode$JsonCombinators.string),\n              businessContactName: field.required(\"businessContactName\", Json_Decode$JsonCombinators.string),\n              headquartersAddress: field.required(\"headquartersAddress\", Json_Decode$JsonCombinators.string),\n              businessEmail: field.required(\"businessEmail\", Json_Decode$JsonCombinators.string),\n              businessPhone: field.required(\"businessPhone\", Json_Decode$JsonCombinators.string),\n              createdAt: field.required(\"createdAt\", $$Date.Naive.decoder),\n              updatedAt: field.required(\"updatedAt\", $$Date.Naive.decoder),\n              owner: field.required(\"owner\", Project.Owner.decoder),\n              contacts: field.required(\"contacts\", Json_Decode$JsonCombinators.array(UserContact.decoder)),\n              documents: field.required(\"documents\", Json_Decode$JsonCombinators.array(Project.$$Document.decoder)),\n              colocationConfigurations: field.required(\"colocationConfigurations\", Json_Decode$JsonCombinators.array(ColocationConfiguration.decoder)),\n              providers: field.required(\"providers\", Json_Decode$JsonCombinators.array(ProviderForProject.decoder)),\n              locations: field.required(\"locations\", Json_Decode$JsonCombinators.array(LocationForProject.decoder))\n            };\n    });\n\nfunction fromJson(json) {\n  return Belt_Result.getExn(Json$JsonCombinators.decode(json, decoder));\n}\n\nvar decoder$1 = Json_Decode$JsonCombinators.object(function (field) {\n      return {\n              label: field.required(\"label\", Json_Decode$JsonCombinators.string),\n              value: field.required(\"value\", Json_Decode$JsonCombinators.$$int)\n            };\n    });\n\nfunction fromJson$1(json) {\n  return Belt_Result.getExn(Json$JsonCombinators.decode(json, decoder$1));\n}\n\nvar ContractLength = {\n  decoder: decoder$1,\n  fromJson: fromJson$1\n};\n\nvar decoder$2 = Json_Decode$JsonCombinators.object(function (field) {\n      return {\n              contractLengths: field.required(\"contractLengths\", Json_Decode$JsonCombinators.array(decoder$1)),\n              colocationSpace: field.required(\"colocationSpace\", Json_Decode$JsonCombinators.array(Json_Decode$JsonCombinators.string)),\n              powerCircuit: field.required(\"powerCircuit\", Json_Decode$JsonCombinators.array(Json_Decode$JsonCombinators.string)),\n              powerUnits: field.required(\"powerUnits\", Json_Decode$JsonCombinators.array(Json_Decode$JsonCombinators.string)),\n              additionalSpaceAndPower: field.required(\"additionalSpaceAndPower\", Json_Decode$JsonCombinators.array(Json_Decode$JsonCombinators.string)),\n              interconnect: field.required(\"interconnect\", Json_Decode$JsonCombinators.array(Json_Decode$JsonCombinators.string)),\n              bandwidths: field.required(\"bandwidths\", Json_Decode$JsonCombinators.array(Json_Decode$JsonCombinators.string)),\n              providers: field.required(\"providers\", Json_Decode$JsonCombinators.array(Json_Decode$JsonCombinators.string)),\n              additionalInternetConnectivity: field.required(\"additionalInternetConnectivity\", Json_Decode$JsonCombinators.array(Json_Decode$JsonCombinators.string)),\n              crossConnectProviders: field.required(\"crossConnectProviders\", Json_Decode$JsonCombinators.array(Json_Decode$JsonCombinators.string)),\n              additionalCloudDirectConnects: field.required(\"additionalCloudDirectConnects\", Json_Decode$JsonCombinators.array(Json_Decode$JsonCombinators.string)),\n              cloudPlatforms: field.required(\"cloudPlatforms\", Json_Decode$JsonCombinators.array(Json_Decode$JsonCombinators.string)),\n              certificationRequirements: field.required(\"certificationRequirements\", Json_Decode$JsonCombinators.array(Json_Decode$JsonCombinators.string)),\n              dataCenterFeatures: field.required(\"dataCenterFeatures\", Json_Decode$JsonCombinators.array(Json_Decode$JsonCombinators.string))\n            };\n    });\n\nfunction fromJson$2(json) {\n  return Belt_Result.getExn(Json$JsonCombinators.decode(json, decoder$2));\n}\n\nvar ConfigurationOptions = {\n  ContractLength: ContractLength,\n  decoder: decoder$2,\n  fromJson: fromJson$2\n};\n\nexport {\n  decoder ,\n  fromJson ,\n  ConfigurationOptions ,\n}\n/* decoder Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as React from \"react\";\nimport * as Digest from \"rescript/lib/es6/digest.js\";\nimport * as Js_array from \"rescript/lib/es6/js_array.js\";\nimport * as GoogleMap from \"../../../bindings/GoogleMap.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 JsxRuntime from \"react/jsx-runtime\";\n\nfunction coordinatesHash(coordinates) {\n  return Digest.string(Js_array.joinWith(\"|\", coordinates !== undefined ? Belt_Array.map(coordinates, GoogleMap.Coordinates.toString) : []));\n}\n\nfunction onLoad(map, bounds) {\n  GoogleMap.Helpers.fitBounds(map, bounds);\n}\n\nvar Helpers = {\n  coordinatesHash: coordinatesHash,\n  onLoad: onLoad\n};\n\nfunction GoogleMapWithBounds(props) {\n  var bounds = props.bounds;\n  var mapRef = React.useRef(undefined);\n  React.useEffect((function () {\n          var map = mapRef.current;\n          if (map !== undefined) {\n            GoogleMap.Helpers.fitBounds(Caml_option.valFromOption(map), bounds);\n          }\n          \n        }), [coordinatesHash(bounds)]);\n  return JsxRuntime.jsx(GoogleMap.make, {\n              zoom: props.zoom,\n              center: props.center,\n              style: props.style,\n              options: props.options,\n              mapContainerClassName: props.mapContainerClassName,\n              onLoad: (function (map) {\n                  onLoad(map, bounds);\n                  mapRef.current = Caml_option.some(map);\n                }),\n              children: props.children\n            });\n}\n\nvar make = GoogleMapWithBounds;\n\nexport {\n  Helpers ,\n  make ,\n}\n/* react 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 IconSorting(props) {\n  var direction = props.direction;\n  var __title = props.title;\n  var title = __title !== undefined ? __title : \"Sort\";\n  return JsxRuntime.jsxs(Icon.make, {\n              title: title,\n              size: props.size,\n              className: props.className,\n              children: [\n                JsxRuntime.jsx(\"path\", {\n                      d: \"M3 10L8 16L13 10H3Z\",\n                      fill: direction === \"Desc\" ? Icon.mapColor(\"Gray\") : Icon.mapColor(\"LighterGray\")\n                    }),\n                JsxRuntime.jsx(\"path\", {\n                      d: \"M3 7L8 0L13 7H3Z\",\n                      fill: direction !== undefined && direction !== \"Desc\" ? Icon.mapColor(\"Gray\") : Icon.mapColor(\"LighterGray\")\n                    })\n              ]\n            });\n}\n\nvar make = IconSorting;\n\nexport {\n  make ,\n}\n/* Icon Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Belt_List from \"rescript/lib/es6/belt_List.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 Js_null_undefined from \"rescript/lib/es6/js_null_undefined.js\";\n\nfunction toJs(style) {\n  return {\n          hue: Js_null_undefined.fromOption(Caml_option.undefined_to_opt(style.hue)),\n          lightness: Js_null_undefined.fromOption(Caml_option.undefined_to_opt(style.lightness)),\n          saturation: Js_null_undefined.fromOption(Caml_option.undefined_to_opt(style.saturation)),\n          gamma: Js_null_undefined.fromOption(Caml_option.undefined_to_opt(style.gamma)),\n          visibility: Js_null_undefined.fromOption(Caml_option.undefined_to_opt(style.visibility)),\n          color: Js_null_undefined.fromOption(Caml_option.undefined_to_opt(style.color)),\n          weight: Js_null_undefined.fromOption(Caml_option.undefined_to_opt(style.weight))\n        };\n}\n\nvar Styler = {\n  toJs: toJs\n};\n\nfunction toJs$1(record) {\n  return {\n          featureType: Js_null_undefined.fromOption(Caml_option.undefined_to_opt(record.featureType)),\n          elementType: Js_null_undefined.fromOption(Caml_option.undefined_to_opt(record.elementType)),\n          stylers: Belt_Array.map(Belt_List.toArray(record.stylers), toJs)\n        };\n}\n\nvar Style = {\n  toJs: toJs$1\n};\n\nfunction toJs$2(styles) {\n  return Belt_Array.map(Belt_List.toArray(styles), toJs$1);\n}\n\nvar grey_0 = {\n  elementType: \"geometry\",\n  stylers: {\n    hd: {\n      color: \"#f5f5f5\"\n    },\n    tl: /* [] */0\n  }\n};\n\nvar grey_1 = {\n  hd: {\n    elementType: \"labels.text.fill\",\n    stylers: {\n      hd: {\n        color: \"#616161\"\n      },\n      tl: /* [] */0\n    }\n  },\n  tl: {\n    hd: {\n      elementType: \"labels.text.stroke\",\n      stylers: {\n        hd: {\n          color: \"#f5f5f5\"\n        },\n        tl: /* [] */0\n      }\n    },\n    tl: {\n      hd: {\n        featureType: \"administrative.land_parcel\",\n        elementType: \"labels.text.fill\",\n        stylers: {\n          hd: {\n            color: \"#bdbdbd\"\n          },\n          tl: /* [] */0\n        }\n      },\n      tl: {\n        hd: {\n          featureType: \"poi\",\n          stylers: {\n            hd: {\n              visibility: \"off\"\n            },\n            tl: /* [] */0\n          }\n        },\n        tl: {\n          hd: {\n            featureType: \"poi\",\n            elementType: \"geometry\",\n            stylers: {\n              hd: {\n                color: \"#eeeeee\"\n              },\n              tl: /* [] */0\n            }\n          },\n          tl: {\n            hd: {\n              featureType: \"poi\",\n              elementType: \"labels.text.fill\",\n              stylers: {\n                hd: {\n                  color: \"#757575\"\n                },\n                tl: /* [] */0\n              }\n            },\n            tl: {\n              hd: {\n                featureType: \"poi.park\",\n                elementType: \"geometry\",\n                stylers: {\n                  hd: {\n                    color: \"#e5e5e5\"\n                  },\n                  tl: /* [] */0\n                }\n              },\n              tl: {\n                hd: {\n                  featureType: \"poi.park\",\n                  elementType: \"labels.text.fill\",\n                  stylers: {\n                    hd: {\n                      color: \"#9e9e9e\"\n                    },\n                    tl: /* [] */0\n                  }\n                },\n                tl: {\n                  hd: {\n                    featureType: \"poi.business\",\n                    elementType: \"geometry\",\n                    stylers: {\n                      hd: {\n                        visibility: \"off\"\n                      },\n                      tl: /* [] */0\n                    }\n                  },\n                  tl: {\n                    hd: {\n                      featureType: \"road\",\n                      elementType: \"geometry\",\n                      stylers: {\n                        hd: {\n                          color: \"#ffffff\"\n                        },\n                        tl: /* [] */0\n                      }\n                    },\n                    tl: {\n                      hd: {\n                        featureType: \"road\",\n                        elementType: \"labels.icon\",\n                        stylers: {\n                          hd: {\n                            saturation: -80.0\n                          },\n                          tl: {\n                            hd: {\n                              visibility: \"on\"\n                            },\n                            tl: /* [] */0\n                          }\n                        }\n                      },\n                      tl: {\n                        hd: {\n                          featureType: \"road.arterial\",\n                          elementType: \"labels.text.fill\",\n                          stylers: {\n                            hd: {\n                              color: \"#757575\"\n                            },\n                            tl: /* [] */0\n                          }\n                        },\n                        tl: {\n                          hd: {\n                            featureType: \"road.highway\",\n                            elementType: \"geometry\",\n                            stylers: {\n                              hd: {\n                                color: \"#dadada\"\n                              },\n                              tl: /* [] */0\n                            }\n                          },\n                          tl: {\n                            hd: {\n                              featureType: \"road.highway\",\n                              elementType: \"labels.text.fill\",\n                              stylers: {\n                                hd: {\n                                  color: \"#616161\"\n                                },\n                                tl: /* [] */0\n                              }\n                            },\n                            tl: {\n                              hd: {\n                                featureType: \"road.local\",\n                                elementType: \"labels.text.fill\",\n                                stylers: {\n                                  hd: {\n                                    color: \"#9e9e9e\"\n                                  },\n                                  tl: /* [] */0\n                                }\n                              },\n                              tl: {\n                                hd: {\n                                  featureType: \"transit.line\",\n                                  elementType: \"geometry\",\n                                  stylers: {\n                                    hd: {\n                                      color: \"#e5e5e5\"\n                                    },\n                                    tl: /* [] */0\n                                  }\n                                },\n                                tl: {\n                                  hd: {\n                                    featureType: \"transit.station\",\n                                    elementType: \"geometry\",\n                                    stylers: {\n                                      hd: {\n                                        color: \"#eeeeee\"\n                                      },\n                                      tl: /* [] */0\n                                    }\n                                  },\n                                  tl: {\n                                    hd: {\n                                      featureType: \"water\",\n                                      elementType: \"geometry\",\n                                      stylers: {\n                                        hd: {\n                                          color: \"#e9edf0\"\n                                        },\n                                        tl: /* [] */0\n                                      }\n                                    },\n                                    tl: {\n                                      hd: {\n                                        featureType: \"water\",\n                                        elementType: \"labels.text.fill\",\n                                        stylers: {\n                                          hd: {\n                                            color: \"#9e9e9e\"\n                                          },\n                                          tl: /* [] */0\n                                        }\n                                      },\n                                      tl: /* [] */0\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n};\n\nvar grey = {\n  hd: grey_0,\n  tl: grey_1\n};\n\nvar standard_0 = {\n  featureType: \"administrative.land_parcel\",\n  elementType: \"labels\",\n  stylers: {\n    hd: {\n      visibility: \"off\"\n    },\n    tl: /* [] */0\n  }\n};\n\nvar standard_1 = {\n  hd: {\n    featureType: \"poi\",\n    elementType: \"labels.text\",\n    stylers: {\n      hd: {\n        visibility: \"off\"\n      },\n      tl: /* [] */0\n    }\n  },\n  tl: {\n    hd: {\n      featureType: \"poi.business\",\n      stylers: {\n        hd: {\n          visibility: \"off\"\n        },\n        tl: /* [] */0\n      }\n    },\n    tl: {\n      hd: {\n        featureType: \"road\",\n        elementType: \"labels.icon\",\n        stylers: {\n          hd: {\n            visibility: \"off\"\n          },\n          tl: /* [] */0\n        }\n      },\n      tl: {\n        hd: {\n          featureType: \"road.local\",\n          elementType: \"labels\",\n          stylers: {\n            hd: {\n              visibility: \"off\"\n            },\n            tl: /* [] */0\n          }\n        },\n        tl: {\n          hd: {\n            featureType: \"transit\",\n            stylers: {\n              hd: {\n                visibility: \"off\"\n              },\n              tl: /* [] */0\n            }\n          },\n          tl: /* [] */0\n        }\n      }\n    }\n  }\n};\n\nvar standard = {\n  hd: standard_0,\n  tl: standard_1\n};\n\nexport {\n  Styler ,\n  Style ,\n  toJs$2 as toJs,\n  grey ,\n  standard ,\n}\n/* No side effect */\n"],"names":["DCLinkedInURL","DCTwitterURL","DCYouTubeURL","DCFacebookURL","DCContactNumber","DCContactNumberHRef","GoogleMapAPI","process","GoogleMapLibraries","Coordinates","fromLocation","$$location","lat","latitude","lng","longitude","fromLocationForMap","fromPreloadedSearchLocationForMap","preloadedSearchLocation","fromLocationShowForMap","fromLocationForProject","fromLocationForProjectsMap","toString","coordinates","String","toJs","options","position","toJs$1","mapTypeControl","zoomControl","zoomControlOptions","streetViewControl","fullscreenControl","addStyledMap","map","name","mapType","mapTypes","set","setStyle","style","google","maps","StyledMapType","setMapTypeId","setStyle$1","Belt_Option","GoogleMapStyles","onLoad","zoom","setZoom","Helpers","fitBounds","undefined","length","getZoom","bounds","LatLngBounds","Belt_Array","coordinate","extend","LatLng","overlayPaneName","toJs$2","icon","url","size","Size","origin","Point","anchor","Marker","Icon","$$default","Cloudinary","disabled","sponsored","red","orange","JsComponent","make","props","noClustererRedraw","clusterer","jsProps","onClick","children","JsxRuntime","Api","sponsoredImageUrl","MarkerClusterer","Style","textColor","height","width","__zoomOnClick","zoomOnClick","averageCenter","enableRetinaIcons","gridSize","minimumClusterSize","imagePath","styles","onClusteringEnd","getPixelPositionOffset","x","y","panBox","overlayView","contentWidth","contentHeight","getMap","mapBounds","getBounds","offset","contains","setCenter","padding","top","bottom","left","right","panToBounds","InfoBox","widthPadding","heightPadding","mapPaneName","onLoad$1","mapContainerClassName","center","column","container","contentWrapper","flex","flexColumn","gap1","gap2","gap3","gap4","gap5","row","colLeft","colRight","columnWrapper","descriptionContent","descriptionHeading","lastUpdated","reviewStatusWarning","datacentersCountText","editButton","emptyProviders","headingContentWrapper","locationHeading","mapContainer","mapElement","providerDetailRow","providerImage","providerName","providerPanel","providerPanelBody","providerPanelHeadingContainer","providerPanelImageAndNameWrapper","providerTable","providerTableHead","providerTableHeadingContainer","providerTitle","providersWrapper","quantityText","roleText","css","UserColocationRfpProject_Details_LocationsScss","locations","GoogleMap","serverSide","googleMapsApiKey","Global","libraries","GoogleMapWithBounds","Caml_option","ID","id","className","UserColocationRfpProject_Details_Locations_ProviderDataCentersLocationPanel$PanelHeading","dataCentersCount","alt","src","UserColocationRfpProject_Details_Locations_ProviderDataCentersLocationPanel$PanelBody","toggleDirection","sortDirection","sortedLocations","Belt_SortArray","x1","x2","Caml","P","IconSorting","direction","param","Picture","image","large","fallbackSrc","$$Location","A","href","targetBlank","fullAddress","provider","match","React","state","action","dispatch","UserProjectDetailsPanel","bodyClassName","heading","getHeadingQuantityTextForUser","userRole","providers","tmp","tmp$1","exit","Button","Routes_Project","update","projectId","color","ghost","buttonClassName","UserColocationRfpProject_Details_Locations_Map","UserColocationRfpProject_Details_Locations_ProviderDataCentersLocationPanel","IconBuilding","additionalNotes","checkboxes","checkboxesContainer","lightBackground","notesContainer","panel","panelBody","panelHeading","productName","productRow","productServiceLabel","productServiceValue","productsServiceWrapper","propertiesContainer","propertyLeft","propertyRight","stayShaded","switchLight","switchShaded","tickmarkIcon","withColon","UserColocationRfpProject_Details_RequiredProductsScss","label","Cx","value","contractLength","startDate","rackDetails","q","quantity","powerValue","match$1","powerUnits","UserColocationRfpProject_Details_RequiredProducts_ProductServiceDescription","index","colocationSpace","powerCircuit","$$Date","format","ProjectRequiredProducts_CheckmarkableOptions","additionalOptions","cssStart","crossConnect","interconnect","cloudDirectConnect","bandwidth","cloudPlatform","internetConnectivity","UserColocationRfpProject_Details_RequiredProducts_ProductPanel$CheckmarkableOptionsWithHeading","rackTypesAndPowerDensities","__isExpanded","isExpanded","colocationSpaceConfiguration","notes","additionalNotesOrRequirements","Js_array","rack","RackTypesAndPowerDensity","UserColocationRfpProject_Details_RequiredProducts_RackDetail","internetConnectivities","match$2","match$3","UserColocationRfpProject_Details_RequiredProducts_InternetConnectivityDetail","crossConnects","UserColocationRfpProject_Details_RequiredProducts_CrossConnectDetail","cloudDirectConnects","UserColocationRfpProject_Details_RequiredProducts_CloudDirectConnectDetail","certificationRequirements","datacenterFeatures","UserColocationRfpProject_DetailsScss","project","status","description","Format","updatedAt","colocationConfigurations","UserColocationRfpProject_Details_RequiredProducts_ProductPanel","documents","UserProjectDetailsDocuments","ProjectEstimatedDates","estimatedDates","UserProjectDetailsOwner","owner","isAgent","contacts","UserProjectDetailsContactInformation","UserProjectDetailsBusinessContactInformation","businessName","businessEmail","businessPhone","businessContactName","headquartersAddress","UserProjectConciergesInformation","concierges","UserColocationRfpProject_Details_Locations","UserColocationRfpProjectScss","projectStickyBarData","viewContext","stickyBarUserRole","Project","toRole","userProjectRole","total","totalProposals","ProjectTopNavbar","ProjectHeader","title","projectStatus","ProjectNavbar","activeTab","UserColocationRfpProject_Details","ProjectStickyBar","canSendProposals","desktop","tablet","mobile","railsContext","railsContext$1","RailsContext","ColocationRfpProject","ProjectsViewContext","ProjectStickyBarData","projectStickyBar","User","fromJson","UserColocationRfpProject","_ref","context","_objectWithoutProperties","_excluded","include","decoder","T","eq","toJson","Comparable","$$Map","$$Set","Json_Decode$JsonCombinators","field","required","ColocationRfpProjectId","category","totalLocations","totalProviders","endDate","createdAt","UserContact","ColocationConfiguration","ProviderForProject","LocationForProject","json","Belt_Result","Json$JsonCombinators","decoder$1","ContractLength","decoder$2","contractLengths","additionalSpaceAndPower","bandwidths","additionalInternetConnectivity","crossConnectProviders","additionalCloudDirectConnects","cloudPlatforms","dataCenterFeatures","ConfigurationOptions","coordinatesHash","Digest","mapRef","current","__title","d","fill","hue","Js_null_undefined","lightness","saturation","gamma","visibility","weight","record","featureType","elementType","stylers","Belt_List","grey","hd","tl","standard"],"sourceRoot":""}