{"version":3,"sources":["webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./node_modules/@stimulus/webpack-helpers/dist/index.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/@stimulus/core/dist/event_listener.js","webpack:///./node_modules/@stimulus/core/dist/dispatcher.js","webpack:///./node_modules/@stimulus/core/dist/action_descriptor.js","webpack:///./node_modules/@stimulus/core/dist/action.js","webpack:///./node_modules/@stimulus/core/dist/binding.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/element_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/attribute_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/string_map_observer.js","webpack:///./node_modules/@stimulus/multimap/dist/set_operations.js","webpack:///./node_modules/@stimulus/multimap/dist/multimap.js","webpack:///./node_modules/@stimulus/multimap/dist/indexed_multimap.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/token_list_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/value_list_observer.js","webpack:///./node_modules/@stimulus/core/dist/binding_observer.js","webpack:///./node_modules/@stimulus/core/dist/value_observer.js","webpack:///./node_modules/@stimulus/core/dist/context.js","webpack:///./node_modules/@stimulus/core/dist/inheritable_statics.js","webpack:///./node_modules/@stimulus/core/dist/blessing.js","webpack:///./node_modules/@stimulus/core/dist/module.js","webpack:///./node_modules/@stimulus/core/dist/definition.js","webpack:///./node_modules/@stimulus/core/dist/class_map.js","webpack:///./node_modules/@stimulus/core/dist/string_helpers.js","webpack:///./node_modules/@stimulus/core/dist/data_map.js","webpack:///./node_modules/@stimulus/core/dist/guide.js","webpack:///./node_modules/@stimulus/core/dist/selectors.js","webpack:///./node_modules/@stimulus/core/dist/target_set.js","webpack:///./node_modules/@stimulus/core/dist/scope.js","webpack:///./node_modules/@stimulus/core/dist/scope_observer.js","webpack:///./node_modules/@stimulus/core/dist/router.js","webpack:///./node_modules/@stimulus/core/dist/schema.js","webpack:///./node_modules/@stimulus/core/dist/application.js","webpack:///./node_modules/@stimulus/core/dist/class_properties.js","webpack:///./node_modules/@stimulus/core/dist/target_properties.js","webpack:///./node_modules/@stimulus/core/dist/value_properties.js","webpack:///./node_modules/@stimulus/core/dist/controller.js"],"names":["this","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","call","nonce","loadCSPNonce","ref","document","querySelector","content","cspNonce","m","Element","prototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","element","getData","key","setData","value","$","Array","slice","querySelectorAll","csrfParam","csrfToken","meta","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","forEach","input","CustomEvent","fire","preventDefault","window","event","params","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","result","defaultPrevented","Object","defineProperty","get","obj","name","data","dispatchEvent","stopEverything","e","target","stopPropagation","stopImmediatePropagation","delegate","eventType","handler","addEventListener","parentNode","AcceptHeaders","createXHR","prepareOptions","processResponse","text","html","xml","json","script","ajax","options","response","responseText","getResponseHeader","Math","floor","status","success","statusText","error","complete","beforeSend","readyState","XMLHttpRequest","OPENED","send","url","location","href","type","toUpperCase","indexOf","dataType","accept","done","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","match","JSON","parse","createElement","setAttribute","head","appendChild","removeChild","DOMParser","replace","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","inputs","elements","disabled","option","selected","push","checked","map","encodeURIComponent","join","formElements","form","filter","el","allowAction","handleConfirm","confirm","message","answer","callback","getAttribute","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","removeEventListener","handleMethod","formContent","link","method","action","style","display","body","click","isRemote","handleRemote","button","enctype","FormData","append","args","arguments","length","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","Error","ajaxPrefilter","originalOptions","start","_rails_loaded","setTimeout","module","exports","createCommonjsModule","fn","sparkMd5","factory","undefined","hex_chr","md5cycle","x","k","a","b","c","d","md5blk","s","i","md5blks","charCodeAt","md5blk_array","md51","tail","tmp","lo","hi","n","state","substring","toString","parseInt","md51_array","subarray","Uint8Array","rhex","j","hex","toUtf8","str","test","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","String","fromCharCode","apply","concatenateArrayBuffers","first","second","byteLength","set","buffer","hexToBinaryString","bytes","substr","SparkMD5","reset","clamp","val","max","min","from","to","num","targetArray","sourceArray","begin","end","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","destroy","hashBinary","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","ceil","size","chunkIndex","create","_this","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","getMetaValue","findElement","findElements","root","toArray$1","eventInit","initEvent","isArray","BlobRecord","checksum","attributes","filename","content_type","byte_size","responseType","requestDidLoad","requestDidError","stringify","blob","direct_upload","directUploadData","toJSON","_xhr","BlobUpload","_blob$directUploadDat","headers","id","DirectUpload","notify","upload","object","methodName","_len","messages","_key","DirectUploadController","directUpload","dispatch","hiddenInput","insertAdjacentElement","dispatchError","signed_id","progress","loaded","total","alert","_this2","uploadRequestDidProgress","inputSelector","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","controller","shift","processingAttribute","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","tagName","handleFormSubmissionEvent","hasAttribute","disable","removeAttribute","enable","submitForm","focus","delete","autostart","ActiveStorage","definitionsFromContext","context","keys","identifier","logicalName","identifierForContextKey","controllerConstructor","default","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","g","Function","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","EventListener","eventTarget","eventName","eventOptions","unorderedBindings","Set","connect","disconnect","bindingConnected","add","bindingDisconnected","handleEvent","extendedEvent","stopImmediatePropagation_1","assign","immediatePropagationStopped","extendEvent","_i","_a","bindings","sort","left","right","leftIndex","index","rightIndex","Dispatcher","application","eventListenerMaps","Map","eventListeners","eventListener","stop","values","reduce","fetchEventListenerForBinding","handleError","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","cacheKey","createEventListener","parts","descriptorPattern","parseEventTarget","eventTargetName","Action","toLowerCase","defaultEventNames","getDefaultEventNameForElement","forToken","descriptorString","trim","split","eventNameSuffix","Binding","willBeInvokedByEvent","invokeWithEvent","contains","scope","containsElement","ElementObserver","mutationObserver","MutationObserver","mutations","processMutations","observe","childList","subtree","refresh","takeRecords","matchElementsInTree","has","removeElement","_b","_c","addElement","mutations_1","mutation","processMutation","processAttributeChange","attributeName","processRemovedNodes","removedNodes","processAddedNodes","addedNodes","node","elementAttributeChanged","matchElement","nodes","elementFromNode","processTree","elementIsActive","tree","processor","nodeType","Node","ELEMENT_NODE","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","StringMapObserver","stringMap","knownAttributeNames","refreshAttribute","getStringMapKeyForAttribute","stringMapKeyAdded","stringMapValueChanged","stringMapKeyRemoved","currentAttributeNames","recordedAttributeNames","attribute","fetch","del","prune","extendStatics","Multimap","valuesByKey","hasKey","hasValue","some","getValuesForKey","getKeysForValue","__extends","setPrototypeOf","__proto__","p","hasOwnProperty","__","constructor","_super","IndexedMultimap","keysByValue","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","_","findIndex","tokensAreEqual","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","connectAction","disconnectAction","clear","ValueObserver","receiver","stringMapObserver","valueDescriptorMap","invokeChangedCallbacksForDefaultValues","attributeValue","invokeChangedCallbackForValue","valueDescriptors","name_1","defaultValue","Context","bindingObserver","dispatcher","valueObserver","initialize","parentElement","readInheritableStaticArrayValues","propertyName","ancestors","getAncestorsForConstructor","definition","getOwnStaticArrayValues","readInheritableStaticObjectPairs","pairs","getOwnStaticObjectPairs","getPrototypeOf","reverse","__spreadArrays","il","r","jl","bless","properties","shadowConstructor","extend","shadowProperties","getOwnKeys","shadowingDescriptor","getOwnPropertyDescriptor","getShadowedDescriptor","getShadowProperties","shadow","blessedProperties","blessing","getBlessedProperties","getOwnPropertySymbols","getOwnPropertyNames","extendWithReflect","extended","_newTarget","Reflect","construct","Module","blessDefinition","contextsByScope","connectedContexts","connectContextForScope","fetchContextForScope","disconnectContextForScope","ClassMap","getDataKey","getAttributeName","getAttributeNameForKey","camelize","char","capitalize","charAt","dasherize","DataMap","Guide","logger","warnedKeysByObject","warn","warnedKeys","attributeValueContainsToken","TargetSet","targetName","find","targetNames","findTarget","findLegacyTarget","findAll","targets","findAllTargets","findAllLegacyTargets","getSelectorForTargetName","findAllElements","getLegacySelectorForTargetName","deprecate","targetDescriptor","targetAttribute","guide","Scope","classes","closest","controllerSelector","queryElements","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","createScopeForElementAndIdentifier","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","modules","contexts","loadDefinition","unloadIdentifier","connectModule","disconnectModule","getContextForElementAndIdentifier","defaultSchema","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","then","__generator","f","y","t","label","sent","trys","ops","verb","Symbol","iterator","v","op","pop","Application","documentElement","console","router","register","load","rest","definitions","unload","identifiers","getControllerForElementAndIdentifier","ClassPropertiesBlessing","classDefinition","TargetPropertiesBlessing","targetDefinition","ValuePropertiesBlessing","valueDefinitionPairs","propertyDescriptorMap","valueDefinitionPair","valueDescriptor","parseValueDefinitionPair","read","readers","write","writers","propertiesForValueDefinitionPair","typeConstant","Boolean","Number","parseValueTypeConstant","defaultValuesByType","valueDescriptorForTokenAndType","boolean","number","string","parseFloat","writeJSON","Controller","blessings"],"mappings":"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","file":"js/vendors~admin~application-f2ad952918879886b2e7.chunk.js","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 (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 (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 () {\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 (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 (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 (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 (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 (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 (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 (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 (form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function (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 (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\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 (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 (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 (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\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 === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","(function (global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function rhex(n) {\n var s = \"\",\n j;\n\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n });\n });\n\n var classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\n\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\n\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n\n var id = 0;\n\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n\n return object[methodName].apply(object, messages);\n }\n }\n\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\n };\n\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n\n submitButtonsByForm.delete(form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","export function definitionsFromContext(context) {\n return context.keys().map(function (key) {\n return definitionForModuleWithContextAndKey(context, key);\n }).filter(function (value) {\n return value;\n });\n}\n\nfunction definitionForModuleWithContextAndKey(context, key) {\n var identifier = identifierForContextKey(key);\n\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\n\nfunction definitionForModuleAndIdentifier(module, identifier) {\n var controllerConstructor = module.default;\n\n if (typeof controllerConstructor == \"function\") {\n return {\n identifier: identifier,\n controllerConstructor: controllerConstructor\n };\n }\n}\n\nexport function identifierForContextKey(key) {\n var logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}","var g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","var EventListener =\n/** @class */\nfunction () {\n function EventListener(eventTarget, eventName, eventOptions) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n\n EventListener.prototype.connect = function () {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n };\n\n EventListener.prototype.disconnect = function () {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n }; // Binding observer delegate\n\n /** @hidden */\n\n\n EventListener.prototype.bindingConnected = function (binding) {\n this.unorderedBindings.add(binding);\n };\n /** @hidden */\n\n\n EventListener.prototype.bindingDisconnected = function (binding) {\n this.unorderedBindings.delete(binding);\n };\n\n EventListener.prototype.handleEvent = function (event) {\n var extendedEvent = extendEvent(event);\n\n for (var _i = 0, _a = this.bindings; _i < _a.length; _i++) {\n var binding = _a[_i];\n\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n };\n\n Object.defineProperty(EventListener.prototype, \"bindings\", {\n get: function () {\n return Array.from(this.unorderedBindings).sort(function (left, right) {\n var leftIndex = left.index,\n rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n },\n enumerable: false,\n configurable: true\n });\n return EventListener;\n}();\n\nexport { EventListener };\n\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var stopImmediatePropagation_1 = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function () {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation_1.call(this);\n }\n });\n }\n}","import { EventListener } from \"./event_listener\";\n\nvar Dispatcher =\n/** @class */\nfunction () {\n function Dispatcher(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n\n Dispatcher.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n };\n\n Dispatcher.prototype.stop = function () {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n };\n\n Object.defineProperty(Dispatcher.prototype, \"eventListeners\", {\n get: function () {\n return Array.from(this.eventListenerMaps.values()).reduce(function (listeners, map) {\n return listeners.concat(Array.from(map.values()));\n }, []);\n },\n enumerable: false,\n configurable: true\n }); // Binding observer delegate\n\n /** @hidden */\n\n Dispatcher.prototype.bindingConnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n };\n /** @hidden */\n\n\n Dispatcher.prototype.bindingDisconnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n }; // Error handling\n\n\n Dispatcher.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n Dispatcher.prototype.fetchEventListenerForBinding = function (binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName,\n eventOptions = binding.eventOptions;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n };\n\n Dispatcher.prototype.fetchEventListener = function (eventTarget, eventName, eventOptions) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var cacheKey = this.cacheKey(eventName, eventOptions);\n var eventListener = eventListenerMap.get(cacheKey);\n\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n eventListenerMap.set(cacheKey, eventListener);\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.createEventListener = function (eventTarget, eventName, eventOptions) {\n var eventListener = new EventListener(eventTarget, eventName, eventOptions);\n\n if (this.started) {\n eventListener.connect();\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.fetchEventListenerMapForEventTarget = function (eventTarget) {\n var eventListenerMap = this.eventListenerMaps.get(eventTarget);\n\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n\n return eventListenerMap;\n };\n\n Dispatcher.prototype.cacheKey = function (eventName, eventOptions) {\n var parts = [eventName];\n Object.keys(eventOptions).sort().forEach(function (key) {\n parts.push(\"\" + (eventOptions[key] ? \"\" : \"!\") + key);\n });\n return parts.join(\":\");\n };\n\n return Dispatcher;\n}();\n\nexport { Dispatcher };","// capture nos.: 12 23 4 43 1 5 56 7 768 9 98\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;\nexport function parseActionDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n eventOptions: matches[9] ? parseEventOptions(matches[9]) : {},\n identifier: matches[5],\n methodName: matches[7]\n };\n}\n\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n } else if (eventTargetName == \"document\") {\n return document;\n }\n}\n\nfunction parseEventOptions(eventOptions) {\n return eventOptions.split(\":\").reduce(function (options, token) {\n var _a;\n\n return Object.assign(options, (_a = {}, _a[token.replace(/^!/, \"\")] = !/^!/.test(token), _a));\n }, {});\n}\n\nexport function stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}","import { parseActionDescriptorString, stringifyEventTarget } from \"./action_descriptor\";\n\nvar Action =\n/** @class */\nfunction () {\n function Action(element, index, descriptor) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.eventOptions = descriptor.eventOptions || {};\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n\n Action.forToken = function (token) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content));\n };\n\n Action.prototype.toString = function () {\n var eventNameSuffix = this.eventTargetName ? \"@\" + this.eventTargetName : \"\";\n return \"\" + this.eventName + eventNameSuffix + \"->\" + this.identifier + \"#\" + this.methodName;\n };\n\n Object.defineProperty(Action.prototype, \"eventTargetName\", {\n get: function () {\n return stringifyEventTarget(this.eventTarget);\n },\n enumerable: false,\n configurable: true\n });\n return Action;\n}();\n\nexport { Action };\nvar defaultEventNames = {\n \"a\": function (e) {\n return \"click\";\n },\n \"button\": function (e) {\n return \"click\";\n },\n \"form\": function (e) {\n return \"submit\";\n },\n \"input\": function (e) {\n return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\";\n },\n \"select\": function (e) {\n return \"change\";\n },\n \"textarea\": function (e) {\n return \"input\";\n }\n};\nexport function getDefaultEventNameForElement(element) {\n var tagName = element.tagName.toLowerCase();\n\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\n\nfunction error(message) {\n throw new Error(message);\n}","var Binding =\n/** @class */\nfunction () {\n function Binding(context, action) {\n this.context = context;\n this.action = action;\n }\n\n Object.defineProperty(Binding.prototype, \"index\", {\n get: function () {\n return this.action.index;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventTarget\", {\n get: function () {\n return this.action.eventTarget;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventOptions\", {\n get: function () {\n return this.action.eventOptions;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"identifier\", {\n get: function () {\n return this.context.identifier;\n },\n enumerable: false,\n configurable: true\n });\n\n Binding.prototype.handleEvent = function (event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n };\n\n Object.defineProperty(Binding.prototype, \"eventName\", {\n get: function () {\n return this.action.eventName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"method\", {\n get: function () {\n var method = this.controller[this.methodName];\n\n if (typeof method == \"function\") {\n return method;\n }\n\n throw new Error(\"Action \\\"\" + this.action + \"\\\" references undefined method \\\"\" + this.methodName + \"\\\"\");\n },\n enumerable: false,\n configurable: true\n });\n\n Binding.prototype.invokeWithEvent = function (event) {\n try {\n this.method.call(this.controller, event);\n } catch (error) {\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element,\n index = _a.index;\n\n var detail = {\n identifier: identifier,\n controller: controller,\n element: element,\n index: index,\n event: event\n };\n this.context.handleError(error, \"invoking action \\\"\" + this.action + \"\\\"\", detail);\n }\n };\n\n Binding.prototype.willBeInvokedByEvent = function (event) {\n var eventTarget = event.target;\n\n if (this.element === eventTarget) {\n return true;\n } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n } else {\n return this.scope.containsElement(this.action.element);\n }\n };\n\n Object.defineProperty(Binding.prototype, \"controller\", {\n get: function () {\n return this.context.controller;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"methodName\", {\n get: function () {\n return this.action.methodName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"scope\", {\n get: function () {\n return this.context.scope;\n },\n enumerable: false,\n configurable: true\n });\n return Binding;\n}();\n\nexport { Binding };","var ElementObserver =\n/** @class */\nfunction () {\n function ElementObserver(element, delegate) {\n var _this = this;\n\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n\n ElementObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n childList: true,\n subtree: true\n });\n this.refresh();\n }\n };\n\n ElementObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n\n ElementObserver.prototype.refresh = function () {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n\n for (var _i = 0, _a = Array.from(this.elements); _i < _a.length; _i++) {\n var element = _a[_i];\n\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n\n for (var _b = 0, _c = Array.from(matches); _b < _c.length; _b++) {\n var element = _c[_b];\n this.addElement(element);\n }\n }\n }; // Mutation record processing\n\n\n ElementObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n\n ElementObserver.prototype.processMutation = function (mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n } else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n };\n\n ElementObserver.prototype.processAttributeChange = function (node, attributeName) {\n var element = node;\n\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n } else {\n this.removeElement(element);\n }\n } else if (this.matchElement(element)) {\n this.addElement(element);\n }\n };\n\n ElementObserver.prototype.processRemovedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n };\n\n ElementObserver.prototype.processAddedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }; // Element matching\n\n\n ElementObserver.prototype.matchElement = function (element) {\n return this.delegate.matchElement(element);\n };\n\n ElementObserver.prototype.matchElementsInTree = function (tree) {\n if (tree === void 0) {\n tree = this.element;\n }\n\n return this.delegate.matchElementsInTree(tree);\n };\n\n ElementObserver.prototype.processTree = function (tree, processor) {\n for (var _i = 0, _a = this.matchElementsInTree(tree); _i < _a.length; _i++) {\n var element = _a[_i];\n processor.call(this, element);\n }\n };\n\n ElementObserver.prototype.elementFromNode = function (node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n };\n\n ElementObserver.prototype.elementIsActive = function (element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n }; // Element tracking\n\n\n ElementObserver.prototype.addElement = function (element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n };\n\n ElementObserver.prototype.removeElement = function (element) {\n if (this.elements.has(element)) {\n this.elements.delete(element);\n\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n };\n\n return ElementObserver;\n}();\n\nexport { ElementObserver };","import { ElementObserver } from \"./element_observer\";\n\nvar AttributeObserver =\n/** @class */\nfunction () {\n function AttributeObserver(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n\n Object.defineProperty(AttributeObserver.prototype, \"element\", {\n get: function () {\n return this.elementObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AttributeObserver.prototype, \"selector\", {\n get: function () {\n return \"[\" + this.attributeName + \"]\";\n },\n enumerable: false,\n configurable: true\n });\n\n AttributeObserver.prototype.start = function () {\n this.elementObserver.start();\n };\n\n AttributeObserver.prototype.stop = function () {\n this.elementObserver.stop();\n };\n\n AttributeObserver.prototype.refresh = function () {\n this.elementObserver.refresh();\n };\n\n Object.defineProperty(AttributeObserver.prototype, \"started\", {\n get: function () {\n return this.elementObserver.started;\n },\n enumerable: false,\n configurable: true\n }); // Element observer delegate\n\n AttributeObserver.prototype.matchElement = function (element) {\n return element.hasAttribute(this.attributeName);\n };\n\n AttributeObserver.prototype.matchElementsInTree = function (tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n };\n\n AttributeObserver.prototype.elementMatched = function (element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementUnmatched = function (element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementAttributeChanged = function (element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n };\n\n return AttributeObserver;\n}();\n\nexport { AttributeObserver };","var StringMapObserver =\n/** @class */\nfunction () {\n function StringMapObserver(element, delegate) {\n var _this = this;\n\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n\n StringMapObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true\n });\n this.refresh();\n }\n };\n\n StringMapObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n\n StringMapObserver.prototype.refresh = function () {\n if (this.started) {\n for (var _i = 0, _a = this.knownAttributeNames; _i < _a.length; _i++) {\n var attributeName = _a[_i];\n this.refreshAttribute(attributeName);\n }\n }\n }; // Mutation record processing\n\n\n StringMapObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n\n StringMapObserver.prototype.processMutation = function (mutation) {\n var attributeName = mutation.attributeName;\n\n if (attributeName) {\n this.refreshAttribute(attributeName);\n }\n }; // State tracking\n\n\n StringMapObserver.prototype.refreshAttribute = function (attributeName) {\n var key = this.delegate.getStringMapKeyForAttribute(attributeName);\n\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n\n var value = this.element.getAttribute(attributeName);\n\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key);\n }\n\n if (value == null) {\n this.stringMap.delete(attributeName);\n this.stringMapKeyRemoved(key, attributeName);\n } else {\n this.stringMap.set(attributeName, value);\n }\n }\n };\n\n StringMapObserver.prototype.stringMapKeyAdded = function (key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n };\n\n StringMapObserver.prototype.stringMapValueChanged = function (value, key) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key);\n }\n };\n\n StringMapObserver.prototype.stringMapKeyRemoved = function (key, attributeName) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName);\n }\n };\n\n Object.defineProperty(StringMapObserver.prototype, \"knownAttributeNames\", {\n get: function () {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StringMapObserver.prototype, \"currentAttributeNames\", {\n get: function () {\n return Array.from(this.element.attributes).map(function (attribute) {\n return attribute.name;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StringMapObserver.prototype, \"recordedAttributeNames\", {\n get: function () {\n return Array.from(this.stringMap.keys());\n },\n enumerable: false,\n configurable: true\n });\n return StringMapObserver;\n}();\n\nexport { StringMapObserver };","export function add(map, key, value) {\n fetch(map, key).add(value);\n}\nexport function del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\nexport function fetch(map, key) {\n var values = map.get(key);\n\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n\n return values;\n}\nexport function prune(map, key) {\n var values = map.get(key);\n\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}","import { add, del } from \"./set_operations\";\n\nvar Multimap =\n/** @class */\nfunction () {\n function Multimap() {\n this.valuesByKey = new Map();\n }\n\n Object.defineProperty(Multimap.prototype, \"values\", {\n get: function () {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) {\n return values.concat(Array.from(set));\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Multimap.prototype, \"size\", {\n get: function () {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) {\n return size + set.size;\n }, 0);\n },\n enumerable: false,\n configurable: true\n });\n\n Multimap.prototype.add = function (key, value) {\n add(this.valuesByKey, key, value);\n };\n\n Multimap.prototype.delete = function (key, value) {\n del(this.valuesByKey, key, value);\n };\n\n Multimap.prototype.has = function (key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n };\n\n Multimap.prototype.hasKey = function (key) {\n return this.valuesByKey.has(key);\n };\n\n Multimap.prototype.hasValue = function (value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n };\n\n Multimap.prototype.getValuesForKey = function (key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n };\n\n Multimap.prototype.getKeysForValue = function (value) {\n return Array.from(this.valuesByKey).filter(function (_a) {\n var key = _a[0],\n values = _a[1];\n return values.has(value);\n }).map(function (_a) {\n var key = _a[0],\n values = _a[1];\n return key;\n });\n };\n\n return Multimap;\n}();\n\nexport { Multimap };","var __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nimport { Multimap } from \"./multimap\";\nimport { add, del } from \"./set_operations\";\n\nvar IndexedMultimap =\n/** @class */\nfunction (_super) {\n __extends(IndexedMultimap, _super);\n\n function IndexedMultimap() {\n var _this = _super.call(this) || this;\n\n _this.keysByValue = new Map();\n return _this;\n }\n\n Object.defineProperty(IndexedMultimap.prototype, \"values\", {\n get: function () {\n return Array.from(this.keysByValue.keys());\n },\n enumerable: false,\n configurable: true\n });\n\n IndexedMultimap.prototype.add = function (key, value) {\n _super.prototype.add.call(this, key, value);\n\n add(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype.delete = function (key, value) {\n _super.prototype.delete.call(this, key, value);\n\n del(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype.hasValue = function (value) {\n return this.keysByValue.has(value);\n };\n\n IndexedMultimap.prototype.getKeysForValue = function (value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n };\n\n return IndexedMultimap;\n}(Multimap);\n\nexport { IndexedMultimap };","import { AttributeObserver } from \"./attribute_observer\";\nimport { Multimap } from \"@stimulus/multimap\";\n\nvar TokenListObserver =\n/** @class */\nfunction () {\n function TokenListObserver(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n\n Object.defineProperty(TokenListObserver.prototype, \"started\", {\n get: function () {\n return this.attributeObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n\n TokenListObserver.prototype.start = function () {\n this.attributeObserver.start();\n };\n\n TokenListObserver.prototype.stop = function () {\n this.attributeObserver.stop();\n };\n\n TokenListObserver.prototype.refresh = function () {\n this.attributeObserver.refresh();\n };\n\n Object.defineProperty(TokenListObserver.prototype, \"element\", {\n get: function () {\n return this.attributeObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TokenListObserver.prototype, \"attributeName\", {\n get: function () {\n return this.attributeObserver.attributeName;\n },\n enumerable: false,\n configurable: true\n }); // Attribute observer delegate\n\n TokenListObserver.prototype.elementMatchedAttribute = function (element) {\n this.tokensMatched(this.readTokensForElement(element));\n };\n\n TokenListObserver.prototype.elementAttributeValueChanged = function (element) {\n var _a = this.refreshTokensForElement(element),\n unmatchedTokens = _a[0],\n matchedTokens = _a[1];\n\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n };\n\n TokenListObserver.prototype.elementUnmatchedAttribute = function (element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n };\n\n TokenListObserver.prototype.tokensMatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenMatched(token);\n });\n };\n\n TokenListObserver.prototype.tokensUnmatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenUnmatched(token);\n });\n };\n\n TokenListObserver.prototype.tokenMatched = function (token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n };\n\n TokenListObserver.prototype.tokenUnmatched = function (token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n };\n\n TokenListObserver.prototype.refreshTokensForElement = function (element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_a) {\n var previousToken = _a[0],\n currentToken = _a[1];\n return !tokensAreEqual(previousToken, currentToken);\n });\n\n if (firstDifferingIndex == -1) {\n return [[], []];\n } else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n };\n\n TokenListObserver.prototype.readTokensForElement = function (element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n };\n\n return TokenListObserver;\n}();\n\nexport { TokenListObserver };\n\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(function (content) {\n return content.length;\n }).map(function (content, index) {\n return {\n element: element,\n attributeName: attributeName,\n content: content,\n index: index\n };\n });\n}\n\nfunction zip(left, right) {\n var length = Math.max(left.length, right.length);\n return Array.from({\n length: length\n }, function (_, index) {\n return [left[index], right[index]];\n });\n}\n\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}","import { TokenListObserver } from \"./token_list_observer\";\n\nvar ValueListObserver =\n/** @class */\nfunction () {\n function ValueListObserver(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n\n Object.defineProperty(ValueListObserver.prototype, \"started\", {\n get: function () {\n return this.tokenListObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n\n ValueListObserver.prototype.start = function () {\n this.tokenListObserver.start();\n };\n\n ValueListObserver.prototype.stop = function () {\n this.tokenListObserver.stop();\n };\n\n ValueListObserver.prototype.refresh = function () {\n this.tokenListObserver.refresh();\n };\n\n Object.defineProperty(ValueListObserver.prototype, \"element\", {\n get: function () {\n return this.tokenListObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ValueListObserver.prototype, \"attributeName\", {\n get: function () {\n return this.tokenListObserver.attributeName;\n },\n enumerable: false,\n configurable: true\n });\n\n ValueListObserver.prototype.tokenMatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.tokenUnmatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.fetchParseResultForToken = function (token) {\n var parseResult = this.parseResultsByToken.get(token);\n\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n\n return parseResult;\n };\n\n ValueListObserver.prototype.fetchValuesByTokenForElement = function (element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n\n return valuesByToken;\n };\n\n ValueListObserver.prototype.parseToken = function (token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return {\n value: value\n };\n } catch (error) {\n return {\n error: error\n };\n }\n };\n\n return ValueListObserver;\n}();\n\nexport { ValueListObserver };","import { Action } from \"./action\";\nimport { Binding } from \"./binding\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar BindingObserver =\n/** @class */\nfunction () {\n function BindingObserver(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n\n BindingObserver.prototype.start = function () {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n };\n\n BindingObserver.prototype.stop = function () {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n };\n\n Object.defineProperty(BindingObserver.prototype, \"element\", {\n get: function () {\n return this.context.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"identifier\", {\n get: function () {\n return this.context.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"actionAttribute\", {\n get: function () {\n return this.schema.actionAttribute;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"schema\", {\n get: function () {\n return this.context.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"bindings\", {\n get: function () {\n return Array.from(this.bindingsByAction.values());\n },\n enumerable: false,\n configurable: true\n });\n\n BindingObserver.prototype.connectAction = function (action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n };\n\n BindingObserver.prototype.disconnectAction = function (action) {\n var binding = this.bindingsByAction.get(action);\n\n if (binding) {\n this.bindingsByAction.delete(action);\n this.delegate.bindingDisconnected(binding);\n }\n };\n\n BindingObserver.prototype.disconnectAllActions = function () {\n var _this = this;\n\n this.bindings.forEach(function (binding) {\n return _this.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n }; // Value observer delegate\n\n\n BindingObserver.prototype.parseValueForToken = function (token) {\n var action = Action.forToken(token);\n\n if (action.identifier == this.identifier) {\n return action;\n }\n };\n\n BindingObserver.prototype.elementMatchedValue = function (element, action) {\n this.connectAction(action);\n };\n\n BindingObserver.prototype.elementUnmatchedValue = function (element, action) {\n this.disconnectAction(action);\n };\n\n return BindingObserver;\n}();\n\nexport { BindingObserver };","import { StringMapObserver } from \"@stimulus/mutation-observers\";\n\nvar ValueObserver =\n/** @class */\nfunction () {\n function ValueObserver(context, receiver) {\n this.context = context;\n this.receiver = receiver;\n this.stringMapObserver = new StringMapObserver(this.element, this);\n this.valueDescriptorMap = this.controller.valueDescriptorMap;\n this.invokeChangedCallbacksForDefaultValues();\n }\n\n ValueObserver.prototype.start = function () {\n this.stringMapObserver.start();\n };\n\n ValueObserver.prototype.stop = function () {\n this.stringMapObserver.stop();\n };\n\n Object.defineProperty(ValueObserver.prototype, \"element\", {\n get: function () {\n return this.context.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ValueObserver.prototype, \"controller\", {\n get: function () {\n return this.context.controller;\n },\n enumerable: false,\n configurable: true\n }); // String map observer delegate\n\n ValueObserver.prototype.getStringMapKeyForAttribute = function (attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n };\n\n ValueObserver.prototype.stringMapValueChanged = function (attributeValue, name) {\n this.invokeChangedCallbackForValue(name);\n };\n\n ValueObserver.prototype.invokeChangedCallbacksForDefaultValues = function () {\n for (var _i = 0, _a = this.valueDescriptors; _i < _a.length; _i++) {\n var _b = _a[_i],\n key = _b.key,\n name_1 = _b.name,\n defaultValue = _b.defaultValue;\n\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallbackForValue(name_1);\n }\n }\n };\n\n ValueObserver.prototype.invokeChangedCallbackForValue = function (name) {\n var methodName = name + \"Changed\";\n var method = this.receiver[methodName];\n\n if (typeof method == \"function\") {\n var value = this.receiver[name];\n method.call(this.receiver, value);\n }\n };\n\n Object.defineProperty(ValueObserver.prototype, \"valueDescriptors\", {\n get: function () {\n var valueDescriptorMap = this.valueDescriptorMap;\n return Object.keys(valueDescriptorMap).map(function (key) {\n return valueDescriptorMap[key];\n });\n },\n enumerable: false,\n configurable: true\n });\n return ValueObserver;\n}();\n\nexport { ValueObserver };","import { BindingObserver } from \"./binding_observer\";\nimport { ValueObserver } from \"./value_observer\";\n\nvar Context =\n/** @class */\nfunction () {\n function Context(module, scope) {\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n this.valueObserver = new ValueObserver(this, this.controller);\n\n try {\n this.controller.initialize();\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n\n Context.prototype.connect = function () {\n this.bindingObserver.start();\n this.valueObserver.start();\n\n try {\n this.controller.connect();\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n };\n\n Context.prototype.disconnect = function () {\n try {\n this.controller.disconnect();\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n\n this.valueObserver.stop();\n this.bindingObserver.stop();\n };\n\n Object.defineProperty(Context.prototype, \"application\", {\n get: function () {\n return this.module.application;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"identifier\", {\n get: function () {\n return this.module.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"schema\", {\n get: function () {\n return this.application.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"dispatcher\", {\n get: function () {\n return this.application.dispatcher;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"parentElement\", {\n get: function () {\n return this.element.parentElement;\n },\n enumerable: false,\n configurable: true\n }); // Error handling\n\n Context.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element;\n\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n return Context;\n}();\n\nexport { Context };","export function readInheritableStaticArrayValues(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (values, constructor) {\n getOwnStaticArrayValues(constructor, propertyName).forEach(function (name) {\n return values.add(name);\n });\n return values;\n }, new Set()));\n}\nexport function readInheritableStaticObjectPairs(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce(function (pairs, constructor) {\n pairs.push.apply(pairs, getOwnStaticObjectPairs(constructor, propertyName));\n return pairs;\n }, []);\n}\n\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n\n return ancestors.reverse();\n}\n\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n var definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\n\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n var definition = constructor[propertyName];\n return definition ? Object.keys(definition).map(function (key) {\n return [key, definition[key]];\n }) : [];\n}","var __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n\n return r;\n};\n\nimport { readInheritableStaticArrayValues } from \"./inheritable_statics\";\n/** @hidden */\n\nexport function bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\n}\n\nfunction shadow(constructor, properties) {\n var shadowConstructor = extend(constructor);\n var shadowProperties = getShadowProperties(constructor.prototype, properties);\n Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n return shadowConstructor;\n}\n\nfunction getBlessedProperties(constructor) {\n var blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce(function (blessedProperties, blessing) {\n var properties = blessing(constructor);\n\n for (var key in properties) {\n var descriptor = blessedProperties[key] || {};\n blessedProperties[key] = Object.assign(descriptor, properties[key]);\n }\n\n return blessedProperties;\n }, {});\n}\n\nfunction getShadowProperties(prototype, properties) {\n return getOwnKeys(properties).reduce(function (shadowProperties, key) {\n var _a;\n\n var descriptor = getShadowedDescriptor(prototype, properties, key);\n\n if (descriptor) {\n Object.assign(shadowProperties, (_a = {}, _a[key] = descriptor, _a));\n }\n\n return shadowProperties;\n }, {});\n}\n\nfunction getShadowedDescriptor(prototype, properties, key) {\n var shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n var shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n\n if (!shadowedByValue) {\n var descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n\n if (shadowingDescriptor) {\n descriptor.get = shadowingDescriptor.get || descriptor.get;\n descriptor.set = shadowingDescriptor.set || descriptor.set;\n }\n\n return descriptor;\n }\n}\n\nvar getOwnKeys = function () {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return function (object) {\n return __spreadArrays(Object.getOwnPropertyNames(object), Object.getOwnPropertySymbols(object));\n };\n } else {\n return Object.getOwnPropertyNames;\n }\n}();\n\nvar extend = function () {\n function extendWithReflect(constructor) {\n function extended() {\n var _newTarget = this && this instanceof extended ? this.constructor : void 0;\n\n return Reflect.construct(constructor, arguments, _newTarget);\n }\n\n extended.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: extended\n }\n });\n Reflect.setPrototypeOf(extended, constructor);\n return extended;\n }\n\n function testReflectExtension() {\n var a = function () {\n this.a.call(this);\n };\n\n var b = extendWithReflect(a);\n\n b.prototype.a = function () {};\n\n return new b();\n }\n\n try {\n testReflectExtension();\n return extendWithReflect;\n } catch (error) {\n return function (constructor) {\n return (\n /** @class */\n function (_super) {\n __extends(extended, _super);\n\n function extended() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return extended;\n }(constructor)\n );\n };\n }\n}();","import { Context } from \"./context\";\nimport { blessDefinition } from \"./definition\";\n\nvar Module =\n/** @class */\nfunction () {\n function Module(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n\n Object.defineProperty(Module.prototype, \"identifier\", {\n get: function () {\n return this.definition.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"controllerConstructor\", {\n get: function () {\n return this.definition.controllerConstructor;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"contexts\", {\n get: function () {\n return Array.from(this.connectedContexts);\n },\n enumerable: false,\n configurable: true\n });\n\n Module.prototype.connectContextForScope = function (scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n };\n\n Module.prototype.disconnectContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n };\n\n Module.prototype.fetchContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n\n return context;\n };\n\n return Module;\n}();\n\nexport { Module };","import { bless } from \"./blessing\";\n/** @hidden */\n\nexport function blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor)\n };\n}","var ClassMap =\n/** @class */\nfunction () {\n function ClassMap(scope) {\n this.scope = scope;\n }\n\n ClassMap.prototype.has = function (name) {\n return this.data.has(this.getDataKey(name));\n };\n\n ClassMap.prototype.get = function (name) {\n return this.data.get(this.getDataKey(name));\n };\n\n ClassMap.prototype.getAttributeName = function (name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n };\n\n ClassMap.prototype.getDataKey = function (name) {\n return name + \"-class\";\n };\n\n Object.defineProperty(ClassMap.prototype, \"data\", {\n get: function () {\n return this.scope.data;\n },\n enumerable: false,\n configurable: true\n });\n return ClassMap;\n}();\n\nexport { ClassMap };","export function camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, function (_, char) {\n return char.toUpperCase();\n });\n}\nexport function capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\nexport function dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, char) {\n return \"-\" + char.toLowerCase();\n });\n}","import { dasherize } from \"./string_helpers\";\n\nvar DataMap =\n/** @class */\nfunction () {\n function DataMap(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(DataMap.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DataMap.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n\n DataMap.prototype.get = function (key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n };\n\n DataMap.prototype.set = function (key, value) {\n var name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n };\n\n DataMap.prototype.has = function (key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n };\n\n DataMap.prototype.delete = function (key) {\n if (this.has(key)) {\n var name_1 = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name_1);\n return true;\n } else {\n return false;\n }\n };\n\n DataMap.prototype.getAttributeNameForKey = function (key) {\n return \"data-\" + this.identifier + \"-\" + dasherize(key);\n };\n\n return DataMap;\n}();\n\nexport { DataMap };","var Guide =\n/** @class */\nfunction () {\n function Guide(logger) {\n this.warnedKeysByObject = new WeakMap();\n this.logger = logger;\n }\n\n Guide.prototype.warn = function (object, key, message) {\n var warnedKeys = this.warnedKeysByObject.get(object);\n\n if (!warnedKeys) {\n warnedKeys = new Set();\n this.warnedKeysByObject.set(object, warnedKeys);\n }\n\n if (!warnedKeys.has(key)) {\n warnedKeys.add(key);\n this.logger.warn(message, object);\n }\n };\n\n return Guide;\n}();\n\nexport { Guide };","/** @hidden */\nexport function attributeValueContainsToken(attributeName, token) {\n return \"[\" + attributeName + \"~=\\\"\" + token + \"\\\"]\";\n}","var __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n\n return r;\n};\n\nimport { attributeValueContainsToken } from \"./selectors\";\n\nvar TargetSet =\n/** @class */\nfunction () {\n function TargetSet(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(TargetSet.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"schema\", {\n get: function () {\n return this.scope.schema;\n },\n enumerable: false,\n configurable: true\n });\n\n TargetSet.prototype.has = function (targetName) {\n return this.find(targetName) != null;\n };\n\n TargetSet.prototype.find = function () {\n var _this = this;\n\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n return targetNames.reduce(function (target, targetName) {\n return target || _this.findTarget(targetName) || _this.findLegacyTarget(targetName);\n }, undefined);\n };\n\n TargetSet.prototype.findAll = function () {\n var _this = this;\n\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n return targetNames.reduce(function (targets, targetName) {\n return __spreadArrays(targets, _this.findAllTargets(targetName), _this.findAllLegacyTargets(targetName));\n }, []);\n };\n\n TargetSet.prototype.findTarget = function (targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n };\n\n TargetSet.prototype.findAllTargets = function (targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n };\n\n TargetSet.prototype.getSelectorForTargetName = function (targetName) {\n var attributeName = \"data-\" + this.identifier + \"-target\";\n return attributeValueContainsToken(attributeName, targetName);\n };\n\n TargetSet.prototype.findLegacyTarget = function (targetName) {\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n };\n\n TargetSet.prototype.findAllLegacyTargets = function (targetName) {\n var _this = this;\n\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map(function (element) {\n return _this.deprecate(element, targetName);\n });\n };\n\n TargetSet.prototype.getLegacySelectorForTargetName = function (targetName) {\n var targetDescriptor = this.identifier + \".\" + targetName;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n };\n\n TargetSet.prototype.deprecate = function (element, targetName) {\n if (element) {\n var identifier = this.identifier;\n var attributeName = this.schema.targetAttribute;\n this.guide.warn(element, \"target:\" + targetName, \"Please replace \" + attributeName + \"=\\\"\" + identifier + \".\" + targetName + \"\\\" with data-\" + identifier + \"-target=\\\"\" + targetName + \"\\\". \" + (\"The \" + attributeName + \" attribute is deprecated and will be removed in a future version of Stimulus.\"));\n }\n\n return element;\n };\n\n Object.defineProperty(TargetSet.prototype, \"guide\", {\n get: function () {\n return this.scope.guide;\n },\n enumerable: false,\n configurable: true\n });\n return TargetSet;\n}();\n\nexport { TargetSet };","var __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n\n return r;\n};\n\nimport { ClassMap } from \"./class_map\";\nimport { DataMap } from \"./data_map\";\nimport { Guide } from \"./guide\";\nimport { attributeValueContainsToken } from \"./selectors\";\nimport { TargetSet } from \"./target_set\";\n\nvar Scope =\n/** @class */\nfunction () {\n function Scope(schema, element, identifier, logger) {\n var _this = this;\n\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n\n this.containsElement = function (element) {\n return element.closest(_this.controllerSelector) === _this.element;\n };\n\n this.schema = schema;\n this.element = element;\n this.identifier = identifier;\n this.guide = new Guide(logger);\n }\n\n Scope.prototype.findElement = function (selector) {\n return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n };\n\n Scope.prototype.findAllElements = function (selector) {\n return __spreadArrays(this.element.matches(selector) ? [this.element] : [], this.queryElements(selector).filter(this.containsElement));\n };\n\n Scope.prototype.queryElements = function (selector) {\n return Array.from(this.element.querySelectorAll(selector));\n };\n\n Object.defineProperty(Scope.prototype, \"controllerSelector\", {\n get: function () {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n },\n enumerable: false,\n configurable: true\n });\n return Scope;\n}();\n\nexport { Scope };","import { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar ScopeObserver =\n/** @class */\nfunction () {\n function ScopeObserver(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n\n ScopeObserver.prototype.start = function () {\n this.valueListObserver.start();\n };\n\n ScopeObserver.prototype.stop = function () {\n this.valueListObserver.stop();\n };\n\n Object.defineProperty(ScopeObserver.prototype, \"controllerAttribute\", {\n get: function () {\n return this.schema.controllerAttribute;\n },\n enumerable: false,\n configurable: true\n }); // Value observer delegate\n\n /** @hidden */\n\n ScopeObserver.prototype.parseValueForToken = function (token) {\n var element = token.element,\n identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var scope = scopesByIdentifier.get(identifier);\n\n if (!scope) {\n scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n scopesByIdentifier.set(identifier, scope);\n }\n\n return scope;\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementMatchedValue = function (element, value) {\n var referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementUnmatchedValue = function (element, value) {\n var referenceCount = this.scopeReferenceCounts.get(value);\n\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n };\n\n ScopeObserver.prototype.fetchScopesByIdentifierForElement = function (element) {\n var scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n\n return scopesByIdentifier;\n };\n\n return ScopeObserver;\n}();\n\nexport { ScopeObserver };","import { Module } from \"./module\";\nimport { Multimap } from \"@stimulus/multimap\";\nimport { Scope } from \"./scope\";\nimport { ScopeObserver } from \"./scope_observer\";\n\nvar Router =\n/** @class */\nfunction () {\n function Router(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n\n Object.defineProperty(Router.prototype, \"element\", {\n get: function () {\n return this.application.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"schema\", {\n get: function () {\n return this.application.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"logger\", {\n get: function () {\n return this.application.logger;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"controllerAttribute\", {\n get: function () {\n return this.schema.controllerAttribute;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"modules\", {\n get: function () {\n return Array.from(this.modulesByIdentifier.values());\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"contexts\", {\n get: function () {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n\n Router.prototype.start = function () {\n this.scopeObserver.start();\n };\n\n Router.prototype.stop = function () {\n this.scopeObserver.stop();\n };\n\n Router.prototype.loadDefinition = function (definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n };\n\n Router.prototype.unloadIdentifier = function (identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n this.disconnectModule(module);\n }\n };\n\n Router.prototype.getContextForElementAndIdentifier = function (element, identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n return module.contexts.find(function (context) {\n return context.element == element;\n });\n }\n }; // Error handler delegate\n\n /** @hidden */\n\n\n Router.prototype.handleError = function (error, message, detail) {\n this.application.handleError(error, message, detail);\n }; // Scope observer delegate\n\n /** @hidden */\n\n\n Router.prototype.createScopeForElementAndIdentifier = function (element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n };\n /** @hidden */\n\n\n Router.prototype.scopeConnected = function (scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.connectContextForScope(scope);\n }\n };\n /** @hidden */\n\n\n Router.prototype.scopeDisconnected = function (scope) {\n this.scopesByIdentifier.delete(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }; // Modules\n\n\n Router.prototype.connectModule = function (module) {\n this.modulesByIdentifier.set(module.identifier, module);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.connectContextForScope(scope);\n });\n };\n\n Router.prototype.disconnectModule = function (module) {\n this.modulesByIdentifier.delete(module.identifier);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.disconnectContextForScope(scope);\n });\n };\n\n return Router;\n}();\n\nexport { Router };","export var defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\"\n};","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n\n return r;\n};\n\nimport { Dispatcher } from \"./dispatcher\";\nimport { Router } from \"./router\";\nimport { defaultSchema } from \"./schema\";\n\nvar Application =\n/** @class */\nfunction () {\n function Application(element, schema) {\n if (element === void 0) {\n element = document.documentElement;\n }\n\n if (schema === void 0) {\n schema = defaultSchema;\n }\n\n this.logger = console;\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n\n Application.start = function (element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n };\n\n Application.prototype.start = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , domReady()];\n\n case 1:\n _a.sent();\n\n this.dispatcher.start();\n this.router.start();\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Application.prototype.stop = function () {\n this.dispatcher.stop();\n this.router.stop();\n };\n\n Application.prototype.register = function (identifier, controllerConstructor) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n };\n\n Application.prototype.load = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var definitions = Array.isArray(head) ? head : __spreadArrays([head], rest);\n definitions.forEach(function (definition) {\n return _this.router.loadDefinition(definition);\n });\n };\n\n Application.prototype.unload = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var identifiers = Array.isArray(head) ? head : __spreadArrays([head], rest);\n identifiers.forEach(function (identifier) {\n return _this.router.unloadIdentifier(identifier);\n });\n };\n\n Object.defineProperty(Application.prototype, \"controllers\", {\n // Controllers\n get: function () {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n },\n enumerable: false,\n configurable: true\n });\n\n Application.prototype.getControllerForElementAndIdentifier = function (element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }; // Error handling\n\n\n Application.prototype.handleError = function (error, message, detail) {\n this.logger.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n };\n\n return Application;\n}();\n\nexport { Application };\n\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", resolve);\n } else {\n resolve();\n }\n });\n}","import { readInheritableStaticArrayValues } from \"./inheritable_statics\";\nimport { capitalize } from \"./string_helpers\";\n/** @hidden */\n\nexport function ClassPropertiesBlessing(constructor) {\n var classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce(function (properties, classDefinition) {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\n\nfunction propertiesForClassDefinition(key) {\n var _a;\n\n var name = key + \"Class\";\n return _a = {}, _a[name] = {\n get: function () {\n var classes = this.classes;\n\n if (classes.has(key)) {\n return classes.get(key);\n } else {\n var attribute = classes.getAttributeName(key);\n throw new Error(\"Missing attribute \\\"\" + attribute + \"\\\"\");\n }\n }\n }, _a[\"has\" + capitalize(name)] = {\n get: function () {\n return this.classes.has(key);\n }\n }, _a;\n}","import { readInheritableStaticArrayValues } from \"./inheritable_statics\";\nimport { capitalize } from \"./string_helpers\";\n/** @hidden */\n\nexport function TargetPropertiesBlessing(constructor) {\n var targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce(function (properties, targetDefinition) {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\n\nfunction propertiesForTargetDefinition(name) {\n var _a;\n\n return _a = {}, _a[name + \"Target\"] = {\n get: function () {\n var target = this.targets.find(name);\n\n if (target) {\n return target;\n } else {\n throw new Error(\"Missing target element \\\"\" + this.identifier + \".\" + name + \"\\\"\");\n }\n }\n }, _a[name + \"Targets\"] = {\n get: function () {\n return this.targets.findAll(name);\n }\n }, _a[\"has\" + capitalize(name) + \"Target\"] = {\n get: function () {\n return this.targets.has(name);\n }\n }, _a;\n}","import { readInheritableStaticObjectPairs } from \"./inheritable_statics\";\nimport { camelize, capitalize, dasherize } from \"./string_helpers\";\n/** @hidden */\n\nexport function ValuePropertiesBlessing(constructor) {\n var valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n var propertyDescriptorMap = {\n valueDescriptorMap: {\n get: function () {\n var _this = this;\n\n return valueDefinitionPairs.reduce(function (result, valueDefinitionPair) {\n var _a;\n\n var valueDescriptor = parseValueDefinitionPair(valueDefinitionPair);\n\n var attributeName = _this.data.getAttributeNameForKey(valueDescriptor.key);\n\n return Object.assign(result, (_a = {}, _a[attributeName] = valueDescriptor, _a));\n }, {});\n }\n }\n };\n return valueDefinitionPairs.reduce(function (properties, valueDefinitionPair) {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\n/** @hidden */\n\nexport function propertiesForValueDefinitionPair(valueDefinitionPair) {\n var _a;\n\n var definition = parseValueDefinitionPair(valueDefinitionPair);\n var type = definition.type,\n key = definition.key,\n name = definition.name;\n var read = readers[type],\n write = writers[type] || writers.default;\n return _a = {}, _a[name] = {\n get: function () {\n var value = this.data.get(key);\n\n if (value !== null) {\n return read(value);\n } else {\n return definition.defaultValue;\n }\n },\n set: function (value) {\n if (value === undefined) {\n this.data.delete(key);\n } else {\n this.data.set(key, write(value));\n }\n }\n }, _a[\"has\" + capitalize(name)] = {\n get: function () {\n return this.data.has(key);\n }\n }, _a;\n}\n\nfunction parseValueDefinitionPair(_a) {\n var token = _a[0],\n typeConstant = _a[1];\n var type = parseValueTypeConstant(typeConstant);\n return valueDescriptorForTokenAndType(token, type);\n}\n\nfunction parseValueTypeConstant(typeConstant) {\n switch (typeConstant) {\n case Array:\n return \"array\";\n\n case Boolean:\n return \"boolean\";\n\n case Number:\n return \"number\";\n\n case Object:\n return \"object\";\n\n case String:\n return \"string\";\n }\n\n throw new Error(\"Unknown value type constant \\\"\" + typeConstant + \"\\\"\");\n}\n\nfunction valueDescriptorForTokenAndType(token, type) {\n var key = dasherize(token) + \"-value\";\n return {\n type: type,\n key: key,\n name: camelize(key),\n\n get defaultValue() {\n return defaultValuesByType[type];\n }\n\n };\n}\n\nvar defaultValuesByType = {\n get array() {\n return [];\n },\n\n boolean: false,\n number: 0,\n\n get object() {\n return {};\n },\n\n string: \"\"\n};\nvar readers = {\n array: function (value) {\n var array = JSON.parse(value);\n\n if (!Array.isArray(array)) {\n throw new TypeError(\"Expected array\");\n }\n\n return array;\n },\n boolean: function (value) {\n return !(value == \"0\" || value == \"false\");\n },\n number: function (value) {\n return parseFloat(value);\n },\n object: function (value) {\n var object = JSON.parse(value);\n\n if (object === null || typeof object != \"object\" || Array.isArray(object)) {\n throw new TypeError(\"Expected object\");\n }\n\n return object;\n },\n string: function (value) {\n return value;\n }\n};\nvar writers = {\n default: writeString,\n array: writeJSON,\n object: writeJSON\n};\n\nfunction writeJSON(value) {\n return JSON.stringify(value);\n}\n\nfunction writeString(value) {\n return \"\" + value;\n}","import { ClassPropertiesBlessing } from \"./class_properties\";\nimport { TargetPropertiesBlessing } from \"./target_properties\";\nimport { ValuePropertiesBlessing } from \"./value_properties\";\n\nvar Controller =\n/** @class */\nfunction () {\n function Controller(context) {\n this.context = context;\n }\n\n Object.defineProperty(Controller.prototype, \"application\", {\n get: function () {\n return this.context.application;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"scope\", {\n get: function () {\n return this.context.scope;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"targets\", {\n get: function () {\n return this.scope.targets;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"classes\", {\n get: function () {\n return this.scope.classes;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"data\", {\n get: function () {\n return this.scope.data;\n },\n enumerable: false,\n configurable: true\n });\n\n Controller.prototype.initialize = function () {// Override in your subclass to set up initial controller state\n };\n\n Controller.prototype.connect = function () {// Override in your subclass to respond when the controller is connected to the DOM\n };\n\n Controller.prototype.disconnect = function () {// Override in your subclass to respond when the controller is disconnected from the DOM\n };\n\n Controller.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];\n Controller.targets = [];\n Controller.values = {};\n return Controller;\n}();\n\nexport { Controller };"],"sourceRoot":""}