{"version":3,"file":"debounce-BUC-CUoC.js","sources":["../../../node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","../../../app/javascript/src/fetch-rails.ts","../../../app/javascript/src/lazy-video.ts","../../../app/javascript/src/microlight.ts","../../../node_modules/timeago.js/esm/lang/en_US.js","../../../node_modules/timeago.js/esm/lang/zh_CN.js","../../../node_modules/timeago.js/esm/register.js","../../../node_modules/timeago.js/esm/utils/date.js","../../../node_modules/timeago.js/esm/index.js","../../../app/javascript/src/debounce.ts"],"sourcesContent":["/*\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\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\n }).call(this);\n }).call(context);\n\n var Rails = context.Rails;\n\n (function() {\n (function() {\n var nonce;\n\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\n }).call(this);\n (function() {\n var expando, m;\n\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 return element[expando][key] = value;\n };\n\n Rails.$ = function(selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n\n }).call(this);\n (function() {\n var $, csrfParam, csrfToken;\n\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 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 if ((token != null) && (param != null)) {\n return $('form input[name=\"' + param + '\"]').forEach(function(input) {\n return input.value = token;\n });\n }\n };\n\n }).call(this);\n (function() {\n var CustomEvent, fire, matches, preventDefault;\n\n matches = Rails.matches;\n\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function(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 CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n CustomEvent.prototype.preventDefault = function() {\n var result;\n result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\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 while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n\n }).call(this);\n (function() {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n\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 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 return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n if ((options.beforeSend != null) && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\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 if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n return options;\n };\n\n createXHR = function(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function() {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n };\n\n processResponse = function(response, type) {\n var parser, script;\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 try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\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 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\n }).call(this);\n (function() {\n var matches, toArray;\n\n matches = Rails.matches;\n\n toArray = function(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function(element, additionalParam) {\n var inputs, params;\n inputs = [element];\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n params = [];\n inputs.forEach(function(input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, 'fieldset[disabled] *')) {\n return;\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 if (additionalParam) {\n params.push(additionalParam);\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\n }).call(this);\n (function() {\n var allowAction, fire, stopEverything;\n\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(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n if (!message) {\n return true;\n }\n answer = false;\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n callback = fire(element, 'confirm:complete', [answer]);\n }\n return answer && callback;\n };\n\n }).call(this);\n (function() {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n\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 if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function(e) {\n var element;\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n element = e.target;\n } else {\n element = e;\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 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(element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function(element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\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 element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, 'ujs:enable-with', null);\n }\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function(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\n }).call(this);\n (function() {\n var stopEverything;\n\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 if (!method) {\n return;\n }\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n if ((csrfParam != null) && (csrfToken != null) && !Rails.isCrossDomain(href)) {\n formContent += \"\";\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\n }).call(this);\n (function() {\n var ajax, fire, getData, isCrossDomain, isRemote, matches, serializeElement, setData, stopEverything,\n slice = [].slice;\n\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(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 if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\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 if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\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 ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function(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() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function() {\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 if (!form) {\n return;\n }\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\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 if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n\n }).call(this);\n (function() {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n\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 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 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\n }).call(this);\n }).call(this);\n\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);\n","import Rails from \"@rails/ujs\"\n\nexport default class FetchRails {\n url: string\n body: string | object\n defaultParams: {\n headers: { [key: string]: string }\n credentials: RequestCredentials\n }\n\n constructor(url: string, body?: string | object, headers = {}) {\n this.url = url\n this.body = body || \"\"\n this.defaultParams = {\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": Rails.csrfToken() || \"\",\n ...headers\n },\n credentials: \"same-origin\"\n }\n }\n\n async request(method = \"get\", { timeout = 10000, returnResponse = false, parameters = {} } = {}): Promise {\n const timeoutController = new AbortController()\n const timeoutID = setTimeout(() => timeoutController.abort(), timeout)\n\n if (\"headers\" in parameters && typeof parameters.headers === \"object\") {\n parameters[\"headers\"] = { ...this.defaultParams.headers, ...parameters.headers }\n }\n\n const finalParams = {\n method: method,\n ...this.defaultParams,\n ...parameters,\n signal: timeoutController.signal\n }\n const response = await fetch(this.url, finalParams)\n clearTimeout(timeoutID)\n if (returnResponse) return await response\n if (!response.ok) throw new Error(`${response.status}: ${response.statusText}.`)\n\n const data = await response.text()\n return data.toString()\n }\n\n async get({timeout = 10000, returnResponse = false, parameters = {}} = {}): Promise {\n return this.request(\"get\", { timeout, returnResponse, parameters })\n }\n\n async post({timeout = 10000, returnResponse = false, parameters = {}, method = \"post\"} = {}): Promise {\n parameters = {...parameters, body: JSON.stringify(this.body)}\n return this.request(method, { timeout, returnResponse, parameters })\n }\n}\n","export function bind(target: HTMLElement | Document = document): void {\n const elements = target.querySelectorAll(\"[data-role~='lazy-video']\")\n\n const observer = new IntersectionObserver(entries => {\n entries.forEach(entry => {\n if (!entry.isIntersecting) return\n\n const element = entry.target as HTMLVideoElement\n\n element.src = element.dataset.src || \"\"\n if (element.dataset.autoplay === \"true\") element.play()\n observer.unobserve(element)\n })\n })\n\n elements.forEach(element => observer.observe(element))\n}\n","/* eslint-disable */\n// @ts-nocheck\n\n/**\n * @fileoverview microlight - syntax highlightning library\n * @version 0.0.7\n *\n * @license MIT, see http://github.com/asvd/microlight\n * @copyright 2016 asvd \n *\n * Code structure aims at minimizing the compressed library size\n */\n\nexport async function reset(className = \"\"): Promise {\n // for better compression\n var _window = window,\n _document = document,\n appendChild = 'appendChild',\n test = 'test',\n brace = ')',\n\n i,\n j,\n microlighted,\n el; // current microlighted element to run through\n\n // nodes to highlight\n microlighted = _document.getElementsByClassName(className || 'microlight');\n\n for (i = 0; el = microlighted[i++];) {\n const fullText = el.textContent\n const splitText = fullText.split(/(\\n)/)\n const batchedArray = []\n\n // Merge each 100 lines in to a single string\n while (splitText.length > 0) {\n batchedArray.push(splitText.splice(0, 100).join(\"\"))\n }\n\n el.innerHTML = \"\"\n\n for (j = 0; j < batchedArray.length; j++) {\n // Wait a bit to give the previous line proper time to compute\n await new Promise(resolve => setTimeout(resolve))\n\n var text = batchedArray[j],\n pos = 0, // current position\n next1 = batchedArray[j][0], // next character\n chr = 1, // current character\n prev1, // previous character\n prev2, // the one before the previous\n loop = 0,\n token = '', // (and cleaning the node)\n\n // current token type:\n // 0: anything else (whitespaces / newlines)\n // 1: operator or brace\n // 2: closing braces (after which '/' is division not regex)\n // 3: (key)word\n // 4: numbers\n // 5: string starting with \"\n // 6: string starting with '\n // 7: xml comment \n // 8: multiline comment /* */\n // 9: single-line comment starting with two slashes //\n // 10: single-line comment starting with hash #\n tokenType = 0,\n\n // kept to determine between regex and division\n lastTokenType,\n // flag determining if token is multi-character\n multichar,\n node\n\n // running through characters and highlighting\n while (prev2 = prev1,\n // escaping if needed (with except for comments)\n // pervious character will not be therefore\n // recognized as a token finalize condition\n prev1 = tokenType < 6 && prev1 == '\\\\' ? 1 : chr\n ) {\n if (loop > batchedArray[j].length) break\n loop++\n\n chr = next1;\n next1 = batchedArray[j][++pos];\n multichar = token.length > 1;\n\n // checking if current token should be finalized\n if (!chr || // end of content\n // types 9-10 (single-line comments) end with a\n // newline\n (tokenType > 5 && chr == '\\n') ||\n [ // finalize conditions for other token types\n // 0: whitespaces\n /\\S/[test](chr), // merged together\n // 1: operators\n 1, // consist of a single character\n // 2: braces\n 1, // consist of a single character\n // 3: (key)word\n !/[$\\w]/[test](chr) || prev1 == '@' && multichar,\n // 4: number\n !/[$\\w]/[test](chr),\n // 5: string with \"\n prev1 == '\"' && multichar\n ][tokenType]\n ) {\n // appending the token to the result\n if (token) {\n // remapping token type into style\n // (some types are highlighted similarly)\n\n el[appendChild](\n node = _document.createElement('span')\n ).setAttribute('class', [\n // 0: not formatted\n \"\",\n // 1: keywords\n \"keyword\",\n // 2: punctuation\n \"punctuation\",\n // 3: strings and regexps\n \"string\",\n // 4: comments\n \"comment\",\n // 5: number\n \"number\"\n ][\n // not formatted\n !tokenType ? 0 :\n tokenType == 4 ? 5 :\n // punctuation\n tokenType <= 2 ? 2 :\n // comments\n tokenType >= 6 ? 4 :\n // regex and strings\n tokenType >= 5 ? 3 :\n // otherwise tokenType == 3, (key)word\n // (1 if regexp matches, 0 otherwise)\n + /^(variables|subroutines|rule|disabled|event|actions|conditions|global|player|settings|@\\w+)$/[test](token)\n ]);\n\n node[appendChild](_document.createTextNode(token));\n }\n\n // saving the previous token type\n // (skipping whitespaces and comments)\n lastTokenType =\n (tokenType && tokenType < 6) ?\n tokenType : lastTokenType;\n\n // initializing a new token\n token = '';\n\n // determining the new token type (going up the\n // list until matching a token type start\n // condition)\n tokenType = 9;\n while (![\n 1, // 0: whitespace\n // 1: operator or braces\n /[\\/{}[(\\-+*=<>:;|\\\\.,?!&~]/[test](chr),\n /[\\])]/[test](chr), // 2: closing brace\n chr === '@' || /[$\\w]/[test](chr),// 3: (key)word\n /^\\d+$/[test](chr), // 4: number\n chr == '\"', // 5: string with \"\n (chr == '/' && next1 == '/') // 6: multilnes comment\n ][--tokenType]);\n }\n\n token += chr;\n }\n }\n }\n}\n","var EN_US = ['second', 'minute', 'hour', 'day', 'week', 'month', 'year'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['just now', 'right now'];\n var unit = EN_US[Math.floor(idx / 2)];\n if (diff > 1)\n unit += 's';\n return [diff + \" \" + unit + \" ago\", \"in \" + diff + \" \" + unit];\n}\n//# sourceMappingURL=en_US.js.map","var ZH_CN = ['秒', '分钟', '小时', '天', '周', '个月', '年'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['刚刚', '片刻后'];\n var unit = ZH_CN[~~(idx / 2)];\n return [diff + \" \" + unit + \"\\u524D\", diff + \" \" + unit + \"\\u540E\"];\n}\n//# sourceMappingURL=zh_CN.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\n/**\n * All supported locales\n */\nvar Locales = {};\n/**\n * register a locale\n * @param locale\n * @param func\n */\nexport var register = function (locale, func) {\n Locales[locale] = func;\n};\n/**\n * get a locale, default is en_US\n * @param locale\n * @returns {*}\n */\nexport var getLocale = function (locale) {\n return Locales[locale] || Locales['en_US'];\n};\n//# sourceMappingURL=register.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nvar SEC_ARRAY = [\n 60,\n 60,\n 24,\n 7,\n 365 / 7 / 12,\n 12,\n];\n/**\n * format Date / string / timestamp to timestamp\n * @param input\n * @returns {*}\n */\nexport function toDate(input) {\n if (input instanceof Date)\n return input;\n // @ts-ignore\n if (!isNaN(input) || /^\\d+$/.test(input))\n return new Date(parseInt(input));\n input = (input || '')\n // @ts-ignore\n .trim()\n .replace(/\\.\\d+/, '') // remove milliseconds\n .replace(/-/, '/')\n .replace(/-/, '/')\n .replace(/(\\d)T(\\d)/, '$1 $2')\n .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/**\n * format the diff second to *** time ago, with setting locale\n * @param diff\n * @param localeFunc\n * @returns\n */\nexport function formatDiff(diff, localeFunc) {\n /**\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 *\n * If `time in`, then 1\n * If `time ago`, then 0\n */\n var agoIn = diff < 0 ? 1 : 0;\n /**\n * Get absolute value of number (|diff| is non-negative) value of x\n * |diff| = diff if diff is positive\n * |diff| = -diff if diff is negative\n * |0| = 0\n */\n diff = Math.abs(diff);\n /**\n * Time in seconds\n */\n var totalSec = diff;\n /**\n * Unit of time\n */\n var idx = 0;\n for (; diff >= SEC_ARRAY[idx] && idx < SEC_ARRAY.length; idx++) {\n diff /= SEC_ARRAY[idx];\n }\n /**\n * Math.floor() is alternative of ~~\n *\n * The differences and bugs:\n * Math.floor(3.7) -> 4 but ~~3.7 -> 3\n * Math.floor(1559125440000.6) -> 1559125440000 but ~~1559125440000.6 -> 52311552\n *\n * More information about the performance of algebraic:\n * https://www.youtube.com/watch?v=65-RbBwZQdU\n */\n diff = Math.floor(diff);\n idx *= 2;\n if (diff > (idx === 0 ? 9 : 1))\n idx += 1;\n return localeFunc(diff, idx, totalSec)[agoIn].replace('%s', diff.toString());\n}\n/**\n * calculate the diff second between date to be formatted an now date.\n * @param date\n * @param relativeDate\n * @returns {number}\n */\nexport function diffSec(date, relativeDate) {\n var relDate = relativeDate ? toDate(relativeDate) : new Date();\n return (+relDate - +toDate(date)) / 1000;\n}\n/**\n * nextInterval: calculate the next interval time.\n * - diff: the diff sec between now and date to be formatted.\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 performance.\n **/\nexport function nextInterval(diff) {\n var rst = 1, i = 0, d = Math.abs(diff);\n for (; diff >= SEC_ARRAY[i] && i < SEC_ARRAY.length; i++) {\n diff /= SEC_ARRAY[i];\n rst *= SEC_ARRAY[i];\n }\n d = d % rst;\n d = d ? rst - d : rst;\n return Math.ceil(d);\n}\n//# sourceMappingURL=date.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nimport en_US from './lang/en_US';\nimport zh_CN from './lang/zh_CN';\nimport { register } from './register';\nregister('en_US', en_US);\nregister('zh_CN', zh_CN);\nexport { format } from './format';\nexport { render, cancel } from './realtime';\nexport { register };\n//# sourceMappingURL=index.js.map","export default function debounce any>(fun: T, wait = 50, immediate = false): (this: ThisParameterType, ...args: Parameters) => void {\n let timeout: ReturnType | null\n\n return function(this: ThisParameterType, ...args: Parameters): void {\n const later = (): any => {\n timeout = null\n if (!immediate) fun.apply(this, args)\n }\n\n const callNow = immediate && !timeout\n\n if (timeout) clearTimeout(timeout)\n timeout = setTimeout(later, wait)\n\n if (callNow) fun.apply(this, args)\n }\n}\n"],"names":["context","Rails","nonce","ref","expando","m","element","selector","key","value","$","csrfParam","csrfToken","meta","xhr","token","param","input","CustomEvent","fire","matches","preventDefault","event","params","evt","result","obj","name","data","e","eventType","handler","target","AcceptHeaders","CSRFProtection","createXHR","cspNonce","prepareOptions","processResponse","options","response","done","type","parser","script","url","originAnchor","urlAnchor","toArray","additionalParam","inputs","option","form","el","allowAction","stopEverything","message","answer","callback","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","formElements","getData","isXhrRedirect","setData","replacement","originalText","formContent","href","link","method","ajax","isCrossDomain","isRemote","serializeElement","slice","button","dataType","withCredentials","args","insignificantMetaClick","metaClick","nonPrimaryMouseClick","delegate","disableElement","enableElement","formSubmitButtonClick","handleConfirm","handleDisabledElement","handleMethod","handleRemote","loadCSPNonce","preventInsignificantClick","refreshCSRFTokens","originalOptions","module","this","FetchRails","body","headers","__publicField","timeout","returnResponse","parameters","timeoutController","timeoutID","finalParams","bind","elements","observer","entries","entry","reset","className","_document","appendChild","test","j","microlighted","splitText","batchedArray","resolve","pos","next1","chr","prev1","loop","tokenType","multichar","node","EN_US","en_US","diff","idx","unit","ZH_CN","zh_CN","Locales","register","locale","func","getLocale","SEC_ARRAY","toDate","formatDiff","localeFunc","agoIn","totalSec","diffSec","date","relativeDate","relDate","nextInterval","rst","i","d","debounce","fun","wait","immediate","later","callNow"],"mappings":"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","x_google_ignoreList":[0,4,5,6,7,8]}