{"version":3,"file":"app/form.elements.file-uni.js","sources":["form.elements.file-uni.js"],"sourcesContent":["/*----------------------------------------------------------------------------*\\\r\n FORM.ELEMENTS.FILE-UNI\r\n Simple file custom upload API\r\n\\*----------------------------------------------------------------------------*/\r\n\r\n/**\r\n * Use strict as per:\r\n * http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/\r\n */\r\n'use strict';\r\n\r\n\r\n/**\r\n * Check if oy object exists, otherwise create it\r\n */\r\nvar oy = oy || {};\r\n\r\nvar uploadUrl ='';\r\n\r\n/**\r\n * Jshint global references\r\n * Please define all third party plugins that you use to not break jshinting\r\n */\r\n\r\n/*global plupload */\r\n\r\n\r\n\r\n/* Component\r\n\\*----------------------------------------------------------------------------*/\r\n\r\noy.form.elements.fileUni = {\r\n\r\n init: function (onUploadedCallback) {\r\n if (oy.cutsMustard) {\r\n this.initElements(document, onUploadedCallback);\r\n }\r\n },\r\n\r\n changeUploadUrl(newUrl){\r\n uploadUrl = newUrl;\r\n },\r\n\r\n initElements: function ($context, onUploadedCallback) {\r\n var self = this;\r\n var $elements = $context.querySelectorAll('.js--file-uni');\r\n\r\n for (var i = 0; i < $elements.length; ++i) {\r\n var $element = $elements[i];\r\n self.setupElement($element, onUploadedCallback);\r\n }\r\n },\r\n\r\n setupElement: function ($context, onUploadedCallback) {\r\n var $button = $context.querySelector('.js--file-uni__button');\r\n var $wrap = $context.querySelector('.js--file-uni__wrap');\r\n var uploader = new plupload.Uploader({\r\n browse_button : $button, // eslint-disable-line camelcase\r\n container: $context,\r\n max_file_size : '50mb', // eslint-disable-line camelcase\r\n multi_selection: false, // eslint-disable-line camelcase\r\n url : $context.dataset.pluploadUrl,\r\n filters : [\r\n {title : 'Image files', extensions : 'jpg,jpeg,png'}\r\n ],\r\n init : {\r\n FilesAdded: function(up, files) {\r\n plupload.each(files, function(file) {\r\n if (up.files.length > 1) {\r\n up.removeFile(file);\r\n }\r\n });\r\n if (up.files.length >= 1) {\r\n $context.classList.add('is-uploading');\r\n }\r\n },\r\n FilesRemoved: function(up) {\r\n if (up.files.length < 1) {\r\n $context.classList.remove('is-uploading');\r\n }\r\n }\r\n },\r\n multipart: true\r\n });\r\n\r\n uploader.bind('Init', function() {\r\n $context.classList.add('is-initialised');\r\n $button.removeAttribute('disabled');\r\n $wrap.innerHTML = '';\r\n });\r\n\r\n uploader.bind('FilesAdded', function(up, files) {\r\n $context.classList.add('is-uploading');\r\n for (var i in files) {\r\n $wrap.innerHTML = '