{"version":3,"file":"help.min.js","mappings":"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","sources":["webpack://ecommerce/./src/config/config.inwild.js","webpack://ecommerce/./src/config/config.js","webpack://ecommerce/./src/config/config.production.inwild.js","webpack://ecommerce/./src/config/config.production.js","webpack://ecommerce/./src/config/config.production.runkd.js","webpack://ecommerce/./src/config/config.runkd.js","webpack://ecommerce/./src/config/config.staging.inwild.js","webpack://ecommerce/./src/config/config.staging.js","webpack://ecommerce/./src/config/config.staging.runkd.js","webpack://ecommerce/./src/config/index.js","webpack://ecommerce/./src/common/common.js","webpack://ecommerce/./node_modules/i18next/dist/es/logger.js","webpack://ecommerce/./node_modules/i18next/dist/es/EventEmitter.js","webpack://ecommerce/./node_modules/i18next/dist/es/utils.js","webpack://ecommerce/./node_modules/i18next/dist/es/ResourceStore.js","webpack://ecommerce/./node_modules/i18next/dist/es/postProcessor.js","webpack://ecommerce/./node_modules/i18next/dist/es/Translator.js","webpack://ecommerce/./node_modules/i18next/dist/es/LanguageUtils.js","webpack://ecommerce/./node_modules/i18next/dist/es/PluralResolver.js","webpack://ecommerce/./node_modules/i18next/dist/es/Interpolator.js","webpack://ecommerce/./node_modules/i18next/dist/es/BackendConnector.js","webpack://ecommerce/./node_modules/i18next/dist/es/defaults.js","webpack://ecommerce/./node_modules/i18next/dist/es/i18next.js","webpack://ecommerce/./src/common/translateService.js","webpack://ecommerce/./node_modules/i18next/dist/es/index.js","webpack://ecommerce/./src/components/imageUploader.js","webpack://ecommerce/./src/help/helpUploader.js","webpack://ecommerce/./src/help.js","webpack://ecommerce/./wwwroot/js/modernizr-custom-mq.js","webpack://ecommerce/./node_modules/fine-uploader/fine-uploader/fine-uploader.js","webpack://ecommerce/./node_modules/fine-uploader/lib/traditional.js","webpack://ecommerce/./node_modules/jquery-validation/dist/jquery.validate.js","webpack://ecommerce/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://ecommerce/webpack/bootstrap","webpack://ecommerce/webpack/runtime/chunk loaded","webpack://ecommerce/webpack/runtime/compat get default export","webpack://ecommerce/webpack/runtime/define property getters","webpack://ecommerce/webpack/runtime/global","webpack://ecommerce/webpack/runtime/hasOwnProperty shorthand","webpack://ecommerce/webpack/runtime/make namespace object","webpack://ecommerce/webpack/runtime/node module decorator","webpack://ecommerce/webpack/runtime/jsonp chunk loading","webpack://ecommerce/webpack/startup"],"sourcesContent":["module.exports = {\r\n debug: true,\r\n realtime: {\r\n tokenUrl: 'http://localhost/JSport.RealtimeServiceWeb/api/Token',\r\n paymentHubUrl: 'http://localhost/JSport.RealtimeServiceWeb/paymenthub',\r\n username: 'Admin',\r\n password: 'SignalR2020',\r\n },\r\n useCdn: false,\r\n cdnImagesUrl: 'https://d26ztvr3v93474.cloudfront.net',\r\n cdnImagesFallbackUrl: 'https://sync.inwild.com:4433',\r\n cdnCmsAssetsUrl: 'https://d19sv9e4y8qwzh.cloudfront.net',\r\n supportedCultures: () => [\r\n 'it-IT',\r\n 'es-ES',\r\n 'fr-FR',\r\n 'en-GB',\r\n 'en-US',\r\n 'de-DE',\r\n ],\r\n cms: {\r\n cmsUrl: 'http://localhost:1339',\r\n },\r\n tracingUrl:\r\n 'https://6f569c242a3a4173b354adf56020c011@o245932.ingest.sentry.io/5905368',\r\n};\r\n","module.exports = {\r\n debug: true,\r\n realtime: {\r\n tokenUrl: 'http://localhost/JSport.RealtimeServiceWeb/api/Token',\r\n paymentHubUrl: 'http://localhost/JSport.RealtimeServiceWeb/paymenthub',\r\n username: 'Admin',\r\n password: 'SignalR2020',\r\n },\r\n useCdn: false,\r\n cdnImagesUrl: 'https://d3n8mmvj9ns1ml.cloudfront.net',\r\n cdnImagesFallbackUrl: 'https://sync.lordgunbicycles.com:4433',\r\n cdnCmsAssetsUrl: 'https://d2umopxfu128sk.cloudfront.net',\r\n supportedCultures: () => [\r\n 'it-IT',\r\n 'es-ES',\r\n 'fr-FR',\r\n 'en-GB',\r\n 'en-US',\r\n 'de-DE',\r\n 'en-AU',\r\n 'ko-KR',\r\n ],\r\n cms: {\r\n cmsUrl: 'http://localhost:1337',\r\n },\r\n tracingUrl:\r\n 'https://6f569c242a3a4173b354adf56020c011@o245932.ingest.sentry.io/5905368',\r\n};\r\n","module.exports = {\r\n debug: false,\r\n realtime: {\r\n tokenUrl: 'https://api.inwild.com/realtime/api/Token',\r\n paymentHubUrl: 'https://api.inwild.com/realtime/paymenthub',\r\n username: 'Admin',\r\n password: 'SignalR2020',\r\n },\r\n useCdn: true,\r\n cdnImagesUrl: 'https://d26ztvr3v93474.cloudfront.net',\r\n cdnImagesFallbackUrl: 'https://sync.inwild.com:4433',\r\n cdnCmsAssetsUrl: 'https://d19sv9e4y8qwzh.cloudfront.net',\r\n supportedCultures: () => [\r\n 'it-IT',\r\n 'es-ES',\r\n 'fr-FR',\r\n 'en-GB',\r\n 'en-US',\r\n 'de-DE',\r\n ],\r\n cms: {\r\n cmsUrl: 'https://news.inwild.com',\r\n },\r\n tracingUrl:\r\n 'https://6f569c242a3a4173b354adf56020c011@o245932.ingest.sentry.io/5905368',\r\n};\r\n","module.exports = {\r\n debug: false,\r\n realtime: {\r\n tokenUrl: 'https://api.lordgunbicycles.com/realtime/api/Token',\r\n paymentHubUrl: 'https://api.lordgunbicycles.com/realtime/paymenthub',\r\n username: 'Admin',\r\n password: 'SignalR2020',\r\n },\r\n useCdn: true,\r\n cdnImagesUrl: 'https://d3n8mmvj9ns1ml.cloudfront.net',\r\n cdnImagesFallbackUrl: 'https://sync.lordgunbicycles.com:4433',\r\n cdnCmsAssetsUrl: 'https://d2umopxfu128sk.cloudfront.net',\r\n supportedCultures: () => [\r\n 'it-IT',\r\n 'es-ES',\r\n 'fr-FR',\r\n 'en-GB',\r\n 'en-US',\r\n 'de-DE',\r\n 'en-AU',\r\n 'ko-KR',\r\n ],\r\n cms: {\r\n cmsUrl: 'https://news.lordgun.com',\r\n },\r\n tracingUrl:\r\n 'https://6f569c242a3a4173b354adf56020c011@o245932.ingest.sentry.io/5905368',\r\n};\r\n","module.exports = {\r\n debug: false,\r\n realtime: {\r\n tokenUrl: 'https://api.runkd.com/realtime/api/Token',\r\n paymentHubUrl: 'https://api.runkd.com/realtime/paymenthub',\r\n username: 'Admin',\r\n password: 'SignalR2020',\r\n },\r\n useCdn: true,\r\n cdnImagesUrl: 'https://dufrl78eaxiu3.cloudfront.net',\r\n cdnImagesFallbackUrl: 'https://sync.runkd.com:4433',\r\n cdnCmsAssetsUrl: 'https://d218t1pkbrmetd.cloudfront.net',\r\n supportedCultures: () => [\r\n 'it-IT',\r\n 'es-ES',\r\n 'fr-FR',\r\n 'en-GB',\r\n 'en-US',\r\n 'de-DE',\r\n ],\r\n cms: {\r\n cmsUrl: 'https://news.runkd.com',\r\n },\r\n tracingUrl:\r\n 'https://6f569c242a3a4173b354adf56020c011@o245932.ingest.sentry.io/5905368',\r\n};\r\n","module.exports = {\r\n debug: true,\r\n realtime: {\r\n tokenUrl: 'http://localhost/JSport.RealtimeServiceWeb/api/Token',\r\n paymentHubUrl: 'http://localhost/JSport.RealtimeServiceWeb/paymenthub',\r\n username: 'Admin',\r\n password: 'SignalR2020',\r\n },\r\n useCdn: false,\r\n cdnImagesUrl: 'https://dufrl78eaxiu3.cloudfront.net',\r\n cdnImagesFallbackUrl: 'https://sync.runkd.com:4433',\r\n cdnCmsAssetsUrl: 'https://d218t1pkbrmetd.cloudfront.net',\r\n supportedCultures: () => [\r\n 'it-IT',\r\n 'es-ES',\r\n 'fr-FR',\r\n 'en-GB',\r\n 'en-US',\r\n 'de-DE',\r\n ],\r\n cms: {\r\n cmsUrl: 'http://localhost:1338',\r\n },\r\n tracingUrl:\r\n 'https://6f569c242a3a4173b354adf56020c011@o245932.ingest.sentry.io/5905368',\r\n};\r\n","module.exports = {\r\n debug: true,\r\n realtime: {\r\n tokenUrl: 'https://staging.lordgunbicycles.com/inwild/webapi/realtime/api/Token',\r\n paymentHubUrl: 'https://staging.lordgunbicycles.com/inwild/webapi/realtime/paymenthub',\r\n username: 'Admin',\r\n password: 'SignalR2020',\r\n },\r\n useCdn: false,\r\n cdnImagesUrl: 'https://d26ztvr3v93474.cloudfront.net',\r\n cdnImagesFallbackUrl: 'https://sync.inwild.com:4433',\r\n cdnCmsAssetsUrl: 'https://d19sv9e4y8qwzh.cloudfront.net',\r\n supportedCultures: () => [\r\n 'it-IT',\r\n 'es-ES',\r\n 'fr-FR',\r\n 'en-GB',\r\n 'en-US',\r\n 'de-DE',\r\n ],\r\n cms: {\r\n cmsUrl: 'https://lnxtest.lordgunbicycles.com',\r\n },\r\n tracingUrl:\r\n 'https://6f569c242a3a4173b354adf56020c011@o245932.ingest.sentry.io/5905368',\r\n};\r\n","module.exports = {\r\n debug: true,\r\n realtime: {\r\n tokenUrl: 'https://staging.lordgunbicycles.com/webapi/realtime/api/Token',\r\n paymentHubUrl: 'https://staging.lordgunbicycles.com/webapi/realtime/paymenthub',\r\n username: 'Admin',\r\n password: 'SignalR2020',\r\n },\r\n useCdn: false,\r\n cdnImagesUrl: 'https://d3n8mmvj9ns1ml.cloudfront.net',\r\n cdnImagesFallbackUrl: 'https://sync.lordgunbicycles.com:4433',\r\n cdnCmsAssetsUrl: 'https://d2umopxfu128sk.cloudfront.net',\r\n supportedCultures: () => [\r\n 'it-IT',\r\n 'es-ES',\r\n 'fr-FR',\r\n 'en-GB',\r\n 'en-US',\r\n 'de-DE',\r\n 'en-AU',\r\n 'ko-KR',\r\n ],\r\n cms: {\r\n cmsUrl: 'https://lnxtest.lordgunbicycles.com',\r\n },\r\n tracingUrl:\r\n 'https://6f569c242a3a4173b354adf56020c011@o245932.ingest.sentry.io/5905368',\r\n};\r\n","module.exports = {\r\n debug: true,\r\n realtime: {\r\n tokenUrl: 'https://staging.lordgunbicycles.com/runkd/webapi/realtime/api/Token',\r\n paymentHubUrl: 'https://staging.lordgunbicycles.com/runkd/webapi/realtime/paymenthub',\r\n username: 'Admin',\r\n password: 'SignalR2020',\r\n },\r\n useCdn: false,\r\n cdnImagesUrl: 'https://dufrl78eaxiu3.cloudfront.net',\r\n cdnImagesFallbackUrl: 'https://sync.runkd.com:4433',\r\n cdnCmsAssetsUrl: 'https://d218t1pkbrmetd.cloudfront.net',\r\n supportedCultures: () => [\r\n 'it-IT',\r\n 'es-ES',\r\n 'fr-FR',\r\n 'en-GB',\r\n 'en-US',\r\n 'de-DE',\r\n ],\r\n cms: {\r\n cmsUrl: 'https://lnxtest.lordgunbicycles.com',\r\n },\r\n tracingUrl:\r\n 'https://6f569c242a3a4173b354adf56020c011@o245932.ingest.sentry.io/5905368',\r\n};\r\n","const config_lordgun = require('./config');\r\nconst config_staging_lordgun = require('./config.staging');\r\nconst config_production_lordgun = require('./config.production');\r\n// RUNKD\r\nconst config_runkd = require('./config.runkd');\r\nconst config_staging_runkd = require('./config.staging.runkd');\r\nconst config_production_runkd = require('./config.production.runkd');\r\n// INWILD\r\nconst config_inwild = require('./config.inwild');\r\nconst config_staging_inwild = require('./config.staging.inwild');\r\nconst config_production_inwild = require('./config.production.inwild');\r\n\r\nconst config = {\r\n lordgun: {\r\n development: config_lordgun,\r\n staging: config_staging_lordgun,\r\n production: config_production_lordgun,\r\n },\r\n runkd: {\r\n development: config_runkd,\r\n staging: config_staging_runkd,\r\n production: config_production_runkd,\r\n },\r\n inwild: {\r\n development: config_inwild,\r\n staging: config_staging_inwild,\r\n production: config_production_inwild,\r\n },\r\n};\r\n\r\nconst isEnvironmentSet =\r\n NODE_ENV !== null && NODE_ENV !== undefined && NODE_ENV !== '';\r\n\r\nlet environment = isEnvironmentSet\r\n ? NODE_ENV.toLowerCase().trim()\r\n : 'production';\r\n\r\nlet configObj = {\r\n getConfig: () => config[SITE.toLowerCase()][environment],\r\n};\r\n\r\nmodule.exports = configObj;\r\n","const configHelper = require('../config/index');\r\nimport { reduce, replace, isNil, some, startsWith, isEmpty } from 'lodash';\r\n\r\nrequire('../../wwwroot/js/modernizr-custom-mq.js');\r\nconst trimTrailingSlash = (virtualdir = '') => {\r\n return virtualdir.length > 0 && virtualdir[virtualdir.length - 1] === '/'\r\n ? virtualdir.slice(0, virtualdir.length - 1)\r\n : virtualdir;\r\n};\r\nconst getSiteUrl = (virtualdir = window.$pathBase) => {\r\n if (virtualdir === undefined) {\r\n throw new Error(\r\n 'common.getSiteUrl: virtualdir undefined. Should be emtpy or set.'\r\n );\r\n }\r\n if (window.location.port === '') {\r\n return trimTrailingSlash(\r\n window.location.protocol +\r\n '//' +\r\n window.location.hostname +\r\n virtualdir\r\n );\r\n }\r\n return trimTrailingSlash(\r\n window.location.protocol +\r\n '//' +\r\n window.location.hostname +\r\n ':' +\r\n window.location.port +\r\n virtualdir\r\n );\r\n};\r\nconst getSiteCommercialName = () => {\r\n const siteName = {\r\n lordgun: 'LordGun',\r\n runkd: 'RUNKD',\r\n inwild: 'INWILD',\r\n };\r\n return siteName[SITE.toLowerCase()];\r\n};\r\nconst contentFromCdn = ({ path, keepUrlAsIs }) => {\r\n try {\r\n if (keepUrlAsIs === true) {\r\n return path;\r\n }\r\n const config = configHelper.getConfig();\r\n const { useCdn, cdnImagesUrl, cdnImagesFallbackUrl, cms } = config;\r\n\r\n if (cms && cms.cmsUrl && !isNil(cms.cmsUrl) && !isEmpty(cms.cmsUrl)) {\r\n if (startsWith(path, cms.cmsUrl)) {\r\n return path;\r\n }\r\n }\r\n\r\n if (some([useCdn, cdnImagesUrl, cdnImagesFallbackUrl], isNil)) {\r\n throw new Error('Some config for contentFromCdn is missing');\r\n }\r\n let transformedPath = replace(path.toLowerCase(), '~', '');\r\n transformedPath = replace(\r\n transformedPath,\r\n '/content/products',\r\n '/products'\r\n );\r\n transformedPath = replace(transformedPath, '/content/kits', '/kits');\r\n transformedPath = replace(transformedPath, '/content/img/', '/img/');\r\n transformedPath = replace(transformedPath, '/content/img', '/img');\r\n transformedPath = replace(transformedPath, 'content/img/', '/img/');\r\n transformedPath = replace(transformedPath, 'content/', '');\r\n transformedPath = replace(transformedPath, cdnImagesUrl, '');\r\n transformedPath = replace(transformedPath, cdnImagesFallbackUrl, '');\r\n let siteUrl = getSiteUrl().toLowerCase();\r\n transformedPath = transformedPath.replace(siteUrl, '');\r\n transformedPath = replace(\r\n transformedPath,\r\n window.$pathBase.toLowerCase(),\r\n ''\r\n );\r\n transformedPath = transformedPath.startsWith('/')\r\n ? transformedPath.slice(1, transformedPath.length)\r\n : transformedPath;\r\n if (useCdn && startsWith(transformedPath, cdnImagesUrl.toLowerCase())) {\r\n transformedPath = replace(\r\n transformedPath,\r\n cdnImagesUrl.toLowerCase(),\r\n ''\r\n );\r\n }\r\n if (\r\n useCdn === false &&\r\n startsWith(transformedPath, cdnImagesFallbackUrl.toLowerCase())\r\n ) {\r\n transformedPath = replace(\r\n transformedPath,\r\n cdnImagesFallbackUrl.toLowerCase(),\r\n ''\r\n );\r\n }\r\n\r\n let finalPath = useCdn\r\n ? `${cdnImagesUrl}/${transformedPath}`\r\n : `${cdnImagesFallbackUrl}/${transformedPath}`;\r\n return finalPath;\r\n } catch (error) {\r\n console.error('contentFromCdn. Set content from Cdn', error);\r\n }\r\n};\r\nconst getPartnersByCulture = ({ culture, partners }) => {\r\n const items = reduce(\r\n partners,\r\n (acc, el) => {\r\n return el.Culture === culture ? acc.concat(el) : acc;\r\n },\r\n []\r\n );\r\n return reduce(\r\n items,\r\n (acc, p) => {\r\n acc.push({\r\n title: p.Name,\r\n url: p.Url,\r\n culture: p.Culture,\r\n logo: contentFromCdn({\r\n path: `/Content/img/${p.Logo}`,\r\n keepUrlAsIs: false,\r\n }),\r\n });\r\n return acc;\r\n },\r\n []\r\n );\r\n};\r\nconst getParameterByName = function (name, url = window.location.href) {\r\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\r\n var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),\r\n results = regex.exec(url);\r\n if (!results) return null;\r\n if (!results[2]) return '';\r\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\r\n};\r\nexport default {\r\n getSiteUrl,\r\n getLang: () => document.documentElement.lang,\r\n isTouch: () => Modernizr.touch || window.innerWidth <= 768,\r\n isDesktop: () => Modernizr.mq('(min-width: 64em)'),\r\n getSite: () => SITE.trim().toLowerCase(),\r\n getSiteCommercialName,\r\n contentFromCdn,\r\n getPartnersByCulture,\r\n getParameterByName,\r\n};\r\n","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar consoleLogger = {\n type: 'logger',\n\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n var _console;\n\n /* eslint no-console: 0 */\n if (console && console[type]) (_console = console)[type].apply(_console, _toConsumableArray(args));\n }\n};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n Logger.prototype.init = function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n };\n\n Logger.prototype.setDebug = function setDebug(bool) {\n this.debug = bool;\n };\n\n Logger.prototype.log = function log() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n };\n\n Logger.prototype.warn = function warn() {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n };\n\n Logger.prototype.error = function error() {\n for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n };\n\n Logger.prototype.deprecate = function deprecate() {\n for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n };\n\n Logger.prototype.forward = function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = '' + prefix + this.prefix + ' ' + args[0];\n return this.logger[lvl](args);\n };\n\n Logger.prototype.create = function create(moduleName) {\n return new Logger(this.logger, _extends({ prefix: this.prefix + ':' + moduleName + ':' }, this.options));\n };\n\n return Logger;\n}();\n\nexport default new Logger();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n EventEmitter.prototype.on = function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n _this.observers[event].push(listener);\n });\n return this;\n };\n\n EventEmitter.prototype.off = function off(event, listener) {\n var _this2 = this;\n\n if (!this.observers[event]) {\n return;\n }\n\n this.observers[event].forEach(function () {\n if (!listener) {\n delete _this2.observers[event];\n } else {\n var index = _this2.observers[event].indexOf(listener);\n if (index > -1) {\n _this2.observers[event].splice(index, 1);\n }\n }\n });\n };\n\n EventEmitter.prototype.emit = function emit(event) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(undefined, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n };\n\n return EventEmitter;\n}();\n\nexport default EventEmitter;","export function makeString(object) {\n if (object == null) return '';\n /* eslint prefer-template: 0 */\n return '' + object;\n}\n\nexport function copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n object = object[key];\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nexport function setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\n\nexport function pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\n\nexport function getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\n\nexport function deepExtend(target, source, overwrite) {\n /* eslint no-restricted-syntax: 0 */\n for (var prop in source) {\n if (prop in target) {\n // If we reached a leaf string in target or source then replace with source or skip depending on the 'overwrite' switch\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n return target;\n}\n\nexport function regexEscape(str) {\n /* eslint no-useless-escape: 0 */\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\n\n/* eslint-disable */\nvar _entityMap = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': '"',\n \"'\": ''',\n \"/\": '/'\n};\n/* eslint-enable */\n\nexport function escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }\n\nimport EventEmitter from './EventEmitter.js';\nimport * as utils from './utils.js';\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n function ResourceStore(data) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { ns: ['translation'], defaultNS: 'translation' };\n\n _classCallCheck(this, ResourceStore);\n\n var _this = _possibleConstructorReturn(this, _EventEmitter.call(this));\n\n _this.data = data || {};\n _this.options = options;\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n return _this;\n }\n\n ResourceStore.prototype.addNamespaces = function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n };\n\n ResourceStore.prototype.removeNamespaces = function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n };\n\n ResourceStore.prototype.getResource = function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n return utils.getPath(this.data, path);\n };\n\n ResourceStore.prototype.addResource = function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : { silent: false };\n\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n\n utils.setPath(this.data, path, value);\n\n if (!options.silent) this.emit('added', lng, ns, key, value);\n };\n\n ResourceStore.prototype.addResources = function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : { silent: false };\n\n /* eslint no-restricted-syntax: 0 */\n for (var m in resources) {\n if (typeof resources[m] === 'string') this.addResource(lng, ns, m, resources[m], { silent: true });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n };\n\n ResourceStore.prototype.addResourceBundle = function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : { silent: false };\n\n var path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n\n var pack = utils.getPath(this.data, path) || {};\n\n if (deep) {\n utils.deepExtend(pack, resources, overwrite);\n } else {\n pack = _extends({}, pack, resources);\n }\n\n utils.setPath(this.data, path, pack);\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n };\n\n ResourceStore.prototype.removeResourceBundle = function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n\n this.emit('removed', lng, ns);\n };\n\n ResourceStore.prototype.hasResourceBundle = function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n };\n\n ResourceStore.prototype.getResourceBundle = function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n\n // COMPATIBILITY: remove extend in v2.1.0\n if (this.options.compatibilityAPI === 'v1') return _extends({}, this.getResource(lng, ns));\n\n return this.getResource(lng, ns);\n };\n\n ResourceStore.prototype.getDataByLanguage = function getDataByLanguage(lng) {\n return this.data[lng];\n };\n\n ResourceStore.prototype.toJSON = function toJSON() {\n return this.data;\n };\n\n return ResourceStore;\n}(EventEmitter);\n\nexport default ResourceStore;","export default {\n\n processors: {},\n\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n\n return value;\n }\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }\n\nimport baseLogger from './logger.js';\nimport EventEmitter from './EventEmitter.js';\nimport postProcessor from './postProcessor.js';\nimport * as utils from './utils.js';\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n function Translator(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n var _this = _possibleConstructorReturn(this, _EventEmitter.call(this));\n\n utils.copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat'], services, _this);\n\n _this.options = options;\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n Translator.prototype.changeLanguage = function changeLanguage(lng) {\n if (lng) this.language = lng;\n };\n\n Translator.prototype.exists = function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { interpolation: {} };\n\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n };\n\n Translator.prototype.extractFromKey = function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var namespaces = options.ns || this.options.defaultNS;\n if (nsSeparator && key.indexOf(nsSeparator) > -1) {\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n\n return {\n key: key,\n namespaces: namespaces\n };\n };\n\n Translator.prototype.translate = function translate(keys, options) {\n var _this2 = this;\n\n if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) !== 'object' && this.options.overloadTranslationOptionHandler) {\n /* eslint prefer-rest-params: 0 */\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (!options) options = {};\n\n // non valid keys handling\n if (keys === undefined || keys === null || keys === '') return '';\n if (typeof keys === 'number') keys = String(keys);\n if (typeof keys === 'string') keys = [keys];\n\n // separators\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n // get namespace(s)\n\n var _extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _extractFromKey.key,\n namespaces = _extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n\n // return key on CIMode\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n return namespace + nsSeparator + key;\n }\n\n return key;\n }\n\n // resolve from store\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n\n // object\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(joinArrays && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, options) : 'key \\'' + key + ' (' + this.language + ')\\' returned an object instead of string.';\n }\n\n // if we got a separator we loop over children - else we just return object as is\n // as having it set to false means no hierarchy so no lookup for nested values\n if (keySeparator) {\n var copy = resType === '[object Array]' ? [] : {}; // apply child translation on a copy\n\n /* eslint no-restricted-syntax: 0 */\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = '' + resUsedKey + keySeparator + m;\n copy[m] = this.translate(deepKey, _extends({}, options, { joinArrays: false, ns: namespaces }));\n if (copy[m] === deepKey) copy[m] = res[m]; // if nothing found use orginal value as fallback\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && joinArrays && resType === '[object Array]') {\n // array special treatment\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options);\n } else {\n // string, empty or null\n var usedDefault = false;\n var usedKey = false;\n\n // fallback value\n if (!this.isValidLookup(res) && options.defaultValue !== undefined) {\n usedDefault = true;\n\n if (options.count !== undefined) {\n var suffix = this.pluralResolver.getSuffix(lng, options.count);\n res = options['defaultValue' + suffix];\n }\n if (!res) res = options.defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n // save missing\n var updateMissing = options.defaultValue && options.defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? options.defaultValue : res);\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k) {\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, updateMissing ? options.defaultValue : res, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, updateMissing ? options.defaultValue : res, updateMissing, options);\n }\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (l) {\n var plurals = _this2.pluralResolver.getPluralFormsOfKey(l, key);\n\n plurals.forEach(function (p) {\n return send([l], p);\n });\n });\n } else {\n send(lngs, key);\n }\n }\n }\n\n // extend\n res = this.extendTranslation(res, keys, options, resolved);\n\n // append namespace if still key\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = namespace + ':' + key;\n\n // parseMissingKeyHandler\n if (usedKey && this.options.parseMissingKeyHandler) res = this.options.parseMissingKeyHandler(res);\n }\n\n // return\n return res;\n };\n\n Translator.prototype.extendTranslation = function extendTranslation(res, key, options, resolved) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, options, resolved.usedLng, resolved.usedNS, resolved.usedKey, { resolved: resolved });\n } else if (!options.skipInterpolation) {\n // i18next.parsing\n if (options.interpolation) this.interpolator.init(_extends({}, options, { interpolation: _extends({}, this.options.interpolation, options.interpolation) }));\n\n // interpolate\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _extends({}, this.options.interpolation.defaultVariables, data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n // nesting\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n return _this3.translate.apply(_this3, arguments);\n }, options);\n\n if (options.interpolation) this.interpolator.reset();\n }\n\n // post process\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, options, this);\n }\n\n return res;\n };\n\n Translator.prototype.resolve = function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var found = void 0;\n var usedKey = void 0;\n var usedLng = void 0;\n var usedNS = void 0;\n\n if (typeof keys === 'string') keys = [keys];\n\n // forEach possible key\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n var extracted = _this4.extractFromKey(k, options);\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var needsContextHandling = options.context !== undefined && typeof options.context === 'string' && options.context !== '';\n\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n\n var finalKey = key;\n var finalKeys = [finalKey];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix = void 0;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count);\n\n // fallback for plural if context not found\n if (needsPluralHandling && needsContextHandling) finalKeys.push(finalKey + pluralSuffix);\n\n // get key for context if needed\n if (needsContextHandling) finalKeys.push(finalKey += '' + _this4.options.contextSeparator + options.context);\n\n // get key for plural if needed\n if (needsPluralHandling) finalKeys.push(finalKey += pluralSuffix);\n }\n\n // iterate over finalKeys starting with most specific pluralkey (-> contextkey only) -> singularkey only\n var possibleKey = void 0;\n /* eslint no-cond-assign: 0 */\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n\n return { res: found, usedKey: usedKey, usedLng: usedLng, usedNS: usedNS };\n };\n\n Translator.prototype.isValidLookup = function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n };\n\n Translator.prototype.getResource = function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n };\n\n return Translator;\n}(EventEmitter);\n\nexport default Translator;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport baseLogger from './logger.js';\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n\n this.whitelist = this.options.whitelist || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n LanguageUtil.prototype.getScriptPartFromCode = function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n return this.formatLanguageCode(p.join('-'));\n };\n\n LanguageUtil.prototype.getLanguagePartFromCode = function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n };\n\n LanguageUtil.prototype.formatLanguageCode = function formatLanguageCode(code) {\n // http://www.iana.org/assignments/language-tags/language-tags.xhtml\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n\n // if lenght 2 guess it's a country\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n };\n\n LanguageUtil.prototype.isWhitelisted = function isWhitelisted(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitWhitelist) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.whitelist || !this.whitelist.length || this.whitelist.indexOf(code) > -1;\n };\n\n LanguageUtil.prototype.getFallbackCodes = function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n\n if (!code) return fallbacks.default || [];\n\n // asume we have an object defining fallbacks\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks.default;\n\n return found || [];\n };\n\n LanguageUtil.prototype.toResolveHierarchy = function toResolveHierarchy(code, fallbackCode) {\n var _this = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n\n var codes = [];\n var addCode = function addCode(c) {\n if (!c) return;\n if (_this.isWhitelisted(c)) {\n codes.push(c);\n } else {\n _this.logger.warn('rejecting non-whitelisted language code: ' + c);\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this.formatLanguageCode(fc));\n });\n\n return codes;\n };\n\n return LanguageUtil;\n}();\n\nexport default LanguageUtil;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport baseLogger from './logger.js';\n\n// definition http://translate.sourceforge.net/wiki/l10n/pluralforms\n/* eslint-disable */\nvar sets = [{ lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'ti', 'tr', 'uz', 'wa'], nr: [1, 2], fc: 1 }, { lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'he', 'hi', 'hu', 'hy', 'ia', 'it', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'], nr: [1, 2], fc: 2 }, { lngs: ['ay', 'bo', 'cgg', 'fa', 'id', 'ja', 'jbo', 'ka', 'kk', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'], nr: [1], fc: 3 }, { lngs: ['be', 'bs', 'dz', 'hr', 'ru', 'sr', 'uk'], nr: [1, 2, 5], fc: 4 }, { lngs: ['ar'], nr: [0, 1, 2, 3, 11, 100], fc: 5 }, { lngs: ['cs', 'sk'], nr: [1, 2, 5], fc: 6 }, { lngs: ['csb', 'pl'], nr: [1, 2, 5], fc: 7 }, { lngs: ['cy'], nr: [1, 2, 3, 8], fc: 8 }, { lngs: ['fr'], nr: [1, 2], fc: 9 }, { lngs: ['ga'], nr: [1, 2, 3, 7, 11], fc: 10 }, { lngs: ['gd'], nr: [1, 2, 3, 20], fc: 11 }, { lngs: ['is'], nr: [1, 2], fc: 12 }, { lngs: ['jv'], nr: [0, 1], fc: 13 }, { lngs: ['kw'], nr: [1, 2, 3, 4], fc: 14 }, { lngs: ['lt'], nr: [1, 2, 10], fc: 15 }, { lngs: ['lv'], nr: [1, 2, 0], fc: 16 }, { lngs: ['mk'], nr: [1, 2], fc: 17 }, { lngs: ['mnk'], nr: [0, 1, 2], fc: 18 }, { lngs: ['mt'], nr: [1, 2, 11, 20], fc: 19 }, { lngs: ['or'], nr: [2, 1], fc: 2 }, { lngs: ['ro'], nr: [1, 2, 20], fc: 20 }, { lngs: ['sl'], nr: [5, 1, 2, 3], fc: 21 }];\n\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n === 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n === 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n === 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n === 1 ? 0 : n === 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\n/* eslint-enable */\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n\n this.logger = baseLogger.create('pluralResolver');\n\n this.rules = createRules();\n }\n\n PluralResolver.prototype.addRule = function addRule(lng, obj) {\n this.rules[lng] = obj;\n };\n\n PluralResolver.prototype.getRule = function getRule(code) {\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n };\n\n PluralResolver.prototype.needsPlural = function needsPlural(code) {\n var rule = this.getRule(code);\n\n return rule && rule.numbers.length > 1;\n };\n\n PluralResolver.prototype.getPluralFormsOfKey = function getPluralFormsOfKey(code, key) {\n var _this = this;\n\n var ret = [];\n\n var rule = this.getRule(code);\n\n if (!rule) return ret;\n\n rule.numbers.forEach(function (n) {\n var suffix = _this.getSuffix(code, n);\n ret.push('' + key + suffix);\n });\n\n return ret;\n };\n\n PluralResolver.prototype.getSuffix = function getSuffix(code, count) {\n var _this2 = this;\n\n var rule = this.getRule(code);\n\n if (rule) {\n // if (rule.numbers.length === 1) return ''; // only singular\n\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n // special treatment for lngs only having singular and plural\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n\n // COMPATIBILITY JSON\n // v1\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return '_plural_' + suffix.toString();\n return returnSuffix();\n } else if ( /* v2 */this.options.compatibilityJSON === 'v2' && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n } else if ( /* v3 - gettext index */this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n\n this.logger.warn('no plural rule found for: ' + code);\n return '';\n };\n\n return PluralResolver;\n}();\n\nexport default PluralResolver;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport * as utils from './utils.js';\nimport baseLogger from './logger.js';\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n\n this.init(options, true);\n }\n\n /* eslint no-param-reassign: 0 */\n\n\n Interpolator.prototype.init = function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var reset = arguments[1];\n\n if (reset) {\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n }\n if (!options.interpolation) options.interpolation = { escapeValue: true };\n\n var iOpts = options.interpolation;\n\n this.escape = iOpts.escape !== undefined ? iOpts.escape : utils.escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n\n this.prefix = iOpts.prefix ? utils.regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? utils.regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n\n this.nestingPrefix = iOpts.nestingPrefix ? utils.regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || utils.regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? utils.regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || utils.regexEscape(')');\n\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n\n // the regexp\n this.resetRegExp();\n };\n\n Interpolator.prototype.reset = function reset() {\n if (this.options) this.init(this.options);\n };\n\n Interpolator.prototype.resetRegExp = function resetRegExp() {\n // the regexp\n var regexpStr = this.prefix + '(.+?)' + this.suffix;\n this.regexp = new RegExp(regexpStr, 'g');\n\n var regexpUnescapeStr = '' + this.prefix + this.unescapePrefix + '(.+?)' + this.unescapeSuffix + this.suffix;\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n\n var nestingRegexpStr = this.nestingPrefix + '(.+?)' + this.nestingSuffix;\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n };\n\n Interpolator.prototype.interpolate = function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match = void 0;\n var value = void 0;\n var replaces = void 0;\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) return utils.getPath(data, key);\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n\n return _this.format(utils.getPath(data, k), f, lng);\n };\n\n this.resetRegExp();\n\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n\n replaces = 0;\n // unescape if has unescapePrefix/Suffix\n /* eslint no-cond-assign: 0 */\n while (match = this.regexpUnescape.exec(str)) {\n value = handleFormat(match[1].trim());\n str = str.replace(match[0], value);\n this.regexpUnescape.lastIndex = 0;\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n\n replaces = 0;\n // regular escape on demand\n while (match = this.regexp.exec(str)) {\n value = handleFormat(match[1].trim());\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match);\n value = typeof temp === 'string' ? temp : '';\n } else {\n this.logger.warn('missed to pass in variable ' + match[1] + ' for interpolating ' + str);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = utils.makeString(value);\n }\n value = this.escapeValue ? regexSafe(this.escape(value)) : regexSafe(value);\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n return str;\n };\n\n Interpolator.prototype.nest = function nest(str, fc) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var match = void 0;\n var value = void 0;\n\n var clonedOptions = _extends({}, options);\n clonedOptions.applyPostProcessor = false; // avoid post processing on nested lookup\n\n // if value is something like \"myKey\": \"lorem $(anotherKey, { \"count\": {{aValueInOptions}} })\"\n function handleHasOptions(key, inheritedOptions) {\n if (key.indexOf(',') < 0) return key;\n\n var p = key.split(',');\n key = p.shift();\n var optionsString = p.join(',');\n optionsString = this.interpolate(optionsString, clonedOptions);\n optionsString = optionsString.replace(/'/g, '\"');\n\n try {\n clonedOptions = JSON.parse(optionsString);\n\n if (inheritedOptions) clonedOptions = _extends({}, inheritedOptions, clonedOptions);\n } catch (e) {\n this.logger.error('failed parsing options string in nesting for key ' + key, e);\n }\n\n return key;\n }\n\n // regular escape on demand\n while (match = this.nestingRegexp.exec(str)) {\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n\n // is only the nesting key (key1 = '$(key2)') return the value without stringify\n if (value && match[0] === str && typeof value !== 'string') return value;\n\n // no string to include or empty\n if (typeof value !== 'string') value = utils.makeString(value);\n if (!value) {\n this.logger.warn('missed to resolve ' + match[1] + ' for nesting ' + str);\n value = '';\n }\n // Nested keys should not be escaped by default #854\n // value = this.escapeValue ? regexSafe(utils.escape(value)) : regexSafe(value);\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n };\n\n return Interpolator;\n}();\n\nexport default Interpolator;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }\n\nimport * as utils from './utils.js';\nimport baseLogger from './logger.js';\nimport EventEmitter from './EventEmitter.js';\n\nfunction remove(arr, what) {\n var found = arr.indexOf(what);\n\n while (found !== -1) {\n arr.splice(found, 1);\n found = arr.indexOf(what);\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n function Connector(backend, store, services) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n var _this = _possibleConstructorReturn(this, _EventEmitter.call(this));\n\n _this.backend = backend;\n _this.store = store;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n return _this;\n }\n\n Connector.prototype.queueLoad = function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n // find what needs to be loaded\n var toLoad = [];\n var pending = [];\n var toLoadLanguages = [];\n var toLoadNamespaces = [];\n\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n\n namespaces.forEach(function (ns) {\n var name = lng + '|' + ns;\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2; // loaded\n } else if (_this2.state[name] < 0) {\n // nothing to do for err\n } else if (_this2.state[name] === 1) {\n if (pending.indexOf(name) < 0) pending.push(name);\n } else {\n _this2.state[name] = 1; // pending\n\n hasAllNamespaces = false;\n\n if (pending.indexOf(name) < 0) pending.push(name);\n if (toLoad.indexOf(name) < 0) toLoad.push(name);\n if (toLoadNamespaces.indexOf(ns) < 0) toLoadNamespaces.push(ns);\n }\n });\n\n if (!hasAllNamespaces) toLoadLanguages.push(lng);\n });\n\n if (toLoad.length || pending.length) {\n this.queue.push({\n pending: pending,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: toLoad,\n pending: pending,\n toLoadLanguages: toLoadLanguages,\n toLoadNamespaces: toLoadNamespaces\n };\n };\n\n Connector.prototype.loaded = function loaded(name, err, data) {\n var _name$split = name.split('|'),\n _name$split2 = _slicedToArray(_name$split, 2),\n lng = _name$split2[0],\n ns = _name$split2[1];\n\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n // set loaded\n this.state[name] = err ? -1 : 2;\n\n // consolidated loading done in this run - only emit once for a loaded namespace\n var loaded = {};\n\n // callback if ready\n this.queue.forEach(function (q) {\n utils.pushPath(q.loaded, [lng], ns);\n remove(q.pending, name);\n\n if (err) q.errors.push(err);\n\n if (q.pending.length === 0 && !q.done) {\n // only do once per loaded -> this.emit('loaded', q.loaded);\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = [];\n if (q.loaded[l].length) {\n q.loaded[l].forEach(function (ns) {\n if (loaded[l].indexOf(ns) < 0) loaded[l].push(ns);\n });\n }\n });\n\n /* eslint no-param-reassign: 0 */\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n\n // emit consolidated loaded event\n this.emit('loaded', loaded);\n\n // remove done load requests\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n };\n\n Connector.prototype.read = function read(lng, ns, fcName) {\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n\n var _this3 = this;\n\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 250;\n var callback = arguments[5];\n\n if (!lng.length) return callback(null, {}); // noting to load\n\n return this.backend[fcName](lng, ns, function (err, data) {\n if (err && data /* = retryFlag */ && tried < 5) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n });\n };\n\n /* eslint consistent-return: 0 */\n\n\n Connector.prototype.prepareLoading = function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments[3];\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback(); // nothing to load and no pendings...callback now\n return null; // pendings will trigger callback\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n };\n\n Connector.prototype.load = function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n };\n\n Connector.prototype.reload = function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, { reload: true }, callback);\n };\n\n Connector.prototype.loadOne = function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n var _name$split3 = name.split('|'),\n _name$split4 = _slicedToArray(_name$split3, 2),\n lng = _name$split4[0],\n ns = _name$split4[1];\n\n this.read(lng, ns, 'read', null, null, function (err, data) {\n if (err) _this5.logger.warn(prefix + 'loading namespace ' + ns + ' for language ' + lng + ' failed', err);\n if (!err && data) _this5.logger.log(prefix + 'loaded namespace ' + ns + ' for language ' + lng, data);\n\n _this5.loaded(name, err, data);\n });\n };\n\n Connector.prototype.saveMissing = function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null /* unused callback */, _extends({}, options, { isUpdate: isUpdate }));\n }\n\n // write to store to avoid resending\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n };\n\n return Connector;\n}(EventEmitter);\n\nexport default Connector;","export { get };\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false, // string or array of namespaces\n\n whitelist: false, // array with whitelisted languages\n nonExplicitWhitelist: false,\n load: 'all', // | currentOnly | languageOnly\n preload: false, // array with preload languages\n\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n\n saveMissing: false, // enable to send missing values\n updateMissing: false, // enable to update default values if different from translated value (only useful on initial development, or when keeping code as source of truth)\n saveMissingTo: 'fallback', // 'current' || 'all'\n saveMissingPlurals: true, // will save all forms not only singular key\n missingKeyHandler: false, // function(lng, ns, key, fallbackValue) -> override if prefer on handling\n missingInterpolationHandler: false, // function(str, match)\n\n postProcess: false, // string or array of postProcessor names\n returnNull: true, // allows null value as valid translation\n returnEmptyString: true, // allows empty string value as valid translation\n returnObjects: false,\n joinArrays: false, // or string to join array\n returnedObjectHandler: function returnedObjectHandler() {}, // function(key, value, options) triggered if key returns object but returnObjects is set to false\n parseMissingKeyHandler: false, // function(key) parsed a key that was not found in t() before returning\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (args[1]) ret.defaultValue = args[1];\n if (args[2]) ret.tDescription = args[2];\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n // prefixEscaped: '{{',\n // suffixEscaped: '}}',\n // unescapeSuffix: '',\n unescapePrefix: '-',\n\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n // nestingPrefixEscaped: '$t(',\n // nestingSuffixEscaped: ')',\n // defaultVariables: undefined // object that can have values to interpolate on - extends passed in interpolation data\n maxReplaces: 1000 // max replaces to prevent endless loop\n }\n };\n}\n\n/* eslint no-param-reassign: 0 */\nexport function transformOptions(options) {\n // create namespace object if namespace is passed in as string\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n // extend whitelist with cimode\n if (options.whitelist && options.whitelist.indexOf('cimode') < 0) {\n options.whitelist = options.whitelist.concat(['cimode']);\n }\n\n return options;\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }\n\nimport baseLogger from './logger.js';\nimport EventEmitter from './EventEmitter.js';\nimport ResourceStore from './ResourceStore.js';\nimport Translator from './Translator.js';\nimport LanguageUtils from './LanguageUtils.js';\nimport PluralResolver from './PluralResolver.js';\nimport Interpolator from './Interpolator.js';\nimport BackendConnector from './BackendConnector.js';\nimport { get as getDefaults, transformOptions } from './defaults.js';\nimport postProcessor from './postProcessor.js';\n\nfunction noop() {}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n function I18n() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments[1];\n\n _classCallCheck(this, I18n);\n\n var _this = _possibleConstructorReturn(this, _EventEmitter.call(this));\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = { external: [] };\n\n if (callback && !_this.isInitialized && !options.isClone) {\n var _ret;\n\n // https://github.com/i18next/i18next/issues/879\n if (!_this.options.initImmediate) return _ret = _this.init(options, callback), _possibleConstructorReturn(_this, _ret);\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n return _this;\n }\n\n I18n.prototype.init = function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments[1];\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n this.options = _extends({}, getDefaults(), this.options, transformOptions(options));\n\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n // init services\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var lu = new LanguageUtils(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, { prepend: this.options.pluralSeparator, compatibilityJSON: this.options.compatibilityJSON, simplifyPluralSuffix: this.options.simplifyPluralSuffix });\n s.interpolator = new Interpolator(this.options);\n\n s.backendConnector = new BackendConnector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n // pipe events from backendConnector\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options);\n // pipe events from translator\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\n // append api\n var storeApi = ['getResource', 'addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _store;\n\n return (_store = _this2.store)[fcName].apply(_store, arguments);\n };\n });\n\n var load = function load() {\n _this2.changeLanguage(_this2.options.lng, function (err, t) {\n _this2.isInitialized = true;\n _this2.logger.log('initialized', _this2.options);\n _this2.emit('initialized', _this2.options);\n\n callback(err, t);\n });\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return this;\n };\n\n /* eslint consistent-return: 0 */\n\n\n I18n.prototype.loadResources = function loadResources() {\n var _this3 = this;\n\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;\n\n if (!this.options.resources) {\n if (this.language && this.language.toLowerCase() === 'cimode') return callback(); // avoid loading resources for cimode\n\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!this.language) {\n // at least load fallbacks in this case\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(this.language);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, callback);\n } else {\n callback(null);\n }\n };\n\n I18n.prototype.reloadResources = function reloadResources(lngs, ns, callback) {\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = function callback() {};\n this.services.backendConnector.reload(lngs, ns, callback);\n };\n\n I18n.prototype.use = function use(module) {\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n };\n\n I18n.prototype.changeLanguage = function changeLanguage(lng, callback) {\n var _this4 = this;\n\n var done = function done(err, l) {\n _this4.translator.changeLanguage(l);\n\n if (l) {\n _this4.emit('languageChanged', l);\n _this4.logger.log('languageChanged', l);\n }\n\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(l) {\n if (l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n };\n\n I18n.prototype.getFixedT = function getFixedT(lng, ns) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n for (var _len3 = arguments.length, rest = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n var options = _extends({}, opts);\n if ((typeof opts === 'undefined' ? 'undefined' : _typeof(opts)) !== 'object') {\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n return _this5.t(key, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n return fixedT;\n };\n\n I18n.prototype.t = function t() {\n var _translator;\n\n return this.translator && (_translator = this.translator).translate.apply(_translator, arguments);\n };\n\n I18n.prototype.exists = function exists() {\n var _translator2;\n\n return this.translator && (_translator2 = this.translator).exists.apply(_translator2, arguments);\n };\n\n I18n.prototype.setDefaultNamespace = function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n };\n\n I18n.prototype.loadNamespaces = function loadNamespaces(ns, callback) {\n var _this6 = this;\n\n if (!this.options.ns) return callback && callback();\n if (typeof ns === 'string') ns = [ns];\n\n ns.forEach(function (n) {\n if (_this6.options.ns.indexOf(n) < 0) _this6.options.ns.push(n);\n });\n\n this.loadResources(callback);\n };\n\n I18n.prototype.loadLanguages = function loadLanguages(lngs, callback) {\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n // Exit early if all given languages are already preloaded\n if (!newLngs.length) return callback();\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(callback);\n };\n\n I18n.prototype.dir = function dir(lng) {\n if (!lng) lng = this.languages && this.languages.length > 0 ? this.languages[0] : this.language;\n if (!lng) return 'rtl';\n\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam'];\n\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) >= 0 ? 'rtl' : 'ltr';\n };\n\n /* eslint class-methods-use-this: 0 */\n\n\n I18n.prototype.createInstance = function createInstance() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments[1];\n\n return new I18n(options, callback);\n };\n\n I18n.prototype.cloneInstance = function cloneInstance() {\n var _this7 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _extends({}, this.options, options, { isClone: true });\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this7[m];\n });\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options; // sync options\n\n return clone;\n };\n\n return I18n;\n}(EventEmitter);\n\nexport default new I18n();","import i18next from 'i18next';\r\nimport keys from 'lodash/keys';\r\nimport reduce from 'lodash/reduce';\r\nimport common from './common';\r\nimport commonTranslation from '../translations/common';\r\nimport reviewImages from '../translations/reviewImages';\r\nimport customFeesLordgun from '../translations/customFees.lordgun';\r\nimport customFeesRunkd from '../translations/customFees.runkd';\r\nimport customFeesInwild from '../translations/customFees.inwild';\r\nimport cartStep1 from '../translations/cartStep1';\r\nimport cartStep2Lordgun from '../translations/cartStep2.lordgun';\r\nimport cartStep2Inwild from '../translations/cartStep2.inwild';\r\nimport cartStep2Runkd from '../translations/cartStep2.runkd';\r\nimport reassortmentNotification from '../translations/reassortmentNotification';\r\nimport paymentInfo from '../translations/paymentInfo';\r\nimport nicknameValidator from '../translations/nicknameValidator';\r\nimport disbursementSimulator from '../translations/disbursementSimulator';\r\nimport cookieConsentLordgun from '../translations/cookieConsent.lordgun';\r\nimport cookieConsentRunkd from '../translations/cookieConsent.runkd';\r\nimport cookieConsentInwild from '../translations/cookieConsent.inwild';\r\nimport socialLinks from '../translations/socialLinks';\r\nimport blog from '../translations/blog/blog';\r\nimport productCard from '../translations/productCard';\r\nimport recentlyViewedProducts from '../translations/product/recentlyViewedProducts';\r\nimport productDetail from '../translations/product/detail';\r\nimport carousel from '../translations/carousel';\r\nimport topBrands from '../translations/brands/topBrands';\r\nimport cartRightSummary from '../translations/cartRightSummary';\r\nimport topBlogPosts from '../translations/blog/topBlogPosts';\r\nimport serviceLinks from '../translations/serviceLinks';\r\nimport reviews from '../translations/reviews/reviews';\r\nimport questions from '../translations/questionAndAnswers/questions';\r\nimport feedbacks from '../translations/feedbacks/feedbacks';\r\nimport bannerRedirectLordgun from '../translations/bannerRedirect.lordgun';\r\nimport bannerRedirectRunkd from '../translations/bannerRedirect.runkd';\r\nimport bannerRedirectInwild from '../translations/bannerRedirect.inwild';\r\nimport form from '../translations/form/form';\r\nimport home from '../translations/home/homeTranslations';\r\nimport orders from '../translations/orders/orders';\r\nimport returns from '../translations/returns/returns';\r\nimport search from '../translations/search';\r\nimport newsletter from '../translations/newsletter';\r\nimport lowerPrice from '../translations/product/lowerPrice';\r\n\r\nconst configHelper = require('../config/index.js');\r\n\r\nlet initialized = false;\r\nconst commonTranslations = [\r\n { reviewImages },\r\n { common: commonTranslation },\r\n { cartStep1 },\r\n { reassortmentNotification },\r\n { nicknameValidator },\r\n { disbursementSimulator },\r\n { paymentInfo },\r\n { socialLinks },\r\n { blog },\r\n { productCard },\r\n { recentlyViewedProducts },\r\n { carousel },\r\n { topBrands },\r\n { cartRightSummary },\r\n { topBlogPosts },\r\n { serviceLinks },\r\n { productDetail },\r\n { reviews },\r\n { questions },\r\n { feedbacks },\r\n { form },\r\n { home },\r\n { orders },\r\n { returns },\r\n { search },\r\n { newsletter },\r\n { lowerPrice },\r\n];\r\nconst translationsForLordgun = commonTranslations.concat([\r\n { customFees: customFeesLordgun },\r\n { cookieConsent: cookieConsentLordgun },\r\n { bannerRedirect: bannerRedirectLordgun },\r\n { cartStep2: cartStep2Lordgun },\r\n]);\r\nconst translationsForRunkd = commonTranslations.concat([\r\n { customFees: customFeesRunkd },\r\n { cookieConsent: cookieConsentRunkd },\r\n { bannerRedirect: bannerRedirectRunkd },\r\n { cartStep2: cartStep2Runkd },\r\n]);\r\nconst translationsForInwild = commonTranslations.concat([\r\n { customFees: customFeesInwild },\r\n { cookieConsent: cookieConsentInwild },\r\n { bannerRedirect: bannerRedirectInwild },\r\n { cartStep2: cartStep2Inwild },\r\n]);\r\nlet translations;\r\n\r\nswitch (common.getSite()) {\r\n case 'lordgun':\r\n translations = translationsForLordgun;\r\n break;\r\n case 'runkd':\r\n translations = translationsForRunkd;\r\n break;\r\n case 'inwild':\r\n translations = translationsForInwild;\r\n break;\r\n}\r\n\r\nconst getMappedTranslation = (culture, translations) => {\r\n const mappedTranslation = reduce(\r\n translations,\r\n (acc, translation) => {\r\n let key = keys(translation)[0];\r\n acc[key] = translation[key][culture];\r\n return acc;\r\n },\r\n {}\r\n );\r\n return mappedTranslation;\r\n};\r\n\r\nconst init = () => {\r\n if (initialized === false) {\r\n let staticResources = reduce(\r\n configHelper.getConfig().supportedCultures(),\r\n (acc, culture) => {\r\n acc[culture] = {\r\n translation: getMappedTranslation(culture, translations),\r\n };\r\n return acc;\r\n },\r\n {}\r\n );\r\n i18next.init({\r\n lng: common.getLang(),\r\n resources: staticResources,\r\n });\r\n initialized = true;\r\n }\r\n return initialized;\r\n};\r\n\r\nexport default {\r\n get: (key) => {\r\n if (init()) {\r\n const translation = i18next.t(key);\r\n return translation;\r\n }\r\n throw new Error('translateService not initialized');\r\n },\r\n interpolate: (key, params) => {\r\n if (init()) {\r\n let translation = i18next.t(key);\r\n translation = _.reduce(\r\n _.keys(params),\r\n (acc, paramKey) => {\r\n acc = _.replace(\r\n acc,\r\n `{${paramKey}}`,\r\n `${params[paramKey]}`\r\n );\r\n return acc;\r\n },\r\n translation\r\n );\r\n return translation;\r\n }\r\n throw new Error('translateService not initialized');\r\n },\r\n};\r\n","import i18next from './i18next.js';\n\nexport default i18next;\n\nexport var changeLanguage = i18next.changeLanguage.bind(i18next);\nexport var cloneInstance = i18next.cloneInstance.bind(i18next);\nexport var createInstance = i18next.createInstance.bind(i18next);\nexport var dir = i18next.dir.bind(i18next);\nexport var exists = i18next.exists.bind(i18next);\nexport var getFixedT = i18next.getFixedT.bind(i18next);\nexport var init = i18next.init.bind(i18next);\nexport var loadLanguages = i18next.loadLanguages.bind(i18next);\nexport var loadNamespaces = i18next.loadNamespaces.bind(i18next);\nexport var loadResources = i18next.loadResources.bind(i18next);\nexport var off = i18next.off.bind(i18next);\nexport var on = i18next.on.bind(i18next);\nexport var setDefaultNamespace = i18next.setDefaultNamespace.bind(i18next);\nexport var t = i18next.t.bind(i18next);\nexport var use = i18next.use.bind(i18next);","import qq from 'fine-uploader/lib/traditional';\r\nimport common from '../common/common';\r\nimport translateService from '../common/translateService';\r\n\r\nexport default {\r\n setup: ({\r\n id,\r\n onComplete,\r\n onDeleteComplete,\r\n onSubmitDelete,\r\n sizeLimit,\r\n }) => {\r\n var imageUploader = new qq.FineUploader({\r\n element: document.getElementById(id),\r\n template: 'qq-template-gallery',\r\n text: {},\r\n request: {\r\n endpoint: common.getSiteUrl() + '/upload/uploadfile',\r\n },\r\n messages: {\r\n typeError: translateService.get(\r\n 'reviewImages.messages.typeError'\r\n ),\r\n sizeError: translateService.get(\r\n 'reviewImages.messages.sizeError'\r\n ),\r\n emptyError: translateService.get(\r\n 'reviewImages.messages.emptyError'\r\n ),\r\n tooManyItemsError: translateService.get(\r\n 'reviewImages.messages.tooManyItemsError'\r\n ),\r\n // other messages can go here as well ...\r\n },\r\n validation: {\r\n allowedExtensions: ['jpeg', 'jpg', 'png', 'bmp'],\r\n itemLimit: 3,\r\n sizeLimit: sizeLimit || 3000000, // 3MB\r\n },\r\n deleteFile: {\r\n enabled: true,\r\n forceConfirm: true,\r\n confirmMessage: translateService.get(\r\n 'reviewImages.deleteFile.confirmMessage'\r\n ),\r\n endpoint: common.getSiteUrl() + '/image/delete',\r\n },\r\n callbacks: {\r\n onComplete,\r\n onDeleteComplete,\r\n onSubmitDelete,\r\n },\r\n });\r\n\r\n return imageUploader;\r\n },\r\n};\r\n","import $ from 'jquery';\r\nimport imageUploader from '../components/imageUploader';\r\nimport translateService from '../common/translateService';\r\n\r\nconst init = () => {\r\n const identifier = 'help-uploader';\r\n let btn = document.getElementById(identifier);\r\n if (btn !== null) {\r\n var galleryUploader = imageUploader.setup({\r\n id: identifier,\r\n onComplete: function (id, name, response) {\r\n $('#' + identifier).after(\r\n ''\r\n );\r\n },\r\n onDeleteComplete: function (id, xhr, isError) {\r\n if (isError === false) {\r\n $(\"input[name='Attachments[\" + id + \"]']\").remove();\r\n }\r\n },\r\n onSubmitDelete: function (id) {\r\n var item = $(\"input[name='Attachments[\" + id + \"]']\");\r\n if (item.length > 0) {\r\n var fileSystemId = item.val();\r\n this.setDeleteFileParams(\r\n { fileSystemId: fileSystemId },\r\n id\r\n );\r\n }\r\n },\r\n sizeLimit: 5000000,\r\n sizeError: translateService.get('helpUploader.messages.sizeError'),\r\n });\r\n\r\n $('.qq-upload-button-selector.qq-upload-button div').text(\r\n translateService.get('reviewImages.messages.attachYourImages')\r\n );\r\n $('.qq-uploader-selector.qq-uploader.qq-gallery').attr(\r\n 'qq-drop-area-text',\r\n translateService.get('reviewImages.messages.dropAreaText')\r\n );\r\n }\r\n};\r\n\r\nexport default {\r\n init,\r\n};\r\n","import helpUploader from './help/helpUploader';\r\nrequire('jquery-validation');\r\nwindow.onload = function () {\r\n helpUploader.init();\r\n};\r\n","/*!\r\n * modernizr v3.6.0\r\n * Build https://modernizr.com/download?-mq-dontmin\r\n *\r\n * Copyright (c)\r\n * Faruk Ates\r\n * Paul Irish\r\n * Alex Sexton\r\n * Ryan Seddon\r\n * Patrick Kettner\r\n * Stu Cox\r\n * Richard Herrera\r\n\r\n * MIT License\r\n */\r\n\r\n/*\r\n * Modernizr tests which native CSS3 and HTML5 features are available in the\r\n * current UA and makes the results available to you in two ways: as properties on\r\n * a global `Modernizr` object, and as classes on the `` element. This\r\n * information allows you to progressively enhance your pages with a granular level\r\n * of control over the experience.\r\n*/\r\n\r\n;(function(window, document, undefined){\r\n var tests = [];\r\n \r\n\r\n /**\r\n *\r\n * ModernizrProto is the constructor for Modernizr\r\n *\r\n * @class\r\n * @access public\r\n */\r\n\r\n var ModernizrProto = {\r\n // The current version, dummy\r\n _version: '3.6.0',\r\n\r\n // Any settings that don't work as separate modules\r\n // can go in here as configuration.\r\n _config: {\r\n 'classPrefix': '',\r\n 'enableClasses': true,\r\n 'enableJSClass': true,\r\n 'usePrefixes': true\r\n },\r\n\r\n // Queue of tests\r\n _q: [],\r\n\r\n // Stub these for people who are listening\r\n on: function(test, cb) {\r\n // I don't really think people should do this, but we can\r\n // safe guard it a bit.\r\n // -- NOTE:: this gets WAY overridden in src/addTest for actual async tests.\r\n // This is in case people listen to synchronous tests. I would leave it out,\r\n // but the code to *disallow* sync tests in the real version of this\r\n // function is actually larger than this.\r\n var self = this;\r\n setTimeout(function() {\r\n cb(self[test]);\r\n }, 0);\r\n },\r\n\r\n addTest: function(name, fn, options) {\r\n tests.push({name: name, fn: fn, options: options});\r\n },\r\n\r\n addAsyncTest: function(fn) {\r\n tests.push({name: null, fn: fn});\r\n }\r\n };\r\n\r\n \r\n\r\n // Fake some of Object.create so we can force non test results to be non \"own\" properties.\r\n var Modernizr = function() {};\r\n Modernizr.prototype = ModernizrProto;\r\n\r\n // Leak modernizr globally when you `require` it rather than force it here.\r\n // Overwrite name so constructor name is nicer :D\r\n Modernizr = new Modernizr();\r\n\r\n \r\n\r\n var classes = [];\r\n \r\n\r\n /**\r\n * is returns a boolean if the typeof an obj is exactly type.\r\n *\r\n * @access private\r\n * @function is\r\n * @param {*} obj - A thing we want to check the type of\r\n * @param {string} type - A string to compare the typeof against\r\n * @returns {boolean}\r\n */\r\n\r\n function is(obj, type) {\r\n return typeof obj === type;\r\n }\r\n ;\r\n\r\n /**\r\n * Run through all tests and detect their support in the current UA.\r\n *\r\n * @access private\r\n */\r\n\r\n function testRunner() {\r\n var featureNames;\r\n var feature;\r\n var aliasIdx;\r\n var result;\r\n var nameIdx;\r\n var featureName;\r\n var featureNameSplit;\r\n\r\n for (var featureIdx in tests) {\r\n if (tests.hasOwnProperty(featureIdx)) {\r\n featureNames = [];\r\n feature = tests[featureIdx];\r\n // run the test, throw the return value into the Modernizr,\r\n // then based on that boolean, define an appropriate className\r\n // and push it into an array of classes we'll join later.\r\n //\r\n // If there is no name, it's an 'async' test that is run,\r\n // but not directly added to the object. That should\r\n // be done with a post-run addTest call.\r\n if (feature.name) {\r\n featureNames.push(feature.name.toLowerCase());\r\n\r\n if (feature.options && feature.options.aliases && feature.options.aliases.length) {\r\n // Add all the aliases into the names list\r\n for (aliasIdx = 0; aliasIdx < feature.options.aliases.length; aliasIdx++) {\r\n featureNames.push(feature.options.aliases[aliasIdx].toLowerCase());\r\n }\r\n }\r\n }\r\n\r\n // Run the test, or use the raw value if it's not a function\r\n result = is(feature.fn, 'function') ? feature.fn() : feature.fn;\r\n\r\n\r\n // Set each of the names on the Modernizr object\r\n for (nameIdx = 0; nameIdx < featureNames.length; nameIdx++) {\r\n featureName = featureNames[nameIdx];\r\n // Support dot properties as sub tests. We don't do checking to make sure\r\n // that the implied parent tests have been added. You must call them in\r\n // order (either in the test, or make the parent test a dependency).\r\n //\r\n // Cap it to TWO to make the logic simple and because who needs that kind of subtesting\r\n // hashtag famous last words\r\n featureNameSplit = featureName.split('.');\r\n\r\n if (featureNameSplit.length === 1) {\r\n Modernizr[featureNameSplit[0]] = result;\r\n } else {\r\n // cast to a Boolean, if not one already\r\n if (Modernizr[featureNameSplit[0]] && !(Modernizr[featureNameSplit[0]] instanceof Boolean)) {\r\n Modernizr[featureNameSplit[0]] = new Boolean(Modernizr[featureNameSplit[0]]);\r\n }\r\n\r\n Modernizr[featureNameSplit[0]][featureNameSplit[1]] = result;\r\n }\r\n\r\n classes.push((result ? '' : 'no-') + featureNameSplit.join('-'));\r\n }\r\n }\r\n }\r\n }\r\n ;\r\n\r\n /**\r\n * docElement is a convenience wrapper to grab the root element of the document\r\n *\r\n * @access private\r\n * @returns {HTMLElement|SVGElement} The root element of the document\r\n */\r\n\r\n var docElement = document.documentElement;\r\n \r\n\r\n /**\r\n * A convenience helper to check if the document we are running in is an SVG document\r\n *\r\n * @access private\r\n * @returns {boolean}\r\n */\r\n\r\n var isSVG = docElement.nodeName.toLowerCase() === 'svg';\r\n \r\n\r\n /**\r\n * createElement is a convenience wrapper around document.createElement. Since we\r\n * use createElement all over the place, this allows for (slightly) smaller code\r\n * as well as abstracting away issues with creating elements in contexts other than\r\n * HTML documents (e.g. SVG documents).\r\n *\r\n * @access private\r\n * @function createElement\r\n * @returns {HTMLElement|SVGElement} An HTML or SVG element\r\n */\r\n\r\n function createElement() {\r\n if (typeof document.createElement !== 'function') {\r\n // This is the case in IE7, where the type of createElement is \"object\".\r\n // For this reason, we cannot call apply() as Object is not a Function.\r\n return document.createElement(arguments[0]);\r\n } else if (isSVG) {\r\n return document.createElementNS.call(document, 'http://www.w3.org/2000/svg', arguments[0]);\r\n } else {\r\n return document.createElement.apply(document, arguments);\r\n }\r\n }\r\n\r\n ;\r\n\r\n /**\r\n * getBody returns the body of a document, or an element that can stand in for\r\n * the body if a real body does not exist\r\n *\r\n * @access private\r\n * @function getBody\r\n * @returns {HTMLElement|SVGElement} Returns the real body of a document, or an\r\n * artificially created element that stands in for the body\r\n */\r\n\r\n function getBody() {\r\n // After page load injecting a fake body doesn't work so check if body exists\r\n var body = document.body;\r\n\r\n if (!body) {\r\n // Can't use the real body create a fake one.\r\n body = createElement(isSVG ? 'svg' : 'body');\r\n body.fake = true;\r\n }\r\n\r\n return body;\r\n }\r\n\r\n ;\r\n\r\n /**\r\n * injectElementWithStyles injects an element with style element and some CSS rules\r\n *\r\n * @access private\r\n * @function injectElementWithStyles\r\n * @param {string} rule - String representing a css rule\r\n * @param {function} callback - A function that is used to test the injected element\r\n * @param {number} [nodes] - An integer representing the number of additional nodes you want injected\r\n * @param {string[]} [testnames] - An array of strings that are used as ids for the additional nodes\r\n * @returns {boolean}\r\n */\r\n\r\n function injectElementWithStyles(rule, callback, nodes, testnames) {\r\n var mod = 'modernizr';\r\n var style;\r\n var ret;\r\n var node;\r\n var docOverflow;\r\n var div = createElement('div');\r\n var body = getBody();\r\n\r\n if (parseInt(nodes, 10)) {\r\n // In order not to give false positives we create a node for each test\r\n // This also allows the method to scale for unspecified uses\r\n while (nodes--) {\r\n node = createElement('div');\r\n node.id = testnames ? testnames[nodes] : mod + (nodes + 1);\r\n div.appendChild(node);\r\n }\r\n }\r\n\r\n style = createElement('style');\r\n style.type = 'text/css';\r\n style.id = 's' + mod;\r\n\r\n // IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody.\r\n // Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270\r\n (!body.fake ? div : body).appendChild(style);\r\n body.appendChild(div);\r\n\r\n if (style.styleSheet) {\r\n style.styleSheet.cssText = rule;\r\n } else {\r\n style.appendChild(document.createTextNode(rule));\r\n }\r\n div.id = mod;\r\n\r\n if (body.fake) {\r\n //avoid crashing IE8, if background image is used\r\n body.style.background = '';\r\n //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible\r\n body.style.overflow = 'hidden';\r\n docOverflow = docElement.style.overflow;\r\n docElement.style.overflow = 'hidden';\r\n docElement.appendChild(body);\r\n }\r\n\r\n ret = callback(div, rule);\r\n // If this is done after page load we don't want to remove the body so check if body exists\r\n if (body.fake) {\r\n body.parentNode.removeChild(body);\r\n docElement.style.overflow = docOverflow;\r\n // Trigger layout so kinetic scrolling isn't disabled in iOS6+\r\n // eslint-disable-next-line\r\n docElement.offsetHeight;\r\n } else {\r\n div.parentNode.removeChild(div);\r\n }\r\n\r\n return !!ret;\r\n\r\n }\r\n\r\n ;\r\n\r\n /**\r\n * Modernizr.mq tests a given media query, live against the current state of the window\r\n * adapted from matchMedia polyfill by Scott Jehl and Paul Irish\r\n * gist.github.com/786768\r\n *\r\n * @memberof Modernizr\r\n * @name Modernizr.mq\r\n * @optionName Modernizr.mq()\r\n * @optionProp mq\r\n * @access public\r\n * @function mq\r\n * @param {string} mq - String of the media query we want to test\r\n * @returns {boolean}\r\n * @example\r\n * Modernizr.mq allows for you to programmatically check if the current browser\r\n * window state matches a media query.\r\n *\r\n * ```js\r\n * var query = Modernizr.mq('(min-width: 900px)');\r\n *\r\n * if (query) {\r\n * // the browser window is larger than 900px\r\n * }\r\n * ```\r\n *\r\n * Only valid media queries are supported, therefore you must always include values\r\n * with your media query\r\n *\r\n * ```js\r\n * // good\r\n * Modernizr.mq('(min-width: 900px)');\r\n *\r\n * // bad\r\n * Modernizr.mq('min-width');\r\n * ```\r\n *\r\n * If you would just like to test that media queries are supported in general, use\r\n *\r\n * ```js\r\n * Modernizr.mq('only all'); // true if MQ are supported, false if not\r\n * ```\r\n *\r\n *\r\n * Note that if the browser does not support media queries (e.g. old IE) mq will\r\n * always return false.\r\n */\r\n\r\n var mq = (function() {\r\n var matchMedia = window.matchMedia || window.msMatchMedia;\r\n if (matchMedia) {\r\n return function(mq) {\r\n var mql = matchMedia(mq);\r\n return mql && mql.matches || false;\r\n };\r\n }\r\n\r\n return function(mq) {\r\n var bool = false;\r\n\r\n injectElementWithStyles('@media ' + mq + ' { #modernizr { position: absolute; } }', function(node) {\r\n bool = (window.getComputedStyle ?\r\n window.getComputedStyle(node, null) :\r\n node.currentStyle).position == 'absolute';\r\n });\r\n\r\n return bool;\r\n };\r\n })();\r\n\r\n\r\n ModernizrProto.mq = mq;\r\n\r\n \r\n\r\n // Run each test\r\n testRunner();\r\n\r\n delete ModernizrProto.addTest;\r\n delete ModernizrProto.addAsyncTest;\r\n\r\n // Run the things that are supposed to run after the tests\r\n for (var i = 0; i < Modernizr._q.length; i++) {\r\n Modernizr._q[i]();\r\n }\r\n\r\n // Leak Modernizr namespace\r\n window.Modernizr = Modernizr;\r\n\r\n\r\n;\r\n\r\n})(window, document);","// Fine Uploader 5.16.2 - MIT licensed. http://fineuploader.com\n(function(global) {\n var qq = function(element) {\n \"use strict\";\n return {\n hide: function() {\n element.style.display = \"none\";\n return this;\n },\n attach: function(type, fn) {\n if (element.addEventListener) {\n element.addEventListener(type, fn, false);\n } else if (element.attachEvent) {\n element.attachEvent(\"on\" + type, fn);\n }\n return function() {\n qq(element).detach(type, fn);\n };\n },\n detach: function(type, fn) {\n if (element.removeEventListener) {\n element.removeEventListener(type, fn, false);\n } else if (element.attachEvent) {\n element.detachEvent(\"on\" + type, fn);\n }\n return this;\n },\n contains: function(descendant) {\n if (!descendant) {\n return false;\n }\n if (element === descendant) {\n return true;\n }\n if (element.contains) {\n return element.contains(descendant);\n } else {\n return !!(descendant.compareDocumentPosition(element) & 8);\n }\n },\n insertBefore: function(elementB) {\n elementB.parentNode.insertBefore(element, elementB);\n return this;\n },\n remove: function() {\n element.parentNode.removeChild(element);\n return this;\n },\n css: function(styles) {\n if (element.style == null) {\n throw new qq.Error(\"Can't apply style to node as it is not on the HTMLElement prototype chain!\");\n }\n if (styles.opacity != null) {\n if (typeof element.style.opacity !== \"string\" && typeof element.filters !== \"undefined\") {\n styles.filter = \"alpha(opacity=\" + Math.round(100 * styles.opacity) + \")\";\n }\n }\n qq.extend(element.style, styles);\n return this;\n },\n hasClass: function(name, considerParent) {\n var re = new RegExp(\"(^| )\" + name + \"( |$)\");\n return re.test(element.className) || !!(considerParent && re.test(element.parentNode.className));\n },\n addClass: function(name) {\n if (!qq(element).hasClass(name)) {\n element.className += \" \" + name;\n }\n return this;\n },\n removeClass: function(name) {\n var re = new RegExp(\"(^| )\" + name + \"( |$)\");\n element.className = element.className.replace(re, \" \").replace(/^\\s+|\\s+$/g, \"\");\n return this;\n },\n getByClass: function(className, first) {\n var candidates, result = [];\n if (first && element.querySelector) {\n return element.querySelector(\".\" + className);\n } else if (element.querySelectorAll) {\n return element.querySelectorAll(\".\" + className);\n }\n candidates = element.getElementsByTagName(\"*\");\n qq.each(candidates, function(idx, val) {\n if (qq(val).hasClass(className)) {\n result.push(val);\n }\n });\n return first ? result[0] : result;\n },\n getFirstByClass: function(className) {\n return qq(element).getByClass(className, true);\n },\n children: function() {\n var children = [], child = element.firstChild;\n while (child) {\n if (child.nodeType === 1) {\n children.push(child);\n }\n child = child.nextSibling;\n }\n return children;\n },\n setText: function(text) {\n element.innerText = text;\n element.textContent = text;\n return this;\n },\n clearText: function() {\n return qq(element).setText(\"\");\n },\n hasAttribute: function(attrName) {\n var attrVal;\n if (element.hasAttribute) {\n if (!element.hasAttribute(attrName)) {\n return false;\n }\n return /^false$/i.exec(element.getAttribute(attrName)) == null;\n } else {\n attrVal = element[attrName];\n if (attrVal === undefined) {\n return false;\n }\n return /^false$/i.exec(attrVal) == null;\n }\n }\n };\n };\n (function() {\n \"use strict\";\n qq.canvasToBlob = function(canvas, mime, quality) {\n return qq.dataUriToBlob(canvas.toDataURL(mime, quality));\n };\n qq.dataUriToBlob = function(dataUri) {\n var arrayBuffer, byteString, createBlob = function(data, mime) {\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder, blobBuilder = BlobBuilder && new BlobBuilder();\n if (blobBuilder) {\n blobBuilder.append(data);\n return blobBuilder.getBlob(mime);\n } else {\n return new Blob([ data ], {\n type: mime\n });\n }\n }, intArray, mimeString;\n if (dataUri.split(\",\")[0].indexOf(\"base64\") >= 0) {\n byteString = atob(dataUri.split(\",\")[1]);\n } else {\n byteString = decodeURI(dataUri.split(\",\")[1]);\n }\n mimeString = dataUri.split(\",\")[0].split(\":\")[1].split(\";\")[0];\n arrayBuffer = new ArrayBuffer(byteString.length);\n intArray = new Uint8Array(arrayBuffer);\n qq.each(byteString, function(idx, character) {\n intArray[idx] = character.charCodeAt(0);\n });\n return createBlob(arrayBuffer, mimeString);\n };\n qq.log = function(message, level) {\n if (window.console) {\n if (!level || level === \"info\") {\n window.console.log(message);\n } else {\n if (window.console[level]) {\n window.console[level](message);\n } else {\n window.console.log(\"<\" + level + \"> \" + message);\n }\n }\n }\n };\n qq.isObject = function(variable) {\n return variable && !variable.nodeType && Object.prototype.toString.call(variable) === \"[object Object]\";\n };\n qq.isFunction = function(variable) {\n return typeof variable === \"function\";\n };\n qq.isArray = function(value) {\n return Object.prototype.toString.call(value) === \"[object Array]\" || value && window.ArrayBuffer && value.buffer && value.buffer.constructor === ArrayBuffer;\n };\n qq.isItemList = function(maybeItemList) {\n return Object.prototype.toString.call(maybeItemList) === \"[object DataTransferItemList]\";\n };\n qq.isNodeList = function(maybeNodeList) {\n return Object.prototype.toString.call(maybeNodeList) === \"[object NodeList]\" || maybeNodeList.item && maybeNodeList.namedItem;\n };\n qq.isString = function(maybeString) {\n return Object.prototype.toString.call(maybeString) === \"[object String]\";\n };\n qq.trimStr = function(string) {\n if (String.prototype.trim) {\n return string.trim();\n }\n return string.replace(/^\\s+|\\s+$/g, \"\");\n };\n qq.format = function(str) {\n var args = Array.prototype.slice.call(arguments, 1), newStr = str, nextIdxToReplace = newStr.indexOf(\"{}\");\n qq.each(args, function(idx, val) {\n var strBefore = newStr.substring(0, nextIdxToReplace), strAfter = newStr.substring(nextIdxToReplace + 2);\n newStr = strBefore + val + strAfter;\n nextIdxToReplace = newStr.indexOf(\"{}\", nextIdxToReplace + val.length);\n if (nextIdxToReplace < 0) {\n return false;\n }\n });\n return newStr;\n };\n qq.isFile = function(maybeFile) {\n return window.File && Object.prototype.toString.call(maybeFile) === \"[object File]\";\n };\n qq.isFileList = function(maybeFileList) {\n return window.FileList && Object.prototype.toString.call(maybeFileList) === \"[object FileList]\";\n };\n qq.isFileOrInput = function(maybeFileOrInput) {\n return qq.isFile(maybeFileOrInput) || qq.isInput(maybeFileOrInput);\n };\n qq.isInput = function(maybeInput, notFile) {\n var evaluateType = function(type) {\n var normalizedType = type.toLowerCase();\n if (notFile) {\n return normalizedType !== \"file\";\n }\n return normalizedType === \"file\";\n };\n if (window.HTMLInputElement) {\n if (Object.prototype.toString.call(maybeInput) === \"[object HTMLInputElement]\") {\n if (maybeInput.type && evaluateType(maybeInput.type)) {\n return true;\n }\n }\n }\n if (maybeInput.tagName) {\n if (maybeInput.tagName.toLowerCase() === \"input\") {\n if (maybeInput.type && evaluateType(maybeInput.type)) {\n return true;\n }\n }\n }\n return false;\n };\n qq.isBlob = function(maybeBlob) {\n if (window.Blob && Object.prototype.toString.call(maybeBlob) === \"[object Blob]\") {\n return true;\n }\n };\n qq.isXhrUploadSupported = function() {\n var input = document.createElement(\"input\");\n input.type = \"file\";\n return input.multiple !== undefined && typeof File !== \"undefined\" && typeof FormData !== \"undefined\" && typeof qq.createXhrInstance().upload !== \"undefined\";\n };\n qq.createXhrInstance = function() {\n if (window.XMLHttpRequest) {\n return new XMLHttpRequest();\n }\n try {\n return new ActiveXObject(\"MSXML2.XMLHTTP.3.0\");\n } catch (error) {\n qq.log(\"Neither XHR or ActiveX are supported!\", \"error\");\n return null;\n }\n };\n qq.isFolderDropSupported = function(dataTransfer) {\n return dataTransfer.items && dataTransfer.items.length > 0 && dataTransfer.items[0].webkitGetAsEntry;\n };\n qq.isFileChunkingSupported = function() {\n return !qq.androidStock() && qq.isXhrUploadSupported() && (File.prototype.slice !== undefined || File.prototype.webkitSlice !== undefined || File.prototype.mozSlice !== undefined);\n };\n qq.sliceBlob = function(fileOrBlob, start, end) {\n var slicer = fileOrBlob.slice || fileOrBlob.mozSlice || fileOrBlob.webkitSlice;\n return slicer.call(fileOrBlob, start, end);\n };\n qq.arrayBufferToHex = function(buffer) {\n var bytesAsHex = \"\", bytes = new Uint8Array(buffer);\n qq.each(bytes, function(idx, byt) {\n var byteAsHexStr = byt.toString(16);\n if (byteAsHexStr.length < 2) {\n byteAsHexStr = \"0\" + byteAsHexStr;\n }\n bytesAsHex += byteAsHexStr;\n });\n return bytesAsHex;\n };\n qq.readBlobToHex = function(blob, startOffset, length) {\n var initialBlob = qq.sliceBlob(blob, startOffset, startOffset + length), fileReader = new FileReader(), promise = new qq.Promise();\n fileReader.onload = function() {\n promise.success(qq.arrayBufferToHex(fileReader.result));\n };\n fileReader.onerror = promise.failure;\n fileReader.readAsArrayBuffer(initialBlob);\n return promise;\n };\n qq.extend = function(first, second, extendNested) {\n qq.each(second, function(prop, val) {\n if (extendNested && qq.isObject(val)) {\n if (first[prop] === undefined) {\n first[prop] = {};\n }\n qq.extend(first[prop], val, true);\n } else {\n first[prop] = val;\n }\n });\n return first;\n };\n qq.override = function(target, sourceFn) {\n var super_ = {}, source = sourceFn(super_);\n qq.each(source, function(srcPropName, srcPropVal) {\n if (target[srcPropName] !== undefined) {\n super_[srcPropName] = target[srcPropName];\n }\n target[srcPropName] = srcPropVal;\n });\n return target;\n };\n qq.indexOf = function(arr, elt, from) {\n if (arr.indexOf) {\n return arr.indexOf(elt, from);\n }\n from = from || 0;\n var len = arr.length;\n if (from < 0) {\n from += len;\n }\n for (;from < len; from += 1) {\n if (arr.hasOwnProperty(from) && arr[from] === elt) {\n return from;\n }\n }\n return -1;\n };\n qq.getUniqueId = function() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function(c) {\n var r = Math.random() * 16 | 0, v = c == \"x\" ? r : r & 3 | 8;\n return v.toString(16);\n });\n };\n qq.ie = function() {\n return navigator.userAgent.indexOf(\"MSIE\") !== -1 || navigator.userAgent.indexOf(\"Trident\") !== -1;\n };\n qq.ie7 = function() {\n return navigator.userAgent.indexOf(\"MSIE 7\") !== -1;\n };\n qq.ie8 = function() {\n return navigator.userAgent.indexOf(\"MSIE 8\") !== -1;\n };\n qq.ie10 = function() {\n return navigator.userAgent.indexOf(\"MSIE 10\") !== -1;\n };\n qq.ie11 = function() {\n return qq.ie() && navigator.userAgent.indexOf(\"rv:11\") !== -1;\n };\n qq.edge = function() {\n return navigator.userAgent.indexOf(\"Edge\") >= 0;\n };\n qq.safari = function() {\n return navigator.vendor !== undefined && navigator.vendor.indexOf(\"Apple\") !== -1;\n };\n qq.chrome = function() {\n return navigator.vendor !== undefined && navigator.vendor.indexOf(\"Google\") !== -1;\n };\n qq.opera = function() {\n return navigator.vendor !== undefined && navigator.vendor.indexOf(\"Opera\") !== -1;\n };\n qq.firefox = function() {\n return !qq.edge() && !qq.ie11() && navigator.userAgent.indexOf(\"Mozilla\") !== -1 && navigator.vendor !== undefined && navigator.vendor === \"\";\n };\n qq.windows = function() {\n return navigator.platform === \"Win32\";\n };\n qq.android = function() {\n return navigator.userAgent.toLowerCase().indexOf(\"android\") !== -1;\n };\n qq.androidStock = function() {\n return qq.android() && navigator.userAgent.toLowerCase().indexOf(\"chrome\") < 0;\n };\n qq.ios6 = function() {\n return qq.ios() && navigator.userAgent.indexOf(\" OS 6_\") !== -1;\n };\n qq.ios7 = function() {\n return qq.ios() && navigator.userAgent.indexOf(\" OS 7_\") !== -1;\n };\n qq.ios8 = function() {\n return qq.ios() && navigator.userAgent.indexOf(\" OS 8_\") !== -1;\n };\n qq.ios800 = function() {\n return qq.ios() && navigator.userAgent.indexOf(\" OS 8_0 \") !== -1;\n };\n qq.ios = function() {\n return navigator.userAgent.indexOf(\"iPad\") !== -1 || navigator.userAgent.indexOf(\"iPod\") !== -1 || navigator.userAgent.indexOf(\"iPhone\") !== -1;\n };\n qq.iosChrome = function() {\n return qq.ios() && navigator.userAgent.indexOf(\"CriOS\") !== -1;\n };\n qq.iosSafari = function() {\n return qq.ios() && !qq.iosChrome() && navigator.userAgent.indexOf(\"Safari\") !== -1;\n };\n qq.iosSafariWebView = function() {\n return qq.ios() && !qq.iosChrome() && !qq.iosSafari();\n };\n qq.preventDefault = function(e) {\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n e.returnValue = false;\n }\n };\n qq.toElement = function() {\n var div = document.createElement(\"div\");\n return function(html) {\n div.innerHTML = html;\n var element = div.firstChild;\n div.removeChild(element);\n return element;\n };\n }();\n qq.each = function(iterableItem, callback) {\n var keyOrIndex, retVal;\n if (iterableItem) {\n if (window.Storage && iterableItem.constructor === window.Storage) {\n for (keyOrIndex = 0; keyOrIndex < iterableItem.length; keyOrIndex++) {\n retVal = callback(iterableItem.key(keyOrIndex), iterableItem.getItem(iterableItem.key(keyOrIndex)));\n if (retVal === false) {\n break;\n }\n }\n } else if (qq.isArray(iterableItem) || qq.isItemList(iterableItem) || qq.isNodeList(iterableItem)) {\n for (keyOrIndex = 0; keyOrIndex < iterableItem.length; keyOrIndex++) {\n retVal = callback(keyOrIndex, iterableItem[keyOrIndex]);\n if (retVal === false) {\n break;\n }\n }\n } else if (qq.isString(iterableItem)) {\n for (keyOrIndex = 0; keyOrIndex < iterableItem.length; keyOrIndex++) {\n retVal = callback(keyOrIndex, iterableItem.charAt(keyOrIndex));\n if (retVal === false) {\n break;\n }\n }\n } else {\n for (keyOrIndex in iterableItem) {\n if (Object.prototype.hasOwnProperty.call(iterableItem, keyOrIndex)) {\n retVal = callback(keyOrIndex, iterableItem[keyOrIndex]);\n if (retVal === false) {\n break;\n }\n }\n }\n }\n }\n };\n qq.bind = function(oldFunc, context) {\n if (qq.isFunction(oldFunc)) {\n var args = Array.prototype.slice.call(arguments, 2);\n return function() {\n var newArgs = qq.extend([], args);\n if (arguments.length) {\n newArgs = newArgs.concat(Array.prototype.slice.call(arguments));\n }\n return oldFunc.apply(context, newArgs);\n };\n }\n throw new Error(\"first parameter must be a function!\");\n };\n qq.obj2url = function(obj, temp, prefixDone) {\n var uristrings = [], prefix = \"&\", add = function(nextObj, i) {\n var nextTemp = temp ? /\\[\\]$/.test(temp) ? temp : temp + \"[\" + i + \"]\" : i;\n if (nextTemp !== \"undefined\" && i !== \"undefined\") {\n uristrings.push(typeof nextObj === \"object\" ? qq.obj2url(nextObj, nextTemp, true) : Object.prototype.toString.call(nextObj) === \"[object Function]\" ? encodeURIComponent(nextTemp) + \"=\" + encodeURIComponent(nextObj()) : encodeURIComponent(nextTemp) + \"=\" + encodeURIComponent(nextObj));\n }\n };\n if (!prefixDone && temp) {\n prefix = /\\?/.test(temp) ? /\\?$/.test(temp) ? \"\" : \"&\" : \"?\";\n uristrings.push(temp);\n uristrings.push(qq.obj2url(obj));\n } else if (Object.prototype.toString.call(obj) === \"[object Array]\" && typeof obj !== \"undefined\") {\n qq.each(obj, function(idx, val) {\n add(val, idx);\n });\n } else if (typeof obj !== \"undefined\" && obj !== null && typeof obj === \"object\") {\n qq.each(obj, function(prop, val) {\n add(val, prop);\n });\n } else {\n uristrings.push(encodeURIComponent(temp) + \"=\" + encodeURIComponent(obj));\n }\n if (temp) {\n return uristrings.join(prefix);\n } else {\n return uristrings.join(prefix).replace(/^&/, \"\").replace(/%20/g, \"+\");\n }\n };\n qq.obj2FormData = function(obj, formData, arrayKeyName) {\n if (!formData) {\n formData = new FormData();\n }\n qq.each(obj, function(key, val) {\n key = arrayKeyName ? arrayKeyName + \"[\" + key + \"]\" : key;\n if (qq.isObject(val)) {\n qq.obj2FormData(val, formData, key);\n } else if (qq.isFunction(val)) {\n formData.append(key, val());\n } else {\n formData.append(key, val);\n }\n });\n return formData;\n };\n qq.obj2Inputs = function(obj, form) {\n var input;\n if (!form) {\n form = document.createElement(\"form\");\n }\n qq.obj2FormData(obj, {\n append: function(key, val) {\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", key);\n input.setAttribute(\"value\", val);\n form.appendChild(input);\n }\n });\n return form;\n };\n qq.parseJson = function(json) {\n if (window.JSON && qq.isFunction(JSON.parse)) {\n return JSON.parse(json);\n } else {\n return eval(\"(\" + json + \")\");\n }\n };\n qq.getExtension = function(filename) {\n var extIdx = filename.lastIndexOf(\".\") + 1;\n if (extIdx > 0) {\n return filename.substr(extIdx, filename.length - extIdx);\n }\n };\n qq.getFilename = function(blobOrFileInput) {\n if (qq.isInput(blobOrFileInput)) {\n return blobOrFileInput.value.replace(/.*(\\/|\\\\)/, \"\");\n } else if (qq.isFile(blobOrFileInput)) {\n if (blobOrFileInput.fileName !== null && blobOrFileInput.fileName !== undefined) {\n return blobOrFileInput.fileName;\n }\n }\n return blobOrFileInput.name;\n };\n qq.DisposeSupport = function() {\n var disposers = [];\n return {\n dispose: function() {\n var disposer;\n do {\n disposer = disposers.shift();\n if (disposer) {\n disposer();\n }\n } while (disposer);\n },\n attach: function() {\n var args = arguments;\n this.addDisposer(qq(args[0]).attach.apply(this, Array.prototype.slice.call(arguments, 1)));\n },\n addDisposer: function(disposeFunction) {\n disposers.push(disposeFunction);\n }\n };\n };\n })();\n (function() {\n \"use strict\";\n if (typeof define === \"function\" && define.amd) {\n define(function() {\n return qq;\n });\n } else if (typeof module !== \"undefined\" && module.exports) {\n module.exports = qq;\n } else {\n global.qq = qq;\n }\n })();\n (function() {\n \"use strict\";\n qq.Error = function(message) {\n this.message = \"[Fine Uploader \" + qq.version + \"] \" + message;\n };\n qq.Error.prototype = new Error();\n })();\n qq.version = \"5.16.2\";\n qq.supportedFeatures = function() {\n \"use strict\";\n var supportsUploading, supportsUploadingBlobs, supportsFileDrop, supportsAjaxFileUploading, supportsFolderDrop, supportsChunking, supportsResume, supportsUploadViaPaste, supportsUploadCors, supportsDeleteFileXdr, supportsDeleteFileCorsXhr, supportsDeleteFileCors, supportsFolderSelection, supportsImagePreviews, supportsUploadProgress;\n function testSupportsFileInputElement() {\n var supported = true, tempInput;\n try {\n tempInput = document.createElement(\"input\");\n tempInput.type = \"file\";\n qq(tempInput).hide();\n if (tempInput.disabled) {\n supported = false;\n }\n } catch (ex) {\n supported = false;\n }\n return supported;\n }\n function isChrome14OrHigher() {\n return (qq.chrome() || qq.opera()) && navigator.userAgent.match(/Chrome\\/[1][4-9]|Chrome\\/[2-9][0-9]/) !== undefined;\n }\n function isCrossOriginXhrSupported() {\n if (window.XMLHttpRequest) {\n var xhr = qq.createXhrInstance();\n return xhr.withCredentials !== undefined;\n }\n return false;\n }\n function isXdrSupported() {\n return window.XDomainRequest !== undefined;\n }\n function isCrossOriginAjaxSupported() {\n if (isCrossOriginXhrSupported()) {\n return true;\n }\n return isXdrSupported();\n }\n function isFolderSelectionSupported() {\n return document.createElement(\"input\").webkitdirectory !== undefined;\n }\n function isLocalStorageSupported() {\n try {\n return !!window.localStorage && qq.isFunction(window.localStorage.setItem);\n } catch (error) {\n return false;\n }\n }\n function isDragAndDropSupported() {\n var span = document.createElement(\"span\");\n return (\"draggable\" in span || \"ondragstart\" in span && \"ondrop\" in span) && !qq.android() && !qq.ios();\n }\n supportsUploading = testSupportsFileInputElement();\n supportsAjaxFileUploading = supportsUploading && qq.isXhrUploadSupported();\n supportsUploadingBlobs = supportsAjaxFileUploading && !qq.androidStock();\n supportsFileDrop = supportsAjaxFileUploading && isDragAndDropSupported();\n supportsFolderDrop = supportsFileDrop && function() {\n var input = document.createElement(\"input\");\n input.type = \"file\";\n return !!(\"webkitdirectory\" in (input || document.querySelectorAll(\"input[type=file]\")[0]));\n }();\n supportsChunking = supportsAjaxFileUploading && qq.isFileChunkingSupported();\n supportsResume = supportsAjaxFileUploading && supportsChunking && isLocalStorageSupported();\n supportsUploadViaPaste = supportsAjaxFileUploading && isChrome14OrHigher();\n supportsUploadCors = supportsUploading && (window.postMessage !== undefined || supportsAjaxFileUploading);\n supportsDeleteFileCorsXhr = isCrossOriginXhrSupported();\n supportsDeleteFileXdr = isXdrSupported();\n supportsDeleteFileCors = isCrossOriginAjaxSupported();\n supportsFolderSelection = isFolderSelectionSupported();\n supportsImagePreviews = supportsAjaxFileUploading && window.FileReader !== undefined;\n supportsUploadProgress = function() {\n if (supportsAjaxFileUploading) {\n return !qq.androidStock() && !qq.iosChrome();\n }\n return false;\n }();\n return {\n ajaxUploading: supportsAjaxFileUploading,\n blobUploading: supportsUploadingBlobs,\n canDetermineSize: supportsAjaxFileUploading,\n chunking: supportsChunking,\n deleteFileCors: supportsDeleteFileCors,\n deleteFileCorsXdr: supportsDeleteFileXdr,\n deleteFileCorsXhr: supportsDeleteFileCorsXhr,\n dialogElement: !!window.HTMLDialogElement,\n fileDrop: supportsFileDrop,\n folderDrop: supportsFolderDrop,\n folderSelection: supportsFolderSelection,\n imagePreviews: supportsImagePreviews,\n imageValidation: supportsImagePreviews,\n itemSizeValidation: supportsAjaxFileUploading,\n pause: supportsChunking,\n progressBar: supportsUploadProgress,\n resume: supportsResume,\n scaling: supportsImagePreviews && supportsUploadingBlobs,\n tiffPreviews: qq.safari(),\n unlimitedScaledImageSize: !qq.ios(),\n uploading: supportsUploading,\n uploadCors: supportsUploadCors,\n uploadCustomHeaders: supportsAjaxFileUploading,\n uploadNonMultipart: supportsAjaxFileUploading,\n uploadViaPaste: supportsUploadViaPaste\n };\n }();\n qq.isGenericPromise = function(maybePromise) {\n \"use strict\";\n return !!(maybePromise && maybePromise.then && qq.isFunction(maybePromise.then));\n };\n qq.Promise = function() {\n \"use strict\";\n var successArgs, failureArgs, successCallbacks = [], failureCallbacks = [], doneCallbacks = [], state = 0;\n qq.extend(this, {\n then: function(onSuccess, onFailure) {\n if (state === 0) {\n if (onSuccess) {\n successCallbacks.push(onSuccess);\n }\n if (onFailure) {\n failureCallbacks.push(onFailure);\n }\n } else if (state === -1) {\n onFailure && onFailure.apply(null, failureArgs);\n } else if (onSuccess) {\n onSuccess.apply(null, successArgs);\n }\n return this;\n },\n done: function(callback) {\n if (state === 0) {\n doneCallbacks.push(callback);\n } else {\n callback.apply(null, failureArgs === undefined ? successArgs : failureArgs);\n }\n return this;\n },\n success: function() {\n state = 1;\n successArgs = arguments;\n if (successCallbacks.length) {\n qq.each(successCallbacks, function(idx, callback) {\n callback.apply(null, successArgs);\n });\n }\n if (doneCallbacks.length) {\n qq.each(doneCallbacks, function(idx, callback) {\n callback.apply(null, successArgs);\n });\n }\n return this;\n },\n failure: function() {\n state = -1;\n failureArgs = arguments;\n if (failureCallbacks.length) {\n qq.each(failureCallbacks, function(idx, callback) {\n callback.apply(null, failureArgs);\n });\n }\n if (doneCallbacks.length) {\n qq.each(doneCallbacks, function(idx, callback) {\n callback.apply(null, failureArgs);\n });\n }\n return this;\n }\n });\n };\n qq.BlobProxy = function(referenceBlob, onCreate) {\n \"use strict\";\n qq.extend(this, {\n referenceBlob: referenceBlob,\n create: function() {\n return onCreate(referenceBlob);\n }\n });\n };\n qq.UploadButton = function(o) {\n \"use strict\";\n var self = this, disposeSupport = new qq.DisposeSupport(), options = {\n acceptFiles: null,\n element: null,\n focusClass: \"qq-upload-button-focus\",\n folders: false,\n hoverClass: \"qq-upload-button-hover\",\n ios8BrowserCrashWorkaround: false,\n multiple: false,\n name: \"qqfile\",\n onChange: function(input) {},\n title: null\n }, input, buttonId;\n qq.extend(options, o);\n buttonId = qq.getUniqueId();\n function createInput() {\n var input = document.createElement(\"input\");\n input.setAttribute(qq.UploadButton.BUTTON_ID_ATTR_NAME, buttonId);\n input.setAttribute(\"title\", options.title);\n self.setMultiple(options.multiple, input);\n if (options.folders && qq.supportedFeatures.folderSelection) {\n input.setAttribute(\"webkitdirectory\", \"\");\n }\n if (options.acceptFiles) {\n input.setAttribute(\"accept\", options.acceptFiles);\n }\n input.setAttribute(\"type\", \"file\");\n input.setAttribute(\"name\", options.name);\n qq(input).css({\n position: \"absolute\",\n right: 0,\n top: 0,\n fontFamily: \"Arial\",\n fontSize: qq.ie() && !qq.ie8() ? \"3500px\" : \"118px\",\n margin: 0,\n padding: 0,\n cursor: \"pointer\",\n opacity: 0\n });\n !qq.ie7() && qq(input).css({\n height: \"100%\"\n });\n options.element.appendChild(input);\n disposeSupport.attach(input, \"change\", function() {\n options.onChange(input);\n });\n disposeSupport.attach(input, \"mouseover\", function() {\n qq(options.element).addClass(options.hoverClass);\n });\n disposeSupport.attach(input, \"mouseout\", function() {\n qq(options.element).removeClass(options.hoverClass);\n });\n disposeSupport.attach(input, \"focus\", function() {\n qq(options.element).addClass(options.focusClass);\n });\n disposeSupport.attach(input, \"blur\", function() {\n qq(options.element).removeClass(options.focusClass);\n });\n return input;\n }\n qq(options.element).css({\n position: \"relative\",\n overflow: \"hidden\",\n direction: \"ltr\"\n });\n qq.extend(this, {\n getInput: function() {\n return input;\n },\n getButtonId: function() {\n return buttonId;\n },\n setMultiple: function(isMultiple, optInput) {\n var input = optInput || this.getInput();\n if (options.ios8BrowserCrashWorkaround && qq.ios8() && (qq.iosChrome() || qq.iosSafariWebView())) {\n input.setAttribute(\"multiple\", \"\");\n } else {\n if (isMultiple) {\n input.setAttribute(\"multiple\", \"\");\n } else {\n input.removeAttribute(\"multiple\");\n }\n }\n },\n setAcceptFiles: function(acceptFiles) {\n if (acceptFiles !== options.acceptFiles) {\n input.setAttribute(\"accept\", acceptFiles);\n }\n },\n reset: function() {\n if (input.parentNode) {\n qq(input).remove();\n }\n qq(options.element).removeClass(options.focusClass);\n input = null;\n input = createInput();\n }\n });\n input = createInput();\n };\n qq.UploadButton.BUTTON_ID_ATTR_NAME = \"qq-button-id\";\n qq.UploadData = function(uploaderProxy) {\n \"use strict\";\n var data = [], byUuid = {}, byStatus = {}, byProxyGroupId = {}, byBatchId = {};\n function getDataByIds(idOrIds) {\n if (qq.isArray(idOrIds)) {\n var entries = [];\n qq.each(idOrIds, function(idx, id) {\n entries.push(data[id]);\n });\n return entries;\n }\n return data[idOrIds];\n }\n function getDataByUuids(uuids) {\n if (qq.isArray(uuids)) {\n var entries = [];\n qq.each(uuids, function(idx, uuid) {\n entries.push(data[byUuid[uuid]]);\n });\n return entries;\n }\n return data[byUuid[uuids]];\n }\n function getDataByStatus(status) {\n var statusResults = [], statuses = [].concat(status);\n qq.each(statuses, function(index, statusEnum) {\n var statusResultIndexes = byStatus[statusEnum];\n if (statusResultIndexes !== undefined) {\n qq.each(statusResultIndexes, function(i, dataIndex) {\n statusResults.push(data[dataIndex]);\n });\n }\n });\n return statusResults;\n }\n qq.extend(this, {\n addFile: function(spec) {\n var status = spec.status || qq.status.SUBMITTING, id = data.push({\n name: spec.name,\n originalName: spec.name,\n uuid: spec.uuid,\n size: spec.size == null ? -1 : spec.size,\n status: status,\n file: spec.file\n }) - 1;\n if (spec.batchId) {\n data[id].batchId = spec.batchId;\n if (byBatchId[spec.batchId] === undefined) {\n byBatchId[spec.batchId] = [];\n }\n byBatchId[spec.batchId].push(id);\n }\n if (spec.proxyGroupId) {\n data[id].proxyGroupId = spec.proxyGroupId;\n if (byProxyGroupId[spec.proxyGroupId] === undefined) {\n byProxyGroupId[spec.proxyGroupId] = [];\n }\n byProxyGroupId[spec.proxyGroupId].push(id);\n }\n data[id].id = id;\n byUuid[spec.uuid] = id;\n if (byStatus[status] === undefined) {\n byStatus[status] = [];\n }\n byStatus[status].push(id);\n spec.onBeforeStatusChange && spec.onBeforeStatusChange(id);\n uploaderProxy.onStatusChange(id, null, status);\n return id;\n },\n retrieve: function(optionalFilter) {\n if (qq.isObject(optionalFilter) && data.length) {\n if (optionalFilter.id !== undefined) {\n return getDataByIds(optionalFilter.id);\n } else if (optionalFilter.uuid !== undefined) {\n return getDataByUuids(optionalFilter.uuid);\n } else if (optionalFilter.status) {\n return getDataByStatus(optionalFilter.status);\n }\n } else {\n return qq.extend([], data, true);\n }\n },\n removeFileRef: function(id) {\n var record = getDataByIds(id);\n if (record) {\n delete record.file;\n }\n },\n reset: function() {\n data = [];\n byUuid = {};\n byStatus = {};\n byBatchId = {};\n },\n setStatus: function(id, newStatus) {\n var oldStatus = data[id].status, byStatusOldStatusIndex = qq.indexOf(byStatus[oldStatus], id);\n byStatus[oldStatus].splice(byStatusOldStatusIndex, 1);\n data[id].status = newStatus;\n if (byStatus[newStatus] === undefined) {\n byStatus[newStatus] = [];\n }\n byStatus[newStatus].push(id);\n uploaderProxy.onStatusChange(id, oldStatus, newStatus);\n },\n uuidChanged: function(id, newUuid) {\n var oldUuid = data[id].uuid;\n data[id].uuid = newUuid;\n byUuid[newUuid] = id;\n delete byUuid[oldUuid];\n },\n updateName: function(id, newName) {\n data[id].name = newName;\n },\n updateSize: function(id, newSize) {\n data[id].size = newSize;\n },\n setParentId: function(targetId, parentId) {\n data[targetId].parentId = parentId;\n },\n getIdsInProxyGroup: function(id) {\n var proxyGroupId = data[id].proxyGroupId;\n if (proxyGroupId) {\n return byProxyGroupId[proxyGroupId];\n }\n return [];\n },\n getIdsInBatch: function(id) {\n var batchId = data[id].batchId;\n return byBatchId[batchId];\n }\n });\n };\n qq.status = {\n SUBMITTING: \"submitting\",\n SUBMITTED: \"submitted\",\n REJECTED: \"rejected\",\n QUEUED: \"queued\",\n CANCELED: \"canceled\",\n PAUSED: \"paused\",\n UPLOADING: \"uploading\",\n UPLOAD_FINALIZING: \"upload finalizing\",\n UPLOAD_RETRYING: \"retrying upload\",\n UPLOAD_SUCCESSFUL: \"upload successful\",\n UPLOAD_FAILED: \"upload failed\",\n DELETE_FAILED: \"delete failed\",\n DELETING: \"deleting\",\n DELETED: \"deleted\"\n };\n (function() {\n \"use strict\";\n qq.basePublicApi = {\n addBlobs: function(blobDataOrArray, params, endpoint) {\n this.addFiles(blobDataOrArray, params, endpoint);\n },\n addInitialFiles: function(cannedFileList) {\n var self = this;\n qq.each(cannedFileList, function(index, cannedFile) {\n self._addCannedFile(cannedFile);\n });\n },\n addFiles: function(data, params, endpoint) {\n this._maybeHandleIos8SafariWorkaround();\n var batchId = this._storedIds.length === 0 ? qq.getUniqueId() : this._currentBatchId, processBlob = qq.bind(function(blob) {\n this._handleNewFile({\n blob: blob,\n name: this._options.blobs.defaultName\n }, batchId, verifiedFiles);\n }, this), processBlobData = qq.bind(function(blobData) {\n this._handleNewFile(blobData, batchId, verifiedFiles);\n }, this), processCanvas = qq.bind(function(canvas) {\n var blob = qq.canvasToBlob(canvas);\n this._handleNewFile({\n blob: blob,\n name: this._options.blobs.defaultName + \".png\"\n }, batchId, verifiedFiles);\n }, this), processCanvasData = qq.bind(function(canvasData) {\n var normalizedQuality = canvasData.quality && canvasData.quality / 100, blob = qq.canvasToBlob(canvasData.canvas, canvasData.type, normalizedQuality);\n this._handleNewFile({\n blob: blob,\n name: canvasData.name\n }, batchId, verifiedFiles);\n }, this), processFileOrInput = qq.bind(function(fileOrInput) {\n if (qq.isInput(fileOrInput) && qq.supportedFeatures.ajaxUploading) {\n var files = Array.prototype.slice.call(fileOrInput.files), self = this;\n qq.each(files, function(idx, file) {\n self._handleNewFile(file, batchId, verifiedFiles);\n });\n } else {\n this._handleNewFile(fileOrInput, batchId, verifiedFiles);\n }\n }, this), normalizeData = function() {\n if (qq.isFileList(data)) {\n data = Array.prototype.slice.call(data);\n }\n data = [].concat(data);\n }, self = this, verifiedFiles = [];\n this._currentBatchId = batchId;\n if (data) {\n normalizeData();\n qq.each(data, function(idx, fileContainer) {\n if (qq.isFileOrInput(fileContainer)) {\n processFileOrInput(fileContainer);\n } else if (qq.isBlob(fileContainer)) {\n processBlob(fileContainer);\n } else if (qq.isObject(fileContainer)) {\n if (fileContainer.blob && fileContainer.name) {\n processBlobData(fileContainer);\n } else if (fileContainer.canvas && fileContainer.name) {\n processCanvasData(fileContainer);\n }\n } else if (fileContainer.tagName && fileContainer.tagName.toLowerCase() === \"canvas\") {\n processCanvas(fileContainer);\n } else {\n self.log(fileContainer + \" is not a valid file container! Ignoring!\", \"warn\");\n }\n });\n this.log(\"Received \" + verifiedFiles.length + \" files.\");\n this._prepareItemsForUpload(verifiedFiles, params, endpoint);\n }\n },\n cancel: function(id) {\n var uploadData = this._uploadData.retrieve({\n id: id\n });\n if (uploadData && uploadData.status === qq.status.UPLOAD_FINALIZING) {\n this.log(qq.format(\"Ignoring cancel for file ID {} ({}). Finalizing upload.\", id, this.getName(id)), \"error\");\n } else {\n this._handler.cancel(id);\n }\n },\n cancelAll: function() {\n var storedIdsCopy = [], self = this;\n qq.extend(storedIdsCopy, this._storedIds);\n qq.each(storedIdsCopy, function(idx, storedFileId) {\n self.cancel(storedFileId);\n });\n this._handler.cancelAll();\n },\n clearStoredFiles: function() {\n this._storedIds = [];\n },\n continueUpload: function(id) {\n var uploadData = this._uploadData.retrieve({\n id: id\n });\n if (!qq.supportedFeatures.pause || !this._options.chunking.enabled) {\n return false;\n }\n if (uploadData.status === qq.status.PAUSED) {\n this.log(qq.format(\"Paused file ID {} ({}) will be continued. Not paused.\", id, this.getName(id)));\n this._uploadFile(id);\n return true;\n } else {\n this.log(qq.format(\"Ignoring continue for file ID {} ({}). Not paused.\", id, this.getName(id)), \"error\");\n }\n return false;\n },\n deleteFile: function(id) {\n return this._onSubmitDelete(id);\n },\n doesExist: function(fileOrBlobId) {\n return this._handler.isValid(fileOrBlobId);\n },\n drawThumbnail: function(fileId, imgOrCanvas, maxSize, fromServer, customResizeFunction) {\n var promiseToReturn = new qq.Promise(), fileOrUrl, options;\n if (this._imageGenerator) {\n fileOrUrl = this._thumbnailUrls[fileId];\n options = {\n customResizeFunction: customResizeFunction,\n maxSize: maxSize > 0 ? maxSize : null,\n scale: maxSize > 0\n };\n if (!fromServer && qq.supportedFeatures.imagePreviews) {\n fileOrUrl = this.getFile(fileId);\n }\n if (fileOrUrl == null) {\n promiseToReturn.failure({\n container: imgOrCanvas,\n error: \"File or URL not found.\"\n });\n } else {\n this._imageGenerator.generate(fileOrUrl, imgOrCanvas, options).then(function success(modifiedContainer) {\n promiseToReturn.success(modifiedContainer);\n }, function failure(container, reason) {\n promiseToReturn.failure({\n container: container,\n error: reason || \"Problem generating thumbnail\"\n });\n });\n }\n } else {\n promiseToReturn.failure({\n container: imgOrCanvas,\n error: \"Missing image generator module\"\n });\n }\n return promiseToReturn;\n },\n getButton: function(fileId) {\n return this._getButton(this._buttonIdsForFileIds[fileId]);\n },\n getEndpoint: function(fileId) {\n return this._endpointStore.get(fileId);\n },\n getFile: function(fileOrBlobId) {\n var file = this._handler.getFile(fileOrBlobId);\n var uploadDataRecord;\n if (!file) {\n uploadDataRecord = this._uploadData.retrieve({\n id: fileOrBlobId\n });\n if (uploadDataRecord) {\n file = uploadDataRecord.file;\n }\n }\n return file || null;\n },\n getInProgress: function() {\n return this._uploadData.retrieve({\n status: [ qq.status.UPLOADING, qq.status.UPLOAD_RETRYING, qq.status.QUEUED ]\n }).length;\n },\n getName: function(id) {\n return this._uploadData.retrieve({\n id: id\n }).name;\n },\n getParentId: function(id) {\n var uploadDataEntry = this.getUploads({\n id: id\n }), parentId = null;\n if (uploadDataEntry) {\n if (uploadDataEntry.parentId !== undefined) {\n parentId = uploadDataEntry.parentId;\n }\n }\n return parentId;\n },\n getResumableFilesData: function() {\n return this._handler.getResumableFilesData();\n },\n getSize: function(id) {\n return this._uploadData.retrieve({\n id: id\n }).size;\n },\n getNetUploads: function() {\n return this._netUploaded;\n },\n getRemainingAllowedItems: function() {\n var allowedItems = this._currentItemLimit;\n if (allowedItems > 0) {\n return allowedItems - this._netUploadedOrQueued;\n }\n return null;\n },\n getUploads: function(optionalFilter) {\n return this._uploadData.retrieve(optionalFilter);\n },\n getUuid: function(id) {\n return this._uploadData.retrieve({\n id: id\n }).uuid;\n },\n isResumable: function(id) {\n return this._handler.hasResumeRecord(id);\n },\n log: function(str, level) {\n if (this._options.debug && (!level || level === \"info\")) {\n qq.log(\"[Fine Uploader \" + qq.version + \"] \" + str);\n } else if (level && level !== \"info\") {\n qq.log(\"[Fine Uploader \" + qq.version + \"] \" + str, level);\n }\n },\n pauseUpload: function(id) {\n var uploadData = this._uploadData.retrieve({\n id: id\n });\n if (!qq.supportedFeatures.pause || !this._options.chunking.enabled) {\n return false;\n }\n if (qq.indexOf([ qq.status.UPLOADING, qq.status.UPLOAD_RETRYING ], uploadData.status) >= 0) {\n if (this._handler.pause(id)) {\n this._uploadData.setStatus(id, qq.status.PAUSED);\n return true;\n } else {\n this.log(qq.format(\"Unable to pause file ID {} ({}).\", id, this.getName(id)), \"error\");\n }\n } else {\n this.log(qq.format(\"Ignoring pause for file ID {} ({}). Not in progress.\", id, this.getName(id)), \"error\");\n }\n return false;\n },\n removeFileRef: function(id) {\n this._handler.expunge(id);\n this._uploadData.removeFileRef(id);\n },\n reset: function() {\n this.log(\"Resetting uploader...\");\n this._handler.reset();\n this._storedIds = [];\n this._autoRetries = [];\n this._retryTimeouts = [];\n this._preventRetries = [];\n this._thumbnailUrls = [];\n qq.each(this._buttons, function(idx, button) {\n button.reset();\n });\n this._paramsStore.reset();\n this._endpointStore.reset();\n this._netUploadedOrQueued = 0;\n this._netUploaded = 0;\n this._uploadData.reset();\n this._buttonIdsForFileIds = [];\n this._pasteHandler && this._pasteHandler.reset();\n this._options.session.refreshOnReset && this._refreshSessionData();\n this._succeededSinceLastAllComplete = [];\n this._failedSinceLastAllComplete = [];\n this._totalProgress && this._totalProgress.reset();\n this._customResumeDataStore.reset();\n },\n retry: function(id) {\n return this._manualRetry(id);\n },\n scaleImage: function(id, specs) {\n var self = this;\n return qq.Scaler.prototype.scaleImage(id, specs, {\n log: qq.bind(self.log, self),\n getFile: qq.bind(self.getFile, self),\n uploadData: self._uploadData\n });\n },\n setCustomHeaders: function(headers, id) {\n this._customHeadersStore.set(headers, id);\n },\n setCustomResumeData: function(id, data) {\n this._customResumeDataStore.set(data, id);\n },\n setDeleteFileCustomHeaders: function(headers, id) {\n this._deleteFileCustomHeadersStore.set(headers, id);\n },\n setDeleteFileEndpoint: function(endpoint, id) {\n this._deleteFileEndpointStore.set(endpoint, id);\n },\n setDeleteFileParams: function(params, id) {\n this._deleteFileParamsStore.set(params, id);\n },\n setEndpoint: function(endpoint, id) {\n this._endpointStore.set(endpoint, id);\n },\n setForm: function(elementOrId) {\n this._updateFormSupportAndParams(elementOrId);\n },\n setItemLimit: function(newItemLimit) {\n this._currentItemLimit = newItemLimit;\n },\n setName: function(id, newName) {\n this._uploadData.updateName(id, newName);\n },\n setParams: function(params, id) {\n this._paramsStore.set(params, id);\n },\n setUuid: function(id, newUuid) {\n return this._uploadData.uuidChanged(id, newUuid);\n },\n setStatus: function(id, newStatus) {\n var fileRecord = this.getUploads({\n id: id\n });\n if (!fileRecord) {\n throw new qq.Error(id + \" is not a valid file ID.\");\n }\n switch (newStatus) {\n case qq.status.DELETED:\n this._onDeleteComplete(id, null, false);\n break;\n\n case qq.status.DELETE_FAILED:\n this._onDeleteComplete(id, null, true);\n break;\n\n default:\n var errorMessage = \"Method setStatus called on '\" + name + \"' not implemented yet for \" + newStatus;\n this.log(errorMessage);\n throw new qq.Error(errorMessage);\n }\n },\n uploadStoredFiles: function() {\n if (this._storedIds.length === 0) {\n this._itemError(\"noFilesError\");\n } else {\n this._uploadStoredFiles();\n }\n }\n };\n qq.basePrivateApi = {\n _addCannedFile: function(sessionData) {\n var self = this;\n return this._uploadData.addFile({\n uuid: sessionData.uuid,\n name: sessionData.name,\n size: sessionData.size,\n status: qq.status.UPLOAD_SUCCESSFUL,\n onBeforeStatusChange: function(id) {\n sessionData.deleteFileEndpoint && self.setDeleteFileEndpoint(sessionData.deleteFileEndpoint, id);\n sessionData.deleteFileParams && self.setDeleteFileParams(sessionData.deleteFileParams, id);\n if (sessionData.thumbnailUrl) {\n self._thumbnailUrls[id] = sessionData.thumbnailUrl;\n }\n self._netUploaded++;\n self._netUploadedOrQueued++;\n }\n });\n },\n _annotateWithButtonId: function(file, associatedInput) {\n if (qq.isFile(file)) {\n file.qqButtonId = this._getButtonId(associatedInput);\n }\n },\n _batchError: function(message) {\n this._options.callbacks.onError(null, null, message, undefined);\n },\n _createDeleteHandler: function() {\n var self = this;\n return new qq.DeleteFileAjaxRequester({\n method: this._options.deleteFile.method.toUpperCase(),\n maxConnections: this._options.maxConnections,\n uuidParamName: this._options.request.uuidName,\n customHeaders: this._deleteFileCustomHeadersStore,\n paramsStore: this._deleteFileParamsStore,\n endpointStore: this._deleteFileEndpointStore,\n cors: this._options.cors,\n log: qq.bind(self.log, self),\n onDelete: function(id) {\n self._onDelete(id);\n self._options.callbacks.onDelete(id);\n },\n onDeleteComplete: function(id, xhrOrXdr, isError) {\n self._onDeleteComplete(id, xhrOrXdr, isError);\n self._options.callbacks.onDeleteComplete(id, xhrOrXdr, isError);\n }\n });\n },\n _createPasteHandler: function() {\n var self = this;\n return new qq.PasteSupport({\n targetElement: this._options.paste.targetElement,\n callbacks: {\n log: qq.bind(self.log, self),\n pasteReceived: function(blob) {\n self._handleCheckedCallback({\n name: \"onPasteReceived\",\n callback: qq.bind(self._options.callbacks.onPasteReceived, self, blob),\n onSuccess: qq.bind(self._handlePasteSuccess, self, blob),\n identifier: \"pasted image\"\n });\n }\n }\n });\n },\n _createStore: function(initialValue, _readOnlyValues_) {\n var store = {}, catchall = initialValue, perIdReadOnlyValues = {}, readOnlyValues = _readOnlyValues_, copy = function(orig) {\n if (qq.isObject(orig)) {\n return qq.extend({}, orig);\n }\n return orig;\n }, getReadOnlyValues = function() {\n if (qq.isFunction(readOnlyValues)) {\n return readOnlyValues();\n }\n return readOnlyValues;\n }, includeReadOnlyValues = function(id, existing) {\n if (readOnlyValues && qq.isObject(existing)) {\n qq.extend(existing, getReadOnlyValues());\n }\n if (perIdReadOnlyValues[id]) {\n qq.extend(existing, perIdReadOnlyValues[id]);\n }\n };\n return {\n set: function(val, id) {\n if (id == null) {\n store = {};\n catchall = copy(val);\n } else {\n store[id] = copy(val);\n }\n },\n get: function(id) {\n var values;\n if (id != null && store[id]) {\n values = store[id];\n } else {\n values = copy(catchall);\n }\n includeReadOnlyValues(id, values);\n return copy(values);\n },\n addReadOnly: function(id, values) {\n if (qq.isObject(store)) {\n if (id === null) {\n if (qq.isFunction(values)) {\n readOnlyValues = values;\n } else {\n readOnlyValues = readOnlyValues || {};\n qq.extend(readOnlyValues, values);\n }\n } else {\n perIdReadOnlyValues[id] = perIdReadOnlyValues[id] || {};\n qq.extend(perIdReadOnlyValues[id], values);\n }\n }\n },\n remove: function(fileId) {\n return delete store[fileId];\n },\n reset: function() {\n store = {};\n perIdReadOnlyValues = {};\n catchall = initialValue;\n }\n };\n },\n _createUploadDataTracker: function() {\n var self = this;\n return new qq.UploadData({\n getName: function(id) {\n return self.getName(id);\n },\n getUuid: function(id) {\n return self.getUuid(id);\n },\n getSize: function(id) {\n return self.getSize(id);\n },\n onStatusChange: function(id, oldStatus, newStatus) {\n self._onUploadStatusChange(id, oldStatus, newStatus);\n self._options.callbacks.onStatusChange(id, oldStatus, newStatus);\n self._maybeAllComplete(id, newStatus);\n if (self._totalProgress) {\n setTimeout(function() {\n self._totalProgress.onStatusChange(id, oldStatus, newStatus);\n }, 0);\n }\n }\n });\n },\n _createUploadButton: function(spec) {\n var self = this, acceptFiles = spec.accept || this._options.validation.acceptFiles, allowedExtensions = spec.allowedExtensions || this._options.validation.allowedExtensions, button;\n function allowMultiple() {\n if (qq.supportedFeatures.ajaxUploading) {\n if (self._options.workarounds.iosEmptyVideos && qq.ios() && !qq.ios6() && self._isAllowedExtension(allowedExtensions, \".mov\")) {\n return false;\n }\n if (spec.multiple === undefined) {\n return self._options.multiple;\n }\n return spec.multiple;\n }\n return false;\n }\n button = new qq.UploadButton({\n acceptFiles: acceptFiles,\n element: spec.element,\n focusClass: this._options.classes.buttonFocus,\n folders: spec.folders,\n hoverClass: this._options.classes.buttonHover,\n ios8BrowserCrashWorkaround: this._options.workarounds.ios8BrowserCrash,\n multiple: allowMultiple(),\n name: this._options.request.inputName,\n onChange: function(input) {\n self._onInputChange(input);\n },\n title: spec.title == null ? this._options.text.fileInputTitle : spec.title\n });\n this._disposeSupport.addDisposer(function() {\n button.dispose();\n });\n self._buttons.push(button);\n return button;\n },\n _createUploadHandler: function(additionalOptions, namespace) {\n var self = this, lastOnProgress = {}, options = {\n debug: this._options.debug,\n maxConnections: this._options.maxConnections,\n cors: this._options.cors,\n paramsStore: this._paramsStore,\n endpointStore: this._endpointStore,\n chunking: this._options.chunking,\n resume: this._options.resume,\n blobs: this._options.blobs,\n log: qq.bind(self.log, self),\n preventRetryParam: this._options.retry.preventRetryResponseProperty,\n onProgress: function(id, name, loaded, total) {\n if (loaded < 0 || total < 0) {\n return;\n }\n if (lastOnProgress[id]) {\n if (lastOnProgress[id].loaded !== loaded || lastOnProgress[id].total !== total) {\n self._onProgress(id, name, loaded, total);\n self._options.callbacks.onProgress(id, name, loaded, total);\n }\n } else {\n self._onProgress(id, name, loaded, total);\n self._options.callbacks.onProgress(id, name, loaded, total);\n }\n lastOnProgress[id] = {\n loaded: loaded,\n total: total\n };\n },\n onComplete: function(id, name, result, xhr) {\n delete lastOnProgress[id];\n var status = self.getUploads({\n id: id\n }).status, retVal;\n if (status === qq.status.UPLOAD_SUCCESSFUL || status === qq.status.UPLOAD_FAILED) {\n return;\n }\n retVal = self._onComplete(id, name, result, xhr);\n if (retVal instanceof qq.Promise) {\n retVal.done(function() {\n self._options.callbacks.onComplete(id, name, result, xhr);\n });\n } else {\n self._options.callbacks.onComplete(id, name, result, xhr);\n }\n },\n onCancel: function(id, name, cancelFinalizationEffort) {\n var promise = new qq.Promise();\n self._handleCheckedCallback({\n name: \"onCancel\",\n callback: qq.bind(self._options.callbacks.onCancel, self, id, name),\n onFailure: promise.failure,\n onSuccess: function() {\n cancelFinalizationEffort.then(function() {\n self._onCancel(id, name);\n });\n promise.success();\n },\n identifier: id\n });\n return promise;\n },\n onUploadPrep: qq.bind(this._onUploadPrep, this),\n onUpload: function(id, name) {\n self._onUpload(id, name);\n var onUploadResult = self._options.callbacks.onUpload(id, name);\n if (qq.isGenericPromise(onUploadResult)) {\n self.log(qq.format(\"onUpload for {} returned a Promise - waiting for resolution.\", id));\n return onUploadResult;\n }\n return new qq.Promise().success();\n },\n onUploadChunk: function(id, name, chunkData) {\n self._onUploadChunk(id, chunkData);\n var onUploadChunkResult = self._options.callbacks.onUploadChunk(id, name, chunkData);\n if (qq.isGenericPromise(onUploadChunkResult)) {\n self.log(qq.format(\"onUploadChunk for {}.{} returned a Promise - waiting for resolution.\", id, chunkData.partIndex));\n return onUploadChunkResult;\n }\n return new qq.Promise().success();\n },\n onUploadChunkSuccess: function(id, chunkData, result, xhr) {\n self._onUploadChunkSuccess(id, chunkData);\n self._options.callbacks.onUploadChunkSuccess.apply(self, arguments);\n },\n onResume: function(id, name, chunkData, customResumeData) {\n return self._options.callbacks.onResume(id, name, chunkData, customResumeData);\n },\n onAutoRetry: function(id, name, responseJSON, xhr) {\n return self._onAutoRetry.apply(self, arguments);\n },\n onUuidChanged: function(id, newUuid) {\n self.log(\"Server requested UUID change from '\" + self.getUuid(id) + \"' to '\" + newUuid + \"'\");\n self.setUuid(id, newUuid);\n },\n getName: qq.bind(self.getName, self),\n getUuid: qq.bind(self.getUuid, self),\n getSize: qq.bind(self.getSize, self),\n setSize: qq.bind(self._setSize, self),\n getDataByUuid: function(uuid) {\n return self.getUploads({\n uuid: uuid\n });\n },\n isQueued: function(id) {\n var status = self.getUploads({\n id: id\n }).status;\n return status === qq.status.QUEUED || status === qq.status.SUBMITTED || status === qq.status.UPLOAD_RETRYING || status === qq.status.PAUSED;\n },\n getIdsInProxyGroup: self._uploadData.getIdsInProxyGroup,\n getIdsInBatch: self._uploadData.getIdsInBatch,\n isInProgress: function(id) {\n return self.getUploads({\n id: id\n }).status === qq.status.UPLOADING;\n },\n getCustomResumeData: qq.bind(self._getCustomResumeData, self),\n setStatus: function(id, status) {\n self._uploadData.setStatus(id, status);\n }\n };\n qq.each(this._options.request, function(prop, val) {\n options[prop] = val;\n });\n options.customHeaders = this._customHeadersStore;\n if (additionalOptions) {\n qq.each(additionalOptions, function(key, val) {\n options[key] = val;\n });\n }\n return new qq.UploadHandlerController(options, namespace);\n },\n _fileOrBlobRejected: function(id) {\n this._netUploadedOrQueued--;\n this._uploadData.setStatus(id, qq.status.REJECTED);\n },\n _formatSize: function(bytes) {\n if (bytes === 0) {\n return bytes + this._options.text.sizeSymbols[0];\n }\n var i = -1;\n do {\n bytes = bytes / 1e3;\n i++;\n } while (bytes > 999);\n return Math.max(bytes, .1).toFixed(1) + this._options.text.sizeSymbols[i];\n },\n _generateExtraButtonSpecs: function() {\n var self = this;\n this._extraButtonSpecs = {};\n qq.each(this._options.extraButtons, function(idx, extraButtonOptionEntry) {\n var multiple = extraButtonOptionEntry.multiple, validation = qq.extend({}, self._options.validation, true), extraButtonSpec = qq.extend({}, extraButtonOptionEntry);\n if (multiple === undefined) {\n multiple = self._options.multiple;\n }\n if (extraButtonSpec.validation) {\n qq.extend(validation, extraButtonOptionEntry.validation, true);\n }\n qq.extend(extraButtonSpec, {\n multiple: multiple,\n validation: validation\n }, true);\n self._initExtraButton(extraButtonSpec);\n });\n },\n _getButton: function(buttonId) {\n var extraButtonsSpec = this._extraButtonSpecs[buttonId];\n if (extraButtonsSpec) {\n return extraButtonsSpec.element;\n } else if (buttonId === this._defaultButtonId) {\n return this._options.button;\n }\n },\n _getButtonId: function(buttonOrFileInputOrFile) {\n var inputs, fileInput, fileBlobOrInput = buttonOrFileInputOrFile;\n if (fileBlobOrInput instanceof qq.BlobProxy) {\n fileBlobOrInput = fileBlobOrInput.referenceBlob;\n }\n if (fileBlobOrInput && !qq.isBlob(fileBlobOrInput)) {\n if (qq.isFile(fileBlobOrInput)) {\n return fileBlobOrInput.qqButtonId;\n } else if (fileBlobOrInput.tagName.toLowerCase() === \"input\" && fileBlobOrInput.type.toLowerCase() === \"file\") {\n return fileBlobOrInput.getAttribute(qq.UploadButton.BUTTON_ID_ATTR_NAME);\n }\n inputs = fileBlobOrInput.getElementsByTagName(\"input\");\n qq.each(inputs, function(idx, input) {\n if (input.getAttribute(\"type\") === \"file\") {\n fileInput = input;\n return false;\n }\n });\n if (fileInput) {\n return fileInput.getAttribute(qq.UploadButton.BUTTON_ID_ATTR_NAME);\n }\n }\n },\n _getCustomResumeData: function(fileId) {\n return this._customResumeDataStore.get(fileId);\n },\n _getNotFinished: function() {\n return this._uploadData.retrieve({\n status: [ qq.status.UPLOADING, qq.status.UPLOAD_RETRYING, qq.status.QUEUED, qq.status.SUBMITTING, qq.status.SUBMITTED, qq.status.PAUSED ]\n }).length;\n },\n _getValidationBase: function(buttonId) {\n var extraButtonSpec = this._extraButtonSpecs[buttonId];\n return extraButtonSpec ? extraButtonSpec.validation : this._options.validation;\n },\n _getValidationDescriptor: function(fileWrapper) {\n if (fileWrapper.file instanceof qq.BlobProxy) {\n return {\n name: qq.getFilename(fileWrapper.file.referenceBlob),\n size: fileWrapper.file.referenceBlob.size\n };\n }\n return {\n name: this.getUploads({\n id: fileWrapper.id\n }).name,\n size: this.getUploads({\n id: fileWrapper.id\n }).size\n };\n },\n _getValidationDescriptors: function(fileWrappers) {\n var self = this, fileDescriptors = [];\n qq.each(fileWrappers, function(idx, fileWrapper) {\n fileDescriptors.push(self._getValidationDescriptor(fileWrapper));\n });\n return fileDescriptors;\n },\n _handleCameraAccess: function() {\n if (this._options.camera.ios && qq.ios()) {\n var acceptIosCamera = \"image/*;capture=camera\", button = this._options.camera.button, buttonId = button ? this._getButtonId(button) : this._defaultButtonId, optionRoot = this._options;\n if (buttonId && buttonId !== this._defaultButtonId) {\n optionRoot = this._extraButtonSpecs[buttonId];\n }\n optionRoot.multiple = false;\n if (optionRoot.validation.acceptFiles === null) {\n optionRoot.validation.acceptFiles = acceptIosCamera;\n } else {\n optionRoot.validation.acceptFiles += \",\" + acceptIosCamera;\n }\n qq.each(this._buttons, function(idx, button) {\n if (button.getButtonId() === buttonId) {\n button.setMultiple(optionRoot.multiple);\n button.setAcceptFiles(optionRoot.acceptFiles);\n return false;\n }\n });\n }\n },\n _handleCheckedCallback: function(details) {\n var self = this, callbackRetVal = details.callback();\n if (qq.isGenericPromise(callbackRetVal)) {\n this.log(details.name + \" - waiting for \" + details.name + \" promise to be fulfilled for \" + details.identifier);\n return callbackRetVal.then(function(successParam) {\n self.log(details.name + \" promise success for \" + details.identifier);\n details.onSuccess(successParam);\n }, function() {\n if (details.onFailure) {\n self.log(details.name + \" promise failure for \" + details.identifier);\n details.onFailure();\n } else {\n self.log(details.name + \" promise failure for \" + details.identifier);\n }\n });\n }\n if (callbackRetVal !== false) {\n details.onSuccess(callbackRetVal);\n } else {\n if (details.onFailure) {\n this.log(details.name + \" - return value was 'false' for \" + details.identifier + \". Invoking failure callback.\");\n details.onFailure();\n } else {\n this.log(details.name + \" - return value was 'false' for \" + details.identifier + \". Will not proceed.\");\n }\n }\n return callbackRetVal;\n },\n _handleNewFile: function(file, batchId, newFileWrapperList) {\n var self = this, uuid = qq.getUniqueId(), size = -1, name = qq.getFilename(file), actualFile = file.blob || file, handler = this._customNewFileHandler ? this._customNewFileHandler : qq.bind(self._handleNewFileGeneric, self);\n if (!qq.isInput(actualFile) && actualFile.size >= 0) {\n size = actualFile.size;\n }\n handler(actualFile, name, uuid, size, newFileWrapperList, batchId, this._options.request.uuidName, {\n uploadData: self._uploadData,\n paramsStore: self._paramsStore,\n addFileToHandler: function(id, file) {\n self._handler.add(id, file);\n self._netUploadedOrQueued++;\n self._trackButton(id);\n }\n });\n },\n _handleNewFileGeneric: function(file, name, uuid, size, fileList, batchId) {\n var id = this._uploadData.addFile({\n uuid: uuid,\n name: name,\n size: size,\n batchId: batchId,\n file: file\n });\n this._handler.add(id, file);\n this._trackButton(id);\n this._netUploadedOrQueued++;\n fileList.push({\n id: id,\n file: file\n });\n },\n _handlePasteSuccess: function(blob, extSuppliedName) {\n var extension = blob.type.split(\"/\")[1], name = extSuppliedName;\n if (name == null) {\n name = this._options.paste.defaultName;\n }\n name += \".\" + extension;\n this.addFiles({\n name: name,\n blob: blob\n });\n },\n _handleDeleteSuccess: function(id) {\n if (this.getUploads({\n id: id\n }).status !== qq.status.DELETED) {\n var name = this.getName(id);\n this._netUploadedOrQueued--;\n this._netUploaded--;\n this._handler.expunge(id);\n this._uploadData.setStatus(id, qq.status.DELETED);\n this.log(\"Delete request for '\" + name + \"' has succeeded.\");\n }\n },\n _handleDeleteFailed: function(id, xhrOrXdr) {\n var name = this.getName(id);\n this._uploadData.setStatus(id, qq.status.DELETE_FAILED);\n this.log(\"Delete request for '\" + name + \"' has failed.\", \"error\");\n if (!xhrOrXdr || xhrOrXdr.withCredentials === undefined) {\n this._options.callbacks.onError(id, name, \"Delete request failed\", xhrOrXdr);\n } else {\n this._options.callbacks.onError(id, name, \"Delete request failed with response code \" + xhrOrXdr.status, xhrOrXdr);\n }\n },\n _initExtraButton: function(spec) {\n var button = this._createUploadButton({\n accept: spec.validation.acceptFiles,\n allowedExtensions: spec.validation.allowedExtensions,\n element: spec.element,\n folders: spec.folders,\n multiple: spec.multiple,\n title: spec.fileInputTitle\n });\n this._extraButtonSpecs[button.getButtonId()] = spec;\n },\n _initFormSupportAndParams: function() {\n this._formSupport = qq.FormSupport && new qq.FormSupport(this._options.form, qq.bind(this.uploadStoredFiles, this), qq.bind(this.log, this));\n if (this._formSupport && this._formSupport.attachedToForm) {\n this._paramsStore = this._createStore(this._options.request.params, this._formSupport.getFormInputsAsObject);\n this._options.autoUpload = this._formSupport.newAutoUpload;\n if (this._formSupport.newEndpoint) {\n this._options.request.endpoint = this._formSupport.newEndpoint;\n }\n } else {\n this._paramsStore = this._createStore(this._options.request.params);\n }\n },\n _isDeletePossible: function() {\n if (!qq.DeleteFileAjaxRequester || !this._options.deleteFile.enabled) {\n return false;\n }\n if (this._options.cors.expected) {\n if (qq.supportedFeatures.deleteFileCorsXhr) {\n return true;\n }\n if (qq.supportedFeatures.deleteFileCorsXdr && this._options.cors.allowXdr) {\n return true;\n }\n return false;\n }\n return true;\n },\n _isAllowedExtension: function(allowed, fileName) {\n var valid = false;\n if (!allowed.length) {\n return true;\n }\n qq.each(allowed, function(idx, allowedExt) {\n if (qq.isString(allowedExt)) {\n var extRegex = new RegExp(\"\\\\.\" + allowedExt + \"$\", \"i\");\n if (fileName.match(extRegex) != null) {\n valid = true;\n return false;\n }\n }\n });\n return valid;\n },\n _itemError: function(code, maybeNameOrNames, item) {\n var message = this._options.messages[code], allowedExtensions = [], names = [].concat(maybeNameOrNames), name = names[0], buttonId = this._getButtonId(item), validationBase = this._getValidationBase(buttonId), extensionsForMessage, placeholderMatch;\n function r(name, replacement) {\n message = message.replace(name, replacement);\n }\n qq.each(validationBase.allowedExtensions, function(idx, allowedExtension) {\n if (qq.isString(allowedExtension)) {\n allowedExtensions.push(allowedExtension);\n }\n });\n extensionsForMessage = allowedExtensions.join(\", \").toLowerCase();\n r(\"{file}\", this._options.formatFileName(name));\n r(\"{extensions}\", extensionsForMessage);\n r(\"{sizeLimit}\", this._formatSize(validationBase.sizeLimit));\n r(\"{minSizeLimit}\", this._formatSize(validationBase.minSizeLimit));\n placeholderMatch = message.match(/(\\{\\w+\\})/g);\n if (placeholderMatch !== null) {\n qq.each(placeholderMatch, function(idx, placeholder) {\n r(placeholder, names[idx]);\n });\n }\n this._options.callbacks.onError(null, name, message, undefined);\n return message;\n },\n _manualRetry: function(id, callback) {\n if (this._onBeforeManualRetry(id)) {\n this._netUploadedOrQueued++;\n this._uploadData.setStatus(id, qq.status.UPLOAD_RETRYING);\n if (callback) {\n callback(id);\n } else {\n this._handler.retry(id);\n }\n return true;\n }\n },\n _maybeAllComplete: function(id, status) {\n var self = this, notFinished = this._getNotFinished();\n if (status === qq.status.UPLOAD_SUCCESSFUL) {\n this._succeededSinceLastAllComplete.push(id);\n } else if (status === qq.status.UPLOAD_FAILED) {\n this._failedSinceLastAllComplete.push(id);\n }\n if (notFinished === 0 && (this._succeededSinceLastAllComplete.length || this._failedSinceLastAllComplete.length)) {\n setTimeout(function() {\n self._onAllComplete(self._succeededSinceLastAllComplete, self._failedSinceLastAllComplete);\n }, 0);\n }\n },\n _maybeHandleIos8SafariWorkaround: function() {\n var self = this;\n if (this._options.workarounds.ios8SafariUploads && qq.ios800() && qq.iosSafari()) {\n setTimeout(function() {\n window.alert(self._options.messages.unsupportedBrowserIos8Safari);\n }, 0);\n throw new qq.Error(this._options.messages.unsupportedBrowserIos8Safari);\n }\n },\n _maybeParseAndSendUploadError: function(id, name, response, xhr) {\n if (!response.success) {\n if (xhr && xhr.status !== 200 && !response.error) {\n this._options.callbacks.onError(id, name, \"XHR returned response code \" + xhr.status, xhr);\n } else {\n var errorReason = response.error ? response.error : this._options.text.defaultResponseError;\n this._options.callbacks.onError(id, name, errorReason, xhr);\n }\n }\n },\n _maybeProcessNextItemAfterOnValidateCallback: function(validItem, items, index, params, endpoint) {\n var self = this;\n if (items.length > index) {\n if (validItem || !this._options.validation.stopOnFirstInvalidFile) {\n setTimeout(function() {\n var validationDescriptor = self._getValidationDescriptor(items[index]), buttonId = self._getButtonId(items[index].file), button = self._getButton(buttonId);\n self._handleCheckedCallback({\n name: \"onValidate\",\n callback: qq.bind(self._options.callbacks.onValidate, self, validationDescriptor, button),\n onSuccess: qq.bind(self._onValidateCallbackSuccess, self, items, index, params, endpoint),\n onFailure: qq.bind(self._onValidateCallbackFailure, self, items, index, params, endpoint),\n identifier: \"Item '\" + validationDescriptor.name + \"', size: \" + validationDescriptor.size\n });\n }, 0);\n } else if (!validItem) {\n for (;index < items.length; index++) {\n self._fileOrBlobRejected(items[index].id);\n }\n }\n }\n },\n _onAllComplete: function(successful, failed) {\n this._totalProgress && this._totalProgress.onAllComplete(successful, failed, this._preventRetries);\n this._options.callbacks.onAllComplete(qq.extend([], successful), qq.extend([], failed));\n this._succeededSinceLastAllComplete = [];\n this._failedSinceLastAllComplete = [];\n },\n _onAutoRetry: function(id, name, responseJSON, xhr, callback) {\n var self = this;\n self._preventRetries[id] = responseJSON[self._options.retry.preventRetryResponseProperty];\n if (self._shouldAutoRetry(id)) {\n var retryWaitPeriod = self._options.retry.autoAttemptDelay * 1e3;\n self._maybeParseAndSendUploadError.apply(self, arguments);\n self._options.callbacks.onAutoRetry(id, name, self._autoRetries[id]);\n self._onBeforeAutoRetry(id, name);\n self._uploadData.setStatus(id, qq.status.UPLOAD_RETRYING);\n self._retryTimeouts[id] = setTimeout(function() {\n self.log(\"Starting retry for \" + name + \"...\");\n if (callback) {\n callback(id);\n } else {\n self._handler.retry(id);\n }\n }, retryWaitPeriod);\n return true;\n }\n },\n _onBeforeAutoRetry: function(id, name) {\n this.log(\"Waiting \" + this._options.retry.autoAttemptDelay + \" seconds before retrying \" + name + \"...\");\n },\n _onBeforeManualRetry: function(id) {\n var itemLimit = this._currentItemLimit, fileName;\n if (this._preventRetries[id]) {\n this.log(\"Retries are forbidden for id \" + id, \"warn\");\n return false;\n } else if (this._handler.isValid(id)) {\n fileName = this.getName(id);\n if (this._options.callbacks.onManualRetry(id, fileName) === false) {\n return false;\n }\n if (itemLimit > 0 && this._netUploadedOrQueued + 1 > itemLimit) {\n this._itemError(\"retryFailTooManyItems\");\n return false;\n }\n this.log(\"Retrying upload for '\" + fileName + \"' (id: \" + id + \")...\");\n return true;\n } else {\n this.log(\"'\" + id + \"' is not a valid file ID\", \"error\");\n return false;\n }\n },\n _onCancel: function(id, name) {\n this._netUploadedOrQueued--;\n clearTimeout(this._retryTimeouts[id]);\n var storedItemIndex = qq.indexOf(this._storedIds, id);\n if (!this._options.autoUpload && storedItemIndex >= 0) {\n this._storedIds.splice(storedItemIndex, 1);\n }\n this._uploadData.setStatus(id, qq.status.CANCELED);\n },\n _onComplete: function(id, name, result, xhr) {\n if (!result.success) {\n this._netUploadedOrQueued--;\n this._uploadData.setStatus(id, qq.status.UPLOAD_FAILED);\n if (result[this._options.retry.preventRetryResponseProperty] === true) {\n this._preventRetries[id] = true;\n }\n } else {\n if (result.thumbnailUrl) {\n this._thumbnailUrls[id] = result.thumbnailUrl;\n }\n this._netUploaded++;\n this._uploadData.setStatus(id, qq.status.UPLOAD_SUCCESSFUL);\n }\n this._maybeParseAndSendUploadError(id, name, result, xhr);\n return result.success ? true : false;\n },\n _onDelete: function(id) {\n this._uploadData.setStatus(id, qq.status.DELETING);\n },\n _onDeleteComplete: function(id, xhrOrXdr, isError) {\n var name = this.getName(id);\n if (isError) {\n this._handleDeleteFailed(id, xhrOrXdr);\n } else {\n this._handleDeleteSuccess(id);\n }\n },\n _onInputChange: function(input) {\n var fileIndex;\n if (qq.supportedFeatures.ajaxUploading) {\n for (fileIndex = 0; fileIndex < input.files.length; fileIndex++) {\n this._annotateWithButtonId(input.files[fileIndex], input);\n }\n this.addFiles(input.files);\n } else if (input.value.length > 0) {\n this.addFiles(input);\n }\n qq.each(this._buttons, function(idx, button) {\n button.reset();\n });\n },\n _onProgress: function(id, name, loaded, total) {\n this._totalProgress && this._totalProgress.onIndividualProgress(id, loaded, total);\n },\n _onSubmit: function(id, name) {},\n _onSubmitCallbackSuccess: function(id, name) {\n this._onSubmit.apply(this, arguments);\n this._uploadData.setStatus(id, qq.status.SUBMITTED);\n this._onSubmitted.apply(this, arguments);\n if (this._options.autoUpload) {\n this._options.callbacks.onSubmitted.apply(this, arguments);\n this._uploadFile(id);\n } else {\n this._storeForLater(id);\n this._options.callbacks.onSubmitted.apply(this, arguments);\n }\n },\n _onSubmitDelete: function(id, onSuccessCallback, additionalMandatedParams) {\n var uuid = this.getUuid(id), adjustedOnSuccessCallback;\n if (onSuccessCallback) {\n adjustedOnSuccessCallback = qq.bind(onSuccessCallback, this, id, uuid, additionalMandatedParams);\n }\n if (this._isDeletePossible()) {\n this._handleCheckedCallback({\n name: \"onSubmitDelete\",\n callback: qq.bind(this._options.callbacks.onSubmitDelete, this, id),\n onSuccess: adjustedOnSuccessCallback || qq.bind(this._deleteHandler.sendDelete, this, id, uuid, additionalMandatedParams),\n identifier: id\n });\n return true;\n } else {\n this.log(\"Delete request ignored for ID \" + id + \", delete feature is disabled or request not possible \" + \"due to CORS on a user agent that does not support pre-flighting.\", \"warn\");\n return false;\n }\n },\n _onSubmitted: function(id) {},\n _onTotalProgress: function(loaded, total) {\n this._options.callbacks.onTotalProgress(loaded, total);\n },\n _onUploadPrep: function(id) {},\n _onUpload: function(id, name) {\n this._uploadData.setStatus(id, qq.status.UPLOADING);\n },\n _onUploadChunk: function(id, chunkData) {},\n _onUploadChunkSuccess: function(id, chunkData) {\n if (!this._preventRetries[id] && this._options.retry.enableAuto) {\n this._autoRetries[id] = 0;\n }\n },\n _onUploadStatusChange: function(id, oldStatus, newStatus) {\n if (newStatus === qq.status.PAUSED) {\n clearTimeout(this._retryTimeouts[id]);\n }\n },\n _onValidateBatchCallbackFailure: function(fileWrappers) {\n var self = this;\n qq.each(fileWrappers, function(idx, fileWrapper) {\n self._fileOrBlobRejected(fileWrapper.id);\n });\n },\n _onValidateBatchCallbackSuccess: function(validationDescriptors, items, params, endpoint, button) {\n var errorMessage, itemLimit = this._currentItemLimit, proposedNetFilesUploadedOrQueued = this._netUploadedOrQueued;\n if (itemLimit === 0 || proposedNetFilesUploadedOrQueued <= itemLimit) {\n if (items.length > 0) {\n this._handleCheckedCallback({\n name: \"onValidate\",\n callback: qq.bind(this._options.callbacks.onValidate, this, validationDescriptors[0], button),\n onSuccess: qq.bind(this._onValidateCallbackSuccess, this, items, 0, params, endpoint),\n onFailure: qq.bind(this._onValidateCallbackFailure, this, items, 0, params, endpoint),\n identifier: \"Item '\" + items[0].file.name + \"', size: \" + items[0].file.size\n });\n } else {\n this._itemError(\"noFilesError\");\n }\n } else {\n this._onValidateBatchCallbackFailure(items);\n errorMessage = this._options.messages.tooManyItemsError.replace(/\\{netItems\\}/g, proposedNetFilesUploadedOrQueued).replace(/\\{itemLimit\\}/g, itemLimit);\n this._batchError(errorMessage);\n }\n },\n _onValidateCallbackFailure: function(items, index, params, endpoint) {\n var nextIndex = index + 1;\n this._fileOrBlobRejected(items[index].id, items[index].file.name);\n this._maybeProcessNextItemAfterOnValidateCallback(false, items, nextIndex, params, endpoint);\n },\n _onValidateCallbackSuccess: function(items, index, params, endpoint) {\n var self = this, nextIndex = index + 1, validationDescriptor = this._getValidationDescriptor(items[index]);\n this._validateFileOrBlobData(items[index], validationDescriptor).then(function() {\n self._upload(items[index].id, params, endpoint);\n self._maybeProcessNextItemAfterOnValidateCallback(true, items, nextIndex, params, endpoint);\n }, function() {\n self._maybeProcessNextItemAfterOnValidateCallback(false, items, nextIndex, params, endpoint);\n });\n },\n _prepareItemsForUpload: function(items, params, endpoint) {\n if (items.length === 0) {\n this._itemError(\"noFilesError\");\n return;\n }\n var validationDescriptors = this._getValidationDescriptors(items), buttonId = this._getButtonId(items[0].file), button = this._getButton(buttonId);\n this._handleCheckedCallback({\n name: \"onValidateBatch\",\n callback: qq.bind(this._options.callbacks.onValidateBatch, this, validationDescriptors, button),\n onSuccess: qq.bind(this._onValidateBatchCallbackSuccess, this, validationDescriptors, items, params, endpoint, button),\n onFailure: qq.bind(this._onValidateBatchCallbackFailure, this, items),\n identifier: \"batch validation\"\n });\n },\n _preventLeaveInProgress: function() {\n var self = this;\n this._disposeSupport.attach(window, \"beforeunload\", function(e) {\n if (self.getInProgress()) {\n e = e || window.event;\n e.returnValue = self._options.messages.onLeave;\n return self._options.messages.onLeave;\n }\n });\n },\n _refreshSessionData: function() {\n var self = this, options = this._options.session;\n if (qq.Session && this._options.session.endpoint != null) {\n if (!this._session) {\n qq.extend(options, {\n cors: this._options.cors\n });\n options.log = qq.bind(this.log, this);\n options.addFileRecord = qq.bind(this._addCannedFile, this);\n this._session = new qq.Session(options);\n }\n setTimeout(function() {\n self._session.refresh().then(function(response, xhrOrXdr) {\n self._sessionRequestComplete();\n self._options.callbacks.onSessionRequestComplete(response, true, xhrOrXdr);\n }, function(response, xhrOrXdr) {\n self._options.callbacks.onSessionRequestComplete(response, false, xhrOrXdr);\n });\n }, 0);\n }\n },\n _sessionRequestComplete: function() {},\n _setSize: function(id, newSize) {\n this._uploadData.updateSize(id, newSize);\n this._totalProgress && this._totalProgress.onNewSize(id);\n },\n _shouldAutoRetry: function(id) {\n var uploadData = this._uploadData.retrieve({\n id: id\n });\n if (!this._preventRetries[id] && this._options.retry.enableAuto && uploadData.status !== qq.status.PAUSED) {\n if (this._autoRetries[id] === undefined) {\n this._autoRetries[id] = 0;\n }\n if (this._autoRetries[id] < this._options.retry.maxAutoAttempts) {\n this._autoRetries[id] += 1;\n return true;\n }\n }\n return false;\n },\n _storeForLater: function(id) {\n this._storedIds.push(id);\n },\n _trackButton: function(id) {\n var buttonId;\n if (qq.supportedFeatures.ajaxUploading) {\n buttonId = this._handler.getFile(id).qqButtonId;\n } else {\n buttonId = this._getButtonId(this._handler.getInput(id));\n }\n if (buttonId) {\n this._buttonIdsForFileIds[id] = buttonId;\n }\n },\n _updateFormSupportAndParams: function(formElementOrId) {\n this._options.form.element = formElementOrId;\n this._formSupport = qq.FormSupport && new qq.FormSupport(this._options.form, qq.bind(this.uploadStoredFiles, this), qq.bind(this.log, this));\n if (this._formSupport && this._formSupport.attachedToForm) {\n this._paramsStore.addReadOnly(null, this._formSupport.getFormInputsAsObject);\n this._options.autoUpload = this._formSupport.newAutoUpload;\n if (this._formSupport.newEndpoint) {\n this.setEndpoint(this._formSupport.newEndpoint);\n }\n }\n },\n _upload: function(id, params, endpoint) {\n var name = this.getName(id);\n if (params) {\n this.setParams(params, id);\n }\n if (endpoint) {\n this.setEndpoint(endpoint, id);\n }\n this._handleCheckedCallback({\n name: \"onSubmit\",\n callback: qq.bind(this._options.callbacks.onSubmit, this, id, name),\n onSuccess: qq.bind(this._onSubmitCallbackSuccess, this, id, name),\n onFailure: qq.bind(this._fileOrBlobRejected, this, id, name),\n identifier: id\n });\n },\n _uploadFile: function(id) {\n if (!this._handler.upload(id)) {\n this._uploadData.setStatus(id, qq.status.QUEUED);\n }\n },\n _uploadStoredFiles: function() {\n var idToUpload, stillSubmitting, self = this;\n while (this._storedIds.length) {\n idToUpload = this._storedIds.shift();\n this._uploadFile(idToUpload);\n }\n stillSubmitting = this.getUploads({\n status: qq.status.SUBMITTING\n }).length;\n if (stillSubmitting) {\n qq.log(\"Still waiting for \" + stillSubmitting + \" files to clear submit queue. Will re-parse stored IDs array shortly.\");\n setTimeout(function() {\n self._uploadStoredFiles();\n }, 1e3);\n }\n },\n _validateFileOrBlobData: function(fileWrapper, validationDescriptor) {\n var self = this, file = function() {\n if (fileWrapper.file instanceof qq.BlobProxy) {\n return fileWrapper.file.referenceBlob;\n }\n return fileWrapper.file;\n }(), name = validationDescriptor.name, size = validationDescriptor.size, buttonId = this._getButtonId(fileWrapper.file), validationBase = this._getValidationBase(buttonId), validityChecker = new qq.Promise();\n validityChecker.then(function() {}, function() {\n self._fileOrBlobRejected(fileWrapper.id, name);\n });\n if (qq.isFileOrInput(file) && !this._isAllowedExtension(validationBase.allowedExtensions, name)) {\n this._itemError(\"typeError\", name, file);\n return validityChecker.failure();\n }\n if (!this._options.validation.allowEmpty && size === 0) {\n this._itemError(\"emptyError\", name, file);\n return validityChecker.failure();\n }\n if (size > 0 && validationBase.sizeLimit && size > validationBase.sizeLimit) {\n this._itemError(\"sizeError\", name, file);\n return validityChecker.failure();\n }\n if (size > 0 && size < validationBase.minSizeLimit) {\n this._itemError(\"minSizeError\", name, file);\n return validityChecker.failure();\n }\n if (qq.ImageValidation && qq.supportedFeatures.imagePreviews && qq.isFile(file)) {\n new qq.ImageValidation(file, qq.bind(self.log, self)).validate(validationBase.image).then(validityChecker.success, function(errorCode) {\n self._itemError(errorCode + \"ImageError\", name, file);\n validityChecker.failure();\n });\n } else {\n validityChecker.success();\n }\n return validityChecker;\n },\n _wrapCallbacks: function() {\n var self, safeCallback, prop;\n self = this;\n safeCallback = function(name, callback, args) {\n var errorMsg;\n try {\n return callback.apply(self, args);\n } catch (exception) {\n errorMsg = exception.message || exception.toString();\n self.log(\"Caught exception in '\" + name + \"' callback - \" + errorMsg, \"error\");\n }\n };\n for (prop in this._options.callbacks) {\n (function() {\n var callbackName, callbackFunc;\n callbackName = prop;\n callbackFunc = self._options.callbacks[callbackName];\n self._options.callbacks[callbackName] = function() {\n return safeCallback(callbackName, callbackFunc, arguments);\n };\n })();\n }\n }\n };\n })();\n (function() {\n \"use strict\";\n qq.FineUploaderBasic = function(o) {\n var self = this;\n this._options = {\n debug: false,\n button: null,\n multiple: true,\n maxConnections: 3,\n disableCancelForFormUploads: false,\n autoUpload: true,\n warnBeforeUnload: true,\n request: {\n customHeaders: {},\n endpoint: \"/server/upload\",\n filenameParam: \"qqfilename\",\n forceMultipart: true,\n inputName: \"qqfile\",\n method: \"POST\",\n omitDefaultParams: false,\n params: {},\n paramsInBody: true,\n requireSuccessJson: true,\n totalFileSizeName: \"qqtotalfilesize\",\n uuidName: \"qquuid\"\n },\n validation: {\n allowedExtensions: [],\n sizeLimit: 0,\n minSizeLimit: 0,\n itemLimit: 0,\n stopOnFirstInvalidFile: true,\n acceptFiles: null,\n image: {\n maxHeight: 0,\n maxWidth: 0,\n minHeight: 0,\n minWidth: 0\n },\n allowEmpty: false\n },\n callbacks: {\n onSubmit: function(id, name) {},\n onSubmitted: function(id, name) {},\n onComplete: function(id, name, responseJSON, maybeXhr) {},\n onAllComplete: function(successful, failed) {},\n onCancel: function(id, name) {},\n onUpload: function(id, name) {},\n onUploadChunk: function(id, name, chunkData) {},\n onUploadChunkSuccess: function(id, chunkData, responseJSON, xhr) {},\n onResume: function(id, fileName, chunkData, customResumeData) {},\n onProgress: function(id, name, loaded, total) {},\n onTotalProgress: function(loaded, total) {},\n onError: function(id, name, reason, maybeXhrOrXdr) {},\n onAutoRetry: function(id, name, attemptNumber) {},\n onManualRetry: function(id, name) {},\n onValidateBatch: function(fileOrBlobData) {},\n onValidate: function(fileOrBlobData) {},\n onSubmitDelete: function(id) {},\n onDelete: function(id) {},\n onDeleteComplete: function(id, xhrOrXdr, isError) {},\n onPasteReceived: function(blob) {},\n onStatusChange: function(id, oldStatus, newStatus) {},\n onSessionRequestComplete: function(response, success, xhrOrXdr) {}\n },\n messages: {\n typeError: \"{file} has an invalid extension. Valid extension(s): {extensions}.\",\n sizeError: \"{file} is too large, maximum file size is {sizeLimit}.\",\n minSizeError: \"{file} is too small, minimum file size is {minSizeLimit}.\",\n emptyError: \"{file} is empty, please select files again without it.\",\n noFilesError: \"No files to upload.\",\n tooManyItemsError: \"Too many items ({netItems}) would be uploaded. Item limit is {itemLimit}.\",\n maxHeightImageError: \"Image is too tall.\",\n maxWidthImageError: \"Image is too wide.\",\n minHeightImageError: \"Image is not tall enough.\",\n minWidthImageError: \"Image is not wide enough.\",\n retryFailTooManyItems: \"Retry failed - you have reached your file limit.\",\n onLeave: \"The files are being uploaded, if you leave now the upload will be canceled.\",\n unsupportedBrowserIos8Safari: \"Unrecoverable error - this browser does not permit file uploading of any kind due to serious bugs in iOS8 Safari. Please use iOS8 Chrome until Apple fixes these issues.\"\n },\n retry: {\n enableAuto: false,\n maxAutoAttempts: 3,\n autoAttemptDelay: 5,\n preventRetryResponseProperty: \"preventRetry\"\n },\n classes: {\n buttonHover: \"qq-upload-button-hover\",\n buttonFocus: \"qq-upload-button-focus\"\n },\n chunking: {\n enabled: false,\n concurrent: {\n enabled: false\n },\n mandatory: false,\n paramNames: {\n partIndex: \"qqpartindex\",\n partByteOffset: \"qqpartbyteoffset\",\n chunkSize: \"qqchunksize\",\n totalFileSize: \"qqtotalfilesize\",\n totalParts: \"qqtotalparts\"\n },\n partSize: function(id) {\n return 2e6;\n },\n success: {\n endpoint: null,\n headers: function(id) {\n return null;\n },\n jsonPayload: false,\n method: \"POST\",\n params: function(id) {\n return null;\n },\n resetOnStatus: []\n }\n },\n resume: {\n enabled: false,\n recordsExpireIn: 7,\n paramNames: {\n resuming: \"qqresume\"\n },\n customKeys: function(fileId) {\n return [];\n }\n },\n formatFileName: function(fileOrBlobName) {\n return fileOrBlobName;\n },\n text: {\n defaultResponseError: \"Upload failure reason unknown\",\n fileInputTitle: \"file input\",\n sizeSymbols: [ \"kB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\" ]\n },\n deleteFile: {\n enabled: false,\n method: \"DELETE\",\n endpoint: \"/server/upload\",\n customHeaders: {},\n params: {}\n },\n cors: {\n expected: false,\n sendCredentials: false,\n allowXdr: false\n },\n blobs: {\n defaultName: \"misc_data\"\n },\n paste: {\n targetElement: null,\n defaultName: \"pasted_image\"\n },\n camera: {\n ios: false,\n button: null\n },\n extraButtons: [],\n session: {\n endpoint: null,\n params: {},\n customHeaders: {},\n refreshOnReset: true\n },\n form: {\n element: \"qq-form\",\n autoUpload: false,\n interceptSubmit: true\n },\n scaling: {\n customResizer: null,\n sendOriginal: true,\n orient: true,\n defaultType: null,\n defaultQuality: 80,\n failureText: \"Failed to scale\",\n includeExif: false,\n sizes: []\n },\n workarounds: {\n iosEmptyVideos: true,\n ios8SafariUploads: true,\n ios8BrowserCrash: false\n }\n };\n qq.extend(this._options, o, true);\n this._buttons = [];\n this._extraButtonSpecs = {};\n this._buttonIdsForFileIds = [];\n this._wrapCallbacks();\n this._disposeSupport = new qq.DisposeSupport();\n this._storedIds = [];\n this._autoRetries = [];\n this._retryTimeouts = [];\n this._preventRetries = [];\n this._thumbnailUrls = [];\n this._netUploadedOrQueued = 0;\n this._netUploaded = 0;\n this._uploadData = this._createUploadDataTracker();\n this._initFormSupportAndParams();\n this._customHeadersStore = this._createStore(this._options.request.customHeaders);\n this._deleteFileCustomHeadersStore = this._createStore(this._options.deleteFile.customHeaders);\n this._deleteFileParamsStore = this._createStore(this._options.deleteFile.params);\n this._endpointStore = this._createStore(this._options.request.endpoint);\n this._deleteFileEndpointStore = this._createStore(this._options.deleteFile.endpoint);\n this._handler = this._createUploadHandler();\n this._deleteHandler = qq.DeleteFileAjaxRequester && this._createDeleteHandler();\n if (this._options.button) {\n this._defaultButtonId = this._createUploadButton({\n element: this._options.button,\n title: this._options.text.fileInputTitle\n }).getButtonId();\n }\n this._generateExtraButtonSpecs();\n this._handleCameraAccess();\n if (this._options.paste.targetElement) {\n if (qq.PasteSupport) {\n this._pasteHandler = this._createPasteHandler();\n } else {\n this.log(\"Paste support module not found\", \"error\");\n }\n }\n this._options.warnBeforeUnload && this._preventLeaveInProgress();\n this._imageGenerator = qq.ImageGenerator && new qq.ImageGenerator(qq.bind(this.log, this));\n this._refreshSessionData();\n this._succeededSinceLastAllComplete = [];\n this._failedSinceLastAllComplete = [];\n this._scaler = qq.Scaler && new qq.Scaler(this._options.scaling, qq.bind(this.log, this)) || {};\n if (this._scaler.enabled) {\n this._customNewFileHandler = qq.bind(this._scaler.handleNewFile, this._scaler);\n }\n if (qq.TotalProgress && qq.supportedFeatures.progressBar) {\n this._totalProgress = new qq.TotalProgress(qq.bind(this._onTotalProgress, this), function(id) {\n var entry = self._uploadData.retrieve({\n id: id\n });\n return entry && entry.size || 0;\n });\n }\n this._currentItemLimit = this._options.validation.itemLimit;\n this._customResumeDataStore = this._createStore();\n };\n qq.FineUploaderBasic.prototype = qq.basePublicApi;\n qq.extend(qq.FineUploaderBasic.prototype, qq.basePrivateApi);\n })();\n qq.AjaxRequester = function(o) {\n \"use strict\";\n var log, shouldParamsBeInQueryString, queue = [], requestData = {}, options = {\n acceptHeader: null,\n validMethods: [ \"PATCH\", \"POST\", \"PUT\" ],\n method: \"POST\",\n contentType: \"application/x-www-form-urlencoded\",\n maxConnections: 3,\n customHeaders: {},\n endpointStore: {},\n paramsStore: {},\n mandatedParams: {},\n allowXRequestedWithAndCacheControl: true,\n successfulResponseCodes: {\n DELETE: [ 200, 202, 204 ],\n PATCH: [ 200, 201, 202, 203, 204 ],\n POST: [ 200, 201, 202, 203, 204 ],\n PUT: [ 200, 201, 202, 203, 204 ],\n GET: [ 200 ]\n },\n cors: {\n expected: false,\n sendCredentials: false\n },\n log: function(str, level) {},\n onSend: function(id) {},\n onComplete: function(id, xhrOrXdr, isError) {},\n onProgress: null\n };\n qq.extend(options, o);\n log = options.log;\n if (qq.indexOf(options.validMethods, options.method) < 0) {\n throw new Error(\"'\" + options.method + \"' is not a supported method for this type of request!\");\n }\n function isSimpleMethod() {\n return qq.indexOf([ \"GET\", \"POST\", \"HEAD\" ], options.method) >= 0;\n }\n function containsNonSimpleHeaders(headers) {\n var containsNonSimple = false;\n qq.each(containsNonSimple, function(idx, header) {\n if (qq.indexOf([ \"Accept\", \"Accept-Language\", \"Content-Language\", \"Content-Type\" ], header) < 0) {\n containsNonSimple = true;\n return false;\n }\n });\n return containsNonSimple;\n }\n function isXdr(xhr) {\n return options.cors.expected && xhr.withCredentials === undefined;\n }\n function getCorsAjaxTransport() {\n var xhrOrXdr;\n if (window.XMLHttpRequest || window.ActiveXObject) {\n xhrOrXdr = qq.createXhrInstance();\n if (xhrOrXdr.withCredentials === undefined) {\n xhrOrXdr = new XDomainRequest();\n xhrOrXdr.onload = function() {};\n xhrOrXdr.onerror = function() {};\n xhrOrXdr.ontimeout = function() {};\n xhrOrXdr.onprogress = function() {};\n }\n }\n return xhrOrXdr;\n }\n function getXhrOrXdr(id, suppliedXhr) {\n var xhrOrXdr = requestData[id] && requestData[id].xhr;\n if (!xhrOrXdr) {\n if (suppliedXhr) {\n xhrOrXdr = suppliedXhr;\n } else {\n if (options.cors.expected) {\n xhrOrXdr = getCorsAjaxTransport();\n } else {\n xhrOrXdr = qq.createXhrInstance();\n }\n }\n requestData[id].xhr = xhrOrXdr;\n }\n return xhrOrXdr;\n }\n function dequeue(id) {\n var i = qq.indexOf(queue, id), max = options.maxConnections, nextId;\n delete requestData[id];\n queue.splice(i, 1);\n if (queue.length >= max && i < max) {\n nextId = queue[max - 1];\n sendRequest(nextId);\n }\n }\n function onComplete(id, xdrError) {\n var xhr = getXhrOrXdr(id), method = options.method, isError = xdrError === true;\n dequeue(id);\n if (isError) {\n log(method + \" request for \" + id + \" has failed\", \"error\");\n } else if (!isXdr(xhr) && !isResponseSuccessful(xhr.status)) {\n isError = true;\n log(method + \" request for \" + id + \" has failed - response code \" + xhr.status, \"error\");\n }\n options.onComplete(id, xhr, isError);\n }\n function getParams(id) {\n var onDemandParams = requestData[id].additionalParams, mandatedParams = options.mandatedParams, params;\n if (options.paramsStore.get) {\n params = options.paramsStore.get(id);\n }\n if (onDemandParams) {\n qq.each(onDemandParams, function(name, val) {\n params = params || {};\n params[name] = val;\n });\n }\n if (mandatedParams) {\n qq.each(mandatedParams, function(name, val) {\n params = params || {};\n params[name] = val;\n });\n }\n return params;\n }\n function sendRequest(id, optXhr) {\n var xhr = getXhrOrXdr(id, optXhr), method = options.method, params = getParams(id), payload = requestData[id].payload, url;\n options.onSend(id);\n url = createUrl(id, params, requestData[id].additionalQueryParams);\n if (isXdr(xhr)) {\n xhr.onload = getXdrLoadHandler(id);\n xhr.onerror = getXdrErrorHandler(id);\n } else {\n xhr.onreadystatechange = getXhrReadyStateChangeHandler(id);\n }\n registerForUploadProgress(id);\n xhr.open(method, url, true);\n if (options.cors.expected && options.cors.sendCredentials && !isXdr(xhr)) {\n xhr.withCredentials = true;\n }\n setHeaders(id);\n log(\"Sending \" + method + \" request for \" + id);\n if (payload) {\n xhr.send(payload);\n } else if (shouldParamsBeInQueryString || !params) {\n xhr.send();\n } else if (params && options.contentType && options.contentType.toLowerCase().indexOf(\"application/x-www-form-urlencoded\") >= 0) {\n xhr.send(qq.obj2url(params, \"\"));\n } else if (params && options.contentType && options.contentType.toLowerCase().indexOf(\"application/json\") >= 0) {\n xhr.send(JSON.stringify(params));\n } else {\n xhr.send(params);\n }\n return xhr;\n }\n function createUrl(id, params, additionalQueryParams) {\n var endpoint = options.endpointStore.get(id), addToPath = requestData[id].addToPath;\n if (addToPath != undefined) {\n endpoint += \"/\" + addToPath;\n }\n if (shouldParamsBeInQueryString && params) {\n endpoint = qq.obj2url(params, endpoint);\n }\n if (additionalQueryParams) {\n endpoint = qq.obj2url(additionalQueryParams, endpoint);\n }\n return endpoint;\n }\n function getXhrReadyStateChangeHandler(id) {\n return function() {\n if (getXhrOrXdr(id).readyState === 4) {\n onComplete(id);\n }\n };\n }\n function registerForUploadProgress(id) {\n var onProgress = options.onProgress;\n if (onProgress) {\n getXhrOrXdr(id).upload.onprogress = function(e) {\n if (e.lengthComputable) {\n onProgress(id, e.loaded, e.total);\n }\n };\n }\n }\n function getXdrLoadHandler(id) {\n return function() {\n onComplete(id);\n };\n }\n function getXdrErrorHandler(id) {\n return function() {\n onComplete(id, true);\n };\n }\n function setHeaders(id) {\n var xhr = getXhrOrXdr(id), customHeaders = options.customHeaders, onDemandHeaders = requestData[id].additionalHeaders || {}, method = options.method, allHeaders = {};\n if (!isXdr(xhr)) {\n options.acceptHeader && xhr.setRequestHeader(\"Accept\", options.acceptHeader);\n if (options.allowXRequestedWithAndCacheControl) {\n if (!options.cors.expected || (!isSimpleMethod() || containsNonSimpleHeaders(customHeaders))) {\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n xhr.setRequestHeader(\"Cache-Control\", \"no-cache\");\n }\n }\n if (options.contentType && (method === \"POST\" || method === \"PUT\")) {\n xhr.setRequestHeader(\"Content-Type\", options.contentType);\n }\n qq.extend(allHeaders, qq.isFunction(customHeaders) ? customHeaders(id) : customHeaders);\n qq.extend(allHeaders, onDemandHeaders);\n qq.each(allHeaders, function(name, val) {\n xhr.setRequestHeader(name, val);\n });\n }\n }\n function isResponseSuccessful(responseCode) {\n return qq.indexOf(options.successfulResponseCodes[options.method], responseCode) >= 0;\n }\n function prepareToSend(id, optXhr, addToPath, additionalParams, additionalQueryParams, additionalHeaders, payload) {\n requestData[id] = {\n addToPath: addToPath,\n additionalParams: additionalParams,\n additionalQueryParams: additionalQueryParams,\n additionalHeaders: additionalHeaders,\n payload: payload\n };\n var len = queue.push(id);\n if (len <= options.maxConnections) {\n return sendRequest(id, optXhr);\n }\n }\n shouldParamsBeInQueryString = options.method === \"GET\" || options.method === \"DELETE\";\n qq.extend(this, {\n initTransport: function(id) {\n var path, params, headers, payload, cacheBuster, additionalQueryParams;\n return {\n withPath: function(appendToPath) {\n path = appendToPath;\n return this;\n },\n withParams: function(additionalParams) {\n params = additionalParams;\n return this;\n },\n withQueryParams: function(_additionalQueryParams_) {\n additionalQueryParams = _additionalQueryParams_;\n return this;\n },\n withHeaders: function(additionalHeaders) {\n headers = additionalHeaders;\n return this;\n },\n withPayload: function(thePayload) {\n payload = thePayload;\n return this;\n },\n withCacheBuster: function() {\n cacheBuster = true;\n return this;\n },\n send: function(optXhr) {\n if (cacheBuster && qq.indexOf([ \"GET\", \"DELETE\" ], options.method) >= 0) {\n params.qqtimestamp = new Date().getTime();\n }\n return prepareToSend(id, optXhr, path, params, additionalQueryParams, headers, payload);\n }\n };\n },\n canceled: function(id) {\n dequeue(id);\n }\n });\n };\n qq.UploadHandler = function(spec) {\n \"use strict\";\n var proxy = spec.proxy, fileState = {}, onCancel = proxy.onCancel, getName = proxy.getName;\n qq.extend(this, {\n add: function(id, fileItem) {\n fileState[id] = fileItem;\n fileState[id].temp = {};\n },\n cancel: function(id) {\n var self = this, cancelFinalizationEffort = new qq.Promise(), onCancelRetVal = onCancel(id, getName(id), cancelFinalizationEffort);\n onCancelRetVal.then(function() {\n if (self.isValid(id)) {\n fileState[id].canceled = true;\n self.expunge(id);\n }\n cancelFinalizationEffort.success();\n });\n },\n expunge: function(id) {\n delete fileState[id];\n },\n getThirdPartyFileId: function(id) {\n return fileState[id].key;\n },\n isValid: function(id) {\n return fileState[id] !== undefined;\n },\n reset: function() {\n fileState = {};\n },\n _getFileState: function(id) {\n return fileState[id];\n },\n _setThirdPartyFileId: function(id, thirdPartyFileId) {\n fileState[id].key = thirdPartyFileId;\n },\n _wasCanceled: function(id) {\n return !!fileState[id].canceled;\n }\n });\n };\n qq.UploadHandlerController = function(o, namespace) {\n \"use strict\";\n var controller = this, chunkingPossible = false, concurrentChunkingPossible = false, chunking, preventRetryResponse, log, handler, options = {\n paramsStore: {},\n maxConnections: 3,\n chunking: {\n enabled: false,\n multiple: {\n enabled: false\n }\n },\n log: function(str, level) {},\n onProgress: function(id, fileName, loaded, total) {},\n onComplete: function(id, fileName, response, xhr) {},\n onCancel: function(id, fileName) {},\n onUploadPrep: function(id) {},\n onUpload: function(id, fileName) {},\n onUploadChunk: function(id, fileName, chunkData) {},\n onUploadChunkSuccess: function(id, chunkData, response, xhr) {},\n onAutoRetry: function(id, fileName, response, xhr) {},\n onResume: function(id, fileName, chunkData, customResumeData) {},\n onUuidChanged: function(id, newUuid) {},\n getName: function(id) {},\n setSize: function(id, newSize) {},\n isQueued: function(id) {},\n getIdsInProxyGroup: function(id) {},\n getIdsInBatch: function(id) {},\n isInProgress: function(id) {}\n }, chunked = {\n done: function(id, chunkIdx, response, xhr) {\n var chunkData = handler._getChunkData(id, chunkIdx);\n handler._getFileState(id).attemptingResume = false;\n delete handler._getFileState(id).temp.chunkProgress[chunkIdx];\n handler._getFileState(id).loaded += chunkData.size;\n options.onUploadChunkSuccess(id, handler._getChunkDataForCallback(chunkData), response, xhr);\n },\n finalize: function(id) {\n var size = options.getSize(id), name = options.getName(id);\n log(\"All chunks have been uploaded for \" + id + \" - finalizing....\");\n handler.finalizeChunks(id).then(function(response, xhr) {\n log(\"Finalize successful for \" + id);\n var normaizedResponse = upload.normalizeResponse(response, true);\n options.onProgress(id, name, size, size);\n handler._maybeDeletePersistedChunkData(id);\n upload.cleanup(id, normaizedResponse, xhr);\n }, function(response, xhr) {\n var normalizedResponse = upload.normalizeResponse(response, false);\n log(\"Problem finalizing chunks for file ID \" + id + \" - \" + normalizedResponse.error, \"error\");\n if (normalizedResponse.reset || xhr && options.chunking.success.resetOnStatus.indexOf(xhr.status) >= 0) {\n chunked.reset(id);\n }\n if (!options.onAutoRetry(id, name, normalizedResponse, xhr)) {\n upload.cleanup(id, normalizedResponse, xhr);\n }\n });\n },\n handleFailure: function(chunkIdx, id, response, xhr) {\n var name = options.getName(id);\n log(\"Chunked upload request failed for \" + id + \", chunk \" + chunkIdx);\n handler.clearCachedChunk(id, chunkIdx);\n var responseToReport = upload.normalizeResponse(response, false), inProgressIdx;\n if (responseToReport.reset) {\n chunked.reset(id);\n } else {\n var inProgressChunksArray = handler._getFileState(id).chunking.inProgress;\n inProgressIdx = inProgressChunksArray ? qq.indexOf(inProgressChunksArray, chunkIdx) : -1;\n if (inProgressIdx >= 0) {\n handler._getFileState(id).chunking.inProgress.splice(inProgressIdx, 1);\n handler._getFileState(id).chunking.remaining.unshift(chunkIdx);\n }\n }\n if (!handler._getFileState(id).temp.ignoreFailure) {\n if (concurrentChunkingPossible) {\n handler._getFileState(id).temp.ignoreFailure = true;\n log(qq.format(\"Going to attempt to abort these chunks: {}. These are currently in-progress: {}.\", JSON.stringify(Object.keys(handler._getXhrs(id))), JSON.stringify(handler._getFileState(id).chunking.inProgress)));\n qq.each(handler._getXhrs(id), function(ckid, ckXhr) {\n log(qq.format(\"Attempting to abort file {}.{}. XHR readyState {}. \", id, ckid, ckXhr.readyState));\n ckXhr.abort();\n ckXhr._cancelled = true;\n });\n handler.moveInProgressToRemaining(id);\n connectionManager.free(id, true);\n }\n if (!options.onAutoRetry(id, name, responseToReport, xhr)) {\n upload.cleanup(id, responseToReport, xhr);\n }\n }\n },\n hasMoreParts: function(id) {\n return !!handler._getFileState(id).chunking.remaining.length;\n },\n nextPart: function(id) {\n var nextIdx = handler._getFileState(id).chunking.remaining.shift();\n if (nextIdx >= handler._getTotalChunks(id)) {\n nextIdx = null;\n }\n return nextIdx;\n },\n reset: function(id) {\n log(\"Server or callback has ordered chunking effort to be restarted on next attempt for item ID \" + id, \"error\");\n handler._maybeDeletePersistedChunkData(id);\n handler.reevaluateChunking(id);\n handler._getFileState(id).loaded = 0;\n handler._getFileState(id).attemptingResume = false;\n },\n sendNext: function(id) {\n var size = options.getSize(id), name = options.getName(id), chunkIdx = chunked.nextPart(id), chunkData = handler._getChunkData(id, chunkIdx), fileState = handler._getFileState(id), resuming = fileState.attemptingResume, inProgressChunks = fileState.chunking.inProgress || [];\n if (fileState.loaded == null) {\n fileState.loaded = 0;\n }\n if (resuming && options.onResume(id, name, chunkData, fileState.customResumeData) === false) {\n chunked.reset(id);\n chunkIdx = chunked.nextPart(id);\n chunkData = handler._getChunkData(id, chunkIdx);\n resuming = false;\n }\n if (chunkIdx == null && inProgressChunks.length === 0) {\n chunked.finalize(id);\n } else {\n inProgressChunks.push(chunkIdx);\n handler._getFileState(id).chunking.inProgress = inProgressChunks;\n if (concurrentChunkingPossible) {\n connectionManager.open(id, chunkIdx);\n }\n if (concurrentChunkingPossible && connectionManager.available() && handler._getFileState(id).chunking.remaining.length) {\n chunked.sendNext(id);\n }\n if (chunkData.blob.size === 0) {\n log(qq.format(\"Chunk {} for file {} will not be uploaded, zero sized chunk.\", chunkIdx, id), \"error\");\n chunked.handleFailure(chunkIdx, id, \"File is no longer available\", null);\n }\n var onUploadChunkPromise = options.onUploadChunk(id, name, handler._getChunkDataForCallback(chunkData));\n onUploadChunkPromise.then(function(requestOverrides) {\n if (!options.isInProgress(id)) {\n log(qq.format(\"Not sending chunked upload request for item {}.{} - no longer in progress.\", id, chunkIdx));\n } else {\n log(qq.format(\"Sending chunked upload request for item {}.{}, bytes {}-{} of {}.\", id, chunkIdx, chunkData.start + 1, chunkData.end, size));\n var uploadChunkData = {\n chunkIdx: chunkIdx,\n id: id,\n overrides: requestOverrides,\n resuming: resuming\n };\n handler.uploadChunk(uploadChunkData).then(function success(response, xhr) {\n log(\"Chunked upload request succeeded for \" + id + \", chunk \" + chunkIdx);\n handler.clearCachedChunk(id, chunkIdx);\n var inProgressChunks = handler._getFileState(id).chunking.inProgress || [], responseToReport = upload.normalizeResponse(response, true), inProgressChunkIdx = qq.indexOf(inProgressChunks, chunkIdx);\n log(qq.format(\"Chunk {} for file {} uploaded successfully.\", chunkIdx, id));\n chunked.done(id, chunkIdx, responseToReport, xhr);\n if (inProgressChunkIdx >= 0) {\n inProgressChunks.splice(inProgressChunkIdx, 1);\n }\n handler._maybePersistChunkedState(id);\n if (!chunked.hasMoreParts(id) && inProgressChunks.length === 0) {\n chunked.finalize(id);\n } else if (chunked.hasMoreParts(id)) {\n chunked.sendNext(id);\n } else {\n log(qq.format(\"File ID {} has no more chunks to send and these chunk indexes are still marked as in-progress: {}\", id, JSON.stringify(inProgressChunks)));\n }\n }, function failure(response, xhr) {\n chunked.handleFailure(chunkIdx, id, response, xhr);\n }).done(function() {\n handler.clearXhr(id, chunkIdx);\n });\n }\n }, function(error) {\n chunked.handleFailure(chunkIdx, id, error, null);\n });\n }\n }\n }, connectionManager = {\n _open: [],\n _openChunks: {},\n _waiting: [],\n available: function() {\n var max = options.maxConnections, openChunkEntriesCount = 0, openChunksCount = 0;\n qq.each(connectionManager._openChunks, function(fileId, openChunkIndexes) {\n openChunkEntriesCount++;\n openChunksCount += openChunkIndexes.length;\n });\n return max - (connectionManager._open.length - openChunkEntriesCount + openChunksCount);\n },\n free: function(id, dontAllowNext) {\n var allowNext = !dontAllowNext, waitingIndex = qq.indexOf(connectionManager._waiting, id), connectionsIndex = qq.indexOf(connectionManager._open, id), nextId;\n delete connectionManager._openChunks[id];\n if (upload.getProxyOrBlob(id) instanceof qq.BlobProxy) {\n log(\"Generated blob upload has ended for \" + id + \", disposing generated blob.\");\n delete handler._getFileState(id).file;\n }\n if (waitingIndex >= 0) {\n connectionManager._waiting.splice(waitingIndex, 1);\n } else if (allowNext && connectionsIndex >= 0) {\n connectionManager._open.splice(connectionsIndex, 1);\n nextId = connectionManager._waiting.shift();\n if (nextId >= 0) {\n connectionManager._open.push(nextId);\n upload.start(nextId);\n }\n }\n },\n getWaitingOrConnected: function() {\n var waitingOrConnected = [];\n qq.each(connectionManager._openChunks, function(fileId, chunks) {\n if (chunks && chunks.length) {\n waitingOrConnected.push(parseInt(fileId));\n }\n });\n qq.each(connectionManager._open, function(idx, fileId) {\n if (!connectionManager._openChunks[fileId]) {\n waitingOrConnected.push(parseInt(fileId));\n }\n });\n waitingOrConnected = waitingOrConnected.concat(connectionManager._waiting);\n return waitingOrConnected;\n },\n isUsingConnection: function(id) {\n return qq.indexOf(connectionManager._open, id) >= 0;\n },\n open: function(id, chunkIdx) {\n if (chunkIdx == null) {\n connectionManager._waiting.push(id);\n }\n if (connectionManager.available()) {\n if (chunkIdx == null) {\n connectionManager._waiting.pop();\n connectionManager._open.push(id);\n } else {\n (function() {\n var openChunksEntry = connectionManager._openChunks[id] || [];\n openChunksEntry.push(chunkIdx);\n connectionManager._openChunks[id] = openChunksEntry;\n })();\n }\n return true;\n }\n return false;\n },\n reset: function() {\n connectionManager._waiting = [];\n connectionManager._open = [];\n }\n }, simple = {\n send: function(id, name) {\n var fileState = handler._getFileState(id);\n if (!fileState) {\n log(\"Ignoring send request as this upload may have been cancelled, File ID \" + id, \"warn\");\n return;\n }\n fileState.loaded = 0;\n log(\"Sending simple upload request for \" + id);\n handler.uploadFile(id).then(function(response, optXhr) {\n log(\"Simple upload request succeeded for \" + id);\n var responseToReport = upload.normalizeResponse(response, true), size = options.getSize(id);\n options.onProgress(id, name, size, size);\n upload.maybeNewUuid(id, responseToReport);\n upload.cleanup(id, responseToReport, optXhr);\n }, function(response, optXhr) {\n log(\"Simple upload request failed for \" + id);\n var responseToReport = upload.normalizeResponse(response, false);\n if (!options.onAutoRetry(id, name, responseToReport, optXhr)) {\n upload.cleanup(id, responseToReport, optXhr);\n }\n });\n }\n }, upload = {\n cancel: function(id) {\n log(\"Cancelling \" + id);\n options.paramsStore.remove(id);\n connectionManager.free(id);\n },\n cleanup: function(id, response, optXhr) {\n var name = options.getName(id);\n options.onComplete(id, name, response, optXhr);\n if (handler._getFileState(id)) {\n handler._clearXhrs && handler._clearXhrs(id);\n }\n connectionManager.free(id);\n },\n getProxyOrBlob: function(id) {\n return handler.getProxy && handler.getProxy(id) || handler.getFile && handler.getFile(id);\n },\n initHandler: function() {\n var handlerType = namespace ? qq[namespace] : qq.traditional, handlerModuleSubtype = qq.supportedFeatures.ajaxUploading ? \"Xhr\" : \"Form\";\n handler = new handlerType[handlerModuleSubtype + \"UploadHandler\"](options, {\n getCustomResumeData: options.getCustomResumeData,\n getDataByUuid: options.getDataByUuid,\n getName: options.getName,\n getSize: options.getSize,\n getUuid: options.getUuid,\n log: log,\n onCancel: options.onCancel,\n onProgress: options.onProgress,\n onUuidChanged: options.onUuidChanged,\n onFinalizing: function(id) {\n options.setStatus(id, qq.status.UPLOAD_FINALIZING);\n }\n });\n if (handler._removeExpiredChunkingRecords) {\n handler._removeExpiredChunkingRecords();\n }\n },\n isDeferredEligibleForUpload: function(id) {\n return options.isQueued(id);\n },\n maybeDefer: function(id, blob) {\n if (blob && !handler.getFile(id) && blob instanceof qq.BlobProxy) {\n options.onUploadPrep(id);\n log(\"Attempting to generate a blob on-demand for \" + id);\n blob.create().then(function(generatedBlob) {\n log(\"Generated an on-demand blob for \" + id);\n handler.updateBlob(id, generatedBlob);\n options.setSize(id, generatedBlob.size);\n handler.reevaluateChunking(id);\n upload.maybeSendDeferredFiles(id);\n }, function(errorMessage) {\n var errorResponse = {};\n if (errorMessage) {\n errorResponse.error = errorMessage;\n }\n log(qq.format(\"Failed to generate blob for ID {}. Error message: {}.\", id, errorMessage), \"error\");\n options.onComplete(id, options.getName(id), qq.extend(errorResponse, preventRetryResponse), null);\n upload.maybeSendDeferredFiles(id);\n connectionManager.free(id);\n });\n } else {\n return upload.maybeSendDeferredFiles(id);\n }\n return false;\n },\n maybeSendDeferredFiles: function(id) {\n var idsInGroup = options.getIdsInProxyGroup(id), uploadedThisId = false;\n if (idsInGroup && idsInGroup.length) {\n log(\"Maybe ready to upload proxy group file \" + id);\n qq.each(idsInGroup, function(idx, idInGroup) {\n if (upload.isDeferredEligibleForUpload(idInGroup) && !!handler.getFile(idInGroup)) {\n uploadedThisId = idInGroup === id;\n upload.now(idInGroup);\n } else if (upload.isDeferredEligibleForUpload(idInGroup)) {\n return false;\n }\n });\n } else {\n uploadedThisId = true;\n upload.now(id);\n }\n return uploadedThisId;\n },\n maybeNewUuid: function(id, response) {\n if (response.newUuid !== undefined) {\n options.onUuidChanged(id, response.newUuid);\n }\n },\n normalizeResponse: function(originalResponse, successful) {\n var response = originalResponse;\n if (!qq.isObject(originalResponse)) {\n response = {};\n if (qq.isString(originalResponse) && !successful) {\n response.error = originalResponse;\n }\n }\n response.success = successful;\n return response;\n },\n now: function(id) {\n var name = options.getName(id);\n if (!controller.isValid(id)) {\n throw new qq.Error(id + \" is not a valid file ID to upload!\");\n }\n options.onUpload(id, name).then(function(response) {\n if (response && response.pause) {\n options.setStatus(id, qq.status.PAUSED);\n handler.pause(id);\n connectionManager.free(id);\n } else {\n if (chunkingPossible && handler._shouldChunkThisFile(id)) {\n chunked.sendNext(id);\n } else {\n simple.send(id, name);\n }\n }\n }, function(error) {\n error = error || {};\n log(id + \" upload start aborted due to rejected onUpload Promise - details: \" + error, \"error\");\n if (!options.onAutoRetry(id, name, error.responseJSON || {})) {\n var response = upload.normalizeResponse(error.responseJSON, false);\n upload.cleanup(id, response);\n }\n });\n },\n start: function(id) {\n var blobToUpload = upload.getProxyOrBlob(id);\n if (blobToUpload) {\n return upload.maybeDefer(id, blobToUpload);\n } else {\n upload.now(id);\n return true;\n }\n }\n };\n qq.extend(this, {\n add: function(id, file) {\n handler.add.apply(this, arguments);\n },\n upload: function(id) {\n if (connectionManager.open(id)) {\n return upload.start(id);\n }\n return false;\n },\n retry: function(id) {\n if (concurrentChunkingPossible) {\n handler._getFileState(id).temp.ignoreFailure = false;\n }\n if (connectionManager.isUsingConnection(id)) {\n return upload.start(id);\n } else {\n return controller.upload(id);\n }\n },\n cancel: function(id) {\n var cancelRetVal = handler.cancel(id);\n if (qq.isGenericPromise(cancelRetVal)) {\n cancelRetVal.then(function() {\n upload.cancel(id);\n });\n } else if (cancelRetVal !== false) {\n upload.cancel(id);\n }\n },\n cancelAll: function() {\n var waitingOrConnected = connectionManager.getWaitingOrConnected(), i;\n if (waitingOrConnected.length) {\n for (i = waitingOrConnected.length - 1; i >= 0; i--) {\n controller.cancel(waitingOrConnected[i]);\n }\n }\n connectionManager.reset();\n },\n getFile: function(id) {\n if (handler.getProxy && handler.getProxy(id)) {\n return handler.getProxy(id).referenceBlob;\n }\n return handler.getFile && handler.getFile(id);\n },\n isProxied: function(id) {\n return !!(handler.getProxy && handler.getProxy(id));\n },\n getInput: function(id) {\n if (handler.getInput) {\n return handler.getInput(id);\n }\n },\n reset: function() {\n log(\"Resetting upload handler\");\n controller.cancelAll();\n connectionManager.reset();\n handler.reset();\n },\n expunge: function(id) {\n if (controller.isValid(id)) {\n return handler.expunge(id);\n }\n },\n isValid: function(id) {\n return handler.isValid(id);\n },\n hasResumeRecord: function(id) {\n var key = handler.isValid(id) && handler._getLocalStorageId && handler._getLocalStorageId(id);\n if (key) {\n return !!localStorage.getItem(key);\n }\n return false;\n },\n getResumableFilesData: function() {\n if (handler.getResumableFilesData) {\n return handler.getResumableFilesData();\n }\n return [];\n },\n getThirdPartyFileId: function(id) {\n if (controller.isValid(id)) {\n return handler.getThirdPartyFileId(id);\n }\n },\n pause: function(id) {\n if (controller.isResumable(id) && handler.pause && controller.isValid(id) && handler.pause(id)) {\n connectionManager.free(id);\n handler.moveInProgressToRemaining(id);\n return true;\n }\n return false;\n },\n isAttemptingResume: function(id) {\n return !!handler.isAttemptingResume && handler.isAttemptingResume(id);\n },\n isResumable: function(id) {\n return !!handler.isResumable && handler.isResumable(id);\n }\n });\n qq.extend(options, o);\n log = options.log;\n chunkingPossible = options.chunking.enabled && qq.supportedFeatures.chunking;\n concurrentChunkingPossible = chunkingPossible && options.chunking.concurrent.enabled;\n preventRetryResponse = function() {\n var response = {};\n response[options.preventRetryParam] = true;\n return response;\n }();\n upload.initHandler();\n };\n qq.WindowReceiveMessage = function(o) {\n \"use strict\";\n var options = {\n log: function(message, level) {}\n }, callbackWrapperDetachers = {};\n qq.extend(options, o);\n qq.extend(this, {\n receiveMessage: function(id, callback) {\n var onMessageCallbackWrapper = function(event) {\n callback(event.data);\n };\n if (window.postMessage) {\n callbackWrapperDetachers[id] = qq(window).attach(\"message\", onMessageCallbackWrapper);\n } else {\n log(\"iframe message passing not supported in this browser!\", \"error\");\n }\n },\n stopReceivingMessages: function(id) {\n if (window.postMessage) {\n var detacher = callbackWrapperDetachers[id];\n if (detacher) {\n detacher();\n }\n }\n }\n });\n };\n qq.FormUploadHandler = function(spec) {\n \"use strict\";\n var options = spec.options, handler = this, proxy = spec.proxy, formHandlerInstanceId = qq.getUniqueId(), onloadCallbacks = {}, detachLoadEvents = {}, postMessageCallbackTimers = {}, isCors = options.isCors, inputName = options.inputName, getUuid = proxy.getUuid, log = proxy.log, corsMessageReceiver = new qq.WindowReceiveMessage({\n log: log\n });\n function expungeFile(id) {\n delete detachLoadEvents[id];\n if (isCors) {\n clearTimeout(postMessageCallbackTimers[id]);\n delete postMessageCallbackTimers[id];\n corsMessageReceiver.stopReceivingMessages(id);\n }\n var iframe = document.getElementById(handler._getIframeName(id));\n if (iframe) {\n iframe.setAttribute(\"src\", \"javascript:false;\");\n qq(iframe).remove();\n }\n }\n function getFileIdForIframeName(iframeName) {\n return iframeName.split(\"_\")[0];\n }\n function initIframeForUpload(name) {\n var iframe = qq.toElement(\"