{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/packs/thredded_imports.js.erb","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/core/thredded.es6","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/core/on_page_load.es6","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/spoilers.es6","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/core/serialize_form.es6","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/core/debounce.es6","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/preview_area.es6","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/currently_online.es6","webpack:////usr/local/bundle/gems/thredded-0.16.16/vendor/assets/javascripts/textcomplete.min.js","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/core/escape_html.es6","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/user_textcomplete.es6","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/mention_autocompletion.es6","webpack:////usr/local/bundle/gems/thredded-0.16.16/vendor/assets/javascripts/autosize.js","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/topic_form.es6","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/post_form.es6","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/turboforms.es6","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/topics.es6","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/flash_messages.es6","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/time_stamps.es6","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/users_select.es6","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/user_preferences_form.es6","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/submit_hotkey.es6","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/quote_post.es6","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/core/csrf_tokens.es6","webpack:////usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/core/hide_soft_keyboard.es6","webpack:////usr/local/bundle/gems/timeago_js-3.0.2.2/assets/javascripts/timeago.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.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","window","Thredded","isTurbolinks","Turbolinks","supported","isTurbolinks5","onPageLoadFiredOnce","pageLoadCallbacks","triggerOnPageLoad","forEach","callback","onPageLoad","push","DOMContentLoadedFired","controller","lastRenderedLocation","document","addEventListener","OPEN_CLASS","spoilers","init","root","Array","querySelectorAll","node","evt","stopPropagation","this","toggle","currentTarget","event","preventDefault","isOpen","classList","contains","setAttribute","firstElementChild","lastElementChild","serializeForm","form","map","e","encodeURIComponent","join","debounce","func","wait","immediate","timeoutId","context","args","arguments","later","apply","callNow","clearTimeout","setTimeout","ThreddedPreviewArea","constructor","textarea","preview","querySelector","previewPost","previewUrl","getAttribute","prevValue","onChange","updatePreview","requestId","request","XMLHttpRequest","open","method","setRequestHeader","onload","status","onPreviewResponse","responseText","send","data","style","display","innerHTML","EXPANDED_CLASS","handleMouseEnter","target","add","handleMouseLeave","remove","handleTouchStart","initCurrentlyOnline","configurable","default","length","writable","TypeError","term","strategy","replace","isArray","matchText","parseInt","slice","index","template","fn","once","_events","_eventsCount","__proto__","eventNames","getOwnPropertySymbols","concat","listeners","a","emit","u","h","removeListener","f","on","removeAllListeners","off","addListener","setMaxListeners","prefixed","EventEmitter","props","cache","searchWithCache","search","match","body","createElement","fontSize","fontFamily","padding","appendChild","HTMLTextAreaElement","rows","offsetHeight","removeChild","calculateElementOffset","getBoundingClientRect","ownerDocument","defaultView","documentElement","top","pageYOffset","left","pageXOffset","clientTop","clientLeft","getLineHeightPx","getComputedStyle","lineHeight","charCodeAt","parseFloat","nodeName","calculateLineHeightPx","createCustomEvent","CustomEvent","cancelable","detail","createEvent","initCustomEvent","ReferenceError","getPrototypeOf","setPrototypeOf","Error","code","beforeCursor","getBeforeCursor","keyCode","ctrlKey","Textcomplete","editors","Textarea","Function","eval","v","y","g","b","completer","isQueryInFlight","nextPendingQuery","dropdown","editor","options","startListening","destroy","stopListening","deactivate","registerStrategy","run","searchResults","render","getCursorOffset","trigger","up","down","getActiveItem","select","shown","defaultPrevented","applySearchResult","searchResult","handleMove","handleEnter","handleEsc","handleChange","handleSelect","handleHit","strategies","extractQuery","execute","handleQueryResult","build","items","activeItem","footer","header","maxCount","el","className","rotate","placement","itemOptions","item","keys","position","zIndex","parentNode","clear","_el","setStrategyId","renderEdge","append","show","setOffset","hide","moveActiveItem","createDocumentFragment","appended","offsetWidth","clientWidth","right","isPlacementTop","bottom","clientHeight","next","prev","activate","id","removeAttribute","DEFAULT_CLASS_NAME","active","activeClassName","removeEventListener","onClick","onMouseover","siblings","getOwnPropertyDescriptor","getAfterCursor","focus","dispatchEvent","Event","getElScroll","getCursorPosition","dir","selectionStart","selectionEnd","substring","scrollTop","scrollLeft","emitChangeEvent","getCode","emitMoveEvent","emitEnterEvent","emitEscEvent","onInput","onKeydown","activeElement","Math","min","setSelectionRange","execCommand","bubbles","initEvent","debug","currentStyle","whiteSpace","wordWrap","visibility","scrollHeight","height","overflowY","overflow","textContent","offsetTop","borderTopWidth","offsetLeft","borderLeftWidth","backgroundColor","mozInnerScreenX","getCaretCoordinates","escapeHtml","text","UserTextcomplete","DROPDOWN_CLASS_NAME","formatUser","avatar_url","display_name","searchFn","url","autocompleteMinLength","JSON","parse","results","getElementsByClassName","ThreddedMentionAutocompletion","MATCH_RE","DROPDOWN_MAX_COUNT","textcomplete","register","prefix","test","global","mod","values","Map","has","indexOf","set","delete","splice","assign","ta","heightOffset","cachedHeight","pageResize","update","resize","overflowX","boxSizing","paddingTop","paddingBottom","borderBottomWidth","isNaN","changeOverflow","width","getParentOverflows","arr","Element","overflows","docTop","styleHeight","round","computed","actualHeight","err","methods","autosize","x","factory","COMPONENT_SELECTOR","CONTENT_TEXTAREA_SELECTOR","COMPACT_CLASS","toggleExpanded","expand","title","blur","listener","initTopicForm","destroyTopicForm","initPostForm","handleSubmit","visit","action","hideSoftKeyboard","getAncestorTag","ancestorTagName","tagName","initTopicsList","topicsList","postsPerPage","isPrivateTopics","unreadFollowedCountElement","link","topic","pageNumber","href","numPosts","ceil","totalPages","hasAttribute","count","navItem","getUnreadNavItem","parentElement","toLocaleString","timeago","threddedContainer","cancel","jQuery","$","allowFutureWas","settings","allowFuture","parseNames","result","current","currentIndex","inQuoted","inName","char","charAt","UsersSelect","names","matchData","filter","initUsersSelect","BOUND_MESSAGEBOARD_NAME","UPDATE_ON_CHANGE_NAME","MessageboardPreferenceBinding","genericCheckboxName","messageboardCheckboxName","messageboardCheckbox","rememberMessageboardChecked","genericCheckbox","updateMessageboardCheckbox","messageboardCheckedWas","checked","enabled","disabled","UpdateOnChange","sourceElement","targetName","UserPreferencesForm","element","isSubmitHotkey","submitButton","click","button","altKey","metaKey","shiftKey","getElementById","scrollIntoView","onSuccess","onError","statusText","onerror","fetchReply","replyText","autosizeUpdateEvent","errorMessage","Rails","refreshCSRFTokens","rails","indexMapEn","split","indexMapZh","locales","number","unit","SEC_ARRAY","SEC_ARRAY_LEN","ATTR_DATA_TID","timers","toDate","input","Date","toInt","trim","formatDiff","diff","locale","defaultLocale","agoin","total_sec","abs","diffSec","date","nowDate","nextInterval","rst","getDateAttr","getAttr","attr","setTidAttr","val","Timeago","timeagoFactory","doRender","tid","self","format","nodes","undefined","len","setLocale","localeFunc","webpackPolyfill","deprecate","paths","children","_typeof","iterator","obj","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","content","cspNonce","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","setData","csrfParam","csrfToken","meta","CSRFProtection","xhr","token","param","fire","params","stopEverything","stopImmediatePropagation","delegate","eventType","handler","AcceptHeaders","createXHR","prepareOptions","processResponse","html","xml","json","script","ajax","response","getResponseHeader","floor","success","error","complete","beforeSend","readyState","OPENED","location","type","toUpperCase","dataType","accept","done","crossDomain","withCredentials","onreadystatechange","DONE","parser","head","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","inputs","elements","option","selected","formElements","allowAction","handleConfirm","confirm","message","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","isRemote","handleRemote","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","ajaxPrefilter","originalOptions","start","_rails_loaded"],"mappings":"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","file":"js/thredded_imports-52e4b5c1bdd87aa95aa1.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 183);\n","import \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/core/thredded.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/core/on_page_load.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/spoilers.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/core/serialize_form.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/core/debounce.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/preview_area.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/currently_online.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/vendor/assets/javascripts/textcomplete.min.js\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/dependencies/textcomplete.js\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/core/escape_html.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/user_textcomplete.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/mention_autocompletion.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/vendor/assets/javascripts/autosize.js\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/dependencies/autosize.js\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/topic_form.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/post_form.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/turboforms.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/topics.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/flash_messages.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/time_stamps.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/users_select.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/user_preferences_form.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/submit_hotkey.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/components/quote_post.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/core/csrf_tokens.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/core/hide_soft_keyboard.es6\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/thredded.es6\";\nimport \"@rails/ujs\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/dependencies/ujs.js\";\nimport \"/usr/local/bundle/gems/timeago_js-3.0.2.2/assets/javascripts/timeago.js\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/dependencies/timeago.js\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/app/assets/javascripts/thredded/dependencies.js\";\nimport \"/usr/local/bundle/gems/thredded-0.16.16/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\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","//= 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","/** 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-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//= 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// 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/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","(() => {\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(() => {\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","//= 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/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(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(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/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","//= require thredded/core/thredded\n\nwindow.Thredded.hideSoftKeyboard = () => {\n const activeElement = document.activeElement;\n if (!activeElement || !activeElement.blur) return;\n activeElement.blur();\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","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\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _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:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) 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);"],"sourceRoot":""}