{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./app/javascript/packs/pollunit_forum.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./app/javascript/thredded_imports.js.erb","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/core/thredded.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/core/on_page_load.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/spoilers.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/core/serialize_form.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/core/debounce.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/preview_area.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/vendor/assets/javascripts/textcomplete.min.js","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/core/escape_html.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/user_textcomplete.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/mention_autocompletion.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/vendor/assets/javascripts/autosize.js","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/post_form.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/topics.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/submit_hotkey.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/currently_online.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/quote_post.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/time_stamps.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/flash_messages.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/user_preferences_form.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/turboforms.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/users_select.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/topic_form.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/core/hide_soft_keyboard.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/core/csrf_tokens.es6","webpack:///./vendor/bundle/ruby/3.2.0/gems/timeago_js-3.0.2.2/assets/javascripts/timeago.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","_typeof","iterator","obj","constructor","this","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","document","querySelector","content","cspNonce","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","element","getData","setData","$","Array","slice","querySelectorAll","csrfParam","csrfToken","meta","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","forEach","input","CustomEvent","fire","preventDefault","window","event","params","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","result","defaultPrevented","data","dispatchEvent","stopEverything","e","target","stopPropagation","stopImmediatePropagation","delegate","eventType","handler","addEventListener","parentNode","AcceptHeaders","createXHR","prepareOptions","processResponse","text","html","xml","json","script","ajax","options","response","responseText","getResponseHeader","Math","floor","status","success","statusText","error","complete","beforeSend","readyState","XMLHttpRequest","OPENED","send","url","location","href","type","toUpperCase","indexOf","dataType","accept","done","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","match","JSON","parse","createElement","setAttribute","head","appendChild","removeChild","DOMParser","replace","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","inputs","elements","disabled","option","selected","push","checked","map","encodeURIComponent","join","formElements","form","filter","el","allowAction","handleConfirm","confirm","message","answer","callback","getAttribute","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","removeEventListener","handleMethod","formContent","method","action","style","display","body","click","isRemote","handleRemote","button","enctype","FormData","append","args","arguments","length","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","Error","ajaxPrefilter","originalOptions","start","_rails_loaded","setTimeout","require","classList","remove","menu","getElementById","menuToggle","toggle","focus","removeClass","webpackPolyfill","deprecate","paths","children","factory","sparkMd5","fn","createCommonjsModule","undefined","hex_chr","md5cycle","x","k","a","b","md5blk","md5blks","charCodeAt","md5blk_array","md51","tail","tmp","lo","hi","state","substring","toString","parseInt","rhex","j","hex","toUtf8","str","test","unescape","hexToBinaryString","bytes","substr","String","fromCharCode","apply","SparkMD5","reset","ArrayBuffer","clamp","val","max","min","from","to","num","targetArray","sourceArray","byteLength","begin","end","Uint8Array","set","appendBinary","contents","_buff","_length","_hash","raw","ret","buff","_finish","getState","hash","setState","destroy","hashBinary","arr","first","second","returnUInt8Array","buffer","subarray","utf8Str2ArrayBuffer","md51_array","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","props","descriptor","configurable","writable","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","ceil","size","chunkIndex","_this","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","root","eventInit","initEvent","toArray$1","isArray","BlobRecord","checksum","attributes","filename","content_type","byte_size","responseType","getMetaValue","requestDidLoad","requestDidError","stringify","blob","direct_upload","directUploadData","toJSON","_xhr","BlobUpload","_blob$directUploadDat","headers","id","DirectUpload","notify","upload","methodName","_len","messages","_key","DirectUploadController","directUpload","dispatch","hiddenInput","insertAdjacentElement","dispatchError","signed_id","progress","loaded","total","alert","_this2","uploadRequestDidProgress","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","controller","shift","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","tagName","handleFormSubmissionEvent","hasAttribute","disable","removeAttribute","enable","delete","submitForm","ActiveStorage","channels","keys","webpackEmptyContext","req","code","resolve","Thredded","isTurbolinks","Turbolinks","supported","isTurbolinks5","onPageLoadFiredOnce","pageLoadCallbacks","triggerOnPageLoad","onPageLoad","DOMContentLoadedFired","lastRenderedLocation","OPEN_CLASS","spoilers","node","currentTarget","isOpen","contains","firstElementChild","lastElementChild","init","serializeForm","debounce","func","wait","immediate","timeoutId","context","later","callNow","clearTimeout","ThreddedPreviewArea","textarea","preview","previewPost","previewUrl","prevValue","onChange","updatePreview","trim","requestId","request","onload","onPreviewResponse","default","term","strategy","matchText","index","template","once","_events","_eventsCount","__proto__","eventNames","getOwnPropertySymbols","concat","listeners","emit","u","h","removeListener","f","on","removeAllListeners","off","addListener","setMaxListeners","prefixed","EventEmitter","cache","searchWithCache","search","fontSize","fontFamily","padding","HTMLTextAreaElement","rows","offsetHeight","calculateElementOffset","getBoundingClientRect","ownerDocument","defaultView","documentElement","top","pageYOffset","left","pageXOffset","clientTop","clientLeft","getLineHeightPx","getComputedStyle","lineHeight","parseFloat","nodeName","calculateLineHeightPx","createCustomEvent","ReferenceError","getPrototypeOf","setPrototypeOf","beforeCursor","getBeforeCursor","keyCode","Textcomplete","editors","Textarea","Function","eval","v","y","g","completer","isQueryInFlight","nextPendingQuery","dropdown","editor","startListening","stopListening","deactivate","registerStrategy","run","searchResults","render","getCursorOffset","trigger","up","down","getActiveItem","select","shown","applySearchResult","searchResult","handleMove","handleEnter","handleEsc","handleChange","handleSelect","handleHit","strategies","extractQuery","execute","handleQueryResult","build","items","activeItem","footer","header","maxCount","className","rotate","placement","itemOptions","item","position","zIndex","clear","_el","setStrategyId","renderEdge","show","setOffset","hide","moveActiveItem","createDocumentFragment","appended","offsetWidth","clientWidth","right","isPlacementTop","bottom","clientHeight","next","prev","activate","add","DEFAULT_CLASS_NAME","active","activeClassName","onClick","onMouseover","siblings","getOwnPropertyDescriptor","getAfterCursor","getElScroll","getCursorPosition","dir","selectionStart","selectionEnd","scrollTop","scrollLeft","emitChangeEvent","getCode","emitMoveEvent","emitEnterEvent","emitEscEvent","onInput","onKeydown","activeElement","setSelectionRange","execCommand","debug","currentStyle","whiteSpace","wordWrap","visibility","scrollHeight","height","overflowY","overflow","textContent","offsetTop","borderTopWidth","offsetLeft","borderLeftWidth","backgroundColor","mozInnerScreenX","getCaretCoordinates","escapeHtml","UserTextcomplete","DROPDOWN_CLASS_NAME","formatUser","avatar_url","display_name","searchFn","autocompleteMinLength","results","getElementsByClassName","ThreddedMentionAutocompletion","MATCH_RE","DROPDOWN_MAX_COUNT","textcomplete","register","prefix","global","mod","values","Map","has","splice","assign","ta","heightOffset","cachedHeight","pageResize","update","resize","overflowX","boxSizing","paddingTop","paddingBottom","borderBottomWidth","isNaN","changeOverflow","width","overflows","getParentOverflows","docTop","styleHeight","round","computed","actualHeight","err","methods","autosize","initPostForm","getAncestorTag","ancestorTagName","initTopicsList","topicsList","postsPerPage","isPrivateTopics","unreadFollowedCountElement","link","topic","pageNumber","numPosts","totalPages","count","navItem","getUnreadNavItem","parentElement","toLocaleString","isSubmitHotkey","submitButton","handleMouseEnter","handleMouseLeave","handleTouchStart","initCurrentlyOnline","altKey","shiftKey","scrollIntoView","onSuccess","onError","onerror","fetchReply","replyText","autosizeUpdateEvent","errorMessage","timeago","threddedContainer","cancel","allowFutureWas","settings","allowFuture","MessageboardPreferenceBinding","genericCheckboxName","messageboardCheckboxName","messageboardCheckbox","rememberMessageboardChecked","genericCheckbox","updateMessageboardCheckbox","messageboardCheckedWas","enabled","UpdateOnChange","sourceElement","targetName","UserPreferencesForm","handleSubmit","visit","hideSoftKeyboard","parseNames","current","currentIndex","inQuoted","inName","char","charAt","UsersSelect","names","matchData","initUsersSelect","toggleExpanded","expand","title","blur","listener","initTopicForm","destroyTopicForm","indexMapEn","split","indexMapZh","locales","number","unit","SEC_ARRAY","timers","toDate","Date","toInt","formatDiff","diff","locale","defaultLocale","agoin","total_sec","abs","diffSec","date","nowDate","getAttr","attr","Timeago","timeagoFactory","doRender","tid","self","rst","nextInterval","setTidAttr","format","nodes","len","setLocale","localeFunc"],"mappings":"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","file":"js/pollunit_forum-a580f5a85a3db5fd4bef.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 = \"/forum-packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\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);","// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n\nrequire(\"@rails/ujs\").start();\nrequire(\"@rails/activestorage\").start();\nrequire(\"channels\");\n\nrequire(\"thredded_imports.js\");\n\n\n// Uncomment to copy all static images under ../images to the output folder and reference\n// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)\n// or the `imagePath` JavaScript helper below.\n//\n// const images = require.context('../images', true)\n// const imagePath = (name) => images(name, true)\n\n\ndocument.addEventListener('DOMContentLoaded', function(event) {\n const html = document.querySelector('html');\n html.classList.remove('slideout-open');\n\n const menu = document.getElementById(\"mobile-menu\");\n const menuToggle = document.getElementById('mobile-menu-toggle');\n menuToggle.setAttribute('aria-expanded', false)\n\n menuToggle.addEventListener('click', function() {\n html.classList.toggle('slideout-open');\n menuToggle.setAttribute('aria-expanded', false)\n menu.querySelector(\"a\").focus();\n });\n\n menuToggle.addEventListener('swipeleft', function() {\n html.removeClass('slideout-open');\n menuToggle.setAttribute('aria-expanded', false)\n });\n});\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(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function rhex(n) {\n var s = \"\",\n j;\n\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n });\n });\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\n\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\n\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n\n var id = 0;\n\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n\n return object[methodName].apply(object, messages);\n }\n }\n\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\n };\n\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n\n submitButtonsByForm.delete(form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","// Load all the channels within this directory and all subdirectories.\n// Channel files must be named *_channel.js.\n\nconst channels = require.context('.', true, /_channel\\.js$/)\nchannels.keys().forEach(channels)\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 5;","import \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/core/thredded.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/core/on_page_load.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/spoilers.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/core/serialize_form.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/core/debounce.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/preview_area.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/vendor/assets/javascripts/textcomplete.min.js\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/dependencies/textcomplete.js\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/core/escape_html.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/user_textcomplete.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/mention_autocompletion.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/vendor/assets/javascripts/autosize.js\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/dependencies/autosize.js\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/post_form.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/topics.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/submit_hotkey.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/currently_online.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/quote_post.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/time_stamps.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/flash_messages.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/user_preferences_form.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/turboforms.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/users_select.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/components/topic_form.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/core/hide_soft_keyboard.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/core/csrf_tokens.es6\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/thredded.es6\";\nimport \"@rails/ujs\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/dependencies/ujs.js\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/timeago_js-3.0.2.2/assets/javascripts/timeago.js\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/dependencies/timeago.js\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded/dependencies.js\";\nimport \"/rails_app/vendor/bundle/ruby/3.2.0/gems/thredded-1.1.0/app/assets/javascripts/thredded.es6\";","window.Thredded = window.Thredded || {};\n","//= require thredded/core/thredded\n\n(() => {\n const isTurbolinks = 'Turbolinks' in window && window.Turbolinks.supported;\n const isTurbolinks5 = isTurbolinks && 'clearCache' in window.Turbolinks;\n\n let onPageLoadFiredOnce = false;\n const pageLoadCallbacks = [];\n const triggerOnPageLoad = () => {\n pageLoadCallbacks.forEach((callback) => {\n callback();\n });\n onPageLoadFiredOnce = true;\n };\n\n // Fires the callback on DOMContentLoaded or a Turbolinks page load.\n // If called from an async script on the first page load, and the DOMContentLoad event\n // has already fired, will execute the callback immediately.\n window.Thredded.onPageLoad = (callback) => {\n pageLoadCallbacks.push(callback);\n // With async script loading, a callback may be added after the DOMContentLoaded event has already triggered.\n // This means we will receive neither a DOMContentLoaded event, nor a turbolinks:load event on Turbolinks 5.\n if (!onPageLoadFiredOnce && window.Thredded.DOMContentLoadedFired) {\n callback();\n }\n };\n\n if (isTurbolinks5) {\n // In Turbolinks 5.0.1, turbolinks:load may have already fired (before DOMContentLoaded).\n // If so, add our own DOMContentLoaded listener:\n // See: https://github.com/turbolinks/turbolinks/commit/69d353ea73d10ee6b25c2866fc5706879ba403e3\n if (window.Turbolinks.controller.lastRenderedLocation) {\n document.addEventListener('DOMContentLoaded', () => {\n triggerOnPageLoad();\n });\n }\n document.addEventListener('turbolinks:load', () => {\n triggerOnPageLoad();\n });\n } else {\n // Turbolinks Classic (with or without jQuery.Turbolinks), or no Turbolinks:\n if (!window.Thredded.DOMContentLoadedFired) {\n document.addEventListener('DOMContentLoaded', () => {\n triggerOnPageLoad();\n });\n }\n if (isTurbolinks) {\n document.addEventListener('page:load', () => {\n triggerOnPageLoad();\n })\n }\n }\n})();\n\n","//= require thredded/core/thredded\n//= require thredded/core/on_page_load\n\n(() => {\n const Thredded = window.Thredded;\n const COMPONENT_SELECTOR = '.thredded--post--content--spoiler';\n const OPEN_CLASS = 'thredded--post--content--spoiler--is-open';\n\n Thredded.spoilers = {\n init(root) {\n Array.prototype.forEach.call(root.querySelectorAll(COMPONENT_SELECTOR), (node) => {\n node.addEventListener('mousedown', (evt) => {\n evt.stopPropagation();\n this.toggle(evt.currentTarget);\n });\n node.addEventListener('keypress', (evt) => {\n if (event.key === ' ' || event.key === 'Enter') {\n evt.preventDefault();\n evt.stopPropagation();\n this.toggle(evt.currentTarget);\n }\n });\n });\n },\n\n toggle(node) {\n const isOpen = node.classList.contains(OPEN_CLASS);\n node.classList.toggle(OPEN_CLASS);\n node.setAttribute('aria-expanded', isOpen ? 'false' : 'true');\n node.firstElementChild.setAttribute('aria-hidden', isOpen ? 'false' : 'true');\n node.lastElementChild.setAttribute('aria-hidden', isOpen ? 'true' : 'false');\n }\n };\n\n Thredded.onPageLoad(() => {\n Thredded.spoilers.init(document);\n });\n})();\n","//= require thredded/core/thredded\n\nwindow.Thredded.serializeForm = (form) => {\n // Can't use new FormData(form).entries() because it's not supported on any IE\n // The below is not a full replacement, but enough for Thredded's purposes.\n return Array.prototype.map.call(form.querySelectorAll('[name]'), (e) => {\n return `${encodeURIComponent(e.name)}=${encodeURIComponent(e.value)}`;\n }).join('&');\n};\n","//= require thredded/core/thredded\n\n/**\n * Return a function, that, as long as it continues to be invoked, will\n * not be triggered. The function will be called after it stops being\n * called for `wait` milliseconds. If `immediate` is passed, trigger the\n * function on the leading edge, instead of the trailing.\n * Based on https://john-dugan.com/javascript-debounce/.\n *\n * @param {Function} func\n * @param {Number} wait in milliseconds\n * @param {Boolean} immediate\n * @returns {Function}\n */\nwindow.Thredded.debounce = function(func, wait, immediate) {\n let timeoutId = null;\n return function() {\n const context = this, args = arguments;\n const later = function() {\n timeoutId = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeoutId;\n clearTimeout(timeoutId);\n timeoutId = setTimeout(later, wait || 200);\n if (callNow) {\n func.apply(context, args);\n }\n };\n};\n","//= require thredded/core/thredded\n//= require thredded/core/debounce\n//= require thredded/core/serialize_form\n//= require thredded/components/spoilers\n\n(() => {\n const Thredded = window.Thredded;\n const PREVIEW_AREA_SELECTOR = '[data-thredded-preview-area]';\n const PREVIEW_AREA_POST_SELECTOR = '[data-thredded-preview-area-post]';\n\n class ThreddedPreviewArea {\n\n constructor(form, textarea) {\n const preview = form.querySelector(PREVIEW_AREA_SELECTOR);\n if (!preview || !textarea) return;\n this.form = form;\n this.preview = preview;\n this.previewPost = form.querySelector(PREVIEW_AREA_POST_SELECTOR);\n this.previewUrl = this.preview.getAttribute('data-thredded-preview-url');\n\n let prevValue = null;\n const onChange = Thredded.debounce(() => {\n if (prevValue !== textarea.value) {\n this.updatePreview();\n prevValue = textarea.value;\n }\n }, 200, false);\n\n textarea.addEventListener('input', onChange, false);\n if(textarea.value.trim() !== '') {\n onChange();\n }\n this.requestId = 0;\n }\n\n updatePreview() {\n this.requestId++;\n const requestId = this.requestId;\n const request = new XMLHttpRequest();\n request.open(this.form.method, this.previewUrl, /* async */ true);\n request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n request.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n request.onload = () => {\n if (\n // Ignore server errors\n request.status >= 200 && request.status < 400 &&\n // Ignore older responses received out-of-order\n requestId === this.requestId) {\n this.onPreviewResponse(request.responseText);\n }\n };\n request.send(Thredded.serializeForm(this.form));\n }\n\n onPreviewResponse(data) {\n this.preview.style.display = 'block';\n this.previewPost.innerHTML = data;\n Thredded.spoilers.init(this.previewPost);\n }\n }\n\n window.ThreddedPreviewArea = ThreddedPreviewArea;\n})();\n","/** https://unpkg.com/textcomplete@0.17.1/dist/textcomplete.min.js **/\n!function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,\"a\",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\"\",t(t.s=5)}([function(e,t,n){\"use strict\";function r(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){for(var n=0;n=s&&e<=a}function i(e){var t=window.getComputedStyle(e);return r(t.lineHeight.charCodeAt(0))?r(t.lineHeight.charCodeAt(t.lineHeight.length-1))?parseFloat(t.lineHeight)*parseFloat(t.fontSize):parseFloat(t.lineHeight):o(e.nodeName,t)}function o(e,t){var n=document.body;if(!n)return 0;var r=document.createElement(e);r.innerHTML=\" \",r.style.fontSize=t.fontSize,r.style.fontFamily=t.fontFamily,r.style.padding=\"0\",n.appendChild(r),r instanceof HTMLTextAreaElement&&(r.rows=1);var i=r.offsetHeight;return n.removeChild(r),i}Object.defineProperty(t,\"__esModule\",{value:!0}),t.calculateElementOffset=n,t.getLineHeightPx=i,t.calculateLineHeightPx=o;var s=(t.createCustomEvent=function(){return\"function\"==typeof window.CustomEvent?function(e,t){return new document.defaultView.CustomEvent(e,{cancelable:t&&t.cancelable||!1,detail:t&&t.detail||void 0})}:function(e,t){var n=document.createEvent(\"CustomEvent\");return n.initCustomEvent(e,!1,t&&t.cancelable||!1,t&&t.detail||void 0),n}}(),\"0\".charCodeAt(0)),a=\"9\".charCodeAt(0)},function(e,t,n){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function o(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function s(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{};i(this,t);var r=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return r.completer=new l.default,r.isQueryInFlight=!1,r.nextPendingQuery=null,r.dropdown=new f.default(n.dropdown||{}),r.editor=e,r.options=n,g.forEach(function(e){r[e]=r[e].bind(r)}),r.startListening(),r}return s(t,e),a(t,[{key:\"destroy\",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.completer.destroy(),this.dropdown.destroy(),e&&this.editor.destroy(),this.stopListening(),this}},{key:\"hide\",value:function(){return this.dropdown.deactivate(),this}},{key:\"register\",value:function(e){var t=this;return e.forEach(function(e){t.completer.registerStrategy(new v.default(e))}),this}},{key:\"trigger\",value:function(e){return this.isQueryInFlight?this.nextPendingQuery=e:(this.isQueryInFlight=!0,this.nextPendingQuery=null,this.completer.run(e)),this}},{key:\"handleHit\",value:function(e){var t=e.searchResults;t.length?this.dropdown.render(t,this.editor.getCursorOffset()):this.dropdown.deactivate(),this.isQueryInFlight=!1,null!==this.nextPendingQuery&&this.trigger(this.nextPendingQuery)}},{key:\"handleMove\",value:function(e){\"UP\"===e.detail.code?this.dropdown.up(e):this.dropdown.down(e)}},{key:\"handleEnter\",value:function(e){var t=this.dropdown.getActiveItem();t?(this.dropdown.select(t),e.preventDefault()):this.dropdown.deactivate()}},{key:\"handleEsc\",value:function(e){this.dropdown.shown&&(this.dropdown.deactivate(),e.preventDefault())}},{key:\"handleChange\",value:function(e){null!=e.detail.beforeCursor?this.trigger(e.detail.beforeCursor):this.dropdown.deactivate()}},{key:\"handleSelect\",value:function(e){this.emit(\"select\",e),e.defaultPrevented||this.editor.applySearchResult(e.detail.searchResult)}},{key:\"startListening\",value:function(){var e=this;this.editor.on(\"move\",this.handleMove).on(\"enter\",this.handleEnter).on(\"esc\",this.handleEsc).on(\"change\",this.handleChange),this.dropdown.on(\"select\",this.handleSelect),[\"show\",\"shown\",\"render\",\"rendered\",\"selected\",\"hidden\",\"hide\"].forEach(function(t){e.dropdown.on(t,function(){return e.emit(t)})}),this.completer.on(\"hit\",this.handleHit)}},{key:\"stopListening\",value:function(){this.completer.removeAllListeners(),this.dropdown.removeAllListeners(),this.editor.removeListener(\"move\",this.handleMove).removeListener(\"enter\",this.handleEnter).removeListener(\"esc\",this.handleEsc).removeListener(\"change\",this.handleChange)}}]),t}(m.default);t.default=b},function(e,t,n){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function o(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function s(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,\"__esModule\",{value:!0});var a=function(){function e(e,t){for(var n=0;nr&&(e.left=r-n),this.el.style.left=e.left+\"px\"}else e.right&&(e.right-n<0&&(e.right=0),this.el.style.right=e.right+\"px\");this.isPlacementTop()?this.el.style.bottom=t.clientHeight-e.top+e.lineHeight+\"px\":this.el.style.top=e.top+\"px\"}return this}},{key:\"show\",value:function(){if(!this.shown){var e=(0,d.createCustomEvent)(\"show\",{cancelable:!0});if(this.emit(\"show\",e),e.defaultPrevented)return this;this.el.style.display=\"block\",this.shown=!0,this.emit(\"shown\",(0,d.createCustomEvent)(\"shown\"))}return this}},{key:\"hide\",value:function(){if(this.shown){var e=(0,d.createCustomEvent)(\"hide\",{cancelable:!0});if(this.emit(\"hide\",e),e.defaultPrevented)return this;this.el.style.display=\"none\",this.shown=!1,this.emit(\"hidden\",(0,d.createCustomEvent)(\"hidden\"))}return this}},{key:\"clear\",value:function(){return this.el.innerHTML=\"\",this.items.forEach(function(e){return e.destroy()}),this.items=[],this}},{key:\"moveActiveItem\",value:function(e,t){var n=\"next\"===e?this.activeItem?this.activeItem.next:this.items[0]:this.activeItem?this.activeItem.prev:this.items[this.items.length-1];return n&&(n.activate(),t.preventDefault()),this}},{key:\"setStrategyId\",value:function(e){var t=e&&e.strategy.props.id;return t?this.el.setAttribute(\"data-strategy\",t):this.el.removeAttribute(\"data-strategy\"),this}},{key:\"renderEdge\",value:function(e,t){var n=(\"header\"===t?this.header:this.footer)||\"\",r=\"function\"==typeof n?n(e):n,i=document.createElement(\"li\");return i.classList.add(\"textcomplete-\"+t),i.innerHTML=r,this.el.appendChild(i),this}},{key:\"isPlacementTop\",value:function(){return\"top\"===this.placement}},{key:\"el\",get:function(){return this._el||(this._el=t.createElement()),this._el}}]),t}(l.default);t.default=p},function(e,t,n){\"use strict\";function r(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}Object.defineProperty(t,\"__esModule\",{value:!0}),t.DEFAULT_CLASS_NAME=void 0;var i=function(){function e(e,t){for(var n=0;n=0&&o.length-u-1>=0&&i[i.length-u-1]===o[o.length-u-1];)u++;a=Math.min(a,Math.min(i.length,o.length)-u),e.setSelectionRange(a,i.length-u);var l=o.substring(a,o.length-u);return e.focus(),document.execCommand(\"insertText\",!1,l)||(e.value=o,e.dispatchEvent(n())),e.setSelectionRange(t.length,t.length),s&&s.focus(),e}},function(e){!function(){function t(e,t,o){if(!r)throw new Error(\"textarea-caret-position#getCaretCoordinates should only be called in a browser\");var s=o&&o.debug||!1;if(s){var a=document.querySelector(\"#input-textarea-caret-position-mirror-div\");a&&a.parentNode.removeChild(a)}var u=document.createElement(\"div\");u.id=\"input-textarea-caret-position-mirror-div\",document.body.appendChild(u);var l=u.style,c=window.getComputedStyle?getComputedStyle(e):e.currentStyle;l.whiteSpace=\"pre-wrap\",\"INPUT\"!==e.nodeName&&(l.wordWrap=\"break-word\"),l.position=\"absolute\",s||(l.visibility=\"hidden\"),n.forEach(function(e){l[e]=c[e]}),i?e.scrollHeight>parseInt(c.height)&&(l.overflowY=\"scroll\"):l.overflow=\"hidden\",u.textContent=e.value.substring(0,t),\"INPUT\"===e.nodeName&&(u.textContent=u.textContent.replace(/\\s/g,\" \"));var h=document.createElement(\"span\");h.textContent=e.value.substring(t)||\".\",u.appendChild(h);var f={top:h.offsetTop+parseInt(c.borderTopWidth),left:h.offsetLeft+parseInt(c.borderLeftWidth)};return s?h.style.backgroundColor=\"#aaa\":document.body.removeChild(u),f}var n=[\"direction\",\"boxSizing\",\"width\",\"height\",\"overflowX\",\"overflowY\",\"borderTopWidth\",\"borderRightWidth\",\"borderBottomWidth\",\"borderLeftWidth\",\"borderStyle\",\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\",\"fontStyle\",\"fontVariant\",\"fontWeight\",\"fontStretch\",\"fontSize\",\"fontSizeAdjust\",\"lineHeight\",\"fontFamily\",\"textAlign\",\"textTransform\",\"textIndent\",\"textDecoration\",\"letterSpacing\",\"wordSpacing\",\"tabSize\",\"MozTabSize\"],r=\"undefined\"!=typeof window,i=r&&null!=window.mozInnerScreenX;void 0!==e&&void 0!==e.exports?e.exports=t:r&&(window.getCaretCoordinates=t)}()}]);\n","//= require thredded/core/thredded\n\nwindow.Thredded.escapeHtml = function(text) {\n const node = document.createElement('div');\n node.textContent = text;\n return node.innerHTML;\n};\n","//= require thredded/core/thredded\n//= require thredded/core/escape_html\n//= require thredded/dependencies/textcomplete\n\n(() => {\n const Thredded = window.Thredded;\n\n Thredded.UserTextcomplete = {\n DROPDOWN_CLASS_NAME: 'thredded--textcomplete-dropdown',\n\n formatUser({avatar_url, name, display_name}) {\n return \"
\" +\n `` +\n `${Thredded.escapeHtml(name)}` +\n (name !== display_name && display_name ?\n `${Thredded.escapeHtml(display_name)}` :\n '') +\n '
';\n },\n\n searchFn({url, autocompleteMinLength}) {\n return function search(term, callback, match) {\n if (term.length < autocompleteMinLength) {\n callback([]);\n return;\n }\n const request = new XMLHttpRequest();\n request.open('GET', `${url}?q=${term}`, /* async */ true);\n request.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n request.onload = () => {\n // Ignore errors\n if (request.status < 200 || request.status >= 400) {\n callback([]);\n return;\n }\n callback(JSON.parse(request.responseText).results.map(({avatar_url, id, display_name, name}) => {\n return {avatar_url, id, name, display_name, match};\n }));\n };\n request.send();\n }\n }\n };\n\n document.addEventListener('turbolinks:before-cache', () => {\n Array.prototype.forEach.call(\n document.getElementsByClassName(Thredded.UserTextcomplete.DROPDOWN_CLASS_NAME), (node) => {\n node.parentNode.removeChild(node);\n });\n });\n})();\n","//= require thredded/components/user_textcomplete\n\nconst ThreddedMentionAutocompletion = {\n MATCH_RE: /(^@|\\s@)\"?([\\w., \\-()]+[\\w.,\\-()])$/,\n // the last letter has to not be a space so it doesn't match after replacement\n DROPDOWN_MAX_COUNT: 6,\n\n init(form, textarea) {\n const editor = new Textcomplete.editors.Textarea(textarea);\n const textcomplete = new Textcomplete(editor, {\n dropdown: {\n className: Thredded.UserTextcomplete.DROPDOWN_CLASS_NAME,\n maxCount: ThreddedMentionAutocompletion.DROPDOWN_MAX_COUNT\n },\n });\n textcomplete.on('rendered', function() {\n if (textcomplete.dropdown.items.length) {\n textcomplete.dropdown.items[0].activate();\n }\n });\n textcomplete.register([{\n match: ThreddedMentionAutocompletion.MATCH_RE,\n search: Thredded.UserTextcomplete.searchFn({\n url: form.getAttribute('data-autocomplete-url'),\n autocompleteMinLength: parseInt(form.getAttribute('data-autocomplete-min-length'), 10)\n }),\n template: Thredded.UserTextcomplete.formatUser,\n replace ({name, match}) {\n let prefix = match[1];\n if (/[., ()]/.test(name)) {\n return `${prefix}\"${name}\" `\n } else {\n return `${prefix}${name} `\n }\n }\n }]);\n }\n};\n\nwindow.ThreddedMentionAutocompletion = ThreddedMentionAutocompletion;\n","/** https://unpkg.com/autosize@4.0.2/dist/autosize.js **/\n// Modified to always define the autosize global.\n// This allows Thredded code to be compatible with both Webpack and Sprockets.\n(function (global, factory) {\n var mod = {\n exports: {}\n };\n factory(mod, mod.exports);\n global.autosize = mod.exports;\n})(window, function (module, exports) {\n 'use strict';\n\n var map = typeof Map === \"function\" ? new Map() : function () {\n var keys = [];\n var values = [];\n\n return {\n has: function has(key) {\n return keys.indexOf(key) > -1;\n },\n get: function get(key) {\n return values[keys.indexOf(key)];\n },\n set: function set(key, value) {\n if (keys.indexOf(key) === -1) {\n keys.push(key);\n values.push(value);\n }\n },\n delete: function _delete(key) {\n var index = keys.indexOf(key);\n if (index > -1) {\n keys.splice(index, 1);\n values.splice(index, 1);\n }\n }\n };\n }();\n\n var createEvent = function createEvent(name) {\n return new Event(name, { bubbles: true });\n };\n try {\n new Event('test');\n } catch (e) {\n // IE does not support `new Event()`\n createEvent = function createEvent(name) {\n var evt = document.createEvent('Event');\n evt.initEvent(name, true, false);\n return evt;\n };\n }\n\n function assign(ta) {\n if (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || map.has(ta)) return;\n\n var heightOffset = null;\n var clientWidth = null;\n var cachedHeight = null;\n\n function init() {\n var style = window.getComputedStyle(ta, null);\n\n if (style.resize === 'vertical') {\n ta.style.resize = 'none';\n } else if (style.resize === 'both') {\n ta.style.resize = 'horizontal';\n }\n\n if (style.boxSizing === 'content-box') {\n heightOffset = -(parseFloat(style.paddingTop) + parseFloat(style.paddingBottom));\n } else {\n heightOffset = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n }\n // Fix when a textarea is not on document body and heightOffset is Not a Number\n if (isNaN(heightOffset)) {\n heightOffset = 0;\n }\n\n update();\n }\n\n function changeOverflow(value) {\n {\n // Chrome/Safari-specific fix:\n // When the textarea y-overflow is hidden, Chrome/Safari do not reflow the text to account for the space\n // made available by removing the scrollbar. The following forces the necessary text reflow.\n var width = ta.style.width;\n ta.style.width = '0px';\n // Force reflow:\n /* jshint ignore:start */\n ta.offsetWidth;\n /* jshint ignore:end */\n ta.style.width = width;\n }\n\n ta.style.overflowY = value;\n }\n\n function getParentOverflows(el) {\n var arr = [];\n\n while (el && el.parentNode && el.parentNode instanceof Element) {\n if (el.parentNode.scrollTop) {\n arr.push({\n node: el.parentNode,\n scrollTop: el.parentNode.scrollTop\n });\n }\n el = el.parentNode;\n }\n\n return arr;\n }\n\n function resize() {\n if (ta.scrollHeight === 0) {\n // If the scrollHeight is 0, then the element probably has display:none or is detached from the DOM.\n return;\n }\n\n var overflows = getParentOverflows(ta);\n var docTop = document.documentElement && document.documentElement.scrollTop; // Needed for Mobile IE (ticket #240)\n\n ta.style.height = '';\n ta.style.height = ta.scrollHeight + heightOffset + 'px';\n\n // used to check if an update is actually necessary on window.resize\n clientWidth = ta.clientWidth;\n\n // prevents scroll-position jumping\n overflows.forEach(function (el) {\n el.node.scrollTop = el.scrollTop;\n });\n\n if (docTop) {\n document.documentElement.scrollTop = docTop;\n }\n }\n\n function update() {\n resize();\n\n var styleHeight = Math.round(parseFloat(ta.style.height));\n var computed = window.getComputedStyle(ta, null);\n\n // Using offsetHeight as a replacement for computed.height in IE, because IE does not account use of border-box\n var actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(computed.height)) : ta.offsetHeight;\n\n // The actual height not matching the style height (set via the resize method) indicates that\n // the max-height has been exceeded, in which case the overflow should be allowed.\n if (actualHeight < styleHeight) {\n if (computed.overflowY === 'hidden') {\n changeOverflow('scroll');\n resize();\n actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;\n }\n } else {\n // Normally keep overflow set to hidden, to avoid flash of scrollbar as the textarea expands.\n if (computed.overflowY !== 'hidden') {\n changeOverflow('hidden');\n resize();\n actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;\n }\n }\n\n if (cachedHeight !== actualHeight) {\n cachedHeight = actualHeight;\n var evt = createEvent('autosize:resized');\n try {\n ta.dispatchEvent(evt);\n } catch (err) {\n // Firefox will throw an error on dispatchEvent for a detached element\n // https://bugzilla.mozilla.org/show_bug.cgi?id=889376\n }\n }\n }\n\n var pageResize = function pageResize() {\n if (ta.clientWidth !== clientWidth) {\n update();\n }\n };\n\n var destroy = function (style) {\n window.removeEventListener('resize', pageResize, false);\n ta.removeEventListener('input', update, false);\n ta.removeEventListener('keyup', update, false);\n ta.removeEventListener('autosize:destroy', destroy, false);\n ta.removeEventListener('autosize:update', update, false);\n\n Object.keys(style).forEach(function (key) {\n ta.style[key] = style[key];\n });\n\n map.delete(ta);\n }.bind(ta, {\n height: ta.style.height,\n resize: ta.style.resize,\n overflowY: ta.style.overflowY,\n overflowX: ta.style.overflowX,\n wordWrap: ta.style.wordWrap\n });\n\n ta.addEventListener('autosize:destroy', destroy, false);\n\n // IE9 does not fire onpropertychange or oninput for deletions,\n // so binding to onkeyup to catch most of those events.\n // There is no way that I know of to detect something like 'cut' in IE9.\n if ('onpropertychange' in ta && 'oninput' in ta) {\n ta.addEventListener('keyup', update, false);\n }\n\n window.addEventListener('resize', pageResize, false);\n ta.addEventListener('input', update, false);\n ta.addEventListener('autosize:update', update, false);\n ta.style.overflowX = 'hidden';\n ta.style.wordWrap = 'break-word';\n\n map.set(ta, {\n destroy: destroy,\n update: update\n });\n\n init();\n }\n\n function destroy(ta) {\n var methods = map.get(ta);\n if (methods) {\n methods.destroy();\n }\n }\n\n function update(ta) {\n var methods = map.get(ta);\n if (methods) {\n methods.update();\n }\n }\n\n var autosize = null;\n\n // Do nothing in Node.js environment and IE8 (or lower)\n if (typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') {\n autosize = function autosize(el) {\n return el;\n };\n autosize.destroy = function (el) {\n return el;\n };\n autosize.update = function (el) {\n return el;\n };\n } else {\n autosize = function autosize(el, options) {\n if (el) {\n Array.prototype.forEach.call(el.length ? el : [el], function (x) {\n return assign(x, options);\n });\n }\n return el;\n };\n autosize.destroy = function (el) {\n if (el) {\n Array.prototype.forEach.call(el.length ? el : [el], destroy);\n }\n return el;\n };\n autosize.update = function (el) {\n if (el) {\n Array.prototype.forEach.call(el.length ? el : [el], update);\n }\n return el;\n };\n }\n\n exports.default = autosize;\n module.exports = exports['default'];\n});\n","//= require thredded/core/thredded\n//= require thredded/dependencies/autosize\n//= require thredded/core/on_page_load\n//= require thredded/components/mention_autocompletion\n//= require thredded/components/preview_area\n\n(() => {\n const Thredded = window.Thredded;\n const ThreddedMentionAutocompletion = window.ThreddedMentionAutocompletion;\n const ThreddedPreviewArea = window.ThreddedPreviewArea;\n const autosize = window.autosize;\n\n const COMPONENT_SELECTOR = '[data-thredded-post-form]';\n const CONTENT_TEXTAREA_SELECTOR = 'textarea[name$=\"[content]\"]';\n\n const initPostForm = (form) => {\n const textarea = form.querySelector(CONTENT_TEXTAREA_SELECTOR);\n autosize(textarea);\n new ThreddedPreviewArea(form, textarea);\n ThreddedMentionAutocompletion.init(form, textarea);\n };\n\n const destroyPostForm = (form) => {\n autosize.destroy(form.querySelector(CONTENT_TEXTAREA_SELECTOR));\n };\n\n Thredded.onPageLoad(() => {\n Array.prototype.forEach.call(document.querySelectorAll(COMPONENT_SELECTOR), (node) => {\n initPostForm(node);\n });\n });\n\n document.addEventListener('turbolinks:before-cache', () => {\n Array.prototype.forEach.call(document.querySelectorAll(COMPONENT_SELECTOR), (node) => {\n destroyPostForm(node);\n });\n });\n})();\n","//= require thredded/core/thredded\n//= require thredded/core/on_page_load\n//= require thredded/core/serialize_form\n\n// Makes topics in the list appear read as soon as the topic link is clicked,\n// iff the topic link leads to the last page of the topic.\n(() => {\n const Thredded = window.Thredded;\n\n const COMPONENT_SELECTOR = '[data-thredded-topics]';\n const TOPIC_UNREAD_CLASS = 'thredded--topic-unread';\n const TOPIC_READ_CLASS = 'thredded--topic-read';\n const POSTS_COUNT_SELECTOR = '.thredded--topics--posts-count';\n\n function pageNumber(url) {\n const match = url.match(/\\/page-(\\d)$/);\n return match ? +match[1] : 1;\n }\n\n function totalPages(numPosts, postsPerPage) {\n return Math.ceil(numPosts / postsPerPage);\n }\n\n function getAncestorTag(node, ancestorTagName) {\n do {\n node = node.parentNode;\n } while (node && node.tagName !== ancestorTagName);\n return node;\n }\n\n function getTopicNode(node) {\n return getAncestorTag(node, 'ARTICLE');\n }\n\n function getUnreadNavItem(unreadFollowedCountElement) {\n return getAncestorTag(unreadFollowedCountElement, 'LI');\n }\n\n function initTopicsList(topicsList) {\n const postsPerPage = +topicsList.getAttribute('data-thredded-topic-posts-per-page') || 25;\n const isPrivateTopics = topicsList.getAttribute('data-thredded-topics') === 'private';\n const unreadFollowedCountElement = document.querySelector('[data-unread-followed-count]');\n topicsList.addEventListener('click', (evt) => {\n const link = evt.target;\n if (link.tagName !== 'A' || link.parentNode.tagName !== 'H1') return;\n const topic = getTopicNode(link);\n if (pageNumber(link.href) === totalPages(+topic.querySelector(POSTS_COUNT_SELECTOR).textContent, postsPerPage)) {\n if (!isPrivateTopics && unreadFollowedCountElement &&\n topic.hasAttribute('data-followed') && topic.hasAttribute('data-unread')) {\n const count = (+unreadFollowedCountElement.textContent) - 1;\n if (count === 0) {\n const navItem = getUnreadNavItem(unreadFollowedCountElement);\n navItem.parentElement.removeChild(navItem);\n } else {\n unreadFollowedCountElement.textContent = count.toLocaleString();\n }\n }\n topic.classList.add(TOPIC_READ_CLASS);\n topic.classList.remove(TOPIC_UNREAD_CLASS);\n topic.removeAttribute('data-unread');\n }\n });\n }\n\n Thredded.onPageLoad(() => {\n Array.prototype.forEach.call(document.querySelectorAll(COMPONENT_SELECTOR), initTopicsList);\n });\n})();\n","//= require thredded/core/thredded\n(function() {\n const Thredded = window.Thredded;\n Thredded.isSubmitHotkey = (evt) => {\n // Ctrl+Enter.\n return evt.ctrlKey && (evt.keyCode === 13 || evt.keyCode === 10 /* http://crbug.com/79407 */);\n };\n\n document.addEventListener('keypress', (evt) => {\n if (Thredded.isSubmitHotkey(evt)) {\n const submitButton = document.querySelector('[data-thredded-submit-hotkey] [type=\"submit\"]');\n if (!submitButton) return;\n evt.preventDefault();\n // Focus first for better visual feedback.\n submitButton.focus();\n submitButton.click();\n }\n });\n})();\n","//= require thredded/core/thredded\n//= require thredded/core/on_page_load\n\n(() => {\n const Thredded = window.Thredded;\n\n const COMPONENT_SELECTOR = '[data-thredded-currently-online]';\n const EXPANDED_CLASS = 'thredded--is-expanded';\n\n const handleMouseEnter = (evt) => {\n evt.target.classList.add(EXPANDED_CLASS);\n };\n\n const handleMouseLeave = (evt) => {\n evt.target.classList.remove(EXPANDED_CLASS);\n };\n\n const handleTouchStart = (evt) => {\n evt.target.classList.toggle(EXPANDED_CLASS);\n };\n\n const initCurrentlyOnline = (node) => {\n node.addEventListener('mouseenter', handleMouseEnter);\n node.addEventListener('mouseleave', handleMouseLeave);\n node.addEventListener('touchstart', handleTouchStart);\n };\n\n Thredded.onPageLoad(() => {\n Array.prototype.forEach.call(document.querySelectorAll(COMPONENT_SELECTOR), (node) => {\n initCurrentlyOnline(node);\n });\n });\n})();\n","//= require thredded/core/thredded\n//= require thredded/core/on_page_load\n\n(function() {\n const Thredded = window.Thredded;\n\n Thredded.onPageLoad(() => {\n Array.prototype.forEach.call(document.querySelectorAll('[data-thredded-quote-post]'), (el) => {\n el.addEventListener('click', onClick);\n });\n });\n\n function onClick(evt) {\n // Handle only left clicks with no modifier keys\n if (evt.button !== 0 || evt.ctrlKey || evt.altKey || evt.metaKey || evt.shiftKey) return;\n evt.preventDefault();\n const target = document.getElementById('post_content');\n target.scrollIntoView();\n target.value = '...';\n fetchReply(evt.target.getAttribute('data-thredded-quote-post'), (replyText) => {\n if (!target.ownerDocument.body.contains(target)) return;\n target.focus();\n target.value = replyText;\n\n const autosizeUpdateEvent = document.createEvent('Event');\n autosizeUpdateEvent.initEvent('autosize:update', true, false);\n target.dispatchEvent(autosizeUpdateEvent);\n // Scroll into view again as the size might have changed.\n target.scrollIntoView();\n }, (errorMessage) => {\n target.value = errorMessage;\n });\n }\n\n function fetchReply(url, onSuccess, onError) {\n const request = new XMLHttpRequest();\n request.open('GET', url, /* async */ true);\n request.onload = () => {\n if (request.status >= 200 && request.status < 400) {\n onSuccess(request.responseText);\n } else {\n onError(`Error (${request.status}): ${request.statusText} ${request.responseText}`);\n }\n };\n request.onerror = () => {\n onError('Network Error');\n };\n request.send();\n }\n})();\n","//= require thredded/core/thredded\n(() => {\n const COMPONENT_SELECTOR = '#thredded--container [data-time-ago]';\n const Thredded = window.Thredded;\n if ('timeago' in window) {\n const timeago = window.timeago;\n Thredded.onPageLoad(() => {\n const threddedContainer = document.querySelector('#thredded--container');\n if (!threddedContainer) return;\n timeago().render(\n document.querySelectorAll(COMPONENT_SELECTOR),\n threddedContainer.getAttribute('data-thredded-locale').replace('-', '_'));\n });\n document.addEventListener('turbolinks:before-cache', () => {\n timeago.cancel();\n });\n } else if ('jQuery' in window && 'timeago' in jQuery.fn) {\n const $ = window.jQuery;\n Thredded.onPageLoad(() => {\n const allowFutureWas = $.timeago.settings.allowFuture;\n $.timeago.settings.allowFuture = true;\n $(COMPONENT_SELECTOR).timeago();\n $.timeago.settings.allowFuture = allowFutureWas;\n });\n }\n})();\n","(() => {\n const COMPONENT_SELECTOR = '[data-thredded-flash-message]';\n\n document.addEventListener('turbolinks:before-cache', () => {\n Array.prototype.forEach.call(document.querySelectorAll(COMPONENT_SELECTOR), (node) => {\n node.parentNode.removeChild(node);\n });\n });\n})();\n","//= require thredded/core/thredded\n//= require thredded/core/on_page_load\n\n// Reflects the logic of user preference settings by enabling/disabling certain inputs.\n(() => {\n const Thredded = window.Thredded;\n\n const COMPONENT_SELECTOR = '[data-thredded-user-preferences-form]';\n const BOUND_MESSAGEBOARD_NAME = 'data-thredded-bound-messageboard-pref';\n const UPDATE_ON_CHANGE_NAME = 'data-thredded-update-checkbox-on-change';\n\n class MessageboardPreferenceBinding {\n constructor(form, genericCheckboxName, messageboardCheckboxName) {\n this.messageboardCheckbox = form.querySelector(`[type=\"checkbox\"][name=\"${messageboardCheckboxName}\"]`);\n if (!this.messageboardCheckbox) {\n return;\n }\n this.messageboardCheckbox.addEventListener('change', () => {\n this.rememberMessageboardChecked();\n });\n this.rememberMessageboardChecked();\n\n this.genericCheckbox = form.querySelector(`[type=\"checkbox\"][name=\"${genericCheckboxName}\"]`);\n this.genericCheckbox.addEventListener('change', () => {\n this.updateMessageboardCheckbox();\n });\n this.updateMessageboardCheckbox();\n }\n\n rememberMessageboardChecked() {\n this.messageboardCheckedWas = this.messageboardCheckbox.checked;\n }\n\n updateMessageboardCheckbox() {\n const enabled = this.genericCheckbox.checked;\n this.messageboardCheckbox.disabled = !enabled;\n this.messageboardCheckbox.checked = enabled ? this.messageboardCheckedWas : false;\n }\n }\n\n class UpdateOnChange {\n constructor(form, sourceElement, targetName) {\n const target = form.querySelector(`[type=\"checkbox\"][name=\"${targetName}\"]`);\n if (!target) return;\n sourceElement.addEventListener('change', () => {\n target.checked = sourceElement.checked;\n });\n }\n }\n\n class UserPreferencesForm {\n constructor(form) {\n Array.prototype.forEach.call(form.querySelectorAll(`input[${BOUND_MESSAGEBOARD_NAME}]`), (element) => {\n new MessageboardPreferenceBinding(form, element.name, element.getAttribute(BOUND_MESSAGEBOARD_NAME));\n });\n Array.prototype.forEach.call(form.querySelectorAll(`input[${UPDATE_ON_CHANGE_NAME}]`), (element) => {\n new UpdateOnChange(form, element, element.getAttribute(UPDATE_ON_CHANGE_NAME));\n });\n }\n }\n\n Thredded.onPageLoad(() => {\n Array.prototype.forEach.call(document.querySelectorAll(COMPONENT_SELECTOR), (form) => {\n new UserPreferencesForm(form);\n });\n });\n})();\n","//= require thredded/core/thredded\n//= require thredded/core/on_page_load\n//= require thredded/core/serialize_form\n\n// Submit GET forms with turbolinks\n(() => {\n const Thredded = window.Thredded;\n const Turbolinks = window.Turbolinks;\n\n const handleSubmit = (evt) => {\n evt.preventDefault();\n const form = evt.currentTarget;\n Turbolinks.visit(form.action + (form.action.indexOf('?') === -1 ? '?' : '&') + Thredded.serializeForm(form));\n\n // On mobile the soft keyboard doesn't won't go away after the submit since we're submitting with\n // Turbolinks. Hide it:\n Thredded.hideSoftKeyboard();\n };\n\n Thredded.onPageLoad(() => {\n if (!Turbolinks || !Turbolinks.supported) return;\n Array.prototype.forEach.call(document.querySelectorAll('[data-thredded-turboform]'), (form) => {\n form.addEventListener('submit', handleSubmit);\n });\n });\n})();\n","//= require thredded/core/thredded\n//= require thredded/core/on_page_load\n//= require thredded/components/user_textcomplete\n//= require thredded/dependencies/autosize\n\n(() => {\n const Thredded = window.Thredded;\n const autosize = window.autosize;\n\n const COMPONENT_SELECTOR = '[data-thredded-users-select]';\n\n Thredded.UsersSelect = {\n DROPDOWN_MAX_COUNT: 6,\n };\n\n function parseNames(text) {\n const result = [];\n let current = [];\n let currentIndex = 0;\n let inQuoted = false;\n let inName = false;\n for (let i = 0; i < text.length; ++i) {\n const char = text.charAt(i);\n switch (char) {\n case '\"':\n inQuoted = !inQuoted;\n break;\n case ' ':\n if (inName) current.push(char);\n break;\n case ',':\n if (inQuoted) {\n current.push(char);\n } else {\n inName = false;\n if (current.length) {\n result.push({name: current.join(''), index: currentIndex});\n current.length = 0;\n }\n }\n break;\n default:\n if (!inName) currentIndex = i;\n inName = true;\n current.push(char);\n }\n }\n if (current.length) result.current = {name: current.join(''), index: currentIndex};\n return result;\n }\n\n const initUsersSelect = (textarea) => {\n autosize(textarea);\n // Prevent multiple lines\n textarea.addEventListener('keypress', (evt) => {\n if (evt.keyCode === 13 || evt.keyCode === 10) {\n evt.preventDefault()\n }\n });\n const editor = new Textcomplete.editors.Textarea(textarea);\n const textcomplete = new Textcomplete(editor, {\n dropdown: {\n className: Thredded.UserTextcomplete.DROPDOWN_CLASS_NAME,\n maxCount: Thredded.UsersSelect.DROPDOWN_MAX_COUNT,\n },\n });\n textarea.addEventListener('blur', (evt) => {\n textcomplete.hide();\n });\n\n const searchFn = Thredded.UserTextcomplete.searchFn({\n url: textarea.getAttribute('data-autocomplete-url'),\n autocompleteMinLength: parseInt(textarea.getAttribute('data-autocomplete-min-length'), 10)\n });\n textcomplete.on('rendered', function() {\n if (textcomplete.dropdown.items.length) {\n textcomplete.dropdown.items[0].activate();\n }\n });\n textcomplete.register([{\n index: 0,\n match: (text) => {\n const names = parseNames(text);\n if (names.current) {\n const {name, index} = names.current;\n const matchData = [name];\n matchData.index = index;\n return matchData;\n } else {\n return null;\n }\n },\n search (term, callback, match) {\n searchFn(term, function(results) {\n const names = parseNames(textarea.value).map(({name}) => name);\n callback(results.filter((result) => names.indexOf(result.name) === -1));\n }, match);\n },\n template: Thredded.UserTextcomplete.formatUser,\n replace ({name}) {\n if (/,/.test(name)) {\n return `\"${name}\", `\n } else {\n return `${name}, `\n }\n }\n }]);\n };\n\n function destroyUsersSelect(textarea) {\n autosize.destroy(textarea);\n }\n\n window.Thredded.onPageLoad(() => {\n Array.prototype.forEach.call(document.querySelectorAll(COMPONENT_SELECTOR), (node) => {\n initUsersSelect(node);\n });\n });\n\n document.addEventListener('turbolinks:before-cache', () => {\n Array.prototype.forEach.call(document.querySelectorAll(COMPONENT_SELECTOR), (node) => {\n destroyUsersSelect(node);\n });\n });\n\n})();\n","//= require thredded/core/thredded\n//= require thredded/dependencies/autosize\n//= require thredded/core/on_page_load\n//= require thredded/components/mention_autocompletion\n//= require thredded/components/preview_area\n\n(() => {\n const Thredded = window.Thredded;\n const ThreddedMentionAutocompletion = window.ThreddedMentionAutocompletion;\n const ThreddedPreviewArea = window.ThreddedPreviewArea;\n const autosize = window.autosize;\n\n const COMPONENT_SELECTOR = '[data-thredded-topic-form]';\n const TITLE_SELECTOR = '[name$=\"topic[title]\"]';\n const CONTENT_TEXTAREA_SELECTOR = 'textarea[name$=\"[content]\"]';\n const COMPACT_CLASS = 'thredded--is-compact';\n const EXPANDED_CLASS = 'thredded--is-expanded';\n const ESCAPE_KEY_CODE = 27;\n\n const initTopicForm = (form) => {\n const textarea = form.querySelector(CONTENT_TEXTAREA_SELECTOR);\n if (!textarea) {\n return;\n }\n autosize(textarea);\n new ThreddedPreviewArea(form, textarea);\n ThreddedMentionAutocompletion.init(form, textarea);\n\n if (!form.classList.contains(COMPACT_CLASS)) {\n return;\n }\n\n const title = form.querySelector(TITLE_SELECTOR);\n title.addEventListener('focus', () => {\n toggleExpanded(form, true);\n });\n\n [title, textarea].forEach((node) => {\n // Un-expand on Escape key.\n node.addEventListener('keydown', (evt) => {\n if (evt.keyCode === ESCAPE_KEY_CODE) {\n evt.target.blur();\n toggleExpanded(form, false);\n }\n });\n\n // Un-expand on blur if the new focus element is outside of the same form and\n // all the form inputs are empty.\n node.addEventListener('blur', () => {\n // This listener will be fired right after the blur event has finished.\n const listener = (evt) => {\n if (!form.contains(evt.target) && !title.value && !textarea.value) {\n toggleExpanded(form, false);\n }\n document.body.removeEventListener('touchend', listener);\n document.body.removeEventListener('mouseup', listener);\n };\n document.body.addEventListener('mouseup', listener);\n document.body.addEventListener('touchend', listener);\n })\n });\n };\n\n const toggleExpanded = (form, expand) => {\n if (expand) {\n form.classList.remove(COMPACT_CLASS);\n form.classList.add(EXPANDED_CLASS);\n } else {\n form.classList.remove(EXPANDED_CLASS);\n form.classList.add(COMPACT_CLASS);\n }\n };\n\n const destroyTopicForm = (form) => {\n const textarea = form.querySelector(CONTENT_TEXTAREA_SELECTOR);\n if (!textarea) {\n return;\n }\n autosize.destroy(textarea);\n };\n\n Thredded.onPageLoad(() => {\n Array.prototype.forEach.call(document.querySelectorAll(COMPONENT_SELECTOR), (node) => {\n initTopicForm(node);\n });\n });\n\n document.addEventListener('turbolinks:before-cache', () => {\n Array.prototype.forEach.call(document.querySelectorAll(COMPONENT_SELECTOR), (node) => {\n destroyTopicForm(node);\n });\n });\n})();\n\n\n","//= require thredded/core/thredded\n\nwindow.Thredded.hideSoftKeyboard = () => {\n const activeElement = document.activeElement;\n if (!activeElement || !activeElement.blur) return;\n activeElement.blur();\n};\n","//= require thredded/core/on_page_load\n\nwindow.Thredded.onPageLoad(() => {\n if ('Rails' in window) {\n window.Rails.refreshCSRFTokens();\n } else if ('jQuery' in window && 'rails' in window.jQuery) {\n window.jQuery.rails.refreshCSRFTokens();\n }\n});\n","/**\n * Copyright (c) 2016 hustcc\n * License: MIT\n * Version: v3.0.2\n * https://github.com/hustcc/timeago.js\n**/\n/* jshint expr: true */\n!function (root, factory) {\n root.timeago = factory(root);\n}(window,\nfunction () {\n var indexMapEn = 'second_minute_hour_day_week_month_year'.split('_'),\n indexMapZh = '秒_分钟_小时_天_周_月_年'.split('_'),\n // build-in locales: en & zh_CN\n locales = {\n 'en': function(number, index) {\n if (index === 0) return ['just now', 'right now'];\n var unit = indexMapEn[parseInt(index / 2)];\n if (number > 1) unit += 's';\n return [number + ' ' + unit + ' ago', 'in ' + number + ' ' + unit];\n },\n 'zh_CN': function(number, index) {\n if (index === 0) return ['刚刚', '片刻后'];\n var unit = indexMapZh[parseInt(index / 2)];\n return [number + unit + '前', number + unit + '后'];\n }\n },\n // second, minute, hour, day, week, month, year(365 days)\n SEC_ARRAY = [60, 60, 24, 7, 365/7/12, 12],\n SEC_ARRAY_LEN = 6,\n // ATTR_DATETIME = 'datetime',\n ATTR_DATA_TID = 'data-tid',\n timers = {}; // real-time render timers\n\n // format Date / string / timestamp to Date instance.\n function toDate(input) {\n if (input instanceof Date) return input;\n if (!isNaN(input)) return new Date(toInt(input));\n if (/^\\d+$/.test(input)) return new Date(toInt(input));\n input = (input || '').trim().replace(/\\.\\d+/, '') // remove milliseconds\n .replace(/-/, '/').replace(/-/, '/')\n .replace(/(\\d)T(\\d)/, '$1 $2').replace(/Z/, ' UTC') // 2017-2-5T3:57:52Z -> 2017-2-5 3:57:52UTC\n .replace(/([\\+\\-]\\d\\d)\\:?(\\d\\d)/, ' $1$2'); // -04:00 -> -0400\n return new Date(input);\n }\n // change f into int, remove decimal. Just for code compression\n function toInt(f) {\n return parseInt(f);\n }\n // format the diff second to *** time ago, with setting locale\n function formatDiff(diff, locale, defaultLocale) {\n // if locale is not exist, use defaultLocale.\n // if defaultLocale is not exist, use build-in `en`.\n // be sure of no error when locale is not exist.\n locale = locales[locale] ? locale : (locales[defaultLocale] ? defaultLocale : 'en');\n // if (! locales[locale]) locale = defaultLocale;\n var i = 0,\n agoin = diff < 0 ? 1 : 0, // timein or timeago\n total_sec = diff = Math.abs(diff);\n\n for (; diff >= SEC_ARRAY[i] && i < SEC_ARRAY_LEN; i++) {\n diff /= SEC_ARRAY[i];\n }\n diff = toInt(diff);\n i *= 2;\n\n if (diff > (i === 0 ? 9 : 1)) i += 1;\n return locales[locale](diff, i, total_sec)[agoin].replace('%s', diff);\n }\n // calculate the diff second between date to be formated an now date.\n function diffSec(date, nowDate) {\n nowDate = nowDate ? toDate(nowDate) : new Date();\n return (nowDate - toDate(date)) / 1000;\n }\n /**\n * nextInterval: calculate the next interval time.\n * - diff: the diff sec between now and date to be formated.\n *\n * What's the meaning?\n * diff = 61 then return 59\n * diff = 3601 (an hour + 1 second), then return 3599\n * make the interval with high performace.\n **/\n function nextInterval(diff) {\n var rst = 1, i = 0, d = Math.abs(diff);\n for (; diff >= SEC_ARRAY[i] && i < SEC_ARRAY_LEN; i++) {\n diff /= SEC_ARRAY[i];\n rst *= SEC_ARRAY[i];\n }\n // return leftSec(d, rst);\n d = d % rst;\n d = d ? rst - d : rst;\n return Math.ceil(d);\n }\n // get the datetime attribute, `data-timeagp` / `datetime` are supported.\n function getDateAttr(node) {\n return getAttr(node, 'data-timeago') || getAttr(node, 'datetime');\n }\n // get the node attribute, native DOM and jquery supported.\n function getAttr(node, name) {\n if(node.getAttribute) return node.getAttribute(name); // native\n if(node.attr) return node.attr(name); // jquery\n }\n // set the node attribute, native DOM and jquery supported.\n function setTidAttr(node, val) {\n if(node.setAttribute) return node.setAttribute(ATTR_DATA_TID, val); // native\n if(node.attr) return node.attr(ATTR_DATA_TID, val); // jquery\n }\n // get the timer id of node.\n // remove the function, can save some bytes.\n // function getTidFromNode(node) {\n // return getAttr(node, ATTR_DATA_TID);\n // }\n /**\n * timeago: the function to get `timeago` instance.\n * - nowDate: the relative date, default is new Date().\n * - defaultLocale: the default locale, default is en. if your set it, then the `locale` parameter of format is not needed of you.\n *\n * How to use it?\n * var timeagoLib = require('timeago.js');\n * var timeago = timeagoLib(); // all use default.\n * var timeago = timeagoLib('2016-09-10'); // the relative date is 2016-09-10, so the 2016-09-11 will be 1 day ago.\n * var timeago = timeagoLib(null, 'zh_CN'); // set default locale is `zh_CN`.\n * var timeago = timeagoLib('2016-09-10', 'zh_CN'); // the relative date is 2016-09-10, and locale is zh_CN, so the 2016-09-11 will be 1天前.\n **/\n function Timeago(nowDate, defaultLocale) {\n this.nowDate = nowDate;\n // if do not set the defaultLocale, set it with `en`\n this.defaultLocale = defaultLocale || 'en'; // use default build-in locale\n // for dev test\n // this.nextInterval = nextInterval;\n }\n // what the timer will do\n Timeago.prototype.doRender = function(node, date, locale) {\n var diff = diffSec(date, this.nowDate),\n self = this,\n tid;\n // delete previously assigned timeout's id to node\n node.innerHTML = formatDiff(diff, locale, this.defaultLocale);\n // waiting %s seconds, do the next render\n timers[tid = setTimeout(function() {\n self.doRender(node, date, locale);\n delete timers[tid];\n }, Math.min(nextInterval(diff) * 1000, 0x7FFFFFFF))] = 0; // there is no need to save node in object.\n // set attribute date-tid\n setTidAttr(node, tid);\n };\n /**\n * format: format the date to *** time ago, with setting or default locale\n * - date: the date / string / timestamp to be formated\n * - locale: the formated string's locale name, e.g. en / zh_CN\n *\n * How to use it?\n * var timeago = require('timeago.js')();\n * timeago.format(new Date(), 'pl'); // Date instance\n * timeago.format('2016-09-10', 'fr'); // formated date string\n * timeago.format(1473473400269); // timestamp with ms\n **/\n Timeago.prototype.format = function(date, locale) {\n return formatDiff(diffSec(date, this.nowDate), locale, this.defaultLocale);\n };\n /**\n * render: render the DOM real-time.\n * - nodes: which nodes will be rendered.\n * - locale: the locale name used to format date.\n *\n * How to use it?\n * var timeago = require('timeago.js')();\n * // 1. javascript selector\n * timeago.render(document.querySelectorAll('.need_to_be_rendered'));\n * // 2. use jQuery selector\n * timeago.render($('.need_to_be_rendered'), 'pl');\n *\n * Notice: please be sure the dom has attribute `datetime`.\n **/\n Timeago.prototype.render = function(nodes, locale) {\n if (nodes.length === undefined) nodes = [nodes];\n for (var i = 0, len = nodes.length; i < len; i++) {\n this.doRender(nodes[i], getDateAttr(nodes[i]), locale); // render item\n }\n };\n /**\n * setLocale: set the default locale name.\n *\n * How to use it?\n * var timeago = require('timeago.js')();\n * timeago.setLocale('fr');\n **/\n Timeago.prototype.setLocale = function(locale) {\n this.defaultLocale = locale;\n };\n /**\n * timeago: the function to get `timeago` instance.\n * - nowDate: the relative date, default is new Date().\n * - defaultLocale: the default locale, default is en. if your set it, then the `locale` parameter of format is not needed of you.\n *\n * How to use it?\n * var timeagoFactory = require('timeago.js');\n * var timeago = timeagoFactory(); // all use default.\n * var timeago = timeagoFactory('2016-09-10'); // the relative date is 2016-09-10, so the 2016-09-11 will be 1 day ago.\n * var timeago = timeagoFactory(null, 'zh_CN'); // set default locale is `zh_CN`.\n * var timeago = timeagoFactory('2016-09-10', 'zh_CN'); // the relative date is 2016-09-10, and locale is zh_CN, so the 2016-09-11 will be 1天前.\n **/\n function timeagoFactory(nowDate, defaultLocale) {\n return new Timeago(nowDate, defaultLocale);\n }\n /**\n * register: register a new language locale\n * - locale: locale name, e.g. en / zh_CN, notice the standard.\n * - localeFunc: the locale process function\n *\n * How to use it?\n * var timeagoFactory = require('timeago.js');\n *\n * timeagoFactory.register('the locale name', the_locale_func);\n * // or\n * timeagoFactory.register('pl', require('timeago.js/locales/pl'));\n **/\n timeagoFactory.register = function(locale, localeFunc) {\n locales[locale] = localeFunc;\n };\n\n /**\n * cancel: cancels one or all the timers which are doing real-time render.\n *\n * How to use it?\n * For canceling all the timers:\n * var timeagoFactory = require('timeago.js');\n * var timeago = timeagoFactory();\n * timeago.render(document.querySelectorAll('.need_to_be_rendered'));\n * timeagoFactory.cancel(); // will stop all the timers, stop render in real time.\n *\n * For canceling single timer on specific node:\n * var timeagoFactory = require('timeago.js');\n * var timeago = timeagoFactory();\n * var nodes = document.querySelectorAll('.need_to_be_rendered');\n * timeago.render(nodes);\n * timeagoFactory.cancel(nodes[0]); // will clear a timer attached to the first node, stop render in real time.\n **/\n timeagoFactory.cancel = function(node) {\n var tid;\n // assigning in if statement to save space\n if (node) {\n tid = getAttr(node, ATTR_DATA_TID); // get the timer of DOM node(native / jq).\n if (tid) {\n clearTimeout(tid);\n delete timers[tid];\n }\n } else {\n for (tid in timers) clearTimeout(tid);\n timers = {};\n }\n };\n\n return timeagoFactory;\n});\n"],"sourceRoot":""}