{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.object.has-own.js","webpack:///./src/components/CreateOrganization.vue","webpack:///./src/components/CreateOrganization.vue?3ff2","webpack:///./src/components/CreateOrganization.vue?27cf","webpack:///./src/components/CreateOrganization.vue?cbdb","webpack:///../../../src/components/VCard/index.ts"],"names":["$","hasOwn","target","stat","staticStyle","_c","attrs","staticClass","on","createTenant","_vm","staticRenderFns","CompanyInput","then","m","default","PrimaryContactInput","FormStepHeader","Vue","extend","name","components","data","loading","companyInputError","primaryContactError","computed","isCreateTenantFormValid","formdata","this","$store","state","context","createTenantFormData","isFirstStepCompleted","email","phoneNumber","nameValid","companyName","orgNumberValid","businessRegistryId","length","test","methods","snackBarMessage","createTenantPayload","formIsValid","validatePayload","console","log","_ref","_res$response","res","dispatch","response","status","_res$response$data$er","errorMessage","errors","setErrorMessage","success","msg","e","$emit","payload","emailIsValid","phoneIsValid","orgnumberIsValid1","orgNumberIsValid2","Object","CreateTenantErrorTypes","component","VCardActions","createSimpleFunctional","VCardSubtitle","VCardText","VCardTitle","VCard"],"mappings":"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","file":"js/chunk-41f7d29a.793acc5b.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\n\n// `Object.hasOwn` method\n// https://tc39.es/ecma262/#sec-object.hasown\n$({ target: 'Object', stat: true }, {\n hasOwn: hasOwn\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('h1',{staticStyle:{\"text-align\":\"center\"}},[_vm._v(\"Create a new organization\")]),_c('div',[_c('FormStepHeader',{attrs:{\"stepNumber\":'1',\"msg\":'Fill inn organization name and number'}}),_c('CompanyInput',{attrs:{\"errorResponse\":_vm.companyInputError}})],1),_c('v-expand-transition',[(_vm.isFirstStepCompleted || _vm.primaryContactError)?_c('div',{attrs:{\"transition\":\"slide-x-transition\"}},[_c('FormStepHeader',{attrs:{\"stepNumber\":'2',\"msg\":'Add primary contact person for the organization'}}),_c('PrimaryContactInput',{attrs:{\"errorResponse\":_vm.primaryContactError}})],1):_vm._e()]),_c('v-card-actions',[_c('v-col',{staticClass:\"text-right\",staticStyle:{\"margin-right\":\"5%\"}},[_c('v-btn',{staticClass:\"mr-6\",attrs:{\"color\":\"primary darken-1\",\"disabled\":_vm.loading || !_vm.isCreateTenantFormValid,\"loading\":_vm.loading},on:{\"click\":function($event){return _vm.createTenant()}}},[_vm._v(\" Create Organization \")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nconst CompanyInput = () => import(\"@/components/form/CompanyInput.vue\").then(m => m.default || m)\nconst PrimaryContactInput = () => import(\"@/components/form/PrimaryContactInput.vue\").then(m => m.default || m)\nconst FormStepHeader = () => import(\"@/components/form/FormStepHeader.vue\").then(m => m.default || m)\n\nimport Vue from \"vue\"\nimport { CreateTenantErrorResponse, CreateTenantPayload, SnackbarInfo } from \"@/types/responses\" \nimport { CreateTenantErrorTypes } from \"@/types/enums\"\n\nexport default Vue.extend({\n\tname: \"CreateOrganization\",\n\tcomponents: {\n CompanyInput,\n PrimaryContactInput,\n FormStepHeader\n\t},\n\tdata(): {\n\t\tloading: boolean\n // Error messages\n companyInputError: CreateTenantErrorResponse | null\n primaryContactError: CreateTenantErrorResponse | null\n\n\t} {\n\t\treturn {\n\t\t\tloading: false,\n companyInputError: null,\n primaryContactError: null\n\t\t\t}\n\t},\n computed: {\n isCreateTenantFormValid(): boolean {\n const formdata = this.$store.state.context.createTenantFormData\n if(this.isFirstStepCompleted && formdata.email && formdata.phoneNumber){\n return true\n }\n return false\n },\n isFirstStepCompleted(): boolean {\n const formdata = this.$store.state.context.createTenantFormData\n const nameValid = formdata.companyName\n //Orgnumber is valid if it is left out altogether or it is a string with lengt 9 consisting of only digits\n const orgNumberValid = (formdata.businessRegistryId === \"\" || (formdata.businessRegistryId.length === 9 && /^\\d+$/.test(formdata.businessRegistryId) ))\n if(nameValid && orgNumberValid) {\n return true\n }\n return false\n },\n\n },\n\tmethods: {\n async createTenant(): Promise {\n this.loading = true\n let snackBarMessage: SnackbarInfo\n const createTenantPayload = await this.$store.state.context.createTenantFormData\n const formIsValid: boolean = this.validatePayload(createTenantPayload)\n if(createTenantPayload && formIsValid){\n\n console.log(\"[CreateOrganization.createTenant] Creating tenant: \", createTenantPayload)\n try {\n const res = await this.$store.dispatch(\"context/createTenant\", createTenantPayload)\n if(res?.response?.status === 400 ?? false){\n const errorMessage: CreateTenantErrorResponse = res.response.data.errors ?? null\n\n if(errorMessage){\n this.setErrorMessage(errorMessage)\n }\n console.log(\"[CreateOrganization.createTenant] ErrorMessage: \", errorMessage)\n snackBarMessage= {\n success: false,\n msg: \"One or more validation errors occured when sending in form to create the organization \" + createTenantPayload.companyName,\n e: null\n }\n this.$emit('updateSnackBar', snackBarMessage)\n }else{\n snackBarMessage= {\n success: true,\n msg: \"Successfuly sent the request to create the new organization \" + createTenantPayload.companyName,\n e: null\n }\n \n this.$emit('updateSnackBar', snackBarMessage)\n this.$emit('changeTab')\n }\n }catch (e){\n\n snackBarMessage= {\n success: false,\n msg: \"Failed to get a response from server, when attempting to create the organization \" + createTenantPayload.companyName + \". Please try again in a few moments. \\n Error message: \" + e,\n e: e\n }\n this.$emit('updateSnackBar', snackBarMessage)\n }\n\n }\n this.loading = false\n },\n validatePayload(payload: CreateTenantPayload): boolean{\n \n if(payload.companyName){\n const emailIsValid = /^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/.test(payload.email)\n const phoneIsValid = /^(?:.*\\d){8,}$/.test(payload.phoneNumber)\n const orgnumberIsValid1 = /^\\d{9}$/.test(payload.businessRegistryId)\n const orgNumberIsValid2 = payload.businessRegistryId === \"\"\n if(emailIsValid && phoneIsValid && (orgnumberIsValid1 || orgNumberIsValid2)){\n return true\n }\n }\n return false\n },\n\n setErrorMessage(errorMessage: CreateTenantErrorResponse): void{\n \n if(Object.hasOwn(errorMessage, CreateTenantErrorTypes.businessRegistryId) || Object.hasOwn(errorMessage, CreateTenantErrorTypes.companyName)){\n this.companyInputError = errorMessage\n this.primaryContactError = errorMessage\n }\n\n if(Object.hasOwn(errorMessage, CreateTenantErrorTypes.email) || Object.hasOwn(errorMessage, CreateTenantErrorTypes.phoneNumber)){\n this.primaryContactError = errorMessage\n }\n\n \n\n }\n\t},\n\n})\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateOrganization.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateOrganization.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CreateOrganization.vue?vue&type=template&id=a4927804\"\nimport script from \"./CreateOrganization.vue?vue&type=script&lang=ts\"\nexport * from \"./CreateOrganization.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n"],"sourceRoot":""}