{"version":3,"file":"js/rescript-bundles-product-detail-details-sidebar-DetailsSidebar-res-6391ff8b9cbd064c5489.chunk.js","mappings":"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","sources":["webpack://datacenters/./client/app/rescript/bundles/product-detail/details-sidebar/DetailsSidebar.scss?01a7","webpack://datacenters/./client/app/rescript/bundles/product-detail/details-sidebar/DetailsSidebar.res.js","webpack://datacenters/./client/app/rescript/bundles/product-detail/product-details-for-sidebar/ProductDetailsForSidebar.scss?50e1","webpack://datacenters/./client/app/rescript/bundles/product-detail/product-details-for-sidebar/ProductDetailsForSidebar.res.js","webpack://datacenters/./client/app/rescript/libs/ID.res.js","webpack://datacenters/./client/app/rescript/libs/Router.res.js","webpack://datacenters/./client/app/rescript/models/ProductTerm.res.js","webpack://datacenters/./client/app/rescript/styleguide/components/Button/Button.scss?f65d","webpack://datacenters/./client/app/rescript/styleguide/components/Button/Button.res.js","webpack://datacenters/./client/app/rescript/styleguide/styles/Colors.res.js","webpack://datacenters/./client/app/rescript/styleguide/components/Icon/Icon.scss?20b6","webpack://datacenters/./client/app/rescript/styleguide/components/Icon/Icon.res.js","webpack://datacenters/./client/app/rescript/styleguide/components/Link/Link.res.js","webpack://datacenters/./client/app/rescript/styleguide/components/Spinner/Spinner.scss?83c8","webpack://datacenters/./client/app/rescript/styleguide/components/Spinner/Spinner.res.js","webpack://datacenters/./client/app/rescript/styleguide/components/Svg/Svg.res.js","webpack://datacenters/./client/app/rescript/utils/Url.res.js"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport var button = \"DetailsSidebar__button__m2hXo\";\nexport var buttonIcon = \"DetailsSidebar__buttonIcon__IldhN\";\nexport var buttonRfp = \"DetailsSidebar__buttonRFP__jJhGV\";\nexport var column = \"DetailsSidebar__column__tIVny\";\nexport var detailsSideBar = \"DetailsSidebar__detailsSideBar__leffo\";\nexport var finePrint = \"DetailsSidebar__finePrint__eEU2q\";\nexport var flex = \"DetailsSidebar__flex__ZpfSh\";\nexport var flexColumn = \"DetailsSidebar__flexColumn__Cnc_S\";\nexport var gap1 = \"DetailsSidebar__gap1__s4789\";\nexport var gap2 = \"DetailsSidebar__gap2__TsHHb\";\nexport var gap3 = \"DetailsSidebar__gap3__j4Tuy\";\nexport var gap4 = \"DetailsSidebar__gap4__n_4g0\";\nexport var gap5 = \"DetailsSidebar__gap5__QO_6J\";\nexport var row = \"DetailsSidebar__row__L5N94\";","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Url from \"../../../utils/Url.res.js\";\nimport * as Button from \"../../../styleguide/components/Button/Button.res.js\";\nimport * as IconRFP from \"../../../styleguide/icons/IconRFP.res.js\";\nimport * as IconSolidCart from \"../../../styleguide/icons/IconSolidCart.res.js\";\nimport * as Routes_Project from \"../../../routes/common/Routes_Project.res.js\";\nimport IsPast from \"date-fns/isPast\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as DetailsSidebarScss from \"./DetailsSidebar.scss\";\nimport * as ProductDetailsForSidebar from \"../product-details-for-sidebar/ProductDetailsForSidebar.res.js\";\n\nvar css = DetailsSidebarScss;\n\nfunction DetailsSidebar(props) {\n var __openModal = props.openModal;\n var product = props.product;\n var openModal = __openModal !== undefined ? __openModal : (function (prim) {\n \n });\n var productIsExpired = IsPast(product.endDate);\n return JsxRuntime.jsxs(ProductDetailsForSidebar.make, {\n product: product,\n className: css.detailsSideBar,\n userLoginStatus: props.userLoginStatus,\n setUserData: props.setUserData,\n children: [\n JsxRuntime.jsxs(Button.make, {\n size: \"MD\",\n color: \"Primary\",\n ghost: false,\n expanded: true,\n disabled: productIsExpired,\n visuallyDisabled: productIsExpired,\n busy: false,\n buttonClassName: css.buttonRFP,\n onClick: (function (param) {\n Url.visit(Routes_Project.Product.Colocation.$$new(product.id));\n }),\n children: [\n JsxRuntime.jsx(IconRFP.make, {\n title: \"RFP\",\n size: \"SM\",\n className: css.buttonIcon\n }),\n \"Customize Requirements\"\n ]\n }),\n JsxRuntime.jsx(\"div\", {\n children: \"Start an RFP and get a proposal for your custom requirements\",\n className: css.finePrint\n }),\n productIsExpired ? null : JsxRuntime.jsxs(Button.make, {\n size: \"MD\",\n color: \"Teal\",\n expanded: true,\n className: css.button,\n onClick: (function (param) {\n openModal();\n }),\n children: [\n JsxRuntime.jsx(IconSolidCart.make, {\n size: \"SM\",\n color: \"White\",\n className: css.buttonIcon\n }),\n \"Add to Cart\"\n ]\n }),\n JsxRuntime.jsx(\"div\", {\n children: \"* No payment required.\",\n className: css.finePrint\n })\n ]\n });\n}\n\nvar make = DetailsSidebar;\n\nexport {\n css ,\n make ,\n}\n/* css Not a pure module */\n","// extracted by mini-css-extract-plugin\nexport var bannerText = \"ProductDetailsForSidebar__bannerText__lDPVO\";\nexport var column = \"ProductDetailsForSidebar__column__WUmBm\";\nexport var detailsContainer = \"ProductDetailsForSidebar__detailsContainer__evA_1\";\nexport var divider = \"ProductDetailsForSidebar__divider__CALKH\";\nexport var exclusiveBanner = \"ProductDetailsForSidebar__exclusiveBanner__sIaCC\";\nexport var finePrint = \"ProductDetailsForSidebar__finePrint__jXWsI\";\nexport var flex = \"ProductDetailsForSidebar__flex__Vtyk1\";\nexport var flexColumn = \"ProductDetailsForSidebar__flexColumn__vi8l5\";\nexport var gap1 = \"ProductDetailsForSidebar__gap1__GUMNR\";\nexport var gap2 = \"ProductDetailsForSidebar__gap2__NrLlK\";\nexport var gap3 = \"ProductDetailsForSidebar__gap3__bVrCf\";\nexport var gap4 = \"ProductDetailsForSidebar__gap4__kbVZy\";\nexport var gap5 = \"ProductDetailsForSidebar__gap5__uLDGJ\";\nexport var hideDetails = \"ProductDetailsForSidebar__hideDetails__ZZkyA\";\nexport var logo = \"ProductDetailsForSidebar__logo__tqBWV\";\nexport var logoContainer = \"ProductDetailsForSidebar__logoContainer__Jrzh8\";\nexport var overflow = \"ProductDetailsForSidebar__overflow___JQJR\";\nexport var perMonth = \"ProductDetailsForSidebar__perMonth__AtJ0b\";\nexport var pricing = \"ProductDetailsForSidebar__pricing__nUYtM\";\nexport var productInfo = \"ProductDetailsForSidebar__productInfo__tUy62\";\nexport var productName = \"ProductDetailsForSidebar__productName__qd51D\";\nexport var row = \"ProductDetailsForSidebar__row__sZCUl\";\nexport var saleEndDate = \"ProductDetailsForSidebar__saleEndDate__kJ_4V\";\nexport var showDetails = \"ProductDetailsForSidebar__showDetails__kOmFo\";\nexport var specCategory = \"ProductDetailsForSidebar__specCategory__nuqUy\";\nexport var specItem = \"ProductDetailsForSidebar__specItem__fJ1DJ\";\nexport var specsContainer = \"ProductDetailsForSidebar__specsContainer__cdObe\";\nexport var specsRow = \"ProductDetailsForSidebar__specsRow__zDEgH\";","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\nimport * as Link from \"../../../styleguide/components/Link/Link.res.js\";\nimport * as Money from \"../../../libs/Money.res.js\";\nimport * as React from \"react\";\nimport * as Control from \"../../../styleguide/components/Control/Control.res.js\";\nimport * as Js_string from \"rescript/lib/es6/js_string.js\";\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 ProductTerm from \"../../../models/ProductTerm.res.js\";\nimport * as WithDataProps from \"../../../styleguide/components/WithDataProps/WithDataProps.res.js\";\nimport Format from \"date-fns/format\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as SignInModalContainer from \"../../../styleguide/modals/SignInModal/SignInModalContainer.res.js\";\nimport * as ProductDetailsForSidebarScss from \"./ProductDetailsForSidebar.scss\";\n\nvar css = ProductDetailsForSidebarScss;\n\nfunction reload() {\n window.location.reload();\n}\n\nfunction buildLogoUrl(src) {\n return Cloudinary.Url.build(\"Png\", {\n hd: {\n TAG: \"Height\",\n _0: 60\n },\n tl: /* [] */0\n }, src);\n}\n\nvar Helpers = {\n buildLogoUrl: buildLogoUrl\n};\n\nfunction reducer(state, action) {\n if (typeof action !== \"object\") {\n return {\n showDetails: !state.showDetails,\n signInModal: state.signInModal\n };\n } else {\n return {\n showDetails: state.showDetails,\n signInModal: action._0\n };\n }\n}\n\nfunction ProductDetailsForSidebar(props) {\n var userLoginStatus = props.userLoginStatus;\n var __toggleDetails = props.toggleDetails;\n var __className = props.className;\n var product = props.product;\n var className = __className !== undefined ? __className : \"\";\n var toggleDetails = __toggleDetails !== undefined ? __toggleDetails : false;\n var initialState = React.useMemo((function () {\n return {\n showDetails: !toggleDetails,\n signInModal: \"Hidden\"\n };\n }), []);\n var match = React.useReducer(reducer, initialState);\n var dispatch = match[1];\n var state = match[0];\n var tmp;\n tmp = userLoginStatus === \"LoggedIn\" ? JsxRuntime.jsxs(JsxRuntime.Fragment, {\n children: [\n JsxRuntime.jsx(WithDataProps.make, {\n props: {\n \"data-test-id\": \"product-detail-setup-fee\"\n },\n children: JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsx(\"span\", {\n children: \"Setup fee\",\n className: css.specCategory\n }),\n JsxRuntime.jsx(\"span\", {\n children: Money.formatWithCents(product.setupFee),\n className: css.specItem\n })\n ],\n className: css.specsRow\n })\n }),\n JsxRuntime.jsx(\"div\", {\n className: css.divider\n })\n ]\n }) : null;\n var tmp$1;\n tmp$1 = userLoginStatus === \"LoggedIn\" ? null : JsxRuntime.jsxs(JsxRuntime.Fragment, {\n children: [\n JsxRuntime.jsx(\"div\", {\n className: css.divider\n }),\n JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsx(\"span\", {\n children: \"Price\",\n className: css.specCategory\n }),\n JsxRuntime.jsx(\"span\", {\n children: JsxRuntime.jsx(Control.make, {\n onClick: (function (param) {\n dispatch({\n TAG: \"ToggleSignInModal\",\n _0: \"Shown\"\n });\n }),\n children: \"Sign In to See Pricing\"\n }),\n className: css.specItem\n })\n ],\n className: css.specsRow\n })\n ]\n });\n var tmp$2;\n tmp$2 = userLoginStatus === \"LoggedIn\" ? JsxRuntime.jsx(WithDataProps.make, {\n props: {\n \"data-test-id\": \"product-detail-price\"\n },\n children: JsxRuntime.jsxs(\"div\", {\n children: [\n Money.formatWithCents(product.pricePerMonth),\n JsxRuntime.jsx(\"span\", {\n children: \"/month\",\n className: css.perMonth\n })\n ]\n })\n }) : null;\n var match$1 = state.signInModal;\n return JsxRuntime.jsxs(JsxRuntime.Fragment, {\n children: [\n JsxRuntime.jsxs(\"div\", {\n children: [\n product.isExclusiveOffer ? JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsx(\"span\", {\n children: \"Exclusive\",\n className: css.bannerText\n }),\n className: css.exclusiveBanner\n }) : null,\n JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsx(Link.make, {\n href: product.providerUrl,\n children: JsxRuntime.jsx(\"img\", {\n className: css.logo,\n src: buildLogoUrl(product.providerLogo)\n })\n }),\n className: css.logoContainer\n }),\n JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsx(\"div\", {\n children: product.name,\n className: css.overflow\n }),\n className: css.productName\n }),\n toggleDetails && !state.showDetails ? JsxRuntime.jsx(Control.AsLink.make, {\n className: css.showDetails,\n onClick: (function (param) {\n dispatch(\"ToggleDetails\");\n }),\n children: \"Show details\"\n }) : null,\n JsxRuntime.jsx(\"div\", {\n children: \"Located in \" + (product.location.name + (\" (\" + (product.location.fullAddress + \")\"))),\n className: Cx.cx([\n css.productInfo,\n toggleDetails && !state.showDetails ? css.hideDetails : \"\"\n ])\n }),\n JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsx(\"span\", {\n children: \"Space\",\n className: css.specCategory\n }),\n JsxRuntime.jsx(\"span\", {\n children: product.subcategory,\n className: css.specItem\n })\n ],\n className: css.specsRow\n }),\n JsxRuntime.jsx(\"div\", {\n className: css.divider\n }),\n JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsx(\"span\", {\n children: \"Product power\",\n className: css.specCategory\n }),\n JsxRuntime.jsx(\"span\", {\n children: String(product.totalPowerKw) + \" kW\",\n className: css.specItem\n })\n ],\n className: css.specsRow\n }),\n JsxRuntime.jsx(\"div\", {\n className: css.divider\n }),\n JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsx(\"span\", {\n children: \"Power circuit\",\n className: css.specCategory\n }),\n JsxRuntime.jsx(\"span\", {\n children: String(Belt_Array.get(Js_string.split(\"(\", product.powerCircuit), 0)),\n className: css.specItem\n })\n ],\n className: css.specsRow\n }),\n JsxRuntime.jsx(\"div\", {\n className: css.divider\n }),\n JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsx(\"span\", {\n children: \"Speed\",\n className: css.specCategory\n }),\n JsxRuntime.jsx(\"span\", {\n children: product.bandwidth,\n className: css.specItem\n })\n ],\n className: css.specsRow\n }),\n JsxRuntime.jsx(\"div\", {\n className: css.divider\n }),\n JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsx(\"span\", {\n children: \"IPs\",\n className: css.specCategory\n }),\n JsxRuntime.jsx(\"span\", {\n children: product.ipAllocation,\n className: css.specItem\n })\n ],\n className: css.specsRow\n }),\n JsxRuntime.jsx(\"div\", {\n className: css.divider\n }),\n tmp,\n JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsx(\"span\", {\n children: \"Term\",\n className: css.specCategory\n }),\n JsxRuntime.jsx(\"span\", {\n children: ProductTerm.toLabel(product.term),\n className: css.specItem\n })\n ],\n className: css.specsRow\n }),\n tmp$1\n ],\n className: Cx.cx([\n css.specsContainer,\n toggleDetails && !state.showDetails ? css.hideDetails : \"\"\n ])\n }),\n JsxRuntime.jsxs(\"div\", {\n children: [\n tmp$2,\n JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsx(\"span\", {\n children: \"Sale ends on \"\n }),\n Format(product.endDate, \"MMM d\")\n ],\n className: css.saleEndDate\n })\n ],\n className: css.pricing\n }),\n Belt_Option.getWithDefault(props.children, null)\n ],\n className: Cx.cx([\n css.detailsContainer,\n className\n ])\n }),\n match$1 === \"Shown\" ? JsxRuntime.jsx(SignInModalContainer.make, {\n close: (function () {\n dispatch({\n TAG: \"ToggleSignInModal\",\n _0: \"Hidden\"\n });\n }),\n callback: (function () {\n window.location.reload();\n }),\n setUserData: props.setUserData,\n subTitle: \"Sign In to see product prices\"\n }) : null\n ]\n });\n}\n\nvar make = ProductDetailsForSidebar;\n\nexport {\n css ,\n reload ,\n Helpers ,\n reducer ,\n make ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Belt_Id from \"rescript/lib/es6/belt_Id.js\";\nimport * as Belt_Int from \"rescript/lib/es6/belt_Int.js\";\nimport * as Belt_Map from \"rescript/lib/es6/belt_Map.js\";\nimport * as Belt_Set from \"rescript/lib/es6/belt_Set.js\";\nimport * as Caml_obj from \"rescript/lib/es6/caml_obj.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 Belt_Result from \"rescript/lib/es6/belt_Result.js\";\nimport * as Json$JsonCombinators from \"@glennsl/rescript-json-combinators/src/Json.res.js\";\nimport * as Json_Decode$JsonCombinators from \"@glennsl/rescript-json-combinators/src/Json_Decode.res.js\";\nimport * as Json_Encode$JsonCombinators from \"@glennsl/rescript-json-combinators/src/Json_Encode.res.js\";\n\nfunction Int($star) {\n var T = {};\n var eq = function (id1, id2) {\n return id1 === id2;\n };\n var toString = function (id) {\n return String(id);\n };\n var encoder = function (prim) {\n return prim;\n };\n var toJson = function (id) {\n return id;\n };\n var decoder = Json_Decode$JsonCombinators.map(Json_Decode$JsonCombinators.$$int, (function (prim) {\n return prim;\n }));\n var fromJson = function (json) {\n return Belt_Result.getExn(Json_Decode$JsonCombinators.decode(json, decoder));\n };\n var toInt = function (id) {\n return id;\n };\n var cmp = Caml_obj.compare;\n var Comparable = Belt_Id.MakeComparableU({\n cmp: cmp\n });\n var make = function () {\n return Belt_Map.make(Comparable);\n };\n var $$Map = {\n make: make\n };\n var make$1 = function () {\n return Belt_Set.make(Comparable);\n };\n var fromArray = function (x) {\n return Belt_Set.fromArray(x, Comparable);\n };\n var $$Set = {\n make: make$1,\n fromArray: fromArray\n };\n return {\n T: T,\n eq: eq,\n toString: toString,\n encoder: encoder,\n toJson: toJson,\n decoder: decoder,\n fromJson: fromJson,\n toInt: toInt,\n Comparable: Comparable,\n $$Map: $$Map,\n $$Set: $$Set\n };\n}\n\nfunction $$String$1($star) {\n var T = {};\n var eq = function (id1, id2) {\n return id1 === id2;\n };\n var toJson = function (id) {\n return id;\n };\n var decoder = Json_Decode$JsonCombinators.map(Json_Decode$JsonCombinators.string, (function (prim) {\n return prim;\n }));\n var fromJson = function (json) {\n return Belt_Result.getExn(Json_Decode$JsonCombinators.decode(json, decoder));\n };\n var cmp = Caml_obj.compare;\n var Comparable = Belt_Id.MakeComparableU({\n cmp: cmp\n });\n var make = function () {\n return Belt_Map.make(Comparable);\n };\n var $$Map = {\n make: make\n };\n var make$1 = function () {\n return Belt_Set.make(Comparable);\n };\n var fromArray = function (x) {\n return Belt_Set.fromArray(x, Comparable);\n };\n var $$Set = {\n make: make$1,\n fromArray: fromArray\n };\n return {\n T: T,\n eq: eq,\n toJson: toJson,\n decoder: decoder,\n fromJson: fromJson,\n Comparable: Comparable,\n $$Map: $$Map,\n $$Set: $$Set\n };\n}\n\nvar T = {};\n\nfunction eq(id1, id2) {\n return id1 === id2;\n}\n\nfunction toString(id) {\n return String(id);\n}\n\nfunction fromString(id) {\n return Belt_Option.getExn(Belt_Int.fromString(id));\n}\n\nfunction encoder(prim) {\n return prim;\n}\n\nfunction toJson(id) {\n return id;\n}\n\nfunction toJsonOpt(id) {\n return Json_Encode$JsonCombinators.option(encoder)(Belt_Option.map(id, (function (prim) {\n return prim;\n })));\n}\n\nfunction toJsonArray(ids) {\n return Json_Encode$JsonCombinators.array(encoder)(Belt_Array.map(ids, (function (prim) {\n return prim;\n })));\n}\n\nvar decoder = Json_Decode$JsonCombinators.map(Json_Decode$JsonCombinators.$$int, (function (prim) {\n return prim;\n }));\n\nfunction fromJson(json) {\n return Belt_Result.getExn(Json$JsonCombinators.decode(json, decoder));\n}\n\nvar cmp = Caml_obj.compare;\n\nvar Comparable = Belt_Id.MakeComparableU({\n cmp: cmp\n });\n\nfunction make() {\n return Belt_Map.make(Comparable);\n}\n\nvar $$Map = {\n make: make\n};\n\nfunction make$1() {\n return Belt_Set.make(Comparable);\n}\n\nfunction fromArray(x) {\n return Belt_Set.fromArray(x, Comparable);\n}\n\nvar $$Set = {\n make: make$1,\n fromArray: fromArray\n};\n\nvar decoder$1 = Json_Decode$JsonCombinators.object(function (field) {\n return {\n id: field.required(\"id\", decoder)\n };\n });\n\nfunction fromJson$1(json) {\n return Belt_Result.getExn(Json$JsonCombinators.decode(json, decoder$1));\n}\n\nvar Id = {\n decoder: decoder$1,\n fromJson: fromJson$1\n};\n\nexport {\n Int ,\n $$String$1 as $$String,\n T ,\n eq ,\n toString ,\n fromString ,\n encoder ,\n toJson ,\n toJsonOpt ,\n toJsonArray ,\n decoder ,\n fromJson ,\n Comparable ,\n $$Map ,\n $$Set ,\n Id ,\n}\n/* decoder Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Url from \"../utils/Url.res.js\";\nimport * as Belt_Option from \"rescript/lib/es6/belt_Option.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\n\nfunction handle(path, onClick, $$event) {\n Belt_Option.map(onClick, (function (fn) {\n return fn($$event);\n }));\n if (!$$event.defaultPrevented && $$event.button === 0 && !$$event.altKey && !$$event.ctrlKey && !$$event.metaKey && !$$event.shiftKey) {\n $$event.preventDefault();\n return Url.visit(path);\n }\n \n}\n\nfunction Router$Link(props) {\n var onClick = props.onClick;\n var path = props.path;\n return JsxRuntime.jsx(\"a\", {\n children: props.children,\n className: props.className,\n href: path,\n onClick: (function (__x) {\n handle(path, onClick, __x);\n })\n });\n}\n\nvar Link = {\n handle: handle,\n make: Router$Link\n};\n\nexport {\n Link ,\n}\n/* react/jsx-runtime Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as PervasivesU from \"rescript/lib/es6/pervasivesU.js\";\n\nfunction toLabel(x) {\n switch (x) {\n case \"month\" :\n return \"1 month\";\n case \"three_years\" :\n return \"3 years\";\n case \"two_years\" :\n return \"2 years\";\n case \"year\" :\n return \"1 year\";\n default:\n return PervasivesU.failwith(\"Unknown product term\");\n }\n}\n\nexport {\n toLabel ,\n}\n/* No side effect */\n","// extracted by mini-css-extract-plugin\nexport var busy = \"Button__busy__se8U4\";\nexport var button = \"Button__button__q1G4V\";\nexport var colorClear = \"Button__colorClear__mMjVb\";\nexport var colorDarkerGray = \"Button__colorDarkerGray__IAq8O\";\nexport var colorGhostClear = \"Button__colorGhostClear__PmnyK\";\nexport var colorGhostPink = \"Button__colorGhostPink__IsVLq\";\nexport var colorGhostPrimary = \"Button__colorGhostPrimary__FeHCq\";\nexport var colorGhostRed = \"Button__colorGhostRed___JWPq\";\nexport var colorGhostRedDarker = \"Button__colorGhostRedDarker__tLEEX\";\nexport var colorGhostTeal = \"Button__colorGhostTeal__B0Ge5\";\nexport var colorGray = \"Button__colorGray__tAI6V\";\nexport var colorOrange = \"Button__colorOrange__Bx7EG\";\nexport var colorPink = \"Button__colorPink__i3BXm\";\nexport var colorPrimary = \"Button__colorPrimary__UKhKJ\";\nexport var colorRed = \"Button__colorRed__PWByV\";\nexport var colorRedDarker = \"Button__colorRedDarker__Q0K3s\";\nexport var colorTeal = \"Button__colorTeal__MGhVa\";\nexport var colorWhite = \"Button__colorWhite___YKXV\";\nexport var column = \"Button__column__qJCW0\";\nexport var expanded = \"Button__expanded__lNYJk\";\nexport var flex = \"Button__flex__wLbxC\";\nexport var flexColumn = \"Button__flexColumn__Dyc52\";\nexport var gap1 = \"Button__gap1__cYT6Y\";\nexport var gap2 = \"Button__gap2__KrybM\";\nexport var gap3 = \"Button__gap3__zjXsj\";\nexport var gap4 = \"Button__gap4__hZWJj\";\nexport var gap5 = \"Button__gap5__EmrnX\";\nexport var iconSuffixComponent = \"Button__iconSuffixComponent__J2wit\";\nexport var marginLeft = \"Button__marginLeft__CWXQX\";\nexport var marginRight = \"Button__marginRight__JYWHj\";\nexport var row = \"Button__row__fSVqT\";\nexport var sizeLg = \"Button__sizeLg__nbVdg\";\nexport var sizeMd = \"Button__sizeMd__pu6ef\";\nexport var sizeSm = \"Button__sizeSm__Vt43J\";\nexport var sizeXs = \"Button__sizeXs__bhYVc\";\nexport var visuallyDisabled = \"Button__visuallyDisabled__EVH03\";\nexport var wrapper = \"Button__wrapper__nHhEx\";","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\nimport * as Router from \"../../../libs/Router.res.js\";\nimport * as Spinner from \"../Spinner/Spinner.res.js\";\nimport * as Caml_option from \"rescript/lib/es6/caml_option.js\";\nimport * as ButtonScss from \"./Button.scss\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\n\nvar css = ButtonScss;\n\nfunction wrapperClassNameMaker(size, expanded, margin, className, param) {\n var tmp;\n switch (size) {\n case \"XS\" :\n tmp = css.sizeXs;\n break;\n case \"SM\" :\n tmp = css.sizeSm;\n break;\n case \"MD\" :\n tmp = css.sizeMd;\n break;\n case \"LG\" :\n tmp = css.sizeLg;\n break;\n \n }\n var tmp$1;\n tmp$1 = margin !== undefined ? (\n margin === \"RightMargin\" ? css.marginRight : css.marginLeft\n ) : \"\";\n return Cx.cx([\n css.wrapper,\n expanded ? css.expanded : \"\",\n tmp,\n tmp$1,\n className\n ]);\n}\n\nfunction buttonClassNameMaker(color, ghost, expanded, visuallyDisabled, buttonClassNameOpt, busy) {\n var buttonClassName = buttonClassNameOpt !== undefined ? buttonClassNameOpt : \"\";\n var tmp;\n switch (color) {\n case \"Primary\" :\n tmp = ghost ? css.colorGhostPrimary : css.colorPrimary;\n break;\n case \"Teal\" :\n tmp = ghost ? css.colorGhostTeal : css.colorTeal;\n break;\n case \"Pink\" :\n tmp = ghost ? css.colorGhostPink : css.colorPink;\n break;\n case \"Gray\" :\n tmp = css.colorGray;\n break;\n case \"DarkerGray\" :\n tmp = css.colorDarkerGray;\n break;\n case \"Red\" :\n tmp = ghost ? css.colorGhostRed : css.colorRed;\n break;\n case \"White\" :\n tmp = css.colorWhite;\n break;\n case \"Clear\" :\n tmp = ghost ? css.colorGhostClear : css.colorClear;\n break;\n case \"RedDarker\" :\n tmp = ghost ? css.colorGhostRedDarker : css.colorRedDarker;\n break;\n case \"Orange\" :\n tmp = ghost ? css.colorGhostOrange : css.colorOrange;\n break;\n \n }\n return Cx.cx([\n css.button,\n tmp,\n expanded ? css.expanded : \"\",\n visuallyDisabled ? css.visuallyDisabled : \"\",\n busy ? css.busy : \"\",\n buttonClassName\n ]);\n}\n\nfunction spinnerSize(size) {\n switch (size) {\n case \"XS\" :\n return \"XS\";\n case \"SM\" :\n return \"SM\";\n case \"MD\" :\n return \"MD\";\n case \"LG\" :\n return \"LG\";\n \n }\n}\n\nfunction spinnerColor(color, ghost) {\n switch (color) {\n case \"Teal\" :\n if (ghost) {\n return \"Teal\";\n } else {\n return \"White\";\n }\n case \"Pink\" :\n if (ghost) {\n return \"Pink\";\n } else {\n return \"White\";\n }\n case \"Red\" :\n if (ghost) {\n return \"Red\";\n } else {\n return \"White\";\n }\n case \"RedDarker\" :\n if (ghost) {\n return \"RedDarker\";\n } else {\n return \"White\";\n }\n case \"Primary\" :\n case \"Orange\" :\n if (ghost) {\n return \"Orange\";\n } else {\n return \"White\";\n }\n default:\n return \"Black\";\n }\n}\n\nfunction Button(props) {\n var iconSuffixComponent = props.iconSuffixComponent;\n var __buttonClassName = props.buttonClassName;\n var __className = props.className;\n var __submit = props.submit;\n var __busy = props.busy;\n var __visuallyDisabled = props.visuallyDisabled;\n var __disabled = props.disabled;\n var __expanded = props.expanded;\n var __ghost = props.ghost;\n var color = props.color;\n var size = props.size;\n var ghost = __ghost !== undefined ? __ghost : false;\n var expanded = __expanded !== undefined ? __expanded : false;\n var disabled = __disabled !== undefined ? __disabled : false;\n var visuallyDisabled = __visuallyDisabled !== undefined ? __visuallyDisabled : false;\n var busy = __busy !== undefined ? __busy : false;\n var submit = __submit !== undefined ? __submit : false;\n var className = __className !== undefined ? __className : \"\";\n var buttonClassName = __buttonClassName !== undefined ? __buttonClassName : \"\";\n return JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsxs(\"button\", {\n children: [\n props.children,\n iconSuffixComponent !== undefined ? JsxRuntime.jsx(\"div\", {\n children: Caml_option.valFromOption(iconSuffixComponent),\n className: css.iconSuffixComponent\n }) : null\n ],\n className: buttonClassNameMaker(color, ghost, expanded, visuallyDisabled, buttonClassName, busy),\n disabled: disabled || visuallyDisabled,\n type: submit ? \"submit\" : \"button\",\n onClick: props.onClick\n }),\n busy ? JsxRuntime.jsx(Spinner.make, {\n size: spinnerSize(size),\n color: spinnerColor(color, ghost),\n centered: true\n }) : null\n ],\n className: wrapperClassNameMaker(size, expanded, props.margin, className, undefined),\n id: props.id\n });\n}\n\nvar css$1 = ButtonScss;\n\nfunction Button$AsLink(props) {\n var __buttonClassName = props.buttonClassName;\n var __className = props.className;\n var __visuallyDisabled = props.visuallyDisabled;\n var __expanded = props.expanded;\n var __ghost = props.ghost;\n var ghost = __ghost !== undefined ? __ghost : false;\n var expanded = __expanded !== undefined ? __expanded : false;\n var visuallyDisabled = __visuallyDisabled !== undefined ? __visuallyDisabled : false;\n var className = __className !== undefined ? __className : \"\";\n var buttonClassName = __buttonClassName !== undefined ? __buttonClassName : \"\";\n return JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsx(Router.Link.make, {\n path: props.href,\n className: buttonClassNameMaker(props.color, ghost, expanded, visuallyDisabled, buttonClassName, false),\n onClick: props.onClick,\n children: props.children\n }),\n className: wrapperClassNameMaker(props.size, expanded, props.margin, className, undefined),\n id: props.id\n });\n}\n\nvar AsLink = {\n css: css$1,\n make: Button$AsLink\n};\n\nvar css$2 = ButtonScss;\n\nfunction Button$AsNativeLink(props) {\n var __buttonClassName = props.buttonClassName;\n var __className = props.className;\n var __visuallyDisabled = props.visuallyDisabled;\n var __expanded = props.expanded;\n var __ghost = props.ghost;\n var targetBlank = props.targetBlank;\n var ghost = __ghost !== undefined ? __ghost : false;\n var expanded = __expanded !== undefined ? __expanded : false;\n var visuallyDisabled = __visuallyDisabled !== undefined ? __visuallyDisabled : false;\n var className = __className !== undefined ? __className : \"\";\n var buttonClassName = __buttonClassName !== undefined ? __buttonClassName : \"\";\n return JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsx(\"a\", {\n children: props.children,\n className: buttonClassNameMaker(props.color, ghost, expanded, visuallyDisabled, buttonClassName, false),\n href: props.href,\n rel: targetBlank !== undefined && targetBlank ? \"noopener noreferrer\" : undefined,\n target: targetBlank !== undefined && targetBlank ? \"_blank\" : undefined,\n onClick: props.onClick\n }),\n className: wrapperClassNameMaker(props.size, expanded, props.margin, className, undefined)\n });\n}\n\nvar AsNativeLink = {\n css: css$2,\n make: Button$AsNativeLink\n};\n\nvar make = Button;\n\nexport {\n css ,\n wrapperClassNameMaker ,\n buttonClassNameMaker ,\n spinnerSize ,\n spinnerColor ,\n make ,\n AsLink ,\n AsNativeLink ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\n\nvar teal = \"#18c3bb\";\n\nvar orange = \"#ff7801\";\n\nvar red = \"#ff2e37\";\n\nvar white = \"#ffffff\";\n\nvar gray = \"#555\";\n\nvar grayText = \"#5c667a\";\n\nvar lightGray = \"#777\";\n\nvar lighterGray = \"#b8b8b8\";\n\nvar lightestGray = \"#e8e8e8\";\n\nvar extraLightGray = \"#f5f5f5\";\n\nvar darkGray = \"#98a0b0\";\n\nvar darkerGray = \"#292f3b\";\n\nvar darkOrange = \"#9d4e09\";\n\nvar purple = \"#933cdd\";\n\nvar cinnabar = \"#ea4c3a\";\n\nvar yellowText = \"#ffc107\";\n\nexport {\n teal ,\n orange ,\n red ,\n white ,\n gray ,\n grayText ,\n lightGray ,\n lighterGray ,\n lightestGray ,\n extraLightGray ,\n darkGray ,\n darkerGray ,\n darkOrange ,\n purple ,\n cinnabar ,\n yellowText ,\n}\n/* No side effect */\n","// extracted by mini-css-extract-plugin\nexport var column = \"Icon__column__XWFzs\";\nexport var flex = \"Icon__flex__TrC0k\";\nexport var flexColumn = \"Icon__flexColumn__Zye1M\";\nexport var gap1 = \"Icon__gap1__heVI8\";\nexport var gap2 = \"Icon__gap2__kQFFD\";\nexport var gap3 = \"Icon__gap3__zgM0l\";\nexport var gap4 = \"Icon__gap4__QWfea\";\nexport var gap5 = \"Icon__gap5__D6XU_\";\nexport var icon = \"Icon__icon__iiX1g\";\nexport var marginLeft = \"Icon__marginLeft__e8CDx\";\nexport var marginRight = \"Icon__marginRight__SwuUG\";\nexport var row = \"Icon__row__doLPA\";\nexport var sizeLg = \"Icon__sizeLg__QU4PN\";\nexport var sizeMd = \"Icon__sizeMd__rmnrX\";\nexport var sizeSm = \"Icon__sizeSm__niaoi\";\nexport var sizeXl = \"Icon__sizeXl__kSPyU\";\nexport var sizeXs = \"Icon__sizeXs__WEL1E\";\nexport var sizeXxl = \"Icon__sizeXxl__MK_6P\";\nexport var sizeXxs = \"Icon__sizeXxs__dXytg\";\nexport var sizeXxxl = \"Icon__sizeXxxl__VXmOv\";\nexport var sizeXxxs = \"Icon__sizeXxxs__iuIQn\";\nexport var sizeXxxxl = \"Icon__sizeXxxxl__RCKon\";\nexport var sizeXxxxxl = \"Icon__sizeXxxxxl__bFrGn\";","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\nimport * as Svg from \"../Svg/Svg.res.js\";\nimport * as Colors from \"../../styles/Colors.res.js\";\nimport * as IconScss from \"./Icon.scss\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\n\nvar css = IconScss;\n\nvar iconSize = \"16\";\n\nvar Margin = {};\n\nfunction mapColor(color) {\n switch (color) {\n case \"Teal\" :\n return Colors.teal;\n case \"Red\" :\n return Colors.red;\n case \"Gray\" :\n return Colors.gray;\n case \"GrayText\" :\n return Colors.grayText;\n case \"White\" :\n return Colors.white;\n case \"LightGray\" :\n return Colors.lightGray;\n case \"LighterGray\" :\n return Colors.lighterGray;\n case \"LightestGray\" :\n return Colors.lightestGray;\n case \"ExtraLightGray\" :\n return Colors.extraLightGray;\n case \"DarkGray\" :\n return Colors.darkGray;\n case \"DarkerGray\" :\n return Colors.darkerGray;\n case \"DarkOrange\" :\n return Colors.darkOrange;\n case \"Cinnabar\" :\n return Colors.cinnabar;\n case \"YellowText\" :\n return Colors.yellowText;\n \n }\n}\n\nfunction style(color) {\n return {\n fill: mapColor(color)\n };\n}\n\nfunction iconClassName(size, margin, className) {\n var tmp;\n switch (size) {\n case \"XXXS\" :\n tmp = css.sizeXxxs;\n break;\n case \"XXS\" :\n tmp = css.sizeXxs;\n break;\n case \"XS\" :\n tmp = css.sizeXs;\n break;\n case \"SM\" :\n tmp = css.sizeSm;\n break;\n case \"MD\" :\n tmp = css.sizeMd;\n break;\n case \"LG\" :\n tmp = css.sizeLg;\n break;\n case \"XL\" :\n tmp = css.sizeXl;\n break;\n case \"XXL\" :\n tmp = css.sizeXxl;\n break;\n case \"XXXL\" :\n tmp = css.sizeXxxl;\n break;\n case \"XXXXL\" :\n tmp = css.sizeXxxxl;\n break;\n case \"XXXXXL\" :\n tmp = css.sizeXxxxxl;\n break;\n \n }\n var tmp$1;\n tmp$1 = margin !== undefined ? (\n margin === \"Left\" ? css.marginLeft : css.marginRight\n ) : \"\";\n return Cx.cx([\n css.icon,\n tmp,\n tmp$1,\n className\n ]);\n}\n\nfunction Icon(props) {\n var __className = props.className;\n var __viewBoxSize = props.viewBoxSize;\n var viewBoxSize = __viewBoxSize !== undefined ? __viewBoxSize : iconSize;\n var className = __className !== undefined ? __className : \"\";\n return JsxRuntime.jsx(Svg.make, {\n title: props.title,\n viewBoxWidth: viewBoxSize,\n viewBoxHeight: viewBoxSize,\n className: iconClassName(props.size, props.margin, className),\n children: props.children\n });\n}\n\nvar make = Icon;\n\nexport {\n css ,\n iconSize ,\n Margin ,\n mapColor ,\n style ,\n iconClassName ,\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 Router from \"../../../libs/Router.res.js\";\nimport * as LinkScss from \"./Link.scss\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\n\nvar css = LinkScss;\n\nfunction Link(props) {\n var __className = props.className;\n var className = __className !== undefined ? __className : \"\";\n return JsxRuntime.jsx(Router.Link.make, {\n path: props.href,\n className: Cx.cx([\n css.link,\n className\n ]),\n children: props.children\n });\n}\n\nvar make = Link;\n\nexport {\n css ,\n make ,\n}\n/* css Not a pure module */\n","// extracted by mini-css-extract-plugin\nexport var bgSemiTransparentDark = \"Spinner__bgSemiTransparentDark__I7RHU\";\nexport var bgWhite = \"Spinner__bgWhite__rCWUF\";\nexport var centeredContainer = \"Spinner__centeredContainer__YhHpi\";\nexport var centeredWrapper = \"Spinner__centeredWrapper__rvyMf\";\nexport var colLeft = \"Spinner__colLeft__d_yts\";\nexport var colMiddle = \"Spinner__colMiddle__zrQVh\";\nexport var colRight = \"Spinner__colRight__p2mF7\";\nexport var colorBlack = \"Spinner__colorBlack__AwwYp\";\nexport var colorOrange = \"Spinner__colorOrange__m7Boe\";\nexport var colorPink = \"Spinner__colorPink__UTTKT\";\nexport var colorRed = \"Spinner__colorRed__xOjqI\";\nexport var colorRedDarker = \"Spinner__colorRedDarker__USVIY\";\nexport var colorTeal = \"Spinner__colorTeal__vWnlz\";\nexport var colorWhite = \"Spinner__colorWhite__WBFdt\";\nexport var column = \"Spinner__column__JOwp1\";\nexport var container = \"Spinner__container__mOw1L\";\nexport var flex = \"Spinner__flex__olKjL\";\nexport var flexColumn = \"Spinner__flexColumn__rRiUX\";\nexport var gap1 = \"Spinner__gap1__oD8CL\";\nexport var gap2 = \"Spinner__gap2__cILir\";\nexport var gap3 = \"Spinner__gap3__gU0Zd\";\nexport var gap4 = \"Spinner__gap4__NCWR8\";\nexport var gap5 = \"Spinner__gap5__BFvwS\";\nexport var row = \"Spinner__row__Olul9\";\nexport var spinner = \"Spinner__spinner__N6pgk\";\nexport var wrapper = \"Spinner__wrapper__hrrgw\";","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\nimport * as SpinnerScss from \"./Spinner.scss\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\n\nvar css = SpinnerScss;\n\nfunction px(value) {\n return String(value) + \"px\";\n}\n\nfunction getColorClassName(color) {\n switch (color) {\n case \"Orange\" :\n return css.colorOrange;\n case \"Teal\" :\n return css.colorTeal;\n case \"Pink\" :\n return css.colorPink;\n case \"Red\" :\n return css.colorRed;\n case \"White\" :\n return css.colorWhite;\n case \"Black\" :\n return css.colorBlack;\n case \"RedDarker\" :\n return css.colorRedDarker;\n \n }\n}\n\nfunction buildContainerClassName(bg, centered) {\n var bgClassName = bg !== undefined ? (\n bg === \"WhiteBg\" ? css.bgWhite : css.bgSemiTransparentDark\n ) : \"\";\n return Cx.cx([\n centered ? css.centeredContainer : css.container,\n bgClassName\n ]);\n}\n\nfunction Spinner(props) {\n var __centered = props.centered;\n var centered = __centered !== undefined ? __centered : true;\n var mappedSize;\n switch (props.size) {\n case \"XS\" :\n mappedSize = 12;\n break;\n case \"SM\" :\n mappedSize = 14;\n break;\n case \"MD\" :\n mappedSize = 18;\n break;\n case \"LG\" :\n mappedSize = 22;\n break;\n case \"XL\" :\n mappedSize = 28;\n break;\n \n }\n var normalizedSize = mappedSize * 0.75;\n var spinnerHeight = normalizedSize / 1.5 | 0;\n var colMargin = normalizedSize > 15.0 ? 3 : 2;\n var colWidth = normalizedSize * 0.5 | 0;\n var colHeight = normalizedSize | 0;\n var colorClassName = getColorClassName(props.color);\n return JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsx(\"span\", {\n className: Cx.cx([\n css.colLeft,\n colorClassName\n ]),\n style: {\n height: String(colHeight) + \"px\",\n width: String(colWidth) + \"px\"\n }\n }),\n JsxRuntime.jsx(\"span\", {\n className: Cx.cx([\n css.colMiddle,\n colorClassName\n ]),\n style: {\n height: String(colHeight) + \"px\",\n marginRight: String(colMargin) + \"px\",\n marginLeft: String(colMargin) + \"px\",\n width: String(colWidth) + \"px\"\n }\n }),\n JsxRuntime.jsx(\"span\", {\n className: Cx.cx([\n css.colRight,\n colorClassName\n ]),\n style: {\n height: String(colHeight) + \"px\",\n width: String(colWidth) + \"px\"\n }\n })\n ],\n className: css.spinner,\n style: {\n height: String(spinnerHeight) + \"px\"\n }\n }),\n className: centered ? css.centeredWrapper : css.wrapper\n }),\n className: buildContainerClassName(props.bg, centered)\n });\n}\n\nvar make = Spinner;\n\nexport {\n css ,\n px ,\n getColorClassName ,\n buildContainerClassName ,\n make ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as JsxRuntime from \"react/jsx-runtime\";\n\nfunction Svg(props) {\n var title = props.title;\n var id = \"icon-title-\" + title;\n var viewBox = \"0 0 \" + (props.viewBoxWidth + (\" \" + props.viewBoxHeight));\n return JsxRuntime.jsxs(\"svg\", {\n children: [\n JsxRuntime.jsx(\"title\", {\n children: title,\n id: id\n }),\n props.children\n ],\n \"aria-labelledby\": id,\n className: props.className,\n viewBox: viewBox,\n xmlns: \"http://www.w3.org/2000/svg\"\n });\n}\n\nvar make = Svg;\n\nexport {\n make ,\n}\n/* react/jsx-runtime Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Js_string from \"rescript/lib/es6/js_string.js\";\n\nfunction visit(url) {\n window.location.href = url;\n}\n\nfunction visitBlank(url) {\n window.open(url);\n}\n\nfunction formatUrl(url) {\n if (Js_string.startsWith(url, \"http://\") || Js_string.startsWith(url, \"https://\")) {\n return url;\n } else {\n return \"https://\" + url;\n }\n}\n\nvar Helper = {\n formatUrl: formatUrl\n};\n\nexport {\n visit ,\n visitBlank ,\n Helper ,\n}\n/* No side effect */\n"],"names":["buttonIcon","buttonRfp","column","detailsSideBar","finePrint","flex","flexColumn","gap1","gap2","gap3","gap4","gap5","row","css","DetailsSidebarScss","make","props","__openModal","openModal","product","undefined","prim","productIsExpired","IsPast","endDate","JsxRuntime","ProductDetailsForSidebar","className","userLoginStatus","setUserData","children","Button","size","color","ghost","expanded","disabled","visuallyDisabled","busy","buttonClassName","buttonRFP","onClick","param","Url","Routes_Project","Colocation","$$new","id","IconRFP","title","button","IconSolidCart","bannerText","detailsContainer","divider","exclusiveBanner","hideDetails","logo","logoContainer","overflow","perMonth","pricing","productInfo","productName","saleEndDate","showDetails","specCategory","specItem","specsContainer","specsRow","ProductDetailsForSidebarScss","buildLogoUrl","src","Cloudinary","build","hd","TAG","_0","tl","reducer","state","action","signInModal","tmp","tmp$1","tmp$2","__toggleDetails","toggleDetails","__className","initialState","React","match","dispatch","WithDataProps","Money","setupFee","Control","pricePerMonth","match$1","isExclusiveOffer","Link","href","providerUrl","providerLogo","name","location","fullAddress","Cx","subcategory","String","totalPowerKw","Belt_Array","Js_string","powerCircuit","bandwidth","ipAllocation","ProductTerm","term","Format","Belt_Option","SignInModalContainer","close","callback","window","reload","subTitle","Int","$star","decoder","Json_Decode$JsonCombinators","cmp","Caml_obj","Comparable","Belt_Id","T","eq","id1","id2","toString","encoder","toJson","fromJson","json","Belt_Result","toInt","$$Map","Belt_Map","$$Set","Belt_Set","fromArray","x","$$String$1","fromString","Belt_Int","toJsonOpt","Json_Encode$JsonCombinators","toJsonArray","ids","Json$JsonCombinators","decoder$1","field","required","Id","handle","path","$$event","fn","defaultPrevented","altKey","ctrlKey","metaKey","shiftKey","preventDefault","__x","toLabel","PervasivesU","colorClear","colorDarkerGray","colorGhostClear","colorGhostPink","colorGhostPrimary","colorGhostRed","colorGhostRedDarker","colorGhostTeal","colorGray","colorOrange","colorPink","colorPrimary","colorRed","colorRedDarker","colorTeal","colorWhite","iconSuffixComponent","marginLeft","marginRight","sizeLg","sizeMd","sizeSm","sizeXs","wrapper","ButtonScss","wrapperClassNameMaker","margin","buttonClassNameMaker","buttonClassNameOpt","colorGhostOrange","spinnerSize","spinnerColor","AsLink","__buttonClassName","__visuallyDisabled","__expanded","__ghost","Router","AsNativeLink","targetBlank","rel","target","__submit","submit","__busy","__disabled","Caml_option","type","Spinner","centered","teal","red","white","gray","grayText","lightGray","lighterGray","lightestGray","extraLightGray","darkGray","darkerGray","darkOrange","cinnabar","yellowText","icon","sizeXl","sizeXxl","sizeXxs","sizeXxxl","sizeXxxs","sizeXxxxl","sizeXxxxxl","IconScss","mapColor","Colors","iconClassName","__viewBoxSize","viewBoxSize","Svg","viewBoxWidth","viewBoxHeight","LinkScss","link","bgSemiTransparentDark","bgWhite","centeredContainer","centeredWrapper","colLeft","colMiddle","colRight","colorBlack","container","spinner","SpinnerScss","buildContainerClassName","bg","bgClassName","mappedSize","__centered","normalizedSize","spinnerHeight","colMargin","colWidth","colHeight","colorClassName","getColorClassName","style","height","width","viewBox","xmlns","visit","url","visitBlank","open","Helper","formatUrl"],"sourceRoot":""}