@bigbinary/neeto-editor 1.47.116 → 1.47.118

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/Attachments.js +1 -1
  2. package/dist/Editor.js +2 -2
  3. package/dist/FormikEditor.js +1 -1
  4. package/dist/{chunk-C2YYL9vY.js → chunk-Ck5Gyhaq.js} +8 -4
  5. package/dist/chunk-Ck5Gyhaq.js.map +1 -0
  6. package/dist/{chunk-3JO2B_HR.js → chunk-DSFIk2ef.js} +3 -2
  7. package/dist/chunk-DSFIk2ef.js.map +1 -0
  8. package/dist/{chunk-BO6bjSuY.js → chunk-DdxH-PMo.js} +2 -2
  9. package/dist/{chunk-BO6bjSuY.js.map → chunk-DdxH-PMo.js.map} +1 -1
  10. package/dist/{chunk-CNWsmIz_.js → chunk-W5-WB6Fb.js} +11 -11
  11. package/dist/chunk-W5-WB6Fb.js.map +1 -0
  12. package/dist/cjs/Attachments.cjs.js +1 -1
  13. package/dist/cjs/Editor.cjs.js +2 -2
  14. package/dist/cjs/FormikEditor.cjs.js +1 -1
  15. package/dist/cjs/{chunk-BYyLrDTW.cjs.js → chunk-62QG5j0v.cjs.js} +3 -2
  16. package/dist/cjs/chunk-62QG5j0v.cjs.js.map +1 -0
  17. package/dist/cjs/{chunk-BzPTK6pP.cjs.js → chunk-Cqq9Q2Ty.cjs.js} +8 -4
  18. package/dist/cjs/chunk-Cqq9Q2Ty.cjs.js.map +1 -0
  19. package/dist/cjs/{chunk-DRB71ojr.cjs.js → chunk-D8Uup1eh.cjs.js} +2 -2
  20. package/dist/cjs/{chunk-DRB71ojr.cjs.js.map → chunk-D8Uup1eh.cjs.js.map} +1 -1
  21. package/dist/cjs/{chunk-CIuJ_EMY.cjs.js → chunk-DE_yHAbe.cjs.js} +11 -11
  22. package/dist/cjs/chunk-DE_yHAbe.cjs.js.map +1 -0
  23. package/dist/cjs/index.cjs.js +2 -2
  24. package/dist/cjs/v2/Editor.cjs.js +81 -43
  25. package/dist/cjs/v2/Editor.cjs.js.map +1 -1
  26. package/dist/cjs/v2/EditorContent.cjs.js +1 -1
  27. package/dist/cjs/v2/FormikEditor.cjs.js +1 -1
  28. package/dist/cjs/v2/Menu.cjs.js +1 -1
  29. package/dist/cjs/v2/constants.cjs.js +13 -0
  30. package/dist/cjs/v2/constants.cjs.js.map +1 -0
  31. package/dist/cjs/v2/index.cjs.js +2 -2
  32. package/dist/cjs/v2/utils.cjs.js +29 -0
  33. package/dist/cjs/v2/utils.cjs.js.map +1 -0
  34. package/dist/editor-stats.html +2 -2
  35. package/dist/index.js +2 -2
  36. package/dist/v2/Editor.js +84 -46
  37. package/dist/v2/Editor.js.map +1 -1
  38. package/dist/v2/EditorContent.js +1 -1
  39. package/dist/v2/FormikEditor.js +1 -1
  40. package/dist/v2/Menu.js +1 -1
  41. package/dist/v2/constants.js +6 -0
  42. package/dist/v2/constants.js.map +1 -0
  43. package/dist/v2/index.js +2 -2
  44. package/dist/v2/styles.css +1 -1
  45. package/dist/v2/styles.js +1 -1
  46. package/dist/v2/utils.js +17 -0
  47. package/dist/v2/utils.js.map +1 -0
  48. package/package.json +1 -1
  49. package/dist/chunk-3JO2B_HR.js.map +0 -1
  50. package/dist/chunk-C2YYL9vY.js.map +0 -1
  51. package/dist/chunk-CNWsmIz_.js.map +0 -1
  52. package/dist/cjs/chunk-BYyLrDTW.cjs.js.map +0 -1
  53. package/dist/cjs/chunk-BzPTK6pP.cjs.js.map +0 -1
  54. package/dist/cjs/chunk-CIuJ_EMY.cjs.js.map +0 -1
@@ -421,7 +421,7 @@ var AttachmentProgress = function AttachmentProgress(_ref) {
421
421
  };
422
422
 
423
423
  var Preview = /*#__PURE__*/React.lazy(function () {
424
- return Promise.resolve().then(function () { return require('./chunk-BYyLrDTW.cjs.js'); });
424
+ return Promise.resolve().then(function () { return require('./chunk-62QG5j0v.cjs.js'); });
425
425
  });
