"use strict";window.userData=()=>({app:"bm_ab",users:[],user_signed_in:{},user_selected:{user_id:"",user_name:""},form:{user_id:"",first_name:"",tussenvoegsels:"",last_name:"",organisation:"AB",user_role:"member",email:"",password:""},slide_over:{show:!1,type:"",header_text:"",header_subtext:"",button_text:""},modal:{show:!1},sidebar_nav:{nav_users:{open:!1},nav_projects:{open:!1}},user_menu:{user_id:null},init(){this.getUserSignedIn(),this.getUsers()},setUserName(user){let user_name_set=[user.first_name,user.tussenvoegsels,user.last_name];return user_name_set=user_name_set.filter((element=>null!=element)),user_name_set.join(" ")},handleUserRoleLang:role=>i18n.user.role[role][app_config.ab.lang_code],handleOrgName:org=>app_config.ab.organisations[org],getUserSignedIn(){this.user_signed_in=JSON.parse(sessionStorage.getItem("inframonitor.user.data"))},getUsers(){const url_full=new URL(`/api/users/${this.app}/get-users`,"https://geq6nr64z5.execute-api.eu-central-1.amazonaws.com");fetch(url_full).then((response=>response.json())).then((data=>{data&&(this.users=data)})).catch((error=>{console.error("Error:",error)}))},addUser(){this.slide_over.show=!0,this.slide_over.type="add",this.slide_over.header_text="Nieuwe gebruiker toevoegen",this.slide_over.header_subtext="Gebruik onderstaand formulier om een nieuwe gebruiker toe te voegen.",this.slide_over.button_text="Toevoegen"},editUser(user){this.user_menu.user_id=null,this.slide_over.show=!0,this.slide_over.type="edit",this.slide_over.header_text="Gebruiker bewerken",this.slide_over.header_subtext="Gebruik onderstaand formulier om een bestaande gebruiker te bewerken.",this.slide_over.button_text="Bewerken",this.form.user_id=user.user_id,this.form.first_name=user.first_name,this.form.tussenvoegsels=user.tussenvoegsels,this.form.last_name=user.last_name,this.form.organisation=user.organisation,this.form.user_role=user.user_role,this.form.email=user.email,this.form.password=user.password},deleteUser(user){this.user_menu.user_id=null,this.user_selected.user_id=user.user_id,this.user_selected.user_name=this.setUserName(user),this.modal.show=!0},resetForm(){this.form.user_id="",this.form.first_name="",this.form.tussenvoegsels="",this.form.last_name="",this.form.organisation="ab",this.form.user_role="member",this.form.email="",this.form.password="",this.slide_over.show=!1,this.user_menu.user_id=null},submitNewUser(form_data){const url_full=new URL(`/api/users/${this.app}/add-user`,"https://geq6nr64z5.execute-api.eu-central-1.amazonaws.com");fetch(url_full,{method:"POST",body:JSON.stringify(form_data),headers:{"Content-Type":"application/json"}}).then((response=>response.json())).then((data=>{data.User.UserCreateDate&&(this.users.push({user_id:data.User.Username,first_name:form_data.first_name,tussenvoegsels:form_data.tussenvoegsels,last_name:form_data.last_name,organisation:form_data.organisation,user_role:form_data.user_role}),this.resetForm())}))},submitEditUser(changed){const url_full=new URL(`/api/users/${this.app}/edit-user`,"https://geq6nr64z5.execute-api.eu-central-1.amazonaws.com");fetch(url_full,{method:"PATCH",body:JSON.stringify(changed),headers:{"Content-Type":"application/json"}}).then((response=>response.json())).then((data=>{if(data.db_users&&200===data.db_users[1]||data.db_user_cfg&&200===data.db_user_cfg[1]||data.cognito&&200===data.cognito.ResponseMetadata.HTTPStatusCode){let index=this.users.findIndex((x=>x.user_id===changed.user_id));Object.entries(changed).forEach((element=>{this.users[index][element[0]]=element[1]})),this.resetForm()}})).catch((error=>{console.error("Error:",error)}))},submitDeleteUser(){const url_full=new URL(`/api/users/${this.app}/delete-user`,"https://geq6nr64z5.execute-api.eu-central-1.amazonaws.com"),body={user_id:this.user_selected.user_id};fetch(url_full,{method:"DELETE",body:JSON.stringify(body),headers:{"Content-Type":"application/json"}}).then((response=>response.json())).then((data=>{if(data.db_users&&200===data.db_users[1]&&data.db_user_cfg&&200===data.db_user_cfg[1]&&data.cognito&&200===data.cognito.ResponseMetadata.HTTPStatusCode){let index=this.users.findIndex((x=>x.user_id===this.user_selected.user_id));this.users.splice(index,1),this.user_selected.user_id="",this.user_selected.user_name="",this.modal.show=!1}})).catch((error=>{console.error("Error:",error)}))},submit(){const form=document.getElementById("form_users");if(!validateForm(form))return;const form_data=JSON.parse(JSON.stringify(this.form));if("add"===this.slide_over.type&&(delete form_data.user_id,this.submitNewUser(form_data)),"edit"===this.slide_over.type){delete form_data.email,delete form_data.password;let current=this.users.filter((user=>user.user_id===form_data.user_id));current=current[0],Object.keys(current).forEach((key=>(null===current[key]||""===current[key])&&delete current[key])),Object.keys(form_data).forEach((key=>(null===form_data[key]||""===form_data[key])&&delete form_data[key]));const changed=diff(current,form_data);0!==Object.keys(changed).length&&changed.constructor===Object&&(changed.user_id=form_data.user_id,this.submitEditUser(changed))}}});