File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/modules/im/install/js/im/lib/uploader/dist/uploader.bundle.js.map
Back
{"version":3,"file":"uploader.bundle.js","sources":["../src/filesender.js","../src/uploader.js"],"sourcesContent":["import { Uploader } from './uploader';\nimport { UploaderTask } from './uploader-task';\n\nexport class FileSender\n{\n\ttoken: string = null;\n\tnextDataChunkToSend: number = null;\n\treadOffset: number = 0;\n\n\tconstructor(task: UploaderTask, options = {})\n\t{\n\t\tthis.diskFolderId = task.diskFolderId;\n\t\tthis.listener = task.listener;\n\t\tthis.status = task.status;\n\n\t\tthis.taskId = task.taskId;\n\t\tthis.fileData = task.fileData;\n\t\tthis.fileName = task.fileName || this.fileData.name;\n\t\tthis.generateUniqueName = task.generateUniqueName;\n\t\tthis.chunkSizeInBytes = task.chunkSize;\n\t\tthis.previewBlob = task.previewBlob || null;\n\t\tthis.requestToDelete = false;\n\n\t\tthis.listener('onStartUpload', {\n\t\t\tid: this.taskId,\n\t\t\tfile: this.fileData,\n\t\t\tpreviewData: this.previewBlob\n\t\t});\n\n\t\tthis.host = options.host || null;\n\t\tthis.actionUploadChunk = options.actionUploadChunk || 'disk.api.content.upload';\n\t\tthis.actionCommitFile = options.actionCommitFile || 'disk.api.file.createByContent';\n\t\tthis.actionRollbackUpload = options.actionRollbackUpload || 'disk.api.content.rollbackUpload';\n\t\tthis.customHeaders = options.customHeaders || null;\n\t}\n\n\tuploadContent(): void\n\t{\n\t\tif (this.status === Uploader.STATUSES.CANCELLED)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.status = Uploader.STATUSES.PROGRESS;\n\t\tthis.readNext();\n\n\t\tconst url = `${this.host ? this.host : \"\"}\n\t\t\t/bitrix/services/main/ajax.php?action=${this.actionUploadChunk}\n\t\t\t&filename=${this.fileName}\n\t\t\t${this.token ? \"&token=\" + this.token : \"\"}`;\n\n\t\tconst contentRangeHeader = \"bytes \" + this.readOffset + \"-\" + (this.readOffset + this.chunkSizeInBytes - 1)\n\t\t\t+ \"/\" + this.fileData.size;\n\n\t\tthis.calculateProgress();\n\n\t\tconst headers ={\n\t\t\t\"Content-Type\": this.fileData.type,\n\t\t\t\"Content-Range\": contentRangeHeader,\n\t\t};\n\n\t\tif (!this.customHeaders)\n\t\t{\n\t\t\theaders['X-Bitrix-Csrf-Token'] = BX.bitrix_sessid();\n\t\t}\n\t\telse //if (this.customHeaders)\n\t\t{\n\t\t\tfor (const customHeader in this.customHeaders)\n\t\t\t{\n\t\t\t\tif (this.customHeaders.hasOwnProperty(customHeader))\n\t\t\t\t{\n\t\t\t\t\theaders[customHeader] = this.customHeaders[customHeader];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfetch(url, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: headers,\n\t\t\tcredentials: \"include\",\n\t\t\tbody: this.nextDataChunkToSend\n\t\t})\n\t\t\t.then(response => response.json())\n\t\t\t.then(result => {\n\t\t\t\tif (result.errors.length > 0)\n\t\t\t\t{\n\t\t\t\t\tthis.status = Uploader.STATUSES.FAILED;\n\t\t\t\t\tthis.listener('onUploadFileError', {id: this.taskId, result: result});\n\t\t\t\t\tconsole.error(result.errors[0].message)\n\t\t\t\t}\n\t\t\t\telse if(result.data.token)\n\t\t\t\t{\n\t\t\t\t\tthis.token = result.data.token;\n\t\t\t\t\tthis.readOffset = this.readOffset + this.chunkSizeInBytes;\n\t\t\t\t\tif (!this.isEndOfFile())\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.uploadContent();\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.createFileFromUploadedChunks();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}).catch(err => {\n\t\t\t\tthis.status = Uploader.STATUSES.FAILED;\n\t\t\t\tthis.listener('onUploadFileError', {id: this.taskId, result: err});\n\t\t\t}\n\t\t);\n\t}\n\n\tdeleteContent(): void\n\t{\n\t\tthis.status = Uploader.STATUSES.CANCELLED;\n\t\tthis.requestToDelete = true;\n\n\t\tif (!this.token)\n\t\t{\n\t\t\tconsole.error('Empty token.')\n\t\t\treturn;\n\t\t}\n\n\t\tconst url = `${this.host ? this.host : \"\"}/bitrix/services/main/ajax.php?\n\t\taction=${this.actionRollbackUpload}&token=${this.token}`;\n\n\t\tconst headers = {};\n\t\tif (!this.customHeaders)\n\t\t{\n\t\t\theaders['X-Bitrix-Csrf-Token'] = BX.bitrix_sessid();\n\t\t}\n\t\telse //if (this.customHeaders)\n\t\t{\n\t\t\tfor (const customHeader in this.customHeaders)\n\t\t\t{\n\t\t\t\tif (this.customHeaders.hasOwnProperty(customHeader))\n\t\t\t\t{\n\t\t\t\t\theaders[customHeader] = this.customHeaders[customHeader];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfetch(url, {\n\t\t\tmethod: 'POST',\n\t\t\tcredentials: \"include\",\n\t\t\theaders: headers\n\t\t})\n\t\t\t.then(response => response.json())\n\t\t\t.then(result => console.log(result))\n\t\t\t.catch(err => console.error(err))\n\t}\n\n\tcreateFileFromUploadedChunks(): void\n\t{\n\t\tif (!this.token)\n\t\t{\n\t\t\tconsole.error('Empty token.')\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.requestToDelete)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst url = `${this.host ? this.host : \"\"}/bitrix/services/main/ajax.php?action=${this.actionCommitFile}&filename=${this.fileName}`\n\t\t\t+ \"&folderId=\" + this.diskFolderId\n\t\t\t+ \"&contentId=\" + this.token\n\t\t\t+ (this.generateUniqueName ? \"&generateUniqueName=true\" : \"\");\n\n\t\tconst headers = {\n\t\t\t\"X-Upload-Content-Type\": this.fileData.type,\n\t\t};\n\n\t\tif (!this.customHeaders)\n\t\t{\n\t\t\theaders['X-Bitrix-Csrf-Token'] = BX.bitrix_sessid();\n\t\t}\n\t\telse //if (this.customHeaders)\n\t\t{\n\t\t\tfor (const customHeader in this.customHeaders)\n\t\t\t{\n\t\t\t\tif (this.customHeaders.hasOwnProperty(customHeader))\n\t\t\t\t{\n\t\t\t\t\theaders[customHeader] = this.customHeaders[customHeader];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst formData = new FormData();\n\t\tif (this.previewBlob)\n\t\t{\n\t\t\tformData.append(\"previewFile\", this.previewBlob, \"preview_\" + this.fileName + \".jpg\");\n\t\t}\n\n\t\tfetch(url, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: headers,\n\t\t\tcredentials: \"include\",\n\t\t\tbody: formData\n\t\t})\n\t\t\t.then(response => response.json())\n\t\t\t.then(result => {\n\t\t\t\tthis.uploadResult = result;\n\t\t\t\tif (result.errors.length > 0)\n\t\t\t\t{\n\t\t\t\t\tthis.status = Uploader.STATUSES.FAILED;\n\t\t\t\t\tthis.listener('onCreateFileError', {id: this.taskId, result: result});\n\t\t\t\t\tconsole.error(result.errors[0].message)\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.calculateProgress();\n\t\t\t\t\tthis.status = Uploader.STATUSES.DONE;\n\t\t\t\t\tthis.listener('onComplete', {id: this.taskId, result: result});\n\t\t\t\t}\n\t\t\t}).catch(err => {\n\t\t\t\tthis.status = Uploader.STATUSES.FAILED;\n\t\t\t\tthis.listener('onCreateFileError', {id: this.taskId, result: err});\n\t\t\t}\n\t\t);\n\t}\n\n\tcalculateProgress(): void\n\t{\n\t\tthis.progress = Math.round((this.readOffset * 100) / this.fileData.size);\n\n\t\tthis.listener('onProgress', {\n\t\t\tid: this.taskId,\n\t\t\tprogress: this.progress,\n\t\t\treadOffset: this.readOffset,\n\t\t\tfileSize: this.fileData.size,\n\t\t});\n\t}\n\n\treadNext(): void\n\t{\n\t\tif ((this.readOffset + this.chunkSizeInBytes) > this.fileData.size)\n\t\t{\n\t\t\tthis.chunkSizeInBytes = this.fileData.size - this.readOffset;\n\t\t}\n\n\t\tthis.nextDataChunkToSend = this.fileData.slice(this.readOffset, this.readOffset + this.chunkSizeInBytes);\n\t}\n\n\tisEndOfFile(): boolean\n\t{\n\t\treturn (this.readOffset >= this.fileData.size);\n\t}\n}","import { FileSender } from './filesender';\nimport { EventEmitter } from \"main.core.events\";\nimport type { UploaderTask } from './uploader-task';\nimport type { UploaderResultTask } from \"./uploader-result-task\";\nimport {Type} from 'main.core.minimal';\n\nexport class Uploader extends EventEmitter\n{\n\tqueue: Array<UploaderTask> = [];\n\tisCloud: string = BX.message.isCloud;\n\tphpUploadMaxFilesize: number = BX.message.phpUploadMaxFilesize;\n\tphpPostMaxSize: number = BX.message.phpPostMaxSize;\n\n\tstatic STATUSES: Object = {\n\t\tPENDING: 0,\n\t\tPROGRESS: 1,\n\t\tDONE: 2,\n\t\tCANCELLED: 3,\n\t\tFAILED: 4,\n\t};\n\tstatic BOX_MIN_CHUNK_SIZE = 1024 * 1024; //1Mb\n\tstatic CLOUD_MIN_CHUNK_SIZE = 1024 * 1024 * 5; //5Mb\n\tstatic CLOUD_MAX_CHUNK_SIZE = 1024 * 1024 * 100; //100Mb\n\n\tconstructor(options)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Messenger.Lib.Uploader');\n\t\tthis.generatePreview = options.generatePreview || false;\n\n\t\tif (options)\n\t\t{\n\t\t\tthis.inputNode = options.inputNode || null;\n\t\t\tthis.dropNode = options.dropNode || null;\n\n\t\t\tthis.fileMaxSize = options.fileMaxSize || null;\n\t\t\tthis.fileMaxWidth = options.fileMaxWidth || null;\n\t\t\tthis.fileMaxHeight = options.fileMaxHeight || null;\n\n\t\t\tif (options.sender)\n\t\t\t{\n\t\t\t\tthis.senderOptions = {\n\t\t\t\t\thost: options.sender.host,\n\t\t\t\t\tactionUploadChunk: options.sender.actionUploadChunk,\n\t\t\t\t\tactionCommitFile: options.sender.actionCommitFile,\n\t\t\t\t\tactionRollbackUpload: options.sender.actionRollbackUpload,\n\t\t\t\t\tcustomHeaders: options.sender.customHeaders || null,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.assignInput();\n\t\t\tthis.assignDrop();\n\t\t}\n\t}\n\n\tsetInputNode(node)\n\t{\n\t\tif (node instanceof HTMLInputElement || Array.isArray(node))\n\t\t{\n\t\t\tthis.inputNode = node;\n\t\t\tthis.assignInput();\n\t\t}\n\t}\n\n\taddFilesFromEvent(event)\n\t{\n\t\tArray.from(event.target.files).forEach(file => {\n\t\t\tthis.emitSelectedFile(file);\n\t\t});\n\t}\n\n\tgetPreview(file: File): Promise\n\t{\n\t\treturn new Promise((resolve, reject) =>\n\t\t{\n\t\t\tif (!this.generatePreview)\n\t\t\t{\n\t\t\t\tresolve();\n\t\t\t}\n\n\t\t\tif (file instanceof File)\n\t\t\t{\n\t\t\t\tif (file.type.startsWith('video'))\n\t\t\t\t{\n\t\t\t\t\tUploader.getVideoPreviewBlob(file, 10)\n\t\t\t\t\t\t.then(blob => this.getImageDimensions(blob))\n\t\t\t\t\t\t.then(result => resolve(result))\n\t\t\t\t\t\t.catch(reason => reject(reason));\n\t\t\t\t}\n\t\t\t\telse if (file.type.startsWith('image'))\n\t\t\t\t{\n\t\t\t\t\tconst blob = new Blob([file],{type: file.type});\n\t\t\t\t\tthis.getImageDimensions(blob).then(result => resolve(result));\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\treject(\"Parameter 'file' is not instance of 'File'\");\n\t\t\t}\n\t\t})\n\t}\n\n\taddTask(task: UploaderTask): void\n\t{\n\t\tif (!this.isModernBrowser())\n\t\t{\n\t\t\tconsole.warn('Unsupported browser!')\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.checkTaskParams(task))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\ttask.chunkSize = this.calculateChunkSize(task.chunkSize);\n\n\t\ttask.listener = (event, data) => (this.onUploadEvent(event, data));\n\t\ttask.status = Uploader.STATUSES.PENDING;\n\n\t\tconst fileSender = new FileSender(task, this.senderOptions);\n\t\tthis.queue.push(fileSender);\n\t\tthis.checkUploadQueue();\n\t}\n\n\tdeleteTask(taskId: string): void\n\t{\n\t\tif (!taskId)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.queue = this.queue.filter(queueItem => {\n\t\t\tif (queueItem.taskId === taskId)\n\t\t\t{\n\t\t\t\tqueueItem.deleteContent();\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t});\n\t}\n\n\tgetTask(taskId: string): UploaderResultTask\n\t{\n\t\tconst task = this.queue.find(queueItem => queueItem.taskId === taskId);\n\t\tif (task)\n\t\t{\n\t\t\treturn {\n\t\t\t\tid: task.id,\n\t\t\t\tdiskFolderId: task.diskFolderId,\n\t\t\t\tfileData: task.fileData,\n\t\t\t\tfileName: task.fileName,\n\t\t\t\tprogress: task.progress,\n\t\t\t\treadOffset: task.readOffset,\n\t\t\t\tstatus: task.status,\n\t\t\t\ttoken: task.token,\n\t\t\t\tuploadResult: task.uploadResult,\n\t\t\t};\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tstatic getVideoPreviewBlob(file: File, seekTime: number = 0): Promise\n\t{\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst videoPlayer = document.createElement('video');\n\t\t\tvideoPlayer.setAttribute('src', URL.createObjectURL(file));\n\t\t\tvideoPlayer.load();\n\t\t\tvideoPlayer.addEventListener('error', (error) => {\n\t\t\t\treject(\"Error while loading video file\", error);\n\t\t\t});\n\t\t\tvideoPlayer.addEventListener('loadedmetadata', () => {\n\t\t\t\tif (videoPlayer.duration < seekTime)\n\t\t\t\t{\n\t\t\t\t\tseekTime = 0;\n\t\t\t\t\t// reject(\"Too big seekTime for the video.\");\n\t\t\t\t\t// return;\n\t\t\t\t}\n\t\t\t\tvideoPlayer.currentTime = seekTime;\n\t\t\t\tvideoPlayer.addEventListener('seeked', () => {\n\t\t\t\t\tconst canvas = document.createElement(\"canvas\");\n\t\t\t\t\tcanvas.width = videoPlayer.videoWidth;\n\t\t\t\t\tcanvas.height = videoPlayer.videoHeight;\n\t\t\t\t\tconst context = canvas.getContext(\"2d\");\n\t\t\t\t\tcontext.drawImage(videoPlayer, 0, 0, canvas.width, canvas.height);\n\t\t\t\t\tcontext.canvas.toBlob(\n\t\t\t\t\t\tblob => resolve(blob),\n\t\t\t\t\t\t\"image/jpeg\",\n\t\t\t\t\t\t1\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tcheckUploadQueue(): void\n\t{\n\t\tif (this.queue.length > 0)\n\t\t{\n\t\t\tconst inProgressTasks = this.queue.filter(queueTask => queueTask.status === Uploader.STATUSES.PENDING);\n\t\t\tif (inProgressTasks.length > 0)\n\t\t\t{\n\t\t\t\tinProgressTasks[0].uploadContent();\n\t\t\t}\n\t\t}\n\t}\n\n\tonUploadEvent(event: string, data: Object)\n\t{\n\t\tthis.emit(event, data);\n\t\tthis.checkUploadQueue();\n\t}\n\n\tcheckTaskParams(task: UploaderTask)\n\t{\n\t\tif (!task.taskId)\n\t\t{\n\t\t\tconsole.error('Empty Task ID.')\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!task.fileData)\n\t\t{\n\t\t\tconsole.error('Empty file data.')\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!task.diskFolderId)\n\t\t{\n\t\t\tconsole.error('Empty disk folder ID.')\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.fileMaxSize && this.fileMaxSize < task.fileData.size)\n\t\t{\n\t\t\tconst data = {\n\t\t\t\tmaxFileSizeLimit: this.fileMaxSize,\n\t\t\t\tfile: task.fileData,\n\t\t\t};\n\t\t\tthis.emit('onFileMaxSizeExceeded', data);\n\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tcalculateChunkSize(taskChunkSize: number): number\n\t{\n\t\tif (Type.isUndefined(this.isCloud)) // widget case\n\t\t{\n\t\t\treturn taskChunkSize;\n\t\t}\n\n\t\tlet chunk = 0;\n\t\tif (taskChunkSize)\n\t\t{\n\t\t\tchunk = taskChunkSize;\n\t\t}\n\n\t\tif (this.isCloud === 'Y')\n\t\t{\n\t\t\tchunk = (chunk < Uploader.CLOUD_MIN_CHUNK_SIZE) ? Uploader.CLOUD_MIN_CHUNK_SIZE : chunk;\n\t\t\tchunk = (chunk > Uploader.CLOUD_MAX_CHUNK_SIZE) ? Uploader.CLOUD_MAX_CHUNK_SIZE : chunk;\n\t\t}\n\t\telse //if(this.isCloud === 'N')\n\t\t{\n\t\t\tconst maxBoxChunkSize = Math.min(this.phpPostMaxSize, this.phpUploadMaxFilesize);\n\n\t\t\tchunk = (chunk < Uploader.BOX_MIN_CHUNK_SIZE) ? Uploader.BOX_MIN_CHUNK_SIZE : chunk;\n\t\t\tchunk = (chunk > maxBoxChunkSize) ? maxBoxChunkSize : chunk;\n\t\t}\n\n\t\treturn chunk;\n\t}\n\n\tisModernBrowser(): boolean\n\t{\n\t\treturn typeof (fetch) !== 'undefined';\n\t}\n\n\tassignInput()\n\t{\n\t\tif (this.inputNode instanceof HTMLInputElement)\n\t\t{\n\t\t\tthis.setOnChangeEventListener(this.inputNode);\n\t\t}\n\t\telse if (Array.isArray(this.inputNode))\n\t\t{\n\t\t\tthis.inputNode.forEach(node => {\n\t\t\t\tif (node instanceof HTMLInputElement)\n\t\t\t\t{\n\t\t\t\t\tthis.setOnChangeEventListener(node);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tsetOnChangeEventListener(inputNode: HTMLInputElement)\n\t{\n\t\tinputNode.addEventListener('change', (event) => {\n\t\t\tthis.addFilesFromEvent(event);\n\t\t}, false);\n\t}\n\n\tassignDrop()\n\t{\n\t\tif (this.dropNode instanceof HTMLElement)\n\t\t{\n\t\t\tthis.setDropEventListener(this.dropNode);\n\t\t}\n\t\telse if (Array.isArray(this.dropNode))\n\t\t{\n\t\t\tthis.dropNode.forEach(node => {\n\t\t\t\tif (node instanceof HTMLElement)\n\t\t\t\t{\n\t\t\t\t\tthis.setDropEventListener(node);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tsetDropEventListener(dropNode: HTMLElement)\n\t{\n\t\tdropNode.addEventListener('drop', (event) => {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\n\t\t\tArray.from(event.dataTransfer.files).forEach(file => {\n\t\t\t\tthis.emitSelectedFile(file);\n\t\t\t});\n\t\t}, false);\n\t}\n\n\temitSelectedFile(file: File)\n\t{\n\t\tconst data = { file: file };\n\t\tthis.getPreview(file).then(previewData => {\n\t\t\tif (previewData)\n\t\t\t{\n\t\t\t\tdata['previewData'] = previewData.blob;\n\t\t\t\tdata['previewDataWidth'] = previewData.width;\n\t\t\t\tdata['previewDataHeight'] = previewData.height;\n\n\t\t\t\tif (this.fileMaxWidth || this.fileMaxHeight)\n\t\t\t\t{\n\t\t\t\t\tconst isMaxWidthExceeded = (this.fileMaxWidth === null ? false : this.fileMaxWidth < data['previewDataWidth']);\n\t\t\t\t\tconst isMaxHeightExceeded = (this.fileMaxHeight === null ? false : this.fileMaxHeight < data['previewDataHeight']);\n\t\t\t\t\tif (isMaxWidthExceeded || isMaxHeightExceeded)\n\t\t\t\t\t{\n\t\t\t\t\t\tconst eventData = {\n\t\t\t\t\t\t\tmaxWidth: this.fileMaxWidth,\n\t\t\t\t\t\t\tmaxHeight: this.fileMaxHeight,\n\t\t\t\t\t\t\tfileWidth: data['previewDataWidth'],\n\t\t\t\t\t\t\tfileHeight: data['previewDataHeight'],\n\t\t\t\t\t\t};\n\t\t\t\t\t\tthis.emit('onFileMaxResolutionExceeded', eventData);\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.emit('onSelectFile', data);\n\t\t}).catch(err => {\n\t\t\tconsole.warn(`Couldn't get preview for file ${file.name}. Error: ${err}`);\n\t\t\tthis.emit('onSelectFile', data);\n\t\t});\n\t}\n\n\tgetImageDimensions(fileBlob: Blob)\n\t{\n\t\treturn new Promise ((resolved, rejected) => {\n\t\t\tif (!fileBlob)\n\t\t\t{\n\t\t\t\trejected('getImageDimensions: fileBlob can\\'t be empty');\n\t\t\t}\n\n\t\t\tconst img = new Image();\n\t\t\timg.onload = () => {\n\t\t\t\tresolved({\n\t\t\t\t\tblob: fileBlob,\n\t\t\t\t\twidth: img.width,\n\t\t\t\t\theight: img.height\n\t\t\t\t})\n\t\t\t};\n\t\t\timg.onerror = () => {\n\t\t\t\trejected();\n\t\t\t};\n\t\t\timg.src = URL.createObjectURL(fileBlob);\n\t\t})\n\t}\n}\n"],"names":["FileSender","task","options","diskFolderId","listener","status","taskId","fileData","fileName","name","generateUniqueName","chunkSizeInBytes","chunkSize","previewBlob","requestToDelete","id","file","previewData","host","actionUploadChunk","actionCommitFile","actionRollbackUpload","customHeaders","Uploader","STATUSES","CANCELLED","PROGRESS","readNext","url","token","contentRangeHeader","readOffset","size","calculateProgress","headers","type","BX","bitrix_sessid","customHeader","hasOwnProperty","fetch","method","credentials","body","nextDataChunkToSend","then","response","json","result","errors","length","FAILED","console","error","message","data","isEndOfFile","uploadContent","createFileFromUploadedChunks","err","log","formData","FormData","append","uploadResult","DONE","progress","Math","round","fileSize","slice","isCloud","phpUploadMaxFilesize","phpPostMaxSize","setEventNamespace","generatePreview","inputNode","dropNode","fileMaxSize","fileMaxWidth","fileMaxHeight","sender","senderOptions","assignInput","assignDrop","node","HTMLInputElement","Array","isArray","event","from","target","files","forEach","emitSelectedFile","Promise","resolve","reject","File","startsWith","getVideoPreviewBlob","blob","getImageDimensions","reason","Blob","isModernBrowser","warn","checkTaskParams","calculateChunkSize","onUploadEvent","PENDING","fileSender","queue","push","checkUploadQueue","filter","queueItem","deleteContent","find","inProgressTasks","queueTask","emit","maxFileSizeLimit","taskChunkSize","Type","isUndefined","chunk","CLOUD_MIN_CHUNK_SIZE","CLOUD_MAX_CHUNK_SIZE","maxBoxChunkSize","min","BOX_MIN_CHUNK_SIZE","setOnChangeEventListener","addEventListener","addFilesFromEvent","HTMLElement","setDropEventListener","preventDefault","stopPropagation","dataTransfer","getPreview","width","height","isMaxWidthExceeded","isMaxHeightExceeded","eventData","maxWidth","maxHeight","fileWidth","fileHeight","fileBlob","resolved","rejected","img","Image","onload","onerror","src","URL","createObjectURL","seekTime","videoPlayer","document","createElement","setAttribute","load","duration","currentTime","canvas","videoWidth","videoHeight","context","getContext","drawImage","toBlob","EventEmitter"],"mappings":";;;;;KAGaA,UAAU;GAMtB,oBAAYC,IAAkB,EAC9B;KAAA,IADgCC,OAAO,uEAAG,EAAE;KAAA;KAAA,2CAJ5B,IAAI;KAAA,yDACU,IAAI;KAAA,gDACb,CAAC;KAIrB,IAAI,CAACC,YAAY,GAAGF,IAAI,CAACE,YAAY;KACrC,IAAI,CAACC,QAAQ,GAAGH,IAAI,CAACG,QAAQ;KAC7B,IAAI,CAACC,MAAM,GAAGJ,IAAI,CAACI,MAAM;KAEzB,IAAI,CAACC,MAAM,GAAGL,IAAI,CAACK,MAAM;KACzB,IAAI,CAACC,QAAQ,GAAGN,IAAI,CAACM,QAAQ;KAC7B,IAAI,CAACC,QAAQ,GAAGP,IAAI,CAACO,QAAQ,IAAI,IAAI,CAACD,QAAQ,CAACE,IAAI;KACnD,IAAI,CAACC,kBAAkB,GAAGT,IAAI,CAACS,kBAAkB;KACjD,IAAI,CAACC,gBAAgB,GAAGV,IAAI,CAACW,SAAS;KACtC,IAAI,CAACC,WAAW,GAAGZ,IAAI,CAACY,WAAW,IAAI,IAAI;KAC3C,IAAI,CAACC,eAAe,GAAG,KAAK;KAE5B,IAAI,CAACV,QAAQ,CAAC,eAAe,EAAE;OAC9BW,EAAE,EAAE,IAAI,CAACT,MAAM;OACfU,IAAI,EAAE,IAAI,CAACT,QAAQ;OACnBU,WAAW,EAAE,IAAI,CAACJ;MAClB,CAAC;KAEF,IAAI,CAACK,IAAI,GAAGhB,OAAO,CAACgB,IAAI,IAAI,IAAI;KAChC,IAAI,CAACC,iBAAiB,GAAGjB,OAAO,CAACiB,iBAAiB,IAAI,yBAAyB;KAC/E,IAAI,CAACC,gBAAgB,GAAGlB,OAAO,CAACkB,gBAAgB,IAAI,+BAA+B;KACnF,IAAI,CAACC,oBAAoB,GAAGnB,OAAO,CAACmB,oBAAoB,IAAI,iCAAiC;KAC7F,IAAI,CAACC,aAAa,GAAGpB,OAAO,CAACoB,aAAa,IAAI,IAAI;;GAClD;KAAA;KAAA,gCAGD;OAAA;OACC,IAAI,IAAI,CAACjB,MAAM,KAAKkB,QAAQ,CAACC,QAAQ,CAACC,SAAS,EAC/C;SACC;;OAGD,IAAI,CAACpB,MAAM,GAAGkB,QAAQ,CAACC,QAAQ,CAACE,QAAQ;OACxC,IAAI,CAACC,QAAQ,EAAE;OAEf,IAAMC,GAAG,aAAM,IAAI,CAACV,IAAI,GAAG,IAAI,CAACA,IAAI,GAAG,EAAE,2DACA,IAAI,CAACC,iBAAiB,+BAClD,IAAI,CAACX,QAAQ,qBACvB,IAAI,CAACqB,KAAK,GAAG,SAAS,GAAG,IAAI,CAACA,KAAK,GAAG,EAAE,CAAE;OAE7C,IAAMC,kBAAkB,GAAG,QAAQ,GAAG,IAAI,CAACC,UAAU,GAAG,GAAG,IAAI,IAAI,CAACA,UAAU,GAAG,IAAI,CAACpB,gBAAgB,GAAG,CAAC,CAAC,GACxG,GAAG,GAAG,IAAI,CAACJ,QAAQ,CAACyB,IAAI;OAE3B,IAAI,CAACC,iBAAiB,EAAE;OAExB,IAAMC,OAAO,GAAE;SACd,cAAc,EAAE,IAAI,CAAC3B,QAAQ,CAAC4B,IAAI;SAClC,eAAe,EAAEL;QACjB;OAED,IAAI,CAAC,IAAI,CAACR,aAAa,EACvB;SACCY,OAAO,CAAC,qBAAqB,CAAC,GAAGE,EAAE,CAACC,aAAa,EAAE;QACnD;;SAED;WACC,KAAK,IAAMC,YAAY,IAAI,IAAI,CAAChB,aAAa,EAC7C;aACC,IAAI,IAAI,CAACA,aAAa,CAACiB,cAAc,CAACD,YAAY,CAAC,EACnD;eACCJ,OAAO,CAACI,YAAY,CAAC,GAAG,IAAI,CAAChB,aAAa,CAACgB,YAAY,CAAC;;;;OAK3DE,KAAK,CAACZ,GAAG,EAAE;SACVa,MAAM,EAAE,MAAM;SACdP,OAAO,EAAEA,OAAO;SAChBQ,WAAW,EAAE,SAAS;SACtBC,IAAI,EAAE,IAAI,CAACC;QACX,CAAC,CACAC,IAAI,CAAC,UAAAC,QAAQ;SAAA,OAAIA,QAAQ,CAACC,IAAI,EAAE;SAAC,CACjCF,IAAI,CAAC,UAAAG,MAAM,EAAI;SACf,IAAIA,MAAM,CAACC,MAAM,CAACC,MAAM,GAAG,CAAC,EAC5B;WACC,KAAI,CAAC7C,MAAM,GAAGkB,QAAQ,CAACC,QAAQ,CAAC2B,MAAM;WACtC,KAAI,CAAC/C,QAAQ,CAAC,mBAAmB,EAAE;aAACW,EAAE,EAAE,KAAI,CAACT,MAAM;aAAE0C,MAAM,EAAEA;YAAO,CAAC;WACrEI,OAAO,CAACC,KAAK,CAACL,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,CAACK,OAAO,CAAC;UACvC,MACI,IAAGN,MAAM,CAACO,IAAI,CAAC1B,KAAK,EACzB;WACC,KAAI,CAACA,KAAK,GAAGmB,MAAM,CAACO,IAAI,CAAC1B,KAAK;WAC9B,KAAI,CAACE,UAAU,GAAG,KAAI,CAACA,UAAU,GAAG,KAAI,CAACpB,gBAAgB;WACzD,IAAI,CAAC,KAAI,CAAC6C,WAAW,EAAE,EACvB;aACC,KAAI,CAACC,aAAa,EAAE;YACpB,MAED;aACC,KAAI,CAACC,4BAA4B,EAAE;;;QAGrC,CAAC,SAAM,CAAC,UAAAC,GAAG,EAAI;SACf,KAAI,CAACtD,MAAM,GAAGkB,QAAQ,CAACC,QAAQ,CAAC2B,MAAM;SACtC,KAAI,CAAC/C,QAAQ,CAAC,mBAAmB,EAAE;WAACW,EAAE,EAAE,KAAI,CAACT,MAAM;WAAE0C,MAAM,EAAEW;UAAI,CAAC;QAClE,CACD;;;KACD;KAAA,gCAGD;OACC,IAAI,CAACtD,MAAM,GAAGkB,QAAQ,CAACC,QAAQ,CAACC,SAAS;OACzC,IAAI,CAACX,eAAe,GAAG,IAAI;OAE3B,IAAI,CAAC,IAAI,CAACe,KAAK,EACf;SACCuB,OAAO,CAACC,KAAK,CAAC,cAAc,CAAC;SAC7B;;OAGD,IAAMzB,GAAG,aAAM,IAAI,CAACV,IAAI,GAAG,IAAI,CAACA,IAAI,GAAG,EAAE,yDAChC,IAAI,CAACG,oBAAoB,oBAAU,IAAI,CAACQ,KAAK,CAAE;OAExD,IAAMK,OAAO,GAAG,EAAE;OAClB,IAAI,CAAC,IAAI,CAACZ,aAAa,EACvB;SACCY,OAAO,CAAC,qBAAqB,CAAC,GAAGE,EAAE,CAACC,aAAa,EAAE;QACnD;;SAED;WACC,KAAK,IAAMC,YAAY,IAAI,IAAI,CAAChB,aAAa,EAC7C;aACC,IAAI,IAAI,CAACA,aAAa,CAACiB,cAAc,CAACD,YAAY,CAAC,EACnD;eACCJ,OAAO,CAACI,YAAY,CAAC,GAAG,IAAI,CAAChB,aAAa,CAACgB,YAAY,CAAC;;;;OAK3DE,KAAK,CAACZ,GAAG,EAAE;SACVa,MAAM,EAAE,MAAM;SACdC,WAAW,EAAE,SAAS;SACtBR,OAAO,EAAEA;QACT,CAAC,CACAW,IAAI,CAAC,UAAAC,QAAQ;SAAA,OAAIA,QAAQ,CAACC,IAAI,EAAE;SAAC,CACjCF,IAAI,CAAC,UAAAG,MAAM;SAAA,OAAII,OAAO,CAACQ,GAAG,CAACZ,MAAM,CAAC;SAAC,SAC9B,CAAC,UAAAW,GAAG;SAAA,OAAIP,OAAO,CAACC,KAAK,CAACM,GAAG,CAAC;SAAC;;;KAClC;KAAA,+CAGD;OAAA;OACC,IAAI,CAAC,IAAI,CAAC9B,KAAK,EACf;SACCuB,OAAO,CAACC,KAAK,CAAC,cAAc,CAAC;SAC7B;;OAGD,IAAI,IAAI,CAACvC,eAAe,EACxB;SACC;;OAGD,IAAMc,GAAG,GAAG,UAAG,IAAI,CAACV,IAAI,GAAG,IAAI,CAACA,IAAI,GAAG,EAAE,mDAAyC,IAAI,CAACE,gBAAgB,uBAAa,IAAI,CAACZ,QAAQ,IAC9H,YAAY,GAAG,IAAI,CAACL,YAAY,GAChC,aAAa,GAAG,IAAI,CAAC0B,KAAK,IACzB,IAAI,CAACnB,kBAAkB,GAAG,0BAA0B,GAAG,EAAE,CAAC;OAE9D,IAAMwB,OAAO,GAAG;SACf,uBAAuB,EAAE,IAAI,CAAC3B,QAAQ,CAAC4B;QACvC;OAED,IAAI,CAAC,IAAI,CAACb,aAAa,EACvB;SACCY,OAAO,CAAC,qBAAqB,CAAC,GAAGE,EAAE,CAACC,aAAa,EAAE;QACnD;;SAED;WACC,KAAK,IAAMC,YAAY,IAAI,IAAI,CAAChB,aAAa,EAC7C;aACC,IAAI,IAAI,CAACA,aAAa,CAACiB,cAAc,CAACD,YAAY,CAAC,EACnD;eACCJ,OAAO,CAACI,YAAY,CAAC,GAAG,IAAI,CAAChB,aAAa,CAACgB,YAAY,CAAC;;;;OAK3D,IAAMuB,QAAQ,GAAG,IAAIC,QAAQ,EAAE;OAC/B,IAAI,IAAI,CAACjD,WAAW,EACpB;SACCgD,QAAQ,CAACE,MAAM,CAAC,aAAa,EAAE,IAAI,CAAClD,WAAW,EAAE,UAAU,GAAG,IAAI,CAACL,QAAQ,GAAG,MAAM,CAAC;;OAGtFgC,KAAK,CAACZ,GAAG,EAAE;SACVa,MAAM,EAAE,MAAM;SACdP,OAAO,EAAEA,OAAO;SAChBQ,WAAW,EAAE,SAAS;SACtBC,IAAI,EAAEkB;QACN,CAAC,CACAhB,IAAI,CAAC,UAAAC,QAAQ;SAAA,OAAIA,QAAQ,CAACC,IAAI,EAAE;SAAC,CACjCF,IAAI,CAAC,UAAAG,MAAM,EAAI;SACf,MAAI,CAACgB,YAAY,GAAGhB,MAAM;SAC1B,IAAIA,MAAM,CAACC,MAAM,CAACC,MAAM,GAAG,CAAC,EAC5B;WACC,MAAI,CAAC7C,MAAM,GAAGkB,QAAQ,CAACC,QAAQ,CAAC2B,MAAM;WACtC,MAAI,CAAC/C,QAAQ,CAAC,mBAAmB,EAAE;aAACW,EAAE,EAAE,MAAI,CAACT,MAAM;aAAE0C,MAAM,EAAEA;YAAO,CAAC;WACrEI,OAAO,CAACC,KAAK,CAACL,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,CAACK,OAAO,CAAC;UACvC,MAED;WACC,MAAI,CAACrB,iBAAiB,EAAE;WACxB,MAAI,CAAC5B,MAAM,GAAGkB,QAAQ,CAACC,QAAQ,CAACyC,IAAI;WACpC,MAAI,CAAC7D,QAAQ,CAAC,YAAY,EAAE;aAACW,EAAE,EAAE,MAAI,CAACT,MAAM;aAAE0C,MAAM,EAAEA;YAAO,CAAC;;QAE/D,CAAC,SAAM,CAAC,UAAAW,GAAG,EAAI;SACf,MAAI,CAACtD,MAAM,GAAGkB,QAAQ,CAACC,QAAQ,CAAC2B,MAAM;SACtC,MAAI,CAAC/C,QAAQ,CAAC,mBAAmB,EAAE;WAACW,EAAE,EAAE,MAAI,CAACT,MAAM;WAAE0C,MAAM,EAAEW;UAAI,CAAC;QAClE,CACD;;;KACD;KAAA,oCAGD;OACC,IAAI,CAACO,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAAE,IAAI,CAACrC,UAAU,GAAG,GAAG,GAAI,IAAI,CAACxB,QAAQ,CAACyB,IAAI,CAAC;OAExE,IAAI,CAAC5B,QAAQ,CAAC,YAAY,EAAE;SAC3BW,EAAE,EAAE,IAAI,CAACT,MAAM;SACf4D,QAAQ,EAAE,IAAI,CAACA,QAAQ;SACvBnC,UAAU,EAAE,IAAI,CAACA,UAAU;SAC3BsC,QAAQ,EAAE,IAAI,CAAC9D,QAAQ,CAACyB;QACxB,CAAC;;;KACF;KAAA,2BAGD;OACC,IAAK,IAAI,CAACD,UAAU,GAAG,IAAI,CAACpB,gBAAgB,GAAI,IAAI,CAACJ,QAAQ,CAACyB,IAAI,EAClE;SACC,IAAI,CAACrB,gBAAgB,GAAG,IAAI,CAACJ,QAAQ,CAACyB,IAAI,GAAG,IAAI,CAACD,UAAU;;OAG7D,IAAI,CAACa,mBAAmB,GAAG,IAAI,CAACrC,QAAQ,CAAC+D,KAAK,CAAC,IAAI,CAACvC,UAAU,EAAE,IAAI,CAACA,UAAU,GAAG,IAAI,CAACpB,gBAAgB,CAAC;;;KACxG;KAAA,8BAGD;OACC,OAAQ,IAAI,CAACoB,UAAU,IAAI,IAAI,CAACxB,QAAQ,CAACyB,IAAI;;;GAC7C;CAAA;;KChPWT,QAAQ;GAAA;;;;;GAkBpB,kBAAYrB,OAAO,EACnB;KAAA;KAAA;KACC;KAAQ,gFAlBoB,EAAE;KAAA,kFACbkC,EAAE,CAACkB,OAAO,CAACiB,OAAO;KAAA,+FACLnC,EAAE,CAACkB,OAAO,CAACkB,oBAAoB;KAAA,yFACrCpC,EAAE,CAACkB,OAAO,CAACmB,cAAc;KAgBjD,MAAKC,iBAAiB,CAAC,2BAA2B,CAAC;KACnD,MAAKC,eAAe,GAAGzE,OAAO,CAACyE,eAAe,IAAI,KAAK;KAEvD,IAAIzE,OAAO,EACX;OACC,MAAK0E,SAAS,GAAG1E,OAAO,CAAC0E,SAAS,IAAI,IAAI;OAC1C,MAAKC,QAAQ,GAAG3E,OAAO,CAAC2E,QAAQ,IAAI,IAAI;OAExC,MAAKC,WAAW,GAAG5E,OAAO,CAAC4E,WAAW,IAAI,IAAI;OAC9C,MAAKC,YAAY,GAAG7E,OAAO,CAAC6E,YAAY,IAAI,IAAI;OAChD,MAAKC,aAAa,GAAG9E,OAAO,CAAC8E,aAAa,IAAI,IAAI;OAElD,IAAI9E,OAAO,CAAC+E,MAAM,EAClB;SACC,MAAKC,aAAa,GAAG;WACpBhE,IAAI,EAAEhB,OAAO,CAAC+E,MAAM,CAAC/D,IAAI;WACzBC,iBAAiB,EAAEjB,OAAO,CAAC+E,MAAM,CAAC9D,iBAAiB;WACnDC,gBAAgB,EAAElB,OAAO,CAAC+E,MAAM,CAAC7D,gBAAgB;WACjDC,oBAAoB,EAAEnB,OAAO,CAAC+E,MAAM,CAAC5D,oBAAoB;WACzDC,aAAa,EAAEpB,OAAO,CAAC+E,MAAM,CAAC3D,aAAa,IAAI;UAC/C;;OAGF,MAAK6D,WAAW,EAAE;OAClB,MAAKC,UAAU,EAAE;;KACjB;;GACD;KAAA;KAAA,6BAEYC,IAAI,EACjB;OACC,IAAIA,IAAI,YAAYC,gBAAgB,IAAIC,KAAK,CAACC,OAAO,CAACH,IAAI,CAAC,EAC3D;SACC,IAAI,CAACT,SAAS,GAAGS,IAAI;SACrB,IAAI,CAACF,WAAW,EAAE;;;;KAEnB;KAAA,kCAEiBM,KAAK,EACvB;OAAA;OACCF,KAAK,CAACG,IAAI,CAACD,KAAK,CAACE,MAAM,CAACC,KAAK,CAAC,CAACC,OAAO,CAAC,UAAA7E,IAAI,EAAI;SAC9C,MAAI,CAAC8E,gBAAgB,CAAC9E,IAAI,CAAC;QAC3B,CAAC;;;KACF;KAAA,2BAEUA,IAAU,EACrB;OAAA;OACC,OAAO,IAAI+E,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EACnC;SACC,IAAI,CAAC,MAAI,CAACtB,eAAe,EACzB;WACCqB,OAAO,EAAE;;SAGV,IAAIhF,IAAI,YAAYkF,IAAI,EACxB;WACC,IAAIlF,IAAI,CAACmB,IAAI,CAACgE,UAAU,CAAC,OAAO,CAAC,EACjC;aACC5E,QAAQ,CAAC6E,mBAAmB,CAACpF,IAAI,EAAE,EAAE,CAAC,CACpC6B,IAAI,CAAC,UAAAwD,IAAI;eAAA,OAAI,MAAI,CAACC,kBAAkB,CAACD,IAAI,CAAC;eAAC,CAC3CxD,IAAI,CAAC,UAAAG,MAAM;eAAA,OAAIgD,OAAO,CAAChD,MAAM,CAAC;eAAC,SAC1B,CAAC,UAAAuD,MAAM;eAAA,OAAIN,MAAM,CAACM,MAAM,CAAC;eAAC;YACjC,MACI,IAAIvF,IAAI,CAACmB,IAAI,CAACgE,UAAU,CAAC,OAAO,CAAC,EACtC;aACC,IAAME,IAAI,GAAG,IAAIG,IAAI,CAAC,CAACxF,IAAI,CAAC,EAAC;eAACmB,IAAI,EAAEnB,IAAI,CAACmB;cAAK,CAAC;aAC/C,MAAI,CAACmE,kBAAkB,CAACD,IAAI,CAAC,CAACxD,IAAI,CAAC,UAAAG,MAAM;eAAA,OAAIgD,OAAO,CAAChD,MAAM,CAAC;eAAC;YAC7D,MAED;aACCgD,OAAO,EAAE;;UAEV,MAED;WACCC,MAAM,CAAC,4CAA4C,CAAC;;QAErD,CAAC;;;KACF;KAAA,wBAEOhG,IAAkB,EAC1B;OAAA;OACC,IAAI,CAAC,IAAI,CAACwG,eAAe,EAAE,EAC3B;SACCrD,OAAO,CAACsD,IAAI,CAAC,sBAAsB,CAAC;SACpC;;OAGD,IAAI,CAAC,IAAI,CAACC,eAAe,CAAC1G,IAAI,CAAC,EAC/B;SACC;;OAGDA,IAAI,CAACW,SAAS,GAAG,IAAI,CAACgG,kBAAkB,CAAC3G,IAAI,CAACW,SAAS,CAAC;OAExDX,IAAI,CAACG,QAAQ,GAAG,UAACqF,KAAK,EAAElC,IAAI;SAAA,OAAM,MAAI,CAACsD,aAAa,CAACpB,KAAK,EAAElC,IAAI,CAAC;QAAC;OAClEtD,IAAI,CAACI,MAAM,GAAGkB,QAAQ,CAACC,QAAQ,CAACsF,OAAO;OAEvC,IAAMC,UAAU,GAAG,IAAI/G,UAAU,CAACC,IAAI,EAAE,IAAI,CAACiF,aAAa,CAAC;OAC3D,IAAI,CAAC8B,KAAK,CAACC,IAAI,CAACF,UAAU,CAAC;OAC3B,IAAI,CAACG,gBAAgB,EAAE;;;KACvB;KAAA,2BAEU5G,MAAc,EACzB;OACC,IAAI,CAACA,MAAM,EACX;SACC;;OAGD,IAAI,CAAC0G,KAAK,GAAG,IAAI,CAACA,KAAK,CAACG,MAAM,CAAC,UAAAC,SAAS,EAAI;SAC3C,IAAIA,SAAS,CAAC9G,MAAM,KAAKA,MAAM,EAC/B;WACC8G,SAAS,CAACC,aAAa,EAAE;WACzB,OAAO,KAAK;;SAGb,OAAO,IAAI;QACX,CAAC;;;KACF;KAAA,wBAEO/G,MAAc,EACtB;OACC,IAAML,IAAI,GAAG,IAAI,CAAC+G,KAAK,CAACM,IAAI,CAAC,UAAAF,SAAS;SAAA,OAAIA,SAAS,CAAC9G,MAAM,KAAKA,MAAM;SAAC;OACtE,IAAIL,IAAI,EACR;SACC,OAAO;WACNc,EAAE,EAAEd,IAAI,CAACc,EAAE;WACXZ,YAAY,EAAEF,IAAI,CAACE,YAAY;WAC/BI,QAAQ,EAAEN,IAAI,CAACM,QAAQ;WACvBC,QAAQ,EAAEP,IAAI,CAACO,QAAQ;WACvB0D,QAAQ,EAAEjE,IAAI,CAACiE,QAAQ;WACvBnC,UAAU,EAAE9B,IAAI,CAAC8B,UAAU;WAC3B1B,MAAM,EAAEJ,IAAI,CAACI,MAAM;WACnBwB,KAAK,EAAE5B,IAAI,CAAC4B,KAAK;WACjBmC,YAAY,EAAE/D,IAAI,CAAC+D;UACnB;;OAGF,OAAO,IAAI;;;KACX;KAAA,mCAoCD;OACC,IAAI,IAAI,CAACgD,KAAK,CAAC9D,MAAM,GAAG,CAAC,EACzB;SACC,IAAMqE,eAAe,GAAG,IAAI,CAACP,KAAK,CAACG,MAAM,CAAC,UAAAK,SAAS;WAAA,OAAIA,SAAS,CAACnH,MAAM,KAAKkB,QAAQ,CAACC,QAAQ,CAACsF,OAAO;WAAC;SACtG,IAAIS,eAAe,CAACrE,MAAM,GAAG,CAAC,EAC9B;WACCqE,eAAe,CAAC,CAAC,CAAC,CAAC9D,aAAa,EAAE;;;;;KAGpC;KAAA,8BAEagC,KAAa,EAAElC,IAAY,EACzC;OACC,IAAI,CAACkE,IAAI,CAAChC,KAAK,EAAElC,IAAI,CAAC;OACtB,IAAI,CAAC2D,gBAAgB,EAAE;;;KACvB;KAAA,gCAEejH,IAAkB,EAClC;OACC,IAAI,CAACA,IAAI,CAACK,MAAM,EAChB;SACC8C,OAAO,CAACC,KAAK,CAAC,gBAAgB,CAAC;SAC/B,OAAO,KAAK;;OAGb,IAAI,CAACpD,IAAI,CAACM,QAAQ,EAClB;SACC6C,OAAO,CAACC,KAAK,CAAC,kBAAkB,CAAC;SACjC,OAAO,KAAK;;OAGb,IAAI,CAACpD,IAAI,CAACE,YAAY,EACtB;SACCiD,OAAO,CAACC,KAAK,CAAC,uBAAuB,CAAC;SACtC,OAAO,KAAK;;OAGb,IAAI,IAAI,CAACyB,WAAW,IAAI,IAAI,CAACA,WAAW,GAAG7E,IAAI,CAACM,QAAQ,CAACyB,IAAI,EAC7D;SACC,IAAMuB,IAAI,GAAG;WACZmE,gBAAgB,EAAE,IAAI,CAAC5C,WAAW;WAClC9D,IAAI,EAAEf,IAAI,CAACM;UACX;SACD,IAAI,CAACkH,IAAI,CAAC,uBAAuB,EAAElE,IAAI,CAAC;SAExC,OAAO,KAAK;;OAGb,OAAO,IAAI;;;KACX;KAAA,mCAEkBoE,aAAqB,EACxC;OACC,IAAIC,sBAAI,CAACC,WAAW,CAAC,IAAI,CAACtD,OAAO,CAAC;;SAClC;WACC,OAAOoD,aAAa;;OAGrB,IAAIG,KAAK,GAAG,CAAC;OACb,IAAIH,aAAa,EACjB;SACCG,KAAK,GAAGH,aAAa;;OAGtB,IAAI,IAAI,CAACpD,OAAO,KAAK,GAAG,EACxB;SACCuD,KAAK,GAAKA,KAAK,GAAGvG,QAAQ,CAACwG,oBAAoB,GAAIxG,QAAQ,CAACwG,oBAAoB,GAAGD,KAAK;SACxFA,KAAK,GAAKA,KAAK,GAAGvG,QAAQ,CAACyG,oBAAoB,GAAIzG,QAAQ,CAACyG,oBAAoB,GAAGF,KAAK;QACxF;;SAED;WACC,IAAMG,eAAe,GAAG9D,IAAI,CAAC+D,GAAG,CAAC,IAAI,CAACzD,cAAc,EAAE,IAAI,CAACD,oBAAoB,CAAC;WAEhFsD,KAAK,GAAKA,KAAK,GAAGvG,QAAQ,CAAC4G,kBAAkB,GAAI5G,QAAQ,CAAC4G,kBAAkB,GAAGL,KAAK;WACpFA,KAAK,GAAKA,KAAK,GAAGG,eAAe,GAAIA,eAAe,GAAGH,KAAK;;OAG7D,OAAOA,KAAK;;;KACZ;KAAA,kCAGD;OACC,OAAO,OAAQtF,KAAM,KAAK,WAAW;;;KACrC;KAAA,8BAGD;OAAA;OACC,IAAI,IAAI,CAACoC,SAAS,YAAYU,gBAAgB,EAC9C;SACC,IAAI,CAAC8C,wBAAwB,CAAC,IAAI,CAACxD,SAAS,CAAC;QAC7C,MACI,IAAIW,KAAK,CAACC,OAAO,CAAC,IAAI,CAACZ,SAAS,CAAC,EACtC;SACC,IAAI,CAACA,SAAS,CAACiB,OAAO,CAAC,UAAAR,IAAI,EAAI;WAC9B,IAAIA,IAAI,YAAYC,gBAAgB,EACpC;aACC,MAAI,CAAC8C,wBAAwB,CAAC/C,IAAI,CAAC;;UAEpC,CAAC;;;;KAEH;KAAA,yCAEwBT,SAA2B,EACpD;OAAA;OACCA,SAAS,CAACyD,gBAAgB,CAAC,QAAQ,EAAE,UAAC5C,KAAK,EAAK;SAC/C,MAAI,CAAC6C,iBAAiB,CAAC7C,KAAK,CAAC;QAC7B,EAAE,KAAK,CAAC;;;KACT;KAAA,6BAGD;OAAA;OACC,IAAI,IAAI,CAACZ,QAAQ,YAAY0D,WAAW,EACxC;SACC,IAAI,CAACC,oBAAoB,CAAC,IAAI,CAAC3D,QAAQ,CAAC;QACxC,MACI,IAAIU,KAAK,CAACC,OAAO,CAAC,IAAI,CAACX,QAAQ,CAAC,EACrC;SACC,IAAI,CAACA,QAAQ,CAACgB,OAAO,CAAC,UAAAR,IAAI,EAAI;WAC7B,IAAIA,IAAI,YAAYkD,WAAW,EAC/B;aACC,MAAI,CAACC,oBAAoB,CAACnD,IAAI,CAAC;;UAEhC,CAAC;;;;KAEH;KAAA,qCAEoBR,QAAqB,EAC1C;OAAA;OACCA,QAAQ,CAACwD,gBAAgB,CAAC,MAAM,EAAE,UAAC5C,KAAK,EAAK;SAC5CA,KAAK,CAACgD,cAAc,EAAE;SACtBhD,KAAK,CAACiD,eAAe,EAAE;SAEvBnD,KAAK,CAACG,IAAI,CAACD,KAAK,CAACkD,YAAY,CAAC/C,KAAK,CAAC,CAACC,OAAO,CAAC,UAAA7E,IAAI,EAAI;WACpD,MAAI,CAAC8E,gBAAgB,CAAC9E,IAAI,CAAC;UAC3B,CAAC;QACF,EAAE,KAAK,CAAC;;;KACT;KAAA,iCAEgBA,IAAU,EAC3B;OAAA;OACC,IAAMuC,IAAI,GAAG;SAAEvC,IAAI,EAAEA;QAAM;OAC3B,IAAI,CAAC4H,UAAU,CAAC5H,IAAI,CAAC,CAAC6B,IAAI,CAAC,UAAA5B,WAAW,EAAI;SACzC,IAAIA,WAAW,EACf;WACCsC,IAAI,CAAC,aAAa,CAAC,GAAGtC,WAAW,CAACoF,IAAI;WACtC9C,IAAI,CAAC,kBAAkB,CAAC,GAAGtC,WAAW,CAAC4H,KAAK;WAC5CtF,IAAI,CAAC,mBAAmB,CAAC,GAAGtC,WAAW,CAAC6H,MAAM;WAE9C,IAAI,MAAI,CAAC/D,YAAY,IAAI,MAAI,CAACC,aAAa,EAC3C;aACC,IAAM+D,kBAAkB,GAAI,MAAI,CAAChE,YAAY,KAAK,IAAI,GAAG,KAAK,GAAG,MAAI,CAACA,YAAY,GAAGxB,IAAI,CAAC,kBAAkB,CAAE;aAC9G,IAAMyF,mBAAmB,GAAI,MAAI,CAAChE,aAAa,KAAK,IAAI,GAAG,KAAK,GAAG,MAAI,CAACA,aAAa,GAAGzB,IAAI,CAAC,mBAAmB,CAAE;aAClH,IAAIwF,kBAAkB,IAAIC,mBAAmB,EAC7C;eACC,IAAMC,SAAS,GAAG;iBACjBC,QAAQ,EAAE,MAAI,CAACnE,YAAY;iBAC3BoE,SAAS,EAAE,MAAI,CAACnE,aAAa;iBAC7BoE,SAAS,EAAE7F,IAAI,CAAC,kBAAkB,CAAC;iBACnC8F,UAAU,EAAE9F,IAAI,CAAC,mBAAmB;gBACpC;eACD,MAAI,CAACkE,IAAI,CAAC,6BAA6B,EAAEwB,SAAS,CAAC;eACnD,OAAO,KAAK;;;;SAIf,MAAI,CAACxB,IAAI,CAAC,cAAc,EAAElE,IAAI,CAAC;QAC/B,CAAC,SAAM,CAAC,UAAAI,GAAG,EAAI;SACfP,OAAO,CAACsD,IAAI,yCAAkC1F,IAAI,CAACP,IAAI,sBAAYkD,GAAG,EAAG;SACzE,MAAI,CAAC8D,IAAI,CAAC,cAAc,EAAElE,IAAI,CAAC;QAC/B,CAAC;;;KACF;KAAA,mCAEkB+F,QAAc,EACjC;OACC,OAAO,IAAIvD,OAAO,CAAE,UAACwD,QAAQ,EAAEC,QAAQ,EAAK;SAC3C,IAAI,CAACF,QAAQ,EACb;WACCE,QAAQ,CAAC,8CAA8C,CAAC;;SAGzD,IAAMC,GAAG,GAAG,IAAIC,KAAK,EAAE;SACvBD,GAAG,CAACE,MAAM,GAAG,YAAM;WAClBJ,QAAQ,CAAC;aACRlD,IAAI,EAAEiD,QAAQ;aACdT,KAAK,EAAEY,GAAG,CAACZ,KAAK;aAChBC,MAAM,EAAEW,GAAG,CAACX;YACZ,CAAC;UACF;SACDW,GAAG,CAACG,OAAO,GAAG,YAAM;WACnBJ,QAAQ,EAAE;UACV;SACDC,GAAG,CAACI,GAAG,GAAGC,GAAG,CAACC,eAAe,CAACT,QAAQ,CAAC;QACvC,CAAC;;;KACF;KAAA,oCAnO0BtI,IAAU,EACrC;OAAA,IADuCgJ,QAAgB,uEAAG,CAAC;OAE1D,OAAO,IAAIjE,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;SACvC,IAAMgE,WAAW,GAAGC,QAAQ,CAACC,aAAa,CAAC,OAAO,CAAC;SACnDF,WAAW,CAACG,YAAY,CAAC,KAAK,EAAEN,GAAG,CAACC,eAAe,CAAC/I,IAAI,CAAC,CAAC;SAC1DiJ,WAAW,CAACI,IAAI,EAAE;SAClBJ,WAAW,CAAC5B,gBAAgB,CAAC,OAAO,EAAE,UAAChF,KAAK,EAAK;WAChD4C,MAAM,CAAC,gCAAgC,EAAE5C,KAAK,CAAC;UAC/C,CAAC;SACF4G,WAAW,CAAC5B,gBAAgB,CAAC,gBAAgB,EAAE,YAAM;WACpD,IAAI4B,WAAW,CAACK,QAAQ,GAAGN,QAAQ,EACnC;aACCA,QAAQ,GAAG,CAAC;;;;;WAIbC,WAAW,CAACM,WAAW,GAAGP,QAAQ;WAClCC,WAAW,CAAC5B,gBAAgB,CAAC,QAAQ,EAAE,YAAM;aAC5C,IAAMmC,MAAM,GAAGN,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;aAC/CK,MAAM,CAAC3B,KAAK,GAAGoB,WAAW,CAACQ,UAAU;aACrCD,MAAM,CAAC1B,MAAM,GAAGmB,WAAW,CAACS,WAAW;aACvC,IAAMC,OAAO,GAAGH,MAAM,CAACI,UAAU,CAAC,IAAI,CAAC;aACvCD,OAAO,CAACE,SAAS,CAACZ,WAAW,EAAE,CAAC,EAAE,CAAC,EAAEO,MAAM,CAAC3B,KAAK,EAAE2B,MAAM,CAAC1B,MAAM,CAAC;aACjE6B,OAAO,CAACH,MAAM,CAACM,MAAM,CACpB,UAAAzE,IAAI;eAAA,OAAIL,OAAO,CAACK,IAAI,CAAC;gBACrB,YAAY,EACZ,CAAC,CACD;YACD,CAAC;UACF,CAAC;QACF,CAAC;;;GACF;CAAA,EAjM4B0E,6BAAY;CAsYzC,4BAtYYxJ,QAAQ,cAOM;GACzBuF,OAAO,EAAE,CAAC;GACVpF,QAAQ,EAAE,CAAC;GACXuC,IAAI,EAAE,CAAC;GACPxC,SAAS,EAAE,CAAC;GACZ0B,MAAM,EAAE;CACT,CAAC;CAAA,4BAbW5B,QAAQ,wBAcQ,IAAI,GAAG,IAAI;CAAA,4BAd3BA,QAAQ,0BAeU,IAAI,GAAG,IAAI,GAAG,CAAC;CAAA,4BAfjCA,QAAQ,0BAgBU,IAAI,GAAG,IAAI,GAAG,GAAG;;;;;;;;"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.25 |
proxy
|
phpinfo
|
Settings