{"version":3,"file":"section.ts-C9_StshX.js","sources":["../../../../../app/javascript/components/common/ProjectFooter/MoveProjectFooter.tsx","../../../../../app/javascript/components/common/ProjectFooter/HeldWorkflowMenu.tsx","../../../../../app/javascript/components/common/ProjectFooter/WorkflowTemplateFooter.tsx","../../../../../app/javascript/components/templates/Sidebar/AddSectionModal.tsx","../../../../../app/javascript/components/templates/Sidebar/AddSectionButton.tsx","../../../../../app/javascript/components/templates/Sidebar/EditSectionButton.tsx","../../../../../app/javascript/components/templates/section/SectionIcon.tsx","../../../../../app/javascript/entries/reactEntries/section.ts"],"sourcesContent":["// @ts-nocheck\nimport PropTypes from \"prop-types\";\nimport React, { useRef, useState, useEffect } from \"react\";\nimport style from \"./MoveProjectFooter.module.scss\";\nimport { getImageUrl } from \"../../../commons/assets_path\";\nimport useLanguageChange from \"../../../hooks/useLanguageChange\";\n\nexport const MoveProjectFooter = (props) => {\n const { t } = useLanguageChange(props.locale);\n const [optionArea, setOptionArea] = useState(false);\n const [selectValue, setSelectValue] = useState(t(\"MoveProjectFooter.移動先のプロジェクトを選択\"));\n const [id, setId] = useState();\n const [selectCount, setSelectCount] = useState(\"0\");\n const optionWrapRef = useRef(false);\n\n const initCustomScripts = () => {\n let span;\n if (props.section_contentable_type === \"DynamicDatabase\") {\n if (document.getElementById(\"js-selected_db_count\")) {\n span = document.getElementById(\"js-selected_db_count\").firstChild;\n }\n } else if (props.section_contentable_type === \"WorkflowTemplate\") {\n if (document.getElementById(\"js-selected_workflow_template_count\")) {\n span = document.getElementById(\"js-selected_workflow_template_count\").firstChild;\n }\n }\n if (!span) {\n window.setTimeout(initCustomScripts, 500);\n return;\n }\n const mo = new MutationObserver(function () {\n setSelectCount(span?.textContent);\n });\n const config = {\n childList: true,\n };\n mo.observe(span, config);\n };\n useEffect(() => {\n initCustomScripts();\n }, []);\n useEffect(() => {\n if (!optionWrapRef?.current) return;\n const hundleClickOutside = (e) => {\n if (!optionWrapRef.current.contains(e.target)) {\n setOptionArea(false);\n }\n };\n document.addEventListener(\"mouseup\", hundleClickOutside);\n }, [optionArea, optionWrapRef?.current]);\n return (\n
\n
\n {\n setOptionArea(true);\n }}\n >\n \n {selectValue}\n
\n \n
\n \n
\n \n
\n {optionArea && (\n
\n {props.name.map((element, i) => {\n return (\n {\n setSelectValue(element[0]);\n setId(element[1]);\n setOptionArea(false);\n }}\n >\n \n \n {element[0] === t(\"MoveProjectFooter.マイプロジェクト\") ? (\n \n ) : (\n <>{element[0].slice(0, 1)}\n )}\n
\n \n \n {element[0]}\n \n \n );\n })}\n \n )}\n \n \n );\n};\n\nMoveProjectFooter.propTypes = {\n name: PropTypes.array,\n section_contentable_type: PropTypes.string,\n locale: PropTypes.string,\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport style from \"./HeldWorkflowMenu.module.scss\";\nimport workflowTemplateStyles from \"../../templates/flowbots/WorkflowTemplate.module.scss\";\nimport { Loader } from \"../Loaders/Loader\";\nimport { NoticeMessage } from \"../../templates/flowbots/Notice/NoticeMessage\";\nimport axios from \"axios\";\nimport useLanguageChange from \"../../../hooks/useLanguageChange\";\naxios.defaults.headers.common[\"X-Requested-With\"] = \"XMLHttpRequest\";\n\ntype Props = {\n contentableType: string;\n projectNames: Array<[string, number]>;\n sectionId: number;\n totalCount: number;\n clientCode: string;\n locale: string;\n};\n\nexport const HeldWorkflowMenu = (props: Props) => {\n const { t } = useLanguageChange(props.locale);\n const detailMenuRef = useRef(null);\n const [isLoading, setIsLoading] = useState(false);\n const [notice, setNotice] = useState({ isShow: false, message: \"\", type: \"\" });\n const [isShowDetailMenu, setIsShowDetailMenu] = useState(false);\n\n const handleClickOutsideDetailMenu = (event: MouseEvent) => {\n if (detailMenuRef.current && !detailMenuRef.current.contains(event.target as Node)) {\n setIsShowDetailMenu(false);\n }\n };\n\n const handleLaunchHeldWorkflow = async () => {\n const confirmMessage = t(\"HeldWorkflowMenu.保留中の全てのフローボットを起動しますか?(最大200件)\");\n if (window.confirm(confirmMessage)) {\n setIsLoading(true);\n await axios\n .post(`/${props.clientCode}/workflows/boot_held_workflows`, {\n ids: [],\n is_bulk: true,\n section_id: props.sectionId,\n })\n .then((res) => {\n if (res.status === 200) {\n // NOTE: ローカルストレージにres.data.messageを保存し、リロード後に表示している\n localStorage.setItem(\"workflow_template_notice\", res.data.message);\n window.location.href = res.data.redirect_url;\n }\n })\n .catch((error) => {\n if (error.response.status === 400) {\n setIsLoading(false);\n setNotice({ isShow: true, message: error.response.data.message, type: \"error\" });\n } else {\n setIsLoading(false);\n setNotice({ isShow: true, message: t(\"HeldWorkflowMenu.フローボットの起動に失敗しました\"), type: \"error\" });\n }\n });\n }\n };\n\n const handleTerminateHeldWorkflow = async () => {\n const confirmMessage = t(\"HeldWorkflowMenu.保留中の全てのフローボットを停止しますか?\");\n if (window.confirm(confirmMessage)) {\n setIsLoading(true);\n await axios\n .post(`/${props.clientCode}/workflows/destroy_held_workflows`, {\n ids: [],\n is_bulk: true,\n section_id: props.sectionId,\n })\n .then((res) => {\n if (res.status === 200) {\n // NOTE: ローカルストレージにres.data.messageを保存し、リロード後に表示している\n localStorage.setItem(\"workflow_template_notice\", res.data.message);\n location.reload();\n }\n })\n .catch((error) => {\n if (error.response.status === 400) {\n setIsLoading(false);\n setNotice({ isShow: true, message: error.response.data.message, type: \"error\" });\n } else {\n setIsLoading(false);\n setNotice({ isShow: true, message: t(\"HeldWorkflowMenu.フローボットの停止に失敗しました\"), type: \"error\" });\n }\n });\n }\n };\n\n useEffect(() => {\n // ローカルストレージにworkflow_template_noticeがあれば、その内容を取得して表示\n const noticeMessage = localStorage.getItem(\"workflow_template_notice\");\n if (noticeMessage) {\n setNotice({ isShow: true, message: noticeMessage, type: \"notice\" });\n localStorage.removeItem(\"workflow_template_notice\");\n }\n }, []);\n\n useEffect(() => {\n document.addEventListener(\"mousedown\", handleClickOutsideDetailMenu);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutsideDetailMenu);\n };\n }, [handleClickOutsideDetailMenu]);\n\n return (\n <>\n
setIsShowDetailMenu(!isShowDetailMenu)} ref={detailMenuRef}>\n ・・・\n {isShowDetailMenu && (\n
\n
\n {t(\"HeldWorkflowMenu.保留中の全てを起動(最大200件)\")}\n
\n \n {t(\"HeldWorkflowMenu.保留中の全てを停止\")}\n
\n
\n )}\n \n \n {isLoading && (\n
\n
\n \n
\n
\n )}\n \n \n );\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport style from \"./WorkflowTemplateFooter.module.scss\";\nimport workflowTemplateStyles from \"../../templates/flowbots/WorkflowTemplate.module.scss\";\nimport { getImageUrl } from \"../../../commons/assets_path\";\nimport { Loader } from \"../../common/Loaders/Loader\";\nimport { NoticeMessage } from \"../../templates/flowbots/Notice/NoticeMessage\";\nimport axios from \"axios\";\nimport useLanguageChange from \"../../../hooks/useLanguageChange\";\naxios.defaults.headers.common[\"X-Requested-With\"] = \"XMLHttpRequest\";\n\ntype Props = {\n contentableType: string;\n projectNames: Array<[string, number]>;\n sectionId: number;\n totalCount: number;\n clientCode: string;\n locale: string;\n};\n\nexport const WorkflowTemplateFooter = (props: Props) => {\n const projectListRef = useRef(null);\n const projectBtnRef = useRef(null);\n const [isShowProjectList, setIsShowProjectList] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [notice, setNotice] = useState({ isShow: false, message: \"\", type: \"\" });\n const { t } = useLanguageChange(props.locale);\n const handleClickOutside = (event: MouseEvent) => {\n if (\n projectListRef.current &&\n !projectListRef.current.contains(event.target as Node) &&\n (!projectBtnRef.current || !projectBtnRef.current.contains(event.target as Node))\n ) {\n setIsShowProjectList(false);\n }\n };\n\n const handleClose = () => {\n const footer = document.querySelector(\".workflow-template-footer\");\n footer?.setAttribute(\"style\", \"display: none;\");\n // NOTE: ここでチェックボックスを全て外す処理を行う\n const checkboxes = document.querySelectorAll(\".js-section_content_section_id\");\n checkboxes.forEach((element) => {\n (element as HTMLInputElement).checked = false;\n });\n const selectAllCheckbox = document.getElementById(\"js-select_contentable_ids\") as HTMLInputElement;\n selectAllCheckbox.checked = false;\n };\n\n const handleDelete = async () => {\n const selectedCount = document.querySelector(\".selected-count\") as HTMLElement;\n const confirmMessage = t(\"選択したテンプレートを削除\", { count: Number(selectedCount.textContent) });\n if (window.confirm(confirmMessage)) {\n const checked = document.querySelectorAll(\".section-content-item__checkbox:checked\");\n const ids: Array = [];\n checked.forEach((element) => {\n ids.push(element.getAttribute(\"workflow_template_id\"));\n });\n setIsLoading(true);\n await axios\n .delete(\n `/${props.clientCode}/sections/${props.sectionId}/workflow_templates/${ids[0]}/destroy_selected_templates`,\n {\n data: {\n ids: ids,\n },\n },\n )\n .then((res) => {\n if (res.status === 200) {\n // NOTE: ローカルストレージにres.data.messageを保存し、リロード後に表示している\n localStorage.setItem(\"workflow_template_notice\", res.data.message);\n location.reload();\n }\n })\n .catch((error) => {\n if (error.response.status === 400) {\n setIsLoading(false);\n setNotice({ isShow: true, message: error.response.data.message, type: \"error\" });\n } else {\n setIsLoading(false);\n setNotice({\n isShow: true,\n message: t(\"WorkflowTemplateFooter.フローボットの削除に失敗しました。\"),\n type: \"error\",\n });\n }\n });\n }\n };\n\n const handleMove = async (projectId: number, projectName: string) => {\n const selectedCount = document.querySelector(\".selected-count\") as HTMLElement;\n const confirmMessage = t(\"WorkflowTemplateFooter.選択したテンプレートを移動しますか?\", {\n count: Number(selectedCount.textContent),\n projectName: projectName,\n });\n if (window.confirm(confirmMessage)) {\n const checkboxes = document.querySelectorAll(\".js-section_content_section_id\");\n const sectionContents: Array<{ id: string | null; contentable_id: string | null }> = [];\n checkboxes.forEach((element) => {\n const id = element.getAttribute(\"section_content_id\");\n const contentableId = element.getAttribute(\"workflow_template_id\");\n if ((element as HTMLInputElement).checked) {\n sectionContents.push({ id: id, contentable_id: contentableId });\n }\n });\n setIsLoading(true);\n await axios\n .patch(\n `/${props.clientCode}/sections/${props.sectionId}/update_section_contents?section_contentable_type=WorkflowTemplate`,\n {\n section: {\n section_contents_attributes: sectionContents.reduce(\n (acc: { [key: number]: any }, { id, contentable_id }, index) => {\n acc[index] = {\n id: id,\n section_id: projectId,\n contentable_id: contentable_id,\n contentable_type: \"WorkflowTemplate\",\n };\n return acc;\n },\n {},\n ),\n to_section_id: projectId,\n contentable_type: \"WorkflowTemplate\",\n },\n },\n )\n .then((res) => {\n if (res.status === 200) {\n if (res.data?.redirect_url) {\n // NOTE: ローカルストレージにres.data.messageを保存し、リロード後に表示している\n localStorage.setItem(\"workflow_template_notice\", res.data.message);\n window.location.href = res.data.redirect_url;\n }\n }\n })\n .catch((error) => {\n if (error.response.status === 400) {\n setIsLoading(false);\n setNotice({ isShow: true, message: error.response.data.message, type: \"error\" });\n } else {\n setIsLoading(false);\n setNotice({\n isShow: true,\n message: t(\"WorkflowTemplateFooter.プロジェクトの移動に失敗しました。\"),\n type: \"error\",\n });\n }\n });\n }\n };\n\n const handleTerminate = async () => {\n const selectedCount = document.querySelector(\".selected-count\") as HTMLElement;\n const confirmMessage = t(\"WorkflowTemplateFooter.選択したフローボットを停止しますか?\", {\n count: Number(selectedCount.textContent),\n });\n if (window.confirm(confirmMessage)) {\n const checked = document.querySelectorAll(\".section-content-item__checkbox:checked\");\n const ids: Array = [];\n checked.forEach((element) => {\n ids.push(element.getAttribute(\"workflow_id\"));\n });\n setIsLoading(true);\n await axios\n .delete(`/${props.clientCode}/workflows/terminate_selected_templates`, {\n data: {\n ids: ids,\n },\n })\n .then((res) => {\n if (res.status === 200) {\n // NOTE: ローカルストレージにres.data.messageを保存し、リロード後に表示している\n localStorage.setItem(\"workflow_template_notice\", res.data.message);\n location.reload();\n }\n })\n .catch((error) => {\n if (error.response.status === 400) {\n setIsLoading(false);\n setNotice({ isShow: true, message: error.response.data.message, type: \"error\" });\n } else {\n setIsLoading(false);\n setNotice({\n isShow: true,\n message: t(\"WorkflowTemplateFooter.フローボットの停止に失敗しました。\"),\n type: \"error\",\n });\n }\n });\n }\n };\n\n // 保留中のフローボットを起動する\n const handleLaunchHeldWorkflow = async () => {\n const selectedCount = document.querySelector(\".selected-count\") as HTMLElement;\n const confirmMessage = t(\"WorkflowTemplateFooter.選択したフローボットを起動しますか?\", {\n count: Number(selectedCount.textContent),\n });\n if (window.confirm(confirmMessage)) {\n const checked = document.querySelectorAll(\".section-content-item__checkbox:checked\");\n const ids: Array = [];\n checked.forEach((element) => {\n ids.push(element.getAttribute(\"workflow_id\"));\n });\n setIsLoading(true);\n await axios\n .post(`/${props.clientCode}/workflows/boot_held_workflows`, {\n ids: ids,\n is_bulk: false,\n section_id: props.sectionId,\n })\n .then((res) => {\n if (res.status === 200) {\n // NOTE: ローカルストレージにres.data.messageを保存し、リロード後に表示している\n localStorage.setItem(\"workflow_template_notice\", res.data.message);\n window.location.href = res.data.redirect_url;\n }\n })\n .catch((error) => {\n if (error.response.status === 400) {\n setIsLoading(false);\n setNotice({ isShow: true, message: error.response.data.message, type: \"error\" });\n } else {\n setIsLoading(false);\n setNotice({\n isShow: true,\n message: t(\"WorkflowTemplateFooter.フローボットの起動に失敗しました。\"),\n type: \"error\",\n });\n }\n });\n }\n };\n\n // 保留中のフローボットを停止する\n const handleTerminateHeldWorkflow = async () => {\n const selectedCount = document.querySelector(\".selected-count\") as HTMLElement;\n const confirmMessage = t(\"WorkflowTemplateFooter.選択したフローボットを停止しますか?\", {\n count: Number(selectedCount.textContent),\n });\n if (window.confirm(confirmMessage)) {\n const checked = document.querySelectorAll(\".section-content-item__checkbox:checked\");\n const ids: Array = [];\n checked.forEach((element) => {\n ids.push(element.getAttribute(\"workflow_id\"));\n });\n setIsLoading(true);\n await axios\n .post(`/${props.clientCode}/workflows/destroy_held_workflows`, {\n ids: ids,\n is_bulk: false,\n section_id: props.sectionId,\n })\n .then((res) => {\n if (res.status === 200) {\n // NOTE: ローカルストレージにres.data.messageを保存し、リロード後に表示している\n localStorage.setItem(\"workflow_template_notice\", res.data.message);\n location.reload();\n }\n })\n .catch((error) => {\n if (error.response.status === 400) {\n setIsLoading(false);\n setNotice({ isShow: true, message: error.response.data.message, type: \"error\" });\n } else {\n setIsLoading(false);\n setNotice({\n isShow: true,\n message: t(\"WorkflowTemplateFooter.フローボットの停止に失敗しました。\"),\n type: \"error\",\n });\n }\n });\n }\n };\n\n useEffect(() => {\n // ローカルストレージにworkflow_template_noticeがあれば、その内容を取得して表示\n const noticeMessage = localStorage.getItem(\"workflow_template_notice\");\n if (noticeMessage) {\n setNotice({ isShow: true, message: noticeMessage, type: \"notice\" });\n localStorage.removeItem(\"workflow_template_notice\");\n }\n }, []);\n\n useEffect(() => {\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [handleClickOutside]);\n\n return (\n <>\n \n
\n
\n 0\n {t(\"WorkflowTemplateFooter.件選択中\")}\n
\n
\n {props.contentableType === \"WorkflowTemplate\" && (\n <>\n setIsShowProjectList(!isShowProjectList)}\n ref={projectBtnRef}\n >\n \n {t(\"WorkflowTemplateFooter.他プロジェクトに移動\")}\n \n {isShowProjectList && (\n
\n {props.projectNames.map((element, i) => {\n return (\n
handleMove(element[1], element[0])}>\n \n \n {element[0] === t(\"WorkflowTemplateFooter.マイプロジェクト\") ? (\n \n ) : (\n <>{element[0].slice(0, 1)}\n )}\n
\n
\n \n {element[0]}\n
\n
\n );\n })}\n \n )}\n \n \n {t(\"WorkflowTemplateFooter.削除\")}\n \n \n )}\n {props.contentableType === \"Workflow\" && (\n <>\n \n \n {t(\"WorkflowTemplateFooter.停止\")}\n \n \n )}\n {props.contentableType === \"HeldWorkflow\" && (\n <>\n \n \n \n {t(\"WorkflowTemplateFooter.停止\")}\n \n \n )}\n \n
\n \n
\n \n \n {isLoading && (\n
\n
\n \n
\n
\n )}\n \n \n \n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport Modal from \"react-modal\";\nimport style from \"./AddSection.module.scss\";\nimport { Loader } from \"../../common/Loaders/Loader\";\nimport { useTranslation } from \"react-i18next\";\nconst customStyles = {\n overlay: {\n zIndex: 1000,\n background: \"rgba(34,34,34, 0.3)\",\n },\n content: {\n top: \"50%\",\n left: \"50%\",\n right: \"auto\",\n bottom: \"auto\",\n marginRight: \"-50%\",\n transform: \"translate(-50%, -50%)\",\n maxWidth: 1167,\n width: \"765px\",\n borderRadius: 12,\n padding: \"40px\",\n },\n};\n\ntype Props = {\n isOpen: boolean;\n onClose: () => void;\n name?: string;\n onSubmit: (name: string) => Promise;\n isEdit: boolean;\n setNotice: React.Dispatch>;\n};\n\nconst AddSectionModal = ({ isOpen, onClose, name, onSubmit, isEdit, setNotice }: Props) => {\n const [sectionName, setSectionName] = useState(name || \"\");\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(\"\");\n const { t } = useTranslation();\n\n const handleSubmit = async () => {\n if (!sectionName.trim()) {\n setError(t(\"AddSectionModal.プロジェクト名を入力してください。\"));\n return;\n }\n setError(\"\");\n setLoading(true);\n const errorMsg = await onSubmit(sectionName.trim());\n setLoading(false);\n onClose();\n if (errorMsg) {\n setNotice({ isShow: true, message: errorMsg, type: \"error\" });\n }\n };\n\n useEffect(() => {\n setSectionName(name || \"\");\n setError(\"\");\n }, [isOpen]);\n\n return (\n \n
\n
\n
\n {isEdit ? t(\"AddSectionModal.プロジェクトの編集\") : t(\"AddSectionModal.プロジェクトの新規作成\")}\n
\n
\n {isEdit\n ? t(\"AddSectionModal.プロジェクト名を編集します。\")\n : t(\"AddSectionModal.新たにプロジェクトを作成します。プロジェクト名を入力してください。\")}\n
\n
\n
\n
{t(\"AddSectionModal.プロジェクト名\")}
\n
\n setSectionName(e.target.value)}\n data-testid=\"project-name-input\"\n />\n
\n {error &&
{error}
}\n
\n
\n \n \n {loading ? : isEdit ? t(\"AddSectionModal.保存する\") : t(\"AddSectionModal.新規作成\")}\n \n
\n
\n \n );\n};\n\nexport default AddSectionModal;\n","import React, { useState } from \"react\";\nimport AddSectionModal from \"./AddSectionModal\";\nimport { getImageUrl } from \"../../../commons/assets_path\";\nimport { NoticeMessage } from \"../flowbots/Notice/NoticeMessage\";\nimport axios from \"axios\";\nimport { useTranslation } from \"react-i18next\";\naxios.defaults.headers.common[\"X-Requested-With\"] = \"XMLHttpRequest\";\n\ntype Props = {\n clientCode: string;\n};\n\nconst AddSectionButton = ({ clientCode }: Props) => {\n const { t } = useTranslation();\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [notice, setNotice] = useState<{ isShow: boolean; message: string; type: string }>({\n isShow: false,\n message: \"\",\n type: \"\",\n });\n\n const openModal = () => setIsModalOpen(true);\n const closeModal = () => setIsModalOpen(false);\n\n const onSubmit = async (name: string): Promise => {\n const res = await axios\n .post(`/${clientCode}/sections`, {\n name: name,\n })\n .catch((error) => {\n return error.response;\n });\n\n if (res.status === 200) {\n window.location.href = res.data.url;\n closeModal();\n return \"\";\n } else if (res.status === 422) {\n return res.data.errors.name[0];\n } else {\n return t(\"AddSectionButton.プロジェクトの作成に失敗しました\");\n }\n };\n\n return (\n <>\n \n \n \n \n \n \n );\n};\n\nexport default AddSectionButton;\n","import React, { useState } from \"react\";\nimport AddSectionModal from \"./AddSectionModal\";\nimport { getImageUrl } from \"../../../commons/assets_path\";\nimport axios from \"axios\";\nimport useLanguageChange from \"../../../hooks/useLanguageChange\";\ntype Props = {\n clientCode: string;\n sectionName: string;\n sectionId: string;\n locale: string;\n};\n\nconst EditSectionButton = ({ clientCode, sectionName, sectionId, locale }: Props) => {\n const { t } = useLanguageChange(locale);\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [errorMessage, setErrorMessage] = useState(\"\");\n\n const openModal = () => setIsModalOpen(true);\n const closeModal = () => setIsModalOpen(false);\n\n const handleUpdate = async (newName: string) => {\n const response = await axios.patch(`/${clientCode}/sections/${sectionId}`, {\n section: { name: newName },\n });\n if (response.status === 200) {\n window.location.href = response.data.url;\n } else {\n setErrorMessage(t(\"EditSectionButton.プロジェクトの編集に失敗しました\"));\n }\n };\n\n return (\n <>\n \n
\n \n {t(\"EditSectionButton.編集する\")}\n
\n \n \n \n );\n};\n\nexport default EditSectionButton;\n","import React, { useState, useEffect } from \"react\";\nimport styles from \"./SectionIcon.module.scss\";\nimport { getImageUrl } from \"../../../commons/assets_path\";\nimport axios from \"axios\";\naxios.defaults.headers.common[\"X-Requested-With\"] = \"XMLHttpRequest\";\nimport { IconSuggest } from \"../../common/DynamicTables/DbIcon/IconSuggest\";\n\ntype Props = {\n section: {\n id: number;\n name: string;\n iconId: number;\n isFirstCreate: boolean;\n isMySection: boolean;\n icon_path: IconType;\n };\n clientCode: string;\n isEditPermission: boolean;\n};\n\ntype IconType = { unicode: string | null; image_path: string | null };\n\ntype IconData = {\n icon_id: number;\n image_path?: string;\n unicode?: string | null;\n};\n\nexport const SectionIcon = ({ section, clientCode, isEditPermission }: Props) => {\n const [isIconOpen, setIsIconOpen] = useState(false);\n const [currentIcon, setCurrentIcon] = useState(section.icon_path);\n const [isFirstCreate, setIsFirstCreate] = useState(section.isFirstCreate);\n\n const getRandomIcon = (iconDataObj: Record): IconData | null => {\n const allIcons = Object.values(iconDataObj).flat();\n if (allIcons.length === 0) return null;\n\n const randomIndex = Math.floor(Math.random() * allIcons.length);\n return allIcons[randomIndex];\n };\n\n const setRandomIcon = (iconDataObj: Record) => {\n const icon = getRandomIcon(iconDataObj);\n if (icon) {\n setCurrentIcon({ unicode: icon.unicode ?? null, image_path: icon.image_path ?? null });\n registerIcon(icon.icon_id);\n setIsFirstCreate(false);\n }\n };\n\n const fetchIcons = async () => {\n await axios.get(`/${clientCode}/icons`).then((res) => {\n setRandomIcon(res.data.icons);\n });\n };\n\n const registerIcon = async (iconId: number) => {\n await axios.patch(`/${clientCode}/icons/sections/${section.id}`, {\n icon_id: iconId,\n });\n };\n\n useEffect(() => {\n const fetchData = async () => {\n if (isFirstCreate) {\n await fetchIcons();\n }\n };\n fetchData();\n }, [section.id, clientCode]);\n\n return (\n <>\n isEditPermission && !section.isMySection && setIsIconOpen(!isIconOpen)}\n className={styles.sectionIcon}\n style={{ cursor: isEditPermission && !section.isMySection ? \"pointer\" : \"default\" }}\n >\n {currentIcon?.unicode ? (\n \n {currentIcon?.unicode}\n \n ) : currentIcon?.image_path ? (\n \n ) : !isFirstCreate ? (\n
\n {section.isMySection ? (\n \n ) : (\n
{section.name.charAt(0)}
\n )}\n
\n ) : null}\n \n {isIconOpen && (\n \n )}\n \n );\n};\n","// @ts-nocheck\nimport ReactOnRails from \"react-on-rails\";\nimport { MoveProjectFooter } from \"../../components/common/ProjectFooter/MoveProjectFooter\";\nimport { HeldWorkflowMenu } from \"../../components/common/ProjectFooter/HeldWorkflowMenu\";\nimport { WorkflowTemplateFooter } from \"../../components/common/ProjectFooter/WorkflowTemplateFooter\";\nimport { LoadBootBtn } from \"../../components/common/LoadBtn/LoadBootBtn\";\nimport AddSectionButton from \"../../components/templates/Sidebar/AddSectionButton\";\nimport EditSectionButton from \"../../components/templates/Sidebar/EditSectionButton\";\nimport { SectionIcon } from \"../../components/templates/section/SectionIcon\";\n\nReactOnRails.register({\n MoveProjectFooter,\n HeldWorkflowMenu,\n WorkflowTemplateFooter,\n LoadBootBtn,\n AddSectionButton,\n EditSectionButton,\n SectionIcon,\n});\n"],"names":["MoveProjectFooter","props","t","useLanguageChange","optionArea","setOptionArea","useState","selectValue","setSelectValue","id","setId","selectCount","setSelectCount","optionWrapRef","useRef","initCustomScripts","span","mo","config","useEffect","hundleClickOutside","e","jsxs","jsx","style","getImageUrl","element","i","Fragment","PropTypes","axios","HeldWorkflowMenu","detailMenuRef","isLoading","setIsLoading","notice","setNotice","isShowDetailMenu","setIsShowDetailMenu","handleClickOutsideDetailMenu","event","handleLaunchHeldWorkflow","confirmMessage","res","error","handleTerminateHeldWorkflow","noticeMessage","NoticeMessage","workflowTemplateStyles","Loader","WorkflowTemplateFooter","projectListRef","projectBtnRef","isShowProjectList","setIsShowProjectList","handleClickOutside","handleClose","footer","selectAllCheckbox","handleDelete","selectedCount","checked","ids","handleMove","projectId","projectName","checkboxes","sectionContents","contentableId","acc","contentable_id","index","_a","handleTerminate","customStyles","AddSectionModal","isOpen","onClose","name","onSubmit","isEdit","sectionName","setSectionName","loading","setLoading","setError","useTranslation","handleSubmit","errorMsg","Modal","AddSectionButton","clientCode","isModalOpen","setIsModalOpen","openModal","closeModal","EditSectionButton","sectionId","locale","errorMessage","setErrorMessage","handleUpdate","newName","response","SectionIcon","section","isEditPermission","isIconOpen","setIsIconOpen","currentIcon","setCurrentIcon","isFirstCreate","setIsFirstCreate","getRandomIcon","iconDataObj","allIcons","randomIndex","setRandomIcon","icon","registerIcon","fetchIcons","iconId","styles","IconSuggest","ReactOnRails","LoadBootBtn"],"mappings":"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"}