{"version":3,"file":"knowledge_uploader-98f09818.js","sources":["../../../app/javascript/entries/_modules/knowledge_uploader.ts"],"sourcesContent":["// @ts-nocheck\nimport { getImageUrl } from \"../../commons/assets_path\";\nimport i18next from \"i18next\";\n\nexport function initializeUploader(settings) {\n const sourceFileInput = document.getElementById(settings.inputId);\n\n if (!sourceFileInput) return;\n\n const sourceFileDropzone = document.getElementsByClassName(settings.dropzoneClass)[0];\n const sourceFileInputLabel = document.getElementsByClassName(settings.labelClass)[0];\n const sourceFilePreviewArea = document.getElementsByClassName(settings.previewAreaClass)[0];\n const sourceFileSubmitBtn = document.getElementsByClassName(settings.submitBtnClass)[0];\n const uploadedFileDataTransfer = new DataTransfer();\n\n sourceFileDropzone.addEventListener(\"click\", () => {\n sourceFileInput.click();\n });\n\n sourceFileInputLabel.addEventListener(\"click\", () => {\n sourceFileInput.click();\n });\n\n sourceFileInputLabel.addEventListener(\"keydown\", (event) => {\n if (!sourceFileInputLabel.isEqualNode(event.target)) return;\n\n if (event.key === \"Enter\") {\n event.preventDefault();\n sourceFileInput.click();\n }\n });\n\n sourceFileDropzone.addEventListener(\"dragover\", (e) => {\n e.preventDefault();\n sourceFileDropzone.classList.add(\"dragover\");\n });\n\n sourceFileDropzone.addEventListener(\"dragleave\", function (e) {\n e.preventDefault();\n sourceFileDropzone.classList.remove(\"dragover\");\n });\n\n sourceFileDropzone.addEventListener(\"drop\", function (e) {\n e.preventDefault();\n sourceFileDropzone.classList.remove(\"dragover\");\n\n handleFileUpload(e.dataTransfer.files);\n });\n\n sourceFileInput.addEventListener(\"change\", (e) => {\n handleFileUpload(e.target.files);\n });\n\n function handleFileUpload(newFiles) {\n try {\n const file_size = uploadedFileDataTransfer.files.length + newFiles.length;\n\n if (file_size <= 20) {\n if (newFiles.length === 0) return;\n removeAttachedFilePreview();\n\n const tmpDataTransfer = new DataTransfer();\n for (let i = 0; i < uploadedFileDataTransfer.files.length; i++) {\n tmpDataTransfer.items.add(uploadedFileDataTransfer.files.item(i));\n }\n\n for (let i = 0; i < newFiles.length; i++) {\n tmpDataTransfer.items.add(newFiles.item(i));\n }\n\n addAttachedFilePreview(tmpDataTransfer.files);\n sourceFileInput.files = tmpDataTransfer.files;\n sourceFileSubmitBtn.disabled = false;\n\n uploadedFileDataTransfer.items.clear();\n for (let i = 0; i < sourceFileInput.files.length; i++) {\n uploadedFileDataTransfer.items.add(sourceFileInput.files[i]);\n }\n } else {\n alert(i18next.t(\"knowledgeUploader.fileLimitExceeded\"));\n }\n } catch (e) {\n alert(i18next.t(\"knowledgeUploader.fileReadFailed\"));\n }\n }\n\n function removeAttachedFilePreview() {\n while (sourceFilePreviewArea.firstChild) {\n sourceFilePreviewArea.removeChild(sourceFilePreviewArea.firstChild);\n }\n\n sourceFileSubmitBtn.disabled = true;\n }\n\n function addAttachedFilePreview(files) {\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n const preview = createFileNamePreviewDom(file.name);\n sourceFilePreviewArea.appendChild(preview);\n }\n }\n\n function createFileNamePreviewDom(filename) {\n const preview = document.createElement(\"div\");\n preview.classList.add(\"d-flex\", \"align-items-center\", \"mr-3\", \"mb-2\");\n const content = createFileNamePreviewContent(filename);\n const removeBtn = createFileNamePreviewRemoveBtn(preview);\n preview.appendChild(content);\n preview.appendChild(removeBtn);\n return preview;\n }\n\n function createFileNamePreviewContent(filename) {\n const content = document.createElement(\"div\");\n content.classList.add(\"knowledge_data_source_file_preview_content\");\n const fileIcon = createFileIcon();\n const fileNameLabel = createFileNameLabel(filename);\n content.appendChild(fileIcon);\n content.appendChild(fileNameLabel);\n return content;\n }\n\n function createFileIcon() {\n const icon = document.createElement(\"img\");\n icon.src = getImageUrl(\"images/icons/yoomKnowledgefileBlack.svg\");\n icon.width = 20;\n icon.height = 20;\n return icon;\n }\n\n function createFileNameLabel(filename) {\n const name = document.createElement(\"span\");\n name.classList.add(\"yoom-knowledge-text-black\", \"knowledge_data_source_file_preview_content__file_name\");\n name.textContent = filename;\n return name;\n }\n\n function createFileNamePreviewRemoveBtn(preview) {\n const removeBtn = document.createElement(\"img\");\n removeBtn.classList.add(\"clickable\", \"js-file_knowledge_data_source_file_remove_btn\");\n removeBtn.src = getImageUrl(\"images/icons/cancel.svg\");\n removeBtn.width = 20;\n removeBtn.height = 20;\n\n removeBtn.addEventListener(\"click\", function (this) {\n const clickedBtnIndex = Array.from(\n document.getElementsByClassName(\"js-file_knowledge_data_source_file_remove_btn\"),\n ).indexOf(this);\n const dt = new DataTransfer();\n\n uploadedFileDataTransfer.items.clear();\n for (let i = 0; i < sourceFileInput.files.length; i++) {\n if (i === clickedBtnIndex) continue;\n dt.items.add(sourceFileInput.files.item(i));\n uploadedFileDataTransfer.items.add(sourceFileInput.files.item(i));\n }\n\n sourceFileInput.files = dt.files;\n preview.remove();\n if (sourceFilePreviewArea.children.length === 0) {\n sourceFileSubmitBtn.disabled = true;\n }\n });\n return removeBtn;\n }\n}\n"],"names":["initializeUploader","settings","sourceFileInput","sourceFileDropzone","sourceFileInputLabel","sourceFilePreviewArea","sourceFileSubmitBtn","uploadedFileDataTransfer","event","handleFileUpload","newFiles","removeAttachedFilePreview","tmpDataTransfer","i","addAttachedFilePreview","i18next","files","file","preview","createFileNamePreviewDom","filename","content","createFileNamePreviewContent","removeBtn","createFileNamePreviewRemoveBtn","fileIcon","createFileIcon","fileNameLabel","createFileNameLabel","icon","getImageUrl","name","clickedBtnIndex","dt"],"mappings":"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"}