{"version":3,"file":"js/rescript-bundles-user-dashboard-projects-create-cloud-project-general-information-f981a1442c04f0a9196d.chunk.js","mappings":"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","sources":["webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/create-cloud-project-general-information/CreateCloudProjectGeneralInformation.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/create-cloud-project-general-information/CreateCloudProjectGeneralInformation__JsBridge.res.js","webpack://datacenters/./client/app/rescript/bundles/user-dashboard/projects/create-cloud-project-general-information/index.js"],"sourcesContent":["// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Api from \"../../../../api/Api.res.js\";\nimport * as $$Date from \"../../../../libs/Date.res.js\";\nimport * as React from \"react\";\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport * as Belt_Result from \"rescript/lib/es6/belt_Result.js\";\nimport * as Caml_option from \"rescript/lib/es6/caml_option.js\";\nimport * as PervasivesU from \"rescript/lib/es6/pervasivesU.js\";\nimport * as Routes_Project from \"../../../../routes/common/Routes_Project.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\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 ProjectWizardGeneralInformation from \"../_components/ProjectWizardGeneralInformation/ProjectWizardGeneralInformation.res.js\";\n\nvar decoder = Json_Decode$JsonCombinators.object(function (field) {\n return {\n startDate: field.required(\"startDate\", $$Date.Naive.decoder),\n contractLength: field.required(\"contractLength\", Json_Decode$JsonCombinators.$$int)\n };\n });\n\nfunction fromJson(json) {\n return Belt_Result.getExn(Json$JsonCombinators.decode(json, decoder));\n}\n\nvar Configuration = {\n decoder: decoder,\n fromJson: fromJson\n};\n\nfunction title(cloud) {\n if (cloud === \"IaasServer\") {\n return \"IaaS Cloud Servers Project\";\n } else {\n return \"IaaS Cloud Storage Project\";\n }\n}\n\nfunction description(configurations) {\n return \"The proposed cloud project has a projected service start date of \" + (Belt_Array.map(configurations, (function (config) {\n return $$Date.Naive.format(config.startDate, \"dd MMM yyyy\");\n })).join(\", \") + (\" with a contract term of \" + (Belt_Array.map(configurations, (function (config) {\n return String(config.contractLength / 12 | 0);\n })).join(\", \") + \" years.\")));\n}\n\nvar ProjectInfo = {\n title: title,\n description: description\n};\n\nfunction CreateCloudProjectGeneralInformation(props) {\n var description$1 = props.description;\n var configurations = props.configurations;\n var title$1 = props.title;\n var category = props.category;\n var projectId = props.projectId;\n var cloudType = React.useMemo((function () {\n switch (category.TAG) {\n case \"Colocation\" :\n return PervasivesU.failwith(\"Colocation category in Cloud project bundle\");\n case \"Cloud\" :\n return category._0;\n case \"Internet\" :\n return PervasivesU.failwith(\"Internet category in Cloud project bundle\");\n case \"Network\" :\n return PervasivesU.failwith(\"Network category in Cloud project bundle\");\n case \"BareMetal\" :\n return PervasivesU.failwith(\"Bare Metal category in Cloud project bundle\");\n \n }\n }), [category]);\n var api = React.useMemo((function () {\n var createProject = function (extra, extra$1, extra$2, extra$3, extra$4, extra$5, extra$6, extra$7, extra$8, extra$9) {\n return Api.createNewProject({\n TAG: \"Cloud\",\n _0: cloudType\n }, extra, extra$1, extra$2, extra$3, extra$4, extra$5, extra$6, extra$7, extra$8, extra$9);\n };\n var saveDraftProjectAndContinueLater = function (extra) {\n return Api.saveCloudDraftProjectAndContinueLater(\"Cloud\", {\n TAG: \"Cloud\",\n _0: cloudType\n }, extra);\n };\n return {\n saveDraft: Api.saveProjectGeneralInfoDraft,\n createProject: createProject,\n updateProject: Api.updateProject,\n saveDraftProjectAndContinueLater: saveDraftProjectAndContinueLater\n };\n }), [cloudType]);\n var title$2 = React.useMemo((function () {\n if (title$1 !== undefined && title$1 !== \"\") {\n return title$1;\n } else {\n return title(cloudType);\n }\n }), [\n title$1,\n category\n ]);\n var description$2 = React.useMemo((function () {\n if (description$1 !== undefined && description$1 !== \"\") {\n return description$1;\n } else {\n return description(configurations);\n }\n }), [\n description$1,\n configurations\n ]);\n var navigationTotalSteps = React.useMemo((function () {\n return 3;\n }), [cloudType]);\n var navigationBackButtonLocation = React.useMemo((function () {\n if (projectId !== undefined) {\n return Routes_Project.Cloud.Provider.editSelector(Caml_option.valFromOption(projectId), cloudType);\n } else {\n return Routes_Project.Cloud.Provider.newSelector(cloudType);\n }\n }), [projectId]);\n return JsxRuntime.jsx(ProjectWizardGeneralInformation.make, {\n api: api,\n userLoginStatus: props.userLoginStatus,\n userRole: props.userRole,\n projectId: projectId,\n title: title$2,\n description: description$2,\n alreadyUploadedDocuments: props.alreadyUploadedDocuments,\n businessName: props.businessName,\n businessContactName: props.businessContactName,\n businessEmail: props.businessEmail,\n businessPhone: props.businessPhone,\n headquartersAddress: props.headquartersAddress,\n contacts: props.contacts,\n isAgent: props.isAgent,\n navigationTotalSteps: navigationTotalSteps,\n navigationBackButtonLocation: navigationBackButtonLocation,\n mobile: props.mobile,\n status: props.status\n });\n}\n\nvar make = CreateCloudProjectGeneralInformation;\n\nexport {\n Configuration ,\n ProjectInfo ,\n make ,\n}\n/* decoder Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\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 Belt_Option from \"rescript/lib/es6/belt_Option.js\";\nimport * as Caml_option from \"rescript/lib/es6/caml_option.js\";\nimport * as PervasivesU from \"rescript/lib/es6/pervasivesU.js\";\nimport * as UserContact from \"../../../../models/UserContact.res.js\";\nimport * as RailsContext from \"../../../../models/RailsContext.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as CreateCloudProjectGeneralInformation from \"./CreateCloudProjectGeneralInformation.res.js\";\n\nfunction CreateCloudProjectGeneralInformation__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 projectId = React.useMemo((function () {\n return Caml_option.nullable_to_opt(jsProps.projectId);\n }), [jsProps.projectId]);\n var category = Project.Category.fromString(jsProps.category, jsProps.subcategory);\n var title = React.useMemo((function () {\n return Caml_option.nullable_to_opt(jsProps.title);\n }), [jsProps.title]);\n var description = React.useMemo((function () {\n return Caml_option.nullable_to_opt(jsProps.description);\n }), [jsProps.description]);\n var alreadyUploadedDocuments = React.useMemo((function () {\n return Belt_Array.map(jsProps.documents, Project.$$Document.fromJs);\n }), [jsProps.documents]);\n var businessName = React.useMemo((function () {\n return Belt_Option.getWithDefault(Caml_option.nullable_to_opt(jsProps.businessName), \"\");\n }), [jsProps.businessName]);\n var businessContactName = React.useMemo((function () {\n return Belt_Option.getWithDefault(Caml_option.nullable_to_opt(jsProps.businessContactName), \"\");\n }), [jsProps.businessContactName]);\n var businessEmail = React.useMemo((function () {\n return Belt_Option.getWithDefault(Caml_option.nullable_to_opt(jsProps.businessEmail), \"\");\n }), [jsProps.businessEmail]);\n var businessPhone = React.useMemo((function () {\n return Belt_Option.getWithDefault(Caml_option.nullable_to_opt(jsProps.businessPhone), \"\");\n }), [jsProps.businessPhone]);\n var headquartersAddress = React.useMemo((function () {\n return Belt_Option.getWithDefault(Caml_option.nullable_to_opt(jsProps.headquartersAddress), \"\");\n }), [jsProps.headquartersAddress]);\n var contacts = React.useMemo((function () {\n return Belt_Array.map(jsProps.contacts, UserContact.fromJs);\n }), [jsProps.contacts]);\n var configurations = React.useMemo((function () {\n var configurations = jsProps.cloudIaasServersConfigurations !== undefined ? jsProps.cloudIaasServersConfigurations : (\n jsProps.cloudIaasStorageConfigurations !== undefined ? jsProps.cloudIaasStorageConfigurations : PervasivesU.failwith(\"No configurations found\")\n );\n return Belt_Array.map(configurations, CreateCloudProjectGeneralInformation.Configuration.fromJson);\n }), []);\n var status = React.useMemo((function () {\n return Project.Status.fromString(jsProps.status);\n }), [jsProps.status]);\n return JsxRuntime.jsx(CreateCloudProjectGeneralInformation.make, {\n userLoginStatus: railsContext$1.userLoginStatus,\n userRole: railsContext$1.userRole,\n projectId: projectId,\n category: category,\n title: title,\n configurations: configurations,\n description: description,\n alreadyUploadedDocuments: alreadyUploadedDocuments,\n businessName: businessName,\n businessContactName: businessContactName,\n businessEmail: businessEmail,\n businessPhone: businessPhone,\n headquartersAddress: headquartersAddress,\n contacts: contacts,\n isAgent: jsProps.isAgent,\n mobile: railsContext$1.mobile,\n status: status\n });\n}\n\nvar $$default = CreateCloudProjectGeneralInformation__JsBridge$default;\n\nexport {\n $$default as default,\n}\n/* react Not a pure module */\n","import * as React from 'react';\nimport ReduxProvider from 'ReduxProvider';\nimport { connect } from 'react-redux';\nimport { setUserData } from 'Client/common/actions/userActions';\nimport CreateCloudProjectGeneralInformation from './CreateCloudProjectGeneralInformation__JsBridge.res.js';\n\nconst mapDispatchToProps = dispatch => ({\n redux: {\n setUserData: userData => {\n dispatch(setUserData(userData));\n },\n },\n});\n\nconst CreateCloudProjectGeneralInformationContainer = connect(\n null,\n mapDispatchToProps,\n)(CreateCloudProjectGeneralInformation);\n\nexport default ({ context, ...props }) => (\n \n \n \n);\n"],"names":["decoder","Json_Decode$JsonCombinators","field","startDate","required","$$Date","contractLength","Configuration","json","Belt_Result","Json$JsonCombinators","title","cloud","description","configurations","Belt_Array","config","format","join","String","make","props","description$1","title$1","category","projectId","cloudType","React","TAG","PervasivesU","_0","api","saveDraft","Api","createProject","extra","extra$1","extra$2","extra$3","extra$4","extra$5","extra$6","extra$7","extra$8","extra$9","updateProject","saveDraftProjectAndContinueLater","title$2","undefined","description$2","navigationTotalSteps","navigationBackButtonLocation","Routes_Project","Provider","editSelector","Caml_option","newSelector","JsxRuntime","ProjectWizardGeneralInformation","userLoginStatus","userRole","alreadyUploadedDocuments","businessName","businessContactName","businessEmail","businessPhone","headquartersAddress","contacts","isAgent","mobile","status","$$default","railsContext","jsProps","railsContext$1","RailsContext","Project","fromString","subcategory","documents","fromJs","Belt_Option","UserContact","cloudIaasServersConfigurations","cloudIaasStorageConfigurations","CreateCloudProjectGeneralInformation","CreateCloudProjectGeneralInformationContainer","connect","dispatch","redux","setUserData","userData","_ref","context","_objectWithoutProperties","_excluded","ReduxProvider"],"sourceRoot":""}