YetiForceCompany/YetiForceCRM

View on GitHub
public_html/layouts/resources/fields/MultiImage.min.js.map

Summary

Maintainability
Test Coverage
{"version":3,"file":"MultiImage.min.js","sources":["MultiImage.js"],"sourcesContent":["/* {[The file is published on the basis of YetiForce Public License 6.5 that can be found in the following directory: licenses/LicenseEN.txt or yetiforce.com]} */\n'use strict';\n\nclass MultiImage {\n\t/**\n\t * Create class instance\n\t *\n\t * @param {HTMLElement|jQuery} inputElement - input type file element inside component\n\t */\n\tconstructor(element) {\n\t\tconst thisInstance = this;\n\t\tthis.elements = {};\n\t\tthis.options = {\n\t\t\tshowCarousel: true\n\t\t};\n\t\tthis.detailView = false;\n\t\tthis.elements.fileInput = element.find('.js-multi-image__file').eq(0);\n\t\tif (this.elements.fileInput.length === 0) {\n\t\t\tthis.detailView = true;\n\t\t}\n\t\tthis.elements.component = element.eq(0);\n\t\tthis.elements.form = element.closest('form').eq(0);\n\t\t$(this.elements.form).on('submit', this.onFormSubmit);\n\t\tthis.elements.addButton = this.elements.component.find('.js-multi-image__file-btn').eq(0);\n\t\tthis.elements.values = this.elements.component.find('.js-multi-image__values').eq(0);\n\t\tthis.elements.progressBar = this.elements.component.find('.js-multi-image__progress-bar').eq(0);\n\t\tthis.elements.progress = this.elements.component.find('.js-multi-image__progress').eq(0);\n\t\tthis.elements.result = this.elements.component.find('.js-multi-image__result').eq(0);\n\t\tthis.fieldInfo = this.elements.values.data('fieldinfo');\n\t\tthis.options.formats = this.fieldInfo.formats;\n\t\tthis.options.limit = this.fieldInfo.limit;\n\t\tthis.options.maxFileSize = this.fieldInfo.maxFileSize || CONFIG.maxUploadLimit;\n\t\tthis.options.maxFileSizeDisplay = this.fieldInfo.maxFileSizeDisplay || '';\n\t\tif (!this.detailView) {\n\t\t\tthis.files = JSON.parse(this.elements.values.val());\n\t\t} else {\n\t\t\tthis.files = this.elements.values.data('value');\n\t\t}\n\t\tif (!this.detailView) {\n\t\t\tthis.elements.fileInput.detach();\n\t\t\tthis.elements.addButton.click(this.addButtonClick.bind(this));\n\t\t\tthis.elements.fileInput.fileupload({\n\t\t\t\tdataType: 'json',\n\t\t\t\treplaceFileInput: false,\n\t\t\t\tfileInput: this.fileInput,\n\t\t\t\tautoUpload: false,\n\t\t\t\tsubmit: this.submit.bind(this),\n\t\t\t\tadd: this.add.bind(this),\n\t\t\t\tprogressall: this.progressAll.bind(this),\n\t\t\t\tchange: this.change.bind(this),\n\t\t\t\tdrop: this.change.bind(this),\n\t\t\t\tdragover: this.dragOver.bind(this),\n\t\t\t\tfail: this.uploadError.bind(this),\n\t\t\t\tdone: this.uploadSuccess.bind(this)\n\t\t\t});\n\t\t\tthis.elements.component.on('dragleave', this.dragLeave.bind(this));\n\t\t\tthis.elements.component.on('dragend', this.dragLeave.bind(this));\n\t\t\tthis.elements.fileInput.fileupload('option', 'dropZone', $(this.elements.component));\n\t\t\tthis.enableDragNDrop();\n\t\t}\n\t\tthis.elements.component.on('click', '.js-multi-image__popover-img', function () {\n\t\t\tthisInstance.zoomPreview($(this).data('hash'));\n\t\t});\n\t\tthis.elements.component.on('click', '.js-multi-image__popover-btn-zoom', function (e) {\n\t\t\te.preventDefault();\n\t\t\tthisInstance.zoomPreview($(this).data('hash'));\n\t\t});\n\t\tthis.elements.component.on('click', '.js-multi-image__popover-btn-download', function (e) {\n\t\t\te.preventDefault();\n\t\t\tthisInstance.download($(this).data('hash'));\n\t\t});\n\t\tif (!this.detailView) {\n\t\t\tthis.elements.component.on('click', '.js-multi-image__popover-btn-delete', function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tthisInstance.deleteFile($(this).data('hash'));\n\t\t\t});\n\t\t}\n\t\tthis.loadExistingFiles();\n\t}\n\n\t/**\n\t * Prevent form submission before file upload end\n\t * @param e\n\t */\n\tonFormSubmit(e) {\n\t\tif (App.Fields.MultiImage.currentFileUploads) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\te.stopImmediatePropagation();\n\t\t\tapp.showAlert(app.vtranslate('JS_WAIT_FOR_FILE_UPLOAD'));\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\n\t/**\n\t * Prevent form submission\n\t *\n\t * @param {Event} e\n\t */\n\taddButtonClick(e) {\n\t\te.preventDefault();\n\t\tthis.elements.fileInput.trigger('click');\n\t}\n\n\t/**\n\t * Submit event handler from jQuery-file-upload\n\t *\n\t * @param {Event} e\n\t * @param {Object} data\n\t */\n\tsubmit(_e, data) {\n\t\tdata.formData = {\n\t\t\thash: data.files[0].hash\n\t\t};\n\t\tApp.Fields.MultiImage.currentFileUploads++;\n\t\tthis.progressInstance = $.progressIndicator({\n\t\t\tposition: 'replace',\n\t\t\tblockInfo: {\n\t\t\t\tenabled: true,\n\t\t\t\telementToBlock: this.elements.component\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Get file information\n\t *\n\t * @param {String} hash - file id\n\t * @returns {Object}\n\t */\n\tgetFileInfo(hash) {\n\t\tfor (let i = 0, len = this.files.length; i < len; i++) {\n\t\t\tconst file = this.files[i];\n\t\t\tif (file.hash === hash) {\n\t\t\t\treturn file;\n\t\t\t}\n\t\t}\n\t\tapp.errorLog(`File '${hash}' not found.`);\n\t\tapp.showNotify({\n\t\t\ttext: app.vtranslate('JS_INVALID_FILE_HASH') + ` [${hash}]`,\n\t\t\ttype: 'error'\n\t\t});\n\t}\n\n\t/**\n\t * Add property to file info object\n\t *\n\t * @param {String} hash - file id\n\t * @param {String} propertyName\n\t * @param {any} value\n\t * @returns {Object}\n\t */\n\taddFileInfoProperty(hash, propertyName, value) {\n\t\tconst fileInfo = this.getFileInfo(hash);\n\t\tfileInfo[propertyName] = value;\n\t\treturn fileInfo;\n\t}\n\n\t/**\n\t * Error event handler from file upload request\n\t *\n\t * @param {Event} e\n\t * @param {Object} data\n\t */\n\tuploadError(_e, data) {\n\t\tthis.progressInstance.progressIndicator({ mode: 'hide' });\n\t\tapp.errorLog('File upload error.');\n\t\tconst { jqXHR, files } = data;\n\t\tconst response = jqXHR.responseJSON;\n\t\t// first try to show error for concrete file\n\t\tif (\n\t\t\tresponse !== null &&\n\t\t\ttypeof response !== 'undefined' &&\n\t\t\ttypeof response.result !== 'undefined' &&\n\t\t\ttypeof response.result.attach !== 'undefined' &&\n\t\t\tArray.isArray(response.result.attach)\n\t\t) {\n\t\t\tresponse.result.attach.forEach((fileAttach) => {\n\t\t\t\tApp.Fields.MultiImage.currentFileUploads--;\n\t\t\t\tthis.deleteFile(fileAttach.hash, false);\n\t\t\t\tif (typeof fileAttach.error === 'string') {\n\t\t\t\t\tapp.showNotify({\n\t\t\t\t\t\ttextTrusted: false,\n\t\t\t\t\t\ttext: fileAttach.error,\n\t\t\t\t\t\ttype: 'error'\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tapp.showNotify({\n\t\t\t\t\t\ttextTrusted: false,\n\t\t\t\t\t\ttitle: app.vtranslate('JS_FILE_UPLOAD_ERROR'),\n\t\t\t\t\t\ttext: fileAttach.name,\n\t\t\t\t\t\ttype: 'error'\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.updateFormValues();\n\t\t\treturn;\n\t\t}\n\t\t// else show default upload error\n\t\tfiles.forEach((file) => {\n\t\t\tApp.Fields.MultiImage.currentFileUploads--;\n\t\t\tthis.deleteFile(file.hash, false);\n\t\t\tapp.showNotify({\n\t\t\t\ttextTrusted: false,\n\t\t\t\ttitle: app.vtranslate('JS_FILE_UPLOAD_ERROR'),\n\t\t\t\ttext: file.name,\n\t\t\t\ttype: 'error'\n\t\t\t});\n\t\t});\n\t\tthis.updateFormValues();\n\t}\n\n\t/**\n\t * Success event handler from file upload request\n\t *\n\t * @param {Event} e\n\t * @param {Object} data\n\t */\n\tuploadSuccess(e, data) {\n\t\tthis.progressInstance.progressIndicator({ mode: 'hide' });\n\t\tconst { result } = data;\n\t\tconst attach = result.result.attach;\n\t\tattach.forEach((fileAttach) => {\n\t\t\tconst hash = fileAttach.hash;\n\t\t\tif (!hash) {\n\t\t\t\treturn app.errorLog(new Error(app.vtranslate('JS_INVALID_FILE_HASH')));\n\t\t\t}\n\t\t\tif (typeof fileAttach.key === 'undefined') {\n\t\t\t\treturn this.uploadError(e, data);\n\t\t\t}\n\t\t\tif (typeof fileAttach.info !== 'undefined' && fileAttach.info) {\n\t\t\t\tapp.showNotify({\n\t\t\t\t\ttextTrusted: false,\n\t\t\t\t\ttype: 'notice',\n\t\t\t\t\ttitle: fileAttach.info,\n\t\t\t\t\ttext: fileAttach.name\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst fileInfo = this.getFileInfo(hash);\n\t\t\tthis.addFileInfoProperty(hash, 'key', fileAttach.key);\n\t\t\tthis.addFileInfoProperty(hash, 'size', fileAttach.size);\n\t\t\tthis.addFileInfoProperty(hash, 'sizeDisplay', fileAttach.sizeDisplay || fileAttach.size);\n\t\t\tthis.addFileInfoProperty(hash, 'name', fileAttach.name);\n\t\t\tthis.addFileInfoProperty(hash, 'type', fileAttach.type || '');\n\t\t\tthis.generatePreviewFromFile(fileInfo.file, (template, imageSrc) => {\n\t\t\t\tthis.addFileInfoProperty(hash, 'previewElement', this.addPreviewPopover(fileInfo, template, imageSrc));\n\t\t\t\tthis.redraw();\n\t\t\t});\n\t\t\tApp.Fields.MultiImage.currentFileUploads--;\n\t\t});\n\t\tthis.updateFormValues();\n\t}\n\n\t/**\n\t * Update form input values\n\t */\n\tupdateFormValues() {\n\t\tthis.elements.fileInput.val(null);\n\t\tconst formValues = this.files.map((file) => {\n\t\t\treturn { key: file.key, name: file.name, size: file.size, type: file.type || '' };\n\t\t});\n\t\tthis.elements.values.val(JSON.stringify(formValues));\n\t}\n\n\t/**\n\t * Validate file\n\t *\n\t * @param {Object} file\n\t * @returns {boolean}\n\t */\n\tvalidateFormat(file) {\n\t\tlet valid = false;\n\t\tthis.options.formats.forEach((format) => {\n\t\t\tif (file.type === 'image/' + format) {\n\t\t\t\tvalid = true;\n\t\t\t}\n\t\t});\n\t\tif (!valid) {\n\t\t\tapp.showNotify({\n\t\t\t\ttitle: `${app.vtranslate('JS_INVALID_FILE_TYPE')}`,\n\t\t\t\ttext: `${app.vtranslate('JS_AVAILABLE_FILE_TYPES')}: ${this.options.formats.join(', ')}`,\n\t\t\t\ttype: 'error'\n\t\t\t});\n\t\t}\n\t\treturn valid;\n\t}\n\n\t/**\n\t * Validate maximum file size\n\t * @param {Object} file\n\t * @returns {Boolean}\n\t */\n\tvalidateSize(file) {\n\t\tlet result = typeof file.size === 'number' && file.size < this.options.maxFileSize;\n\t\tif (!result) {\n\t\t\tapp.showNotify({\n\t\t\t\ttext: `${app.vtranslate('JS_UPLOADED_FILE_SIZE_EXCEEDS')} <br> [${this.options.maxFileSizeDisplay}]`,\n\t\t\t\ttype: 'error'\n\t\t\t});\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * Show limit error\n\t */\n\tshowLimitError() {\n\t\tthis.elements.fileInput.val('');\n\t\tapp.showNotify({\n\t\t\ttext: `${app.vtranslate('JS_FILE_LIMIT')} [${this.options.limit}]`,\n\t\t\ttype: 'error'\n\t\t});\n\t}\n\n\t/**\n\t * Get only valid files from list\n\t *\n\t * @param {Array} files\n\t * @returns {Array}\n\t */\n\tfilterValidFiles(files) {\n\t\tif (files.length + this.files.length > this.options.limit) {\n\t\t\tthis.showLimitError();\n\t\t\treturn [];\n\t\t}\n\t\treturn files.filter((file) => {\n\t\t\treturn this.validateFormat(file) && this.validateSize(file);\n\t\t});\n\t}\n\n\t/**\n\t * Set files hash\n\t * @param {Array} files\n\t * @returns {Array}\n\t */\n\tsetFilesHash(files) {\n\t\tconst addedFiles = [];\n\t\tfor (let i = 0, len = files.length; i < len; i++) {\n\t\t\tconst file = files[i];\n\t\t\tif (typeof file.hash === 'undefined') {\n\t\t\t\tif (this.files.length < this.options.limit) {\n\t\t\t\t\tfile.hash = App.Fields.Text.generateRandomHash(CONFIG.userId);\n\t\t\t\t\tthis.files.push({ hash: file.hash, imageSrc: file.imageSrc, name: file.name, file });\n\t\t\t\t\taddedFiles.push(file);\n\t\t\t\t} else {\n\t\t\t\t\tthis.showLimitError();\n\t\t\t\t\treturn addedFiles;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn addedFiles;\n\t}\n\n\t/**\n\t * Add event handler from jQuery-file-upload\n\t *\n\t * @param {Event} e\n\t * @param {object} data\n\t */\n\tadd(_e, data) {\n\t\tif (data.files.length > 0) {\n\t\t\tdata.submit();\n\t\t}\n\t}\n\n\t/**\n\t * Progressall event handler from jQuery-file-upload\n\t *\n\t * @param {Event} e\n\t * @param {Object} data\n\t */\n\tprogressAll(_e, data) {\n\t\tconst progress = parseInt((data.loaded / data.total) * 100, 10);\n\t\tthis.elements.progressBar.css({ width: progress + '%' });\n\t\tif (progress === 100) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.elements.progress.addClass('d-none');\n\t\t\t\tthis.elements.progressBar.css({ width: '0%' });\n\t\t\t}, 1000);\n\t\t} else {\n\t\t\tthis.elements.progress.removeClass('d-none');\n\t\t}\n\t}\n\n\t/**\n\t * Dragover event handler from jQuery-file-upload\n\t *\n\t * @param {Event} e\n\t */\n\tdragOver(_e) {\n\t\tthis.elements.component.addClass('c-multi-image__drop-effect');\n\t}\n\n\t/**\n\t * Dragleave event handler\n\t * @param {Event} e\n\t */\n\tdragLeave(_e) {\n\t\tthis.elements.component.removeClass('c-multi-image__drop-effect');\n\t}\n\n\t/**\n\t * Download file according to source type (base64/file from server)\n\t *\n\t * @param {String} hash\n\t */\n\tdownload(hash) {\n\t\tconst fileInfo = this.getFileInfo(hash);\n\t\tif (fileInfo.imageSrc.substr(0, 8).toLowerCase() === 'file.php') {\n\t\t\treturn this.downloadFile(hash);\n\t\t} else {\n\t\t\treturn this.downloadBase64(hash);\n\t\t}\n\t}\n\n\t/**\n\t * Download file that exists on the server already\n\t * @param {String} hash\n\t */\n\tdownloadFile(hash) {\n\t\tconst fileInfo = this.getFileInfo(hash);\n\t\tconst link = document.createElement('a');\n\t\t$(link).css('display', 'none');\n\t\tif (typeof link.download === 'string') {\n\t\t\tdocument.body.appendChild(link); // Firefox requires the link to be in the body\n\t\t\tlink.download = fileInfo.name;\n\t\t\tlink.href = fileInfo.imageSrc;\n\t\t\tlink.click();\n\t\t\tdocument.body.removeChild(link); // remove the link when done\n\t\t} else {\n\t\t\tlocation.replace(fileInfo.imageSrc);\n\t\t}\n\t}\n\n\t/**\n\t * Download file from base64 image\n\t *\n\t * @param {String} hash\n\t */\n\tdownloadBase64(hash) {\n\t\tconst fileInfo = this.getFileInfo(hash);\n\t\tconst imageUrl =\n\t\t\t`data:application/octet-stream;filename=${fileInfo.name};base64,` + fileInfo.imageSrc.split(',')[1];\n\t\tconst link = document.createElement('a');\n\t\t$(link).css('display', 'none');\n\t\tif (typeof link.download === 'string') {\n\t\t\tdocument.body.appendChild(link); // Firefox requires the link to be in the body\n\t\t\tlink.download = fileInfo.name;\n\t\t\tlink.href = imageUrl;\n\t\t\tlink.click();\n\t\t\tdocument.body.removeChild(link); // remove the link when done\n\t\t} else {\n\t\t\tlocation.replace(imageUrl);\n\t\t}\n\t}\n\n\t/**\n\t * Display modal window with large preview\n\t *\n\t * @param {string} hash\n\t */\n\tzoomPreview(hash) {\n\t\tconst self = this;\n\t\tlet fileInfo = this.getFileInfo(hash);\n\t\tconst titleTemplate = () => {\n\t\t\tconst titleObject = document.createElement('span');\n\t\t\tconst icon = document.createElement('i');\n\t\t\ticon.setAttribute('class', `fa fa-image`);\n\t\t\ttitleObject.appendChild(icon);\n\t\t\ttitleObject.appendChild(document.createTextNode(` ${fileInfo.name}`));\n\t\t\treturn titleObject.innerHTML;\n\t\t};\n\n\t\tlet buttons = [];\n\t\tif (!self.detailView) {\n\t\t\tbuttons.push({\n\t\t\t\ttext: app.vtranslate('JS_DELETE'),\n\t\t\t\ticon: 'fa fa-trash-alt',\n\t\t\t\tclass: 'float-left btn btn-danger js-delete'\n\t\t\t});\n\t\t}\n\t\tbuttons.push(\n\t\t\t{\n\t\t\t\ttext: app.vtranslate('JS_DOWNLOAD'),\n\t\t\t\ticon: 'fa fa-download',\n\t\t\t\tclass: 'float-left btn btn-success js-success'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: app.vtranslate('JS_CLOSE'),\n\t\t\t\ticon: 'fa fa-times',\n\t\t\t\tclass: 'btn btn-warning',\n\t\t\t\tdata: { dismiss: 'modal' }\n\t\t\t}\n\t\t);\n\t\tapp.showModalHtml({\n\t\t\tclass: 'modal-lg',\n\t\t\theader: titleTemplate(),\n\t\t\tfooterButtons: buttons,\n\t\t\tbody: self.options.showCarousel\n\t\t\t\t? self.generateCarousel(hash)\n\t\t\t\t: `<img src=\"${fileInfo.imageSrc}\" class=\"w-100\" />`,\n\t\t\tcb: (modal) => {\n\t\t\t\tmodal.on('click', '.js-delete', function () {\n\t\t\t\t\tself.deleteFile(fileInfo.hash);\n\t\t\t\t\tapp.hideModalWindow();\n\t\t\t\t});\n\t\t\t\tmodal.on('click', '.js-success', function () {\n\t\t\t\t\tself.download(fileInfo.hash);\n\t\t\t\t\tapp.hideModalWindow();\n\t\t\t\t});\n\t\t\t\tif (self.options.showCarousel) {\n\t\t\t\t\tmodal.find(`#carousel-${hash}`).on('slid.bs.carousel', (e) => {\n\t\t\t\t\t\tfileInfo = self.getFileInfo($(e.relatedTarget).data('hash'));\n\t\t\t\t\t\tmodal.find('.js-modal-title').html(titleTemplate());\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Remove file from preview and from file list\n\t *\n\t * @param {String} hash\n\t */\n\tdeleteFileCallback(hash) {\n\t\tconst fileInfo = this.getFileInfo(hash);\n\t\tif (fileInfo.previewElement) {\n\t\t\tfileInfo.previewElement.popover('dispose').remove();\n\t\t}\n\t\tthis.files = this.files.filter((file) => file.hash !== fileInfo.hash);\n\t\tthis.updateFormValues();\n\t}\n\n\t/**\n\t * Delete image from input field\n\t * Should be called with this pointing on button element with data-hash attribute\n\t *\n\t * @param {string} hash\n\t * @param {boolean} showConfirmation - dialog?\n\t */\n\tdeleteFile(hash, showConfirmation = true) {\n\t\tif (showConfirmation) {\n\t\t\tconst fileInfo = this.getFileInfo(hash);\n\t\t\tapp.showConfirmModal({\n\t\t\t\ttitle: fileInfo.name,\n\t\t\t\ttext: app.vtranslate('JS_DELETE_FILE_CONFIRMATION'),\n\t\t\t\ttitleTrusted: false,\n\t\t\t\ticon: 'fa fa-trash-alt',\n\t\t\t\tconfirmedCallback: () => {\n\t\t\t\t\tthis.deleteFileCallback(hash);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthis.deleteFileCallback(hash);\n\t\t}\n\t}\n\n\t/**\n\t * File change event handler from jQuery-file-upload\n\t *\n\t * @param {Event} e\n\t * @param {object} data\n\t */\n\tchange(e, data) {\n\t\tdata.files = this.filterValidFiles(data.files);\n\t\tdata.files = this.setFilesHash(data.files);\n\t\tthis.dragLeave(e);\n\t}\n\n\t/**\n\t * Generate and apply popover to preview\n\t *\n\t * @param {File} file\n\t * @param {string} template\n\t * @param {string} imageSrc\n\t * @returns {jQuery}\n\t */\n\taddPreviewPopover(file, template, imageSrc) {\n\t\tconst thisInstance = this;\n\t\tlet fileSize = '';\n\t\tconst fileInfo = this.getFileInfo(file.hash);\n\t\tlet size = fileInfo.sizeDisplay || fileInfo.size;\n\t\tif (size) {\n\t\t\tfileSize = `<div class=\"p-1 bg-white border rounded small position-absolute\">${size}</div>`;\n\t\t}\n\t\tlet deleteBtn = '';\n\t\tif (!this.detailView) {\n\t\t\tdeleteBtn = `<button class=\"btn btn-sm btn-danger c-btn-collapsible js-multi-image__popover-btn-delete\" type=\"button\" data-hash=\"${\n\t\t\t\tfile.hash\n\t\t\t}\" data-js=\"click\"><i class=\"fa fa-trash-alt\"></i> <span class=\"c-btn-collapsible__text\">${app.vtranslate(\n\t\t\t\t'JS_DELETE'\n\t\t\t)}</span></button>`;\n\t\t}\n\n\t\tconst titleObject = document.createElement('span');\n\t\ttitleObject.appendChild(document.createTextNode(fileInfo.name));\n\n\t\treturn $(template).popover({\n\t\t\tcontainer: thisInstance.elements.component,\n\t\t\ttitle: `<div class=\"u-text-ellipsis\"><i class=\"fa fa-image\"></i> ` + titleObject.innerHTML + `</div>`,\n\t\t\thtml: true,\n\t\t\tsanitize: false,\n\t\t\ttrigger: 'focus',\n\t\t\tplacement: 'top',\n\t\t\tcontent: `<img src=\"${imageSrc}\" class=\"w-100 js-multi-image__popover-img c-multi-image__popover-img\" data-hash=\"${file.hash}\" data-js=\"click\"/>`,\n\t\t\ttemplate: `<div class=\"popover\" role=\"tooltip\">\n\t\t\t\t<div class=\"arrow\"></div>\n\t\t\t\t<h3 class=\"popover-header\"></h3>\n\t\t\t\t<div class=\"popover-body\"></div>\n\t\t\t\t<div class=\"text-right popover-footer js-multi-image__popover-actions\">\n\t\t\t\t\t${fileSize}\n\t\t\t\t\t${deleteBtn}\n\t\t\t\t\t<button class=\"btn btn-sm btn-success c-btn-collapsible js-multi-image__popover-btn-download\" type=\"button\" data-hash=\"${\n\t\t\t\t\t\tfile.hash\n\t\t\t\t\t}\" data-js=\"click\"><i class=\"fa fa-download\"></i> <span class=\"c-btn-collapsible__text\">${app.vtranslate(\n\t\t\t\t'JS_DOWNLOAD'\n\t\t\t)}</span></button>\n\t\t\t\t\t<button class=\"btn btn-sm btn-primary c-btn-collapsible js-multi-image__popover-btn-zoom\" type=\"button\" data-hash=\"${\n\t\t\t\t\t\tfile.hash\n\t\t\t\t\t}\" data-js=\"click\"><i class=\"fa fa-search-plus\"></i> <span class=\"c-btn-collapsible__text\">${app.vtranslate(\n\t\t\t\t'JS_ZOOM_IN'\n\t\t\t)}</span></button>\n\t\t\t\t</div>\n\t\t\t</div>`\n\t\t});\n\t}\n\n\t/**\n\t * Remove preview popover\n\t *\n\t * @param {String} hash\n\t */\n\tremovePreviewPopover(hash) {\n\t\tconst fileInfo = this.getFileInfo(hash);\n\t\tif (typeof fileInfo.previewElement !== 'undefined') {\n\t\t\tfileInfo.previewElement.popover('dispose');\n\t\t}\n\t}\n\n\t/**\n\t * Hide popovers when user starts moving file preview\n\t *\n\t * @param {Event} e\n\t * @param {Object} ui\n\t */\n\tsortOver(_e, _ui) {\n\t\tthis.elements.result.find('.js-multi-image__preview').popover('hide');\n\t}\n\n\t/**\n\t * Update file position according to elements order\n\t *\n\t * @param {Event} e\n\t * @param {Object} ui\n\t */\n\tsortStop(_e, _ui) {\n\t\tconst actualElements = this.elements.result.find('.js-multi-image__preview').toArray();\n\t\tthis.files = actualElements.map((element) => {\n\t\t\tfor (let i = 0, len = this.files.length; i < len; i++) {\n\t\t\t\tconst elementHash = $(element).data('hash');\n\t\t\t\tif (this.files[i].hash === elementHash) {\n\t\t\t\t\treturn this.files[i];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tthis.redraw();\n\t}\n\n\t/**\n\t * Redraw view according to in-memory positions\n\t */\n\tredraw() {\n\t\tthis.files.forEach((file) => {\n\t\t\tthis.elements.result.append(file.previewElement);\n\t\t});\n\t\tthis.updateFormValues();\n\t}\n\n\t/**\n\t * Enable drag and drop files repositioning\n\t */\n\tenableDragNDrop() {\n\t\tthis.elements.result\n\t\t\t.sortable({\n\t\t\t\thandle: '.js-multi-image__preview-img',\n\t\t\t\titems: '.js-multi-image__preview',\n\t\t\t\tover: this.sortOver.bind(this),\n\t\t\t\tstop: this.sortStop.bind(this)\n\t\t\t})\n\t\t\t.disableSelection()\n\t\t\t.on('mousedown', '.js-multi-image__preview-img', function () {\n\t\t\t\tthis.focus(); // focus to show popover\n\t\t\t});\n\t}\n\n\t/**\n\t * Generate preview of images and append to multi image results view\n\t *\n\t * @param {Array} files - array of Files\n\t * @param {function} callback\n\t */\n\tgeneratePreviewElements(files, callback) {\n\t\tlet preview = (file, template, imageSrc) => {\n\t\t\tfile.preview = this.addPreviewPopover(file, template, imageSrc);\n\t\t\tthis.addFileInfoProperty(file.hash, 'previewElement', file.preview);\n\t\t\tcallback(file.preview);\n\t\t};\n\t\tfiles.forEach((file) => {\n\t\t\tif (file instanceof File) {\n\t\t\t\tthis.generatePreviewFromFile(file, (template, imageSrc) => {\n\t\t\t\t\tpreview(file, template, imageSrc);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.generatePreviewFromValue(file, (template, imageSrc) => {\n\t\t\t\t\tpreview(file, template, imageSrc);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Generate preview of image as html string\n\t *\n\t * @param {File} file\n\t * @param {function} callback\n\t */\n\tgeneratePreviewFromFile(file, callback) {\n\t\tconst fr = new FileReader();\n\t\tfr.onload = () => {\n\t\t\tfile.imageSrc = fr.result;\n\t\t\tthis.addFileInfoProperty(file.hash, 'imageSrc', file.imageSrc);\n\t\t\tcallback(this.createPreview(file), fr.result);\n\t\t};\n\t\tfr.readAsDataURL(file);\n\t}\n\n\t/**\n\t * Generate preview of image as html string from existing values\n\t *\n\t * @param {File} file\n\t * @param {function} callback\n\t */\n\tgeneratePreviewFromValue(file, callback) {\n\t\tcallback(this.createPreview(file), file.imageSrc);\n\t}\n\t/**\n\t * Create Preview element\n\t * @param {Object} file\n\t * @returns {String}\n\t */\n\tcreatePreview(file) {\n\t\tconst container = document.createElement('div');\n\t\tconst item = document.createElement('div');\n\t\titem.setAttribute('class', 'd-inline-block mr-1 js-multi-image__preview');\n\t\titem.setAttribute('id', `js-multi-image__preview-hash-${file.hash}`);\n\t\titem.setAttribute('data-hash', file.hash);\n\n\t\tconst subElement = document.createElement('div');\n\t\tsubElement.setAttribute('class', 'img-thumbnail js-multi-image__preview-img c-multi-image__preview-img');\n\t\tsubElement.setAttribute('data-hash', file.hash);\n\t\tsubElement.setAttribute('style', `background-image:url(${file.imageSrc})`);\n\t\tsubElement.setAttribute('tabindex', '0');\n\t\tsubElement.setAttribute('title', file.name);\n\t\titem.appendChild(subElement);\n\t\tcontainer.appendChild(item);\n\n\t\treturn container.innerHTML;\n\t}\n\n\t/**\n\t * Load files that were in valueInput as json string\n\t */\n\tloadExistingFiles() {\n\t\tthis.files = this.files\n\t\t\t.map((file) => {\n\t\t\t\tfile.hash = App.Fields.Text.generateRandomHash(CONFIG.userId);\n\t\t\t\treturn file;\n\t\t\t})\n\t\t\t.slice(0, this.options.limit);\n\t\tthis.generatePreviewElements(this.files, (element) => {\n\t\t\tthis.elements.result.append(element);\n\t\t});\n\t\tthis.updateFormValues();\n\t}\n\n\t/**\n\t * Generate carousel for all files in large preview\n\t *\n\t * @param {String} hash\n\t */\n\tgenerateCarousel(hash) {\n\t\tif (this.files.length <= 1) {\n\t\t\tconst fileInfo = this.getFileInfo(hash);\n\t\t\treturn `<img class=\"d-block w-100\" src=\"${fileInfo.imageSrc}\">`;\n\t\t}\n\t\tlet template = `<div id=\"carousel-${hash}\" class=\"carousel slide c-carousel\" data-ride=\"carousel\" data-js=\"container\">\n\t\t  <div class=\"carousel-inner\">`;\n\t\tthis.files.forEach((file) => {\n\t\t\ttemplate += `<div class=\"carousel-item c-carousel__item`;\n\t\t\tif (file.hash === hash) {\n\t\t\t\ttemplate += ` active`;\n\t\t\t}\n\t\t\ttemplate += `\" data-hash=\"${file.hash}\">\n\t\t      <img class=\"d-block w-100 c-carousel__image\" src=\"${file.imageSrc}\">\n\t\t    </div>`;\n\t\t});\n\t\ttemplate += `<a class=\"carousel-control-prev c-carousel__prevnext-btn c-carousel__prev-btn\" href=\"#carousel-${hash}\" role=\"button\" data-slide=\"prev\" data-js=\"click\">\n\t\t    <span class=\"fas fa-caret-left fa-2x c-carousel__prev-icon mr-1\" aria-hidden=\"true\"></span>\n\t\t  </a>\n\t\t  <a class=\"carousel-control-next c-carousel__prevnext-btn c-carousel__next-btn\" href=\"#carousel-${hash}\" role=\"button\" data-slide=\"next\" data-js=\"click\">\n\t\t    <span class=\"fas fa-caret-right fa-2x c-carousel__next-icon ml-1\" aria-hidden=\"true\"></span>\n\t\t  </a>\n\t\t</div>`;\n\t\treturn template;\n\t}\n}\n"],"names":["_typeof","o","Symbol","iterator","constructor","prototype","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","i","length","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","protoProps","staticProps","arg","_toPrimitive","String","input","hint","prim","toPrimitive","res","call","Number","MultiImage","element","thisInstance","elements","options","showCarousel","detailView","fileInput","find","eq","component","form","closest","$","on","onFormSubmit","addButton","values","progressBar","progress","result","fieldInfo","data","formats","limit","maxFileSize","CONFIG","maxUploadLimit","maxFileSizeDisplay","files","JSON","parse","val","detach","click","addButtonClick","bind","fileupload","dataType","replaceFileInput","autoUpload","submit","add","progressall","progressAll","change","drop","dragover","dragOver","fail","uploadError","done","uploadSuccess","dragLeave","enableDragNDrop","zoomPreview","e","preventDefault","download","deleteFile","loadExistingFiles","value","App","Fields","currentFileUploads","stopPropagation","stopImmediatePropagation","app","showAlert","vtranslate","trigger","_e","formData","hash","progressInstance","progressIndicator","position","blockInfo","enabled","elementToBlock","getFileInfo","file","len","errorLog","concat","showNotify","text","type","addFileInfoProperty","propertyName","fileInfo","_this","mode","jqXHR","response","responseJSON","attach","Array","isArray","forEach","fileAttach","error","textTrusted","title","name","updateFormValues","_this2","Error","info","size","sizeDisplay","generatePreviewFromFile","template","imageSrc","addPreviewPopover","redraw","formValues","map","stringify","validateFormat","valid","format","join","validateSize","showLimitError","filterValidFiles","_this3","filter","setFilesHash","addedFiles","Text","generateRandomHash","userId","push","_this4","parseInt","loaded","total","css","width","setTimeout","addClass","removeClass","substr","toLowerCase","downloadFile","downloadBase64","link","document","createElement","body","appendChild","href","removeChild","location","replace","imageUrl","split","self","titleTemplate","titleObject","icon","setAttribute","createTextNode","innerHTML","buttons","class","dismiss","showModalHtml","header","footerButtons","generateCarousel","cb","modal","hideModalWindow","relatedTarget","html","deleteFileCallback","previewElement","popover","remove","_this5","showConfirmation","arguments","showConfirmModal","titleTrusted","confirmedCallback","fileSize","deleteBtn","container","sanitize","placement","content","removePreviewPopover","sortOver","sortStop","_this6","actualElements","toArray","elementHash","_this7","append","sortable","handle","items","over","stop","disableSelection","focus","generatePreviewElements","callback","_this8","preview","File","generatePreviewFromValue","_this9","fr","FileReader","onload","createPreview","readAsDataURL","item","subElement","_this10","slice"],"mappings":"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"}