{"version":3,"sources":["webpack://Shiift/webpack/bootstrap","webpack://Shiift/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://Shiift/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://Shiift/./node_modules/@babel/runtime/helpers/createClass.js","webpack://Shiift/(webpack)/buildin/global.js","webpack://Shiift/./node_modules/core-js/internals/string-repeat.js","webpack://Shiift/./node_modules/core-js/internals/is-regexp.js","webpack://Shiift/./node_modules/core-js/internals/whitespaces.js","webpack://Shiift/external \"jQuery\"","webpack://Shiift/./Src/js/legacy/uppy-setup.js","webpack://Shiift/./node_modules/core-js/modules/es.array.index-of.js","webpack://Shiift/./node_modules/core-js/modules/es.function.name.js","webpack://Shiift/./Src/js/legacy/payg.js","webpack://Shiift/./node_modules/core-js/modules/es.number.to-fixed.js","webpack://Shiift/./node_modules/core-js/internals/this-number-value.js","webpack://Shiift/./Src/js/legacy/email.js","webpack://Shiift/./node_modules/core-js/modules/es.array.includes.js","webpack://Shiift/./node_modules/core-js/internals/add-to-unscopables.js","webpack://Shiift/./node_modules/core-js/modules/es.string.includes.js","webpack://Shiift/./node_modules/core-js/internals/not-a-regexp.js","webpack://Shiift/./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack://Shiift/./node_modules/core-js/modules/es.string.match.js","webpack://Shiift/./node_modules/core-js/modules/es.string.split.js","webpack://Shiift/./node_modules/core-js/internals/species-constructor.js","webpack://Shiift/./node_modules/core-js/modules/es.string.trim.js","webpack://Shiift/./node_modules/core-js/internals/string-trim.js","webpack://Shiift/./node_modules/core-js/internals/string-trim-forced.js","webpack://Shiift/./node_modules/bootstrap/js/dist/modal.js","webpack://Shiift/./node_modules/bootstrap/js/dist/util.js","webpack://Shiift/./node_modules/core-js/modules/es.object.values.js","webpack://Shiift/./node_modules/core-js/internals/object-to-array.js","webpack://Shiift/./node_modules/core-js/modules/es.string.repeat.js","webpack://Shiift/./Src/js/components/CookiesModal.ts","webpack://Shiift/./Src/js/components/Direction.ts","webpack://Shiift/./Src/js/components/SpinnerNav.ts","webpack://Shiift/./Src/js/constants.ts","webpack://Shiift/./Src/js/views/index.ts","webpack://Shiift/./Src/js/components/FormSteps.ts","webpack://Shiift/./Src/js/utils/validation.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","2","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","obj","configurable","writable","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","protoProps","staticProps","g","this","Function","e","toInteger","requireObjectCoercible","repeat","count","str","String","Infinity","RangeError","isObject","classof","MATCH","wellKnownSymbol","it","isRegExp","undefined","jQuery","uppy","fzObserver","getCurrentlyUploadingFiles","$","remove","getFiles","each","uppyFileAdded","uppyUploadProgress","file","progress","percent","Math","round","bytesUploaded","bytesTotal","bar","id","attr","css","updateSubmitButton","allDone","uploadComplete","prop","hide","currentFile","getFile","fileHtml","size","append","uppyUploadSuccess","resp","uploadURL","fetchMyFiles","onRemove","updateSpaceUsed","onCancel","removeFile","onDrag","show","$target","MutationObserver","mutations","forEach","mutation","attributeName","indexOf","observe","attributes","completedFileId","tusFileId","fileName","fileSize","checkUpload","files","totalFiles","gbs","ceil","totalLength","totalLengthRemainingFree","freeSpaceBytes","totalLengthRemainingPlan","text","registerServiceWorker","navigator","serviceWorker","register","then","registration","console","log","scope","catch","error","GoldenRetriever","Uppy","Tus","DragDrop","FileInput","Core","autoProceed","onBeforeFileAdded","restrictions","maxFileSize","maxNumberOfFiles","minNumberOfFiles","allowedFileTypes","use","endpoint","resume","replaceTargetContent","pretty","locale","strings","chooseFiles","width","height","note","on","document","$indexOf","arrayMethodIsStrict","arrayMethodUsesToLength","nativeIndexOf","NEGATIVE_ZERO","STRICT_METHOD","USES_TO_LENGTH","ACCESSORS","1","proto","forced","searchElement","arguments","DESCRIPTORS","f","FunctionPrototype","FunctionPrototypeToString","toString","nameRE","match","daysSliderChange","val","html","daysToReadable","setPrice","days","space","getPrice","toFixed","price","freeSpace","freeDays","bppg","ppgpd","thisNumberValue","fails","nativeToFixed","floor","pow","x","acc","fractionDigits","z","k","number","fractDigits","sign","multiply","index","c2","divide","dataToString","x2","RebuildEmails","recipientString","emails","split","trim","tagHtml","AddRecipient","recipients","toLowerCase","newToEmail","email","TotalEmails","maxEmails","includes","ValidateEmails","valid","activeElement","classList","contains","preventDefault","stopImmediatePropagation","keyCode","event","recipientName","siblings","newRecipients","replace","substring","parent","ready","$includes","addToUnscopables","el","definePropertyModule","UNSCOPABLES","ArrayPrototype","Array","notARegExp","correctIsRegExpLogic","searchString","METHOD_NAME","regexp","error1","error2","fixRegExpWellKnownSymbolLogic","anObject","toLength","advanceStringIndex","regExpExec","nativeMatch","maybeCallNative","O","matcher","RegExp","res","done","rx","S","global","fullUnicode","unicode","lastIndex","A","matchStr","speciesConstructor","callRegExpExec","regexpExec","arrayPush","min","SUPPORTS_Y","SPLIT","nativeSplit","internalSplit","separator","limit","string","lim","lastLength","output","flags","ignoreCase","multiline","sticky","lastLastIndex","separatorCopy","source","test","splitter","C","unicodeMatching","q","aFunction","SPECIES","defaultConstructor","constructor","$trim","forcedStringTrimMethod","whitespace","ltrim","rtrim","createMethod","TYPE","$this","start","end","whitespaces","Util","_interopDefaultLegacy","$__default","Util__default","_extends","assign","NAME","EVENT_KEY","JQUERY_NO_CONFLICT","fn","Default","backdrop","keyboard","focus","DefaultType","Modal","element","config","_config","_getConfig","_element","_dialog","querySelector","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_isTransitioning","_scrollbarWidth","_proto","toggle","relatedTarget","_this","hasClass","showEvent","Event","trigger","isDefaultPrevented","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","one","is","_showBackdrop","_showElement","_this2","hideEvent","transition","off","removeClass","transitionDuration","getTransitionDurationFromElement","TRANSITION_END","_hideModal","emulateTransitionEnd","dispose","htmlElement","removeData","handleUpdate","typeCheckConfig","_triggerBackdropTransition","_this3","hideEventPrevented","isModalOverflowing","scrollHeight","documentElement","clientHeight","style","overflowY","add","modalTransitionDuration","_this4","modalBody","parentNode","nodeType","Node","ELEMENT_NODE","body","appendChild","display","removeAttribute","setAttribute","scrollTop","reflow","addClass","_enforceFocus","shownEvent","transitionComplete","_this5","has","_this6","which","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","_this9","animate","createElement","className","appendTo","currentTarget","backdropTransitionDuration","callbackRemove","_backdropTransitionDuration","paddingLeft","paddingRight","rect","getBoundingClientRect","left","right","innerWidth","_getScrollbarWidth","_this10","fixedContent","querySelectorAll","stickyContent","actualPadding","calculatedPadding","parseFloat","actualMargin","marginRight","calculatedMargin","padding","elements","margin","scrollDiv","scrollbarWidth","clientWidth","removeChild","_jQueryInterface","_this11","selector","getSelectorFromElement","tagName","noConflict","factory","transitionEndEmulator","duration","called","setTimeout","triggerTransitionEnd","getUID","prefix","random","getElementById","getAttribute","hrefAttr","_","transitionDelay","floatTransitionDuration","floatTransitionDelay","offsetHeight","supportsTransitionEnd","Boolean","isElement","componentName","configTypes","expectedTypes","valueType","Error","toUpperCase","findShadowRoot","attachShadow","getRootNode","root","ShadowRoot","jQueryDetection","version","jquery","special","bindType","delegateType","handle","handleObj","handler","$values","values","stat","objectKeys","toIndexedObject","propertyIsEnumerable","TO_ENTRIES","keys","entries","eventBlocker","Direction","CookiesModal","modal","addEventListener","setCookieAndDestroy","cookie","dataset","removeEventListener","SpinnerNav","options","container","btnPrev","btnNext","steps","from","stepCount","next","prev","animationsInProgress","type","dotsContainer","insertAdjacentHTML","dots","children","spinTo","startIndex","Static","currentStep","RightToLeft","LeftToRight","position","direction","isInRange","isDifferent","step","dot","onChange","__animationsInProgress","max","formSteps","nav","showStep","init","propagate","form","checkbox","linkedInput","btnSubmit","validator","setDefaults","focusInvalid","closest","oldFunc","createValidationHook","isValid","firstInvalid","invalidElements","input","linkedTo","dispatchEvent","disabled","checked","cookiesModal"],"mappings":"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","file":"views/index.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonpShiift\"] = window[\"webpackJsonpShiift\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([107,0]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","module.exports = jQuery;","var uppy;\r\nvar fzObserver;\r\n\r\nvar init = function () {\r\n var GoldenRetriever = Uppy.GoldenRetriever;\r\n var Tus = Uppy.Tus;\r\n var DragDrop = Uppy.DragDrop;\r\n var FileInput = Uppy.FileInput;\r\n\r\n uppy = Uppy.Core({\r\n autoProceed: true,\r\n onBeforeFileAdded: (currentFile, files) => checkUpload(currentFile, files),\r\n restrictions: {\r\n maxFileSize: null,\r\n maxNumberOfFiles: null,\r\n minNumberOfFiles: null,\r\n allowedFileTypes: null\r\n }\r\n });\r\n uppy.use(Tus, { endpoint: '/files', resume: true });\r\n uppy.use(FileInput, {\r\n target: '.js-uppy-wrapper',\r\n replaceTargetContent: true,\r\n pretty: true,\r\n locale: {\r\n strings: {\r\n chooseFiles: ''\r\n }\r\n }\r\n });\r\n uppy.use(DragDrop, {\r\n target: \"#file-zone\",\r\n width: '100%',\r\n height: '100%',\r\n note: \"Drag & drop or browse to upload!\",\r\n locale: {}\r\n });\r\n\r\n uppy.on('upload-success', uppyUploadSuccess);\r\n //uppy.on('upload', uppyUpload);\r\n uppy.on('file-added', uppyFileAdded);\r\n uppy.on('upload-progress', uppyUploadProgress);\r\n uppy.use(GoldenRetriever, { serviceWorker: true });\r\n\r\n registerServiceWorker();\r\n\r\n \r\n $(document).on(\"dragenter\", onDrag);\r\n $(document).on(\"click\", \".js-btn-remove-upload\", onRemove);\r\n $(document).on(\"click\", \".js-btn-cancel-upload\", onCancel);\r\n getCurrentlyUploadingFiles();\r\n fetchMyFiles();\r\n\r\n};\r\nvar getCurrentlyUploadingFiles = function () {\r\n $(\".file-progress\").remove();\r\n $(uppy.getFiles()).each(function (i, e) {\r\n uppyFileAdded(e);\r\n });\r\n};\r\nvar uppyUploadProgress = function (file, progress) {\r\n // file: { id, name, type, ... }\r\n // progress: { uploader, bytesUploaded, bytesTotal }\r\n var percent = Math.round(progress.bytesUploaded * 100 / progress.bytesTotal);\r\n var bar = $(\".js-uppy-files [data-id='\" + file.id + \"'] .progress-bar\");\r\n bar.attr(\"aria-valuenow\", percent);\r\n bar.css(\"width\", percent + \"%\");\r\n};\r\nvar noFilesUploading = function () {\r\n var allDone = true;\r\n $(uppy.getFiles()).each(function (i, e) {\r\n if (e.progress.uploadComplete == false) {\r\n allDone = false;\r\n }\r\n });\r\n return allDone;\r\n};\r\nvar updateSubmitButton=function(){\r\n if (noFilesUploading()) {\r\n\t\t$('#btn-upload').prop(\"disabled\", false);\r\n\t} else {\r\n\t\t$('#btn-upload').prop(\"disabled\", true);\r\n }\r\n};\r\n\r\nvar uppyFileAdded = function (file) {\r\n updateSubmitButton();\r\n $(\"#file-zone\").hide();\r\n var currentFile = uppy.getFile(file.id);\r\n /*var cancelCell = \"×\";\r\n var progressBar = \"
\" + currentFile.name + \"\" + cancelCell + \"\" +\r\n \"
\" +\r\n +\"
\"; */\r\n\r\n var fileHtml = '' +\r\n '
' +\r\n '
' +\r\n '' + currentFile.name + '' + String(Math.round(currentFile.size / 1024)) + 'KB' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '' +\r\n '
' +\r\n '
';\r\n\r\n\t/*$(\"#my-files\").append(\"
\" + progressBar + \"
\");*/\r\n\r\n $(\".js-uppy-files\").append(fileHtml);\r\n\r\n};\r\n\r\nvar uppyUploadSuccess = function (file, resp, uploadURL) {\r\n fetchMyFiles(file.id);\r\n updateSubmitButton();\r\n $(\".text-danger.validation-summary-errors\").hide();\r\n};\r\n\r\nvar onRemove = function () {\r\n var id = $(this).attr(\"data-tusid\");\r\n $(\".js-file-completed[data-id='\"+id+\"']\").remove();\r\n $.get(\"/files/delete/\" + id, function () { updateSpaceUsed(); updateSubmitButton();});\r\n};\r\n\r\nvar onCancel = function () {\r\n var id = $(this).attr(\"data-id\");\r\n uppy.removeFile(id);\r\n $(\".js-file-in-progress[data-id='\" + id + \"']\").remove();\r\n updateSubmitButton();\r\n};\r\n\r\nvar onDrag = function () {\r\n $(\"#file-zone\").show();\r\n var $target = $(\".uppy-DragDrop-container\");\r\n if (fzObserver == null) {\r\n fzObserver = new MutationObserver(function (mutations) {\r\n mutations.forEach(function (mutation) {\r\n if (mutation.attributeName === \"class\") {\r\n var attributeValue = jQuery(mutation.target).prop(mutation.attributeName);\r\n if (attributeValue.indexOf(\" drag\") < 0) {\r\n $(\"#file-zone\").hide();\r\n }\r\n }\r\n });\r\n });\r\n fzObserver.observe($target[0], {\r\n attributes: true\r\n });\r\n }\r\n};\r\n\r\nvar fetchMyFiles = function (completedFileId) {\r\n $.get(\"/files/MyFiles\", function (data) {\r\n $(data).each(function (i, e) {\r\n if (completedFileId) {\r\n $(\".js-uppy-files div[data-id='\" + completedFileId + \"']\").remove();\r\n }\r\n if ($(\".js-uppy-files div[data-id='\" + e.tusFileId + \"']\").length === 0) {\r\n /*var deleteCell = \"×\";\r\n var record = \"
\" + e.fileName + \"\" + deleteCell + \"
\";*/\r\n\r\n var fileHtml = '' +\r\n '
' +\r\n '
' +\r\n '' + e.fileName + ' ' + String(Math.round(e.fileSize / 1024)) + 'KB' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '' +\r\n '
' +\r\n '
';\r\n\r\n $(\".js-uppy-files\").append(fileHtml);\r\n }\r\n });\r\n updateSpaceUsed();\r\n });\r\n\r\n};\r\n\r\nvar checkUpload = function (currentFile, files) {\r\n return true; //no limit on upload\r\n\r\n var maxTotalFileSize = freeSpaceBytes;\r\n var TotalFileSize = 0;\r\n\r\n for (var key in files) {\r\n TotalFileSize = TotalFileSize + files[key].size;\r\n }\r\n\r\n var grandTotalFileSize = currentFile.data.size + TotalFileSize;\r\n\r\n if (grandTotalFileSize >= maxTotalFileSize) {\r\n return false;\r\n }\r\n\r\n return true;\r\n\r\n};\r\n\r\nvar updateSpaceUsed = function () {\r\n\r\n $.get(\"/files/MySessionInfo\", function (data) {\r\n if (data.totalFiles > 0) {\r\n gbs = Math.ceil(data.totalLength / 1024 / 1024 / 1024);\r\n\r\n var totalLengthRemainingFree = Math.round((freeSpaceBytes - data.totalLength) / 1024 / 1024);\r\n\r\n var totalLengthRemainingPlan = Math.round((gbs * 1024 * 1024 * 1024 - (data.totalLength - freeSpaceBytes)) / 1024 / 1024);\r\n \r\n if (totalLengthRemainingFree < 0) {\r\n $(\".space-left\").text(\"free quota exceeded, \" + totalLengthRemainingPlan + \"mb's remaining on \"+gbs+\"gb plan\");\r\n \r\n } else {\r\n $(\".space-left\").text(totalLengthRemainingFree + \"mb's remaining of free quota\");\r\n }\r\n\r\n } else {\r\n $(\".space-left\").text(\"choose some files to send\");\r\n }\r\n });\r\n};\r\n\r\nvar registerServiceWorker = function () {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker\r\n .register('/js/sw.js') // path to your bundled service worker with GoldenRetriever service worker\r\n .then((registration) => {\r\n console.log('ServiceWorker registration successful with scope: ', registration.scope);\r\n })\r\n .catch((error) => {\r\n console.log('Registration failed with ' + error);\r\n });\r\n }\r\n}\r\n\r\n$(init);\r\n\r\n\r\n","'use strict';\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var paygInit = function () {\r\n $(document).on(\"input\", \".js-input-days\", daysSliderChange);\r\n setPrice();\r\n};\r\n\r\nvar daysSliderChange = function () {\r\n var val = $(this).val();\r\n $(\".js-days-label\").html('You have ' + daysToReadable(val) + '');\r\n setPrice();\r\n\r\n $('.js-spinner-step-days').attr('data-show-variant', +val > 1 ? \"2\" : \"1\");\r\n};\r\nvar setPrice = function () {\r\n var days = $(\".js-input-days\").val();\r\n var space = gbs; \r\n\r\n $(\".js-price\").text(\"£\" + getPrice(days, space).toFixed(2)); \r\n};\r\n\r\nvar getPrice = function (days, gbs) {\r\n var price = 0;\r\n if (gbs < freeSpace) {\r\n gbs = freeSpace;\r\n }\r\n if (gbs > freeSpace\r\n && days > freeDays) {\r\n price += getPrice(1, gbs)\r\n + getPrice(days, gbs - 1);\r\n } \r\n else if (gbs <= freeSpace && days <= freeDays) {\r\n price += 0;\r\n }\r\n else {\r\n price += ((gbs - freeSpace) * bppg)\r\n + (ppgpd * (days - freeDays));\r\n }\r\n\r\n return price;\r\n};\r\n\r\nvar hoursToReadable = function (hrs) {\r\n var leftOverHours = hrs % 24;\r\n var totalDays = (hrs - leftOverHours) / 24;\r\n var hourS = leftOverHours == 1 ? \"\" : \"s\";\r\n return daysToReadable(totalDays) + \", \" + leftOverHours + \" hour\" + hourS;\r\n};\r\nvar daysToReadable = function (days) {\r\n var day_S = days == 1 ? \"\" : \"s\";\r\n return days + \" day\" + day_S;\r\n};\r\n\r\n$(paygInit);","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n // eslint-disable-next-line max-statements\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n var multiply = function (n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n };\n\n var divide = function (n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n };\n\n var dataToString = function () {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n };\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n result = dataToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n result = dataToString() + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n if (typeof value != 'number' && classof(value) != 'Number') {\n throw TypeError('Incorrect invocation');\n }\n return +value;\n};\n","function RebuildEmails() {\r\n $('.js-recipients').html(\"\");\r\n var recipientString = $('#ToEmail').val();\r\n if (recipientString) {\r\n var emails = [];\r\n emails = recipientString.split(',');\r\n for (let i = 0; i < emails.length; i++) {\r\n if (emails[i].trim() != '') {\r\n var tagHtml = '' +\r\n '
' +\r\n '' + emails[i] + '' +\r\n ''\r\n '
';\r\n\r\n //$('.js-recipients').append('
' + emails[i] + '
');\r\n $('.js-recipients').append(tagHtml);\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction AddRecipient() {\r\n var recipients = $(\"#ToEmail\").val().trim().toLowerCase();\r\n var newToEmail = $('.js-input-recipient').val().trim().toLowerCase();\r\n\r\n $(newToEmail.split(/[\\s,]+/)).each(function (i, e) {\r\n var email = e.trim().toLowerCase();\r\n if (TotalEmails() == maxEmails) {\r\n return;\r\n }\r\n if (!recipients.includes(email) && email.length > 0) {\r\n if (recipients.length > 0) {\r\n recipients += ',';\r\n }\r\n recipients += (email);\r\n $(\"#ToEmail\").val(recipients);\r\n }\r\n });\r\n\r\n RebuildEmails();\r\n ValidateEmails();\r\n}\r\n\r\nfunction ValidateEmails() {\r\n if (TotalEmails() < maxEmails) {\r\n $(\".js-input-recipient, .js-input-recipient-submit\").prop('disabled', false);\r\n } else {\r\n $(\".js-input-recipient, .js-input-recipient-submit\").prop('disabled', true);\r\n }\r\n return $(\"#ToEmail\").valid();\r\n}\r\n\r\nfunction TotalEmails(){\r\n return ($(\"#ToEmail\").val().match(/,/g) || []).length + 1;\r\n}\r\n\r\n$(\".js-input-recipient-submit\").on('click', function () {\r\n AddRecipient();\r\n $('.js-input-recipient').val('');\r\n});\r\n\r\n$(\"form\").on('submit', function(e) {\r\n var activeElement = document.activeElement;\r\n\r\n // If the recepient input is active, it likely means the user wants to add an address rather than submit the form.\r\n if (activeElement && activeElement.classList.contains('js-input-recipient')) {\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n }\r\n});\r\n\r\n$(\".js-input-recipient\").on('keyup', function (e) {\r\n if (e.keyCode == 13 /* enter */ || e.keyCode == 32 /* space */ || e.keyCode == 188 /* comma */) {\r\n AddRecipient();\r\n $('.js-input-recipient').val('');\r\n }\r\n});\r\n\r\n$('.js-recipients').on(\"click\", '.js-btn-delete-recipient', function (event) {\r\n\r\n event.preventDefault();\r\n\r\n var recipientName = $(this).siblings('span').text();\r\n // delete recipient\r\n var recipients = $(\"#ToEmail\").val();\r\n\r\n //find and remove our recipeient\r\n var newRecipients = recipients.replace(recipientName, '');\r\n\r\n //format the string\r\n newRecipients = newRecipients.replace(',,', ',');\r\n var lastCharacter = newRecipients.substring(newRecipients.length - 1, newRecipients.length);\r\n if (lastCharacter == ',') {\r\n newRecipients = newRecipients.substring(0, newRecipients.length - 1);\r\n }\r\n var firstCharacter = newRecipients.substring(0, 1);\r\n if (firstCharacter == ',') {\r\n newRecipients = newRecipients.substring(1, newRecipients.length);\r\n }\r\n\r\n // update our ToEmail field\r\n $('#ToEmail').val(newRecipients);\r\n\r\n // update our DOM tree\r\n $(this).parent().remove();\r\n\r\n // re-validate the form\r\n ValidateEmails();\r\n});\r\n\r\n$(document).ready(function () {\r\n RebuildEmails();\r\n});","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","/*!\n * Bootstrap modal.js v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :\n typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.jQuery, global.Util));\n}(this, (function ($, Util) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);\n\n function _extends() { _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; }; return _extends.apply(this, arguments); }\n\n function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\n function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'modal';\n var VERSION = '4.5.3';\n var DATA_KEY = 'bs.modal';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\n var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n var Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n };\n var DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n };\n var EVENT_HIDE = \"hide\" + EVENT_KEY;\n var EVENT_HIDE_PREVENTED = \"hidePrevented\" + EVENT_KEY;\n var EVENT_HIDDEN = \"hidden\" + EVENT_KEY;\n var EVENT_SHOW = \"show\" + EVENT_KEY;\n var EVENT_SHOWN = \"shown\" + EVENT_KEY;\n var EVENT_FOCUSIN = \"focusin\" + EVENT_KEY;\n var EVENT_RESIZE = \"resize\" + EVENT_KEY;\n var EVENT_CLICK_DISMISS = \"click.dismiss\" + EVENT_KEY;\n var EVENT_KEYDOWN_DISMISS = \"keydown.dismiss\" + EVENT_KEY;\n var EVENT_MOUSEUP_DISMISS = \"mouseup.dismiss\" + EVENT_KEY;\n var EVENT_MOUSEDOWN_DISMISS = \"mousedown.dismiss\" + EVENT_KEY;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';\n var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';\n var CLASS_NAME_BACKDROP = 'modal-backdrop';\n var CLASS_NAME_OPEN = 'modal-open';\n var CLASS_NAME_FADE = 'fade';\n var CLASS_NAME_SHOW = 'show';\n var CLASS_NAME_STATIC = 'modal-static';\n var SELECTOR_DIALOG = '.modal-dialog';\n var SELECTOR_MODAL_BODY = '.modal-body';\n var SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]';\n var SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]';\n var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\n var SELECTOR_STICKY_CONTENT = '.sticky-top';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Modal = /*#__PURE__*/function () {\n function Modal(element, config) {\n this._config = this._getConfig(config);\n this._element = element;\n this._dialog = element.querySelector(SELECTOR_DIALOG);\n this._backdrop = null;\n this._isShown = false;\n this._isBodyOverflowing = false;\n this._ignoreBackdropClick = false;\n this._isTransitioning = false;\n this._scrollbarWidth = 0;\n } // Getters\n\n\n var _proto = Modal.prototype;\n\n // Public\n _proto.toggle = function toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n };\n\n _proto.show = function show(relatedTarget) {\n var _this = this;\n\n if (this._isShown || this._isTransitioning) {\n return;\n }\n\n if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true;\n }\n\n var showEvent = $__default['default'].Event(EVENT_SHOW, {\n relatedTarget: relatedTarget\n });\n $__default['default'](this._element).trigger(showEvent);\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return;\n }\n\n this._isShown = true;\n\n this._checkScrollbar();\n\n this._setScrollbar();\n\n this._adjustDialog();\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n $__default['default'](this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {\n return _this.hide(event);\n });\n $__default['default'](this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () {\n $__default['default'](_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) {\n if ($__default['default'](event.target).is(_this._element)) {\n _this._ignoreBackdropClick = true;\n }\n });\n });\n\n this._showBackdrop(function () {\n return _this._showElement(relatedTarget);\n });\n };\n\n _proto.hide = function hide(event) {\n var _this2 = this;\n\n if (event) {\n event.preventDefault();\n }\n\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n\n var hideEvent = $__default['default'].Event(EVENT_HIDE);\n $__default['default'](this._element).trigger(hideEvent);\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return;\n }\n\n this._isShown = false;\n var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE);\n\n if (transition) {\n this._isTransitioning = true;\n }\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n $__default['default'](document).off(EVENT_FOCUSIN);\n $__default['default'](this._element).removeClass(CLASS_NAME_SHOW);\n $__default['default'](this._element).off(EVENT_CLICK_DISMISS);\n $__default['default'](this._dialog).off(EVENT_MOUSEDOWN_DISMISS);\n\n if (transition) {\n var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._element);\n $__default['default'](this._element).one(Util__default['default'].TRANSITION_END, function (event) {\n return _this2._hideModal(event);\n }).emulateTransitionEnd(transitionDuration);\n } else {\n this._hideModal();\n }\n };\n\n _proto.dispose = function dispose() {\n [window, this._element, this._dialog].forEach(function (htmlElement) {\n return $__default['default'](htmlElement).off(EVENT_KEY);\n });\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n\n $__default['default'](document).off(EVENT_FOCUSIN);\n $__default['default'].removeData(this._element, DATA_KEY);\n this._config = null;\n this._element = null;\n this._dialog = null;\n this._backdrop = null;\n this._isShown = null;\n this._isBodyOverflowing = null;\n this._ignoreBackdropClick = null;\n this._isTransitioning = null;\n this._scrollbarWidth = null;\n };\n\n _proto.handleUpdate = function handleUpdate() {\n this._adjustDialog();\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default, config);\n Util__default['default'].typeCheckConfig(NAME, config, DefaultType);\n return config;\n };\n\n _proto._triggerBackdropTransition = function _triggerBackdropTransition() {\n var _this3 = this;\n\n if (this._config.backdrop === 'static') {\n var hideEventPrevented = $__default['default'].Event(EVENT_HIDE_PREVENTED);\n $__default['default'](this._element).trigger(hideEventPrevented);\n\n if (hideEventPrevented.isDefaultPrevented()) {\n return;\n }\n\n var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden';\n }\n\n this._element.classList.add(CLASS_NAME_STATIC);\n\n var modalTransitionDuration = Util__default['default'].getTransitionDurationFromElement(this._dialog);\n $__default['default'](this._element).off(Util__default['default'].TRANSITION_END);\n $__default['default'](this._element).one(Util__default['default'].TRANSITION_END, function () {\n _this3._element.classList.remove(CLASS_NAME_STATIC);\n\n if (!isModalOverflowing) {\n $__default['default'](_this3._element).one(Util__default['default'].TRANSITION_END, function () {\n _this3._element.style.overflowY = '';\n }).emulateTransitionEnd(_this3._element, modalTransitionDuration);\n }\n }).emulateTransitionEnd(modalTransitionDuration);\n\n this._element.focus();\n } else {\n this.hide();\n }\n };\n\n _proto._showElement = function _showElement(relatedTarget) {\n var _this4 = this;\n\n var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE);\n var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null;\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element);\n }\n\n this._element.style.display = 'block';\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n if ($__default['default'](this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0;\n } else {\n this._element.scrollTop = 0;\n }\n\n if (transition) {\n Util__default['default'].reflow(this._element);\n }\n\n $__default['default'](this._element).addClass(CLASS_NAME_SHOW);\n\n if (this._config.focus) {\n this._enforceFocus();\n }\n\n var shownEvent = $__default['default'].Event(EVENT_SHOWN, {\n relatedTarget: relatedTarget\n });\n\n var transitionComplete = function transitionComplete() {\n if (_this4._config.focus) {\n _this4._element.focus();\n }\n\n _this4._isTransitioning = false;\n $__default['default'](_this4._element).trigger(shownEvent);\n };\n\n if (transition) {\n var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._dialog);\n $__default['default'](this._dialog).one(Util__default['default'].TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);\n } else {\n transitionComplete();\n }\n };\n\n _proto._enforceFocus = function _enforceFocus() {\n var _this5 = this;\n\n $__default['default'](document).off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, function (event) {\n if (document !== event.target && _this5._element !== event.target && $__default['default'](_this5._element).has(event.target).length === 0) {\n _this5._element.focus();\n }\n });\n };\n\n _proto._setEscapeEvent = function _setEscapeEvent() {\n var _this6 = this;\n\n if (this._isShown) {\n $__default['default'](this._element).on(EVENT_KEYDOWN_DISMISS, function (event) {\n if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault();\n\n _this6.hide();\n } else if (!_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {\n _this6._triggerBackdropTransition();\n }\n });\n } else if (!this._isShown) {\n $__default['default'](this._element).off(EVENT_KEYDOWN_DISMISS);\n }\n };\n\n _proto._setResizeEvent = function _setResizeEvent() {\n var _this7 = this;\n\n if (this._isShown) {\n $__default['default'](window).on(EVENT_RESIZE, function (event) {\n return _this7.handleUpdate(event);\n });\n } else {\n $__default['default'](window).off(EVENT_RESIZE);\n }\n };\n\n _proto._hideModal = function _hideModal() {\n var _this8 = this;\n\n this._element.style.display = 'none';\n\n this._element.setAttribute('aria-hidden', true);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n this._isTransitioning = false;\n\n this._showBackdrop(function () {\n $__default['default'](document.body).removeClass(CLASS_NAME_OPEN);\n\n _this8._resetAdjustments();\n\n _this8._resetScrollbar();\n\n $__default['default'](_this8._element).trigger(EVENT_HIDDEN);\n });\n };\n\n _proto._removeBackdrop = function _removeBackdrop() {\n if (this._backdrop) {\n $__default['default'](this._backdrop).remove();\n this._backdrop = null;\n }\n };\n\n _proto._showBackdrop = function _showBackdrop(callback) {\n var _this9 = this;\n\n var animate = $__default['default'](this._element).hasClass(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div');\n this._backdrop.className = CLASS_NAME_BACKDROP;\n\n if (animate) {\n this._backdrop.classList.add(animate);\n }\n\n $__default['default'](this._backdrop).appendTo(document.body);\n $__default['default'](this._element).on(EVENT_CLICK_DISMISS, function (event) {\n if (_this9._ignoreBackdropClick) {\n _this9._ignoreBackdropClick = false;\n return;\n }\n\n if (event.target !== event.currentTarget) {\n return;\n }\n\n _this9._triggerBackdropTransition();\n });\n\n if (animate) {\n Util__default['default'].reflow(this._backdrop);\n }\n\n $__default['default'](this._backdrop).addClass(CLASS_NAME_SHOW);\n\n if (!callback) {\n return;\n }\n\n if (!animate) {\n callback();\n return;\n }\n\n var backdropTransitionDuration = Util__default['default'].getTransitionDurationFromElement(this._backdrop);\n $__default['default'](this._backdrop).one(Util__default['default'].TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);\n } else if (!this._isShown && this._backdrop) {\n $__default['default'](this._backdrop).removeClass(CLASS_NAME_SHOW);\n\n var callbackRemove = function callbackRemove() {\n _this9._removeBackdrop();\n\n if (callback) {\n callback();\n }\n };\n\n if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE)) {\n var _backdropTransitionDuration = Util__default['default'].getTransitionDurationFromElement(this._backdrop);\n\n $__default['default'](this._backdrop).one(Util__default['default'].TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);\n } else {\n callbackRemove();\n }\n } else if (callback) {\n callback();\n }\n } // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n ;\n\n _proto._adjustDialog = function _adjustDialog() {\n var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = this._scrollbarWidth + \"px\";\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = this._scrollbarWidth + \"px\";\n }\n };\n\n _proto._resetAdjustments = function _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n };\n\n _proto._checkScrollbar = function _checkScrollbar() {\n var rect = document.body.getBoundingClientRect();\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;\n this._scrollbarWidth = this._getScrollbarWidth();\n };\n\n _proto._setScrollbar = function _setScrollbar() {\n var _this10 = this;\n\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));\n var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding\n\n $__default['default'](fixedContent).each(function (index, element) {\n var actualPadding = element.style.paddingRight;\n var calculatedPadding = $__default['default'](element).css('padding-right');\n $__default['default'](element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + \"px\");\n }); // Adjust sticky content margin\n\n $__default['default'](stickyContent).each(function (index, element) {\n var actualMargin = element.style.marginRight;\n var calculatedMargin = $__default['default'](element).css('margin-right');\n $__default['default'](element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + \"px\");\n }); // Adjust body padding\n\n var actualPadding = document.body.style.paddingRight;\n var calculatedPadding = $__default['default'](document.body).css('padding-right');\n $__default['default'](document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + \"px\");\n }\n\n $__default['default'](document.body).addClass(CLASS_NAME_OPEN);\n };\n\n _proto._resetScrollbar = function _resetScrollbar() {\n // Restore fixed content padding\n var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));\n $__default['default'](fixedContent).each(function (index, element) {\n var padding = $__default['default'](element).data('padding-right');\n $__default['default'](element).removeData('padding-right');\n element.style.paddingRight = padding ? padding : '';\n }); // Restore sticky content\n\n var elements = [].slice.call(document.querySelectorAll(\"\" + SELECTOR_STICKY_CONTENT));\n $__default['default'](elements).each(function (index, element) {\n var margin = $__default['default'](element).data('margin-right');\n\n if (typeof margin !== 'undefined') {\n $__default['default'](element).css('margin-right', margin).removeData('margin-right');\n }\n }); // Restore body padding\n\n var padding = $__default['default'](document.body).data('padding-right');\n $__default['default'](document.body).removeData('padding-right');\n document.body.style.paddingRight = padding ? padding : '';\n };\n\n _proto._getScrollbarWidth = function _getScrollbarWidth() {\n // thx d.walsh\n var scrollDiv = document.createElement('div');\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n } // Static\n ;\n\n Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n var data = $__default['default'](this).data(DATA_KEY);\n\n var _config = _extends({}, Default, $__default['default'](this).data(), typeof config === 'object' && config ? config : {});\n\n if (!data) {\n data = new Modal(this, _config);\n $__default['default'](this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config](relatedTarget);\n } else if (_config.show) {\n data.show(relatedTarget);\n }\n });\n };\n\n _createClass(Modal, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }]);\n\n return Modal;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n var _this11 = this;\n\n var target;\n var selector = Util__default['default'].getSelectorFromElement(this);\n\n if (selector) {\n target = document.querySelector(selector);\n }\n\n var config = $__default['default'](target).data(DATA_KEY) ? 'toggle' : _extends({}, $__default['default'](target).data(), $__default['default'](this).data());\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault();\n }\n\n var $target = $__default['default'](target).one(EVENT_SHOW, function (showEvent) {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return;\n }\n\n $target.one(EVENT_HIDDEN, function () {\n if ($__default['default'](_this11).is(':visible')) {\n _this11.focus();\n }\n });\n });\n\n Modal._jQueryInterface.call($__default['default'](target), config, this);\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME] = Modal._jQueryInterface;\n $__default['default'].fn[NAME].Constructor = Modal;\n\n $__default['default'].fn[NAME].noConflict = function () {\n $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n return Modal._jQueryInterface;\n };\n\n return Modal;\n\n})));\n//# sourceMappingURL=modal.js.map\n","/*!\n * Bootstrap util.js v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :\n typeof define === 'function' && define.amd ? define(['jquery'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Util = factory(global.jQuery));\n}(this, (function ($) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n var TRANSITION_END = 'transitionend';\n var MAX_UID = 1000000;\n var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n function toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return \"\" + obj;\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle: function handle(event) {\n if ($__default['default'](event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params\n }\n\n return undefined;\n }\n };\n }\n\n function transitionEndEmulator(duration) {\n var _this = this;\n\n var called = false;\n $__default['default'](this).one(Util.TRANSITION_END, function () {\n called = true;\n });\n setTimeout(function () {\n if (!called) {\n Util.triggerTransitionEnd(_this);\n }\n }, duration);\n return this;\n }\n\n function setTransitionEndSupport() {\n $__default['default'].fn.emulateTransitionEnd = transitionEndEmulator;\n $__default['default'].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\n }\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n\n var Util = {\n TRANSITION_END: 'bsTransitionEnd',\n getUID: function getUID(prefix) {\n do {\n prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix));\n\n return prefix;\n },\n getSelectorFromElement: function getSelectorFromElement(element) {\n var selector = element.getAttribute('data-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href');\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';\n }\n\n try {\n return document.querySelector(selector) ? selector : null;\n } catch (_) {\n return null;\n }\n },\n getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var transitionDuration = $__default['default'](element).css('transition-duration');\n var transitionDelay = $__default['default'](element).css('transition-delay');\n var floatTransitionDuration = parseFloat(transitionDuration);\n var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n },\n reflow: function reflow(element) {\n return element.offsetHeight;\n },\n triggerTransitionEnd: function triggerTransitionEnd(element) {\n $__default['default'](element).trigger(TRANSITION_END);\n },\n supportsTransitionEnd: function supportsTransitionEnd() {\n return Boolean(TRANSITION_END);\n },\n isElement: function isElement(obj) {\n return (obj[0] || obj).nodeType;\n },\n typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\n for (var property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && Util.isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n }\n }\n },\n findShadowRoot: function findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null;\n } // Can find the shadow root otherwise it'll return the document\n\n\n if (typeof element.getRootNode === 'function') {\n var root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n\n if (element instanceof ShadowRoot) {\n return element;\n } // when we don't find a shadow root\n\n\n if (!element.parentNode) {\n return null;\n }\n\n return Util.findShadowRoot(element.parentNode);\n },\n jQueryDetection: function jQueryDetection() {\n if (typeof $__default['default'] === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.');\n }\n\n var version = $__default['default'].fn.jquery.split(' ')[0].split('.');\n var minMajor = 1;\n var ltMajor = 2;\n var minMinor = 9;\n var minPatch = 1;\n var maxMajor = 4;\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');\n }\n }\n };\n Util.jQueryDetection();\n setTransitionEndSupport();\n\n return Util;\n\n})));\n//# sourceMappingURL=util.js.map\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.github.io/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.github.io/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.github.io/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n repeat: repeat\n});\n","function eventBlocker(event: Event): void {\r\n event.stopImmediatePropagation();\r\n}\r\n\r\nclass CookiesModal {\r\n private readonly modal = document.querySelector('.js-modal-cookies');\r\n\r\n constructor() {\r\n if (!this.modal) return;\r\n\r\n // Set up a listener to block the drag event; we don't want people adding files while the modal is open.\r\n document.body.addEventListener('dragenter', eventBlocker);\r\n\r\n // When the modal is closed, set a cookie and remove the event listener.\r\n $(this.modal).on('hidden.bs.modal', this.setCookieAndDestroy.bind(this));\r\n\r\n // Open the modal.\r\n $(this.modal).modal('show');\r\n }\r\n\r\n private setCookieAndDestroy(): void {\r\n document.cookie = this.modal.dataset.cookie;\r\n document.body.removeEventListener('dragenter', eventBlocker);\r\n }\r\n}\r\n\r\nconst init = () => new CookiesModal();\r\n\r\nexport default { init };\r\n","enum Direction {\r\n LeftToRight = 'ltr',\r\n RightToLeft = 'rtl',\r\n Static = 'static'\r\n}\r\n\r\nexport { Direction };\r\n","import { classDisabled } from '../constants';\r\nimport { Direction } from './Direction';\r\n\r\nconst classSelectedDot = 'c-spinner-nav__dot--selected';\r\nconst htmlSpinnerDot = '';\r\n\r\ninterface SpinnerNavOptions {\r\n onChange?: (currentStep: number, direction: Direction) => void;\r\n}\r\n\r\nclass SpinnerNav {\r\n private readonly container: HTMLElement;\r\n private readonly steps: Element[];\r\n private readonly stepCount: number;\r\n private readonly btnPrev: HTMLButtonElement;\r\n private readonly btnNext: HTMLButtonElement;\r\n\r\n private __animationsInProgress = 0;\r\n\r\n private currentStep = -1;\r\n private dots: Element[] = [];\r\n\r\n constructor(private readonly options?: SpinnerNavOptions) {\r\n this.container = document.querySelector('.js-spinner');\r\n this.btnPrev = document.querySelector('.js-btn-prev');\r\n this.btnNext = document.querySelector('.js-btn-next');\r\n this.steps = Array.from(document.querySelectorAll('.js-spinner-step'));\r\n this.stepCount = this.steps.length;\r\n }\r\n\r\n public init() {\r\n // Add listeners.\r\n this.btnNext.addEventListener('click', this.next.bind(this));\r\n this.btnPrev.addEventListener('click', this.prev.bind(this));\r\n this.container.addEventListener('animationstart', () => this.animationsInProgress++);\r\n ['animationend', 'animationcancel'].forEach(type => this.container.addEventListener(type, () => this.animationsInProgress--));\r\n\r\n // Create the dots.\r\n const dotsContainer = document.querySelector('.js-dots-container');\r\n\r\n dotsContainer.insertAdjacentHTML('beforeend', htmlSpinnerDot.repeat(this.stepCount));\r\n this.dots = Array.from(dotsContainer.children);\r\n\r\n // Set initial value.\r\n this.spinTo(+this.container.dataset.startIndex ?? 0, Direction.Static);\r\n }\r\n\r\n public next(): void {\r\n this.spinTo(this.currentStep + 1, Direction.RightToLeft);\r\n }\r\n\r\n public prev(): void {\r\n this.spinTo(this.currentStep - 1, Direction.LeftToRight);\r\n }\r\n\r\n public spinTo(position: number, direction: Direction): void {\r\n if (this.animationsInProgress) return;\r\n\r\n const isInRange = position >= 0 && position < this.stepCount;\r\n const isDifferent = position !== this.currentStep;\r\n\r\n // If not valid then bail out.\r\n if (!(isInRange && isDifferent)) return;\r\n\r\n // For each step.\r\n this.steps.forEach(step => {\r\n Object.values(Direction).forEach(type => {\r\n // Remove any `hide-*` classes.\r\n step.classList.remove(`hide-${type}`);\r\n\r\n if (direction === Direction.Static) {\r\n // Remove any `show-*` classes.\r\n step.classList.remove(`show-${type}`);\r\n }\r\n });\r\n\r\n if (direction !== Direction.Static) {\r\n Object.values(Direction).forEach(type => {\r\n // Replace any `show-*` classes with `hide-*`.\r\n step.classList.replace(`show-${type}`, `hide-${direction}`);\r\n });\r\n }\r\n });\r\n\r\n // Show the selected step.\r\n this.steps[position].classList.add(`show-${direction}`);\r\n\r\n // Show the dot corresponding to the selected step.\r\n this.dots.forEach(dot => dot.classList.remove(classSelectedDot));\r\n this.dots[position].classList.add(classSelectedDot);\r\n\r\n // Show/hide the navigation buttons.\r\n this.btnPrev.classList[position === 0 ? 'add' : 'remove'](classDisabled);\r\n this.btnNext.classList[position === this.stepCount - 1 ? 'add' : 'remove'](classDisabled);\r\n\r\n // Set the new position.\r\n this.currentStep = position;\r\n\r\n // Fire the callback - if it exists.\r\n this.options?.onChange?.(this.currentStep, direction);\r\n }\r\n\r\n private get animationsInProgress(): number {\r\n return this.__animationsInProgress;\r\n }\r\n\r\n private set animationsInProgress(value: number) {\r\n this.__animationsInProgress = Math.max(0, value);\r\n }\r\n}\r\n\r\nexport { SpinnerNav };\r\n","const classHidden = 'd-none';\r\nconst classDisabled = 'disabled';\r\n\r\nconst selectorFormStep = '.js-form-step';\r\n\r\nexport {\r\n classHidden,\r\n classDisabled,\r\n selectorFormStep\r\n};\r\n","import 'bootstrap/js/dist/modal';\r\n\r\nimport cookiesModal from '../components/CookiesModal';\r\nimport { Direction } from '../components/Direction';\r\nimport { FormSteps } from '../components/FormSteps';\r\nimport { selectorFormStep } from '../constants';\r\nimport { createValidationHook } from '../utils/validation';\r\n\r\nconst formSteps = new FormSteps();\r\n\r\n$(() => {\r\n // Disable the default behaviour as we'll handle it ourselves.\r\n jQuery.validator.setDefaults({\r\n focusInvalid: false\r\n });\r\n\r\n // Initialise components.\r\n initMainForm();\r\n initUploadButton();\r\n initTermsCheckbox();\r\n cookiesModal.init()\r\n});\r\n\r\nfunction initMainForm(): void {\r\n const form = document.querySelector('.js-form-main');\r\n\r\n // Add a delegate listener that will catch focus events as they bubble\r\n // and allow us to switch to the relevant step.\r\n form.addEventListener('focusin', event => {\r\n const currentStep = (event.target as HTMLElement).closest(selectorFormStep).dataset.step;\r\n\r\n formSteps.showStep(+currentStep, Direction.Static);\r\n });\r\n\r\n // Hook into the validation event so that we can jump to the required\r\n // step if validation fails.\r\n createValidationHook($(form), (isValid, validator) => {\r\n // If the form is valid then bail out.\r\n if (isValid) return;\r\n\r\n const firstInvalid = validator.invalidElements()[0];\r\n const input = firstInvalid.dataset.linkedTo ? document.getElementById(firstInvalid.dataset.linkedTo) : firstInvalid;\r\n const currentStep = input.closest(selectorFormStep).dataset.step;\r\n\r\n formSteps.showStep(+currentStep, Direction.Static);\r\n input.focus();\r\n });\r\n}\r\n\r\n/**\r\n * You can't customise the Uppy upload button, so instead we'll hide it and\r\n * trigger it when our custom button is clicked.\r\n */\r\nfunction initUploadButton(): void {\r\n const customButton = document.querySelector('.js-btn-add-files');\r\n\r\n customButton.addEventListener('click', () =>\r\n document.querySelector('.uppy-FileInput-btn').dispatchEvent(new Event('click'))\r\n );\r\n}\r\n\r\nfunction initTermsCheckbox(): void {\r\n const checkbox = document.querySelector('.js-checkbox-terms');\r\n const linkedInput = document.querySelector('.js-input-terms');\r\n const btnSubmit = document.querySelector('.js-btn-shiift');\r\n\r\n checkbox.addEventListener('click', () => {\r\n btnSubmit.disabled = !checkbox.checked;\r\n\r\n // No idea why it works this way but instead of validating the checkbox as a\r\n // boolean in MVC, we are checking the value of a hidden input that is updated\r\n // to represent the state of the checkbox, because... ?\r\n linkedInput.value = checkbox.checked ? '1' : '0';\r\n $(linkedInput).valid();\r\n });\r\n}\r\n","import { selectorFormStep } from '../constants';\r\nimport { Direction } from './Direction';\r\nimport { SpinnerNav } from './SpinnerNav';\r\n\r\nconst classStepSelected = 'is-selected';\r\n\r\nclass FormSteps {\r\n private readonly steps = document.querySelectorAll(selectorFormStep);\r\n\r\n public readonly nav: SpinnerNav;\r\n\r\n constructor() {\r\n this.nav = new SpinnerNav({\r\n onChange: (currentStep, direction) => this.showStep(currentStep, direction, false)\r\n });\r\n\r\n this.nav.init();\r\n }\r\n\r\n public showStep(index: number, direction: Direction, propagate = true): void {\r\n this.steps.forEach(step => step.classList.remove(classStepSelected));\r\n this.steps[index].classList.add(classStepSelected);\r\n propagate && this.nav.spinTo(index, direction);\r\n }\r\n}\r\n\r\nexport { FormSteps };\r\n","/**\r\n * MVC unobtrusive validation wraps jQuery validation with it's own logic, automating the process\r\n * of binding validators to forms. Unfortunately this is at the expense of virtually any kind of\r\n * customisability, meaning to get in the middle of the validation process we have to do this...\r\n * \r\n * See: https://github.com/aspnet/jquery-validation-unobtrusive/issues/88\r\n */\r\nfunction createValidationHook(\r\n form: JQuery,\r\n callback: (isValid: boolean, validator: JQueryValidation.Validator) => void\r\n): void {\r\n // Get the validator object.\r\n const validator = form.data('validator') as JQueryValidation.Validator;\r\n\r\n // If it doesn't exist then bail out.\r\n if (!validator) return;\r\n\r\n // Cache the original function.\r\n const oldFunc = validator.form;\r\n\r\n // Redefine the `form` function...\r\n Object.defineProperty(validator, 'form', {\r\n value: function () {\r\n // Apply the original function.\r\n const result = oldFunc.apply(this);\r\n\r\n // Invoke our custom hook.\r\n callback(result, validator);\r\n\r\n // Return the result (as per spec).\r\n return result;\r\n }\r\n });\r\n}\r\n\r\nexport { createValidationHook };\r\n"],"sourceRoot":""}