426
426
  var Attachments$1 = function Attachments(_ref, ref) {
427
427
  var _fileUploadConfig$all;
@@ -595,4 +595,4 @@ exports.ATTACHMENTS_PREVIEW_DATA_CY = ATTACHMENTS_PREVIEW_DATA_CY;
595
595
  exports.Attachments = Attachments;
596
596
  exports.checkPreviewAvailability = checkPreviewAvailability;
597
597
  exports.downloadFile = downloadFile;
598
- //# sourceMappingURL=chunk-DRB71ojr.cjs.js.map
598
+ //# sourceMappingURL=chunk-D8Uup1eh.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-DRB71ojr.cjs.js","sources":["../../src/components/Attachments/constants.js","../../src/components/Attachments/utils.js","../../src/components/Attachments/Attachment.jsx","../../src/components/Attachments/AttachmentProgress.jsx","../../src/components/Attachments/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { globalProps } from \"neetocommons/initializers\";\n\nimport { DIRECT_UPLOAD_ENDPOINT } from \"src/common/constants\";\n\nexport const DEFAULT_FILE_UPLOAD_CONFIG = {\n directUploadEndpoint: DIRECT_UPLOAD_ENDPOINT,\n restrictions: {\n maxFileSize: globalProps.endUserUploadedFileSizeLimitInMb * 1024 * 1024,\n },\n};\n\nexport const ATTACHMENT_OPTIONS = {\n OPEN_IN_NEW_TAB: t(\"neetoEditor.common.openInNewTab\"),\n DOWNLOAD: t(\"neetoEditor.common.download\"),\n RENAME: t(\"neetoEditor.attachments.rename\"),\n DELETE: t(\"neetoEditor.menu.delete\"),\n};\n\nexport const ATTACHMENTS_PREVIEW_DATA_CY = \"ne-attachments-preview-content\";\n","import { Toastr } from \"neetoui\";\nimport { mergeRight } from \"ramda\";\n\nimport { DEFAULT_FILE_UPLOAD_CONFIG } from \"./constants\";\n\nexport const buildFileUploadConfig = config =>\n mergeRight(DEFAULT_FILE_UPLOAD_CONFIG, config);\n\nexport const downloadFile = async (fileUrl, filename) => {\n try {\n const response = await fetch(fileUrl);\n const blob = await response.blob();\n const blobUrl = URL.createObjectURL(blob);\n\n const a = document.createElement(\"a\");\n a.href = blobUrl;\n a.setAttribute(\"download\", filename);\n a.style.display = \"none\";\n document.body.appendChild(a);\n\n a.click();\n\n document.body.removeChild(a);\n URL.revokeObjectURL(blobUrl);\n } catch (error) {\n Toastr.error(error);\n }\n};\n\nexport const checkPreviewAvailability = contentType =>\n contentType &&\n (contentType.startsWith(\"video/\") ||\n contentType === \"application/pdf\" ||\n contentType === \"image/jpeg\" ||\n contentType === \"image/gif\" ||\n contentType === \"image/png\" ||\n contentType === \"image/webp\" ||\n contentType === \"text/plain\" ||\n contentType === \"image/bmp\" ||\n contentType === \"application/msword\" ||\n contentType ===\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" ||\n contentType === \"image/jpg\" ||\n contentType === \"application/vnd.ms-powerpoint\" ||\n contentType ===\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\" ||\n contentType === \"image/tiff\" ||\n contentType === \"application/vnd.ms-excel\" ||\n contentType ===\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\");\n","import { useState, useRef } from \"react\";\n\nimport { removeBy } from \"neetocist\";\nimport useOnClickOutside from \"neetocommons/react-utils/useOnClickOutside\";\nimport { withEventTargetValue } from \"neetocommons/utils\";\nimport { MenuVertical, Close, Check } from \"neetoicons\";\nimport {\n Dropdown,\n Input,\n Spinner,\n Toastr,\n Tooltip,\n Typography,\n Button,\n Alert,\n} from \"neetoui\";\nimport { isEmpty, assoc } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport directUploadsApi from \"apis/direct_uploads\";\n\nimport { ATTACHMENT_OPTIONS } from \"./constants\";\nimport { downloadFile } from \"./utils\";\n\nimport FileIcon from \"../Common/FileIcon\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst Attachment = ({\n attachment,\n attachments,\n disabled,\n onChange,\n setSelectedAttachment,\n isLoading,\n allowDelete,\n allowOpenInNewTab,\n}) => {\n const { t } = useTranslation();\n\n const [isRenaming, setIsRenaming] = useState(false);\n const [isUpdating, setIsUpdating] = useState(false);\n const [isDeleteAlertOpen, setIsDeleteAlertOpen] = useState(false);\n const [isDeleting, setIsDeleting] = useState(false);\n const [newFilename, setNewFilename] = useState(\"\");\n\n const renameRef = useRef(null);\n\n useOnClickOutside(renameRef, () => {\n if (!isRenaming) return;\n setIsRenaming(false);\n setNewFilename(\"\");\n });\n\n const handleDownload = () =>\n downloadFile(attachment.url, attachment.filename);\n\n const handleOpenInNewTab = () =>\n window.open(attachment.url, \"_blank\", \"noopener,noreferrer\");\n\n const handleRename = async () => {\n try {\n setIsUpdating(true);\n const { signedId } = attachment;\n const payload = { blob: { filename: newFilename } };\n\n const response = await directUploadsApi.update({ signedId, payload });\n const filename = response.data?.blob?.filename || response.blob.filename;\n\n onChange(\n attachments.map(attachment =>\n attachment.signedId === signedId\n ? assoc(\"filename\", filename, attachment)\n : attachment\n )\n );\n } catch (error) {\n Toastr.error(error);\n } finally {\n setIsRenaming(false);\n setIsUpdating(false);\n setNewFilename(\"\");\n }\n };\n\n const handleDelete = async () => {\n if (!allowDelete) return;\n\n setIsDeleting(true);\n try {\n const { signedId } = attachment;\n await directUploadsApi.destroy(signedId);\n onChange(removeBy({ signedId }, attachments));\n } catch (error) {\n Toastr.error(error);\n }\n };\n\n const handlers = {\n ...(allowOpenInNewTab && {\n [ATTACHMENT_OPTIONS.OPEN_IN_NEW_TAB]: handleOpenInNewTab,\n }),\n [ATTACHMENT_OPTIONS.DOWNLOAD]: handleDownload,\n [ATTACHMENT_OPTIONS.RENAME]: handleRename,\n ...(allowDelete && { [ATTACHMENT_OPTIONS.DELETE]: handleDelete }),\n };\n\n const onMenuItemClick = ({ key, handler }) => {\n if (key === ATTACHMENT_OPTIONS.RENAME) {\n setIsRenaming(true);\n setNewFilename(attachment.filename);\n } else if (key === ATTACHMENT_OPTIONS.DELETE) {\n setNewFilename(attachment.filename);\n setIsDeleteAlertOpen(true);\n } else {\n handler();\n }\n };\n\n const handleKeyDown = ({ event, key }) => {\n const handler = handlers[key];\n\n if (event.key === \"Enter\" && handler && !isEmpty(newFilename)) {\n event.stopPropagation();\n event.preventDefault();\n handler();\n }\n\n if (event.key === \"Escape\") {\n setIsRenaming(false);\n setNewFilename(\"\");\n }\n };\n\n return (\n <>\n <div\n className=\"ne-attachments__preview\"\n data-testid=\"ne-attachments-wrapper\"\n >\n {isRenaming ? (\n <div ref={renameRef}>\n <Tooltip content={newFilename} position=\"top\">\n <Input\n autoFocus\n data-testid=\"neeto-editor-preview-rename-input\"\n size=\"small\"\n value={newFilename}\n error={\n isEmpty(newFilename)\n ? t(\"neetoEditor.attachments.nameEmpty\")\n : \"\"\n }\n suffix={\n <div className=\"flex items-center justify-end\">\n <Button\n data-testid=\"neeto-editor-preview-rename-submit-button\"\n disabled={isEmpty(newFilename) || isUpdating}\n icon={Check}\n loading={isUpdating}\n size=\"small\"\n style=\"text\"\n onClick={handleRename}\n />\n <Button\n data-testid=\"neeto-editor-preview-rename-cancel-button\"\n disabled={isUpdating}\n icon={Close}\n size=\"small\"\n style=\"text\"\n onClick={() => {\n setIsRenaming(false);\n setNewFilename(\"\");\n }}\n />\n </div>\n }\n onChange={withEventTargetValue(setNewFilename)}\n onKeyDown={event =>\n handleKeyDown({\n event,\n key: ATTACHMENT_OPTIONS.RENAME,\n })\n }\n />\n </Tooltip>\n </div>\n ) : (\n <>\n <div\n className=\"ne-attachments__preview-wrapper\"\n onClick={() => setSelectedAttachment(attachment)}\n >\n <FileIcon\n className=\"ne-attachments__preview-wrapper__icon\"\n fileName={attachment.filename}\n />\n <Tooltip content={attachment.filename} position=\"top\">\n <Typography style=\"body2\">{attachment.filename}</Typography>\n </Tooltip>\n {isLoading && <Spinner className=\"attachment-button-loader\" />}\n </div>\n <Tooltip\n content={t(\"neetoEditor.attachments.actionsBlocked\")}\n disabled={!disabled}\n position=\"top\"\n >\n <Dropdown\n {...{ disabled }}\n buttonSize=\"small\"\n buttonStyle=\"text\"\n icon={MenuVertical}\n >\n <Menu>\n {Object.entries(handlers).map(([label, handler]) => (\n <MenuItem.Button\n data-testid={`neeto-editor-preview-${label.toLowerCase()}-button`}\n key={label}\n onClick={() => onMenuItemClick({ key: label, handler })}\n >\n {label}\n </MenuItem.Button>\n ))}\n </Menu>\n </Dropdown>\n </Tooltip>\n </>\n )}\n </div>\n <Alert\n isOpen={isDeleteAlertOpen}\n isSubmitting={isDeleting}\n submitButtonLabel={t(\"neetoEditor.menu.delete\")}\n title={t(\"neetoEditor.attachments.deleteTitle\")}\n message={\n <Trans\n i18nKey=\"neetoEditor.attachments.deleteConfirmation\"\n values={{ entity: newFilename }}\n />\n }\n onClose={() => setIsDeleteAlertOpen(false)}\n onSubmit={handleDelete}\n />\n </>\n );\n};\n\nexport default Attachment;\n","import { Close } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\nimport { FileIcon } from \"react-file-icon\";\n\nconst AttachmentProgress = ({ attachment, cancelUpload }) => {\n const progressPercentage = `${attachment.progress ?? 0}%`;\n\n const handleCancel = () => {\n cancelUpload(attachment.id);\n };\n\n return (\n <div className=\"ne-attachments__preview\">\n <div className=\"ne-attachments__preview__progress-icon\">\n <FileIcon />\n </div>\n <div className=\"ne-attachments__preview__progress\">\n <Typography style=\"body2\">{attachment.filename}</Typography>\n <Typography style=\"body2\">{progressPercentage}</Typography>\n </div>\n <Button\n data-testid=\"neeto-editor-preview-upload-cancel-button\"\n icon={Close}\n size=\"small\"\n style=\"text\"\n onClick={handleCancel}\n />\n </div>\n );\n};\n\nexport default AttachmentProgress;\n","import {\n forwardRef,\n useRef,\n useState,\n useImperativeHandle,\n lazy,\n Suspense,\n useMemo,\n memo,\n} from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotEmpty, isPresent, noop } from \"neetocist\";\nimport { Button, Toastr } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useDropFiles from \"hooks/useDropFiles\";\nimport useFileUploader from \"hooks/useFileUploader\";\nimport \"src/styles/components/attachments.scss\";\n\nimport Attachment from \"./Attachment\";\nimport AttachmentProgress from \"./AttachmentProgress\";\nimport { buildFileUploadConfig } from \"./utils\";\n\nconst Preview = lazy(() => import(\"./Preview\"));\n\nconst Attachments = (\n {\n attachments = [],\n className = \"\",\n onChange = noop,\n isIndependent = true,\n disabled = false,\n dragDropRef = null,\n config = {},\n setIsUploading = noop,\n allowDelete = true,\n allowOpenInNewTab = true,\n },\n ref\n) => {\n const { t } = useTranslation();\n\n const [selectedAttachment, setSelectedAttachment] = useState({});\n const [didFetchPreviewBundle, setDidFetchPreviewBundle] = useState(false);\n\n const attachmentInputRef = useRef(null);\n\n const fileUploadConfig = useMemo(\n () => buildFileUploadConfig(config),\n [config]\n );\n\n const { addFiles, uploadFiles, queuedFiles, cancelUpload, isUploading } =\n useFileUploader({\n config: fileUploadConfig,\n setIsUploadingOnHost: setIsUploading,\n attachments,\n });\n\n const handleAddFile = async event => {\n addFiles(event.target.files);\n const uploadedFiles = await uploadFiles();\n isNotEmpty(uploadedFiles) && onChange([...attachments, ...uploadedFiles]);\n attachmentInputRef.current.value = null;\n };\n\n const handleUploadAttachments = () => attachmentInputRef.current.click();\n\n const handleFileInputClick = event => {\n if (!(!isEmpty(attachments) && fileUploadConfig.maxNumberOfFiles === 1)) {\n return;\n }\n event.preventDefault();\n Toastr.warning(t(\"neetoEditor.attachments.oneAttachmentAllowed\"));\n };\n\n useImperativeHandle(ref, () => ({ handleUploadAttachments }), []);\n\n const handleFilesDrop = async files => {\n addFiles(files);\n const uploadedFiles = await uploadFiles();\n isNotEmpty(uploadedFiles) && onChange([...attachments, ...uploadedFiles]);\n };\n\n useDropFiles({\n dropTargetRef: dragDropRef,\n attachments,\n onDrop: handleFilesDrop,\n });\n\n return (\n <div className={classnames(\"ne-attachments\", { [className]: className })}>\n <div className=\"ne-attachments__items\">\n {attachments.map(attachment => (\n <Attachment\n {...{\n allowDelete,\n allowOpenInNewTab,\n attachment,\n attachments,\n disabled,\n onChange,\n setSelectedAttachment,\n }}\n key={attachment.signedId}\n isLoading={\n !didFetchPreviewBundle &&\n selectedAttachment.url === attachment.url\n }\n />\n ))}\n {queuedFiles.map(attachment => (\n <AttachmentProgress\n {...{ attachment, cancelUpload }}\n key={attachment.id}\n />\n ))}\n </div>\n <div>\n {isIndependent && (\n <Button\n data-testid=\"neeto-editor-attachments-upload-button\"\n disabled={isUploading}\n label={t(\"neetoEditor.attachments.add\")}\n loading={isUploading}\n size=\"medium\"\n style=\"link\"\n onClick={handleUploadAttachments}\n />\n )}\n <input\n accept={fileUploadConfig.allowedFileTypes?.join(\",\")}\n multiple={fileUploadConfig.maxNumberOfFiles !== 1}\n ref={attachmentInputRef}\n type=\"file\"\n onChange={handleAddFile}\n onClick={handleFileInputClick}\n />\n <Suspense fallback={<span />}>\n {isPresent(selectedAttachment) && (\n <Preview\n {...{\n attachments,\n selectedAttachment,\n setDidFetchPreviewBundle,\n setSelectedAttachment,\n }}\n onClose={() => setSelectedAttachment({})}\n />\n )}\n </Suspense>\n </div>\n </div>\n );\n};\n\nAttachments.displayName = \"NeetoEditorAttachments\";\n\nexport default memo(forwardRef(Attachments));\n"],"names":["DEFAULT_FILE_UPLOAD_CONFIG","directUploadEndpoint","DIRECT_UPLOAD_ENDPOINT","restrictions","maxFileSize","globalProps","endUserUploadedFileSizeLimitInMb","ATTACHMENT_OPTIONS","OPEN_IN_NEW_TAB","t","DOWNLOAD","RENAME","DELETE","ATTACHMENTS_PREVIEW_DATA_CY","buildFileUploadConfig","config","mergeRight","downloadFile","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","fileUrl","filename","response","blob","blobUrl","a","wrap","_callee$","_context","prev","next","fetch","sent","URL","createObjectURL","document","createElement","href","setAttribute","style","display","body","appendChild","click","removeChild","revokeObjectURL","t0","Toastr","error","stop","_x","_x2","apply","arguments","checkPreviewAvailability","contentType","startsWith","Menu","Dropdown","MenuItem","Attachment","attachment","attachments","disabled","onChange","setSelectedAttachment","isLoading","allowDelete","allowOpenInNewTab","_useTranslation","useTranslation","_useState","useState","_useState2","_slicedToArray","isRenaming","setIsRenaming","_useState3","_useState4","isUpdating","setIsUpdating","_useState5","_useState6","isDeleteAlertOpen","setIsDeleteAlertOpen","_useState7","_useState8","isDeleting","setIsDeleting","_useState9","_useState0","newFilename","setNewFilename","renameRef","useRef","useOnClickOutside","handleDownload","url","handleOpenInNewTab","window","open","handleRename","_ref2","_response$data","signedId","payload","directUploadsApi","update","data","map","assoc","finish","handleDelete","_ref3","_callee2","_callee2$","_context2","abrupt","destroy","removeBy","handlers","_objectSpread","_defineProperty","onMenuItemClick","_ref6","key","handler","handleKeyDown","_ref7","event","isEmpty","stopPropagation","preventDefault","_jsxs","_Fragment","children","_jsx","className","ref","Tooltip","content","position","Input","autoFocus","size","value","suffix","Button","icon","Check","loading","onClick","Close","withEventTargetValue","onKeyDown","FileIcon","fileName","Typography","Spinner","buttonSize","buttonStyle","MenuVertical","Object","entries","_ref8","_ref9","label","concat","toLowerCase","Alert","isOpen","isSubmitting","submitButtonLabel","title","message","Trans","i18nKey","values","entity","onClose","onSubmit","AttachmentProgress","_attachment$progress","cancelUpload","progressPercentage","progress","handleCancel","id","Preview","lazy","Attachments","_fileUploadConfig$all","_ref$attachments","_ref$className","_ref$onChange","noop","_ref$isIndependent","isIndependent","_ref$disabled","_ref$dragDropRef","dragDropRef","_ref$config","_ref$setIsUploading","setIsUploading","_ref$allowDelete","_ref$allowOpenInNewTa","selectedAttachment","didFetchPreviewBundle","setDidFetchPreviewBundle","attachmentInputRef","fileUploadConfig","useMemo","_useFileUploader","useFileUploader","setIsUploadingOnHost","addFiles","uploadFiles","queuedFiles","isUploading","handleAddFile","uploadedFiles","target","files","isNotEmpty","_toConsumableArray","current","handleUploadAttachments","handleFileInputClick","maxNumberOfFiles","warning","useImperativeHandle","handleFilesDrop","useDropFiles","dropTargetRef","onDrop","classnames","_createElement","accept","allowedFileTypes","join","multiple","type","Suspense","fallback","isPresent","displayName","memo","forwardRef"],"mappings":"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"}
1
+ {"version":3,"file":"chunk-D8Uup1eh.cjs.js","sources":["../../src/components/Attachments/constants.js","../../src/components/Attachments/utils.js","../../src/components/Attachments/Attachment.jsx","../../src/components/Attachments/AttachmentProgress.jsx","../../src/components/Attachments/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { globalProps } from \"neetocommons/initializers\";\n\nimport { DIRECT_UPLOAD_ENDPOINT } from \"src/common/constants\";\n\nexport const DEFAULT_FILE_UPLOAD_CONFIG = {\n directUploadEndpoint: DIRECT_UPLOAD_ENDPOINT,\n restrictions: {\n maxFileSize: globalProps.endUserUploadedFileSizeLimitInMb * 1024 * 1024,\n },\n};\n\nexport const ATTACHMENT_OPTIONS = {\n OPEN_IN_NEW_TAB: t(\"neetoEditor.common.openInNewTab\"),\n DOWNLOAD: t(\"neetoEditor.common.download\"),\n RENAME: t(\"neetoEditor.attachments.rename\"),\n DELETE: t(\"neetoEditor.menu.delete\"),\n};\n\nexport const ATTACHMENTS_PREVIEW_DATA_CY = \"ne-attachments-preview-content\";\n","import { Toastr } from \"neetoui\";\nimport { mergeRight } from \"ramda\";\n\nimport { DEFAULT_FILE_UPLOAD_CONFIG } from \"./constants\";\n\nexport const buildFileUploadConfig = config =>\n mergeRight(DEFAULT_FILE_UPLOAD_CONFIG, config);\n\nexport const downloadFile = async (fileUrl, filename) => {\n try {\n const response = await fetch(fileUrl);\n const blob = await response.blob();\n const blobUrl = URL.createObjectURL(blob);\n\n const a = document.createElement(\"a\");\n a.href = blobUrl;\n a.setAttribute(\"download\", filename);\n a.style.display = \"none\";\n document.body.appendChild(a);\n\n a.click();\n\n document.body.removeChild(a);\n URL.revokeObjectURL(blobUrl);\n } catch (error) {\n Toastr.error(error);\n }\n};\n\nexport const checkPreviewAvailability = contentType =>\n contentType &&\n (contentType.startsWith(\"video/\") ||\n contentType === \"application/pdf\" ||\n contentType === \"image/jpeg\" ||\n contentType === \"image/gif\" ||\n contentType === \"image/png\" ||\n contentType === \"image/webp\" ||\n contentType === \"text/plain\" ||\n contentType === \"image/bmp\" ||\n contentType === \"application/msword\" ||\n contentType ===\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" ||\n contentType === \"image/jpg\" ||\n contentType === \"application/vnd.ms-powerpoint\" ||\n contentType ===\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\" ||\n contentType === \"image/tiff\" ||\n contentType === \"application/vnd.ms-excel\" ||\n contentType ===\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\");\n","import { useState, useRef } from \"react\";\n\nimport { removeBy } from \"neetocist\";\nimport useOnClickOutside from \"neetocommons/react-utils/useOnClickOutside\";\nimport { withEventTargetValue } from \"neetocommons/utils\";\nimport { MenuVertical, Close, Check } from \"neetoicons\";\nimport {\n Dropdown,\n Input,\n Spinner,\n Toastr,\n Tooltip,\n Typography,\n Button,\n Alert,\n} from \"neetoui\";\nimport { isEmpty, assoc } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport directUploadsApi from \"apis/direct_uploads\";\n\nimport { ATTACHMENT_OPTIONS } from \"./constants\";\nimport { downloadFile } from \"./utils\";\n\nimport FileIcon from \"../Common/FileIcon\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst Attachment = ({\n attachment,\n attachments,\n disabled,\n onChange,\n setSelectedAttachment,\n isLoading,\n allowDelete,\n allowOpenInNewTab,\n}) => {\n const { t } = useTranslation();\n\n const [isRenaming, setIsRenaming] = useState(false);\n const [isUpdating, setIsUpdating] = useState(false);\n const [isDeleteAlertOpen, setIsDeleteAlertOpen] = useState(false);\n const [isDeleting, setIsDeleting] = useState(false);\n const [newFilename, setNewFilename] = useState(\"\");\n\n const renameRef = useRef(null);\n\n useOnClickOutside(renameRef, () => {\n if (!isRenaming) return;\n setIsRenaming(false);\n setNewFilename(\"\");\n });\n\n const handleDownload = () =>\n downloadFile(attachment.url, attachment.filename);\n\n const handleOpenInNewTab = () =>\n window.open(attachment.url, \"_blank\", \"noopener,noreferrer\");\n\n const handleRename = async () => {\n try {\n setIsUpdating(true);\n const { signedId } = attachment;\n const payload = { blob: { filename: newFilename } };\n\n const response = await directUploadsApi.update({ signedId, payload });\n const filename = response.data?.blob?.filename || response.blob.filename;\n\n onChange(\n attachments.map(attachment =>\n attachment.signedId === signedId\n ? assoc(\"filename\", filename, attachment)\n : attachment\n )\n );\n } catch (error) {\n Toastr.error(error);\n } finally {\n setIsRenaming(false);\n setIsUpdating(false);\n setNewFilename(\"\");\n }\n };\n\n const handleDelete = async () => {\n if (!allowDelete) return;\n\n setIsDeleting(true);\n try {\n const { signedId } = attachment;\n await directUploadsApi.destroy(signedId);\n onChange(removeBy({ signedId }, attachments));\n } catch (error) {\n Toastr.error(error);\n }\n };\n\n const handlers = {\n ...(allowOpenInNewTab && {\n [ATTACHMENT_OPTIONS.OPEN_IN_NEW_TAB]: handleOpenInNewTab,\n }),\n [ATTACHMENT_OPTIONS.DOWNLOAD]: handleDownload,\n [ATTACHMENT_OPTIONS.RENAME]: handleRename,\n ...(allowDelete && { [ATTACHMENT_OPTIONS.DELETE]: handleDelete }),\n };\n\n const onMenuItemClick = ({ key, handler }) => {\n if (key === ATTACHMENT_OPTIONS.RENAME) {\n setIsRenaming(true);\n setNewFilename(attachment.filename);\n } else if (key === ATTACHMENT_OPTIONS.DELETE) {\n setNewFilename(attachment.filename);\n setIsDeleteAlertOpen(true);\n } else {\n handler();\n }\n };\n\n const handleKeyDown = ({ event, key }) => {\n const handler = handlers[key];\n\n if (event.key === \"Enter\" && handler && !isEmpty(newFilename)) {\n event.stopPropagation();\n event.preventDefault();\n handler();\n }\n\n if (event.key === \"Escape\") {\n setIsRenaming(false);\n setNewFilename(\"\");\n }\n };\n\n return (\n <>\n <div\n className=\"ne-attachments__preview\"\n data-testid=\"ne-attachments-wrapper\"\n >\n {isRenaming ? (\n <div ref={renameRef}>\n <Tooltip content={newFilename} position=\"top\">\n <Input\n autoFocus\n data-testid=\"neeto-editor-preview-rename-input\"\n size=\"small\"\n value={newFilename}\n error={\n isEmpty(newFilename)\n ? t(\"neetoEditor.attachments.nameEmpty\")\n : \"\"\n }\n suffix={\n <div className=\"flex items-center justify-end\">\n <Button\n data-testid=\"neeto-editor-preview-rename-submit-button\"\n disabled={isEmpty(newFilename) || isUpdating}\n icon={Check}\n loading={isUpdating}\n size=\"small\"\n style=\"text\"\n onClick={handleRename}\n />\n <Button\n data-testid=\"neeto-editor-preview-rename-cancel-button\"\n disabled={isUpdating}\n icon={Close}\n size=\"small\"\n style=\"text\"\n onClick={() => {\n setIsRenaming(false);\n setNewFilename(\"\");\n }}\n />\n </div>\n }\n onChange={withEventTargetValue(setNewFilename)}\n onKeyDown={event =>\n handleKeyDown({\n event,\n key: ATTACHMENT_OPTIONS.RENAME,\n })\n }\n />\n </Tooltip>\n </div>\n ) : (\n <>\n <div\n className=\"ne-attachments__preview-wrapper\"\n onClick={() => setSelectedAttachment(attachment)}\n >\n <FileIcon\n className=\"ne-attachments__preview-wrapper__icon\"\n fileName={attachment.filename}\n />\n <Tooltip content={attachment.filename} position=\"top\">\n <Typography style=\"body2\">{attachment.filename}</Typography>\n </Tooltip>\n {isLoading && <Spinner className=\"attachment-button-loader\" />}\n </div>\n <Tooltip\n content={t(\"neetoEditor.attachments.actionsBlocked\")}\n disabled={!disabled}\n position=\"top\"\n >\n <Dropdown\n {...{ disabled }}\n buttonSize=\"small\"\n buttonStyle=\"text\"\n icon={MenuVertical}\n >\n <Menu>\n {Object.entries(handlers).map(([label, handler]) => (\n <MenuItem.Button\n data-testid={`neeto-editor-preview-${label.toLowerCase()}-button`}\n key={label}\n onClick={() => onMenuItemClick({ key: label, handler })}\n >\n {label}\n </MenuItem.Button>\n ))}\n </Menu>\n </Dropdown>\n </Tooltip>\n </>\n )}\n </div>\n <Alert\n isOpen={isDeleteAlertOpen}\n isSubmitting={isDeleting}\n submitButtonLabel={t(\"neetoEditor.menu.delete\")}\n title={t(\"neetoEditor.attachments.deleteTitle\")}\n message={\n <Trans\n i18nKey=\"neetoEditor.attachments.deleteConfirmation\"\n values={{ entity: newFilename }}\n />\n }\n onClose={() => setIsDeleteAlertOpen(false)}\n onSubmit={handleDelete}\n />\n </>\n );\n};\n\nexport default Attachment;\n","import { Close } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\nimport { FileIcon } from \"react-file-icon\";\n\nconst AttachmentProgress = ({ attachment, cancelUpload }) => {\n const progressPercentage = `${attachment.progress ?? 0}%`;\n\n const handleCancel = () => {\n cancelUpload(attachment.id);\n };\n\n return (\n <div className=\"ne-attachments__preview\">\n <div className=\"ne-attachments__preview__progress-icon\">\n <FileIcon />\n </div>\n <div className=\"ne-attachments__preview__progress\">\n <Typography style=\"body2\">{attachment.filename}</Typography>\n <Typography style=\"body2\">{progressPercentage}</Typography>\n </div>\n <Button\n data-testid=\"neeto-editor-preview-upload-cancel-button\"\n icon={Close}\n size=\"small\"\n style=\"text\"\n onClick={handleCancel}\n />\n </div>\n );\n};\n\nexport default AttachmentProgress;\n","import {\n forwardRef,\n useRef,\n useState,\n useImperativeHandle,\n lazy,\n Suspense,\n useMemo,\n memo,\n} from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotEmpty, isPresent, noop } from \"neetocist\";\nimport { Button, Toastr } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useDropFiles from \"hooks/useDropFiles\";\nimport useFileUploader from \"hooks/useFileUploader\";\nimport \"src/styles/components/attachments.scss\";\n\nimport Attachment from \"./Attachment\";\nimport AttachmentProgress from \"./AttachmentProgress\";\nimport { buildFileUploadConfig } from \"./utils\";\n\nconst Preview = lazy(() => import(\"./Preview\"));\n\nconst Attachments = (\n {\n attachments = [],\n className = \"\",\n onChange = noop,\n isIndependent = true,\n disabled = false,\n dragDropRef = null,\n config = {},\n setIsUploading = noop,\n allowDelete = true,\n allowOpenInNewTab = true,\n },\n ref\n) => {\n const { t } = useTranslation();\n\n const [selectedAttachment, setSelectedAttachment] = useState({});\n const [didFetchPreviewBundle, setDidFetchPreviewBundle] = useState(false);\n\n const attachmentInputRef = useRef(null);\n\n const fileUploadConfig = useMemo(\n () => buildFileUploadConfig(config),\n [config]\n );\n\n const { addFiles, uploadFiles, queuedFiles, cancelUpload, isUploading } =\n useFileUploader({\n config: fileUploadConfig,\n setIsUploadingOnHost: setIsUploading,\n attachments,\n });\n\n const handleAddFile = async event => {\n addFiles(event.target.files);\n const uploadedFiles = await uploadFiles();\n isNotEmpty(uploadedFiles) && onChange([...attachments, ...uploadedFiles]);\n attachmentInputRef.current.value = null;\n };\n\n const handleUploadAttachments = () => attachmentInputRef.current.click();\n\n const handleFileInputClick = event => {\n if (!(!isEmpty(attachments) && fileUploadConfig.maxNumberOfFiles === 1)) {\n return;\n }\n event.preventDefault();\n Toastr.warning(t(\"neetoEditor.attachments.oneAttachmentAllowed\"));\n };\n\n useImperativeHandle(ref, () => ({ handleUploadAttachments }), []);\n\n const handleFilesDrop = async files => {\n addFiles(files);\n const uploadedFiles = await uploadFiles();\n isNotEmpty(uploadedFiles) && onChange([...attachments, ...uploadedFiles]);\n };\n\n useDropFiles({\n dropTargetRef: dragDropRef,\n attachments,\n onDrop: handleFilesDrop,\n });\n\n return (\n <div className={classnames(\"ne-attachments\", { [className]: className })}>\n <div className=\"ne-attachments__items\">\n {attachments.map(attachment => (\n <Attachment\n {...{\n allowDelete,\n allowOpenInNewTab,\n attachment,\n attachments,\n disabled,\n onChange,\n setSelectedAttachment,\n }}\n key={attachment.signedId}\n isLoading={\n !didFetchPreviewBundle &&\n selectedAttachment.url === attachment.url\n }\n />\n ))}\n {queuedFiles.map(attachment => (\n <AttachmentProgress\n {...{ attachment, cancelUpload }}\n key={attachment.id}\n />\n ))}\n </div>\n <div>\n {isIndependent && (\n <Button\n data-testid=\"neeto-editor-attachments-upload-button\"\n disabled={isUploading}\n label={t(\"neetoEditor.attachments.add\")}\n loading={isUploading}\n size=\"medium\"\n style=\"link\"\n onClick={handleUploadAttachments}\n />\n )}\n <input\n accept={fileUploadConfig.allowedFileTypes?.join(\",\")}\n multiple={fileUploadConfig.maxNumberOfFiles !== 1}\n ref={attachmentInputRef}\n type=\"file\"\n onChange={handleAddFile}\n onClick={handleFileInputClick}\n />\n <Suspense fallback={<span />}>\n {isPresent(selectedAttachment) && (\n <Preview\n {...{\n attachments,\n selectedAttachment,\n setDidFetchPreviewBundle,\n setSelectedAttachment,\n }}\n onClose={() => setSelectedAttachment({})}\n />\n )}\n </Suspense>\n </div>\n </div>\n );\n};\n\nAttachments.displayName = \"NeetoEditorAttachments\";\n\nexport default memo(forwardRef(Attachments));\n"],"names":["DEFAULT_FILE_UPLOAD_CONFIG","directUploadEndpoint","DIRECT_UPLOAD_ENDPOINT","restrictions","maxFileSize","globalProps","endUserUploadedFileSizeLimitInMb","ATTACHMENT_OPTIONS","OPEN_IN_NEW_TAB","t","DOWNLOAD","RENAME","DELETE","ATTACHMENTS_PREVIEW_DATA_CY","buildFileUploadConfig","config","mergeRight","downloadFile","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","fileUrl","filename","response","blob","blobUrl","a","wrap","_callee$","_context","prev","next","fetch","sent","URL","createObjectURL","document","createElement","href","setAttribute","style","display","body","appendChild","click","removeChild","revokeObjectURL","t0","Toastr","error","stop","_x","_x2","apply","arguments","checkPreviewAvailability","contentType","startsWith","Menu","Dropdown","MenuItem","Attachment","attachment","attachments","disabled","onChange","setSelectedAttachment","isLoading","allowDelete","allowOpenInNewTab","_useTranslation","useTranslation","_useState","useState","_useState2","_slicedToArray","isRenaming","setIsRenaming","_useState3","_useState4","isUpdating","setIsUpdating","_useState5","_useState6","isDeleteAlertOpen","setIsDeleteAlertOpen","_useState7","_useState8","isDeleting","setIsDeleting","_useState9","_useState0","newFilename","setNewFilename","renameRef","useRef","useOnClickOutside","handleDownload","url","handleOpenInNewTab","window","open","handleRename","_ref2","_response$data","signedId","payload","directUploadsApi","update","data","map","assoc","finish","handleDelete","_ref3","_callee2","_callee2$","_context2","abrupt","destroy","removeBy","handlers","_objectSpread","_defineProperty","onMenuItemClick","_ref6","key","handler","handleKeyDown","_ref7","event","isEmpty","stopPropagation","preventDefault","_jsxs","_Fragment","children","_jsx","className","ref","Tooltip","content","position","Input","autoFocus","size","value","suffix","Button","icon","Check","loading","onClick","Close","withEventTargetValue","onKeyDown","FileIcon","fileName","Typography","Spinner","buttonSize","buttonStyle","MenuVertical","Object","entries","_ref8","_ref9","label","concat","toLowerCase","Alert","isOpen","isSubmitting","submitButtonLabel","title","message","Trans","i18nKey","values","entity","onClose","onSubmit","AttachmentProgress","_attachment$progress","cancelUpload","progressPercentage","progress","handleCancel","id","Preview","lazy","Attachments","_fileUploadConfig$all","_ref$attachments","_ref$className","_ref$onChange","noop","_ref$isIndependent","isIndependent","_ref$disabled","_ref$dragDropRef","dragDropRef","_ref$config","_ref$setIsUploading","setIsUploading","_ref$allowDelete","_ref$allowOpenInNewTa","selectedAttachment","didFetchPreviewBundle","setDidFetchPreviewBundle","attachmentInputRef","fileUploadConfig","useMemo","_useFileUploader","useFileUploader","setIsUploadingOnHost","addFiles","uploadFiles","queuedFiles","isUploading","handleAddFile","uploadedFiles","target","files","isNotEmpty","_toConsumableArray","current","handleUploadAttachments","handleFileInputClick","maxNumberOfFiles","warning","useImperativeHandle","handleFilesDrop","useDropFiles","dropTargetRef","onDrop","classnames","_createElement","accept","allowedFileTypes","join","multiple","type","Suspense","fallback","isPresent","displayName","memo","forwardRef"],"mappings":"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"}
@@ -276,20 +276,20 @@ var ImagePreview = function ImagePreview(_ref) {
276
276
  className: "ne-image-preview-wrapper active",
277
277
  children: [isLoading && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Spinner, {
278
278
  className: "ne-image-preview-wrapper__spinner"
279
- }), !isLoading && /*#__PURE__*/jsxRuntime.jsx("div", {
280
- className: "close-button",
281
- children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
282
- icon: lucideReact.X,
283
- variant: "secondary",
284
- onClick: function onClick() {
285
- return setImagePreviewDetails(null);
286
- }
287
- })
288
279
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
289
280
  className: classnames__default.default("ne-image-preview", {
290
281
  "image-loaded": !isLoading
291
282
  }),
292
- children: [/*#__PURE__*/jsxRuntime.jsx("img", {
283
+ children: [!isLoading && /*#__PURE__*/jsxRuntime.jsx("div", {
284
+ className: "close-button",
285
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
286
+ icon: lucideReact.X,
287
+ variant: "secondary",
288
+ onClick: function onClick() {
289
+ return setImagePreviewDetails(null);
290
+ }
291
+ })
292
+ }), /*#__PURE__*/jsxRuntime.jsx("img", {
293
293
  alt: t("neetoEditor.editorContent.imagePreviewAltText"),
294
294
  ref: imagePreviewRef,
295
295
  src: imagePreviewDetails.src,
@@ -390,4 +390,4 @@ var index = /*#__PURE__*/React.memo(EditorContent);
390
390
 
391
391
  exports.index = index;
392
392
  exports.substituteVariables = substituteVariables;
393
- //# sourceMappingURL=chunk-CIuJ_EMY.cjs.js.map
393
+ //# sourceMappingURL=chunk-DE_yHAbe.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-DE_yHAbe.cjs.js","sources":["../../src/v2/components/EditorContent/constants/index.js","../../src/v2/components/EditorContent/utils/index.js","../../src/v2/components/EditorContent/utils/headers.js","../../src/v2/components/EditorContent/utils/todoCheckbox.js","../../src/v2/components/EditorContent/ImagePreview.jsx","../../src/v2/components/EditorContent/index.jsx"],"sourcesContent":["import { lowlight } from \"lowlight\";\n\nexport const EDITOR_CONTENT_CLASS_NAME = \"neeto-editor-content\";\n\nexport const SANITIZE_OPTIONS = {\n ADD_TAGS: [\"iframe\"],\n ADD_ATTR: [\"target\", \"allow\", \"allowfullscreen\", \"frameborder\"],\n};\n\nexport const CODE_BLOCK_REGEX =\n /<pre(?:\\s+[^>]+)?><code(?:\\s+class=\"language-([^\"]*)\")?>([\\S\\s]*?)<\\/code><\\/pre>/gim;\n\nexport const VARIABLE_SPAN_REGEX =\n /<span data-variable=\"\" [^>]*data-label=\"([^\"]+)\">{{([^}]+)}}<\\/span>/g;\n\nexport const LANGUAGE_LIST = [...lowlight.listLanguages(), \"html\"];\n\nexport const EDITOR_CONTENT_DEFAULT_CONFIGURATION = {\n enableHeaderLinks: false,\n};\n","import { createElement } from \"react\";\n\nimport hljs from \"highlight.js/lib/common\";\nimport { lowlight } from \"lowlight\";\nimport { findBy } from \"neetocist\";\nimport { isEmpty } from \"ramda\";\nimport { renderToString } from \"react-dom/server\";\n\nimport {\n CODE_BLOCK_REGEX,\n LANGUAGE_LIST,\n VARIABLE_SPAN_REGEX,\n} from \"../constants\";\n\nconst transformCode = code =>\n code.replace(/&gt;/g, \">\").replace(/&lt;/g, \"<\").replace(/&amp;/g, \"&\");\n\nconst buildReactElementFromAST = element => {\n if (element.tagName) {\n const children = element.children\n ? element.children.map(buildReactElementFromAST)\n : null;\n\n return createElement(element.tagName, element.properties, children);\n }\n\n return element.value;\n};\n\nconst splitCodeBlockIntoLines = codeBlock => {\n codeBlock.innerHTML = codeBlock.innerHTML.replace(\n /([ \\S]*\\n|[ \\S]*$)/gm,\n match => `<div class=\"highlight-line\">${match}</div>`\n );\n};\n\nconst highlightLinesCode = (code, options) => {\n if (options === undefined) {\n return;\n }\n\n const paddingLeft = parseInt(window.getComputedStyle(code).paddingLeft);\n const paddingRight = parseInt(window.getComputedStyle(code).paddingRight);\n\n const lines = code.getElementsByClassName(\"highlight-line\");\n const scroll_width = code.scrollWidth;\n // eslint-disable-next-line @bigbinary/neeto/use-array-methods\n for (const option of options) {\n for (let j = option.start; j <= option.end; ++j) {\n if (j >= lines.length) return;\n lines[j].style.backgroundColor = option.color;\n lines[j].style.minWidth = `${\n scroll_width - paddingLeft - paddingRight\n }px`;\n }\n }\n};\n\nexport const highlightLinesElement = (code, options) => {\n // eslint-disable-next-line @bigbinary/neeto/use-array-methods\n for (const option of options) {\n --option.start;\n --option.end;\n }\n highlightLinesCode(code, options);\n};\n\nexport const applySyntaxHighlightingAndLineNumbers = content => {\n lowlight.highlightAuto(\"\");\n let highlightedAST = {};\n\n return content.replace(CODE_BLOCK_REGEX, (_, language, code) => {\n const highlightRegex = /data-highlighted-lines=\"([^\"]*)\"/;\n const linenumbersRegex = /data-linenumbers/;\n const highlightMatch = content.match(highlightRegex);\n\n if (language && LANGUAGE_LIST.includes(language)) {\n highlightedAST = lowlight.highlight(language, transformCode(code));\n } else {\n highlightedAST = hljs.highlightAuto(transformCode(code))._emitter.root;\n if (isEmpty(highlightedAST.children)) {\n highlightedAST = lowlight.highlight(\"javascript\", transformCode(code));\n }\n }\n\n const highlightedNode = highlightedAST.children.map(\n buildReactElementFromAST\n );\n\n const dataHighlight = `data-highlighted-lines=${highlightMatch?.[1] ?? \"\"}`;\n const dataLinenumbers = content.match(linenumbersRegex)\n ? `data-linenumbers=\"true\"`\n : \"\";\n\n return `<pre ${dataLinenumbers} ${dataHighlight}><code>${renderToString(\n highlightedNode\n )}</code></pre>`;\n });\n};\n\nexport const applyLineHighlighting = editorContent => {\n const codeTags = editorContent?.querySelectorAll(\"pre code\");\n\n codeTags.forEach(codeTag => {\n splitCodeBlockIntoLines(codeTag);\n\n const highlightedLines = codeTag\n .closest(\"pre\")\n .getAttribute(\"data-highlighted-lines\");\n\n if (highlightedLines) {\n const linesToHighlight = highlightedLines\n .split(\",\")\n .map(Number)\n .filter(Boolean);\n\n const highlightLinesOptions = linesToHighlight.map(line => ({\n start: line,\n end: line,\n color: \"rgba(255, 255, 0, 0.2)\",\n }));\n\n highlightLinesElement(codeTag, highlightLinesOptions);\n }\n });\n};\n\nexport const substituteVariables = (highlightedContent, variables) =>\n highlightedContent.replace(VARIABLE_SPAN_REGEX, (matchedSpan, _, key) => {\n const keySplitted = key.split(\".\");\n if (keySplitted.length > 1) {\n const category = findBy({ category: keySplitted[0] }, variables);\n const variable = findBy(\n { key: keySplitted[1] },\n category?.variables || []\n );\n\n return variable?.value ? variable.value : matchedSpan;\n }\n\n const variable = findBy({ key: keySplitted[0] }, variables);\n\n return variable?.value ? variable.value : matchedSpan;\n });\n\nexport const convertPlainTextToHtml = htmlString => {\n if (/^<[a-z].*>/i.test(htmlString.trim())) return htmlString;\n\n return htmlString\n .split(\"\\n\")\n .reduce((html, str) => `${html}<p>${str}</p>`, \"\");\n};\n","const buildLinkSVG = () => {\n const svgNS = \"http://www.w3.org/2000/svg\";\n\n const svgWrapper = document.createElement(\"span\");\n svgWrapper.classList.add(\"header-link-icon-wrapper\");\n const svg = document.createElementNS(svgNS, \"svg\");\n svg.setAttribute(\"aria-hidden\", \"true\");\n svg.setAttribute(\"height\", \"20\");\n svg.setAttribute(\"viewBox\", \"0 0 16 16\");\n svg.setAttribute(\"width\", \"20\");\n\n const path = document.createElementNS(svgNS, \"path\");\n path.setAttribute(\n \"d\",\n \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n );\n\n svg.appendChild(path);\n svgWrapper.appendChild(svg);\n\n return svgWrapper;\n};\n\nconst convertTextToId = text =>\n text\n .trim()\n .toLowerCase()\n .replace(/[^a-z0-9\\s]/g, \"\")\n .replace(/\\s+/g, \"-\");\n\nexport const buildHeaderLinks = editorContentNode => {\n const headerTags = editorContentNode.querySelectorAll(\n \"h1, h2, h3, h4, h5, h6\"\n );\n const usedIds = new Map();\n\n headerTags.forEach(heading => {\n if (heading.getAttribute(\"data-link\") === \"false\") {\n return;\n }\n\n let headingId = convertTextToId(heading.textContent);\n if (usedIds.has(headingId)) {\n const count = usedIds.get(headingId);\n usedIds.set(headingId, count + 1);\n headingId = `${headingId}-${count}`;\n } else usedIds.set(headingId, 1);\n\n heading.setAttribute(\"id\", headingId);\n\n const wrapper = document.createElement(\"div\");\n const anchor = document.createElement(\"a\");\n\n wrapper.classList.add(\"header-wrapper\");\n anchor.setAttribute(\"href\", `#${headingId}`);\n anchor.classList.add(\"header-wrapper__link\");\n anchor.appendChild(buildLinkSVG());\n\n wrapper.appendChild(heading.cloneNode(true));\n wrapper.appendChild(anchor);\n heading.replaceWith(wrapper);\n });\n};\n","export const handleTodoCheckboxClick = (event, editorContentRef, onChange) => {\n if (\n !(\n event.target.type === \"checkbox\" &&\n event.target.closest('ul[data-type=\"todoList\"] li[data-type=\"taskItem\"]')\n )\n ) {\n return;\n }\n\n const checkbox = event.target;\n const listItem = checkbox.closest(\"li\");\n\n if (listItem) {\n listItem.setAttribute(\"data-checked\", checkbox.checked.toString());\n\n if (checkbox.checked) {\n checkbox.setAttribute(\"checked\", \"checked\");\n } else {\n checkbox.removeAttribute(\"checked\");\n }\n\n onChange?.(editorContentRef?.innerHTML);\n }\n};\n\nexport const syncTodoCheckboxStates = editorContentRef => {\n if (!editorContentRef) return;\n\n const todoItems = editorContentRef.querySelectorAll(\n `ul[data-type=\"todoList\"] li[data-type=\"taskItem\"]`\n );\n\n todoItems.forEach(listItem => {\n const isChecked = listItem.getAttribute(\"data-checked\") === \"true\";\n const checkbox = listItem.querySelector('input[type=\"checkbox\"]');\n\n if (checkbox) {\n checkbox.checked = isChecked;\n\n if (isChecked) {\n checkbox.setAttribute(\"checked\", \"checked\");\n } else {\n checkbox.removeAttribute(\"checked\");\n }\n }\n });\n};\n","import { useEffect, useRef, useState } from \"react\";\n\nimport { Button, Spinner } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { X } from \"lucide-react\";\nimport { useOnClickOutside } from \"neetocommons/v2/react-utils\";\nimport { createPortal } from \"react-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ImagePreview = ({ imagePreviewDetails, setImagePreviewDetails }) => {\n const [isLoading, setIsLoading] = useState(true);\n\n const { t } = useTranslation();\n\n const imagePreviewRef = useRef(null);\n\n useOnClickOutside(imagePreviewRef, () => setImagePreviewDetails(null), {\n enabled: true,\n });\n\n useEffect(() => {\n if (!imagePreviewRef.current) return;\n\n imagePreviewRef.current.setAttribute(\"tabindex\", \"-1\");\n imagePreviewRef.current.focus();\n }, []);\n\n const handleKeyDown = e => {\n e.stopPropagation();\n e.key === \"Escape\" && setImagePreviewDetails(null);\n };\n\n return createPortal(\n <div className=\"ne-image-preview-wrapper active\">\n {isLoading && <Spinner className=\"ne-image-preview-wrapper__spinner\" />}\n <div\n className={classnames(\"ne-image-preview\", {\n \"image-loaded\": !isLoading,\n })}\n >\n {!isLoading && (\n <div className=\"close-button\">\n <Button\n icon={X}\n variant=\"secondary\"\n onClick={() => setImagePreviewDetails(null)}\n />\n </div>\n )}\n <img\n alt={t(\"neetoEditor.editorContent.imagePreviewAltText\")}\n ref={imagePreviewRef}\n src={imagePreviewDetails.src}\n onKeyDown={handleKeyDown}\n onLoad={() => setIsLoading(false)}\n />\n {imagePreviewDetails && (\n <p className=\"ne-image-preview__caption\">\n {imagePreviewDetails.caption}\n </p>\n )}\n </div>\n </div>,\n document.body\n );\n};\n\nexport default ImagePreview;\n","import { memo, useEffect, useRef, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport DOMPurify from \"dompurify\";\nimport CopyToClipboardButton from \"neetomolecules/v2/CopyToClipboardButton\";\nimport { isNil } from \"ramda\";\nimport { createRoot } from \"react-dom/client\";\n\nimport { EDITOR_SIZES } from \"src/common/constants\";\nimport {\n EDITOR_CONTENT_CLASS_NAME,\n EDITOR_CONTENT_DEFAULT_CONFIGURATION,\n SANITIZE_OPTIONS,\n} from \"src/v2/components/EditorContent/constants\";\nimport {\n applyLineHighlighting,\n applySyntaxHighlightingAndLineNumbers,\n convertPlainTextToHtml,\n substituteVariables,\n} from \"src/v2/components/EditorContent/utils\";\nimport { buildHeaderLinks } from \"src/v2/components/EditorContent/utils/headers\";\nimport {\n handleTodoCheckboxClick,\n syncTodoCheckboxStates,\n} from \"src/v2/components/EditorContent/utils/todoCheckbox\";\nimport { removeEmptyTags } from \"utils\";\n\nimport ImagePreview from \"./ImagePreview\";\n\nconst EditorContent = ({\n content = \"\",\n variables = [],\n className,\n size = EDITOR_SIZES.SMALL,\n configuration = EDITOR_CONTENT_DEFAULT_CONFIGURATION,\n onChange,\n onClick,\n ...otherProps\n}) => {\n const [imagePreviewDetails, setImagePreviewDetails] = useState(null);\n const editorContentRef = useRef(null);\n\n const htmlContent = convertPlainTextToHtml(\n substituteVariables(\n applySyntaxHighlightingAndLineNumbers(removeEmptyTags(content)),\n variables\n )\n );\n const sanitize = DOMPurify.sanitize;\n\n const handleContentClick = event => {\n handleTodoCheckboxClick(event, editorContentRef.current, onChange);\n\n onClick?.(event);\n };\n\n const injectCopyButtonToCodeBlocks = () => {\n const preTags = editorContentRef.current?.querySelectorAll(\n `.${EDITOR_CONTENT_CLASS_NAME} pre`\n );\n\n preTags.forEach(preTag => {\n const button = document.createElement(\"div\");\n button.className = \"neeto-editor-codeblock-options\";\n const root = createRoot(button);\n root.render(\n <CopyToClipboardButton\n size=\"sm\"\n value={preTag.textContent}\n variant=\"ghost\"\n />\n );\n preTag.appendChild(button);\n });\n };\n\n const bindImageClickListener = () => {\n const figureTags = editorContentRef.current?.querySelectorAll(\n `.${EDITOR_CONTENT_CLASS_NAME} figure`\n );\n\n figureTags.forEach(figureTag => {\n const image = figureTag.querySelector(\"img\");\n const link = figureTag.querySelector(\"a\");\n if (isNil(image) || isNil(link)) return;\n\n figureTag.addEventListener(\"click\", event => {\n event.preventDefault();\n const caption = figureTag.querySelector(\"figcaption\").innerText;\n setImagePreviewDetails({ src: image.src, caption });\n });\n });\n };\n\n useEffect(() => {\n injectCopyButtonToCodeBlocks();\n bindImageClickListener();\n syncTodoCheckboxStates(editorContentRef.current);\n applyLineHighlighting(editorContentRef.current);\n configuration.enableHeaderLinks &&\n buildHeaderLinks(editorContentRef.current);\n }, [content]);\n\n return (\n <>\n <div\n data-testid=\"neeto-editor-content\"\n ref={editorContentRef}\n className={classnames(EDITOR_CONTENT_CLASS_NAME, {\n [className]: className,\n [`neeto-editor-size--${size}`]: true,\n })}\n dangerouslySetInnerHTML={{\n __html: sanitize(htmlContent, SANITIZE_OPTIONS),\n }}\n onClick={handleContentClick}\n {...otherProps}\n />\n {imagePreviewDetails && (\n <ImagePreview {...{ imagePreviewDetails, setImagePreviewDetails }} />\n )}\n </>\n );\n};\n\nexport default memo(EditorContent);\n"],"names":["EDITOR_CONTENT_CLASS_NAME","SANITIZE_OPTIONS","ADD_TAGS","ADD_ATTR","CODE_BLOCK_REGEX","VARIABLE_SPAN_REGEX","LANGUAGE_LIST","concat","_toConsumableArray","lowlight","listLanguages","EDITOR_CONTENT_DEFAULT_CONFIGURATION","enableHeaderLinks","transformCode","code","replace","buildReactElementFromAST","element","tagName","children","map","createElement","properties","value","splitCodeBlockIntoLines","codeBlock","innerHTML","match","highlightLinesCode","options","undefined","paddingLeft","parseInt","window","getComputedStyle","paddingRight","lines","getElementsByClassName","scroll_width","scrollWidth","_iterator","_createForOfIteratorHelper","_step","s","n","done","option","j","start","end","length","style","backgroundColor","color","minWidth","err","e","f","highlightLinesElement","_iterator2","_step2","applySyntaxHighlightingAndLineNumbers","content","highlightAuto","highlightedAST","_","language","_highlightMatch$","highlightRegex","linenumbersRegex","highlightMatch","includes","highlight","hljs","_emitter","root","isEmpty","highlightedNode","dataHighlight","dataLinenumbers","renderToString","applyLineHighlighting","editorContent","codeTags","querySelectorAll","forEach","codeTag","highlightedLines","closest","getAttribute","linesToHighlight","split","Number","filter","Boolean","highlightLinesOptions","line","substituteVariables","highlightedContent","variables","matchedSpan","key","keySplitted","category","findBy","variable","convertPlainTextToHtml","htmlString","test","trim","reduce","html","str","buildLinkSVG","svgNS","svgWrapper","document","classList","add","svg","createElementNS","setAttribute","path","appendChild","convertTextToId","text","toLowerCase","buildHeaderLinks","editorContentNode","headerTags","usedIds","Map","heading","headingId","textContent","has","count","get","set","wrapper","anchor","cloneNode","replaceWith","handleTodoCheckboxClick","event","editorContentRef","onChange","target","type","checkbox","listItem","checked","toString","removeAttribute","syncTodoCheckboxStates","todoItems","isChecked","querySelector","ImagePreview","_ref","imagePreviewDetails","setImagePreviewDetails","_useState","useState","_useState2","_slicedToArray","isLoading","setIsLoading","_useTranslation","useTranslation","t","imagePreviewRef","useRef","useOnClickOutside","enabled","useEffect","current","focus","handleKeyDown","stopPropagation","createPortal","_jsxs","className","_jsx","Spinner","classnames","Button","icon","X","variant","onClick","alt","ref","src","onKeyDown","onLoad","caption","body","EditorContent","_ref$content","_ref$variables","_ref$size","size","EDITOR_SIZES","SMALL","_ref$configuration","configuration","otherProps","_objectWithoutProperties","_excluded","htmlContent","removeEmptyTags","sanitize","DOMPurify","handleContentClick","injectCopyButtonToCodeBlocks","_editorContentRef$cur","preTags","preTag","button","createRoot","render","CopyToClipboardButton","bindImageClickListener","_editorContentRef$cur2","figureTags","figureTag","image","link","isNil","addEventListener","preventDefault","innerText","_Fragment","_objectSpread","_defineProperty","dangerouslySetInnerHTML","__html","memo"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,IAAMA,yBAAyB,GAAG,sBAAsB;AAExD,IAAMC,gBAAgB,GAAG;EAC9BC,QAAQ,EAAE,CAAC,QAAQ,CAAC;EACpBC,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,aAAa;AAChE,CAAC;AAEM,IAAMC,gBAAgB,GAC3B,sFAAsF;AAEjF,IAAMC,mBAAmB,GAC9B,uEAAuE;AAElE,IAAMC,aAAa,GAAA,EAAA,CAAAC,MAAA,CAAAC,mCAAA,CAAOC,eAAQ,CAACC,aAAa,EAAE,CAAA,EAAA,CAAE,MAAM,CAAA,CAAC;AAE3D,IAAMC,oCAAoC,GAAG;AAClDC,EAAAA,iBAAiB,EAAE;AACrB,CAAC;;;;;ACLD,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,IAAI,EAAA;EAAA,OACxBA,IAAI,CAACC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAACA,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAACA,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;AAAA,CAAA;AAEzE,IAAMC,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAGC,OAAO,EAAI;EAC1C,IAAIA,OAAO,CAACC,OAAO,EAAE;AACnB,IAAA,IAAMC,QAAQ,GAAGF,OAAO,CAACE,QAAQ,GAC7BF,OAAO,CAACE,QAAQ,CAACC,GAAG,CAACJ,wBAAwB,CAAC,GAC9C,IAAI;IAER,oBAAOK,mBAAa,CAACJ,OAAO,CAACC,OAAO,EAAED,OAAO,CAACK,UAAU,EAAEH,QAAQ,CAAC;AACrE,EAAA;EAEA,OAAOF,OAAO,CAACM,KAAK;AACtB,CAAC;AAED,IAAMC,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAGC,SAAS,EAAI;AAC3CA,EAAAA,SAAS,CAACC,SAAS,GAAGD,SAAS,CAACC,SAAS,CAACX,OAAO,CAC/C,sBAAsB,EACtB,UAAAY,KAAK,EAAA;IAAA,OAAA,gCAAA,CAAApB,MAAA,CAAmCoB,KAAK,EAAA,QAAA,CAAA;AAAA,EAAA,CAC/C,CAAC;AACH,CAAC;AAED,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAId,IAAI,EAAEe,OAAO,EAAK;EAC5C,IAAIA,OAAO,KAAKC,SAAS,EAAE;AACzB,IAAA;AACF,EAAA;AAEA,EAAA,IAAMC,WAAW,GAAGC,QAAQ,CAACC,MAAM,CAACC,gBAAgB,CAACpB,IAAI,CAAC,CAACiB,WAAW,CAAC;AACvE,EAAA,IAAMI,YAAY,GAAGH,QAAQ,CAACC,MAAM,CAACC,gBAAgB,CAACpB,IAAI,CAAC,CAACqB,YAAY,CAAC;AAEzE,EAAA,IAAMC,KAAK,GAAGtB,IAAI,CAACuB,sBAAsB,CAAC,gBAAgB,CAAC;AAC3D,EAAA,IAAMC,YAAY,GAAGxB,IAAI,CAACyB,WAAW;AACrC;AAAA,EAAA,IAAAC,SAAA,GAAAC,0BAAA,CACqBZ,OAAO,CAAA;IAAAa,KAAA;AAAA,EAAA,IAAA;IAA5B,KAAAF,SAAA,CAAAG,CAAA,EAAA,EAAA,CAAA,CAAAD,KAAA,GAAAF,SAAA,CAAAI,CAAA,EAAA,EAAAC,IAAA,GAA8B;AAAA,MAAA,IAAnBC,MAAM,GAAAJ,KAAA,CAAAnB,KAAA;AACf,MAAA,KAAK,IAAIwB,CAAC,GAAGD,MAAM,CAACE,KAAK,EAAED,CAAC,IAAID,MAAM,CAACG,GAAG,EAAE,EAAEF,CAAC,EAAE;AAC/C,QAAA,IAAIA,CAAC,IAAIX,KAAK,CAACc,MAAM,EAAE;QACvBd,KAAK,CAACW,CAAC,CAAC,CAACI,KAAK,CAACC,eAAe,GAAGN,MAAM,CAACO,KAAK;AAC7CjB,QAAAA,KAAK,CAACW,CAAC,CAAC,CAACI,KAAK,CAACG,QAAQ,GAAA,EAAA,CAAA/C,MAAA,CACrB+B,YAAY,GAAGP,WAAW,GAAGI,YAAY,EAAA,IAAA,CACvC;AACN,MAAA;AACF,IAAA;AAAC,EAAA,CAAA,CAAA,OAAAoB,GAAA,EAAA;IAAAf,SAAA,CAAAgB,CAAA,CAAAD,GAAA,CAAA;AAAA,EAAA,CAAA,SAAA;AAAAf,IAAAA,SAAA,CAAAiB,CAAA,EAAA;AAAA,EAAA;AACH,CAAC;AAEM,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAI5C,IAAI,EAAEe,OAAO,EAAK;AACtD;AAAA,EAAA,IAAA8B,UAAA,GAAAlB,0BAAA,CACqBZ,OAAO,CAAA;IAAA+B,MAAA;AAAA,EAAA,IAAA;IAA5B,KAAAD,UAAA,CAAAhB,CAAA,EAAA,EAAA,CAAA,CAAAiB,MAAA,GAAAD,UAAA,CAAAf,CAAA,EAAA,EAAAC,IAAA,GAA8B;AAAA,MAAA,IAAnBC,MAAM,GAAAc,MAAA,CAAArC,KAAA;MACf,EAAEuB,MAAM,CAACE,KAAK;MACd,EAAEF,MAAM,CAACG,GAAG;AACd,IAAA;AAAC,EAAA,CAAA,CAAA,OAAAM,GAAA,EAAA;IAAAI,UAAA,CAAAH,CAAA,CAAAD,GAAA,CAAA;AAAA,EAAA,CAAA,SAAA;AAAAI,IAAAA,UAAA,CAAAF,CAAA,EAAA;AAAA,EAAA;AACD7B,EAAAA,kBAAkB,CAACd,IAAI,EAAEe,OAAO,CAAC;AACnC,CAAC;AAEM,IAAMgC,qCAAqC,GAAG,SAAxCA,qCAAqCA,CAAGC,OAAO,EAAI;AAC9DrD,EAAAA,eAAQ,CAACsD,aAAa,CAAC,EAAE,CAAC;EAC1B,IAAIC,cAAc,GAAG,EAAE;AAEvB,EAAA,OAAOF,OAAO,CAAC/C,OAAO,CAACX,gBAAgB,EAAE,UAAC6D,CAAC,EAAEC,QAAQ,EAAEpD,IAAI,EAAK;AAAA,IAAA,IAAAqD,gBAAA;IAC9D,IAAMC,cAAc,GAAG,kCAAkC;IACzD,IAAMC,gBAAgB,GAAG,kBAAkB;AAC3C,IAAA,IAAMC,cAAc,GAAGR,OAAO,CAACnC,KAAK,CAACyC,cAAc,CAAC;IAEpD,IAAIF,QAAQ,IAAI5D,aAAa,CAACiE,QAAQ,CAACL,QAAQ,CAAC,EAAE;MAChDF,cAAc,GAAGvD,eAAQ,CAAC+D,SAAS,CAACN,QAAQ,EAAErD,aAAa,CAACC,IAAI,CAAC,CAAC;AACpE,IAAA,CAAC,MAAM;AACLkD,MAAAA,cAAc,GAAGS,oBAAI,CAACV,aAAa,CAAClD,aAAa,CAACC,IAAI,CAAC,CAAC,CAAC4D,QAAQ,CAACC,IAAI;AACtE,MAAA,IAAIC,aAAO,CAACZ,cAAc,CAAC7C,QAAQ,CAAC,EAAE;QACpC6C,cAAc,GAAGvD,eAAQ,CAAC+D,SAAS,CAAC,YAAY,EAAE3D,aAAa,CAACC,IAAI,CAAC,CAAC;AACxE,MAAA;AACF,IAAA;IAEA,IAAM+D,eAAe,GAAGb,cAAc,CAAC7C,QAAQ,CAACC,GAAG,CACjDJ,wBACF,CAAC;IAED,IAAM8D,aAAa,6BAAAvE,MAAA,CAAA,CAAA4D,gBAAA,GAA6BG,cAAc,aAAdA,cAAc,KAAA,MAAA,GAAA,MAAA,GAAdA,cAAc,CAAG,CAAC,CAAC,MAAA,IAAA,IAAAH,gBAAA,cAAAA,gBAAA,GAAI,EAAE,CAAE;IAC3E,IAAMY,eAAe,GAAGjB,OAAO,CAACnC,KAAK,CAAC0C,gBAAgB,CAAC,GAAA,2BAAA,GAEnD,EAAE;AAEN,IAAA,OAAA,OAAA,CAAA9D,MAAA,CAAewE,eAAe,EAAA,GAAA,CAAA,CAAAxE,MAAA,CAAIuE,aAAa,EAAA,SAAA,CAAA,CAAAvE,MAAA,CAAUyE,uBAAc,CACrEH,eACF,CAAC,EAAA,eAAA,CAAA;AACH,EAAA,CAAC,CAAC;AACJ,CAAC;AAEM,IAAMI,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAGC,aAAa,EAAI;EACpD,IAAMC,QAAQ,GAAGD,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAA,MAAA,GAAA,MAAA,GAAbA,aAAa,CAAEE,gBAAgB,CAAC,UAAU,CAAC;AAE5DD,EAAAA,QAAQ,CAACE,OAAO,CAAC,UAAAC,OAAO,EAAI;IAC1B9D,uBAAuB,CAAC8D,OAAO,CAAC;AAEhC,IAAA,IAAMC,gBAAgB,GAAGD,OAAO,CAC7BE,OAAO,CAAC,KAAK,CAAC,CACdC,YAAY,CAAC,wBAAwB,CAAC;AAEzC,IAAA,IAAIF,gBAAgB,EAAE;AACpB,MAAA,IAAMG,gBAAgB,GAAGH,gBAAgB,CACtCI,KAAK,CAAC,GAAG,CAAC,CACVvE,GAAG,CAACwE,MAAM,CAAC,CACXC,MAAM,CAACC,OAAO,CAAC;AAElB,MAAA,IAAMC,qBAAqB,GAAGL,gBAAgB,CAACtE,GAAG,CAAC,UAAA4E,IAAI,EAAA;QAAA,OAAK;AAC1DhD,UAAAA,KAAK,EAAEgD,IAAI;AACX/C,UAAAA,GAAG,EAAE+C,IAAI;AACT3C,UAAAA,KAAK,EAAE;SACR;AAAA,MAAA,CAAC,CAAC;AAEHK,MAAAA,qBAAqB,CAAC4B,OAAO,EAAES,qBAAqB,CAAC;AACvD,IAAA;AACF,EAAA,CAAC,CAAC;AACJ,CAAC;AAEM,IAAME,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,kBAAkB,EAAEC,SAAS,EAAA;AAAA,EAAA,OAC/DD,kBAAkB,CAACnF,OAAO,CAACV,mBAAmB,EAAE,UAAC+F,WAAW,EAAEnC,CAAC,EAAEoC,GAAG,EAAK;AACvE,IAAA,IAAMC,WAAW,GAAGD,GAAG,CAACV,KAAK,CAAC,GAAG,CAAC;AAClC,IAAA,IAAIW,WAAW,CAACpD,MAAM,GAAG,CAAC,EAAE;MAC1B,IAAMqD,QAAQ,GAAGC,gBAAM,CAAC;QAAED,QAAQ,EAAED,WAAW,CAAC,CAAC;OAAG,EAAEH,SAAS,CAAC;MAChE,IAAMM,SAAQ,GAAGD,gBAAM,CACrB;QAAEH,GAAG,EAAEC,WAAW,CAAC,CAAC;OAAG,EACvB,CAAAC,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,MAAA,GAAA,MAAA,GAARA,QAAQ,CAAEJ,SAAS,KAAI,EACzB,CAAC;AAED,MAAA,OAAOM,SAAQ,KAAA,IAAA,IAARA,SAAQ,KAAA,MAAA,IAARA,SAAQ,CAAElF,KAAK,GAAGkF,SAAQ,CAAClF,KAAK,GAAG6E,WAAW;AACvD,IAAA;IAEA,IAAMK,QAAQ,GAAGD,gBAAM,CAAC;MAAEH,GAAG,EAAEC,WAAW,CAAC,CAAC;KAAG,EAAEH,SAAS,CAAC;AAE3D,IAAA,OAAOM,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,MAAA,IAARA,QAAQ,CAAElF,KAAK,GAAGkF,QAAQ,CAAClF,KAAK,GAAG6E,WAAW;AACvD,EAAA,CAAC,CAAC;AAAA;AAEG,IAAMM,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAGC,UAAU,EAAI;AAClD,EAAA,IAAI,aAAa,CAACC,IAAI,CAACD,UAAU,CAACE,IAAI,EAAE,CAAC,EAAE,OAAOF,UAAU;AAE5D,EAAA,OAAOA,UAAU,CACdhB,KAAK,CAAC,IAAI,CAAC,CACXmB,MAAM,CAAC,UAACC,IAAI,EAAEC,GAAG,EAAA;AAAA,IAAA,OAAA,EAAA,CAAAzG,MAAA,CAAQwG,IAAI,EAAA,KAAA,CAAA,CAAAxG,MAAA,CAAMyG,GAAG,EAAA,MAAA,CAAA;EAAA,CAAM,EAAE,EAAE,CAAC;AACtD,CAAC;;ACvJD,IAAMC,YAAY,GAAG,SAAfA,YAAYA,GAAS;EACzB,IAAMC,KAAK,GAAG,4BAA4B;AAE1C,EAAA,IAAMC,UAAU,GAAGC,QAAQ,CAAC/F,aAAa,CAAC,MAAM,CAAC;AACjD8F,EAAAA,UAAU,CAACE,SAAS,CAACC,GAAG,CAAC,0BAA0B,CAAC;EACpD,IAAMC,GAAG,GAAGH,QAAQ,CAACI,eAAe,CAACN,KAAK,EAAE,KAAK,CAAC;AAClDK,EAAAA,GAAG,CAACE,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;AACvCF,EAAAA,GAAG,CAACE,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC;AAChCF,EAAAA,GAAG,CAACE,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC;AACxCF,EAAAA,GAAG,CAACE,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC;EAE/B,IAAMC,IAAI,GAAGN,QAAQ,CAACI,eAAe,CAACN,KAAK,EAAE,MAAM,CAAC;AACpDQ,EAAAA,IAAI,CAACD,YAAY,CACf,GAAG,EACH,+UACF,CAAC;AAEDF,EAAAA,GAAG,CAACI,WAAW,CAACD,IAAI,CAAC;AACrBP,EAAAA,UAAU,CAACQ,WAAW,CAACJ,GAAG,CAAC;AAE3B,EAAA,OAAOJ,UAAU;AACnB,CAAC;AAED,IAAMS,eAAe,GAAG,SAAlBA,eAAeA,CAAGC,IAAI,EAAA;EAAA,OAC1BA,IAAI,CACDhB,IAAI,EAAE,CACNiB,WAAW,EAAE,CACb/G,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAC3BA,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;AAAA,CAAA;AAElB,IAAMgH,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGC,iBAAiB,EAAI;AACnD,EAAA,IAAMC,UAAU,GAAGD,iBAAiB,CAAC5C,gBAAgB,CACnD,wBACF,CAAC;AACD,EAAA,IAAM8C,OAAO,GAAG,IAAIC,GAAG,EAAE;AAEzBF,EAAAA,UAAU,CAAC5C,OAAO,CAAC,UAAA+C,OAAO,EAAI;IAC5B,IAAIA,OAAO,CAAC3C,YAAY,CAAC,WAAW,CAAC,KAAK,OAAO,EAAE;AACjD,MAAA;AACF,IAAA;AAEA,IAAA,IAAI4C,SAAS,GAAGT,eAAe,CAACQ,OAAO,CAACE,WAAW,CAAC;AACpD,IAAA,IAAIJ,OAAO,CAACK,GAAG,CAACF,SAAS,CAAC,EAAE;AAC1B,MAAA,IAAMG,KAAK,GAAGN,OAAO,CAACO,GAAG,CAACJ,SAAS,CAAC;MACpCH,OAAO,CAACQ,GAAG,CAACL,SAAS,EAAEG,KAAK,GAAG,CAAC,CAAC;MACjCH,SAAS,GAAA,EAAA,CAAA9H,MAAA,CAAM8H,SAAS,OAAA9H,MAAA,CAAIiI,KAAK,CAAE;IACrC,CAAC,MAAMN,OAAO,CAACQ,GAAG,CAACL,SAAS,EAAE,CAAC,CAAC;AAEhCD,IAAAA,OAAO,CAACX,YAAY,CAAC,IAAI,EAAEY,SAAS,CAAC;AAErC,IAAA,IAAMM,OAAO,GAAGvB,QAAQ,CAAC/F,aAAa,CAAC,KAAK,CAAC;AAC7C,IAAA,IAAMuH,MAAM,GAAGxB,QAAQ,CAAC/F,aAAa,CAAC,GAAG,CAAC;AAE1CsH,IAAAA,OAAO,CAACtB,SAAS,CAACC,GAAG,CAAC,gBAAgB,CAAC;IACvCsB,MAAM,CAACnB,YAAY,CAAC,MAAM,MAAAlH,MAAA,CAAM8H,SAAS,CAAE,CAAC;AAC5CO,IAAAA,MAAM,CAACvB,SAAS,CAACC,GAAG,CAAC,sBAAsB,CAAC;AAC5CsB,IAAAA,MAAM,CAACjB,WAAW,CAACV,YAAY,EAAE,CAAC;IAElC0B,OAAO,CAAChB,WAAW,CAACS,OAAO,CAACS,SAAS,CAAC,IAAI,CAAC,CAAC;AAC5CF,IAAAA,OAAO,CAAChB,WAAW,CAACiB,MAAM,CAAC;AAC3BR,IAAAA,OAAO,CAACU,WAAW,CAACH,OAAO,CAAC;AAC9B,EAAA,CAAC,CAAC;AACJ,CAAC;;AC9DM,IAAMI,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAIC,KAAK,EAAEC,gBAAgB,EAAEC,QAAQ,EAAK;AAC5E,EAAA,IACE,EACEF,KAAK,CAACG,MAAM,CAACC,IAAI,KAAK,UAAU,IAChCJ,KAAK,CAACG,MAAM,CAAC3D,OAAO,CAAC,mDAAmD,CAAC,CAC1E,EACD;AACA,IAAA;AACF,EAAA;AAEA,EAAA,IAAM6D,QAAQ,GAAGL,KAAK,CAACG,MAAM;AAC7B,EAAA,IAAMG,QAAQ,GAAGD,QAAQ,CAAC7D,OAAO,CAAC,IAAI,CAAC;AAEvC,EAAA,IAAI8D,QAAQ,EAAE;AACZA,IAAAA,QAAQ,CAAC7B,YAAY,CAAC,cAAc,EAAE4B,QAAQ,CAACE,OAAO,CAACC,QAAQ,EAAE,CAAC;IAElE,IAAIH,QAAQ,CAACE,OAAO,EAAE;AACpBF,MAAAA,QAAQ,CAAC5B,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC;AAC7C,IAAA,CAAC,MAAM;AACL4B,MAAAA,QAAQ,CAACI,eAAe,CAAC,SAAS,CAAC;AACrC,IAAA;AAEAP,IAAAA,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,MAAA,IAARA,QAAQ,CAAGD,gBAAgB,KAAA,IAAA,IAAhBA,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhBA,gBAAgB,CAAEvH,SAAS,CAAC;AACzC,EAAA;AACF,CAAC;AAEM,IAAMgI,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAGT,gBAAgB,EAAI;EACxD,IAAI,CAACA,gBAAgB,EAAE;AAEvB,EAAA,IAAMU,SAAS,GAAGV,gBAAgB,CAAC7D,gBAAgB,wDAEnD,CAAC;AAEDuE,EAAAA,SAAS,CAACtE,OAAO,CAAC,UAAAiE,QAAQ,EAAI;IAC5B,IAAMM,SAAS,GAAGN,QAAQ,CAAC7D,YAAY,CAAC,cAAc,CAAC,KAAK,MAAM;AAClE,IAAA,IAAM4D,QAAQ,GAAGC,QAAQ,CAACO,aAAa,CAAC,wBAAwB,CAAC;AAEjE,IAAA,IAAIR,QAAQ,EAAE;MACZA,QAAQ,CAACE,OAAO,GAAGK,SAAS;AAE5B,MAAA,IAAIA,SAAS,EAAE;AACbP,QAAAA,QAAQ,CAAC5B,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC;AAC7C,MAAA,CAAC,MAAM;AACL4B,QAAAA,QAAQ,CAACI,eAAe,CAAC,SAAS,CAAC;AACrC,MAAA;AACF,IAAA;AACF,EAAA,CAAC,CAAC;AACJ,CAAC;;ACtCD,IAAMK,YAAY,GAAG,SAAfA,YAAYA,CAAAC,IAAA,EAAwD;AAAA,EAAA,IAAlDC,mBAAmB,GAAAD,IAAA,CAAnBC,mBAAmB;IAAEC,sBAAsB,GAAAF,IAAA,CAAtBE,sBAAsB;AACjE,EAAA,IAAAC,SAAA,GAAkCC,cAAQ,CAAC,IAAI,CAAC;IAAAC,UAAA,GAAAC,+BAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAzCI,IAAAA,SAAS,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,YAAY,GAAAH,UAAA,CAAA,CAAA,CAAA;AAE9B,EAAA,IAAAI,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AAET,EAAA,IAAMC,eAAe,GAAGC,YAAM,CAAC,IAAI,CAAC;EAEpCC,4BAAiB,CAACF,eAAe,EAAE,YAAA;IAAA,OAAMV,sBAAsB,CAAC,IAAI,CAAC;EAAA,CAAA,EAAE;AACrEa,IAAAA,OAAO,EAAE;AACX,GAAC,CAAC;AAEFC,EAAAA,eAAS,CAAC,YAAM;AACd,IAAA,IAAI,CAACJ,eAAe,CAACK,OAAO,EAAE;IAE9BL,eAAe,CAACK,OAAO,CAACvD,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;AACtDkD,IAAAA,eAAe,CAACK,OAAO,CAACC,KAAK,EAAE;EACjC,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAG1H,CAAC,EAAI;IACzBA,CAAC,CAAC2H,eAAe,EAAE;IACnB3H,CAAC,CAAC6C,GAAG,KAAK,QAAQ,IAAI4D,sBAAsB,CAAC,IAAI,CAAC;EACpD,CAAC;EAED,oBAAOmB,uBAAY,cACjBC,eAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,iCAAiC;AAAAnK,IAAAA,QAAA,EAAA,CAC7CmJ,SAAS,iBAAIiB,cAAA,CAACC,kBAAO,EAAA;AAACF,MAAAA,SAAS,EAAC;KAAqC,CAAC,eACvED,eAAA,CAAA,KAAA,EAAA;AACEC,MAAAA,SAAS,EAAEG,2BAAU,CAAC,kBAAkB,EAAE;AACxC,QAAA,cAAc,EAAE,CAACnB;AACnB,OAAC,CAAE;AAAAnJ,MAAAA,QAAA,EAAA,CAEF,CAACmJ,SAAS,iBACTiB,cAAA,CAAA,KAAA,EAAA;AAAKD,QAAAA,SAAS,EAAC,cAAc;QAAAnK,QAAA,eAC3BoK,cAAA,CAACG,iBAAM,EAAA;AACLC,UAAAA,IAAI,EAAEC,aAAE;AACRC,UAAAA,OAAO,EAAC,WAAW;UACnBC,OAAO,EAAE,SAAAA,OAAAA,GAAA;YAAA,OAAM7B,sBAAsB,CAAC,IAAI,CAAC;AAAA,UAAA;SAC5C;OACE,CACN,eACDsB,cAAA,CAAA,KAAA,EAAA;AACEQ,QAAAA,GAAG,EAAErB,CAAC,CAAC,+CAA+C,CAAE;AACxDsB,QAAAA,GAAG,EAAErB,eAAgB;QACrBsB,GAAG,EAAEjC,mBAAmB,CAACiC,GAAI;AAC7BC,QAAAA,SAAS,EAAEhB,aAAc;QACzBiB,MAAM,EAAE,SAAAA,MAAAA,GAAA;UAAA,OAAM5B,YAAY,CAAC,KAAK,CAAC;AAAA,QAAA;AAAC,OACnC,CAAC,EACDP,mBAAmB,iBAClBuB,cAAA,CAAA,GAAA,EAAA;AAAGD,QAAAA,SAAS,EAAC,2BAA2B;QAAAnK,QAAA,EACrC6I,mBAAmB,CAACoC;AAAO,OAC3B,CACJ;AAAA,KACE,CAAC;AAAA,GACH,CAAC,EACNhF,QAAQ,CAACiF,IACX,CAAC;AACH,CAAC;;;;;ACpCD,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAAvC,IAAA,EASb;AAAA,EAAA,IAAAwC,YAAA,GAAAxC,IAAA,CARJjG,OAAO;AAAPA,IAAAA,OAAO,GAAAyI,YAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,YAAA;IAAAC,cAAA,GAAAzC,IAAA,CACZ5D,SAAS;AAATA,IAAAA,SAAS,GAAAqG,cAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,cAAA;IACdlB,SAAS,GAAAvB,IAAA,CAATuB,SAAS;IAAAmB,SAAA,GAAA1C,IAAA,CACT2C,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAA,MAAA,GAAGE,sBAAY,CAACC,KAAK,GAAAH,SAAA;IAAAI,kBAAA,GAAA9C,IAAA,CACzB+C,aAAa;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAA,MAAA,GAAGlM,oCAAoC,GAAAkM,kBAAA;IACpD3D,QAAQ,GAAAa,IAAA,CAARb,QAAQ;IACR4C,OAAO,GAAA/B,IAAA,CAAP+B,OAAO;AACJiB,IAAAA,UAAU,GAAAC,yCAAA,CAAAjD,IAAA,EAAAkD,SAAA,CAAA;AAEb,EAAA,IAAA/C,SAAA,GAAsDC,cAAQ,CAAC,IAAI,CAAC;IAAAC,UAAA,GAAAC,+BAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA7DF,IAAAA,mBAAmB,GAAAI,UAAA,CAAA,CAAA,CAAA;AAAEH,IAAAA,sBAAsB,GAAAG,UAAA,CAAA,CAAA,CAAA;AAClD,EAAA,IAAMnB,gBAAgB,GAAG2B,YAAM,CAAC,IAAI,CAAC;AAErC,EAAA,IAAMsC,WAAW,GAAGxG,sBAAsB,CACxCT,mBAAmB,CACjBpC,qCAAqC,CAACsJ,sBAAe,CAACrJ,OAAO,CAAC,CAAC,EAC/DqC,SACF,CACF,CAAC;AACD,EAAA,IAAMiH,QAAQ,GAAGC,0BAAS,CAACD,QAAQ;AAEnC,EAAA,IAAME,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAGtE,KAAK,EAAI;IAClCD,uBAAuB,CAACC,KAAK,EAAEC,gBAAgB,CAAC+B,OAAO,EAAE9B,QAAQ,CAAC;AAElE4C,IAAAA,OAAO,aAAPA,OAAO,KAAA,MAAA,IAAPA,OAAO,CAAG9C,KAAK,CAAC;EAClB,CAAC;AAED,EAAA,IAAMuE,4BAA4B,GAAG,SAA/BA,4BAA4BA,GAAS;AAAA,IAAA,IAAAC,qBAAA;AACzC,IAAA,IAAMC,OAAO,GAAA,CAAAD,qBAAA,GAAGvE,gBAAgB,CAAC+B,OAAO,MAAA,IAAA,IAAAwC,qBAAA,KAAA,MAAA,GAAA,MAAA,GAAxBA,qBAAA,CAA0BpI,gBAAgB,CAAA,GAAA,CAAA7E,MAAA,CACpDP,yBAAyB,SAC/B,CAAC;AAEDyN,IAAAA,OAAO,CAACpI,OAAO,CAAC,UAAAqI,MAAM,EAAI;AACxB,MAAA,IAAMC,MAAM,GAAGvG,QAAQ,CAAC/F,aAAa,CAAC,KAAK,CAAC;MAC5CsM,MAAM,CAACrC,SAAS,GAAG,gCAAgC;AACnD,MAAA,IAAM3G,IAAI,GAAGiJ,iBAAU,CAACD,MAAM,CAAC;AAC/BhJ,MAAAA,IAAI,CAACkJ,MAAM,cACTtC,cAAA,CAACuC,sCAAqB,EAAA;AACpBpB,QAAAA,IAAI,EAAC,IAAI;QACTnL,KAAK,EAAEmM,MAAM,CAACpF,WAAY;AAC1BuD,QAAAA,OAAO,EAAC;AAAO,OAChB,CACH,CAAC;AACD6B,MAAAA,MAAM,CAAC/F,WAAW,CAACgG,MAAM,CAAC;AAC5B,IAAA,CAAC,CAAC;EACJ,CAAC;AAED,EAAA,IAAMI,sBAAsB,GAAG,SAAzBA,sBAAsBA,GAAS;AAAA,IAAA,IAAAC,sBAAA;AACnC,IAAA,IAAMC,UAAU,GAAA,CAAAD,sBAAA,GAAG/E,gBAAgB,CAAC+B,OAAO,MAAA,IAAA,IAAAgD,sBAAA,KAAA,MAAA,GAAA,MAAA,GAAxBA,sBAAA,CAA0B5I,gBAAgB,CAAA,GAAA,CAAA7E,MAAA,CACvDP,yBAAyB,YAC/B,CAAC;AAEDiO,IAAAA,UAAU,CAAC5I,OAAO,CAAC,UAAA6I,SAAS,EAAI;AAC9B,MAAA,IAAMC,KAAK,GAAGD,SAAS,CAACrE,aAAa,CAAC,KAAK,CAAC;AAC5C,MAAA,IAAMuE,IAAI,GAAGF,SAAS,CAACrE,aAAa,CAAC,GAAG,CAAC;MACzC,IAAIwE,WAAK,CAACF,KAAK,CAAC,IAAIE,WAAK,CAACD,IAAI,CAAC,EAAE;AAEjCF,MAAAA,SAAS,CAACI,gBAAgB,CAAC,OAAO,EAAE,UAAAtF,KAAK,EAAI;QAC3CA,KAAK,CAACuF,cAAc,EAAE;QACtB,IAAMnC,OAAO,GAAG8B,SAAS,CAACrE,aAAa,CAAC,YAAY,CAAC,CAAC2E,SAAS;AAC/DvE,QAAAA,sBAAsB,CAAC;UAAEgC,GAAG,EAAEkC,KAAK,CAAClC,GAAG;AAAEG,UAAAA,OAAO,EAAPA;AAAQ,SAAC,CAAC;AACrD,MAAA,CAAC,CAAC;AACJ,IAAA,CAAC,CAAC;EACJ,CAAC;AAEDrB,EAAAA,eAAS,CAAC,YAAM;AACdwC,IAAAA,4BAA4B,EAAE;AAC9BQ,IAAAA,sBAAsB,EAAE;AACxBrE,IAAAA,sBAAsB,CAACT,gBAAgB,CAAC+B,OAAO,CAAC;AAChD/F,IAAAA,qBAAqB,CAACgE,gBAAgB,CAAC+B,OAAO,CAAC;IAC/C8B,aAAa,CAAClM,iBAAiB,IAC7BmH,gBAAgB,CAACkB,gBAAgB,CAAC+B,OAAO,CAAC;AAC9C,EAAA,CAAC,EAAE,CAAClH,OAAO,CAAC,CAAC;EAEb,oBACEuH,eAAA,CAAAoD,mBAAA,EAAA;IAAAtN,QAAA,EAAA,cACEoK,cAAA,CAAA,KAAA,EAAAmD,aAAA,CAAA;AACE,MAAA,aAAA,EAAY,sBAAsB;AAClC1C,MAAAA,GAAG,EAAE/C,gBAAiB;AACtBqC,MAAAA,SAAS,EAAEG,2BAAU,CAACzL,yBAAyB,EAAA2O,gCAAA,CAAAA,gCAAA,CAAA,EAAA,EAC5CrD,SAAS,EAAGA,SAAS,yBAAA/K,MAAA,CACCmM,IAAI,CAAA,EAAK,IAAI,CACrC,CAAE;AACHkC,MAAAA,uBAAuB,EAAE;AACvBC,QAAAA,MAAM,EAAEzB,QAAQ,CAACF,WAAW,EAAEjN,gBAAgB;OAC9C;AACF6L,MAAAA,OAAO,EAAEwB;KAAmB,EACxBP,UAAU,CACf,CAAC,EACD/C,mBAAmB,iBAClBuB,cAAA,CAACzB,YAAY,EAAA;AAAOE,MAAAA,mBAAmB,EAAnBA,mBAAmB;AAAEC,MAAAA,sBAAsB,EAAtBA;AAAsB,KAAK,CACrE;AAAA,GACD,CAAC;AAEP,CAAC;AAED,YAAA,aAAe6E,UAAI,CAACxC,aAAa,CAAC;;;;;"}