{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./app/javascript/packs/analytic.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./app/javascript/packs/step.js","webpack:///./app/javascript/packs/form.js","webpack:///./app/javascript/packs/headerCarousel.js","webpack:///./app/javascript/packs/region.js","webpack:///./app/javascript/packs/school.js","webpack:///./app/javascript/packs/university.js","webpack:///./app/javascript/packs/brainacademy.js","webpack:///./app/javascript/packs/countdown.js","webpack:///./app/javascript/packs/success.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/packs/application.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","session_id","generateUUID","tracker","event_name","params","tracker_url","$","data","tracker_data","context_data","each","URLSearchParams","window","location","search","forEach","_","param","trackerGetCookie","client_device","user_agent","navigator","userAgent","client_ua","split","info","indexOf","client_os","client_os_version","connection_type","connection","effectiveType","user_serial","val","payload","Boolean","Date","toISOString","JSON","stringify","href","document","referrer","ajax","url","type","success","error","cname","ca","decodeURIComponent","cookie","length","charAt","substring","replace","crypto","getRandomValues","Uint8Array","toString","runtime","undefined","Op","hasOwn","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","obj","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","GenStateSuspendedStart","method","arg","GenStateExecuting","Error","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","done","GenStateSuspendedYield","makeInvokeMethod","fn","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","this","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","resolve","reject","result","__await","then","unwrapped","previousPromise","callInvokeWithMethodAndArg","TypeError","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","constructor","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","reverse","pop","skipTempReset","prev","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","$formSelector","redirect_url_brainacademy","validateForm","index","invalidate_file_fields","isCheckBoxValid","validateChoiceGroup","isRadioValid","isFileValid","find","map","files","after","isPhoneValid","currentIndex","invalidate_phone_fields","prop","phone_prefix","remove","prefix_valid","startsWith","before","validatePhoneFields","fieldType","invalidate_choices","label","htmlEncode","str","String","charCodeAt","steps","headerTag","bodyTag","transitionEffect","saveState","titleTemplate","labels","cancel","previous","loading","onStepChanging","event","newIndex","serializeArray","submissionSummary","$field","fieldId","attr","labelText","text","fieldSelectText","fieldValue","fieldContent","selected_text","parent","title","checkeds","checked_texts","join","html","valid","onFinishing","onFinished","token","Swal","fire","icon","showCancelButton","confirmButtonColor","cancelButtonColor","confirmButtonText","cancelButtonText","isConfirmed","showLoading","form_data","FormData","beforeSend","xhr","setRequestHeader","processData","contentType","redirect_url","identifier_serial","reward_form_id","status","reload","close","responseMessage","responseJSON","message","$select2Selector","selectOptionName","select2","theme","dataType","searchTerm","term","processResults","optionData","results","item","id","onStepChanged","priorIndex","stage_name","stage_number","pathname","ready","previousFieldName","on","e","preventDefault","validate","errorClass","errorPlacement","element","$this","$label","addClass","datepicker","format","hide","click","animate","scrollTop","offset","top","not","append","toggleDependentFieldRequiredValidation","isRequired","methodName","labelForAttribute","hideDependentChildElement","previous_element_names","dependentChilds","includes","hideElement","removeAttr","hasClass","removeClass","validator","methods","email","optional","test","target","blur","evt","limit_selection","Number","input_name","checked","parentFieldName","parentFieldValue","parentFieldType","$elementSelector","dependentFieldValue","trim","showDependentField","show","input_element","input_id","size","toFixed","ocrModalFileMapStatus","ocrModalProgressPercentage","ocrModalFileUploadName","ocrModalRawOcrResponse","ocrModalParsedDataMapping","ocrModalProgressTask","ocrModalSessionId","Math","random","ocrModalTraceId","ocrModalMaxFileSizeMb","ocrModalMaxFileSizeMessage","submitOcrImage","file","a","maxRetries","formData","response","ocrExtractor","headers","Authorization","dataMapping","ocrModalShowErrorMessage","ocrModalShowInfoMessage","increaseProgressPercentage","max","css","listFileElement","formInputName","is","modal","parseInt","s3URL","ocrResult","fileMapStatusKeys","form_input_name","setInterval","ocr_processing_state","fileKey","fileStatusMap","clearInterval","promises","image_urls","all","responses","raw_data","parse","ocrModalParsedDataMappingKeys","field","fieldElement","trigger","setTimeout","owlCarousel","center","loop","autoplay","margin","dots","nav","responsive","0","items","400","600","1000","provinceIDSelector","cityIDSelector","districtIDSelector","villageIDSelector","loadRegionList","$formSelectProvince","selectedRegionParentID","empty","$formSelectCity","$formSelectDistrict","selectID","parentID","readonly","delay","regionData","others","regionName","globalID","schoolProvinceIDSelector","schoolCityIDSelector","schoolDistrictIDSelector","schoolNameIDSelector","loadSchoolList","$formSelectSchoolProvince","$formSelectSchoolCity","$formSelectSchoolDistrict","$formSelectSchoolName","regionID","query","schoolText","secondRegionName","thirdRegionName","serial","getRegionByName","fetch","json","getSchoolByName","schoolName","has","provinceRegion","Option","cityRegion","school","$formSelectUniversity","selectedUniversityID","universityIDSelector","majorIDSelector","universityID","majorId","ID","loadMajorList","$formSelectMajorUniversity","selectedMajorID","productType","baClassSelector","baScheduleSelector","loadClassList","loadScheduleList","$formSelectGrade","selectedGrade","$formSelectClass","gradeSerial","classData","classSerial","escapeMarkup","markup","templateResult","templateSelection","selectedClass","now","diff","getFullYear","getMonth","getDate","seconds","floor","hours","minutes","hh","padStart","mm","ss","updateCountdown","$countdownTimer","is_success_page","webpackPolyfill","deprecate","paths","children","_typeof","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","querySelector","content","cspNonce","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","setData","Array","querySelectorAll","csrfParam","csrfToken","meta","CSRFProtection","refreshCSRFTokens","input","CustomEvent","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","defaultPrevented","dispatchEvent","stopEverything","stopPropagation","stopImmediatePropagation","eventType","handler","addEventListener","parentNode","AcceptHeaders","createXHR","prepareOptions","processResponse","xml","script","options","responseText","getResponseHeader","statusText","readyState","XMLHttpRequest","OPENED","send","toUpperCase","accept","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","match","createElement","setAttribute","head","appendChild","removeChild","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","inputs","elements","disabled","option","selected","encodeURIComponent","formElements","form","filter","el","allowAction","handleConfirm","confirm","answer","callback","getAttribute","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","removeEventListener","handleMethod","formContent","link","action","style","display","body","isRemote","handleRemote","button","enctype","args","arguments","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","ajaxPrefilter","originalOptions","start","_rails_loaded","Turbolinks","supported","history","pushState","requestAnimationFrame","visit","controller","clearCache","setProgressBarDelay","copyObject","closest","documentElement","nodeType","Node","ELEMENT_NODE","defer","throttle","apply","dispatch","u","initEvent","uuid","Location","absoluteURL","hash","requestURL","anchor","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isHTML","isPrefixedBy","isEqualTo","toCacheKey","toJSON","valueOf","_t","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","NETWORK_FAILURE","TIMEOUT_FAILURE","timeout","notifyApplicationBeforeRequestStart","setProgress","requestStarted","abort","lengthComputable","loaded","total","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","onprogress","onload","onerror","ontimeout","onabort","destroy","progress","requestFinished","ProgressBar","trickle","_t2","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","visible","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","refresh","insertBefore","firstChild","width","opacity","trickleInterval","textContent","className","BrowserAdapter","showProgressBar","_t3","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","clearTimeout","_t4","History","onPageLoad","onPopState","started","update","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","outerHTML","tracked","fromHeadElement","childNodes","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","getMetaValue","findMetaElementByName","tagName","toLowerCase","_e","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","clone","cloneNode","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","render","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","attributes","__super__","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","focus","_t5","replaceChild","_t6","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","snapshot","markAsPreview","renderSnapshot","renderError","removeAttribute","ScrollManager","onScroll","_t7","scrollToElement","scrollIntoView","scrollToPosition","x","y","scrollTo","updatePosition","pageXOffset","pageYOffset","position","scrollPositionChanged","SnapshotCache","snapshots","read","touch","put","write","splice","unshift","Visit","performScroll","_t8","identifier","adapter","timingMetrics","recordTimingMetric","request","cancelRender","fail","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTime","getTimingMetrics","snapshotCached","frame","cancelAnimationFrame","_t9","Controller","clickBubbled","clickCaptured","view","scrollManager","startHistory","enabled","disable","stopHistory","cache","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","timing","createVisit","isContentEditable","which","altKey","shiftKey","nodeIsVisitable","currentScript","hasAttribute","console","warn","factory","sparkMd5","createCommonjsModule","hex_chr","md5cycle","k","b","md5blk","md5blks","md5blk_array","md51","tail","tmp","lo","hi","md51_array","subarray","rhex","j","hex","toUtf8","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","fromCharCode","concatenateArrayBuffers","first","second","byteLength","set","buffer","hexToBinaryString","bytes","substr","SparkMD5","clamp","min","from","to","num","targetArray","sourceArray","begin","end","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","setState","hashBinary","classCallCheck","instance","Constructor","createClass","defineProperties","props","descriptor","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","ceil","chunkIndex","_this","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","root","eventInit","toArray$1","isArray","BlobRecord","checksum","filename","content_type","byte_size","responseType","requestDidLoad","requestDidError","blob","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","DirectUpload","notify","upload","_len","messages","_key","DirectUploadController","directUpload","hiddenInput","insertAdjacentElement","dispatchError","signed_id","alert","_this2","uploadRequestDidProgress","DirectUploadsController","controllers","createDirectUploadControllers","startNextController","shift","processingAttribute","submitButtonsByForm","WeakMap","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","enable","delete","submitForm","ActiveStorage","channels","require","webpackEmptyContext","req","code"],"mappings":"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","file":"js/application-d665a26dd8dd9119c833.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\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 = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 16);\n","module.exports = require(\"regenerator-runtime\");\n","const session_id = generateUUID();\n\nexport function tracker(event_name, params) {\n var tracker_url = `${$('body').data('tracking-base-url')}/api/v3/event/tracker`;\n\n let tracker_data = {}\n let context_data = {}\n\n $.each(params, function (key, value) {\n context_data[key] = value\n });\n\n let query_params = new URLSearchParams(window.location.search);\n query_params.forEach((value, key) => {\n context_data[key] = value\n });\n\n $.each([\"__rg_cookie_id__\", \"__tracker_session_id__\"], function (_, param) {\n if (trackerGetCookie(param) !== \"\") {\n tracker_data[param] = trackerGetCookie(param)\n }\n });\n\n let user_agent = navigator.userAgent\n let client_ua = user_agent.split(' (')[0];\n let info = user_agent.split(' (')[1].split(')')[0];\n let client_device;\n if (info.indexOf('Mobile') !== -1 || info.indexOf('Tablet') !== -1) {\n client_device = 'Mobile/Tablet';\n } else {\n client_device = 'Desktop';\n }\n let client_os = info.split(';')[0];\n let client_os_version = info.split('; ')[1] || 'Unknown';\n let connection_type = \"-\"\n if (navigator.connection && navigator.connection.effectiveType) {\n connection_type = navigator.connection.effectiveType\n }\n\n let user_serial = $('input[name=\"identifier_serial\"]').val() || context_data[\"identifier_serial\"]\n\n let payload = {\n \"sessionId\": session_id,\n \"cookiesId\": tracker_data[\"__rg_cookie_id__\"],\n \"deviceId\": \"\",\n \"memberId\": user_serial,\n \"isLogged\": Boolean(user_serial),\n \"eventType\": event_name,\n \"eventVersion\": 1,\n \"clientDevice\": client_device,\n \"clientUA\": client_ua,\n \"appVersion\": \"-\",\n \"clientOS\": client_os,\n \"clientOSVersion\": client_os_version,\n \"clientTimestamp\": new Date().toISOString(),\n \"context\": JSON.stringify(context_data),\n \"connectionType\": connection_type,\n \"source\": \"rg-form\",\n \"clientIP\": \"-\",\n \"currentPage\": window.location.href,\n \"previousPage\": document.referrer, \n \"utmSource\": context_data[\"utmSource\"] || context_data[\"utm_source\"],\n \"utmMedium\": context_data[\"utmMedium\"] || context_data[\"utm_medium\"],\n \"utmCampaign\": context_data[\"utmCampaign\"] || context_data[\"utm_campaign\"],\n \"utmTerm\": context_data[\"utmTerm\"] || context_data[\"utm_term\"],\n \"utmContent\": context_data[\"utmContent\"] || context_data[\"utm_content\"],\n \"originUrl\": window.location.href,\n \"marketingId\": context_data[\"marketingId\"] || context_data[\"marketing_id\"],\n }\n\n $.ajax({\n url: tracker_url,\n type: 'POST',\n data: payload,\n success: function (data) { },\n error: function (data) { }\n });\n}\n\nexport function trackerGetCookie(cname) {\n let name = cname + \"=\";\n let decodedCookie = decodeURIComponent(document.cookie);\n let ca = decodedCookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return \"\";\n}\n\nexport function generateUUID() {\n return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function(c) {\n return (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16);\n });\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","import { tracker } from './analytic';\n\n// Wizard initialization\nlet $formSelector = $('form#reward_form_submission');\nlet redirect_url_brainacademy = $('.temp_information').data(\n 'redirect-url-brainacademy',\n);\n$('#wizard').steps({\n headerTag: 'h3',\n bodyTag: 'section',\n transitionEffect: 'fade',\n saveState: true,\n titleTemplate:\n '#index##title#',\n labels: {\n cancel: 'Cancel',\n finish: 'Submit',\n next: 'Next',\n previous: 'Previous',\n loading: 'Loading...',\n },\n onStepChanging: function(event, currentIndex, newIndex) {\n if (newIndex > currentIndex) {\n $(\"label.validation-error-text\").remove();\n showDataSummary();\n if (validateForm(currentIndex)) {\n return false;\n }\n return $formSelector.valid();\n }\n return true;\n },\n onFinishing: function(event, currentIndex) {\n return $formSelector.valid();\n },\n onFinished: function(event, currentIndex) {\n // Revalidate form before submit\n if (validateForm(currentIndex)) {\n return false;\n }\n\n let token = $(\".user_identifier_value\").val()\n Swal.fire({\n title: 'Are you sure to submit the data?',\n text: \"Please recheck your data, it can't be changed once submitted!\",\n icon: 'warning',\n showCancelButton: true,\n confirmButtonColor: '#3085d6',\n cancelButtonColor: '#d33',\n confirmButtonText: 'Submit Data',\n cancelButtonText: 'Recheck Data',\n }).then((result) => {\n if (result.isConfirmed) {\n Swal.fire('Submitting data...');\n Swal.showLoading();\n let form_data = new FormData($formSelector[0]);\n $.ajax({\n type: 'POST',\n beforeSend: function(xhr) {\n if (token && token !== \"\") {\n xhr.setRequestHeader('Authorization', token);\n }\n },\n data: form_data,\n processData: false,\n contentType: false,\n url: $formSelector.attr('action'),\n success: function(result) {\n tracker(\"rgFormFormsSubmit\", {})\n let data = result.data;\n if (data.redirect_url) {\n window.location = data.redirect_url;\n } else if (\n redirect_url_brainacademy !== '' &&\n redirect_url_brainacademy !== undefined\n ) {\n window.location =\n '/form/success?identifier_serial=' +\n data.identifier_serial +\n '&id=' +\n data.reward_form_id +\n '&redirect_url=' +\n redirect_url_brainacademy;\n } else {\n window.location =\n '/form/success?identifier_serial=' +\n data.identifier_serial +\n '&id=' +\n data.reward_form_id;\n }\n },\n error: function(data) {\n if (data.status === 403) return location.reload();\n\n Swal.close();\n let responseMessage =\n data.responseJSON === undefined\n ? 'Please check your internet connection and retry submitting the form.'\n : data.responseJSON.message;\n let message =\n data.status === 500 ? 'Internal Server Error' : responseMessage;\n Swal.fire({\n title: 'Failed to submit the data',\n text: message,\n icon: 'error',\n confirmButtonColor: '#763cb0',\n confirmButtonText: 'Close',\n });\n loadPrizeOption();\n },\n });\n }\n });\n },\n onStepChanged: function(event, currentIndex, priorIndex) {\n tracker(\"rgFormFormsShow\", {\n stage_name: $(`#wizard-t-${currentIndex} .form-step-title`).text(),\n stage_number: currentIndex + 1,\n })\n },\n});\n\nif(window.location.pathname == '/form/success') {\n tracker(\"rgFormFormsShow\", {\n stage_name: \"success page\"\n })\n} else {\n // initial tracking step\n tracker(\"rgFormFormsShow\", {\n stage_name: $(`#wizard-t-0 .form-step-title`).text(),\n stage_number: 1,\n })\n}\n\n\nfunction validateForm(index) {\n let isCheckBoxValid = validateChoiceGroup(index, 'checkbox') > 0;\n let isRadioValid = validateChoiceGroup(index, 'radio') > 0;\n let isFileValid = validateFileFields(index) > 0;\n let isPhoneValid = validatePhoneFields(index) > 0;\n\n return isCheckBoxValid || isRadioValid || isFileValid || isPhoneValid;\n}\nfunction showDataSummary() {\n let data = $('form#reward_form_submission')\n .find('.form-control')\n .serializeArray();\n\n let submissionSummary = '';\n $.each(data, function(index, value) {\n let $field = $('[name=\"' + value['name'] + '\"]');\n let fieldId = $field.attr('id');\n if ($field.attr('data-dependent-field-visibility') === 'hidden') {\n return;\n }\n // Regex to remove all text with bracket from label\n let labelText = $('label[for=' + fieldId + ']')\n .text()\n .replace(/\\([^()]*\\)/g, '');\n let fieldSelectText = $('#' + fieldId + ' option:selected').text();\n let fieldValue = fieldSelectText === '' ? value['value'] : fieldSelectText;\n let fieldContent = fieldValue === '' ? '-' : htmlEncode(fieldValue);\n\n submissionSummary += `

${labelText}: ${fieldContent}

`;\n });\n\n let radioButtons = $('form#reward_form_submission').find('.input-radio');\n radioButtons.map(function() {\n if ($(this).find('label').attr('data-dependent-field-visibility') === 'hidden') {\n return;\n }\n\n if ($(this).prop('checked') === false) {\n return;\n }\n\n let selected_text = $(this)\n .parent()\n .text();\n let title = $(this).attr('data-title');\n\n submissionSummary += `

${title}: ${htmlEncode(\n selected_text,\n )}

`;\n });\n\n let checkboxes = $('form#reward_form_submission').find('div.checkbox-group');\n checkboxes.map(function() {\n if ($(this).find('label').attr('data-dependent-field-visibility') === 'hidden') {\n return;\n }\n\n let title = $(this).attr('data-title');\n let checkeds = $(this).find(':checkbox:checked');\n let checked_texts = [];\n checkeds.map(function() {\n checked_texts.push($(this).val());\n });\n submissionSummary += `

${title}: ${htmlEncode(\n checked_texts.join(', '),\n )}

`;\n });\n\n $('.submission-summary').html(submissionSummary);\n}\n\nfunction loadPrizeOption() {\n $(\"select[id^='reward_form_submission_submission_data_prize_options']\").each(\n function() {\n const $select2Selector = $(this);\n const selectOptionName = $(this)\n .attr('id')\n .split('submission_data_')[1];\n $select2Selector.select2({\n theme: 'bootstrap',\n ajax: {\n type: 'get',\n url: '/api/v1/select_options?select_option_name=' + selectOptionName,\n dataType: 'json',\n data: function(params) {\n return {\n searchTerm: params.term, // search term\n };\n },\n processResults: function(data) {\n let optionData = data.data;\n return {\n results: $.map(optionData, function(item) {\n return {\n text: item,\n id: item,\n };\n }),\n };\n },\n },\n });\n },\n );\n}\n\nfunction validateChoiceGroup(currentIndex, fieldType) {\n let invalidate_choices = 0;\n let $choiceGroupRequireds = $('#wizard-p-' + currentIndex).find(\n `div.${fieldType}-group.is-required`,\n );\n $choiceGroupRequireds.map(function() {\n if ($(this).find(`:${fieldType}:checked`).length === 0) {\n let label = $(this).find('.form-label');\n let errorLabel = $(this).find('.validation-error-text');\n\n // Remove existing error label\n errorLabel.remove();\n\n // Add new error label\n label.after(\n \"\",\n );\n invalidate_choices++;\n }\n });\n return invalidate_choices;\n}\n\nfunction validatePhoneFields(currentIndex) {\n let invalidate_phone_fields = 0;\n let $phonePrefixes = $('#wizard-p-' + currentIndex).find('.phone-prefix');\n $phonePrefixes.map(function() {\n if ($(this).prop('disabled')) return;\n if ($(this).prop('required') || $(this).val().length > 0) {\n let phone_prefix = $(this).data('phone-prefix');\n $(this)\n .prev('.prefix-invalid')\n .remove();\n $(this)\n .prev('.length-invalid')\n .remove();\n let prefix_valid = true;\n if (\n !$(this)\n .val()\n .startsWith(phone_prefix)\n ) {\n prefix_valid = false;\n $(this).before(\n ``,\n );\n invalidate_phone_fields++;\n }\n\n if (prefix_valid) {\n\n if ($(this).val().length <= phone_prefix.toString().length) {\n $(this).before(\n ``,\n );\n invalidate_phone_fields++;\n return invalidate_phone_fields;\n }\n }\n }\n });\n return invalidate_phone_fields;\n}\n\nfunction validateFileFields(currentIndex) {\n let invalidate_file_fields = 0;\n let $fileRequireds = $('#wizard-p-' + currentIndex).find('div.file-required');\n $fileRequireds.map(function() {\n if ($(this).find('.form-control-file')[0].files.length == 0) {\n let label = $(this).find('label.required');\n label.after(\n \"\",\n );\n invalidate_file_fields++;\n }\n });\n return invalidate_file_fields;\n}\n\nfunction htmlEncode(str) {\n return String(str).replace(/[^\\w. ]/gi, function(c) {\n return '&#' + c.charCodeAt(0) + ';';\n });\n}\n\n\n","import { tracker } from './analytic';\n\n$(document).ready(function() {\n let $formSelector = $(\"form#reward_form_submission\");\n\n // Disable reward form submit function, to force user use the wizard form\n $formSelector.on('submit', function (e) {\n e.preventDefault();\n });\n\n // Validate all required fields\n $formSelector.validate({\n errorClass: 'error-validation',\n errorPlacement: function errorPlacement(error, element) { element.after(error); }\n });\n\n // Auto add .required class to all labels with required field\n $('input[required], textarea[required], select[required]').each(function() {\n let $this = $(this);\n let $label = $('label[for=\"'+ $this.attr('id') +'\"]');\n if ($label.length > 0 && $(this).attr('data-label-type') !== 'radio' && $(this).attr('data-label-type') !== 'checkbox') {\n $label.addClass(\"required\");\n }\n });\n\n // Turn all select with select2 class into select2 field\n $('select.select2').select2({ theme: 'bootstrap' });\n $('.select2').each(function() {\n if ($(this).attr('data-dependent-field-visibility') === 'hidden') {\n $(this).next(\".select2-container\").addClass('d-none');\n }\n });\n\n $(\".datepicker\").datepicker({\n format: \"yyyy-mm-dd\",\n });\n\n $('.datepicker').each(function() {\n if ($(this).attr('data-dependent-field-visibility') === 'hidden') {\n $(this).datepicker(\"destroy\");\n $(this).hide();\n }\n });\n\n $(\"#tnc-button\").click(function(e) {\n e.preventDefault();\n\n $('html, body').animate({\n scrollTop: $(\".form-footer\").offset().top\n }, 1000);\n });\n\n // Show field name to make admin easier finding it in the preview page\n if ($('#is_preview').val() === 'true') {\n let previousFieldName;\n $('[name]').not('input[type=hidden]').each(function() {\n let $this = $(this);\n\n if (previousFieldName === $this.attr('name')) {\n return;\n }\n\n let parentElement = $this.attr('type') === 'checkbox' ? $this.parent().parent() : $this.parent();\n parentElement.append('*Field name: '+ $this.attr('name') +'');\n\n previousFieldName = $this.attr('name');\n });\n }\n\n // Custom validation to override default email validation in jquery\n $.validator.methods.email = function( value, element ) {\n return this.optional( element ) || /^\\w+([\\.+-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/.test( value );\n }\n\n // disable scroll to change value in input type number\n $('input[type=number]').on('mousewheel', function(e) {\n $(e.target).blur();\n });\n\n // Limit max checkbox selection\n $('input.form-check-input').on('change', function(evt) {\n var limit_selection = Number($(this).attr('data-max-selection'))\n if (limit_selection) {\n var input_name = $(this).attr(\"name\")\n if($(`input[name='${input_name}']:checked`).length > limit_selection) {\n this.checked = false;\n }\n }\n \n });\n\n $('input, select').on('change', function() {\n let parentFieldName = $(this).attr('name');\n let parentFieldValue = $(this).val();\n let parentFieldType = $(this).attr('type');\n\n let $elements = $('[data-dependent-field-name=\"'+ parentFieldName +'\"]');\n $elements.each(function() {\n let $elementSelector = $(this);\n\n // Remove required validation on every change to prevent required validation when the field is hidden\n toggleDependentFieldRequiredValidation({ element: $elementSelector, isRequired: false } )\n\n let dependentFieldValue = $elementSelector.attr('data-dependent-field-value').split(\",\");\n dependentFieldValue = dependentFieldValue.map(element => {\n return element.trim();\n });\n $elementSelector.next(\"label.error-validation\").remove();\n\n let isRequired = $elementSelector.attr('data-is-required') === 'true';\n\n let showDependentField = false\n\n // if input type is checkbox, check if one of checked value included in dependent value\n if (parentFieldType === \"checkbox\") {\n $(`input:checkbox[name=\"${parentFieldName}\"]:checked`).each(function() {\n if (dependentFieldValue.includes(this.value)) {\n showDependentField = true;\n }\n });\n } else if (dependentFieldValue.includes(parentFieldValue)) {\n showDependentField = true\n }\n\n if (showDependentField) {\n // Dynamically add required validation so the form will be validated when shown\n toggleDependentFieldRequiredValidation({ element: $elementSelector, isRequired } )\n\n $elementSelector.prop(\"disabled\", false);\n $elementSelector.attr('data-dependent-field-visibility', 'visible');\n $elementSelector.removeClass('d-none');\n $elementSelector.next(\".select2-container\").removeClass('d-none');\n if ($elementSelector.hasClass('datepicker')) {\n $elementSelector.show();\n $elementSelector.datepicker({\n format: \"yyyy-mm-dd\",\n });\n }\n } else {\n hideElement($elementSelector)\n hideDependentChildElement($elementSelector)\n }\n });\n });\n\n function toggleDependentFieldRequiredValidation({ element, isRequired = false } ) {\n let methodName = isRequired ? 'addClass' : 'removeClass';\n let labelForAttribute = 'id'\n\n if (element.attr('type') === 'file') {\n element.parent()[methodName]('file-required');\n } else if (element.attr('type') === 'checkbox') {\n element.parent().parent()[methodName]('is-required');\n labelForAttribute = 'name';\n } else if (element.attr('type') === 'radio') {\n element.parent().parent().parent()[methodName]('is-required');\n labelForAttribute = 'name';\n } else {\n element.attr('required', isRequired);\n element[methodName]('required');\n }\n\n // Add required class to label\n let $label = $('label[for=\"'+ element.attr(labelForAttribute) +'\"]');\n $label[methodName](\"required\");\n }\n\n function hideDependentChildElement(element, previous_element_names = []) {\n let dependentChilds = $(`[data-dependent-field-name='${element.attr('name')}']`)\n if (dependentChilds.length === 0) return;\n if (previous_element_names.includes(element.attr('name'))) return;\n\n previous_element_names.push(element.attr('name'))\n dependentChilds.each(function() {\n hideElement($(this))\n hideDependentChildElement($(this), previous_element_names)\n })\n }\n\n function hideElement(element) {\n element.removeAttr('required');\n element.prop(\"disabled\", true);\n element.attr('data-dependent-field-visibility', 'hidden');\n element.addClass('d-none');\n element.next(\".select2-container\").addClass('d-none');\n if (element.hasClass('datepicker')) {\n element.datepicker(\"destroy\");\n element.hide();\n }\n element.prop('checked',false);\n if (element.attr('type') === 'file') {\n element.parent().removeClass('file-required');\n }\n }\n\n $('.form-control-file').on('change', function() {\n\n var input_element = $(this)\n var input_id = input_element.attr('id')\n\n $(`label.validation-error-text-${input_id}`).remove();\n\n for (let i = 0; i < this.files.length; i++) {\n var size = (this.files[i].size / 1024 / 1024).toFixed(2);\n\n if (size > 10) {\n input_element.after(\n ``,\n );\n }\n }\n });\n\n var ocrModalFileMapStatus = {}\n var ocrModalProgressPercentage = 0;\n var ocrModalFileUploadName = '';\n var ocrModalRawOcrResponse = null\n var ocrModalParsedDataMapping = null\n var ocrModalProgressTask = null\n var ocrModalSessionId = Math.random().toString(36).substring(2, 15);\n var ocrModalTraceId = null\n\n var ocrModalMaxFileSizeMb = $('#ocr-modal-max-file-size-mb').val();\n var ocrModalMaxFileSizeMessage = $('#ocr-modal-max-file-size-message').val();\n\n $('input[enable_ocr=\"true\"]').on('click', async function (event) { \n // add reset variable\n $(this).val(null);\n ocrModalFileMapStatus = {}\n ocrModalProgressPercentage = 0;\n ocrModalFileUploadName = '';\n ocrModalRawOcrResponse = null\n ocrModalParsedDataMapping = null \n $('.ocr-modal-selection-state').removeClass('d-none');\n $('.ocr-modal-loading-state').addClass('d-none'); \n $('#ocr-modal-progress-bar').css('width', '0%');\n $('#ocr-modal-info-message').addClass('d-none');\n $('#ocr-modal-error-message').addClass('d-none');\n $('#ocr-modal-selected-files').html('');\n $('#ocr-modal-submit').removeClass('d-none').html('Submit');\n });\n\n $('input[enable_ocr=\"true\"]').on('change', async function (event) {\n let listFileElement = '';\n ocrModalFileUploadName = $(this).attr('name');\n let formInputName = $(this).attr('form_input_name');\n if(!$(`input[enable_ocr_form_input_name=\"${formInputName}\"]`).is(\":checked\")){\n return\n }\n\n $('#ocr-modal').modal('show');\n // pre processing status map\n for await (let file of event.target.files) {\n if(file.size > parseInt(ocrModalMaxFileSizeMb) * 1024 * 1024){\n ocrModalShowErrorMessage(ocrModalMaxFileSizeMessage);\n $('#ocr-modal-submit').addClass('d-none');\n return\n }\n ocrModalFileMapStatus[file.name] = {\n s3URL: null,\n file: file,\n ocrResult: null\n }\n listFileElement += `
  • ${file.name}
  • `\n }\n $('#ocr-modal-selected-files').html(`
      ${listFileElement}
    `);\n });\n\n async function submitOcrImage(file, maxRetries = 3) {\n let formData = new FormData();\n formData.append('file', file);\n formData.append('presetID', 'roboguru');\n formData.append('path', 'reward-form/ocr/');\n\n for (let i = 0; i < maxRetries; i++) {\n try {\n let response = await $.ajax({\n url: \"https://gw.ruangguru.com/file-uploader/upload\",\n type: 'POST',\n data: formData,\n processData: false,\n contentType: false,\n });\n return response;\n } catch (error) {\n if (i === maxRetries - 1) {\n throw error;\n }\n }\n }\n }\n\n async function ocrExtractor(params, maxRetries = 3) {\n params['llm_session_id'] = ocrModalSessionId\n params['llm_trace_id'] = ocrModalTraceId \n let token = $('.user_identifier_value').val()\n for (let i = 0; i <= maxRetries; i++) {\n try {\n let response = await $.ajax({\n url: '/api/v1/rg-llm/ocr_extractor',\n type: 'POST',\n data: JSON.stringify(params),\n dataType: 'json',\n contentType: 'application/json',\n headers: {\n Authorization: token\n }\n });\n return response;\n } catch (error) {\n if (i >= maxRetries) throw error;\n }\n }\n }\n\n async function dataMapping(params, maxRetries = 3) {\n params['llm_session_id'] = ocrModalSessionId\n params['llm_trace_id'] = ocrModalTraceId\n\n let token = $('.user_identifier_value').val()\n for (let i = 0; i <= maxRetries; i++) {\n try {\n let response = await $.ajax({\n url: '/api/v1/rg-llm/data_mapping',\n type: 'POST',\n data: JSON.stringify(params),\n dataType: 'json',\n contentType: 'application/json',\n headers: {\n Authorization: token\n } \n });\n return response;\n } catch (error) {\n if (i >= maxRetries) throw error;\n }\n }\n }\n\n function ocrModalShowErrorMessage(message) {\n $('#ocr-modal-error-message').text(message);\n $('#ocr-modal-error-message').removeClass('d-none');\n }\n\n function ocrModalShowInfoMessage(message) {\n $('#ocr-modal-info-message').text(message);\n $('#ocr-modal-info-message').removeClass('d-none');\n }\n\n function increaseProgressPercentage(t, max) {\n if (ocrModalProgressPercentage >= max) {\n return\n }\n if(ocrModalProgressPercentage >= 100){\n return\n }\n ocrModalProgressPercentage += t\n $('#ocr-modal-progress-bar').css('width', `${ocrModalProgressPercentage}%`);\n }\n \n $('#ocr-modal-submit').on('click', async function () {\n $('.ocr-modal-selection-state').addClass('d-none');\n $('.ocr-modal-loading-state').removeClass('d-none');\n $('#ocr-modal-error-message').addClass('d-none');\n let fileMapStatusKeys = Object.keys(ocrModalFileMapStatus)\n ocrModalTraceId = Math.random().toString(36).substring(2, 15);\n\n let reward_form_id = $(`input[name=\"${ocrModalFileUploadName}\"]`).attr('reward_form_id')\n let form_input_name = $(`input[name=\"${ocrModalFileUploadName}\"]`).attr('form_input_name')\n\n // Progress counting\n ocrModalProgressTask = setInterval(() => {\n increaseProgressPercentage(1, 100)\n }, 1000);\n\n // upload files\n tracker(\"rgFormOCRProcess\", {\n ocr_processing_state: 'uploading_files_start',\n })\n ocrModalShowInfoMessage('Uploading files to server...');\n for (const fileKey of fileMapStatusKeys) {\n let fileStatusMap = ocrModalFileMapStatus[fileKey]\n\n if (fileStatusMap.s3URL) {\n continue\n }\n\n try {\n let response = await submitOcrImage(fileStatusMap.file)\n fileStatusMap.s3URL = response.data.s3URL\n let t = 30 / fileMapStatusKeys.length\n increaseProgressPercentage(t, 30)\n } catch (error) {\n ocrModalShowErrorMessage('Failed to upload file: ' + fileKey)\n $('#ocr-modal-submit').html('Coba lagi');\n clearInterval(ocrModalProgressTask)\n return\n }\n }\n tracker(\"rgFormOCRProcess\", {\n ocr_processing_state: 'uploading_files_success',\n })\n // Extract OCR from image\n if (!ocrModalRawOcrResponse) {\n tracker(\"rgFormOCRProcess\", {\n ocr_processing_state: 'extract_ocr_from_image_start',\n }) \n ocrModalShowInfoMessage('Extracting ocr from image...');\n let promises = [];\n try {\n for (const fileKey of fileMapStatusKeys) {\n let fileStatusMap = ocrModalFileMapStatus[fileKey];\n promises.push(\n ocrExtractor({\n image_urls: [fileStatusMap.s3URL],\n reward_form_id: reward_form_id,\n form_input_name: form_input_name\n })\n );\n }\n let responses = await Promise.all(promises);\n ocrModalRawOcrResponse = responses.map(response => response.data).toString();\n\n increaseProgressPercentage(30, 60);\n tracker(\"rgFormOCRProcess\", {\n ocr_processing_state: 'extract_ocr_from_image_success',\n }) \n } catch (error) {\n tracker(\"rgFormOCRProcess\", {\n ocr_processing_state: 'extract_ocr_from_image_failed',\n })\n ocrModalShowErrorMessage('Failed to extract ocr from image.');\n $('#ocr-modal-submit').html('Try again later');\n clearInterval(ocrModalProgressTask);\n return;\n }\n } \n\n\n // LLM for data mapping of extracted ocr\n if (!ocrModalParsedDataMapping) {\n tracker(\"rgFormOCRProcess\", {\n ocr_processing_state: 'mapping_data_start',\n })\n ocrModalShowInfoMessage('Mapping data...');\n try {\n let response = await dataMapping({\n reward_form_id: reward_form_id,\n form_input_name: form_input_name,\n raw_data: ocrModalRawOcrResponse\n })\n ocrModalParsedDataMapping = response.data\n increaseProgressPercentage(30, 90)\n tracker(\"rgFormOCRProcess\", {\n ocr_processing_state: 'mapping_data_success',\n })\n } catch (error) {\n tracker(\"rgFormOCRProcess\", {\n ocr_processing_state: 'mapping_data_failed',\n })\n ocrModalShowErrorMessage('Failed to map data')\n $('#ocr-modal-submit').html('Coba lagi');\n clearInterval(ocrModalProgressTask)\n return\n }\n }\n\n\n // Parse to JSON format from string of data mapping\n try {\n ocrModalShowInfoMessage('Parsing data mapping...');\n ocrModalParsedDataMapping = JSON.parse(ocrModalParsedDataMapping)\n increaseProgressPercentage(10, 100)\n } catch (error) {\n ocrModalShowErrorMessage('Failed to parse data mapping. Please re-upload the picture')\n $('#ocr-modal-submit').addClass('d-none');\n clearInterval(ocrModalProgressTask)\n return\n }\n\n // Set value to target field\n let ocrModalParsedDataMappingKeys = Object.keys(ocrModalParsedDataMapping)\n for (const field of ocrModalParsedDataMappingKeys) {\n try {\n let fieldElement = $(`input[name=\"reward_form_submission[submission_data][${field}]\"]`)\n fieldElement.val(ocrModalParsedDataMapping[field])\n fieldElement.trigger('change')\n } catch (error) {\n }\n }\n\n ocrModalShowInfoMessage('Finished');\n setTimeout(() => {\n $('#ocr-modal').modal('hide');\n clearInterval(ocrModalProgressTask)\n }, 1000);\n });\n});\n","$('.owl-carousel').owlCarousel({\n center: true,\n loop: true,\n autoplay: true,\n margin: 20,\n dots: true,\n nav: false,\n // stagePadding: 50,\n responsive:{\n 0: {\n items: 1\n },\n 400: {\n items: 1\n },\n 600: {\n items: 2\n },\n 1000: {\n items: 3\n }\n }\n})","// Region selection init\nconst provinceIDSelector = 'reward_form_submission_submission_data_address_province'; // 1st level\nconst cityIDSelector = 'reward_form_submission_submission_data_address_city'; // 2nd level\nconst districtIDSelector = 'reward_form_submission_submission_data_address_district'; // 3rd level\nconst villageIDSelector = 'reward_form_submission_submission_data_address_village'; // 4th level\n\nloadRegionList(provinceIDSelector, 'ID-62-0-0', false);\nloadRegionList(cityIDSelector, '', true);\nloadRegionList(districtIDSelector, '', true);\nloadRegionList(villageIDSelector, '', true);\n\nconst $formSelectProvince = $('#' + provinceIDSelector);\n$formSelectProvince.on('change', function () {\n let selectedRegionParentID = $formSelectProvince.find('option:selected').val();\n $('#' + cityIDSelector).empty()\n loadRegionList(cityIDSelector, selectedRegionParentID, false);\n $('#' + districtIDSelector).empty()\n loadRegionList(districtIDSelector, '', true);\n $('#' + villageIDSelector).empty()\n loadRegionList(villageIDSelector, '', true);\n})\n\nconst $formSelectCity = $('#' + cityIDSelector);\n$formSelectCity.on('change', function () {\n let selectedRegionParentID = $formSelectCity.find('option:selected').val();\n $('#' + districtIDSelector).empty();\n loadRegionList(districtIDSelector, selectedRegionParentID, false);\n loadRegionList(villageIDSelector, '', true);\n})\n\nconst $formSelectDistrict = $('#' + districtIDSelector);\n$formSelectDistrict.on('change', function () {\n let selectedRegionParentID = $formSelectDistrict.find('option:selected').val();\n $('#' + villageIDSelector).empty();\n loadRegionList(villageIDSelector, selectedRegionParentID, false);\n})\n\nfunction loadRegionList(selectID, parentID, readonly) {\n const $select2Selector = $('#' + selectID);\n $select2Selector.addClass('region-select');\n $select2Selector.select2({\n theme: 'bootstrap',\n ajax: {\n type: 'get',\n url: '/api/v1/regions?parent_id=' + parentID,\n dataType: 'json',\n data: function (params) {\n return {\n searchTerm: params.term // search term\n };\n },\n delay: 250,\n processResults: function (data) {\n let regionData = data.data;\n if (selectID === villageIDSelector) {\n let others = 'Lainnya';\n regionData.push({\n regionName: others,\n globalID: others\n });\n }\n return {\n results: $.map(regionData, function (item) {\n return {\n text: item.regionName,\n id: item.globalID\n }\n })\n };\n }\n }\n });\n\n $select2Selector.prop(\"readonly\", readonly);\n}\n\n$('.region-select').each(function() {\n if ($(this).attr('data-dependent-field-visibility') === 'hidden') {\n $(this).next(\".select2-container\").addClass('d-none');\n }\n});\n","// School selection init\nconst schoolProvinceIDSelector = 'reward_form_submission_submission_data_school_province'; // 1st level\nconst schoolCityIDSelector = 'reward_form_submission_submission_data_school_city'; // 2nd level\nconst schoolDistrictIDSelector = 'reward_form_submission_submission_data_school_district'; // 3rd level\nconst schoolNameIDSelector = 'reward_form_submission_submission_data_school_name';\n\nloadRegionList(schoolProvinceIDSelector, 'ID-62-0-0', false);\nloadRegionList(schoolCityIDSelector, '', true);\nloadRegionList(schoolDistrictIDSelector, '', true);\nloadSchoolList(schoolNameIDSelector, '', true);\n\nconst $formSelectSchoolProvince = $('#' + schoolProvinceIDSelector);\n$formSelectSchoolProvince.on('change', function () {\n let selectedRegionParentID = $formSelectSchoolProvince.find('option:selected').val();\n $('#' + schoolCityIDSelector).empty()\n loadRegionList(schoolCityIDSelector, selectedRegionParentID, false);\n $('#' + schoolDistrictIDSelector).empty()\n loadRegionList(schoolDistrictIDSelector, '', true);\n $('#' + schoolNameIDSelector).empty();\n loadSchoolList(schoolNameIDSelector, selectedRegionParentID, false);\n})\n\nconst $formSelectSchoolCity = $('#' + schoolCityIDSelector);\n$formSelectSchoolCity.on('change', function () {\n let selectedRegionParentID = $formSelectSchoolCity.find('option:selected').val();\n $('#' + schoolDistrictIDSelector).empty();\n loadRegionList(schoolDistrictIDSelector, selectedRegionParentID, false);\n $('#' + schoolNameIDSelector).empty();\n loadSchoolList(schoolNameIDSelector, selectedRegionParentID, false);\n})\n\nconst $formSelectSchoolDistrict = $('#' + schoolDistrictIDSelector);\n$formSelectSchoolDistrict.on('change', function () {\n let selectedRegionParentID = $formSelectSchoolDistrict.find('option:selected').val();\n $('#' + schoolNameIDSelector).empty();\n loadSchoolList(schoolNameIDSelector, selectedRegionParentID, false);\n})\n\nconst $formSelectSchoolName = $('#' + schoolNameIDSelector);\n$formSelectSchoolName.on('change', function () {\n let selectedSchoolName = $formSelectSchoolName.find('option:selected').val();\n if (selectedSchoolName === 'Lainnya') {\n $('.school-other').removeClass('d-none');\n } else {\n $('.school-other').addClass('d-none');\n }\n})\n\nfunction loadRegionList(selectID, parentID, readonly) {\n const $select2Selector = $('#' + selectID);\n $select2Selector.select2({\n theme: 'bootstrap',\n ajax: {\n type: 'get',\n url: '/api/v1/regions?parent_id=' + parentID,\n dataType: 'json',\n data: function (params) {\n return {\n searchTerm: params.term // search term\n };\n },\n delay: 250,\n processResults: function (data) {\n return {\n results: $.map(data.data, function (item) {\n return {\n text: item.regionName,\n id: item.globalID\n }\n })\n };\n }\n }\n });\n\n $select2Selector.prop(\"readonly\", readonly);\n}\n\nfunction loadSchoolList(selectID, regionID, readonly) {\n const $select2Selector = $('#' + selectID);\n $select2Selector.addClass('school-selector');\n $select2Selector.select2({\n theme: 'bootstrap',\n ajax: {\n type: 'get',\n url: '/api/v1/schools?region_id=' + regionID,\n dataType: 'json',\n data: function (params) {\n return {\n query: params.term // search term\n };\n },\n delay: 250,\n processResults: function (data) {\n if (data.data.length > 0) {\n return {\n results: $.map(data.data, function (item) {\n let schoolText = item.name;\n if (item.secondRegionName) {\n schoolText += ` - ${item.secondRegionName}`;\n }\n if (item.thirdRegionName) {\n schoolText += ` - ${item.thirdRegionName}`;\n }\n return {\n text: schoolText,\n id: item.serial\n }\n })\n };\n } else {\n if ($select2Selector.data(\"school-other\") === false) {\n return { results: [] }\n } else {\n return {\n results: [{\n text: 'Lainnya',\n id: 'Lainnya'\n }]\n }\n }\n }\n }\n }\n });\n\n $select2Selector.prop(\"readonly\", readonly);\n}\n\nasync function getRegionByName(regionName, parentID) {\n const response = await fetch(`/api/v1/regions?parent_id=${parentID}&searchTerm=${regionName}`);\n const data = await response.json();\n if (data.data.length > 0) {\n return data.data[0];\n }\n return null\n}\n\nasync function getSchoolByName(schoolName, regionID) {\n const response = await fetch(`/api/v1/schools?query=${schoolName}®ion_id=${regionID}`);\n const data = await response.json();\n if (data.data.length > 0) {\n return data.data[0];\n }\n return null\n}\n\n$(async function () {\n let params = new URLSearchParams(window.location.search);\n if (!params.has('prefill_school_province')) {\n return;\n }\n\n var provinceRegion = await getRegionByName(params.get('prefill_school_province'), 'ID-62-0-0');\n if (!provinceRegion) {\n return;\n }\n $formSelectSchoolProvince.append(new Option(provinceRegion.regionName, provinceRegion.globalID, false, false)).trigger('change');\n $formSelectSchoolProvince.val(provinceRegion.globalID).trigger('change');\n\n if (!params.has('prefill_school_city')) {\n return;\n }\n\n var cityRegion = await getRegionByName(params.get('prefill_school_city'), provinceRegion.globalID);\n if (!cityRegion) {\n return\n }\n\n $formSelectSchoolCity.append(new Option(cityRegion.regionName, cityRegion.globalID, false, false)).trigger('change');\n $formSelectSchoolCity.val(cityRegion.globalID).trigger('change');\n\n if (!params.has('prefill_school_name')) {\n return;\n }\n\n var school = await getSchoolByName(params.get('prefill_school_name'), cityRegion.globalID);\n if (school) {\n $(`#${schoolNameIDSelector}`).append(new Option(school.name, school.serial, false, false)).trigger('change');\n $(`#${schoolNameIDSelector}`).val(school.serial).trigger('change');\n }\n});\n\n$('.school-selector').each(function() {\n if ($(this).attr('data-dependent-field-visibility') === 'hidden') {\n $(this).next(\".select2-container\").addClass('d-none');\n }\n});\n","// University selection init\n$formSelectUniversity = $(\"select[id^='reward_form_submission_submission_data_university_name']\")\n$formSelectUniversity.on('change', function () {\n let selectedUniversityID = $(this).find('option:selected').data(\"id\");\n var universityIDSelector = $(this).attr(\"id\").replace(\"name\", \"id\")\n $('#' + universityIDSelector).val(selectedUniversityID)\n var majorIDSelector = $(this).attr(\"id\").replace(\"name\", \"major\")\n $('#' + majorIDSelector).empty()\n loadMajorList(majorIDSelector, selectedUniversityID, false);\n})\n\n$formSelectMajorUniversity = $(\"select[id^='reward_form_submission_submission_data_university_major']\")\n$formSelectMajorUniversity.on('select2:select', function (e) {\n let selectedMajorID = e.params.data.majorId;\n var majorIDSelector = $(this).attr(\"id\").replace(\"major\", \"major_id\")\n $('#' + majorIDSelector).val(selectedMajorID)\n});\n\nfunction loadMajorList(selectID, universityID, readonly) {\n const $select2Selector = $('#' + selectID);\n $select2Selector.addClass('major-selector')\n if (universityID == 0) {\n $select2Selector.select2({\n theme: 'bootstrap',\n data: [{id: 'Lainnya', text: 'Lainnya', majorId: 0}]\n });\n $select2Selector.trigger('change');\n } else {\n $select2Selector.select2({\n theme: 'bootstrap',\n ajax: {\n type: 'get',\n url: '/api/v1/university/'+ universityID + '/majors',\n dataType: 'json',\n data: function (params) {\n return {\n query: params.term // search term\n };\n },\n processResults: function (data) {\n if(data.data.length > 0) {\n return {\n results: $.map(data.data, function (item) {\n return {\n text: item.name,\n id: item.name,\n majorId: item.ID\n }\n })\n };\n } else {\n if ($select2Selector.data(\"major-other\")) {\n return {\n results: [{\n text: 'Lainnya',\n id: 'Lainnya',\n majorId: 0\n }]\n }\n } else {\n return { results: [] }\n }\n }\n }\n }\n });\n }\n \n\n $select2Selector.prop(\"readonly\", readonly);\n}\n\n$('.major-selector').each(function() {\n if ($(this).attr('data-dependent-field-visibility') === 'hidden') {\n $(this).next(\".select2-container\").addClass('d-none');\n }\n});\n","// Region selection init\nvar productType = $('.temp_information').data('product-type');\nconst baGradeSelector =\n 'reward_form_submission_submission_data_ba_grade_options'; // 1st level\nconst baClassSelector =\n 'reward_form_submission_submission_data_ba_class_options'; // 2nd level\nconst baScheduleSelector =\n 'reward_form_submission_submission_data_ba_schedule_options'; // 3rd level\n\nloadClassList(baClassSelector, '', true);\nloadScheduleList(baScheduleSelector, '', true);\n\nconst $formSelectGrade = $('#' + baGradeSelector);\n$formSelectGrade.on('change', function() {\n let selectedGrade = $formSelectGrade.find('option:selected').val();\n $('#' + baClassSelector).empty();\n loadClassList(baClassSelector, selectedGrade, false);\n});\n\nconst $formSelectClass = $('#' + baClassSelector);\n$formSelectClass.on('change', function() {\n let selectedClass = $formSelectClass.find('option:selected').val();\n let selectedGrade = $formSelectGrade.find('option:selected').val();\n $('#' + baScheduleSelector).empty();\n loadScheduleList(baScheduleSelector, selectedGrade, selectedClass, false);\n});\n\nfunction loadClassList(selectID, gradeSerial, readonly) {\n const $select2Selector = $('#' + selectID);\n $select2Selector.select2({\n theme: 'bootstrap',\n ajax: {\n type: 'get',\n url:\n '/api/v1/brainacademy/classes?product_type=' +\n productType +\n '&grade_serial=' +\n gradeSerial,\n dataType: 'json',\n data: function(params) {\n return {\n searchTerm: params.term, // search term\n };\n },\n processResults: function(data) {\n let classData = data.data;\n return {\n results: $.map(classData, function(item) {\n return {\n text: item.title,\n id: item.value,\n };\n }),\n };\n },\n },\n });\n\n $select2Selector.prop('readonly', readonly);\n}\n\nfunction loadScheduleList(selectID, gradeSerial, classSerial, readonly) {\n const $select2Selector = $('#' + selectID);\n $select2Selector.select2({\n theme: 'bootstrap',\n escapeMarkup: function(markup) {\n return markup;\n },\n templateResult: function(data) {\n return data.html;\n },\n templateSelection: function(data) {\n return data.text;\n },\n ajax: {\n type: 'get',\n url:\n '/api/v1/brainacademy/schedules?product_type=' +\n productType +\n '&grade_serial=' +\n gradeSerial +\n '&class_serial=' +\n classSerial,\n dataType: 'json',\n data: function(params) {\n return {\n searchTerm: params.term, // search term\n };\n },\n processResults: function(data) {\n let classData = data.data;\n return {\n results: $.map(classData, function(item) {\n return {\n html: item.html,\n text: item.title,\n id: item.value,\n };\n }),\n };\n },\n },\n });\n\n $select2Selector.prop('readonly', readonly);\n}\n","function updateCountdown() {\n const now = new Date();\n\n const nextMidnight = new Date(\n now.getFullYear(),\n now.getMonth(),\n now.getDate() + 1,\n 0, 0, 0\n );\n\n const diff = nextMidnight - now;\n let seconds = Math.floor(diff / 1000);\n const hours = Math.floor(seconds / 3600);\n seconds %= 3600;\n const minutes = Math.floor(seconds / 60);\n seconds %= 60;\n\n const hh = String(hours).padStart(2, '0');\n const mm = String(minutes).padStart(2, '0');\n const ss = String(seconds).padStart(2, '0');\n return {\n hh, mm, ss\n }\n}\n\nsetInterval(() => {\n const result = updateCountdown()\n // set to DOM\n const $countdownTimer = $('.countdown-timer');\n $countdownTimer.find('.hours').text(result.hh);\n $countdownTimer.find('.minutes').text(result.mm);\n $countdownTimer.find('.seconds').text(result.ss);\n},1200)","var redirect_url_brainacademy = $('.temp_information').data(\n 'redirect-url-brainacademy',\n);\nvar is_success_page = $('.temp_information').data('is-success-page');\nif (\n redirect_url_brainacademy !== '' &&\n redirect_url_brainacademy !== undefined &&\n is_success_page === true\n) {\n setTimeout(function() {\n window.location = redirect_url_brainacademy;\n }, 3000);\n}\n","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form',\n formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function processResponse(response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function disableFormElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function isXhrRedirect(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nTurbolinks 5.2.0\nCopyright © 2018 Basecamp, LLC\n */\n(function () {\n var t = this;\n (function () {\n (function () {\n this.Turbolinks = {\n supported: function () {\n return null != window.history.pushState && null != window.requestAnimationFrame && null != window.addEventListener;\n }(),\n visit: function visit(t, r) {\n return e.controller.visit(t, r);\n },\n clearCache: function clearCache() {\n return e.controller.clearCache();\n },\n setProgressBarDelay: function setProgressBarDelay(t) {\n return e.controller.setProgressBarDelay(t);\n }\n };\n }).call(this);\n }).call(t);\n var e = t.Turbolinks;\n (function () {\n (function () {\n var t,\n r,\n n,\n o = [].slice;\n e.copyObject = function (t) {\n var e, r, n;\n r = {};\n\n for (e in t) {\n n = t[e], r[e] = n;\n }\n\n return r;\n }, e.closest = function (e, r) {\n return t.call(e, r);\n }, t = function () {\n var t, e;\n return t = document.documentElement, null != (e = t.closest) ? e : function (t) {\n var e;\n\n for (e = this; e;) {\n if (e.nodeType === Node.ELEMENT_NODE && r.call(e, t)) return e;\n e = e.parentNode;\n }\n };\n }(), e.defer = function (t) {\n return setTimeout(t, 1);\n }, e.throttle = function (t) {\n var e;\n return e = null, function () {\n var r;\n return r = 1 <= arguments.length ? o.call(arguments, 0) : [], null != e ? e : e = requestAnimationFrame(function (n) {\n return function () {\n return e = null, t.apply(n, r);\n };\n }(this));\n };\n }, e.dispatch = function (t, e) {\n var r, o, i, s, a, u;\n return a = null != e ? e : {}, u = a.target, r = a.cancelable, o = a.data, i = document.createEvent(\"Events\"), i.initEvent(t, !0, r === !0), i.data = null != o ? o : {}, i.cancelable && !n && (s = i.preventDefault, i.preventDefault = function () {\n return this.defaultPrevented || Object.defineProperty(this, \"defaultPrevented\", {\n get: function get() {\n return !0;\n }\n }), s.call(this);\n }), (null != u ? u : document).dispatchEvent(i), i;\n }, n = function () {\n var t;\n return t = document.createEvent(\"Events\"), t.initEvent(\"test\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }(), e.match = function (t, e) {\n return r.call(t, e);\n }, r = function () {\n var t, e, r, n;\n return t = document.documentElement, null != (e = null != (r = null != (n = t.matchesSelector) ? n : t.webkitMatchesSelector) ? r : t.msMatchesSelector) ? e : t.mozMatchesSelector;\n }(), e.uuid = function () {\n var t, e, r;\n\n for (r = \"\", t = e = 1; 36 >= e; t = ++e) {\n r += 9 === t || 14 === t || 19 === t || 24 === t ? \"-\" : 15 === t ? \"4\" : 20 === t ? (Math.floor(4 * Math.random()) + 8).toString(16) : Math.floor(15 * Math.random()).toString(16);\n }\n\n return r;\n };\n }).call(this), function () {\n e.Location = function () {\n function t(t) {\n var e, r;\n null == t && (t = \"\"), r = document.createElement(\"a\"), r.href = t.toString(), this.absoluteURL = r.href, e = r.hash.length, 2 > e ? this.requestURL = this.absoluteURL : (this.requestURL = this.absoluteURL.slice(0, -e), this.anchor = r.hash.slice(1));\n }\n\n var e, r, n, o;\n return t.wrap = function (t) {\n return t instanceof this ? t : new this(t);\n }, t.prototype.getOrigin = function () {\n return this.absoluteURL.split(\"/\", 3).join(\"/\");\n }, t.prototype.getPath = function () {\n var t, e;\n return null != (t = null != (e = this.requestURL.match(/\\/\\/[^\\/]*(\\/[^?;]*)/)) ? e[1] : void 0) ? t : \"/\";\n }, t.prototype.getPathComponents = function () {\n return this.getPath().split(\"/\").slice(1);\n }, t.prototype.getLastPathComponent = function () {\n return this.getPathComponents().slice(-1)[0];\n }, t.prototype.getExtension = function () {\n var t, e;\n return null != (t = null != (e = this.getLastPathComponent().match(/\\.[^.]*$/)) ? e[0] : void 0) ? t : \"\";\n }, t.prototype.isHTML = function () {\n return this.getExtension().match(/^(?:|\\.(?:htm|html|xhtml))$/);\n }, t.prototype.isPrefixedBy = function (t) {\n var e;\n return e = r(t), this.isEqualTo(t) || o(this.absoluteURL, e);\n }, t.prototype.isEqualTo = function (t) {\n return this.absoluteURL === (null != t ? t.absoluteURL : void 0);\n }, t.prototype.toCacheKey = function () {\n return this.requestURL;\n }, t.prototype.toJSON = function () {\n return this.absoluteURL;\n }, t.prototype.toString = function () {\n return this.absoluteURL;\n }, t.prototype.valueOf = function () {\n return this.absoluteURL;\n }, r = function r(t) {\n return e(t.getOrigin() + t.getPath());\n }, e = function e(t) {\n return n(t, \"/\") ? t : t + \"/\";\n }, o = function o(t, e) {\n return t.slice(0, e.length) === e;\n }, n = function n(t, e) {\n return t.slice(-e.length) === e;\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t, e) {\n return function () {\n return _t.apply(e, arguments);\n };\n };\n\n e.HttpRequest = function () {\n function r(r, n, o) {\n this.delegate = r, this.requestCanceled = t(this.requestCanceled, this), this.requestTimedOut = t(this.requestTimedOut, this), this.requestFailed = t(this.requestFailed, this), this.requestLoaded = t(this.requestLoaded, this), this.requestProgressed = t(this.requestProgressed, this), this.url = e.Location.wrap(n).requestURL, this.referrer = e.Location.wrap(o).absoluteURL, this.createXHR();\n }\n\n return r.NETWORK_FAILURE = 0, r.TIMEOUT_FAILURE = -1, r.timeout = 60, r.prototype.send = function () {\n var t;\n return this.xhr && !this.sent ? (this.notifyApplicationBeforeRequestStart(), this.setProgress(0), this.xhr.send(), this.sent = !0, \"function\" == typeof (t = this.delegate).requestStarted ? t.requestStarted() : void 0) : void 0;\n }, r.prototype.cancel = function () {\n return this.xhr && this.sent ? this.xhr.abort() : void 0;\n }, r.prototype.requestProgressed = function (t) {\n return t.lengthComputable ? this.setProgress(t.loaded / t.total) : void 0;\n }, r.prototype.requestLoaded = function () {\n return this.endRequest(function (t) {\n return function () {\n var e;\n return 200 <= (e = t.xhr.status) && 300 > e ? t.delegate.requestCompletedWithResponse(t.xhr.responseText, t.xhr.getResponseHeader(\"Turbolinks-Location\")) : (t.failed = !0, t.delegate.requestFailedWithStatusCode(t.xhr.status, t.xhr.responseText));\n };\n }(this));\n }, r.prototype.requestFailed = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.NETWORK_FAILURE);\n };\n }(this));\n }, r.prototype.requestTimedOut = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.TIMEOUT_FAILURE);\n };\n }(this));\n }, r.prototype.requestCanceled = function () {\n return this.endRequest();\n }, r.prototype.notifyApplicationBeforeRequestStart = function () {\n return e.dispatch(\"turbolinks:request-start\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.notifyApplicationAfterRequestEnd = function () {\n return e.dispatch(\"turbolinks:request-end\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.createXHR = function () {\n return this.xhr = new XMLHttpRequest(), this.xhr.open(\"GET\", this.url, !0), this.xhr.timeout = 1e3 * this.constructor.timeout, this.xhr.setRequestHeader(\"Accept\", \"text/html, application/xhtml+xml\"), this.xhr.setRequestHeader(\"Turbolinks-Referrer\", this.referrer), this.xhr.onprogress = this.requestProgressed, this.xhr.onload = this.requestLoaded, this.xhr.onerror = this.requestFailed, this.xhr.ontimeout = this.requestTimedOut, this.xhr.onabort = this.requestCanceled;\n }, r.prototype.endRequest = function (t) {\n return this.xhr ? (this.notifyApplicationAfterRequestEnd(), null != t && t.call(this), this.destroy()) : void 0;\n }, r.prototype.setProgress = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.delegate).requestProgressed ? e.requestProgressed(this.progress) : void 0;\n }, r.prototype.destroy = function () {\n var t;\n return this.setProgress(1), \"function\" == typeof (t = this.delegate).requestFinished && t.requestFinished(), this.delegate = null, this.xhr = null;\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t2, e) {\n return function () {\n return _t2.apply(e, arguments);\n };\n };\n\n e.ProgressBar = function () {\n function e() {\n this.trickle = t(this.trickle, this), this.stylesheetElement = this.createStylesheetElement(), this.progressElement = this.createProgressElement();\n }\n\n var r;\n return r = 300, e.defaultCSS = \".turbolinks-progress-bar {\\n position: fixed;\\n display: block;\\n top: 0;\\n left: 0;\\n height: 3px;\\n background: #0076ff;\\n z-index: 9999;\\n transition: width \" + r + \"ms ease-out, opacity \" + r / 2 + \"ms \" + r / 2 + \"ms ease-in;\\n transform: translate3d(0, 0, 0);\\n}\", e.prototype.show = function () {\n return this.visible ? void 0 : (this.visible = !0, this.installStylesheetElement(), this.installProgressElement(), this.startTrickling());\n }, e.prototype.hide = function () {\n return this.visible && !this.hiding ? (this.hiding = !0, this.fadeProgressElement(function (t) {\n return function () {\n return t.uninstallProgressElement(), t.stopTrickling(), t.visible = !1, t.hiding = !1;\n };\n }(this))) : void 0;\n }, e.prototype.setValue = function (t) {\n return this.value = t, this.refresh();\n }, e.prototype.installStylesheetElement = function () {\n return document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\n }, e.prototype.installProgressElement = function () {\n return this.progressElement.style.width = 0, this.progressElement.style.opacity = 1, document.documentElement.insertBefore(this.progressElement, document.body), this.refresh();\n }, e.prototype.fadeProgressElement = function (t) {\n return this.progressElement.style.opacity = 0, setTimeout(t, 1.5 * r);\n }, e.prototype.uninstallProgressElement = function () {\n return this.progressElement.parentNode ? document.documentElement.removeChild(this.progressElement) : void 0;\n }, e.prototype.startTrickling = function () {\n return null != this.trickleInterval ? this.trickleInterval : this.trickleInterval = setInterval(this.trickle, r);\n }, e.prototype.stopTrickling = function () {\n return clearInterval(this.trickleInterval), this.trickleInterval = null;\n }, e.prototype.trickle = function () {\n return this.setValue(this.value + Math.random() / 100);\n }, e.prototype.refresh = function () {\n return requestAnimationFrame(function (t) {\n return function () {\n return t.progressElement.style.width = 10 + 90 * t.value + \"%\";\n };\n }(this));\n }, e.prototype.createStylesheetElement = function () {\n var t;\n return t = document.createElement(\"style\"), t.type = \"text/css\", t.textContent = this.constructor.defaultCSS, t;\n }, e.prototype.createProgressElement = function () {\n var t;\n return t = document.createElement(\"div\"), t.className = \"turbolinks-progress-bar\", t;\n }, e;\n }();\n }.call(this), function () {\n var t = function t(_t3, e) {\n return function () {\n return _t3.apply(e, arguments);\n };\n };\n\n e.BrowserAdapter = function () {\n function r(r) {\n this.controller = r, this.showProgressBar = t(this.showProgressBar, this), this.progressBar = new e.ProgressBar();\n }\n\n var n, o, i;\n return i = e.HttpRequest, n = i.NETWORK_FAILURE, o = i.TIMEOUT_FAILURE, r.prototype.visitProposedToLocationWithAction = function (t, e) {\n return this.controller.startVisitToLocationWithAction(t, e);\n }, r.prototype.visitStarted = function (t) {\n return t.issueRequest(), t.changeHistory(), t.loadCachedSnapshot();\n }, r.prototype.visitRequestStarted = function (t) {\n return this.progressBar.setValue(0), t.hasCachedSnapshot() || \"restore\" !== t.action ? this.showProgressBarAfterDelay() : this.showProgressBar();\n }, r.prototype.visitRequestProgressed = function (t) {\n return this.progressBar.setValue(t.progress);\n }, r.prototype.visitRequestCompleted = function (t) {\n return t.loadResponse();\n }, r.prototype.visitRequestFailedWithStatusCode = function (t, e) {\n switch (e) {\n case n:\n case o:\n return this.reload();\n\n default:\n return t.loadResponse();\n }\n }, r.prototype.visitRequestFinished = function (t) {\n return this.hideProgressBar();\n }, r.prototype.visitCompleted = function (t) {\n return t.followRedirect();\n }, r.prototype.pageInvalidated = function () {\n return this.reload();\n }, r.prototype.showProgressBarAfterDelay = function () {\n return this.progressBarTimeout = setTimeout(this.showProgressBar, this.controller.progressBarDelay);\n }, r.prototype.showProgressBar = function () {\n return this.progressBar.show();\n }, r.prototype.hideProgressBar = function () {\n return this.progressBar.hide(), clearTimeout(this.progressBarTimeout);\n }, r.prototype.reload = function () {\n return window.location.reload();\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t4, e) {\n return function () {\n return _t4.apply(e, arguments);\n };\n };\n\n e.History = function () {\n function r(e) {\n this.delegate = e, this.onPageLoad = t(this.onPageLoad, this), this.onPopState = t(this.onPopState, this);\n }\n\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"popstate\", this.onPopState, !1), addEventListener(\"load\", this.onPageLoad, !1), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"popstate\", this.onPopState, !1), removeEventListener(\"load\", this.onPageLoad, !1), this.started = !1) : void 0;\n }, r.prototype.push = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"push\", t, r);\n }, r.prototype.replace = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"replace\", t, r);\n }, r.prototype.onPopState = function (t) {\n var r, n, o, i;\n return this.shouldHandlePopState() && (i = null != (n = t.state) ? n.turbolinks : void 0) ? (r = e.Location.wrap(window.location), o = i.restorationIdentifier, this.delegate.historyPoppedToLocationWithRestorationIdentifier(r, o)) : void 0;\n }, r.prototype.onPageLoad = function (t) {\n return e.defer(function (t) {\n return function () {\n return t.pageLoaded = !0;\n };\n }(this));\n }, r.prototype.shouldHandlePopState = function () {\n return this.pageIsLoaded();\n }, r.prototype.pageIsLoaded = function () {\n return this.pageLoaded || \"complete\" === document.readyState;\n }, r.prototype.update = function (t, e, r) {\n var n;\n return n = {\n turbolinks: {\n restorationIdentifier: r\n }\n }, history[t + \"State\"](n, null, e);\n }, r;\n }();\n }.call(this), function () {\n e.HeadDetails = function () {\n function t(t) {\n var e, r, n, s, a, u;\n\n for (this.elements = {}, n = 0, a = t.length; a > n; n++) {\n u = t[n], u.nodeType === Node.ELEMENT_NODE && (s = u.outerHTML, r = null != (e = this.elements)[s] ? e[s] : e[s] = {\n type: i(u),\n tracked: o(u),\n elements: []\n }, r.elements.push(u));\n }\n }\n\n var e, r, n, o, i;\n return t.fromHeadElement = function (t) {\n var e;\n return new this(null != (e = null != t ? t.childNodes : void 0) ? e : []);\n }, t.prototype.hasElementWithKey = function (t) {\n return t in this.elements;\n }, t.prototype.getTrackedElementSignature = function () {\n var t, e;\n return function () {\n var r, n;\n r = this.elements, n = [];\n\n for (t in r) {\n e = r[t].tracked, e && n.push(t);\n }\n\n return n;\n }.call(this).join(\"\");\n }, t.prototype.getScriptElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"script\", t);\n }, t.prototype.getStylesheetElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"stylesheet\", t);\n }, t.prototype.getElementsMatchingTypeNotInDetails = function (t, e) {\n var r, n, o, i, s, a;\n o = this.elements, s = [];\n\n for (n in o) {\n i = o[n], a = i.type, r = i.elements, a !== t || e.hasElementWithKey(n) || s.push(r[0]);\n }\n\n return s;\n }, t.prototype.getProvisionalElements = function () {\n var t, e, r, n, o, i, s;\n r = [], n = this.elements;\n\n for (e in n) {\n o = n[e], s = o.type, i = o.tracked, t = o.elements, null != s || i ? t.length > 1 && r.push.apply(r, t.slice(1)) : r.push.apply(r, t);\n }\n\n return r;\n }, t.prototype.getMetaValue = function (t) {\n var e;\n return null != (e = this.findMetaElementByName(t)) ? e.getAttribute(\"content\") : void 0;\n }, t.prototype.findMetaElementByName = function (t) {\n var r, n, o, i;\n r = void 0, i = this.elements;\n\n for (o in i) {\n n = i[o].elements, e(n[0], t) && (r = n[0]);\n }\n\n return r;\n }, i = function i(t) {\n return r(t) ? \"script\" : n(t) ? \"stylesheet\" : void 0;\n }, o = function o(t) {\n return \"reload\" === t.getAttribute(\"data-turbolinks-track\");\n }, r = function r(t) {\n var e;\n return e = t.tagName.toLowerCase(), \"script\" === e;\n }, n = function n(t) {\n var e;\n return e = t.tagName.toLowerCase(), \"style\" === e || \"link\" === e && \"stylesheet\" === t.getAttribute(\"rel\");\n }, e = function e(t, _e) {\n var r;\n return r = t.tagName.toLowerCase(), \"meta\" === r && t.getAttribute(\"name\") === _e;\n }, t;\n }();\n }.call(this), function () {\n e.Snapshot = function () {\n function t(t, e) {\n this.headDetails = t, this.bodyElement = e;\n }\n\n return t.wrap = function (t) {\n return t instanceof this ? t : \"string\" == typeof t ? this.fromHTMLString(t) : this.fromHTMLElement(t);\n }, t.fromHTMLString = function (t) {\n var e;\n return e = document.createElement(\"html\"), e.innerHTML = t, this.fromHTMLElement(e);\n }, t.fromHTMLElement = function (t) {\n var r, n, o, i;\n return o = t.querySelector(\"head\"), r = null != (i = t.querySelector(\"body\")) ? i : document.createElement(\"body\"), n = e.HeadDetails.fromHeadElement(o), new this(n, r);\n }, t.prototype.clone = function () {\n return new this.constructor(this.headDetails, this.bodyElement.cloneNode(!0));\n }, t.prototype.getRootLocation = function () {\n var t, r;\n return r = null != (t = this.getSetting(\"root\")) ? t : \"/\", new e.Location(r);\n }, t.prototype.getCacheControlValue = function () {\n return this.getSetting(\"cache-control\");\n }, t.prototype.getElementForAnchor = function (t) {\n try {\n return this.bodyElement.querySelector(\"[id='\" + t + \"'], a[name='\" + t + \"']\");\n } catch (e) {}\n }, t.prototype.getPermanentElements = function () {\n return this.bodyElement.querySelectorAll(\"[id][data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementById = function (t) {\n return this.bodyElement.querySelector(\"#\" + t + \"[data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementsPresentInSnapshot = function (t) {\n var e, r, n, o, i;\n\n for (o = this.getPermanentElements(), i = [], r = 0, n = o.length; n > r; r++) {\n e = o[r], t.getPermanentElementById(e.id) && i.push(e);\n }\n\n return i;\n }, t.prototype.findFirstAutofocusableElement = function () {\n return this.bodyElement.querySelector(\"[autofocus]\");\n }, t.prototype.hasAnchor = function (t) {\n return null != this.getElementForAnchor(t);\n }, t.prototype.isPreviewable = function () {\n return \"no-preview\" !== this.getCacheControlValue();\n }, t.prototype.isCacheable = function () {\n return \"no-cache\" !== this.getCacheControlValue();\n }, t.prototype.isVisitable = function () {\n return \"reload\" !== this.getSetting(\"visit-control\");\n }, t.prototype.getSetting = function (t) {\n return this.headDetails.getMetaValue(\"turbolinks-\" + t);\n }, t;\n }();\n }.call(this), function () {\n var t = [].slice;\n\n e.Renderer = function () {\n function e() {}\n\n var r;\n return e.render = function () {\n var e, r, n, o;\n return n = arguments[0], r = arguments[1], e = 3 <= arguments.length ? t.call(arguments, 2) : [], o = function (t, e, r) {\n r.prototype = t.prototype;\n var n = new r(),\n o = t.apply(n, e);\n return Object(o) === o ? o : n;\n }(this, e, function () {}), o.delegate = n, o.render(r), o;\n }, e.prototype.renderView = function (t) {\n return this.delegate.viewWillRender(this.newBody), t(), this.delegate.viewRendered(this.newBody);\n }, e.prototype.invalidateView = function () {\n return this.delegate.viewInvalidated();\n }, e.prototype.createScriptElement = function (t) {\n var e;\n return \"false\" === t.getAttribute(\"data-turbolinks-eval\") ? t : (e = document.createElement(\"script\"), e.textContent = t.textContent, e.async = !1, r(e, t), e);\n }, r = function r(t, e) {\n var r, n, o, i, s, a, u;\n\n for (i = e.attributes, a = [], r = 0, n = i.length; n > r; r++) {\n s = i[r], o = s.name, u = s.value, a.push(t.setAttribute(o, u));\n }\n\n return a;\n }, e;\n }();\n }.call(this), function () {\n var t,\n r,\n n = function n(t, e) {\n function r() {\n this.constructor = t;\n }\n\n for (var n in e) {\n o.call(e, n) && (t[n] = e[n]);\n }\n\n return r.prototype = e.prototype, t.prototype = new r(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n e.SnapshotRenderer = function (e) {\n function o(t, e, r) {\n this.currentSnapshot = t, this.newSnapshot = e, this.isPreview = r, this.currentHeadDetails = this.currentSnapshot.headDetails, this.newHeadDetails = this.newSnapshot.headDetails, this.currentBody = this.currentSnapshot.bodyElement, this.newBody = this.newSnapshot.bodyElement;\n }\n\n return n(o, e), o.prototype.render = function (t) {\n return this.shouldRender() ? (this.mergeHead(), this.renderView(function (e) {\n return function () {\n return e.replaceBody(), e.isPreview || e.focusFirstAutofocusableElement(), t();\n };\n }(this))) : this.invalidateView();\n }, o.prototype.mergeHead = function () {\n return this.copyNewHeadStylesheetElements(), this.copyNewHeadScriptElements(), this.removeCurrentHeadProvisionalElements(), this.copyNewHeadProvisionalElements();\n }, o.prototype.replaceBody = function () {\n var t;\n return t = this.relocateCurrentBodyPermanentElements(), this.activateNewBodyScriptElements(), this.assignNewBody(), this.replacePlaceholderElementsWithClonedPermanentElements(t);\n }, o.prototype.shouldRender = function () {\n return this.newSnapshot.isVisitable() && this.trackedElementsAreIdentical();\n }, o.prototype.trackedElementsAreIdentical = function () {\n return this.currentHeadDetails.getTrackedElementSignature() === this.newHeadDetails.getTrackedElementSignature();\n }, o.prototype.copyNewHeadStylesheetElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadStylesheetElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(t));\n }\n\n return o;\n }, o.prototype.copyNewHeadScriptElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadScriptElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(this.createScriptElement(t)));\n }\n\n return o;\n }, o.prototype.removeCurrentHeadProvisionalElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getCurrentHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.removeChild(t));\n }\n\n return o;\n }, o.prototype.copyNewHeadProvisionalElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(t));\n }\n\n return o;\n }, o.prototype.relocateCurrentBodyPermanentElements = function () {\n var e, n, o, i, s, a, u;\n\n for (a = this.getCurrentBodyPermanentElements(), u = [], e = 0, n = a.length; n > e; e++) {\n i = a[e], s = t(i), o = this.newSnapshot.getPermanentElementById(i.id), r(i, s.element), r(o, i), u.push(s);\n }\n\n return u;\n }, o.prototype.replacePlaceholderElementsWithClonedPermanentElements = function (t) {\n var e, n, o, i, s, a, u;\n\n for (u = [], o = 0, i = t.length; i > o; o++) {\n a = t[o], n = a.element, s = a.permanentElement, e = s.cloneNode(!0), u.push(r(n, e));\n }\n\n return u;\n }, o.prototype.activateNewBodyScriptElements = function () {\n var t, e, n, o, i, s;\n\n for (i = this.getNewBodyScriptElements(), s = [], e = 0, o = i.length; o > e; e++) {\n n = i[e], t = this.createScriptElement(n), s.push(r(n, t));\n }\n\n return s;\n }, o.prototype.assignNewBody = function () {\n return document.body = this.newBody;\n }, o.prototype.focusFirstAutofocusableElement = function () {\n var t;\n return null != (t = this.newSnapshot.findFirstAutofocusableElement()) ? t.focus() : void 0;\n }, o.prototype.getNewHeadStylesheetElements = function () {\n return this.newHeadDetails.getStylesheetElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getNewHeadScriptElements = function () {\n return this.newHeadDetails.getScriptElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getCurrentHeadProvisionalElements = function () {\n return this.currentHeadDetails.getProvisionalElements();\n }, o.prototype.getNewHeadProvisionalElements = function () {\n return this.newHeadDetails.getProvisionalElements();\n }, o.prototype.getCurrentBodyPermanentElements = function () {\n return this.currentSnapshot.getPermanentElementsPresentInSnapshot(this.newSnapshot);\n }, o.prototype.getNewBodyScriptElements = function () {\n return this.newBody.querySelectorAll(\"script\");\n }, o;\n }(e.Renderer), t = function t(_t5) {\n var e;\n return e = document.createElement(\"meta\"), e.setAttribute(\"name\", \"turbolinks-permanent-placeholder\"), e.setAttribute(\"content\", _t5.id), {\n element: e,\n permanentElement: _t5\n };\n }, r = function r(t, e) {\n var r;\n return (r = t.parentNode) ? r.replaceChild(e, t) : void 0;\n };\n }.call(this), function () {\n var t = function t(_t6, e) {\n function n() {\n this.constructor = _t6;\n }\n\n for (var o in e) {\n r.call(e, o) && (_t6[o] = e[o]);\n }\n\n return n.prototype = e.prototype, _t6.prototype = new n(), _t6.__super__ = e.prototype, _t6;\n },\n r = {}.hasOwnProperty;\n\n e.ErrorRenderer = function (e) {\n function r(t) {\n var e;\n e = document.createElement(\"html\"), e.innerHTML = t, this.newHead = e.querySelector(\"head\"), this.newBody = e.querySelector(\"body\");\n }\n\n return t(r, e), r.prototype.render = function (t) {\n return this.renderView(function (e) {\n return function () {\n return e.replaceHeadAndBody(), e.activateBodyScriptElements(), t();\n };\n }(this));\n }, r.prototype.replaceHeadAndBody = function () {\n var t, e;\n return e = document.head, t = document.body, e.parentNode.replaceChild(this.newHead, e), t.parentNode.replaceChild(this.newBody, t);\n }, r.prototype.activateBodyScriptElements = function () {\n var t, e, r, n, o, i;\n\n for (n = this.getScriptElements(), i = [], e = 0, r = n.length; r > e; e++) {\n o = n[e], t = this.createScriptElement(o), i.push(o.parentNode.replaceChild(t, o));\n }\n\n return i;\n }, r.prototype.getScriptElements = function () {\n return document.documentElement.querySelectorAll(\"script\");\n }, r;\n }(e.Renderer);\n }.call(this), function () {\n e.View = function () {\n function t(t) {\n this.delegate = t, this.htmlElement = document.documentElement;\n }\n\n return t.prototype.getRootLocation = function () {\n return this.getSnapshot().getRootLocation();\n }, t.prototype.getElementForAnchor = function (t) {\n return this.getSnapshot().getElementForAnchor(t);\n }, t.prototype.getSnapshot = function () {\n return e.Snapshot.fromHTMLElement(this.htmlElement);\n }, t.prototype.render = function (t, e) {\n var r, n, o;\n return o = t.snapshot, r = t.error, n = t.isPreview, this.markAsPreview(n), null != o ? this.renderSnapshot(o, n, e) : this.renderError(r, e);\n }, t.prototype.markAsPreview = function (t) {\n return t ? this.htmlElement.setAttribute(\"data-turbolinks-preview\", \"\") : this.htmlElement.removeAttribute(\"data-turbolinks-preview\");\n }, t.prototype.renderSnapshot = function (t, r, n) {\n return e.SnapshotRenderer.render(this.delegate, n, this.getSnapshot(), e.Snapshot.wrap(t), r);\n }, t.prototype.renderError = function (t, r) {\n return e.ErrorRenderer.render(this.delegate, r, t);\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t7, e) {\n return function () {\n return _t7.apply(e, arguments);\n };\n };\n\n e.ScrollManager = function () {\n function r(r) {\n this.delegate = r, this.onScroll = t(this.onScroll, this), this.onScroll = e.throttle(this.onScroll);\n }\n\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"scroll\", this.onScroll, !1), this.onScroll(), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"scroll\", this.onScroll, !1), this.started = !1) : void 0;\n }, r.prototype.scrollToElement = function (t) {\n return t.scrollIntoView();\n }, r.prototype.scrollToPosition = function (t) {\n var e, r;\n return e = t.x, r = t.y, window.scrollTo(e, r);\n }, r.prototype.onScroll = function (t) {\n return this.updatePosition({\n x: window.pageXOffset,\n y: window.pageYOffset\n });\n }, r.prototype.updatePosition = function (t) {\n var e;\n return this.position = t, null != (e = this.delegate) ? e.scrollPositionChanged(this.position) : void 0;\n }, r;\n }();\n }.call(this), function () {\n e.SnapshotCache = function () {\n function t(t) {\n this.size = t, this.keys = [], this.snapshots = {};\n }\n\n var r;\n return t.prototype.has = function (t) {\n var e;\n return e = r(t), e in this.snapshots;\n }, t.prototype.get = function (t) {\n var e;\n if (this.has(t)) return e = this.read(t), this.touch(t), e;\n }, t.prototype.put = function (t, e) {\n return this.write(t, e), this.touch(t), e;\n }, t.prototype.read = function (t) {\n var e;\n return e = r(t), this.snapshots[e];\n }, t.prototype.write = function (t, e) {\n var n;\n return n = r(t), this.snapshots[n] = e;\n }, t.prototype.touch = function (t) {\n var e, n;\n return n = r(t), e = this.keys.indexOf(n), e > -1 && this.keys.splice(e, 1), this.keys.unshift(n), this.trim();\n }, t.prototype.trim = function () {\n var t, e, r, n, o;\n\n for (n = this.keys.splice(this.size), o = [], t = 0, r = n.length; r > t; t++) {\n e = n[t], o.push(delete this.snapshots[e]);\n }\n\n return o;\n }, r = function r(t) {\n return e.Location.wrap(t).toCacheKey();\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t8, e) {\n return function () {\n return _t8.apply(e, arguments);\n };\n };\n\n e.Visit = function () {\n function r(r, n, o) {\n this.controller = r, this.action = o, this.performScroll = t(this.performScroll, this), this.identifier = e.uuid(), this.location = e.Location.wrap(n), this.adapter = this.controller.adapter, this.state = \"initialized\", this.timingMetrics = {};\n }\n\n var n;\n return r.prototype.start = function () {\n return \"initialized\" === this.state ? (this.recordTimingMetric(\"visitStart\"), this.state = \"started\", this.adapter.visitStarted(this)) : void 0;\n }, r.prototype.cancel = function () {\n var t;\n return \"started\" === this.state ? (null != (t = this.request) && t.cancel(), this.cancelRender(), this.state = \"canceled\") : void 0;\n }, r.prototype.complete = function () {\n var t;\n return \"started\" === this.state ? (this.recordTimingMetric(\"visitEnd\"), this.state = \"completed\", \"function\" == typeof (t = this.adapter).visitCompleted && t.visitCompleted(this), this.controller.visitCompleted(this)) : void 0;\n }, r.prototype.fail = function () {\n var t;\n return \"started\" === this.state ? (this.state = \"failed\", \"function\" == typeof (t = this.adapter).visitFailed ? t.visitFailed(this) : void 0) : void 0;\n }, r.prototype.changeHistory = function () {\n var t, e;\n return this.historyChanged ? void 0 : (t = this.location.isEqualTo(this.referrer) ? \"replace\" : this.action, e = n(t), this.controller[e](this.location, this.restorationIdentifier), this.historyChanged = !0);\n }, r.prototype.issueRequest = function () {\n return this.shouldIssueRequest() && null == this.request ? (this.progress = 0, this.request = new e.HttpRequest(this, this.location, this.referrer), this.request.send()) : void 0;\n }, r.prototype.getCachedSnapshot = function () {\n var t;\n return !(t = this.controller.getCachedSnapshotForLocation(this.location)) || null != this.location.anchor && !t.hasAnchor(this.location.anchor) || \"restore\" !== this.action && !t.isPreviewable() ? void 0 : t;\n }, r.prototype.hasCachedSnapshot = function () {\n return null != this.getCachedSnapshot();\n }, r.prototype.loadCachedSnapshot = function () {\n var t, e;\n return (e = this.getCachedSnapshot()) ? (t = this.shouldIssueRequest(), this.render(function () {\n var r;\n return this.cacheSnapshot(), this.controller.render({\n snapshot: e,\n isPreview: t\n }, this.performScroll), \"function\" == typeof (r = this.adapter).visitRendered && r.visitRendered(this), t ? void 0 : this.complete();\n })) : void 0;\n }, r.prototype.loadResponse = function () {\n return null != this.response ? this.render(function () {\n var t, e;\n return this.cacheSnapshot(), this.request.failed ? (this.controller.render({\n error: this.response\n }, this.performScroll), \"function\" == typeof (t = this.adapter).visitRendered && t.visitRendered(this), this.fail()) : (this.controller.render({\n snapshot: this.response\n }, this.performScroll), \"function\" == typeof (e = this.adapter).visitRendered && e.visitRendered(this), this.complete());\n }) : void 0;\n }, r.prototype.followRedirect = function () {\n return this.redirectedToLocation && !this.followedRedirect ? (this.location = this.redirectedToLocation, this.controller.replaceHistoryWithLocationAndRestorationIdentifier(this.redirectedToLocation, this.restorationIdentifier), this.followedRedirect = !0) : void 0;\n }, r.prototype.requestStarted = function () {\n var t;\n return this.recordTimingMetric(\"requestStart\"), \"function\" == typeof (t = this.adapter).visitRequestStarted ? t.visitRequestStarted(this) : void 0;\n }, r.prototype.requestProgressed = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.adapter).visitRequestProgressed ? e.visitRequestProgressed(this) : void 0;\n }, r.prototype.requestCompletedWithResponse = function (t, r) {\n return this.response = t, null != r && (this.redirectedToLocation = e.Location.wrap(r)), this.adapter.visitRequestCompleted(this);\n }, r.prototype.requestFailedWithStatusCode = function (t, e) {\n return this.response = e, this.adapter.visitRequestFailedWithStatusCode(this, t);\n }, r.prototype.requestFinished = function () {\n var t;\n return this.recordTimingMetric(\"requestEnd\"), \"function\" == typeof (t = this.adapter).visitRequestFinished ? t.visitRequestFinished(this) : void 0;\n }, r.prototype.performScroll = function () {\n return this.scrolled ? void 0 : (\"restore\" === this.action ? this.scrollToRestoredPosition() || this.scrollToTop() : this.scrollToAnchor() || this.scrollToTop(), this.scrolled = !0);\n }, r.prototype.scrollToRestoredPosition = function () {\n var t, e;\n return t = null != (e = this.restorationData) ? e.scrollPosition : void 0, null != t ? (this.controller.scrollToPosition(t), !0) : void 0;\n }, r.prototype.scrollToAnchor = function () {\n return null != this.location.anchor ? (this.controller.scrollToAnchor(this.location.anchor), !0) : void 0;\n }, r.prototype.scrollToTop = function () {\n return this.controller.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.recordTimingMetric = function (t) {\n var e;\n return null != (e = this.timingMetrics)[t] ? e[t] : e[t] = new Date().getTime();\n }, r.prototype.getTimingMetrics = function () {\n return e.copyObject(this.timingMetrics);\n }, n = function n(t) {\n switch (t) {\n case \"replace\":\n return \"replaceHistoryWithLocationAndRestorationIdentifier\";\n\n case \"advance\":\n case \"restore\":\n return \"pushHistoryWithLocationAndRestorationIdentifier\";\n }\n }, r.prototype.shouldIssueRequest = function () {\n return \"restore\" === this.action ? !this.hasCachedSnapshot() : !0;\n }, r.prototype.cacheSnapshot = function () {\n return this.snapshotCached ? void 0 : (this.controller.cacheSnapshot(), this.snapshotCached = !0);\n }, r.prototype.render = function (t) {\n return this.cancelRender(), this.frame = requestAnimationFrame(function (e) {\n return function () {\n return e.frame = null, t.call(e);\n };\n }(this));\n }, r.prototype.cancelRender = function () {\n return this.frame ? cancelAnimationFrame(this.frame) : void 0;\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t9, e) {\n return function () {\n return _t9.apply(e, arguments);\n };\n };\n\n e.Controller = function () {\n function r() {\n this.clickBubbled = t(this.clickBubbled, this), this.clickCaptured = t(this.clickCaptured, this), this.pageLoaded = t(this.pageLoaded, this), this.history = new e.History(this), this.view = new e.View(this), this.scrollManager = new e.ScrollManager(this), this.restorationData = {}, this.clearCache(), this.setProgressBarDelay(500);\n }\n\n return r.prototype.start = function () {\n return e.supported && !this.started ? (addEventListener(\"click\", this.clickCaptured, !0), addEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.start(), this.startHistory(), this.started = !0, this.enabled = !0) : void 0;\n }, r.prototype.disable = function () {\n return this.enabled = !1;\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"click\", this.clickCaptured, !0), removeEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.stop(), this.stopHistory(), this.started = !1) : void 0;\n }, r.prototype.clearCache = function () {\n return this.cache = new e.SnapshotCache(10);\n }, r.prototype.visit = function (t, r) {\n var n, o;\n return null == r && (r = {}), t = e.Location.wrap(t), this.applicationAllowsVisitingLocation(t) ? this.locationIsVisitable(t) ? (n = null != (o = r.action) ? o : \"advance\", this.adapter.visitProposedToLocationWithAction(t, n)) : window.location = t : void 0;\n }, r.prototype.startVisitToLocationWithAction = function (t, r, n) {\n var o;\n return e.supported ? (o = this.getRestorationDataForIdentifier(n), this.startVisit(t, r, {\n restorationData: o\n })) : window.location = t;\n }, r.prototype.setProgressBarDelay = function (t) {\n return this.progressBarDelay = t;\n }, r.prototype.startHistory = function () {\n return this.location = e.Location.wrap(window.location), this.restorationIdentifier = e.uuid(), this.history.start(), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.stopHistory = function () {\n return this.history.stop();\n }, r.prototype.pushHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.push(this.location, this.restorationIdentifier);\n }, r.prototype.replaceHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.historyPoppedToLocationWithRestorationIdentifier = function (t, r) {\n var n;\n return this.restorationIdentifier = r, this.enabled ? (n = this.getRestorationDataForIdentifier(this.restorationIdentifier), this.startVisit(t, \"restore\", {\n restorationIdentifier: this.restorationIdentifier,\n restorationData: n,\n historyChanged: !0\n }), this.location = e.Location.wrap(t)) : this.adapter.pageInvalidated();\n }, r.prototype.getCachedSnapshotForLocation = function (t) {\n var e;\n return null != (e = this.cache.get(t)) ? e.clone() : void 0;\n }, r.prototype.shouldCacheSnapshot = function () {\n return this.view.getSnapshot().isCacheable();\n }, r.prototype.cacheSnapshot = function () {\n var t, r;\n return this.shouldCacheSnapshot() ? (this.notifyApplicationBeforeCachingSnapshot(), r = this.view.getSnapshot(), t = this.lastRenderedLocation, e.defer(function (e) {\n return function () {\n return e.cache.put(t, r.clone());\n };\n }(this))) : void 0;\n }, r.prototype.scrollToAnchor = function (t) {\n var e;\n return (e = this.view.getElementForAnchor(t)) ? this.scrollToElement(e) : this.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.scrollToElement = function (t) {\n return this.scrollManager.scrollToElement(t);\n }, r.prototype.scrollToPosition = function (t) {\n return this.scrollManager.scrollToPosition(t);\n }, r.prototype.scrollPositionChanged = function (t) {\n var e;\n return e = this.getCurrentRestorationData(), e.scrollPosition = t;\n }, r.prototype.render = function (t, e) {\n return this.view.render(t, e);\n }, r.prototype.viewInvalidated = function () {\n return this.adapter.pageInvalidated();\n }, r.prototype.viewWillRender = function (t) {\n return this.notifyApplicationBeforeRender(t);\n }, r.prototype.viewRendered = function () {\n return this.lastRenderedLocation = this.currentVisit.location, this.notifyApplicationAfterRender();\n }, r.prototype.pageLoaded = function () {\n return this.lastRenderedLocation = this.location, this.notifyApplicationAfterPageLoad();\n }, r.prototype.clickCaptured = function () {\n return removeEventListener(\"click\", this.clickBubbled, !1), addEventListener(\"click\", this.clickBubbled, !1);\n }, r.prototype.clickBubbled = function (t) {\n var e, r, n;\n return this.enabled && this.clickEventIsSignificant(t) && (r = this.getVisitableLinkForNode(t.target)) && (n = this.getVisitableLocationForLink(r)) && this.applicationAllowsFollowingLinkToLocation(r, n) ? (t.preventDefault(), e = this.getActionForLink(r), this.visit(n, {\n action: e\n })) : void 0;\n }, r.prototype.applicationAllowsFollowingLinkToLocation = function (t, e) {\n var r;\n return r = this.notifyApplicationAfterClickingLinkToLocation(t, e), !r.defaultPrevented;\n }, r.prototype.applicationAllowsVisitingLocation = function (t) {\n var e;\n return e = this.notifyApplicationBeforeVisitingLocation(t), !e.defaultPrevented;\n }, r.prototype.notifyApplicationAfterClickingLinkToLocation = function (t, r) {\n return e.dispatch(\"turbolinks:click\", {\n target: t,\n data: {\n url: r.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationBeforeVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:before-visit\", {\n data: {\n url: t.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationAfterVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:visit\", {\n data: {\n url: t.absoluteURL\n }\n });\n }, r.prototype.notifyApplicationBeforeCachingSnapshot = function () {\n return e.dispatch(\"turbolinks:before-cache\");\n }, r.prototype.notifyApplicationBeforeRender = function (t) {\n return e.dispatch(\"turbolinks:before-render\", {\n data: {\n newBody: t\n }\n });\n }, r.prototype.notifyApplicationAfterRender = function () {\n return e.dispatch(\"turbolinks:render\");\n }, r.prototype.notifyApplicationAfterPageLoad = function (t) {\n return null == t && (t = {}), e.dispatch(\"turbolinks:load\", {\n data: {\n url: this.location.absoluteURL,\n timing: t\n }\n });\n }, r.prototype.startVisit = function (t, e, r) {\n var n;\n return null != (n = this.currentVisit) && n.cancel(), this.currentVisit = this.createVisit(t, e, r), this.currentVisit.start(), this.notifyApplicationAfterVisitingLocation(t);\n }, r.prototype.createVisit = function (t, r, n) {\n var o, i, s, a, u;\n return i = null != n ? n : {}, a = i.restorationIdentifier, s = i.restorationData, o = i.historyChanged, u = new e.Visit(this, t, r), u.restorationIdentifier = null != a ? a : e.uuid(), u.restorationData = e.copyObject(s), u.historyChanged = o, u.referrer = this.location, u;\n }, r.prototype.visitCompleted = function (t) {\n return this.notifyApplicationAfterPageLoad(t.getTimingMetrics());\n }, r.prototype.clickEventIsSignificant = function (t) {\n return !(t.defaultPrevented || t.target.isContentEditable || t.which > 1 || t.altKey || t.ctrlKey || t.metaKey || t.shiftKey);\n }, r.prototype.getVisitableLinkForNode = function (t) {\n return this.nodeIsVisitable(t) ? e.closest(t, \"a[href]:not([target]):not([download])\") : void 0;\n }, r.prototype.getVisitableLocationForLink = function (t) {\n var r;\n return r = new e.Location(t.getAttribute(\"href\")), this.locationIsVisitable(r) ? r : void 0;\n }, r.prototype.getActionForLink = function (t) {\n var e;\n return null != (e = t.getAttribute(\"data-turbolinks-action\")) ? e : \"advance\";\n }, r.prototype.nodeIsVisitable = function (t) {\n var r;\n return (r = e.closest(t, \"[data-turbolinks]\")) ? \"false\" !== r.getAttribute(\"data-turbolinks\") : !0;\n }, r.prototype.locationIsVisitable = function (t) {\n return t.isPrefixedBy(this.view.getRootLocation()) && t.isHTML();\n }, r.prototype.getCurrentRestorationData = function () {\n return this.getRestorationDataForIdentifier(this.restorationIdentifier);\n }, r.prototype.getRestorationDataForIdentifier = function (t) {\n var e;\n return null != (e = this.restorationData)[t] ? e[t] : e[t] = {};\n }, r;\n }();\n }.call(this), function () {\n !function () {\n var t, e;\n if ((t = e = document.currentScript) && !e.hasAttribute(\"data-turbolinks-suppress-warning\")) for (; t = t.parentNode;) {\n if (t === document.body) return console.warn(\"You are loading Turbolinks from a