{"version":3,"file":"PermissionSetting-DfnPKFt6.js","sources":["../../../app/javascript/components/templates/permisson/PermissionSetting.tsx"],"sourcesContent":["// @ts-nocheck\nimport React, { useEffect, useRef, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport axios from \"axios\";\naxios.defaults.headers.common[\"X-Requested-With\"] = \"XMLHttpRequest\";\nimport DOMPurify from \"dompurify\";\nimport style from \"./PermissonSetting.module.scss\";\nimport { getImageUrl } from \"../../../commons/assets_path\";\nimport useLanguageChange from \"../../../hooks/useLanguageChange\";\n\nexport const PermissionSetting = (props) => {\n const { t } = useLanguageChange(props.locale);\n const [isSettingShow, setSettingShow] = useState(false);\n const [isPermissionListShow, setPermissonListShow] = useState(false);\n const [isSelectUserShow, setSelectUserShow] = useState(false);\n const [isInvitePermissonShow, setInvitePermissonShow] = useState(false);\n const [selectUserList, setSelectUserList] = useState([]);\n const [listLength, setListLength] = useState(false);\n const [permisson, setPermisson] = useState(null);\n const [inputFocus, setFocus] = useState(false);\n const [compositionFlag, setCompositionFlag] = useState(false);\n const [userList, setUserList] = useState([]);\n const [permissionIndex, setPermissionIndex] = useState(null);\n const [typeIndex, setTypeIndex] = useState(null);\n const [permissionGroups, setPermissionGroups] = useState([]);\n const [errMessage, setErrMessage] = useState(null);\n const [inputErrMessage, setInputErrMessage] = useState(null);\n const [validateErrMessage, setValidateErrMessage] = useState(null);\n const [validMessage, setValidMessage] = useState(\"\");\n const [changeMessage, setChangeMessage] = useState(\"\");\n const settingRef = useRef(null);\n const permissionListRef = useRef(null);\n const selectUserRef = useRef(null);\n const invitePermissonRef = useRef(null);\n const inputRef = useRef(null);\n const inviteTextRef = useRef(null);\n\n const instance = axios.create({\n baseURL: `${window.origin}/${props.client}`,\n });\n\n const getGroups = async () => {\n await instance\n .get(\"/resource_permission_groups\", {\n params: {\n resourceable_type: props.resourceableType,\n resourceable_id: props.resourceableId,\n },\n })\n .then((res) => {\n setPermissionGroups(res.data.resource_permission_groups);\n });\n };\n\n const getArraysDiff = (array1, array2) => {\n const array1NameArray = array1.map((itm) => {\n return itm.name;\n });\n const array2NameArray = array2.map((itm) => {\n return itm.name;\n });\n\n const arr1 = [...new Set(array1NameArray)];\n const arr2 = [...new Set(array2NameArray)];\n return [...arr1, ...arr2].filter((val) => {\n return !arr1.includes(val) || !arr2.includes(val);\n });\n };\n\n const getUserList = async (val = null) => {\n await instance\n .get(\"/resource_permission_groups/permission_groups\", {\n params: {\n query: val,\n resourceable_type: props.resourceableType,\n resourceable_id: props.resourceableId,\n },\n })\n .then((res) => {\n if (selectUserList.length === 0) {\n setUserList(res.data.permission_groups);\n } else {\n const diff = getArraysDiff(res.data.permission_groups, selectUserList);\n const userDiff = res.data.permission_groups.filter((item) => {\n return diff.includes(item.name);\n });\n setUserList(userDiff);\n }\n });\n };\n const updateRole = async (role, resourcePermissionGroup) => {\n const f = window.confirm(t(\"PermissionSetting.権限を変更します。実行してもいいですか?\"));\n if (f) {\n await instance\n .patch(`/resource_permission_groups/${resourcePermissionGroup.id}/update_role`, {\n resource_permission_group: {\n role: role,\n },\n })\n .then(() => {\n getGroups();\n setChangeMessage(t(\"PermissionSetting.権限が変更されました\"));\n setPermissonListShow(false);\n })\n .catch(({ response }) => {\n setValidMessage(response.data.role[0]);\n });\n }\n };\n\n const inviteUser = async (member, guest) => {\n const params = {\n resource_permission_groups: member,\n guest_resource_permission_groups: guest,\n message: inviteTextRef.current.value === \"\" ? inviteTextRef.current.placeholder : inviteTextRef.current.value,\n };\n await instance\n .post(\n props.resourceableType === \"DynamicDatabase\"\n ? `dynamic_databases/${props.databaseId}/create_authority`\n : `/resource_permission_groups/batch_create`,\n params,\n )\n .then(() => {\n getGroups();\n setSelectUserList([]);\n setChangeMessage(\n props.resourceableType === \"DynamicDatabase\"\n ? t(\"PermissionSetting.データベースに新たにメンバーを追加しました\")\n : t(\"PermissionSetting.権限が変更されプロジェクトに新たにメンバーを追加しましたました\"),\n );\n setFocus(false);\n })\n .catch(({ response }) => {\n setErrMessage(response.data.message);\n });\n };\n\n const preInviteUser = async () => {\n if (!selectUserList.length) return;\n const f = window.confirm(\n props.resourceableType === \"DynamicDatabase\"\n ? t(\"PermissionSetting.新しいメンバーをこのデータベースに招待します。実行しますか?\")\n : t(\"PermissionSetting.新しいメンバーをこのプロジェクトに招待します。実行しますか?\"),\n );\n if (f) {\n const paramMember = [];\n const paramGuest = [];\n const createGuestList = [];\n\n selectUserList.forEach((user) => {\n if (user.is_guest) {\n createGuestList.push(user.email);\n } else {\n paramMember.push({\n permission_group_id: user.id,\n resourceable_type: props.resourceableType,\n resourceable_id: props.resourceableId,\n role: permisson,\n });\n }\n });\n\n if (createGuestList.length && props.inviteGuests) {\n const submitGuest = {\n dynamic_database_id: props.resourceableId,\n email_list: createGuestList,\n };\n await instance\n .post(`/members/create_guests`, submitGuest)\n .then((response) => {\n response.data.permission_group_ids.forEach((id) => {\n paramGuest.push({\n permission_group_id: id,\n resourceable_type: props.resourceableType,\n resourceable_id: props.resourceableId,\n role: permisson,\n });\n });\n inviteUser(paramMember, paramGuest);\n })\n .catch(({ response }) => {\n setInputErrMessage(response.data.message);\n });\n } else {\n inviteUser(paramMember, paramGuest);\n }\n }\n };\n\n const deleteRole = async (resourcePermissionGroup) => {\n const f = window.confirm(t(\"PermissionSetting.権限を変更します。実行してもいいですか?\"));\n if (f) {\n await instance\n .delete(`/resource_permission_groups/${resourcePermissionGroup.id}`)\n .then(() => {\n getGroups();\n setChangeMessage(t(\"PermissionSetting.権限削除しました\"));\n })\n .catch(({ response }) => {\n setValidMessage(response.data.base[0]);\n });\n }\n };\n\n const memberPresence = async (inputValue, isInput) => {\n setInputErrMessage(null);\n if (inputValue === \"\") return;\n if (selectUserList.length >= 40) {\n setInputErrMessage(t(\"PermissionSetting.一度に招待できるのは40名までです\"));\n return;\n }\n const existUsers = permissionGroups.single_member;\n let inviteJudge = false;\n let inputClear = false;\n if (selectUserList.length) {\n for (let index = 0; index < selectUserList.length; index++) {\n const user = selectUserList[index];\n if (user.name === inputValue || user.email === inputValue) {\n inviteJudge = true;\n setInputErrMessage(user.name + t(\"PermissionSetting.さんはすでに選択されています\"));\n break;\n }\n }\n }\n if (userList.length && !inviteJudge) {\n const unSelectedUser = [];\n userList.forEach((user) => {\n if (user.name === inputValue || user.email === inputValue) {\n inviteJudge = true;\n inputClear = true;\n setSelectUserList([...selectUserList, { name: user.name, id: user.id, email: user.email, is_guest: false }]);\n } else {\n unSelectedUser.push(user);\n }\n });\n if (inviteJudge) {\n setUserList(unSelectedUser);\n }\n }\n if (isInput) {\n if (existUsers.length && !inviteJudge) {\n for (let index = 0; index < existUsers.length; index++) {\n const user = existUsers[index];\n if (user.name === inputValue || user.description === inputValue) {\n inviteJudge = true;\n setInputErrMessage(\n user.name +\n t(\"PermissionSetting.さんはすでに「\") +\n props.sectionName +\n t(\"PermissionSetting.」の権限が付与されています\"),\n );\n break;\n }\n }\n }\n if (!inviteJudge) {\n const isEmail = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i;\n if (props.inviteGuests) {\n if (isEmail.test(inputValue)) {\n await instance\n .post(`/client_members/validate_guest`, { email: inputValue })\n .then(() => {\n inviteJudge = true;\n inputClear = true;\n setSelectUserList([\n ...selectUserList,\n { name: inputValue, id: null, email: inputValue, is_guest: true },\n ]);\n })\n .catch(({ response }) => {\n setValidateErrMessage(response.data.message);\n });\n } else {\n setInputErrMessage(\n t(\"PermissionSetting.メンバーアカウントを選択するかメールアドレスを正しく入力してください\"),\n );\n }\n } else {\n setInputErrMessage(t(\"PermissionSetting.メンバーアカウントを選択してください\"));\n }\n }\n }\n if (inputClear) {\n inputRef.current.value = \"\";\n }\n };\n\n const arrowAction = (action, i, e) => {\n if (action === \"ArrowUp\" && document.getElementById(`userlist-${i + -1}`)) {\n document.getElementById(`userlist-${i + -1}`).focus();\n e.preventDefault();\n }\n if (action === \"ArrowDown\" && document.getElementById(`userlist-${i + 1}`)) {\n document.getElementById(`userlist-${i + 1}`).focus();\n e.preventDefault();\n }\n };\n useEffect(() => {\n getUserList();\n setPermissionGroups(props.resourcePermissionGroups);\n setPermisson(\"admin\");\n }, []);\n\n useEffect(() => {\n if (!settingRef?.current) return;\n const hundleClickOutside = (e) => {\n if (settingRef.current !== null && !settingRef.current.contains(e.target)) {\n setSettingShow(false);\n setPermissonListShow(false);\n setSelectUserShow(false);\n }\n };\n document.addEventListener(\"mouseup\", hundleClickOutside);\n }, [settingRef?.current]);\n useEffect(() => {\n if (!permissionListRef?.current) return;\n const hundleClickOutside = (e) => {\n if (permissionListRef.current !== null && !permissionListRef.current.contains(e.target)) {\n setPermissonListShow(false);\n }\n };\n document.addEventListener(\"mouseup\", hundleClickOutside);\n }, [permissionListRef?.current]);\n useEffect(() => {\n if (!selectUserRef?.current) return;\n const hundleClickOutside = (e) => {\n if (selectUserRef.current !== null && !selectUserRef.current.contains(e.target)) {\n setSelectUserShow(false);\n setInputErrMessage(null);\n }\n };\n document.addEventListener(\"mouseup\", hundleClickOutside);\n }, [isSelectUserShow, selectUserRef?.current]);\n useEffect(() => {\n if (!invitePermissonRef?.current) return;\n const hundleClickOutside = (e) => {\n if (invitePermissonRef.current !== null && !invitePermissonRef.current.contains(e.target)) {\n setInvitePermissonShow(false);\n }\n };\n document.addEventListener(\"mouseup\", hundleClickOutside);\n }, [isInvitePermissonShow, invitePermissonRef?.current]);\n useEffect(() => {\n if (selectUserList.length === 0) {\n setListLength(false);\n } else {\n setListLength(true);\n }\n getUserList();\n }, [selectUserList]);\n\n useEffect(() => {\n if (validMessage !== \"\") {\n setTimeout(() => {\n setValidMessage(\"\");\n }, 7000);\n }\n }, [validMessage]);\n useEffect(() => {\n if (changeMessage !== \"\") {\n setTimeout(() => {\n setChangeMessage(\"\");\n }, 7000);\n }\n }, [changeMessage]);\n useEffect(() => {\n setInvitePermissonShow(false);\n }, [permisson]);\n\n return (\n
\n {\n setSettingShow((prevState) => !prevState);\n }}\n >\n \n
{t(\"PermissionSetting.共有\")}
\n
\n {validMessage && (\n
\n {validMessage}\n
\n )}\n {changeMessage && (\n
\n {changeMessage}\n
\n )}\n {isSettingShow && (\n
\n {props.resourceableType === \"DynamicDatabase\" &&\n props.resourcePermissionGroups.single_member.length === 0 &&\n !props.isEditable ? (\n
\n {props.databaseName}\n {(t(\"PermissionSetting.に権限が設定されていません。\"), { dataBaseName: props.databaseName })}\n
{t(\"PermissionSetting.権限が設定できるのは、編集権限を持ったメンバーのみです。\")}
\n
\n ) : (\n <>\n {props.isEditable && !props.isGuest && (\n \n {\n if (e.target?.lastChild && typeof e.target.lastChild.focus === \"function\") {\n e.target.lastChild?.focus();\n }\n setSelectUserShow(true);\n setFocus(true);\n }}\n >\n {selectUserList.map((user, i) => (\n
\n \n {user.name}\n {user.is_guest && <>{t(\"PermissionSetting.(ゲスト)\")}}\n
\n {\n const f = selectUserList.filter((elm) => {\n return elm !== user;\n });\n setSelectUserList(f);\n getUserList();\n setErrMessage(null);\n }}\n />\n
\n ))}\n {\n setSelectUserShow(true);\n setInputErrMessage(null);\n setValidateErrMessage(null);\n }}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" && !compositionFlag) {\n memberPresence(e.target.value, true);\n }\n arrowAction(e.key, -1, e);\n }}\n onCompositionStart={() => {\n setCompositionFlag(true);\n }}\n onCompositionEnd={() => {\n setCompositionFlag(false);\n }}\n onChange={(e) => {\n getUserList(e.target.value);\n setInputErrMessage(null);\n setValidateErrMessage(null);\n }}\n />\n \n {inputFocus && (\n {\n setInvitePermissonShow(true);\n }}\n >\n {permisson === \"admin\"\n ? t(\"PermissionSetting.編集権限\")\n : permisson === \"reader\"\n ? t(\"PermissionSetting.閲覧権限\")\n : t(\"PermissionSetting.権限なし\")}\n \n {isInvitePermissonShow && (\n
\n {Object.keys(props.roleDescriptions).map((role) => (\n <>\n
\n {\n setPermisson(role);\n }}\n >\n
\n {props.roleDescriptions[role][\"display_name\"]}\n
\n
{props.roleDescriptions[role][\"description\"]}
\n
\n {permisson === role && }\n
\n \n ))}\n \n )}\n \n )}\n \n )}\n {(inputErrMessage || errMessage || validateErrMessage) && (\n
\n {inputErrMessage && {inputErrMessage}}\n {errMessage &&\n errMessage.map((message, index) => (\n \n ))}\n {validateErrMessage && (\n \n )}\n
\n )}\n {inputFocus ? (\n <>\n
\n {isSelectUserShow && (\n
\n
\n {t(\"PermissionSetting.人を選択する\")}\n
\n
\n {userList.map((user, i) => {\n return (\n {\n memberPresence(user.name, false);\n }}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n memberPresence(e.target.innerText, false);\n }\n arrowAction(e.key, i, e);\n }}\n tabIndex={0}\n >\n {user.name}\n
\n );\n })}\n
\n
\n )}\n \n \n\n
\n {\n setFocus(false);\n setSelectUserList([]);\n }}\n >\n {t(\"PermissionSetting.キャンセル\")}\n \n {\n preInviteUser();\n }}\n >\n {t(\"PermissionSetting.招待\")}\n \n
\n \n ) : (\n
\n {Object.keys(permissionGroups).map((groupType, index) => (\n
\n {permissionGroups[groupType].map((resourcePermissionGroup, i) => (\n
\n
\n
\n \n {resourcePermissionGroup.name}\n {resourcePermissionGroup.is_guest && (\n \n {t(\"PermissionSetting.(ゲスト)\")}\n \n )}\n
\n \n {resourcePermissionGroup.description}\n
\n
\n {\n if (props.isEditable && !props.isGuest) {\n setPermissonListShow(true);\n setPermissionIndex(index);\n setTypeIndex(i);\n }\n }}\n style={{ paddingRight: resourcePermissionGroup.is_current_member && \"28px\" }}\n >\n {props.roleDescriptions[permissionGroups[groupType][i].role].display_name}\n {props.isEditable && !props.isGuest && !resourcePermissionGroup.is_current_member && (\n \n )}\n {isPermissionListShow &&\n permissionIndex === index &&\n typeIndex === i &&\n props.isEditable &&\n !props.isGuest &&\n !resourcePermissionGroup.is_current_member && (\n
\n {Object.keys(props.roleDescriptions).map((role) => (\n <>\n {\n updateRole(role, resourcePermissionGroup);\n }}\n >\n \n
\n {props.roleDescriptions[role][\"display_name\"]}\n
\n
\n {props.roleDescriptions[role][\"description\"]}\n
\n
\n {props.roleDescriptions[permissionGroups[groupType][i].role][\n \"display_name\"\n ] === props.roleDescriptions[role][\"display_name\"] && (\n \n )}\n
\n \n ))}\n {groupType !== \"all_members\" && !resourcePermissionGroup.is_guest && (\n {\n deleteRole(resourcePermissionGroup);\n }}\n >\n \n
\n {groupType === \"all_members\"\n ? t(\"PermissionSetting.権限なし\")\n : props.resourceableType === \"DynamicDatabase\"\n ? t(\"PermissionSetting.個別の権限を削除\")\n : t(\"PermissionSetting.削除\")}\n
\n {props.resourceableType === \"DynamicDatabase\" && (\n
\n {t(\n \"PermissionSetting.データベース個別の権限設定を削除し、プロジェクト権限に従います\",\n )}\n
\n )}\n
\n \n )}\n \n )}\n \n \n \n ))}\n \n ))}\n \n )}\n \n )}\n \n )}\n \n );\n};\n\nPermissionSetting.propTypes = {\n locale: PropTypes.string,\n client: PropTypes.string,\n resourceableId: PropTypes.string,\n resourceableType: PropTypes.string,\n roleDescriptions: PropTypes.object,\n resourcePermissionGroups: PropTypes.object,\n accountName: PropTypes.string,\n sectionName: PropTypes.string,\n inviteGuests: PropTypes.bool,\n isEditable: PropTypes.bool,\n isGuest: PropTypes.bool,\n databaseId: PropTypes.string,\n is_current_member: PropTypes.bool,\n databaseName: PropTypes.string,\n};\n"],"names":["axios","PermissionSetting","props","t","useLanguageChange","isSettingShow","setSettingShow","useState","isPermissionListShow","setPermissonListShow","isSelectUserShow","setSelectUserShow","isInvitePermissonShow","setInvitePermissonShow","selectUserList","setSelectUserList","listLength","setListLength","permisson","setPermisson","inputFocus","setFocus","compositionFlag","setCompositionFlag","userList","setUserList","permissionIndex","setPermissionIndex","typeIndex","setTypeIndex","permissionGroups","setPermissionGroups","errMessage","setErrMessage","inputErrMessage","setInputErrMessage","validateErrMessage","setValidateErrMessage","validMessage","setValidMessage","changeMessage","setChangeMessage","settingRef","useRef","permissionListRef","selectUserRef","invitePermissonRef","inputRef","inviteTextRef","instance","getGroups","res","getArraysDiff","array1","array2","array1NameArray","itm","array2NameArray","arr1","arr2","val","getUserList","diff","userDiff","item","updateRole","role","resourcePermissionGroup","response","inviteUser","member","guest","params","preInviteUser","paramMember","paramGuest","createGuestList","user","submitGuest","id","deleteRole","memberPresence","inputValue","isInput","existUsers","inviteJudge","inputClear","index","unSelectedUser","isEmail","arrowAction","action","i","e","useEffect","hundleClickOutside","jsxs","style","prevState","jsx","getImageUrl","Fragment","_a","_b","f","elm","message","DOMPurify","groupType","PropTypes"],"mappings":"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"}