{"version":3,"sources":["webpack:///webpack/bootstrap","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","webpack:///./app/webpacker/src/javascripts/modal.js","webpack:///./node_modules/i18n-js/app/assets/javascripts/i18n.js","webpack:///./node_modules/i18n-iso-countries/index.js","webpack:///./node_modules/tinygesture/dist/TinyGesture.js","webpack:///./app/webpacker/images/header-logo.png","webpack:///./app/webpacker/images/navbar-logo.png","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/pinch-zoom-js/src/pinch-zoom.js","webpack:///./app/webpacker/images/apple-touch-icon.png","webpack:///./app/webpacker/images/apple-touch-icon-114x114.png","webpack:///./app/webpacker/images/apple-touch-icon-120x120.png","webpack:///./app/webpacker/images/apple-touch-icon-144x144.png","webpack:///./app/webpacker/images/apple-touch-icon-152x152.png","webpack:///./app/webpacker/images/apple-touch-icon-180x180.png","webpack:///./app/webpacker/images/apple-touch-icon-57x57.png","webpack:///./app/webpacker/images/apple-touch-icon-72x72.png","webpack:///./app/webpacker/images/apple-touch-icon-76x76.png","webpack:///./app/webpacker/images/favicon.png","webpack:///./app/webpacker/images/item-placeholder.jpg","webpack:///./app/webpacker/images/prando-shop.jpg","webpack:///./app/webpacker/images/social_preview.jpg","webpack:///./app/webpacker/images/social_preview_default.jpg","webpack:///./app/webpacker/images/start_footer.webp","webpack:///./app/webpacker/images/start_footer_default.webp","webpack:///./app/webpacker/images/start_header.webp","webpack:///./app/webpacker/images/start_header_default.webp","webpack:///./app/webpacker/images/static-1.jpg","webpack:///./node_modules/bulma-carousel/dist/js/bulma-carousel.min.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.esm.js","webpack:///./app/webpacker/channels/index.js","webpack:///./app/webpacker/channels sync _channel\\.js$","webpack:///./node_modules/diacritics/index.js","webpack:///./app/webpacker/locales sync ^\\.\\/.*\\.json$","webpack:///./app/webpacker/images sync ^\\.\\/.*$","webpack:///./app/webpacker/images/favicon.ico","webpack:///./app/webpacker/images/header-logo.webp","webpack:///./app/webpacker/images/navbar-logo.webp","webpack:///./app/webpacker/controllers sync _controller\\.js$","webpack:///./app/webpacker/controllers/application_controller.js","webpack:///./app/webpacker/controllers/cart_controller.js","webpack:///./app/webpacker/controllers/contact_controller.js","webpack:///./app/webpacker/controllers/customers_controller.js","webpack:///./app/webpacker/controllers/items_controller.js","webpack:///./app/webpacker/src/javascripts/i18n.js.erb","webpack:///./app/webpacker/controllers/index.js","webpack:///./node_modules/@stimulus/webpack-helpers/dist/index.js","webpack:///./app/webpacker/src/javascripts/main.js.erb","webpack:///./app/webpacker/packs/application.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","EventListener","eventTarget","eventName","eventOptions","this","unorderedBindings","Set","connect","addEventListener","disconnect","removeEventListener","bindingConnected","binding","add","bindingDisconnected","delete","handleEvent","event","extendedEvent","stopImmediatePropagation_1","stopImmediatePropagation","assign","immediatePropagationStopped","extendEvent","_i","_a","bindings","length","Array","from","sort","left","right","leftIndex","index","rightIndex","configurable","Dispatcher","application","eventListenerMaps","Map","started","start","eventListeners","forEach","eventListener","stop","values","reduce","listeners","map","concat","fetchEventListenerForBinding","handleError","error","message","detail","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","cacheKey","createEventListener","set","parts","keys","push","join","descriptorPattern","parseEventTarget","eventTargetName","window","document","Action","element","descriptor","tagName","toLowerCase","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","forToken","token","descriptorString","content","matches","trim","match","split","options","replace","test","toString","eventNameSuffix","e","getAttribute","Error","Binding","context","action","willBeInvokedByEvent","invokeWithEvent","method","controller","target","Element","contains","scope","containsElement","ElementObserver","delegate","_this","elements","mutationObserver","MutationObserver","mutations","processMutations","observe","attributes","childList","subtree","refresh","takeRecords","matchElementsInTree","has","removeElement","_b","_c","addElement","mutations_1","mutation","processMutation","type","processAttributeChange","attributeName","processRemovedNodes","removedNodes","processAddedNodes","addedNodes","node","elementAttributeChanged","matchElement","nodes","elementFromNode","processTree","elementIsActive","tree","processor","nodeType","Node","ELEMENT_NODE","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","hasAttribute","querySelectorAll","selector","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","StringMapObserver","stringMap","knownAttributeNames","refreshAttribute","getStringMapKeyForAttribute","stringMapKeyAdded","stringMapValueChanged","stringMapKeyRemoved","currentAttributeNames","recordedAttributeNames","attribute","fetch","del","size","prune","extendStatics","Multimap","valuesByKey","hasKey","hasValue","some","getValuesForKey","getKeysForValue","filter","__extends","b","setPrototypeOf","__proto__","__","constructor","_super","IndexedMultimap","keysByValue","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","Math","max","_","findIndex","tokensAreEqual","slice","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","WeakMap","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","undefined","defaultValue","data","Context","controllerConstructor","bindingObserver","dispatcher","valueObserver","initialize","parentElement","readInheritableStaticArrayValues","propertyName","ancestors","getAncestorsForConstructor","definition","isArray","getOwnStaticArrayValues","readInheritableStaticObjectPairs","pairs","apply","getOwnStaticObjectPairs","getPrototypeOf","reverse","__spreadArrays","il","arguments","k","a","j","jl","bless","properties","shadowConstructor","extend","shadowProperties","getOwnKeys","shadowingDescriptor","getOwnPropertyDescriptor","getShadowedDescriptor","getShadowProperties","defineProperties","shadow","blessedProperties","blessing","getBlessedProperties","getOwnPropertySymbols","getOwnPropertyNames","extendWithReflect","extended","_newTarget","Reflect","construct","Module","blessDefinition","contextsByScope","connectedContexts","connectContextForScope","fetchContextForScope","disconnectContextForScope","ClassMap","getDataKey","getAttributeName","getAttributeNameForKey","camelize","char","toUpperCase","capitalize","charAt","dasherize","DataMap","setAttribute","removeAttribute","Guide","logger","warnedKeysByObject","warn","warnedKeys","attributeValueContainsToken","TargetSet","targetName","find","targetNames","findTarget","findLegacyTarget","findAll","targets","findAllTargets","findAllLegacyTargets","getSelectorForTargetName","findElement","findAllElements","getLegacySelectorForTargetName","deprecate","targetDescriptor","targetAttribute","guide","Scope","classes","closest","controllerSelector","queryElements","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","createScopeForElementAndIdentifier","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","contexts","loadDefinition","unloadIdentifier","connectModule","disconnectModule","getContextForElementAndIdentifier","defaultSchema","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","__generator","body","f","y","g","label","sent","trys","ops","verb","iterator","v","op","TypeError","pop","Application","documentElement","console","router","readyState","register","load","head","rest","definitions","unload","identifiers","getControllerForElementAndIdentifier","ClassPropertiesBlessing","classDefinition","TargetPropertiesBlessing","targetDefinition","ValuePropertiesBlessing","valueDefinitionPairs","propertyDescriptorMap","valueDefinitionPair","valueDescriptor","parseValueDefinitionPair","read","readers","write","writers","default","propertiesForValueDefinitionPair","typeConstant","Boolean","Number","String","parseValueTypeConstant","defaultValuesByType","valueDescriptorForTokenAndType","array","boolean","number","string","JSON","parse","parseFloat","writeJSON","stringify","Controller","blessings","$el","modal","onSuccess","querySelector","inp","id","eventSuccess","CustomEvent","dispatchEvent","onCancel","eventCancel","Event","createModal","title","buttons","I18n","html","btn","createElement","classList","innerHTML","appendChild","openModal","$close","$target","closeModal","keyCode","closeAllModals","remove","$modal","callback","root","global","padding","substr","toFixed","precision","decimalAdjust","isObject","obj","isFunction","func","isSet","val","isString","isNumber","isBoolean","isNull","exp","isNaN","NaN","lazyEvaluate","merge","dest","DATE","day_names","abbr_day_names","month_names","abbr_month_names","meridian","NUMBER_FORMAT","separator","delimiter","strip_insignificant_zeros","CURRENCY_FORMAT","unit","format","sign_first","PERCENTAGE_FORMAT","SIZE_UNITS","DEFAULT_OPTIONS","defaultLocale","locale","defaultSeparator","placeholder","fallbacks","translations","missingBehaviour","missingTranslationPrefix","reset","initializeOptions","locales","list","localeParts","firstFallback","secondFallback","indexOf","nullableFallbackLocale","pluralization","count","currentLocale","lookup","scopes","fullScope","getFullScope","shift","pluralizationLookupWithoutFallback","pluralizerKey","pluralizerKeys","pluralizer","pluralizationLookup","time","date","am","pm","prepareOptions","subject","args","attr","createTranslationOptions","translationOptions","defaults","translate","translation","usedScope","optionsWithoutDefault","translationOption","interpolate","pluralize","missingTranslation","regex","nullPlaceholder","missingPlaceholder","RegExp","p1","p2","toNumber","formattedNumber","negative","abs","buffer","sign","unshift","toCurrency","localize","toPercentage","localizedValue","toTime","parseDate","convertedDate","fraction","parseInt","Date","UTC","setTime","$1","$2","$3","$6","$4","$5","strftime","meridianOptions","getTime","weekDay","getDay","day","getDate","year","getFullYear","month","getMonth","hour","getHours","hour12","secs","getSeconds","mins","getMinutes","offset","getTimezoneOffset","absOffsetHours","floor","absOffsetMinutes","timezoneoffset","dateString","date_string","toHumanSize","kb","iterations","obj1","obj2","factory","codes","removeDiacritics","registeredLocales","alpha2","alpha3","numeric","invertedNumeric","formatNumericCode","code","alpha3ToAlpha2","alpha2ToAlpha3","numericToAlpha3","padded","numericToAlpha2","toAlpha2","codeInformation","registerLocale","localeData","countries","alpha3ToNumeric","alpha2ToNumeric","toAlpha3","getName","lang","names","err","getNames","getAlpha2Code","normalizeString","areSimilar","codenames","mappedName","getSimpleAlpha2Code","getAlpha2Codes","getAlpha3Code","getSimpleAlpha3Code","getAlpha3Codes","getNumericCodes","langs","isValid","coerced","TinyGesture","touchStartX","touchStartY","touchEndX","touchEndY","touchMoveX","touchMoveY","velocityX","velocityY","longPressTimer","doubleTapTimer","doubleTapWaiting","thresholdX","thresholdY","disregardVelocityThresholdX","disregardVelocityThresholdY","swipingHorizontal","swipingVertical","swipingDirection","swipedHorizontal","swipedVertical","handlers","panstart","panmove","panend","swipeleft","swiperight","swipeup","swipedown","tap","doubletap","longpress","_onTouchStart","onTouchStart","_onTouchMove","onTouchMove","_onTouchEnd","onTouchEnd","opts","passiveIfSupported","mouseSupport","destroy","clearTimeout","on","fn","cancel","off","idx","splice","fire","threshold","disregardVelocityThreshold","screenX","changedTouches","screenY","setTimeout","longPressTime","_d","_e","absTouchMoveX","absTouchMoveY","pressThreshold","_f","_g","_h","x","absX","absY","diagonalSwipes","diagonalLimit","velocityThreshold","doubleTapTime","_self","innerWidth","clientWidth","innerHeight","clientHeight","self","tan","PI","passive","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","cspNonce","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","setData","$","csrfParam","csrfToken","meta","CSRFProtection","xhr","setRequestHeader","refreshCSRFTokens","param","input","preventDefault","params","evt","createEvent","initCustomEvent","bubbles","cancelable","defaultPrevented","stopEverything","stopPropagation","eventType","handler","parentNode","AcceptHeaders","createXHR","processResponse","text","xml","json","script","ajax","response","responseText","getResponseHeader","status","success","statusText","complete","beforeSend","XMLHttpRequest","OPENED","send","url","location","href","dataType","accept","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","removeChild","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","inputs","disabled","option","selected","checked","encodeURIComponent","formElements","form","el","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","link","style","display","click","isRemote","handleRemote","button","enctype","FormData","append","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","ajaxPrefilter","originalOptions","_rails_loaded","varArgs","to","nextSource","nextKey","writable","triggerEvent","initEvent","PinchZoom","zoomFactor","lastScale","initialOffset","setupMarkup","bindEvents","update","isImageLoaded","updateAspectRatio","setupOffsets","enable","sum","tapZoomFactor","zoomOutFactor","animationDuration","maxZoom","minZoom","draggableUnzoomed","lockDragAxis","setOffsetsOnce","use2d","zoomStartEventName","zoomUpdateEventName","zoomEndEventName","dragStartEventName","dragUpdateEventName","dragEndEventName","doubleTapEventName","verticalPadding","horizontalPadding","onZoomStart","onZoomEnd","onZoomUpdate","onDragStart","onDragEnd","onDragUpdate","onDoubleTap","handleDragStart","stopAnimation","lastDragPosition","hasInteraction","handleDrag","touch","getTouches","drag","sanitizeOffset","handleDragEnd","end","handleZoomStart","nthZoom","lastZoomCenter","handleZoom","newScale","touchCenter","getTouchCenter","scale","handleZoomEnd","handleDoubleTap","center","startZoomFactor","updateProgress","progress","scaleTo","isDoubleTap","getCurrentZoomCenter","animate","swing","computeInitialOffset","offsetWidth","getInitialZoomFactor","container","offsetHeight","resetOffset","nodeName","naturalHeight","every","_isOffsetsSet","elWidth","elHeight","maxX","getContainerX","maxY","getContainerY","maxOffsetX","maxOffsetY","minOffsetX","min","minOffsetY","scaleZoomFactor","addOffset","originalZoomFactor","canDrag","expected","lastCenter","touches","getVectorAvg","vectors","sanitize","zoomOutAnimation","isInsaneOffset","sanitizeOffsetAnimation","sanitizedOffset","targetOffset","startOffset","unsetContainerY","setContainerY","xZoomFactor","yZoomFactor","getAspectRatio","offsetLeft","centerX","offsetTop","rect","getBoundingClientRect","scrollTop","scrollLeft","posTop","top","posLeft","pageX","pageY","duration","framefn","timefn","startTime","renderFrame","inAnimation","frameTime","requestAnimationFrame","cos","height","str","tmp","implementation","createHTMLDocument","children","insertBefore","overflow","position","webkitTransformOrigin","mozTransformOrigin","msTransformOrigin","oTransformOrigin","transformOrigin","detectGestures","resizeHandler","imgEl","updatePlanned","offsetX","offsetY","transform3d","transform2d","removeClone","clone","is3d","webkitTransform","mozTransform","msTransform","oTransform","transform","cloneNode","pointerEvents","enabled","disable","interaction","fingers","lastTouchStart","startTouches","setInteraction","newInteraction","updateInteraction","targetTouches","getDistance","sqrt","cancelEvent","firstMove","detectDoubleTap","endTouches","startDistance","calculateScale","definePinchZoom","width","getComputedStyle","marginTop","marginBottom","cssText","events","_x","_y","pow","h","u","w","ReferenceError","_clickEvents","dataset","includes","_id","onShow","_init","_items","_breakpoint","_autoplay","_navigation","_pagination","_infinite","_loop","_swipe","_build","onReady","createRange","createContextualFragment","_ui","wrapper","firstChild","opacity","_transitioner","_slides","_createSlide","_bindEvents","sliderIndex","vertical","slidesToShow","centerMode","centerPadding","_wrapperWidth","_wrapperHeight","_slideWidth","ceil","_containerHeight","_containerWidth","effect","state","_setClasses","loop","infinite","slidesToScroll","show","pause","emit","_setHeight","initialSlide","prev","init","render","navigationSwipe","autoplay","_unbindEvents","_index","_length","getSlidesToScroll","getSlidesToShow","dir","direction","crypto","getRandomValues","Uint8Array","slider","onVisibilityChange","onMouseEnter","onMouseLeave","pauseOnHover","_interval","setInterval","_hovering","autoplaySpeed","clearInterval","paused","timer","run","hidden","navigator","pointerEnabled","msPointerEnabled","msMaxTouchPoints","maxTouchPoints","userAgent","DocumentTouch","_defaultBreakpoint","breakpoints","changePoint","_currentBreakpoint","_getActiveBreakpoint","return","_setDimensions","_infiniteCount","_cloneSlide","slides","transitioner","cloned","bottom","_supportsPassive","onPreviousClick","onNextClick","onKeyUp","icons","previous","navigation","keyNavigation","onPageClick","onResize","_pages","_count","_draw","pagination","currentTarget","onStartDrag","onMoveDrag","onStopDrag","_origin","wrapperWidth","_lastTranslate","_animating","_animation","_translate","_fade","_animationCallback","_oldSlide","_newSlide","onTransitionEnd","transition","timing","isAnimating","_position","round","navigationKeys","Turbolinks","supported","history","pushState","visit","clearCache","setProgressBarDelay","copyObject","defer","throttle","dispatch","uuid","random","Location","absoluteURL","hash","requestURL","anchor","wrap","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isHTML","isPrefixedBy","isEqualTo","toCacheKey","toJSON","valueOf","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","timeout","notifyApplicationBeforeRequestStart","setProgress","requestStarted","abort","lengthComputable","loaded","total","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","onprogress","onload","onerror","ontimeout","onabort","requestFinished","ProgressBar","trickle","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","visible","installStylesheetElement","installProgressElement","startTrickling","hide","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","trickleInterval","textContent","className","BrowserAdapter","showProgressBar","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","reload","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","History","onPageLoad","onPopState","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","outerHTML","tracked","fromHeadElement","childNodes","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","getMetaValue","findMetaElementByName","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","async","__super__","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","focus","replaceChild","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","snapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","onScroll","scrollToElement","scrollIntoView","scrollToPosition","scrollTo","updatePosition","pageXOffset","pageYOffset","scrollPositionChanged","SnapshotCache","snapshots","put","Visit","performScroll","adapter","timingMetrics","recordTimingMetric","request","cancelRender","fail","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTimingMetrics","snapshotCached","frame","cancelAnimationFrame","clickBubbled","clickCaptured","view","scrollManager","startHistory","stopHistory","cache","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","createVisit","isContentEditable","which","altKey","shiftKey","nodeIsVisitable","currentScript","sparkMd5","undefined$1","hex_chr","md5cycle","md5blk","md5blks","charCodeAt","md5blk_array","md51","tail","lo","hi","substring","md51_array","subarray","rhex","hex","toUtf8","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","fromCharCode","concatenateArrayBuffers","first","second","byteLength","hexToBinaryString","bytes","SparkMD5","clamp","num","targetArray","sourceArray","begin","appendBinary","contents","_buff","_hash","raw","ret","_finish","getState","setState","hashBinary","fileSlice","File","mozSlice","webkitSlice","FileChecksum","static","file","chunkSize","chunkCount","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","eventInit","BlobRecord","checksum","filename","content_type","byte_size","responseType","requestDidLoad","requestDidError","_this$xhr","blob","direct_upload","directUploadData","BlobUpload","_blob$directUploadDat","headers","_this$xhr2","DirectUpload","notify","upload","_len","messages","_key","DirectUploadController","directUpload","hiddenInput","insertAdjacentElement","dispatchError","signed_id","uploadRequestDidProgress","alert","directUploadWillCreateBlobWithXHR","directUploadWillStoreFileWithXHR","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","processingAttribute","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","submitForm","ActiveStorage","channels","require","webpackEmptyContext","req","diacriticsMap","replacementList","base","chars","webpackContext","webpackContextResolve","applController","observer","IntersectionObserver","entries","isIntersecting","offsetHero","scrollY","hasFooterTarget","footerTarget","onVisible","entry","intersectionRatio","fig","carousel","bulmaCarousel","attach","hasHeaderTarget","headerTarget","backgroundPosition","div","currentStep","country","currency","steps","endsWith","gtag","currencyFormatValue","currencyAbbrValue","parent","mainImg","src","altImg","cartMenuWrapperTarget","toggle","overlayTarget","that","quantity","product_number","item","contentType","processData","updateCart","box","maxWidth","main","fadeOut","price","itemPriceTarget","items","cartController","navbarCartItemsCounterTarget","navbarMobileCartItemsCounterTarget","cartMenuItemsTarget","hasCheckoutCartItemsTarget","checkoutCartItemsTarget","cartMenuCheckoutButtonTarget","hasCheckoutCartNextButtonTarget","checkoutCartNextButtonTarget","vouchers","hasCartMenuTotalTarget","cartMenuTotalTarget","currenciesFormat","total_with_vat","hasCheckoutCartItemsCountTarget","checkoutCartItemsCountTarget","hasCheckoutTotalTarget","checkoutTotalTargets","hasCheckoutItemsTarget","checkoutItemsTarget","total_items","hasCheckoutVatTarget","checkoutVatTarget","vat","hasCheckoutShippingCostTarget","checkoutShippingCostTargets","shipping","hasCheckoutChargesTarget","charges","checkoutChargesTarget","cells","description","checkoutChargesSummaryTarget","sml","details","span","color","cartItem","image","dt","sum_total","checkoutSummaryCartItemsTarget","sum_quantity","firstname","lastname","email","email_helper","phone","cem","cem_helper","street","zip","validateEmail","invoiceDirectionToggleTarget","invoice_name","invoice_street","invoice_zip","invoice_location","refreshView","btnNext","btnFinish","checkoutShippingTarget","checkoutPaymentTarget","checkoutConfirmationTarget","company","removeTags","address","shipping_addressTarget","invoice_address","invoice_state","invoice_country","invoice_direction_headerTarget","btnBack","icon","radio","sumup","busy","SumUpCard","privateDataTarget","companyDataTarget","invoice_directionTarget","checkout_paymentTarget","chargesType","chargesAmount","applyCharges","chargesDescription","removeCharges","Modal","vouchercodeTarget","purchase","amount","signinModalTarget","currencyFormat","currencyAbbr","onSubmit","getElementById","emailTarget","phoneTarget","required","mail","page","pathname","email1","email2","password1","password2","addressId","customersController","log","xmlhttp","addr","tbody","order","paid_icon","password_newTarget","password_confirmTarget","error_password_matchTargets","error_password_lengthTargets","formData","li","tabsTarget","tab","tabsContentTarget","imageTarget","gesture","Gesture","previewImageNavigation","unitStepsValue","productPictureThumbnailsTarget","active","thumbnails","keycode","productPictureWrapperTarget","iframe","video","pictureNavigation","productVideoWrapperTarget","justifyContent","videoUrl","productPictureTarget","frameborder","margin","productPictureDescriptionTarget","alt","controls","selection","empty","getSelection","removeAllRanges","bullets","bulletsTarget","image_zoom_iconTarget","thumbnail","maxHeight","img","svg","image_left_iconTarget","image_right_iconTarget","colorVariantTargets","inputUuidTarget","itemsController","description_long","hasPriceTarget","price_with_vat","price_with_discount","price_without_discount","priceTarget","spanPriceWithVatTarget","with_stock","itemStockTarget","stock","buttonAddToCartTarget","sizeVariantTargets","unitSteps","logicalName","identifierForContextKey","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext","fadeEffect","$navbarBurgers","innerText","dropdowns","URL","origin"],"mappings":"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,CACDD,KAAM,IACNC,MAAO,oDACN,CACDD,KAAM,IACNC,MAAO,kGACN,CACDD,KAAM,KACNC,MAAO,UACN,CACDD,KAAM,KACNC,MAAO,UACN,CACDD,KAAM,IACNC,MAAO,oPACN,CACDD,KAAM,KACNC,MAAO,UACN,CACDD,KAAM,KACNC,MAAO,UACN,CACDD,KAAM,KACNC,MAAO,UACN,CACDD,KAAM,KACNC,MAAO,UACN,CACDD,KAAM,IACNC,MAAO,0DACN,CACDD,KAAM,IACNC,MAAO,kCACN,CACDD,KAAM,IACNC,MAAO,oGACN,CACDD,KAAM,IACNC,MAAO,oGACN,CACDD,KAAM,IACNC,MAAO,wFACN,CACDD,KAAM,KACNC,MAAO,QACN,CACDD,KAAM,KACNC,MAAO,UACN,CACDD,KAAM,IACNC,MAAO,kMACN,CACDD,KAAM,IACNC,MAAO,8CACN,CACDD,KAAM,KACNC,MAAO,UACN,CACDD,KAAM,IACNC,MAAO,0DACN,CACDD,KAAM,IACNC,MAAO,4BACN,CACDD,KAAM,IACNC,MAAO,sFACN,CACDD,KAAM,IACNC,MAAO,kFACN,CACDD,KAAM,IACNC,MAAO,0MACN,CACDD,KAAM,KACNC,MAAO,UACN,CACDD,KAAM,KACNC,MAAO,oBACN,CACDD,KAAM,KACNC,MAAO,UACN,CACDD,KAAM,KACNC,MAAO,UACN,CACDD,KAAM,KACNC,MAAO,gBACN,CACDD,KAAM,KACNC,MAAO,UACN,CACDD,KAAM,IACNC,MAAO,0DACN,CACDD,KAAM,IACNC,MAAO,0EACN,CACDD,KAAM,IACNC,MAAO,oGACN,CACDD,KAAM,KACNC,MAAO,QACN,CACDD,KAAM,KACNC,MAAO,gBACN,CACDD,KAAM,IACNC,MAAO,0KACN,CACDD,KAAM,IACNC,MAAO,4BACN,CACDD,KAAM,KACNC,MAAO,UACN,CACDD,KAAM,KACNC,MAAO,UACN,CACDD,KAAM,KACNC,MAAO,UACN,CACDD,KAAM,MACNC,MAAO,UACN,CACDD,KAAM,MACNC,MAAO,UACN,CACDD,KAAM,IACNC,MAAO,wFACN,CACDD,KAAM,IAC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","file":"js/application-2b63896a8fe98bb54fb2.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs-test/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 57);\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 };","var modal = exports;\nvar $el;\n\nfunction eventListeners($el) {\n // Add a click event on various child elements to close the parent modal\n ($el.querySelectorAll('.modal-background, .modal-close, .modal-card-head .delete, .modal-card-foot .button') || []).forEach(($close) => {\n const $target = $close.closest('.modal');\n\n $close.addEventListener('click', (event) => {\n\t\t\tif(event.target.classList.contains('event-success')) {\n\t\t\t\tonSuccess();\n\t\t\t} else {\n\t\t\t\tonCancel();\n\t\t\t}\n modal.closeModal($target);\n });\n });\n\n // Add a keyboard event to close all modals\n document.addEventListener('keydown', (event) => {\n const e = event || window.event;\n\n if (e.keyCode === 27) { // Escape key\n modal.closeAllModals();\n }\n });\n}\n\nfunction onSuccess() {\n data = {};\n let section = document.querySelector(\".modal-card-body\");\n section.querySelectorAll(\"input\").forEach((inp, i) => {\n data[inp.id] = inp.value\n });\n\n const eventSuccess = new CustomEvent('success', {\n detail: data\n });\n\t$el.dispatchEvent(eventSuccess);\n}\n\nfunction onCancel() {\n const eventCancel = new Event('cancel');\n\t$el.dispatchEvent(eventCancel);\n}\n\nmodal.createModal = function(title, content, buttons = [{label: I18n.t('btn.close'), event: 'close', classes: ''}]) {\n\tlet html = `\n\t\t
\n\t\t\t
\n\t`\n\tif(title != '') {\n\t\thtml += `\n\t\t\t
\n\t\t\t\t

${title}

\n\t\t\t\t\n\t\t\t
\n\t\t`\n\t}\n\thtml += `\n\t\t\t
\n\t\t\t\t${content}\n\t\t\t
\n\t\t\t\n\t\t
\n\t`\n\n\tlet body = document.querySelector('body');\n\tlet modal = document.createElement('div');\n\tmodal.classList.add(\"modal\");\n\tmodal.innerHTML = html;\n\t$el = body.appendChild(modal);\n\n\treturn this;\n}\n\nmodal.openModal = function() {\n\t$el.classList.add('is-active');\n\teventListeners($el);\n\n\treturn $el;\n}\n\nmodal.closeModal = function($el) {\n\t$el.classList.remove('is-active');\n\t$el.remove();\n}\n\nmodal.closeAllModals = function () {\n\t(document.querySelectorAll('.modal') || []).forEach(($modal) => {\n\t\tmodal.closeModal($modal);\n\t});\n}\n\nmodal.addEventListener = function(event, callback) {\n\t$el.addEventListener(event, callback)\n}\n","// I18n.js\n// =======\n//\n// This small library provides the Rails I18n API on the Javascript.\n// You don't actually have to use Rails (or even Ruby) to use I18n.js.\n// Just make sure you export all translations in an object like this:\n//\n// I18n.translations.en = {\n// hello: \"Hello World\"\n// };\n//\n// See tests for specific formatting like numbers and dates.\n//\n// Using UMD pattern from\n// https://github.com/umdjs/umd#regular-module\n// `returnExports.js` version\n;\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(\"i18n\", function () {\n return factory(root);\n });\n } else if (typeof module === 'object' && module.exports) {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory(root);\n } else {\n // Browser globals (root is window)\n root.I18n = factory(root);\n }\n})(this, function (global) {\n \"use strict\"; // Use previously defined object if exists in current scope\n\n var I18n = global && global.I18n || {}; // Just cache the Array#slice function.\n\n var slice = Array.prototype.slice; // Apply number padding.\n\n var padding = function (number) {\n return (\"0\" + number.toString()).substr(-2);\n }; // Improved toFixed number rounding function with support for unprecise floating points\n // JavaScript's standard toFixed function does not round certain numbers correctly (for example 0.105 with precision 2).\n\n\n var toFixed = function (number, precision) {\n return decimalAdjust('round', number, -precision).toFixed(precision);\n }; // Is a given variable an object?\n // Borrowed from Underscore.js\n\n\n var isObject = function (obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object';\n };\n\n var isFunction = function (func) {\n var type = typeof func;\n return type === 'function';\n }; // Check if value is different than undefined and null;\n\n\n var isSet = function (value) {\n return typeof value !== 'undefined' && value !== null;\n }; // Is a given value an array?\n // Borrowed from Underscore.js\n\n\n var isArray = function (val) {\n if (Array.isArray) {\n return Array.isArray(val);\n }\n\n return Object.prototype.toString.call(val) === '[object Array]';\n };\n\n var isString = function (val) {\n return typeof val === 'string' || Object.prototype.toString.call(val) === '[object String]';\n };\n\n var isNumber = function (val) {\n return typeof val === 'number' || Object.prototype.toString.call(val) === '[object Number]';\n };\n\n var isBoolean = function (val) {\n return val === true || val === false;\n };\n\n var isNull = function (val) {\n return val === null;\n };\n\n var decimalAdjust = function (type, value, exp) {\n // If the exp is undefined or zero...\n if (typeof exp === 'undefined' || +exp === 0) {\n return Math[type](value);\n }\n\n value = +value;\n exp = +exp; // If the value is not a number or the exp is not an integer...\n\n if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {\n return NaN;\n } // Shift\n\n\n value = value.toString().split('e');\n value = Math[type](+(value[0] + 'e' + (value[1] ? +value[1] - exp : -exp))); // Shift back\n\n value = value.toString().split('e');\n return +(value[0] + 'e' + (value[1] ? +value[1] + exp : exp));\n };\n\n var lazyEvaluate = function (message, scope) {\n if (isFunction(message)) {\n return message(scope);\n } else {\n return message;\n }\n };\n\n var merge = function (dest, obj) {\n var key, value;\n\n for (key in obj) if (obj.hasOwnProperty(key)) {\n value = obj[key];\n\n if (isString(value) || isNumber(value) || isBoolean(value) || isArray(value) || isNull(value)) {\n dest[key] = value;\n } else {\n if (dest[key] == null) dest[key] = {};\n merge(dest[key], value);\n }\n }\n\n return dest;\n }; // Set default days/months translations.\n\n\n var DATE = {\n day_names: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n abbr_day_names: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n month_names: [null, \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n abbr_month_names: [null, \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n meridian: [\"AM\", \"PM\"]\n }; // Set default number format.\n\n var NUMBER_FORMAT = {\n precision: 3,\n separator: \".\",\n delimiter: \",\",\n strip_insignificant_zeros: false\n }; // Set default currency format.\n\n var CURRENCY_FORMAT = {\n unit: \"$\",\n precision: 2,\n format: \"%u%n\",\n sign_first: true,\n delimiter: \",\",\n separator: \".\"\n }; // Set default percentage format.\n\n var PERCENTAGE_FORMAT = {\n unit: \"%\",\n precision: 3,\n format: \"%n%u\",\n separator: \".\",\n delimiter: \"\"\n }; // Set default size units.\n\n var SIZE_UNITS = [null, \"kb\", \"mb\", \"gb\", \"tb\"]; // Other default options\n\n var DEFAULT_OPTIONS = {\n // Set default locale. This locale will be used when fallback is enabled and\n // the translation doesn't exist in a particular locale.\n defaultLocale: \"en\" // Set the current locale to `en`.\n ,\n locale: \"en\" // Set the translation key separator.\n ,\n defaultSeparator: \".\" // Set the placeholder format. Accepts `{{placeholder}}` and `%{placeholder}`.\n ,\n placeholder: /(?:\\{\\{|%\\{)(.*?)(?:\\}\\}?)/gm // Set if engine should fallback to the default locale when a translation\n // is missing.\n ,\n fallbacks: false // Set the default translation object.\n ,\n translations: {} // Set missing translation behavior. 'message' will display a message\n // that the translation is missing, 'guess' will try to guess the string\n ,\n missingBehaviour: 'message' // if you use missingBehaviour with 'message', but want to know that the\n // string is actually missing for testing purposes, you can prefix the\n // guessed string by setting the value here. By default, no prefix!\n ,\n missingTranslationPrefix: ''\n }; // Set default locale. This locale will be used when fallback is enabled and\n // the translation doesn't exist in a particular locale.\n\n I18n.reset = function () {\n var key;\n\n for (key in DEFAULT_OPTIONS) {\n this[key] = DEFAULT_OPTIONS[key];\n }\n }; // Much like `reset`, but only assign options if not already assigned\n\n\n I18n.initializeOptions = function () {\n var key;\n\n for (key in DEFAULT_OPTIONS) if (!isSet(this[key])) {\n this[key] = DEFAULT_OPTIONS[key];\n }\n };\n\n I18n.initializeOptions(); // Return a list of all locales that must be tried before returning the\n // missing translation message. By default, this will consider the inline option,\n // current locale and fallback locale.\n //\n // I18n.locales.get(\"de-DE\");\n // // [\"de-DE\", \"de\", \"en\"]\n //\n // You can define custom rules for any locale. Just make sure you return a array\n // containing all locales.\n //\n // // Default the Wookie locale to English.\n // I18n.locales[\"wk\"] = function(locale) {\n // return [\"en\"];\n // };\n //\n\n I18n.locales = {}; // Retrieve locales based on inline locale, current locale or default to\n // I18n's detection.\n\n I18n.locales.get = function (locale) {\n var result = this[locale] || this[I18n.locale] || this[\"default\"];\n\n if (isFunction(result)) {\n result = result(locale);\n }\n\n if (isArray(result) === false) {\n result = [result];\n }\n\n return result;\n }; // The default locale list.\n\n\n I18n.locales[\"default\"] = function (locale) {\n var locales = [],\n list = []; // Handle the inline locale option that can be provided to\n // the `I18n.t` options.\n\n if (locale) {\n locales.push(locale);\n } // Add the current locale to the list.\n\n\n if (!locale && I18n.locale) {\n locales.push(I18n.locale);\n } // Add the default locale if fallback strategy is enabled.\n\n\n if (I18n.fallbacks && I18n.defaultLocale) {\n locales.push(I18n.defaultLocale);\n } // Locale code format 1:\n // According to RFC4646 (https://www.ietf.org/rfc/rfc4646.txt)\n // language codes for Traditional Chinese should be `zh-Hant`\n //\n // But due to backward compatibility\n // We use older version of IETF language tag\n // @see https://www.w3.org/TR/html401/struct/dirlang.html\n // @see https://en.wikipedia.org/wiki/IETF_language_tag\n //\n // Format: `language-code = primary-code ( \"-\" subcode )*`\n //\n // primary-code uses ISO639-1\n // @see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n // @see https://www.iso.org/iso/home/standards/language_codes.htm\n //\n // subcode uses ISO 3166-1 alpha-2\n // @see https://en.wikipedia.org/wiki/ISO_3166\n // @see https://www.iso.org/iso/country_codes.htm\n //\n // @note\n // subcode can be in upper case or lower case\n // defining it in upper case is a convention only\n // Locale code format 2:\n // Format: `code = primary-code ( \"-\" region-code )*`\n // primary-code uses ISO 639-1\n // script-code uses ISO 15924\n // region-code uses ISO 3166-1 alpha-2\n // Example: zh-Hant-TW, en-HK, zh-Hant-CN\n //\n // It is similar to RFC4646 (or actually the same),\n // but seems to be limited to language, script, region\n // Compute each locale with its country code.\n // So this will return an array containing\n // `de-DE` and `de`\n // or\n // `zh-hans-tw`, `zh-hans`, `zh`\n // locales.\n\n\n locales.forEach(function (locale) {\n var localeParts = locale.split(\"-\");\n var firstFallback = null;\n var secondFallback = null;\n\n if (localeParts.length === 3) {\n firstFallback = [localeParts[0], localeParts[1]].join(\"-\");\n secondFallback = localeParts[0];\n } else if (localeParts.length === 2) {\n firstFallback = localeParts[0];\n }\n\n if (list.indexOf(locale) === -1) {\n list.push(locale);\n }\n\n if (!I18n.fallbacks) {\n return;\n }\n\n [firstFallback, secondFallback].forEach(function (nullableFallbackLocale) {\n // We don't want null values\n if (typeof nullableFallbackLocale === \"undefined\") {\n return;\n }\n\n if (nullableFallbackLocale === null) {\n return;\n } // We don't want duplicate values\n //\n // Comparing with `locale` first is faster than\n // checking whether value's presence in the list\n\n\n if (nullableFallbackLocale === locale) {\n return;\n }\n\n if (list.indexOf(nullableFallbackLocale) !== -1) {\n return;\n }\n\n list.push(nullableFallbackLocale);\n });\n }); // No locales set? English it is.\n\n if (!locales.length) {\n locales.push(\"en\");\n }\n\n return list;\n }; // Hold pluralization rules.\n\n\n I18n.pluralization = {}; // Return the pluralizer for a specific locale.\n // If no specify locale is found, then I18n's default will be used.\n\n I18n.pluralization.get = function (locale) {\n return this[locale] || this[I18n.locale] || this[\"default\"];\n }; // The default pluralizer rule.\n // It detects the `zero`, `one`, and `other` scopes.\n\n\n I18n.pluralization[\"default\"] = function (count) {\n switch (count) {\n case 0:\n return [\"zero\", \"other\"];\n\n case 1:\n return [\"one\"];\n\n default:\n return [\"other\"];\n }\n }; // Return current locale. If no locale has been set, then\n // the current locale will be the default locale.\n\n\n I18n.currentLocale = function () {\n return this.locale || this.defaultLocale;\n }; // Check if value is different than undefined and null;\n\n\n I18n.isSet = isSet; // Find and process the translation using the provided scope and options.\n // This is used internally by some functions and should not be used as an\n // public API.\n\n I18n.lookup = function (scope, options) {\n options = options || {};\n var locales = this.locales.get(options.locale).slice(),\n locale,\n scopes,\n fullScope,\n translations;\n fullScope = this.getFullScope(scope, options);\n\n while (locales.length) {\n locale = locales.shift();\n scopes = fullScope.split(options.separator || this.defaultSeparator);\n translations = this.translations[locale];\n\n if (!translations) {\n continue;\n }\n\n while (scopes.length) {\n translations = translations[scopes.shift()];\n\n if (translations === undefined || translations === null) {\n break;\n }\n }\n\n if (translations !== undefined && translations !== null) {\n return translations;\n }\n }\n\n if (isSet(options.defaultValue)) {\n return lazyEvaluate(options.defaultValue, scope);\n }\n }; // lookup pluralization rule key into translations\n\n\n I18n.pluralizationLookupWithoutFallback = function (count, locale, translations) {\n var pluralizer = this.pluralization.get(locale),\n pluralizerKeys = pluralizer(count),\n pluralizerKey,\n message;\n\n if (translations && isObject(translations)) {\n while (pluralizerKeys.length) {\n pluralizerKey = pluralizerKeys.shift();\n\n if (isSet(translations[pluralizerKey])) {\n message = translations[pluralizerKey];\n break;\n }\n }\n }\n\n return message;\n }; // Lookup dedicated to pluralization\n\n\n I18n.pluralizationLookup = function (count, scope, options) {\n options = options || {};\n var locales = this.locales.get(options.locale).slice(),\n locale,\n scopes,\n translations,\n message;\n scope = this.getFullScope(scope, options);\n\n while (locales.length) {\n locale = locales.shift();\n scopes = scope.split(options.separator || this.defaultSeparator);\n translations = this.translations[locale];\n\n if (!translations) {\n continue;\n }\n\n while (scopes.length) {\n translations = translations[scopes.shift()];\n\n if (!isObject(translations)) {\n break;\n }\n\n if (scopes.length === 0) {\n message = this.pluralizationLookupWithoutFallback(count, locale, translations);\n }\n }\n\n if (typeof message !== \"undefined\" && message !== null) {\n break;\n }\n }\n\n if (typeof message === \"undefined\" || message === null) {\n if (isSet(options.defaultValue)) {\n if (isObject(options.defaultValue)) {\n message = this.pluralizationLookupWithoutFallback(count, options.locale, options.defaultValue);\n } else {\n message = options.defaultValue;\n }\n\n translations = options.defaultValue;\n }\n }\n\n return {\n message: message,\n translations: translations\n };\n }; // Rails changed the way the meridian is stored.\n // It started with `date.meridian` returning an array,\n // then it switched to `time.am` and `time.pm`.\n // This function abstracts this difference and returns\n // the correct meridian or the default value when none is provided.\n\n\n I18n.meridian = function () {\n var time = this.lookup(\"time\");\n var date = this.lookup(\"date\");\n\n if (time && time.am && time.pm) {\n return [time.am, time.pm];\n } else if (date && date.meridian) {\n return date.meridian;\n } else {\n return DATE.meridian;\n }\n }; // Merge serveral hash options, checking if value is set before\n // overwriting any value. The precedence is from left to right.\n //\n // I18n.prepareOptions({name: \"John Doe\"}, {name: \"Mary Doe\", role: \"user\"});\n // #=> {name: \"John Doe\", role: \"user\"}\n //\n\n\n I18n.prepareOptions = function () {\n var args = slice.call(arguments),\n options = {},\n subject;\n\n while (args.length) {\n subject = args.shift();\n\n if (typeof subject != \"object\") {\n continue;\n }\n\n for (var attr in subject) {\n if (!subject.hasOwnProperty(attr)) {\n continue;\n }\n\n if (isSet(options[attr])) {\n continue;\n }\n\n options[attr] = subject[attr];\n }\n }\n\n return options;\n }; // Generate a list of translation options for default fallbacks.\n // `defaultValue` is also deleted from options as it is returned as part of\n // the translationOptions array.\n\n\n I18n.createTranslationOptions = function (scope, options) {\n var translationOptions = [{\n scope: scope\n }]; // Defaults should be an array of hashes containing either\n // fallback scopes or messages\n\n if (isSet(options.defaults)) {\n translationOptions = translationOptions.concat(options.defaults);\n } // Maintain support for defaultValue. Since it is always a message\n // insert it in to the translation options as such.\n\n\n if (isSet(options.defaultValue)) {\n translationOptions.push({\n message: options.defaultValue\n });\n }\n\n return translationOptions;\n }; // Translate the given scope with the provided options.\n\n\n I18n.translate = function (scope, options) {\n options = options || {};\n var translationOptions = this.createTranslationOptions(scope, options);\n var translation;\n var usedScope = scope;\n var optionsWithoutDefault = this.prepareOptions(options);\n delete optionsWithoutDefault.defaultValue; // Iterate through the translation options until a translation\n // or message is found.\n\n var translationFound = translationOptions.some(function (translationOption) {\n if (isSet(translationOption.scope)) {\n usedScope = translationOption.scope;\n translation = this.lookup(usedScope, optionsWithoutDefault);\n } else if (isSet(translationOption.message)) {\n translation = lazyEvaluate(translationOption.message, scope);\n }\n\n if (translation !== undefined && translation !== null) {\n return true;\n }\n }, this);\n\n if (!translationFound) {\n return this.missingTranslation(scope, options);\n }\n\n if (typeof translation === \"string\") {\n translation = this.interpolate(translation, options);\n } else if (isArray(translation)) {\n translation = translation.map(function (t) {\n return typeof t === \"string\" ? this.interpolate(t, options) : t;\n }, this);\n } else if (isObject(translation) && isSet(options.count)) {\n translation = this.pluralize(options.count, usedScope, options);\n }\n\n return translation;\n }; // This function interpolates the all variables in the given message.\n\n\n I18n.interpolate = function (message, options) {\n if (message == null) {\n return message;\n }\n\n options = options || {};\n var matches = message.match(this.placeholder),\n placeholder,\n value,\n name,\n regex;\n\n if (!matches) {\n return message;\n }\n\n while (matches.length) {\n placeholder = matches.shift();\n name = placeholder.replace(this.placeholder, \"$1\");\n\n if (isSet(options[name])) {\n value = options[name].toString().replace(/\\$/gm, \"_#$#_\");\n } else if (name in options) {\n value = this.nullPlaceholder(placeholder, message, options);\n } else {\n value = this.missingPlaceholder(placeholder, message, options);\n }\n\n regex = new RegExp(placeholder.replace(/{/gm, \"\\\\{\").replace(/}/gm, \"\\\\}\"));\n message = message.replace(regex, value);\n }\n\n return message.replace(/_#\\$#_/g, \"$\");\n }; // Pluralize the given scope using the `count` value.\n // The pluralized translation may have other placeholders,\n // which will be retrieved from `options`.\n\n\n I18n.pluralize = function (count, scope, options) {\n options = this.prepareOptions({\n count: String(count)\n }, options);\n var pluralizer, result;\n result = this.pluralizationLookup(count, scope, options);\n\n if (typeof result.translations === \"undefined\" || result.translations == null) {\n return this.missingTranslation(scope, options);\n }\n\n if (typeof result.message !== \"undefined\" && result.message != null) {\n return this.interpolate(result.message, options);\n } else {\n pluralizer = this.pluralization.get(options.locale);\n return this.missingTranslation(scope + '.' + pluralizer(count)[0], options);\n }\n }; // Return a missing translation message for the given parameters.\n\n\n I18n.missingTranslation = function (scope, options) {\n //guess intended string\n if (this.missingBehaviour === 'guess') {\n //get only the last portion of the scope\n var s = scope.split('.').slice(-1)[0]; //replace underscore with space && camelcase with space and lowercase letter\n\n return (this.missingTranslationPrefix.length > 0 ? this.missingTranslationPrefix : '') + s.replace(/_/g, ' ').replace(/([a-z])([A-Z])/g, function (match, p1, p2) {\n return p1 + ' ' + p2.toLowerCase();\n });\n }\n\n var localeForTranslation = options != null && options.locale != null ? options.locale : this.currentLocale();\n var fullScope = this.getFullScope(scope, options);\n var fullScopeWithLocale = [localeForTranslation, fullScope].join(options.separator || this.defaultSeparator);\n return '[missing \"' + fullScopeWithLocale + '\" translation]';\n }; // Return a missing placeholder message for given parameters\n\n\n I18n.missingPlaceholder = function (placeholder, message, options) {\n return \"[missing \" + placeholder + \" value]\";\n };\n\n I18n.nullPlaceholder = function () {\n return I18n.missingPlaceholder.apply(I18n, arguments);\n }; // Format number using localization rules.\n // The options will be retrieved from the `number.format` scope.\n // If this isn't present, then the following options will be used:\n //\n // - `precision`: `3`\n // - `separator`: `\".\"`\n // - `delimiter`: `\",\"`\n // - `strip_insignificant_zeros`: `false`\n //\n // You can also override these options by providing the `options` argument.\n //\n\n\n I18n.toNumber = function (number, options) {\n options = this.prepareOptions(options, this.lookup(\"number.format\"), NUMBER_FORMAT);\n var negative = number < 0,\n string = toFixed(Math.abs(number), options.precision).toString(),\n parts = string.split(\".\"),\n precision,\n buffer = [],\n formattedNumber,\n format = options.format || \"%n\",\n sign = negative ? \"-\" : \"\";\n number = parts[0];\n precision = parts[1];\n\n while (number.length > 0) {\n buffer.unshift(number.substr(Math.max(0, number.length - 3), 3));\n number = number.substr(0, number.length - 3);\n }\n\n formattedNumber = buffer.join(options.delimiter);\n\n if (options.strip_insignificant_zeros && precision) {\n precision = precision.replace(/0+$/, \"\");\n }\n\n if (options.precision > 0 && precision) {\n formattedNumber += options.separator + precision;\n }\n\n if (options.sign_first) {\n format = \"%s\" + format;\n } else {\n format = format.replace(\"%n\", \"%s%n\");\n }\n\n formattedNumber = format.replace(\"%u\", options.unit).replace(\"%n\", formattedNumber).replace(\"%s\", sign);\n return formattedNumber;\n }; // Format currency with localization rules.\n // The options will be retrieved from the `number.currency.format` and\n // `number.format` scopes, in that order.\n //\n // Any missing option will be retrieved from the `I18n.toNumber` defaults and\n // the following options:\n //\n // - `unit`: `\"$\"`\n // - `precision`: `2`\n // - `format`: `\"%u%n\"`\n // - `delimiter`: `\",\"`\n // - `separator`: `\".\"`\n //\n // You can also override these options by providing the `options` argument.\n //\n\n\n I18n.toCurrency = function (number, options) {\n options = this.prepareOptions(options, this.lookup(\"number.currency.format\", options), this.lookup(\"number.format\", options), CURRENCY_FORMAT);\n return this.toNumber(number, options);\n }; // Localize several values.\n // You can provide the following scopes: `currency`, `number`, or `percentage`.\n // If you provide a scope that matches the `/^(date|time)/` regular expression\n // then the `value` will be converted by using the `I18n.toTime` function.\n //\n // It will default to the value's `toString` function.\n //\n\n\n I18n.localize = function (scope, value, options) {\n options || (options = {});\n\n switch (scope) {\n case \"currency\":\n return this.toCurrency(value, options);\n\n case \"number\":\n scope = this.lookup(\"number.format\", options);\n return this.toNumber(value, scope);\n\n case \"percentage\":\n return this.toPercentage(value, options);\n\n default:\n var localizedValue;\n\n if (scope.match(/^(date|time)/)) {\n localizedValue = this.toTime(scope, value, options);\n } else {\n localizedValue = value.toString();\n }\n\n return this.interpolate(localizedValue, options);\n }\n }; // Parse a given `date` string into a JavaScript Date object.\n // This function is time zone aware.\n //\n // The following string formats are recognized:\n //\n // yyyy-mm-dd\n // yyyy-mm-dd[ T]hh:mm::ss\n // yyyy-mm-dd[ T]hh:mm::ss\n // yyyy-mm-dd[ T]hh:mm::ssZ\n // yyyy-mm-dd[ T]hh:mm::ss+0000\n // yyyy-mm-dd[ T]hh:mm::ss+00:00\n // yyyy-mm-dd[ T]hh:mm::ss.123Z\n //\n\n\n I18n.parseDate = function (date) {\n var matches, convertedDate, fraction; // A date input of `null` or `undefined` will be returned as-is\n\n if (date == null) {\n return date;\n } // we have a date, so just return it.\n\n\n if (typeof date === \"object\") {\n return date;\n }\n\n matches = date.toString().match(/(\\d{4})-(\\d{2})-(\\d{2})(?:[ T](\\d{2}):(\\d{2}):(\\d{2})([\\.,]\\d{1,3})?)?(Z|\\+00:?00)?/);\n\n if (matches) {\n for (var i = 1; i <= 6; i++) {\n matches[i] = parseInt(matches[i], 10) || 0;\n } // month starts on 0\n\n\n matches[2] -= 1;\n fraction = matches[7] ? 1000 * (\"0\" + matches[7]) : null;\n\n if (matches[8]) {\n convertedDate = new Date(Date.UTC(matches[1], matches[2], matches[3], matches[4], matches[5], matches[6], fraction));\n } else {\n convertedDate = new Date(matches[1], matches[2], matches[3], matches[4], matches[5], matches[6], fraction);\n }\n } else if (typeof date == \"number\") {\n // UNIX timestamp\n convertedDate = new Date();\n convertedDate.setTime(date);\n } else if (date.match(/([A-Z][a-z]{2}) ([A-Z][a-z]{2}) (\\d+) (\\d+:\\d+:\\d+) ([+-]\\d+) (\\d+)/)) {\n // This format `Wed Jul 20 13:03:39 +0000 2011` is parsed by\n // webkit/firefox, but not by IE, so we must parse it manually.\n convertedDate = new Date();\n convertedDate.setTime(Date.parse([RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$6, RegExp.$4, RegExp.$5].join(\" \")));\n } else if (date.match(/\\d+ \\d+:\\d+:\\d+ [+-]\\d+ \\d+/)) {\n // a valid javascript format with timezone info\n convertedDate = new Date();\n convertedDate.setTime(Date.parse(date));\n } else {\n // an arbitrary javascript string\n convertedDate = new Date();\n convertedDate.setTime(Date.parse(date));\n }\n\n return convertedDate;\n }; // Formats time according to the directives in the given format string.\n // The directives begins with a percent (%) character. Any text not listed as a\n // directive will be passed through to the output string.\n //\n // The accepted formats are:\n //\n // %a - The abbreviated weekday name (Sun)\n // %A - The full weekday name (Sunday)\n // %b - The abbreviated month name (Jan)\n // %B - The full month name (January)\n // %c - The preferred local date and time representation\n // %d - Day of the month (01..31)\n // %-d - Day of the month (1..31)\n // %H - Hour of the day, 24-hour clock (00..23)\n // %-H/%k - Hour of the day, 24-hour clock (0..23)\n // %I - Hour of the day, 12-hour clock (01..12)\n // %-I/%l - Hour of the day, 12-hour clock (1..12)\n // %m - Month of the year (01..12)\n // %-m - Month of the year (1..12)\n // %M - Minute of the hour (00..59)\n // %-M - Minute of the hour (0..59)\n // %p - Meridian indicator (AM or PM)\n // %P - Meridian indicator (am or pm)\n // %S - Second of the minute (00..60)\n // %-S - Second of the minute (0..60)\n // %w - Day of the week (Sunday is 0, 0..6)\n // %y - Year without a century (00..99)\n // %-y - Year without a century (0..99)\n // %Y - Year with century\n // %z/%Z - Timezone offset (+0545)\n //\n\n\n I18n.strftime = function (date, format, options) {\n var options = this.lookup(\"date\", options),\n meridianOptions = I18n.meridian();\n\n if (!options) {\n options = {};\n }\n\n options = this.prepareOptions(options, DATE);\n\n if (isNaN(date.getTime())) {\n throw new Error('I18n.strftime() requires a valid date object, but received an invalid date.');\n }\n\n var weekDay = date.getDay(),\n day = date.getDate(),\n year = date.getFullYear(),\n month = date.getMonth() + 1,\n hour = date.getHours(),\n hour12 = hour,\n meridian = hour > 11 ? 1 : 0,\n secs = date.getSeconds(),\n mins = date.getMinutes(),\n offset = date.getTimezoneOffset(),\n absOffsetHours = Math.floor(Math.abs(offset / 60)),\n absOffsetMinutes = Math.abs(offset) - absOffsetHours * 60,\n timezoneoffset = (offset > 0 ? \"-\" : \"+\") + (absOffsetHours.toString().length < 2 ? \"0\" + absOffsetHours : absOffsetHours) + (absOffsetMinutes.toString().length < 2 ? \"0\" + absOffsetMinutes : absOffsetMinutes);\n\n if (hour12 > 12) {\n hour12 = hour12 - 12;\n } else if (hour12 === 0) {\n hour12 = 12;\n }\n\n format = format.replace(\"%a\", options.abbr_day_names[weekDay]);\n format = format.replace(\"%A\", options.day_names[weekDay]);\n format = format.replace(\"%b\", options.abbr_month_names[month]);\n format = format.replace(\"%B\", options.month_names[month]);\n format = format.replace(\"%d\", padding(day));\n format = format.replace(\"%e\", day);\n format = format.replace(\"%-d\", day);\n format = format.replace(\"%H\", padding(hour));\n format = format.replace(\"%-H\", hour);\n format = format.replace(\"%k\", hour);\n format = format.replace(\"%I\", padding(hour12));\n format = format.replace(\"%-I\", hour12);\n format = format.replace(\"%l\", hour12);\n format = format.replace(\"%m\", padding(month));\n format = format.replace(\"%-m\", month);\n format = format.replace(\"%M\", padding(mins));\n format = format.replace(\"%-M\", mins);\n format = format.replace(\"%p\", meridianOptions[meridian]);\n format = format.replace(\"%P\", meridianOptions[meridian].toLowerCase());\n format = format.replace(\"%S\", padding(secs));\n format = format.replace(\"%-S\", secs);\n format = format.replace(\"%w\", weekDay);\n format = format.replace(\"%y\", padding(year));\n format = format.replace(\"%-y\", padding(year).replace(/^0+/, \"\"));\n format = format.replace(\"%Y\", year);\n format = format.replace(\"%z\", timezoneoffset);\n format = format.replace(\"%Z\", timezoneoffset);\n return format;\n }; // Convert the given dateString into a formatted date.\n\n\n I18n.toTime = function (scope, dateString, options) {\n var date = this.parseDate(dateString),\n format = this.lookup(scope, options); // A date input of `null` or `undefined` will be returned as-is\n\n if (date == null) {\n return date;\n }\n\n var date_string = date.toString();\n\n if (date_string.match(/invalid/i)) {\n return date_string;\n }\n\n if (!format) {\n return date_string;\n }\n\n return this.strftime(date, format, options);\n }; // Convert a number into a formatted percentage value.\n\n\n I18n.toPercentage = function (number, options) {\n options = this.prepareOptions(options, this.lookup(\"number.percentage.format\", options), this.lookup(\"number.format\", options), PERCENTAGE_FORMAT);\n return this.toNumber(number, options);\n }; // Convert a number into a readable size representation.\n\n\n I18n.toHumanSize = function (number, options) {\n var kb = 1024,\n size = number,\n iterations = 0,\n unit,\n precision,\n fullScope;\n\n while (size >= kb && iterations < 4) {\n size = size / kb;\n iterations += 1;\n }\n\n if (iterations === 0) {\n fullScope = this.getFullScope(\"number.human.storage_units.units.byte\", options);\n unit = this.t(fullScope, {\n count: size\n });\n precision = 0;\n } else {\n fullScope = this.getFullScope(\"number.human.storage_units.units.\" + SIZE_UNITS[iterations], options);\n unit = this.t(fullScope);\n precision = size - Math.floor(size) === 0 ? 0 : 1;\n }\n\n options = this.prepareOptions(options, {\n unit: unit,\n precision: precision,\n format: \"%n%u\",\n delimiter: \"\"\n });\n return this.toNumber(size, options);\n };\n\n I18n.getFullScope = function (scope, options) {\n options = options || {}; // Deal with the scope as an array.\n\n if (isArray(scope)) {\n scope = scope.join(options.separator || this.defaultSeparator);\n } // Deal with the scope option provided through the second argument.\n //\n // I18n.t('hello', {scope: 'greetings'});\n //\n\n\n if (options.scope) {\n scope = [options.scope, scope].join(options.separator || this.defaultSeparator);\n }\n\n return scope;\n };\n /**\n * Merge obj1 with obj2 (shallow merge), without modifying inputs\n * @param {Object} obj1\n * @param {Object} obj2\n * @returns {Object} Merged values of obj1 and obj2\n *\n * In order to support ES3, `Object.prototype.hasOwnProperty.call` is used\n * Idea is from:\n * https://stackoverflow.com/questions/8157700/object-has-no-hasownproperty-method-i-e-its-undefined-ie8\n */\n\n\n I18n.extend = function (obj1, obj2) {\n if (typeof obj1 === \"undefined\" && typeof obj2 === \"undefined\") {\n return {};\n }\n\n return merge(obj1, obj2);\n }; // Set aliases, so we can save some typing.\n\n\n I18n.t = I18n.translate.bind(I18n);\n I18n.l = I18n.localize.bind(I18n);\n I18n.p = I18n.pluralize.bind(I18n);\n return I18n;\n});","\"use strict\";\n\nvar codes = require(\"./codes.json\");\n\nvar removeDiacritics = require('diacritics').remove;\n\nvar registeredLocales = {};\n/*\n * All codes map to ISO 3166-1 alpha-2\n */\n\nvar alpha2 = {},\n alpha3 = {},\n numeric = {},\n invertedNumeric = {};\ncodes.forEach(function (codeInformation) {\n var s = codeInformation;\n alpha2[s[0]] = s[1];\n alpha3[s[1]] = s[0];\n numeric[s[2]] = s[0];\n invertedNumeric[s[0]] = s[2];\n});\n\nfunction formatNumericCode(code) {\n return String('000' + (code ? code : '')).slice(-3);\n}\n\nfunction registerLocale(localeData) {\n if (!localeData.locale) {\n throw new TypeError('Missing localeData.locale');\n }\n\n if (!localeData.countries) {\n throw new TypeError('Missing localeData.countries');\n }\n\n registeredLocales[localeData.locale] = localeData.countries;\n}\n\nexports.registerLocale = registerLocale;\n/*\n * @param code Alpha-3 code\n * @return Alpha-2 code or undefined\n */\n\nfunction alpha3ToAlpha2(code) {\n return alpha3[code];\n}\n\nexports.alpha3ToAlpha2 = alpha3ToAlpha2;\n/*\n * @param code Alpha-2 code\n * @return Alpha-3 code or undefined\n */\n\nfunction alpha2ToAlpha3(code) {\n return alpha2[code];\n}\n\nexports.alpha2ToAlpha3 = alpha2ToAlpha3;\n/*\n * @param code Alpha-3 code\n * @return Numeric code or undefined\n */\n\nfunction alpha3ToNumeric(code) {\n return invertedNumeric[alpha3ToAlpha2(code)];\n}\n\nexports.alpha3ToNumeric = alpha3ToNumeric;\n/*\n * @param code Alpha-2 code\n * @return Numeric code or undefined\n */\n\nfunction alpha2ToNumeric(code) {\n return invertedNumeric[code];\n}\n\nexports.alpha2ToNumeric = alpha2ToNumeric;\n/*\n * @param code Numeric code\n * @return Alpha-3 code or undefined\n */\n\nfunction numericToAlpha3(code) {\n var padded = formatNumericCode(code);\n return alpha2ToAlpha3(numeric[padded]);\n}\n\nexports.numericToAlpha3 = numericToAlpha3;\n/*\n * @param code Numeric code\n * @return Alpha-2 code or undefined\n */\n\nfunction numericToAlpha2(code) {\n var padded = formatNumericCode(code);\n return numeric[padded];\n}\n\nexports.numericToAlpha2 = numericToAlpha2;\n/*\n * @param code ISO 3166-1 alpha-2, alpha-3 or numeric code\n * @return ISO 3166-1 alpha-3\n */\n\nfunction toAlpha3(code) {\n if (typeof code === \"string\") {\n if (/^[0-9]*$/.test(code)) {\n return numericToAlpha3(code);\n }\n\n if (code.length === 2) {\n return alpha2ToAlpha3(code.toUpperCase());\n }\n\n if (code.length === 3) {\n return code.toUpperCase();\n }\n }\n\n if (typeof code === \"number\") {\n return numericToAlpha3(code);\n }\n\n return undefined;\n}\n\nexports.toAlpha3 = toAlpha3;\n/*\n * @param code ISO 3166-1 alpha-2, alpha-3 or numeric code\n * @return ISO 3166-1 alpha-2\n */\n\nfunction toAlpha2(code) {\n if (typeof code === \"string\") {\n if (/^[0-9]*$/.test(code)) {\n return numericToAlpha2(code);\n }\n\n if (code.length === 2) {\n return code.toUpperCase();\n }\n\n if (code.length === 3) {\n return alpha3ToAlpha2(code.toUpperCase());\n }\n }\n\n if (typeof code === \"number\") {\n return numericToAlpha2(code);\n }\n\n return undefined;\n}\n\nexports.toAlpha2 = toAlpha2;\n/*\n * @param code ISO 3166-1 alpha-2, alpha-3 or numeric code\n * @param lang language for country name\n * @return name or undefined\n */\n\nexports.getName = function (code, lang) {\n try {\n const codeMaps = registeredLocales[lang.toLowerCase()];\n const names = codeMaps[toAlpha2(code)];\n return Array.isArray(names) ? names[0] : names;\n } catch (err) {\n return undefined;\n }\n};\n/*\n * @param lang language for country names\n * @return Object of country code mapped to county name\n */\n\n\nexports.getNames = function (lang) {\n var d = registeredLocales[lang.toLowerCase()];\n\n if (d === undefined) {\n return {};\n }\n\n return d;\n};\n/*\n * @param name name\n * @param lang language for country name\n * @return ISO 3166-1 alpha-2 or undefined\n */\n\n\nexports.getAlpha2Code = function (name, lang) {\n const normalizeString = string => string.toLowerCase();\n\n const areSimilar = (a, b) => normalizeString(a) === normalizeString(b);\n\n try {\n const codenames = registeredLocales[lang.toLowerCase()];\n\n for (const p in codenames) {\n if (!codenames.hasOwnProperty(p)) {\n continue;\n }\n\n if (typeof codenames[p] === \"string\") {\n if (areSimilar(codenames[p], name)) {\n return p;\n }\n }\n\n if (Array.isArray(codenames[p])) {\n for (const mappedName of codenames[p]) {\n if (areSimilar(mappedName, name)) {\n return p;\n }\n }\n }\n }\n\n return undefined;\n } catch (err) {\n return undefined;\n }\n};\n/*\n * @param name name\n * @param lang language for country name\n * @return ISO 3166-1 alpha-2 or undefined\n */\n\n\nexports.getSimpleAlpha2Code = function (name, lang) {\n const normalizeString = string => removeDiacritics(string.toLowerCase());\n\n const areSimilar = (a, b) => normalizeString(a) === normalizeString(b);\n\n try {\n const codenames = registeredLocales[lang.toLowerCase()];\n\n for (const p in codenames) {\n if (!codenames.hasOwnProperty(p)) {\n continue;\n }\n\n if (typeof codenames[p] === \"string\") {\n if (areSimilar(codenames[p], name)) {\n return p;\n }\n }\n\n if (Array.isArray(codenames[p])) {\n for (const mappedName of codenames[p]) {\n if (areSimilar(mappedName, name)) {\n return p;\n }\n }\n }\n }\n\n return undefined;\n } catch (err) {\n return undefined;\n }\n};\n/*\n * @return Object of alpha-2 codes mapped to alpha-3 codes\n */\n\n\nexports.getAlpha2Codes = function () {\n return alpha2;\n};\n/*\n * @param name name\n * @param lang language for country name\n * @return ISO 3166-1 alpha-3 or undefined\n */\n\n\nexports.getAlpha3Code = function (name, lang) {\n var alpha2 = this.getAlpha2Code(name, lang);\n\n if (alpha2) {\n return this.toAlpha3(alpha2);\n } else {\n return undefined;\n }\n};\n/*\n * @param name name\n * @param lang language for country name\n * @return ISO 3166-1 alpha-3 or undefined\n */\n\n\nexports.getSimpleAlpha3Code = function (name, lang) {\n var alpha2 = this.getSimpleAlpha2Code(name, lang);\n\n if (alpha2) {\n return this.toAlpha3(alpha2);\n } else {\n return undefined;\n }\n};\n/*\n * @return Object of alpha-3 codes mapped to alpha-2 codes\n */\n\n\nexports.getAlpha3Codes = function () {\n return alpha3;\n};\n/*\n * @return Object of numeric codes mapped to alpha-2 codes\n */\n\n\nexports.getNumericCodes = function () {\n return numeric;\n};\n/*\n * @return Array of supported languages\n */\n\n\nexports.langs = function () {\n return Object.keys(registeredLocales);\n};\n/*\n * @param code ISO 3166-1 alpha-2, alpha-3 or numeric code\n * @return Boolean\n */\n\n\nexports.isValid = function (code) {\n if (!code) {\n return false;\n }\n\n var coerced = code.toString().toUpperCase();\n return alpha3.hasOwnProperty(coerced) || alpha2.hasOwnProperty(coerced) || numeric.hasOwnProperty(coerced);\n};","export default class TinyGesture {\n constructor(element, options) {\n this.element = element;\n this.touchStartX = null;\n this.touchStartY = null;\n this.touchEndX = null;\n this.touchEndY = null;\n this.touchMoveX = null;\n this.touchMoveY = null;\n this.velocityX = null;\n this.velocityY = null;\n this.longPressTimer = null;\n this.doubleTapTimer = null;\n this.doubleTapWaiting = false;\n this.thresholdX = 0;\n this.thresholdY = 0;\n this.disregardVelocityThresholdX = 0;\n this.disregardVelocityThresholdY = 0;\n this.swipingHorizontal = false;\n this.swipingVertical = false;\n this.swipingDirection = null;\n this.swipedHorizontal = false;\n this.swipedVertical = false;\n this.handlers = {\n panstart: [],\n panmove: [],\n panend: [],\n swipeleft: [],\n swiperight: [],\n swipeup: [],\n swipedown: [],\n tap: [],\n doubletap: [],\n longpress: []\n };\n this._onTouchStart = this.onTouchStart.bind(this);\n this._onTouchMove = this.onTouchMove.bind(this);\n this._onTouchEnd = this.onTouchEnd.bind(this);\n this.opts = Object.assign({}, TinyGesture.defaults, options);\n this.element.addEventListener('touchstart', this._onTouchStart, passiveIfSupported);\n this.element.addEventListener('touchmove', this._onTouchMove, passiveIfSupported);\n this.element.addEventListener('touchend', this._onTouchEnd, passiveIfSupported);\n\n if (this.opts.mouseSupport && !('ontouchstart' in window)) {\n this.element.addEventListener('mousedown', this._onTouchStart, passiveIfSupported);\n document.addEventListener('mousemove', this._onTouchMove, passiveIfSupported);\n document.addEventListener('mouseup', this._onTouchEnd, passiveIfSupported);\n }\n }\n\n destroy() {\n var _a, _b;\n\n this.element.removeEventListener('touchstart', this._onTouchStart);\n this.element.removeEventListener('touchmove', this._onTouchMove);\n this.element.removeEventListener('touchend', this._onTouchEnd);\n this.element.removeEventListener('mousedown', this._onTouchStart);\n document.removeEventListener('mousemove', this._onTouchMove);\n document.removeEventListener('mouseup', this._onTouchEnd);\n clearTimeout((_a = this.longPressTimer) !== null && _a !== void 0 ? _a : undefined);\n clearTimeout((_b = this.doubleTapTimer) !== null && _b !== void 0 ? _b : undefined);\n }\n\n on(type, fn) {\n if (this.handlers[type]) {\n this.handlers[type].push(fn);\n return {\n type,\n fn,\n cancel: () => this.off(type, fn)\n };\n }\n }\n\n off(type, fn) {\n if (this.handlers[type]) {\n const idx = this.handlers[type].indexOf(fn);\n\n if (idx !== -1) {\n this.handlers[type].splice(idx, 1);\n }\n }\n }\n\n fire(type, event) {\n for (let i = 0; i < this.handlers[type].length; i++) {\n this.handlers[type][i](event);\n }\n }\n\n onTouchStart(event) {\n this.thresholdX = this.opts.threshold('x', this);\n this.thresholdY = this.opts.threshold('y', this);\n this.disregardVelocityThresholdX = this.opts.disregardVelocityThreshold('x', this);\n this.disregardVelocityThresholdY = this.opts.disregardVelocityThreshold('y', this);\n this.touchStartX = event.type === 'mousedown' ? event.screenX : event.changedTouches[0].screenX;\n this.touchStartY = event.type === 'mousedown' ? event.screenY : event.changedTouches[0].screenY;\n this.touchMoveX = null;\n this.touchMoveY = null;\n this.touchEndX = null;\n this.touchEndY = null;\n this.swipingDirection = null;\n this.longPressTimer = setTimeout(() => this.fire('longpress', event), this.opts.longPressTime);\n this.fire('panstart', event);\n }\n\n onTouchMove(event) {\n var _a, _b, _c, _d, _e;\n\n if (event.type === 'mousemove' && (!this.touchStartX || this.touchEndX !== null)) {\n return;\n }\n\n const touchMoveX = (event.type === 'mousemove' ? event.screenX : event.changedTouches[0].screenX) - ((_a = this.touchStartX) !== null && _a !== void 0 ? _a : 0);\n this.velocityX = touchMoveX - ((_b = this.touchMoveX) !== null && _b !== void 0 ? _b : 0);\n this.touchMoveX = touchMoveX;\n const touchMoveY = (event.type === 'mousemove' ? event.screenY : event.changedTouches[0].screenY) - ((_c = this.touchStartY) !== null && _c !== void 0 ? _c : 0);\n this.velocityY = touchMoveY - ((_d = this.touchMoveY) !== null && _d !== void 0 ? _d : 0);\n this.touchMoveY = touchMoveY;\n const absTouchMoveX = Math.abs(this.touchMoveX);\n const absTouchMoveY = Math.abs(this.touchMoveY);\n this.swipingHorizontal = absTouchMoveX > this.thresholdX;\n this.swipingVertical = absTouchMoveY > this.thresholdY;\n this.swipingDirection = absTouchMoveX > absTouchMoveY ? this.swipingHorizontal ? 'horizontal' : 'pre-horizontal' : this.swipingVertical ? 'vertical' : 'pre-vertical';\n\n if (Math.max(absTouchMoveX, absTouchMoveY) > this.opts.pressThreshold) {\n clearTimeout((_e = this.longPressTimer) !== null && _e !== void 0 ? _e : undefined);\n }\n\n this.fire('panmove', event);\n }\n\n onTouchEnd(event) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n\n if (event.type === 'mouseup' && (!this.touchStartX || this.touchEndX !== null)) {\n return;\n }\n\n this.touchEndX = event.type === 'mouseup' ? event.screenX : event.changedTouches[0].screenX;\n this.touchEndY = event.type === 'mouseup' ? event.screenY : event.changedTouches[0].screenY;\n this.fire('panend', event);\n clearTimeout((_a = this.longPressTimer) !== null && _a !== void 0 ? _a : undefined);\n const x = this.touchEndX - ((_b = this.touchStartX) !== null && _b !== void 0 ? _b : 0);\n const absX = Math.abs(x);\n const y = this.touchEndY - ((_c = this.touchStartY) !== null && _c !== void 0 ? _c : 0);\n const absY = Math.abs(y);\n\n if (absX > this.thresholdX || absY > this.thresholdY) {\n this.swipedHorizontal = this.opts.diagonalSwipes ? Math.abs(x / y) <= this.opts.diagonalLimit : absX >= absY && absX > this.thresholdX;\n this.swipedVertical = this.opts.diagonalSwipes ? Math.abs(y / x) <= this.opts.diagonalLimit : absY > absX && absY > this.thresholdY;\n\n if (this.swipedHorizontal) {\n if (x < 0) {\n if (((_d = this.velocityX) !== null && _d !== void 0 ? _d : 0) < -this.opts.velocityThreshold || x < -this.disregardVelocityThresholdX) {\n this.fire('swipeleft', event);\n }\n } else {\n if (((_e = this.velocityX) !== null && _e !== void 0 ? _e : 0) > this.opts.velocityThreshold || x > this.disregardVelocityThresholdX) {\n this.fire('swiperight', event);\n }\n }\n }\n\n if (this.swipedVertical) {\n if (y < 0) {\n if (((_f = this.velocityY) !== null && _f !== void 0 ? _f : 0) < -this.opts.velocityThreshold || y < -this.disregardVelocityThresholdY) {\n this.fire('swipeup', event);\n }\n } else {\n if (((_g = this.velocityY) !== null && _g !== void 0 ? _g : 0) > this.opts.velocityThreshold || y > this.disregardVelocityThresholdY) {\n this.fire('swipedown', event);\n }\n }\n }\n } else if (absX < this.opts.pressThreshold && absY < this.opts.pressThreshold) {\n if (this.doubleTapWaiting) {\n this.doubleTapWaiting = false;\n clearTimeout((_h = this.doubleTapTimer) !== null && _h !== void 0 ? _h : undefined);\n this.fire('doubletap', event);\n } else {\n this.doubleTapWaiting = true;\n this.doubleTapTimer = setTimeout(() => this.doubleTapWaiting = false, this.opts.doubleTapTime);\n this.fire('tap', event);\n }\n }\n }\n\n}\nTinyGesture.defaults = {\n threshold: (type, _self) => Math.max(25, Math.floor(0.15 * (type === 'x' ? window.innerWidth || document.body.clientWidth : window.innerHeight || document.body.clientHeight))),\n velocityThreshold: 10,\n disregardVelocityThreshold: (type, self) => Math.floor(0.5 * (type === 'x' ? self.element.clientWidth : self.element.clientHeight)),\n pressThreshold: 8,\n diagonalSwipes: false,\n diagonalLimit: Math.tan(45 * 1.5 / 180 * Math.PI),\n longPressTime: 500,\n doubleTapTime: 300,\n mouseSupport: true\n};\nlet passiveIfSupported = false;\n\ntry {\n window.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n get: function () {\n passiveIfSupported = {\n passive: true\n };\n }\n }));\n} catch (err) {}","module.exports = __webpack_public_path__ + \"media/images/header-logo-9ccd1e4433716cd31b8a50b307c3affb.png\";","module.exports = __webpack_public_path__ + \"media/images/navbar-logo-1ee9dcf3e8229ea228c3381b20ebeb4c.png\";","/*\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);","/*\n\n PinchZoom.js\n Copyright (c) Manuel Stofer 2013 - today\n\n Author: Manuel Stofer (mst@rtp.ch)\n Version: 2.3.5\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n\n*/\n// polyfills\nif (typeof Object.assign != 'function') {\n // Must be writable: true, enumerable: false, configurable: true\n Object.defineProperty(Object, \"assign\", {\n value: function assign(target, varArgs) {\n // .length of function is 2\n if (target == null) {\n // TypeError if undefined or null\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var to = Object(target);\n\n for (var index = 1; index < arguments.length; index++) {\n var nextSource = arguments[index];\n\n if (nextSource != null) {\n // Skip over if undefined or null\n for (var nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n\n return to;\n },\n writable: true,\n configurable: true\n });\n}\n\nif (typeof Array.from != 'function') {\n Array.from = function (object) {\n return [].slice.call(object);\n };\n} // utils\n\n\nvar buildElement = function (str) {\n // empty string as title argument required by IE and Edge\n var tmp = document.implementation.createHTMLDocument('');\n tmp.body.innerHTML = str;\n return Array.from(tmp.body.children)[0];\n};\n\nvar triggerEvent = function (el, name) {\n var event = document.createEvent('HTMLEvents');\n event.initEvent(name, true, false);\n el.dispatchEvent(event);\n};\n\nvar definePinchZoom = function () {\n /**\n * Pinch zoom\n * @param el\n * @param options\n * @constructor\n */\n var PinchZoom = function (el, options) {\n this.el = el;\n this.zoomFactor = 1;\n this.lastScale = 1;\n this.offset = {\n x: 0,\n y: 0\n };\n this.initialOffset = {\n x: 0,\n y: 0\n };\n this.options = Object.assign({}, this.defaults, options);\n this.setupMarkup();\n this.bindEvents();\n this.update(); // The image may already be loaded when PinchZoom is initialized,\n // and then the load event (which trigger update) will never fire.\n\n if (this.isImageLoaded(this.el)) {\n this.updateAspectRatio();\n this.setupOffsets();\n }\n\n this.enable();\n },\n sum = function (a, b) {\n return a + b;\n },\n isCloseTo = function (value, expected) {\n return value > expected - 0.01 && value < expected + 0.01;\n };\n\n PinchZoom.prototype = {\n defaults: {\n tapZoomFactor: 2,\n zoomOutFactor: 1.3,\n animationDuration: 300,\n maxZoom: 4,\n minZoom: 0.5,\n draggableUnzoomed: true,\n lockDragAxis: false,\n setOffsetsOnce: false,\n use2d: true,\n zoomStartEventName: 'pz_zoomstart',\n zoomUpdateEventName: 'pz_zoomupdate',\n zoomEndEventName: 'pz_zoomend',\n dragStartEventName: 'pz_dragstart',\n dragUpdateEventName: 'pz_dragupdate',\n dragEndEventName: 'pz_dragend',\n doubleTapEventName: 'pz_doubletap',\n verticalPadding: 0,\n horizontalPadding: 0,\n onZoomStart: null,\n onZoomEnd: null,\n onZoomUpdate: null,\n onDragStart: null,\n onDragEnd: null,\n onDragUpdate: null,\n onDoubleTap: null\n },\n\n /**\n * Event handler for 'dragstart'\n * @param event\n */\n handleDragStart: function (event) {\n triggerEvent(this.el, this.options.dragStartEventName);\n\n if (typeof this.options.onDragStart == \"function\") {\n this.options.onDragStart(this, event);\n }\n\n this.stopAnimation();\n this.lastDragPosition = false;\n this.hasInteraction = true;\n this.handleDrag(event);\n },\n\n /**\n * Event handler for 'drag'\n * @param event\n */\n handleDrag: function (event) {\n var touch = this.getTouches(event)[0];\n this.drag(touch, this.lastDragPosition);\n this.offset = this.sanitizeOffset(this.offset);\n this.lastDragPosition = touch;\n },\n handleDragEnd: function () {\n triggerEvent(this.el, this.options.dragEndEventName);\n\n if (typeof this.options.onDragEnd == \"function\") {\n this.options.onDragEnd(this, event);\n }\n\n this.end();\n },\n\n /**\n * Event handler for 'zoomstart'\n * @param event\n */\n handleZoomStart: function (event) {\n triggerEvent(this.el, this.options.zoomStartEventName);\n\n if (typeof this.options.onZoomStart == \"function\") {\n this.options.onZoomStart(this, event);\n }\n\n this.stopAnimation();\n this.lastScale = 1;\n this.nthZoom = 0;\n this.lastZoomCenter = false;\n this.hasInteraction = true;\n },\n\n /**\n * Event handler for 'zoom'\n * @param event\n */\n handleZoom: function (event, newScale) {\n // a relative scale factor is used\n var touchCenter = this.getTouchCenter(this.getTouches(event)),\n scale = newScale / this.lastScale;\n this.lastScale = newScale; // the first touch events are thrown away since they are not precise\n\n this.nthZoom += 1;\n\n if (this.nthZoom > 3) {\n this.scale(scale, touchCenter);\n this.drag(touchCenter, this.lastZoomCenter);\n }\n\n this.lastZoomCenter = touchCenter;\n },\n handleZoomEnd: function () {\n triggerEvent(this.el, this.options.zoomEndEventName);\n\n if (typeof this.options.onZoomEnd == \"function\") {\n this.options.onZoomEnd(this, event);\n }\n\n this.end();\n },\n\n /**\n * Event handler for 'doubletap'\n * @param event\n */\n handleDoubleTap: function (event) {\n var center = this.getTouches(event)[0],\n zoomFactor = this.zoomFactor > 1 ? 1 : this.options.tapZoomFactor,\n startZoomFactor = this.zoomFactor,\n updateProgress = function (progress) {\n this.scaleTo(startZoomFactor + progress * (zoomFactor - startZoomFactor), center);\n }.bind(this);\n\n if (this.hasInteraction) {\n return;\n }\n\n this.isDoubleTap = true;\n\n if (startZoomFactor > zoomFactor) {\n center = this.getCurrentZoomCenter();\n }\n\n this.animate(this.options.animationDuration, updateProgress, this.swing);\n triggerEvent(this.el, this.options.doubleTapEventName);\n\n if (typeof this.options.onDoubleTap == \"function\") {\n this.options.onDoubleTap(this, event);\n }\n },\n\n /**\n * Compute the initial offset\n *\n * the element should be centered in the container upon initialization\n */\n computeInitialOffset: function () {\n this.initialOffset = {\n x: -Math.abs(this.el.offsetWidth * this.getInitialZoomFactor() - this.container.offsetWidth) / 2,\n y: -Math.abs(this.el.offsetHeight * this.getInitialZoomFactor() - this.container.offsetHeight) / 2\n };\n },\n\n /**\n * Reset current image offset to that of the initial offset\n */\n resetOffset: function () {\n this.offset.x = this.initialOffset.x;\n this.offset.y = this.initialOffset.y;\n },\n\n /**\n * Determine if image is loaded\n */\n isImageLoaded: function (el) {\n if (el.nodeName === 'IMG') {\n return el.complete && el.naturalHeight !== 0;\n } else {\n return Array.from(el.querySelectorAll('img')).every(this.isImageLoaded);\n }\n },\n setupOffsets: function () {\n if (this.options.setOffsetsOnce && this._isOffsetsSet) {\n return;\n }\n\n this._isOffsetsSet = true;\n this.computeInitialOffset();\n this.resetOffset();\n },\n\n /**\n * Max / min values for the offset\n * @param offset\n * @return {Object} the sanitized offset\n */\n sanitizeOffset: function (offset) {\n var elWidth = this.el.offsetWidth * this.getInitialZoomFactor() * this.zoomFactor;\n var elHeight = this.el.offsetHeight * this.getInitialZoomFactor() * this.zoomFactor;\n var maxX = elWidth - this.getContainerX() + this.options.horizontalPadding,\n maxY = elHeight - this.getContainerY() + this.options.verticalPadding,\n maxOffsetX = Math.max(maxX, 0),\n maxOffsetY = Math.max(maxY, 0),\n minOffsetX = Math.min(maxX, 0) - this.options.horizontalPadding,\n minOffsetY = Math.min(maxY, 0) - this.options.verticalPadding;\n return {\n x: Math.min(Math.max(offset.x, minOffsetX), maxOffsetX),\n y: Math.min(Math.max(offset.y, minOffsetY), maxOffsetY)\n };\n },\n\n /**\n * Scale to a specific zoom factor (not relative)\n * @param zoomFactor\n * @param center\n */\n scaleTo: function (zoomFactor, center) {\n this.scale(zoomFactor / this.zoomFactor, center);\n },\n\n /**\n * Scales the element from specified center\n * @param scale\n * @param center\n */\n scale: function (scale, center) {\n scale = this.scaleZoomFactor(scale);\n this.addOffset({\n x: (scale - 1) * (center.x + this.offset.x),\n y: (scale - 1) * (center.y + this.offset.y)\n });\n triggerEvent(this.el, this.options.zoomUpdateEventName);\n\n if (typeof this.options.onZoomUpdate == \"function\") {\n this.options.onZoomUpdate(this, event);\n }\n },\n\n /**\n * Scales the zoom factor relative to current state\n * @param scale\n * @return the actual scale (can differ because of max min zoom factor)\n */\n scaleZoomFactor: function (scale) {\n var originalZoomFactor = this.zoomFactor;\n this.zoomFactor *= scale;\n this.zoomFactor = Math.min(this.options.maxZoom, Math.max(this.zoomFactor, this.options.minZoom));\n return this.zoomFactor / originalZoomFactor;\n },\n\n /**\n * Determine if the image is in a draggable state\n *\n * When the image can be dragged, the drag event is acted upon and cancelled.\n * When not draggable, the drag event bubbles through this component.\n *\n * @return {Boolean}\n */\n canDrag: function () {\n return this.options.draggableUnzoomed || !isCloseTo(this.zoomFactor, 1);\n },\n\n /**\n * Drags the element\n * @param center\n * @param lastCenter\n */\n drag: function (center, lastCenter) {\n if (lastCenter) {\n if (this.options.lockDragAxis) {\n // lock scroll to position that was changed the most\n if (Math.abs(center.x - lastCenter.x) > Math.abs(center.y - lastCenter.y)) {\n this.addOffset({\n x: -(center.x - lastCenter.x),\n y: 0\n });\n } else {\n this.addOffset({\n y: -(center.y - lastCenter.y),\n x: 0\n });\n }\n } else {\n this.addOffset({\n y: -(center.y - lastCenter.y),\n x: -(center.x - lastCenter.x)\n });\n }\n\n triggerEvent(this.el, this.options.dragUpdateEventName);\n\n if (typeof this.options.onDragUpdate == \"function\") {\n this.options.onDragUpdate(this, event);\n }\n }\n },\n\n /**\n * Calculates the touch center of multiple touches\n * @param touches\n * @return {Object}\n */\n getTouchCenter: function (touches) {\n return this.getVectorAvg(touches);\n },\n\n /**\n * Calculates the average of multiple vectors (x, y values)\n */\n getVectorAvg: function (vectors) {\n return {\n x: vectors.map(function (v) {\n return v.x;\n }).reduce(sum) / vectors.length,\n y: vectors.map(function (v) {\n return v.y;\n }).reduce(sum) / vectors.length\n };\n },\n\n /**\n * Adds an offset\n * @param offset the offset to add\n * @return return true when the offset change was accepted\n */\n addOffset: function (offset) {\n this.offset = {\n x: this.offset.x + offset.x,\n y: this.offset.y + offset.y\n };\n },\n sanitize: function () {\n if (this.zoomFactor < this.options.zoomOutFactor) {\n this.zoomOutAnimation();\n } else if (this.isInsaneOffset(this.offset)) {\n this.sanitizeOffsetAnimation();\n }\n },\n\n /**\n * Checks if the offset is ok with the current zoom factor\n * @param offset\n * @return {Boolean}\n */\n isInsaneOffset: function (offset) {\n var sanitizedOffset = this.sanitizeOffset(offset);\n return sanitizedOffset.x !== offset.x || sanitizedOffset.y !== offset.y;\n },\n\n /**\n * Creates an animation moving to a sane offset\n */\n sanitizeOffsetAnimation: function () {\n var targetOffset = this.sanitizeOffset(this.offset),\n startOffset = {\n x: this.offset.x,\n y: this.offset.y\n },\n updateProgress = function (progress) {\n this.offset.x = startOffset.x + progress * (targetOffset.x - startOffset.x);\n this.offset.y = startOffset.y + progress * (targetOffset.y - startOffset.y);\n this.update();\n }.bind(this);\n\n this.animate(this.options.animationDuration, updateProgress, this.swing);\n },\n\n /**\n * Zooms back to the original position,\n * (no offset and zoom factor 1)\n */\n zoomOutAnimation: function () {\n if (this.zoomFactor === 1) {\n return;\n }\n\n var startZoomFactor = this.zoomFactor,\n zoomFactor = 1,\n center = this.getCurrentZoomCenter(),\n updateProgress = function (progress) {\n this.scaleTo(startZoomFactor + progress * (zoomFactor - startZoomFactor), center);\n }.bind(this);\n\n this.animate(this.options.animationDuration, updateProgress, this.swing);\n },\n\n /**\n * Updates the container aspect ratio\n *\n * Any previous container height must be cleared before re-measuring the\n * parent height, since it depends implicitly on the height of any of its children\n */\n updateAspectRatio: function () {\n this.unsetContainerY();\n this.setContainerY(this.container.parentElement.offsetHeight);\n },\n\n /**\n * Calculates the initial zoom factor (for the element to fit into the container)\n * @return {number} the initial zoom factor\n */\n getInitialZoomFactor: function () {\n var xZoomFactor = this.container.offsetWidth / this.el.offsetWidth;\n var yZoomFactor = this.container.offsetHeight / this.el.offsetHeight;\n return Math.min(xZoomFactor, yZoomFactor);\n },\n\n /**\n * Calculates the aspect ratio of the element\n * @return the aspect ratio\n */\n getAspectRatio: function () {\n return this.el.offsetWidth / this.el.offsetHeight;\n },\n\n /**\n * Calculates the virtual zoom center for the current offset and zoom factor\n * (used for reverse zoom)\n * @return {Object} the current zoom center\n */\n getCurrentZoomCenter: function () {\n var offsetLeft = this.offset.x - this.initialOffset.x;\n var centerX = -1 * this.offset.x - offsetLeft / (1 / this.zoomFactor - 1);\n var offsetTop = this.offset.y - this.initialOffset.y;\n var centerY = -1 * this.offset.y - offsetTop / (1 / this.zoomFactor - 1);\n return {\n x: centerX,\n y: centerY\n };\n },\n\n /**\n * Returns the touches of an event relative to the container offset\n * @param event\n * @return array touches\n */\n getTouches: function (event) {\n var rect = this.container.getBoundingClientRect();\n var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;\n var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;\n var posTop = rect.top + scrollTop;\n var posLeft = rect.left + scrollLeft;\n return Array.prototype.slice.call(event.touches).map(function (touch) {\n return {\n x: touch.pageX - posLeft,\n y: touch.pageY - posTop\n };\n });\n },\n\n /**\n * Animation loop\n * does not support simultaneous animations\n * @param duration\n * @param framefn\n * @param timefn\n * @param callback\n */\n animate: function (duration, framefn, timefn, callback) {\n var startTime = new Date().getTime(),\n renderFrame = function () {\n if (!this.inAnimation) {\n return;\n }\n\n var frameTime = new Date().getTime() - startTime,\n progress = frameTime / duration;\n\n if (frameTime >= duration) {\n framefn(1);\n\n if (callback) {\n callback();\n }\n\n this.update();\n this.stopAnimation();\n this.update();\n } else {\n if (timefn) {\n progress = timefn(progress);\n }\n\n framefn(progress);\n this.update();\n requestAnimationFrame(renderFrame);\n }\n }.bind(this);\n\n this.inAnimation = true;\n requestAnimationFrame(renderFrame);\n },\n\n /**\n * Stops the animation\n */\n stopAnimation: function () {\n this.inAnimation = false;\n },\n\n /**\n * Swing timing function for animations\n * @param p\n * @return {Number}\n */\n swing: function (p) {\n return -Math.cos(p * Math.PI) / 2 + 0.5;\n },\n getContainerX: function () {\n return this.container.offsetWidth;\n },\n getContainerY: function () {\n return this.container.offsetHeight;\n },\n setContainerY: function (y) {\n return this.container.style.height = y + 'px';\n },\n unsetContainerY: function () {\n this.container.style.height = null;\n },\n\n /**\n * Creates the expected html structure\n */\n setupMarkup: function () {\n this.container = buildElement('
');\n this.el.parentNode.insertBefore(this.container, this.el);\n this.container.appendChild(this.el);\n this.container.style.overflow = 'hidden';\n this.container.style.position = 'relative';\n this.el.style.webkitTransformOrigin = '0% 0%';\n this.el.style.mozTransformOrigin = '0% 0%';\n this.el.style.msTransformOrigin = '0% 0%';\n this.el.style.oTransformOrigin = '0% 0%';\n this.el.style.transformOrigin = '0% 0%';\n this.el.style.position = 'absolute';\n },\n end: function () {\n this.hasInteraction = false;\n this.sanitize();\n this.update();\n },\n\n /**\n * Binds all required event listeners\n */\n bindEvents: function () {\n var self = this;\n detectGestures(this.container, this);\n this.resizeHandler = this.update.bind(this);\n window.addEventListener('resize', this.resizeHandler);\n Array.from(this.el.querySelectorAll('img')).forEach(function (imgEl) {\n imgEl.addEventListener('load', self.update.bind(self));\n });\n\n if (this.el.nodeName === 'IMG') {\n this.el.addEventListener('load', this.update.bind(this));\n }\n },\n\n /**\n * Updates the css values according to the current zoom factor and offset\n */\n update: function (event) {\n if (event && event.type === 'resize') {\n this.updateAspectRatio();\n this.setupOffsets();\n }\n\n if (event && event.type === 'load') {\n this.updateAspectRatio();\n this.setupOffsets();\n }\n\n if (this.updatePlanned) {\n return;\n }\n\n this.updatePlanned = true;\n window.setTimeout(function () {\n this.updatePlanned = false;\n\n var zoomFactor = this.getInitialZoomFactor() * this.zoomFactor,\n offsetX = -this.offset.x / zoomFactor,\n offsetY = -this.offset.y / zoomFactor,\n transform3d = 'scale3d(' + zoomFactor + ', ' + zoomFactor + ',1) ' + 'translate3d(' + offsetX + 'px,' + offsetY + 'px,0px)',\n transform2d = 'scale(' + zoomFactor + ', ' + zoomFactor + ') ' + 'translate(' + offsetX + 'px,' + offsetY + 'px)',\n removeClone = function () {\n if (this.clone) {\n this.clone.parentNode.removeChild(this.clone);\n delete this.clone;\n }\n }.bind(this); // Scale 3d and translate3d are faster (at least on ios)\n // but they also reduce the quality.\n // PinchZoom uses the 3d transformations during interactions\n // after interactions it falls back to 2d transformations\n\n\n if (!this.options.use2d || this.hasInteraction || this.inAnimation) {\n this.is3d = true;\n removeClone();\n this.el.style.webkitTransform = transform3d;\n this.el.style.mozTransform = transform2d;\n this.el.style.msTransform = transform2d;\n this.el.style.oTransform = transform2d;\n this.el.style.transform = transform3d;\n } else {\n // When changing from 3d to 2d transform webkit has some glitches.\n // To avoid this, a copy of the 3d transformed element is displayed in the\n // foreground while the element is converted from 3d to 2d transform\n if (this.is3d) {\n this.clone = this.el.cloneNode(true);\n this.clone.style.pointerEvents = 'none';\n this.container.appendChild(this.clone);\n window.setTimeout(removeClone, 200);\n }\n\n this.el.style.webkitTransform = transform2d;\n this.el.style.mozTransform = transform2d;\n this.el.style.msTransform = transform2d;\n this.el.style.oTransform = transform2d;\n this.el.style.transform = transform2d;\n this.is3d = false;\n }\n }.bind(this), 0);\n },\n\n /**\n * Enables event handling for gestures\n */\n enable: function () {\n this.enabled = true;\n },\n\n /**\n * Disables event handling for gestures\n */\n disable: function () {\n this.enabled = false;\n },\n\n /**\n * Unmounts the zooming container and global event listeners\n */\n destroy: function () {\n window.removeEventListener('resize', this.resizeHandler);\n\n if (this.container) {\n this.container.remove();\n this.container = null;\n }\n }\n };\n\n var detectGestures = function (el, target) {\n var interaction = null,\n fingers = 0,\n lastTouchStart = null,\n startTouches = null,\n setInteraction = function (newInteraction, event) {\n if (interaction !== newInteraction) {\n if (interaction && !newInteraction) {\n switch (interaction) {\n case \"zoom\":\n target.handleZoomEnd(event);\n break;\n\n case 'drag':\n target.handleDragEnd(event);\n break;\n }\n }\n\n switch (newInteraction) {\n case 'zoom':\n target.handleZoomStart(event);\n break;\n\n case 'drag':\n target.handleDragStart(event);\n break;\n }\n }\n\n interaction = newInteraction;\n },\n updateInteraction = function (event) {\n if (fingers === 2) {\n setInteraction('zoom');\n } else if (fingers === 1 && target.canDrag()) {\n setInteraction('drag', event);\n } else {\n setInteraction(null, event);\n }\n },\n targetTouches = function (touches) {\n return Array.from(touches).map(function (touch) {\n return {\n x: touch.pageX,\n y: touch.pageY\n };\n });\n },\n getDistance = function (a, b) {\n var x, y;\n x = a.x - b.x;\n y = a.y - b.y;\n return Math.sqrt(x * x + y * y);\n },\n calculateScale = function (startTouches, endTouches) {\n var startDistance = getDistance(startTouches[0], startTouches[1]),\n endDistance = getDistance(endTouches[0], endTouches[1]);\n return endDistance / startDistance;\n },\n cancelEvent = function (event) {\n event.stopPropagation();\n event.preventDefault();\n },\n detectDoubleTap = function (event) {\n var time = new Date().getTime();\n\n if (fingers > 1) {\n lastTouchStart = null;\n }\n\n if (time - lastTouchStart < 300) {\n cancelEvent(event);\n target.handleDoubleTap(event);\n\n switch (interaction) {\n case \"zoom\":\n target.handleZoomEnd(event);\n break;\n\n case 'drag':\n target.handleDragEnd(event);\n break;\n }\n } else {\n target.isDoubleTap = false;\n }\n\n if (fingers === 1) {\n lastTouchStart = time;\n }\n },\n firstMove = true;\n\n el.addEventListener('touchstart', function (event) {\n if (target.enabled) {\n firstMove = true;\n fingers = event.touches.length;\n detectDoubleTap(event);\n }\n }, {\n passive: false\n });\n el.addEventListener('touchmove', function (event) {\n if (target.enabled && !target.isDoubleTap) {\n if (firstMove) {\n updateInteraction(event);\n\n if (interaction) {\n cancelEvent(event);\n }\n\n startTouches = targetTouches(event.touches);\n } else {\n switch (interaction) {\n case 'zoom':\n if (startTouches.length == 2 && event.touches.length == 2) {\n target.handleZoom(event, calculateScale(startTouches, targetTouches(event.touches)));\n }\n\n break;\n\n case 'drag':\n target.handleDrag(event);\n break;\n }\n\n if (interaction) {\n cancelEvent(event);\n target.update();\n }\n }\n\n firstMove = false;\n }\n }, {\n passive: false\n });\n el.addEventListener('touchend', function (event) {\n if (target.enabled) {\n fingers = event.touches.length;\n updateInteraction(event);\n }\n });\n };\n\n return PinchZoom;\n};\n\nvar PinchZoom = definePinchZoom();\nexport default PinchZoom;","module.exports = __webpack_public_path__ + \"media/images/apple-touch-icon-6acd27a3b509d8f8b70825f0f2671cb6.png\";","module.exports = __webpack_public_path__ + \"media/images/apple-touch-icon-114x114-df33465e61dd1c0e1e8a017fd9e59741.png\";","module.exports = __webpack_public_path__ + \"media/images/apple-touch-icon-120x120-ad16f2a243ad23fe9351fd1ed97eb1c9.png\";","module.exports = __webpack_public_path__ + \"media/images/apple-touch-icon-144x144-b62adc1435a34cfb2f57f2b99decbfec.png\";","module.exports = __webpack_public_path__ + \"media/images/apple-touch-icon-152x152-a52551932972c7c649f75ae755ba50ac.png\";","module.exports = __webpack_public_path__ + \"media/images/apple-touch-icon-180x180-83442f5eb5c0715162d9ab7e5815eb79.png\";","module.exports = __webpack_public_path__ + \"media/images/apple-touch-icon-57x57-6acd27a3b509d8f8b70825f0f2671cb6.png\";","module.exports = __webpack_public_path__ + \"media/images/apple-touch-icon-72x72-ff8e3e91fa26ea8f237c1da1ed697ea2.png\";","module.exports = __webpack_public_path__ + \"media/images/apple-touch-icon-76x76-ae4e51bf095f0dcd42bdef47eca649ff.png\";","module.exports = __webpack_public_path__ + \"media/images/favicon-533878139d5790f2dcb60f841a90ec38.png\";","module.exports = __webpack_public_path__ + \"media/images/item-placeholder-ee007b2245fb443f98064b7396a9097d.jpg\";","module.exports = __webpack_public_path__ + \"media/images/prando-shop-f6fd211c3e78702f1f50e88f90fb17b4.jpg\";","module.exports = __webpack_public_path__ + \"media/images/social_preview-f3a2a6f63863bb5c365c698949b72bf3.jpg\";","module.exports = __webpack_public_path__ + \"media/images/social_preview_default-9f27aeb9d882e146ff2c2945b7686cff.jpg\";","module.exports = __webpack_public_path__ + \"media/images/start_footer-792c6a1223892009e3c42504e3061d6a.webp\";","module.exports = __webpack_public_path__ + \"media/images/start_footer_default-483fae834ec7448d6b865471e2789c10.webp\";","module.exports = __webpack_public_path__ + \"media/images/start_header-199af196f58713c1deecf20aab73e2aa.webp\";","module.exports = __webpack_public_path__ + \"media/images/start_header_default-2b3670c8058939a55f9afb02eb17fa30.webp\";","module.exports = __webpack_public_path__ + \"media/images/static-1-6d3f1bed79cef8485e7616b6c51be4e2.jpg\";","!function (t, e) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = e() : \"function\" == typeof define && define.amd ? define([], e) : \"object\" == typeof exports ? exports.bulmaCarousel = e() : t.bulmaCarousel = e();\n}(\"undefined\" != typeof self ? self : this, function () {\n return function (i) {\n var n = {};\n\n function s(t) {\n if (n[t]) return n[t].exports;\n var e = n[t] = {\n i: t,\n l: !1,\n exports: {}\n };\n return i[t].call(e.exports, e, e.exports, s), e.l = !0, e.exports;\n }\n\n return s.m = i, s.c = n, s.d = function (t, e, i) {\n s.o(t, e) || Object.defineProperty(t, e, {\n configurable: !1,\n enumerable: !0,\n get: i\n });\n }, s.n = function (t) {\n var e = t && t.__esModule ? function () {\n return t.default;\n } : function () {\n return t;\n };\n return s.d(e, \"a\", e), e;\n }, s.o = function (t, e) {\n return Object.prototype.hasOwnProperty.call(t, e);\n }, s.p = \"\", s(s.s = 5);\n }([function (t, e, i) {\n \"use strict\";\n\n i.d(e, \"d\", function () {\n return s;\n }), i.d(e, \"e\", function () {\n return r;\n }), i.d(e, \"b\", function () {\n return o;\n }), i.d(e, \"c\", function () {\n return a;\n }), i.d(e, \"a\", function () {\n return l;\n });\n\n var n = i(2),\n s = function (e, t) {\n (t = Array.isArray(t) ? t : t.split(\" \")).forEach(function (t) {\n e.classList.remove(t);\n });\n },\n r = function (t) {\n return t.getBoundingClientRect().width || t.offsetWidth;\n },\n o = function (t) {\n return t.getBoundingClientRect().height || t.offsetHeight;\n },\n a = function (t) {\n var e = 1 < arguments.length && void 0 !== arguments[1] && arguments[1],\n i = t.offsetHeight;\n\n if (e) {\n var n = window.getComputedStyle(t);\n i += parseInt(n.marginTop) + parseInt(n.marginBottom);\n }\n\n return i;\n },\n l = function (t, e) {\n if (!e) return window.getComputedStyle(t);\n\n if (Object(n.b)(e)) {\n var i = \"\";\n Object.keys(e).forEach(function (t) {\n i += t + \": \" + e[t] + \";\";\n }), t.style.cssText += i;\n }\n };\n }, function (t, e, i) {\n \"use strict\";\n\n e.a = function () {\n var t = !1;\n\n try {\n var e = Object.defineProperty({}, \"passive\", {\n get: function () {\n t = !0;\n }\n });\n window.addEventListener(\"testPassive\", null, e), window.removeEventListener(\"testPassive\", null, e);\n } catch (t) {}\n\n return t;\n };\n }, function (t, e, i) {\n \"use strict\";\n\n i.d(e, \"a\", function () {\n return s;\n }), i.d(e, \"c\", function () {\n return r;\n }), i.d(e, \"b\", function () {\n return o;\n });\n\n var n = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (t) {\n return typeof t;\n } : function (t) {\n return t && \"function\" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n },\n s = function (t) {\n return \"function\" == typeof t;\n },\n r = function (t) {\n return \"string\" == typeof t || !!t && \"object\" === (void 0 === t ? \"undefined\" : n(t)) && \"[object String]\" === Object.prototype.toString.call(t);\n },\n o = function (t) {\n return (\"function\" == typeof t || \"object\" === (void 0 === t ? \"undefined\" : n(t)) && !!t) && !Array.isArray(t);\n };\n }, function (t, e, i) {\n \"use strict\";\n\n var n = function () {\n function n(t, e) {\n for (var i = 0; i < e.length; i++) {\n var n = e[i];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (t, e, i) {\n return e && n(t.prototype, e), i && n(t, i), t;\n };\n }();\n\n var s = function () {\n function e() {\n var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : [];\n !function (t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.events = new Map(t);\n }\n\n return n(e, [{\n key: \"on\",\n value: function (t, e) {\n var i = this;\n return this.events.set(t, [].concat(function (t) {\n if (Array.isArray(t)) {\n for (var e = 0, i = Array(t.length); e < t.length; e++) i[e] = t[e];\n\n return i;\n }\n\n return Array.from(t);\n }(this.events.has(t) ? this.events.get(t) : []), [e])), function () {\n return i.events.set(t, i.events.get(t).filter(function (t) {\n return t !== e;\n }));\n };\n }\n }, {\n key: \"emit\",\n value: function (t) {\n for (var e = arguments.length, i = Array(1 < e ? e - 1 : 0), n = 1; n < e; n++) i[n - 1] = arguments[n];\n\n return this.events.has(t) && this.events.get(t).map(function (t) {\n return t.apply(void 0, i);\n });\n }\n }]), e;\n }();\n\n e.a = s;\n }, function (t, e, i) {\n \"use strict\";\n\n var n = function () {\n function n(t, e) {\n for (var i = 0; i < e.length; i++) {\n var n = e[i];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (t, e, i) {\n return e && n(t.prototype, e), i && n(t, i), t;\n };\n }();\n\n var s = function () {\n function s() {\n var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0,\n e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 0;\n !function (t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, s), this._x = t, this._y = e;\n }\n\n return n(s, [{\n key: \"add\",\n value: function (t) {\n return new s(this._x + t._x, this._y + t._y);\n }\n }, {\n key: \"sub\",\n value: function (t) {\n return new s(this._x - t._x, this._y - t._y);\n }\n }, {\n key: \"distance\",\n value: function (t) {\n var e = this._x - t._x,\n i = this._y - t._y;\n return Math.sqrt(Math.pow(e, 2) + Math.pow(i, 2));\n }\n }, {\n key: \"max\",\n value: function (t) {\n return new s(Math.max(this._x, t._x), Math.max(this._y, t._y));\n }\n }, {\n key: \"equals\",\n value: function (t) {\n return this == t || !(!t || null == t) && this._x == t._x && this._y == t._y;\n }\n }, {\n key: \"inside\",\n value: function (t, e) {\n return this._x >= t._x && this._x <= e._x && this._y >= t._y && this._y <= e._y;\n }\n }, {\n key: \"constrain\",\n value: function (t, e) {\n if (t._x > e._x || t._y > e._y) return this;\n var i = this._x,\n n = this._y;\n return null !== t._x && (i = Math.max(i, t._x)), null !== e._x && (i = Math.min(i, e._x)), null !== t._y && (n = Math.max(n, t._y)), null !== e._y && (n = Math.min(n, e._y)), new s(i, n);\n }\n }, {\n key: \"reposition\",\n value: function (t) {\n t.style.top = this._y + \"px\", t.style.left = this._x + \"px\";\n }\n }, {\n key: \"toString\",\n value: function () {\n return \"(\" + this._x + \",\" + this._y + \")\";\n }\n }, {\n key: \"x\",\n get: function () {\n return this._x;\n },\n set: function () {\n var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0;\n return this._x = t, this;\n }\n }, {\n key: \"y\",\n get: function () {\n return this._y;\n },\n set: function () {\n var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0;\n return this._y = t, this;\n }\n }]), s;\n }();\n\n e.a = s;\n }, function (t, e, i) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n\n var n = i(6),\n s = i(0),\n a = i(2),\n r = i(3),\n l = i(7),\n h = i(9),\n u = i(10),\n d = i(11),\n c = i(13),\n f = i(15),\n p = i(18),\n v = i(19),\n y = i(22),\n _ = i(23),\n g = i(24),\n b = Object.assign || function (t) {\n for (var e = 1; e < arguments.length; e++) {\n var i = arguments[e];\n\n for (var n in i) Object.prototype.hasOwnProperty.call(i, n) && (t[n] = i[n]);\n }\n\n return t;\n },\n w = function () {\n function n(t, e) {\n for (var i = 0; i < e.length; i++) {\n var n = e[i];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (t, e, i) {\n return e && n(t.prototype, e), i && n(t, i), t;\n };\n }();\n\n var o = function (t) {\n function o(t) {\n var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {};\n !function (t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, o);\n\n var r = function (t, e) {\n if (!t) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return !e || \"object\" != typeof e && \"function\" != typeof e ? t : e;\n }(this, (o.__proto__ || Object.getPrototypeOf(o)).call(this));\n\n if (r.element = Object(a.c)(t) ? document.querySelector(t) : t, !r.element) throw new Error(\"An invalid selector or non-DOM node has been provided.\");\n r._clickEvents = [\"click\", \"touch\"];\n var i = r.element.dataset ? Object.keys(r.element.dataset).filter(function (t) {\n return Object.keys(y.a).includes(t);\n }).reduce(function (t, e) {\n return b({}, t, (i = {}, n = e, s = r.element.dataset[e], n in i ? Object.defineProperty(i, n, {\n value: s,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : i[n] = s, i));\n var i, n, s;\n }, {}) : {};\n return r.options = b({}, y.a, e, i), r._id = Object(n.a)(\"slider\"), r.onShow = r.onShow.bind(r), r._init(), r;\n }\n\n return function (t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function, not \" + typeof e);\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e);\n }(o, r[\"a\"]), w(o, [{\n key: \"_init\",\n value: function () {\n return this._items = Array.from(this.element.children), this._breakpoint = new h.a(this), this._autoplay = new l.a(this), this._navigation = new c.a(this), this._pagination = new f.a(this), this._infinite = new u.a(this), this._loop = new d.a(this), this._swipe = new p.a(this), this._build(), Object(a.a)(this.options.onReady) && this.options.onReady(this), this;\n }\n }, {\n key: \"_build\",\n value: function () {\n var i = this;\n this.node = document.createRange().createContextualFragment(Object(_.a)(this.id)), this._ui = {\n wrapper: this.node.firstChild,\n container: this.node.querySelector(\".slider-container\")\n }, this.element.appendChild(this.node), this._ui.wrapper.classList.add(\"is-loading\"), this._ui.container.style.opacity = 0, this._transitioner = new v.a(this), this._slides = this._items.map(function (t, e) {\n return i._createSlide(t, e);\n }), this.reset(), this._bindEvents(), this._ui.container.style.opacity = 1, this._ui.wrapper.classList.remove(\"is-loading\");\n }\n }, {\n key: \"_bindEvents\",\n value: function () {\n this.on(\"show\", this.onShow);\n }\n }, {\n key: \"_unbindEvents\",\n value: function () {\n this.off(\"show\", this.onShow);\n }\n }, {\n key: \"_createSlide\",\n value: function (t, e) {\n var i = document.createRange().createContextualFragment(Object(g.a)()).firstChild;\n return i.dataset.sliderIndex = e, i.appendChild(t), i;\n }\n }, {\n key: \"_setDimensions\",\n value: function () {\n var e = this;\n this.options.vertical ? (this._ui.wrapper.style.height = Object(s.c)(this._slides[0]) * this.slidesToShow, this.options.centerMode && (this._ui.wrapper.style.padding = this.options.centerPadding + \" 0px\")) : this.options.centerMode && (this._ui.wrapper.style.padding = \"0px \" + this.options.centerPadding), this._wrapperWidth = Object(s.e)(this._ui.wrapper), this._wrapperHeight = Object(s.c)(this._ui.wrapper), this.options.vertical ? (this._slideWidth = Math.ceil(this._wrapperWidth), this._containerHeight = Math.ceil(Object(s.c)(this._slides[0]) * this._slides.length), this._ui.container.style.height = this._containerHeight + \"px\") : (this._slideWidth = Math.ceil(this._wrapperWidth / this.slidesToShow), this._containerWidth = Math.ceil(this._slideWidth * this._slides.length), this._ui.container.style.width = this._containerWidth + \"px\"), this._slides.forEach(function (t) {\n t.style.width = e._slideWidth + \"px\";\n });\n }\n }, {\n key: \"_setHeight\",\n value: function () {\n \"translate\" !== this.options.effect && (this._ui.container.style.height = Object(s.c)(this._slides[this.state.index]) + \"px\");\n }\n }, {\n key: \"_setClasses\",\n value: function () {\n var e = this;\n\n this._slides.forEach(function (t) {\n Object(s.d)(t, \"is-active is-current is-slide-previous is-slide-next\"), Math.abs((e.state.index - 1) % e.state.length) === parseInt(t.dataset.sliderIndex, 10) && t.classList.add(\"is-slide-previous\"), Math.abs(e.state.index % e.state.length) === parseInt(t.dataset.sliderIndex, 10) && t.classList.add(\"is-current\"), Math.abs((e.state.index + 1) % e.state.length) === parseInt(t.dataset.sliderIndex, 10) && t.classList.add(\"is-slide-next\");\n });\n }\n }, {\n key: \"onShow\",\n value: function (t) {\n this._navigation.refresh(), this._pagination.refresh(), this._setClasses();\n }\n }, {\n key: \"next\",\n value: function () {\n !this.options.loop && !this.options.infinite && this.state.index + this.slidesToScroll > this.state.length - this.slidesToShow && !this.options.centerMode ? this.state.next = this.state.index : this.state.next = this.state.index + this.slidesToScroll, this.show();\n }\n }, {\n key: \"previous\",\n value: function () {\n this.options.loop || this.options.infinite || 0 !== this.state.index ? this.state.next = this.state.index - this.slidesToScroll : this.state.next = this.state.index, this.show();\n }\n }, {\n key: \"start\",\n value: function () {\n this._autoplay.start();\n }\n }, {\n key: \"pause\",\n value: function () {\n this._autoplay.pause();\n }\n }, {\n key: \"stop\",\n value: function () {\n this._autoplay.stop();\n }\n }, {\n key: \"show\",\n value: function (t) {\n var e = 1 < arguments.length && void 0 !== arguments[1] && arguments[1];\n !this.state.length || this.state.length <= this.slidesToShow || (\"Number\" == typeof t && (this.state.next = t), this.options.loop && this._loop.apply(), this.options.infinite && this._infinite.apply(), this.state.index !== this.state.next && (this.emit(\"before:show\", this.state), this._transitioner.apply(e, this._setHeight.bind(this)), this.emit(\"after:show\", this.state), this.emit(\"show\", this)));\n }\n }, {\n key: \"reset\",\n value: function () {\n var e = this;\n this.state = {\n length: this._items.length,\n index: Math.abs(this.options.initialSlide),\n next: Math.abs(this.options.initialSlide),\n prev: void 0\n }, this.options.loop && this.options.infinite && (this.options.loop = !1), this.options.slidesToScroll > this.options.slidesToShow && (this.options.slidesToScroll = this.slidesToShow), this._breakpoint.init(), this.state.index >= this.state.length && 0 !== this.state.index && (this.state.index = this.state.index - this.slidesToScroll), this.state.length <= this.slidesToShow && (this.state.index = 0), this._ui.wrapper.appendChild(this._navigation.init().render()), this._ui.wrapper.appendChild(this._pagination.init().render()), this.options.navigationSwipe ? this._swipe.bindEvents() : this._swipe._bindEvents(), this._breakpoint.apply(), this._slides.forEach(function (t) {\n return e._ui.container.appendChild(t);\n }), this._transitioner.init().apply(!0, this._setHeight.bind(this)), this.options.autoplay && this._autoplay.init().start();\n }\n }, {\n key: \"destroy\",\n value: function () {\n var e = this;\n this._unbindEvents(), this._items.forEach(function (t) {\n e.element.appendChild(t);\n }), this.node.remove();\n }\n }, {\n key: \"id\",\n get: function () {\n return this._id;\n }\n }, {\n key: \"index\",\n set: function (t) {\n this._index = t;\n },\n get: function () {\n return this._index;\n }\n }, {\n key: \"length\",\n set: function (t) {\n this._length = t;\n },\n get: function () {\n return this._length;\n }\n }, {\n key: \"slides\",\n get: function () {\n return this._slides;\n },\n set: function (t) {\n this._slides = t;\n }\n }, {\n key: \"slidesToScroll\",\n get: function () {\n return \"translate\" === this.options.effect ? this._breakpoint.getSlidesToScroll() : 1;\n }\n }, {\n key: \"slidesToShow\",\n get: function () {\n return \"translate\" === this.options.effect ? this._breakpoint.getSlidesToShow() : 1;\n }\n }, {\n key: \"direction\",\n get: function () {\n return \"rtl\" === this.element.dir.toLowerCase() || \"rtl\" === this.element.style.direction ? \"rtl\" : \"ltr\";\n }\n }, {\n key: \"wrapper\",\n get: function () {\n return this._ui.wrapper;\n }\n }, {\n key: \"wrapperWidth\",\n get: function () {\n return this._wrapperWidth || 0;\n }\n }, {\n key: \"container\",\n get: function () {\n return this._ui.container;\n }\n }, {\n key: \"containerWidth\",\n get: function () {\n return this._containerWidth || 0;\n }\n }, {\n key: \"slideWidth\",\n get: function () {\n return this._slideWidth || 0;\n }\n }, {\n key: \"transitioner\",\n get: function () {\n return this._transitioner;\n }\n }], [{\n key: \"attach\",\n value: function () {\n var i = this,\n t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : \".slider\",\n n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {},\n s = new Array(),\n e = Object(a.c)(t) ? document.querySelectorAll(t) : Array.isArray(t) ? t : [t];\n return [].forEach.call(e, function (t) {\n if (void 0 === t[i.constructor.name]) {\n var e = new o(t, n);\n t[i.constructor.name] = e, s.push(e);\n } else s.push(t[i.constructor.name]);\n }), s;\n }\n }]), o;\n }();\n\n e.default = o;\n }, function (t, e, i) {\n \"use strict\";\n\n i.d(e, \"a\", function () {\n return n;\n });\n\n var n = function () {\n return (0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : \"\") + ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function (t) {\n return (t ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> t / 4).toString(16);\n });\n };\n }, function (t, e, i) {\n \"use strict\";\n\n var n = i(3),\n s = i(8),\n r = function () {\n function n(t, e) {\n for (var i = 0; i < e.length; i++) {\n var n = e[i];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (t, e, i) {\n return e && n(t.prototype, e), i && n(t, i), t;\n };\n }();\n\n Symbol(\"onVisibilityChange\"), Symbol(\"onMouseEnter\"), Symbol(\"onMouseLeave\");\n\n var o = function (t) {\n function i(t) {\n !function (t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, i);\n\n var e = function (t, e) {\n if (!t) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return !e || \"object\" != typeof e && \"function\" != typeof e ? t : e;\n }(this, (i.__proto__ || Object.getPrototypeOf(i)).call(this));\n\n return e.slider = t, e.onVisibilityChange = e.onVisibilityChange.bind(e), e.onMouseEnter = e.onMouseEnter.bind(e), e.onMouseLeave = e.onMouseLeave.bind(e), e;\n }\n\n return function (t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function, not \" + typeof e);\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e);\n }(i, n[\"a\"]), r(i, [{\n key: \"init\",\n value: function () {\n return this._bindEvents(), this;\n }\n }, {\n key: \"_bindEvents\",\n value: function () {\n document.addEventListener(\"visibilitychange\", this.onVisibilityChange), this.slider.options.pauseOnHover && (this.slider.container.addEventListener(s.a, this.onMouseEnter), this.slider.container.addEventListener(s.b, this.onMouseLeave));\n }\n }, {\n key: \"_unbindEvents\",\n value: function () {\n document.removeEventListener(\"visibilitychange\", this.onVisibilityChange), this.slider.container.removeEventListener(s.a, this.onMouseEnter), this.slider.container.removeEventListener(s.b, this.onMouseLeave);\n }\n }, {\n key: \"start\",\n value: function () {\n var t = this;\n this.stop(), this.slider.options.autoplay && (this.emit(\"start\", this), this._interval = setInterval(function () {\n t._hovering && t.slider.options.pauseOnHover || (!t.slider.options.centerMode && t.slider.state.next >= t.slider.state.length - t.slider.slidesToShow && !t.slider.options.loop && !t.slider.options.infinite ? t.stop() : t.slider.next());\n }, this.slider.options.autoplaySpeed));\n }\n }, {\n key: \"stop\",\n value: function () {\n this._interval = clearInterval(this._interval), this.emit(\"stop\", this);\n }\n }, {\n key: \"pause\",\n value: function () {\n var t = this,\n e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0;\n this.paused || (this.timer && this.stop(), this.paused = !0, 0 === e ? (this.paused = !1, this.start()) : this.slider.on(\"transition:end\", function () {\n t && (t.paused = !1, t.run ? t.start() : t.stop());\n }));\n }\n }, {\n key: \"onVisibilityChange\",\n value: function (t) {\n document.hidden ? this.stop() : this.start();\n }\n }, {\n key: \"onMouseEnter\",\n value: function (t) {\n this._hovering = !0, this.slider.options.pauseOnHover && this.pause();\n }\n }, {\n key: \"onMouseLeave\",\n value: function (t) {\n this._hovering = !1, this.slider.options.pauseOnHover && this.pause();\n }\n }]), i;\n }();\n\n e.a = o;\n }, function (t, e, i) {\n \"use strict\";\n\n i.d(e, \"a\", function () {\n return o;\n }), i.d(e, \"b\", function () {\n return a;\n });\n window.navigator.pointerEnabled || window.navigator.msPointerEnabled, window.navigator.msPointerEnabled && 1 < window.navigator.msMaxTouchPoints || window.navigator.pointerEnabled && window.navigator.maxTouchPoints, navigator.userAgent.match(/(Android);?[\\s\\/]+([\\d.]+)?/), navigator.userAgent.match(/(iPad).*OS\\s([\\d_]+)/), navigator.userAgent.match(/(iPod)(.*OS\\s([\\d_]+))?/), !navigator.userAgent.match(/(iPad).*OS\\s([\\d_]+)/) && navigator.userAgent.match(/(iPhone\\sOS)\\s([\\d_]+)/), 0 <= navigator.userAgent.toLowerCase().indexOf(\"safari\") && navigator.userAgent.toLowerCase().indexOf(\"chrome\") < 0 && navigator.userAgent.toLowerCase().indexOf(\"android\"), /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent);\n var n = !!(\"ontouchstart\" in window),\n s = !!(\"PointerEvent\" in window),\n r = n || window.DocumentTouch && document instanceof DocumentTouch || navigator.maxTouchPoints,\n o = r && s ? \"pointerenter\" : \"mouseenter\",\n a = r && s ? \"pointerleave\" : \"mouseleave\";\n }, function (t, e, i) {\n \"use strict\";\n\n var n = function () {\n function n(t, e) {\n for (var i = 0; i < e.length; i++) {\n var n = e[i];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (t, e, i) {\n return e && n(t.prototype, e), i && n(t, i), t;\n };\n }();\n\n var s = Symbol(\"onResize\"),\n r = function () {\n function e(t) {\n !function (t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.slider = t, this.options = t.options, this[s] = this[s].bind(this), this._bindEvents();\n }\n\n return n(e, [{\n key: \"init\",\n value: function () {\n return this._defaultBreakpoint = {\n slidesToShow: this.options.slidesToShow,\n slidesToScroll: this.options.slidesToScroll\n }, this.options.breakpoints.sort(function (t, e) {\n return parseInt(t.changePoint, 10) > parseInt(e.changePoint, 10);\n }), this._currentBreakpoint = this._getActiveBreakpoint(), this;\n }\n }, {\n key: \"destroy\",\n value: function () {\n this._unbindEvents();\n }\n }, {\n key: \"_bindEvents\",\n value: function () {\n window.addEventListener(\"resize\", this[s]), window.addEventListener(\"orientationchange\", this[s]);\n }\n }, {\n key: \"_unbindEvents\",\n value: function () {\n window.removeEventListener(\"resize\", this[s]), window.removeEventListener(\"orientationchange\", this[s]);\n }\n }, {\n key: \"_getActiveBreakpoint\",\n value: function () {\n var t = !0,\n e = !1,\n i = void 0;\n\n try {\n for (var n, s = this.options.breakpoints[Symbol.iterator](); !(t = (n = s.next()).done); t = !0) {\n var r = n.value;\n if (r.changePoint >= window.innerWidth) return r;\n }\n } catch (t) {\n e = !0, i = t;\n } finally {\n try {\n !t && s.return && s.return();\n } finally {\n if (e) throw i;\n }\n }\n\n return this._defaultBreakpoint;\n }\n }, {\n key: \"getSlidesToShow\",\n value: function () {\n return this._currentBreakpoint ? this._currentBreakpoint.slidesToShow : this._defaultBreakpoint.slidesToShow;\n }\n }, {\n key: \"getSlidesToScroll\",\n value: function () {\n return this._currentBreakpoint ? this._currentBreakpoint.slidesToScroll : this._defaultBreakpoint.slidesToScroll;\n }\n }, {\n key: \"apply\",\n value: function () {\n this.slider.state.index >= this.slider.state.length && 0 !== this.slider.state.index && (this.slider.state.index = this.slider.state.index - this._currentBreakpoint.slidesToScroll), this.slider.state.length <= this._currentBreakpoint.slidesToShow && (this.slider.state.index = 0), this.options.loop && this.slider._loop.init().apply(), this.options.infinite && this.slider._infinite.init().apply(), this.slider._setDimensions(), this.slider._transitioner.init().apply(!0, this.slider._setHeight.bind(this.slider)), this.slider._setClasses(), this.slider._navigation.refresh(), this.slider._pagination.refresh();\n }\n }, {\n key: s,\n value: function (t) {\n var e = this._getActiveBreakpoint();\n\n e.slidesToShow !== this._currentBreakpoint.slidesToShow && (this._currentBreakpoint = e, this.apply());\n }\n }]), e;\n }();\n\n e.a = r;\n }, function (t, e, i) {\n \"use strict\";\n\n var n = function () {\n function n(t, e) {\n for (var i = 0; i < e.length; i++) {\n var n = e[i];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (t, e, i) {\n return e && n(t.prototype, e), i && n(t, i), t;\n };\n }();\n\n var s = function () {\n function e(t) {\n !function (t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.slider = t;\n }\n\n return n(e, [{\n key: \"init\",\n value: function () {\n if (this.slider.options.infinite && \"translate\" === this.slider.options.effect) {\n this.slider.options.centerMode ? this._infiniteCount = Math.ceil(this.slider.slidesToShow + this.slider.slidesToShow / 2) : this._infiniteCount = this.slider.slidesToShow;\n\n for (var t = [], e = 0, i = this.slider.state.length; i > this.slider.state.length - 1 - this._infiniteCount; i -= 1) e = i - 1, t.unshift(this._cloneSlide(this.slider.slides[e], e - this.slider.state.length));\n\n for (var n = [], s = 0; s < this._infiniteCount + this.slider.state.length; s += 1) n.push(this._cloneSlide(this.slider.slides[s % this.slider.state.length], s + this.slider.state.length));\n\n this.slider.slides = [].concat(t, function (t) {\n if (Array.isArray(t)) {\n for (var e = 0, i = Array(t.length); e < t.length; e++) i[e] = t[e];\n\n return i;\n }\n\n return Array.from(t);\n }(this.slider.slides), n);\n }\n\n return this;\n }\n }, {\n key: \"apply\",\n value: function () {}\n }, {\n key: \"onTransitionEnd\",\n value: function (t) {\n this.slider.options.infinite && (this.slider.state.next >= this.slider.state.length ? (this.slider.state.index = this.slider.state.next = this.slider.state.next - this.slider.state.length, this.slider.transitioner.apply(!0)) : this.slider.state.next < 0 && (this.slider.state.index = this.slider.state.next = this.slider.state.length + this.slider.state.next, this.slider.transitioner.apply(!0)));\n }\n }, {\n key: \"_cloneSlide\",\n value: function (t, e) {\n var i = t.cloneNode(!0);\n return i.dataset.sliderIndex = e, i.dataset.cloned = !0, (i.querySelectorAll(\"[id]\") || []).forEach(function (t) {\n t.setAttribute(\"id\", \"\");\n }), i;\n }\n }]), e;\n }();\n\n e.a = s;\n }, function (t, e, i) {\n \"use strict\";\n\n var n = i(12),\n s = function () {\n function n(t, e) {\n for (var i = 0; i < e.length; i++) {\n var n = e[i];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (t, e, i) {\n return e && n(t.prototype, e), i && n(t, i), t;\n };\n }();\n\n var r = function () {\n function e(t) {\n !function (t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.slider = t;\n }\n\n return s(e, [{\n key: \"init\",\n value: function () {\n return this;\n }\n }, {\n key: \"apply\",\n value: function () {\n this.slider.options.loop && (0 < this.slider.state.next ? this.slider.state.next < this.slider.state.length ? this.slider.state.next > this.slider.state.length - this.slider.slidesToShow && Object(n.a)(this.slider._slides[this.slider.state.length - 1], this.slider.wrapper) ? this.slider.state.next = 0 : this.slider.state.next = Math.min(Math.max(this.slider.state.next, 0), this.slider.state.length - this.slider.slidesToShow) : this.slider.state.next = 0 : this.slider.state.next <= 0 - this.slider.slidesToScroll ? this.slider.state.next = this.slider.state.length - this.slider.slidesToShow : this.slider.state.next = 0);\n }\n }]), e;\n }();\n\n e.a = r;\n }, function (t, e, i) {\n \"use strict\";\n\n i.d(e, \"a\", function () {\n return n;\n });\n\n var n = function (t, e) {\n var i = t.getBoundingClientRect();\n return e = e || document.documentElement, 0 <= i.top && 0 <= i.left && i.bottom <= (window.innerHeight || e.clientHeight) && i.right <= (window.innerWidth || e.clientWidth);\n };\n }, function (t, e, i) {\n \"use strict\";\n\n var n = i(14),\n s = i(1),\n r = function () {\n function n(t, e) {\n for (var i = 0; i < e.length; i++) {\n var n = e[i];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (t, e, i) {\n return e && n(t.prototype, e), i && n(t, i), t;\n };\n }();\n\n var o = function () {\n function e(t) {\n !function (t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.slider = t, this._clickEvents = [\"click\", \"touch\"], this._supportsPassive = Object(s.a)(), this.onPreviousClick = this.onPreviousClick.bind(this), this.onNextClick = this.onNextClick.bind(this), this.onKeyUp = this.onKeyUp.bind(this);\n }\n\n return r(e, [{\n key: \"init\",\n value: function () {\n return this.node = document.createRange().createContextualFragment(Object(n.a)(this.slider.options.icons)), this._ui = {\n previous: this.node.querySelector(\".slider-navigation-previous\"),\n next: this.node.querySelector(\".slider-navigation-next\")\n }, this._unbindEvents(), this._bindEvents(), this.refresh(), this;\n }\n }, {\n key: \"destroy\",\n value: function () {\n this._unbindEvents();\n }\n }, {\n key: \"_bindEvents\",\n value: function () {\n var e = this;\n this.slider.wrapper.addEventListener(\"keyup\", this.onKeyUp), this._clickEvents.forEach(function (t) {\n e._ui.previous.addEventListener(t, e.onPreviousClick), e._ui.next.addEventListener(t, e.onNextClick);\n });\n }\n }, {\n key: \"_unbindEvents\",\n value: function () {\n var e = this;\n this.slider.wrapper.removeEventListener(\"keyup\", this.onKeyUp), this._clickEvents.forEach(function (t) {\n e._ui.previous.removeEventListener(t, e.onPreviousClick), e._ui.next.removeEventListener(t, e.onNextClick);\n });\n }\n }, {\n key: \"onNextClick\",\n value: function (t) {\n this._supportsPassive || t.preventDefault(), this.slider.options.navigation && this.slider.next();\n }\n }, {\n key: \"onPreviousClick\",\n value: function (t) {\n this._supportsPassive || t.preventDefault(), this.slider.options.navigation && this.slider.previous();\n }\n }, {\n key: \"onKeyUp\",\n value: function (t) {\n this.slider.options.keyNavigation && (\"ArrowRight\" === t.key || \"Right\" === t.key ? this.slider.next() : \"ArrowLeft\" !== t.key && \"Left\" !== t.key || this.slider.previous());\n }\n }, {\n key: \"refresh\",\n value: function () {\n this.slider.options.loop || this.slider.options.infinite || (this.slider.options.navigation && this.slider.state.length > this.slider.slidesToShow ? (this._ui.previous.classList.remove(\"is-hidden\"), this._ui.next.classList.remove(\"is-hidden\"), 0 === this.slider.state.next ? (this._ui.previous.classList.add(\"is-hidden\"), this._ui.next.classList.remove(\"is-hidden\")) : this.slider.state.next >= this.slider.state.length - this.slider.slidesToShow && !this.slider.options.centerMode ? (this._ui.previous.classList.remove(\"is-hidden\"), this._ui.next.classList.add(\"is-hidden\")) : this.slider.state.next >= this.slider.state.length - 1 && this.slider.options.centerMode && (this._ui.previous.classList.remove(\"is-hidden\"), this._ui.next.classList.add(\"is-hidden\"))) : (this._ui.previous.classList.add(\"is-hidden\"), this._ui.next.classList.add(\"is-hidden\")));\n }\n }, {\n key: \"render\",\n value: function () {\n return this.node;\n }\n }]), e;\n }();\n\n e.a = o;\n }, function (t, e, i) {\n \"use strict\";\n\n e.a = function (t) {\n return '
' + t.previous + '
\\n
' + t.next + \"
\";\n };\n }, function (t, e, i) {\n \"use strict\";\n\n var n = i(16),\n s = i(17),\n r = i(1),\n o = function () {\n function n(t, e) {\n for (var i = 0; i < e.length; i++) {\n var n = e[i];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (t, e, i) {\n return e && n(t.prototype, e), i && n(t, i), t;\n };\n }();\n\n var a = function () {\n function e(t) {\n !function (t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.slider = t, this._clickEvents = [\"click\", \"touch\"], this._supportsPassive = Object(r.a)(), this.onPageClick = this.onPageClick.bind(this), this.onResize = this.onResize.bind(this);\n }\n\n return o(e, [{\n key: \"init\",\n value: function () {\n return this._pages = [], this.node = document.createRange().createContextualFragment(Object(n.a)()), this._ui = {\n container: this.node.firstChild\n }, this._count = Math.ceil((this.slider.state.length - this.slider.slidesToShow) / this.slider.slidesToScroll), this._draw(), this.refresh(), this;\n }\n }, {\n key: \"destroy\",\n value: function () {\n this._unbindEvents();\n }\n }, {\n key: \"_bindEvents\",\n value: function () {\n var i = this;\n window.addEventListener(\"resize\", this.onResize), window.addEventListener(\"orientationchange\", this.onResize), this._clickEvents.forEach(function (e) {\n i._pages.forEach(function (t) {\n return t.addEventListener(e, i.onPageClick);\n });\n });\n }\n }, {\n key: \"_unbindEvents\",\n value: function () {\n var i = this;\n window.removeEventListener(\"resize\", this.onResize), window.removeEventListener(\"orientationchange\", this.onResize), this._clickEvents.forEach(function (e) {\n i._pages.forEach(function (t) {\n return t.removeEventListener(e, i.onPageClick);\n });\n });\n }\n }, {\n key: \"_draw\",\n value: function () {\n if (this._ui.container.innerHTML = \"\", this.slider.options.pagination && this.slider.state.length > this.slider.slidesToShow) {\n for (var t = 0; t <= this._count; t++) {\n var e = document.createRange().createContextualFragment(Object(s.a)()).firstChild;\n e.dataset.index = t * this.slider.slidesToScroll, this._pages.push(e), this._ui.container.appendChild(e);\n }\n\n this._bindEvents();\n }\n }\n }, {\n key: \"onPageClick\",\n value: function (t) {\n this._supportsPassive || t.preventDefault(), this.slider.state.next = t.currentTarget.dataset.index, this.slider.show();\n }\n }, {\n key: \"onResize\",\n value: function () {\n this._draw();\n }\n }, {\n key: \"refresh\",\n value: function () {\n var e = this,\n t = void 0;\n (t = this.slider.options.infinite ? Math.ceil(this.slider.state.length - 1 / this.slider.slidesToScroll) : Math.ceil((this.slider.state.length - this.slider.slidesToShow) / this.slider.slidesToScroll)) !== this._count && (this._count = t, this._draw()), this._pages.forEach(function (t) {\n t.classList.remove(\"is-active\"), parseInt(t.dataset.index, 10) === e.slider.state.next % e.slider.state.length && t.classList.add(\"is-active\");\n });\n }\n }, {\n key: \"render\",\n value: function () {\n return this.node;\n }\n }]), e;\n }();\n\n e.a = a;\n }, function (t, e, i) {\n \"use strict\";\n\n e.a = function () {\n return '
';\n };\n }, function (t, e, i) {\n \"use strict\";\n\n e.a = function () {\n return '
';\n };\n }, function (t, e, i) {\n \"use strict\";\n\n var n = i(4),\n s = i(1),\n r = function () {\n function n(t, e) {\n for (var i = 0; i < e.length; i++) {\n var n = e[i];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (t, e, i) {\n return e && n(t.prototype, e), i && n(t, i), t;\n };\n }();\n\n var o = function () {\n function e(t) {\n !function (t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.slider = t, this._supportsPassive = Object(s.a)(), this.onStartDrag = this.onStartDrag.bind(this), this.onMoveDrag = this.onMoveDrag.bind(this), this.onStopDrag = this.onStopDrag.bind(this), this._init();\n }\n\n return r(e, [{\n key: \"_init\",\n value: function () {}\n }, {\n key: \"bindEvents\",\n value: function () {\n var e = this;\n this.slider.container.addEventListener(\"dragstart\", function (t) {\n e._supportsPassive || t.preventDefault();\n }), this.slider.container.addEventListener(\"mousedown\", this.onStartDrag), this.slider.container.addEventListener(\"touchstart\", this.onStartDrag), window.addEventListener(\"mousemove\", this.onMoveDrag), window.addEventListener(\"touchmove\", this.onMoveDrag), window.addEventListener(\"mouseup\", this.onStopDrag), window.addEventListener(\"touchend\", this.onStopDrag), window.addEventListener(\"touchcancel\", this.onStopDrag);\n }\n }, {\n key: \"unbindEvents\",\n value: function () {\n var e = this;\n this.slider.container.removeEventListener(\"dragstart\", function (t) {\n e._supportsPassive || t.preventDefault();\n }), this.slider.container.removeEventListener(\"mousedown\", this.onStartDrag), this.slider.container.removeEventListener(\"touchstart\", this.onStartDrag), window.removeEventListener(\"mousemove\", this.onMoveDrag), window.removeEventListener(\"touchmove\", this.onMoveDrag), window.removeEventListener(\"mouseup\", this.onStopDrag), window.removeEventListener(\"mouseup\", this.onStopDrag), window.removeEventListener(\"touchcancel\", this.onStopDrag);\n }\n }, {\n key: \"onStartDrag\",\n value: function (t) {\n if (t.touches) {\n if (1 < t.touches.length) return;\n t = t.touches[0];\n }\n\n this._origin = new n.a(t.screenX, t.screenY), this.width = this.slider.wrapperWidth, this.slider.transitioner.disable();\n }\n }, {\n key: \"onMoveDrag\",\n value: function (t) {\n if (this._origin) {\n var e = t.touches ? t.touches[0] : t;\n this._lastTranslate = new n.a(e.screenX - this._origin.x, e.screenY - this._origin.y), t.touches && Math.abs(this._lastTranslate.x) > Math.abs(this._lastTranslate.y) && (this._supportsPassive || t.preventDefault(), t.stopPropagation());\n }\n }\n }, {\n key: \"onStopDrag\",\n value: function (t) {\n this._origin && this._lastTranslate && (Math.abs(this._lastTranslate.x) > .2 * this.width ? this._lastTranslate.x < 0 ? this.slider.next() : this.slider.previous() : this.slider.show(!0)), this._origin = null, this._lastTranslate = null;\n }\n }]), e;\n }();\n\n e.a = o;\n }, function (t, e, i) {\n \"use strict\";\n\n var n = i(20),\n s = i(21),\n r = function () {\n function n(t, e) {\n for (var i = 0; i < e.length; i++) {\n var n = e[i];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (t, e, i) {\n return e && n(t.prototype, e), i && n(t, i), t;\n };\n }();\n\n var o = function () {\n function e(t) {\n !function (t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.slider = t, this.options = t.options, this._animating = !1, this._animation = void 0, this._translate = new s.a(this, t, t.options), this._fade = new n.a(this, t, t.options);\n }\n\n return r(e, [{\n key: \"init\",\n value: function () {\n return this._fade.init(), this._translate.init(), this;\n }\n }, {\n key: \"isAnimating\",\n value: function () {\n return this._animating;\n }\n }, {\n key: \"enable\",\n value: function () {\n this._animation && this._animation.enable();\n }\n }, {\n key: \"disable\",\n value: function () {\n this._animation && this._animation.disable();\n }\n }, {\n key: \"apply\",\n value: function (t, e) {\n if (!this._animating || t) {\n switch (this.options.effect) {\n case \"fade\":\n this._animation = this._fade;\n break;\n\n case \"translate\":\n default:\n this._animation = this._translate;\n }\n\n this._animationCallback = e, t ? this._animation && this._animation.disable() : (this._animation && this._animation.enable(), this._animating = !0), this._animation && this._animation.apply(), t && this.end();\n }\n }\n }, {\n key: \"end\",\n value: function () {\n this._animating = !1, this._animation = void 0, this.slider.state.index = this.slider.state.next, this._animationCallback && this._animationCallback();\n }\n }]), e;\n }();\n\n e.a = o;\n }, function (t, e, i) {\n \"use strict\";\n\n var s = i(0),\n r = Object.assign || function (t) {\n for (var e = 1; e < arguments.length; e++) {\n var i = arguments[e];\n\n for (var n in i) Object.prototype.hasOwnProperty.call(i, n) && (t[n] = i[n]);\n }\n\n return t;\n },\n o = function () {\n function n(t, e) {\n for (var i = 0; i < e.length; i++) {\n var n = e[i];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (t, e, i) {\n return e && n(t.prototype, e), i && n(t, i), t;\n };\n }();\n\n var n = function () {\n function n(t, e) {\n var i = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {};\n !function (t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, n), this.transitioner = t, this.slider = e, this.options = r({}, i);\n }\n\n return o(n, [{\n key: \"init\",\n value: function () {\n var i = this;\n return \"fade\" === this.options.effect && this.slider.slides.forEach(function (t, e) {\n Object(s.a)(t, {\n position: \"absolute\",\n left: 0,\n top: 0,\n bottom: 0,\n \"z-index\": t.dataset.sliderIndex == i.slider.state.index ? 0 : -2,\n opacity: t.dataset.sliderIndex == i.slider.state.index ? 1 : 0\n });\n }), this;\n }\n }, {\n key: \"enable\",\n value: function () {\n var e = this;\n this._oldSlide = this.slider.slides.filter(function (t) {\n return t.dataset.sliderIndex == e.slider.state.index;\n })[0], this._newSlide = this.slider.slides.filter(function (t) {\n return t.dataset.sliderIndex == e.slider.state.next;\n })[0], this._newSlide && (this._newSlide.addEventListener(\"transitionend\", this.onTransitionEnd.bind(this)), this._newSlide.style.transition = this.options.duration + \"ms \" + this.options.timing, this._oldSlide && (this._oldSlide.addEventListener(\"transitionend\", this.onTransitionEnd.bind(this)), this._oldSlide.style.transition = this.options.duration + \"ms \" + this.options.timing));\n }\n }, {\n key: \"disable\",\n value: function () {\n var e = this;\n this._oldSlide = this.slider.slides.filter(function (t) {\n return t.dataset.sliderIndex == e.slider.state.index;\n })[0], this._newSlide = this.slider.slides.filter(function (t) {\n return t.dataset.sliderIndex == e.slider.state.next;\n })[0], this._newSlide && (this._newSlide.removeEventListener(\"transitionend\", this.onTransitionEnd.bind(this)), this._newSlide.style.transition = \"none\", this._oldSlide && (this._oldSlide.removeEventListener(\"transitionend\", this.onTransitionEnd.bind(this)), this._oldSlide.style.transition = \"none\"));\n }\n }, {\n key: \"apply\",\n value: function (t) {\n var e = this;\n this._oldSlide = this.slider.slides.filter(function (t) {\n return t.dataset.sliderIndex == e.slider.state.index;\n })[0], this._newSlide = this.slider.slides.filter(function (t) {\n return t.dataset.sliderIndex == e.slider.state.next;\n })[0], this._oldSlide && this._newSlide && (Object(s.a)(this._oldSlide, {\n opacity: 0\n }), Object(s.a)(this._newSlide, {\n opacity: 1,\n \"z-index\": t ? 0 : -1\n }));\n }\n }, {\n key: \"onTransitionEnd\",\n value: function (t) {\n \"fade\" === this.options.effect && (this.transitioner.isAnimating() && t.target == this._newSlide && (this._newSlide && (Object(s.a)(this._newSlide, {\n \"z-index\": 0\n }), this._newSlide.removeEventListener(\"transitionend\", this.onTransitionEnd.bind(this))), this._oldSlide && (Object(s.a)(this._oldSlide, {\n \"z-index\": -2\n }), this._oldSlide.removeEventListener(\"transitionend\", this.onTransitionEnd.bind(this)))), this.transitioner.end());\n }\n }]), n;\n }();\n\n e.a = n;\n }, function (t, e, i) {\n \"use strict\";\n\n var r = i(4),\n o = i(0),\n s = Object.assign || function (t) {\n for (var e = 1; e < arguments.length; e++) {\n var i = arguments[e];\n\n for (var n in i) Object.prototype.hasOwnProperty.call(i, n) && (t[n] = i[n]);\n }\n\n return t;\n },\n a = function () {\n function n(t, e) {\n for (var i = 0; i < e.length; i++) {\n var n = e[i];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (t, e, i) {\n return e && n(t.prototype, e), i && n(t, i), t;\n };\n }();\n\n var n = function () {\n function n(t, e) {\n var i = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {};\n !function (t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, n), this.transitioner = t, this.slider = e, this.options = s({}, i), this.onTransitionEnd = this.onTransitionEnd.bind(this);\n }\n\n return a(n, [{\n key: \"init\",\n value: function () {\n return this._position = new r.a(this.slider.container.offsetLeft, this.slider.container.offsetTop), this._bindEvents(), this;\n }\n }, {\n key: \"destroy\",\n value: function () {\n this._unbindEvents();\n }\n }, {\n key: \"_bindEvents\",\n value: function () {\n this.slider.container.addEventListener(\"transitionend\", this.onTransitionEnd);\n }\n }, {\n key: \"_unbindEvents\",\n value: function () {\n this.slider.container.removeEventListener(\"transitionend\", this.onTransitionEnd);\n }\n }, {\n key: \"enable\",\n value: function () {\n this.slider.container.style.transition = this.options.duration + \"ms \" + this.options.timing;\n }\n }, {\n key: \"disable\",\n value: function () {\n this.slider.container.style.transition = \"none\";\n }\n }, {\n key: \"apply\",\n value: function () {\n var e = this,\n t = void 0;\n\n if (\"translate\" === this.options.effect) {\n var i = this.slider.slides.filter(function (t) {\n return t.dataset.sliderIndex == e.slider.state.next;\n })[0],\n n = new r.a(i.offsetLeft, i.offsetTop);\n t = this.options.centerMode ? new r.a(Math.round(Object(o.e)(this.slider.container)), Math.round(Object(o.b)(this.slider.container))) : new r.a(Math.round(Object(o.e)(this.slider.container) - Object(o.e)(this.slider.wrapper)), Math.round(Object(o.b)(this.slider.container) - Object(o.b)(this.slider.wrapper)));\n var s = new r.a(Math.min(Math.max(-1 * n.x, -1 * t.x), 0), Math.min(Math.max(-1 * n.y, -1 * t.y), 0));\n this.options.loop && (!this.options.vertical && Math.abs(this._position.x) > t.x ? (s.x = 0, this.slider.state.next = 0) : this.options.vertical && Math.abs(this._position.y) > t.y && (s.y = 0, this.slider.state.next = 0)), this._position.x = s.x, this._position.y = s.y, this.options.centerMode && (this._position.x = this._position.x + this.slider.wrapperWidth / 2 - Object(o.e)(i) / 2), \"rtl\" === this.slider.direction && (this._position.x = -this._position.x, this._position.y = -this._position.y), this.slider.container.style.transform = \"translate3d(\" + this._position.x + \"px, \" + this._position.y + \"px, 0)\", n.x > t.x && this.slider.transitioner.end();\n }\n }\n }, {\n key: \"onTransitionEnd\",\n value: function (t) {\n \"translate\" === this.options.effect && (this.transitioner.isAnimating() && t.target == this.slider.container && this.options.infinite && this.slider._infinite.onTransitionEnd(t), this.transitioner.end());\n }\n }]), n;\n }();\n\n e.a = n;\n }, function (t, e, i) {\n \"use strict\";\n\n e.a = {\n initialSlide: 0,\n slidesToScroll: 1,\n slidesToShow: 1,\n navigation: !0,\n navigationKeys: !0,\n navigationSwipe: !0,\n pagination: !0,\n loop: !1,\n infinite: !1,\n effect: \"translate\",\n duration: 300,\n timing: \"ease\",\n autoplay: !1,\n autoplaySpeed: 3e3,\n pauseOnHover: !0,\n breakpoints: [{\n changePoint: 480,\n slidesToShow: 1,\n slidesToScroll: 1\n }, {\n changePoint: 640,\n slidesToShow: 2,\n slidesToScroll: 2\n }, {\n changePoint: 768,\n slidesToShow: 3,\n slidesToScroll: 3\n }],\n onReady: null,\n icons: {\n previous: '\\n \\n ',\n next: '\\n \\n '\n }\n };\n }, function (t, e, i) {\n \"use strict\";\n\n e.a = function (t) {\n return '
\\n
\\n
';\n };\n }, function (t, e, i) {\n \"use strict\";\n\n e.a = function () {\n return '
';\n };\n }]).default;\n});","/*\nTurbolinks 5.2.0\nCopyright © 2018 Basecamp, LLC\n */\n(function () {\n var t = this;\n (function () {\n (function () {\n this.Turbolinks = {\n supported: function () {\n return null != window.history.pushState && null != window.requestAnimationFrame && null != window.addEventListener;\n }(),\n visit: function (t, r) {\n return e.controller.visit(t, r);\n },\n clearCache: function () {\n return e.controller.clearCache();\n },\n setProgressBarDelay: function (t) {\n return e.controller.setProgressBarDelay(t);\n }\n };\n }).call(this);\n }).call(t);\n var e = t.Turbolinks;\n (function () {\n (function () {\n var t,\n r,\n n,\n o = [].slice;\n e.copyObject = function (t) {\n var e, r, n;\n r = {};\n\n for (e in t) n = t[e], r[e] = n;\n\n return r;\n }, e.closest = function (e, r) {\n return t.call(e, r);\n }, t = function () {\n var t, e;\n return t = document.documentElement, null != (e = t.closest) ? e : function (t) {\n var e;\n\n for (e = this; e;) {\n if (e.nodeType === Node.ELEMENT_NODE && r.call(e, t)) return e;\n e = e.parentNode;\n }\n };\n }(), e.defer = function (t) {\n return setTimeout(t, 1);\n }, e.throttle = function (t) {\n var e;\n return e = null, function () {\n var r;\n return r = 1 <= arguments.length ? o.call(arguments, 0) : [], null != e ? e : e = requestAnimationFrame(function (n) {\n return function () {\n return e = null, t.apply(n, r);\n };\n }(this));\n };\n }, e.dispatch = function (t, e) {\n var r, o, i, s, a, u;\n return a = null != e ? e : {}, u = a.target, r = a.cancelable, o = a.data, i = document.createEvent(\"Events\"), i.initEvent(t, !0, r === !0), i.data = null != o ? o : {}, i.cancelable && !n && (s = i.preventDefault, i.preventDefault = function () {\n return this.defaultPrevented || Object.defineProperty(this, \"defaultPrevented\", {\n get: function () {\n return !0;\n }\n }), s.call(this);\n }), (null != u ? u : document).dispatchEvent(i), i;\n }, n = function () {\n var t;\n return t = document.createEvent(\"Events\"), t.initEvent(\"test\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }(), e.match = function (t, e) {\n return r.call(t, e);\n }, r = function () {\n var t, e, r, n;\n return t = document.documentElement, null != (e = null != (r = null != (n = t.matchesSelector) ? n : t.webkitMatchesSelector) ? r : t.msMatchesSelector) ? e : t.mozMatchesSelector;\n }(), e.uuid = function () {\n var t, e, r;\n\n for (r = \"\", t = e = 1; 36 >= e; t = ++e) r += 9 === t || 14 === t || 19 === t || 24 === t ? \"-\" : 15 === t ? \"4\" : 20 === t ? (Math.floor(4 * Math.random()) + 8).toString(16) : Math.floor(15 * Math.random()).toString(16);\n\n return r;\n };\n }).call(this), function () {\n e.Location = function () {\n function t(t) {\n var e, r;\n null == t && (t = \"\"), r = document.createElement(\"a\"), r.href = t.toString(), this.absoluteURL = r.href, e = r.hash.length, 2 > e ? this.requestURL = this.absoluteURL : (this.requestURL = this.absoluteURL.slice(0, -e), this.anchor = r.hash.slice(1));\n }\n\n var e, r, n, o;\n return t.wrap = function (t) {\n return t instanceof this ? t : new this(t);\n }, t.prototype.getOrigin = function () {\n return this.absoluteURL.split(\"/\", 3).join(\"/\");\n }, t.prototype.getPath = function () {\n var t, e;\n return null != (t = null != (e = this.requestURL.match(/\\/\\/[^\\/]*(\\/[^?;]*)/)) ? e[1] : void 0) ? t : \"/\";\n }, t.prototype.getPathComponents = function () {\n return this.getPath().split(\"/\").slice(1);\n }, t.prototype.getLastPathComponent = function () {\n return this.getPathComponents().slice(-1)[0];\n }, t.prototype.getExtension = function () {\n var t, e;\n return null != (t = null != (e = this.getLastPathComponent().match(/\\.[^.]*$/)) ? e[0] : void 0) ? t : \"\";\n }, t.prototype.isHTML = function () {\n return this.getExtension().match(/^(?:|\\.(?:htm|html|xhtml))$/);\n }, t.prototype.isPrefixedBy = function (t) {\n var e;\n return e = r(t), this.isEqualTo(t) || o(this.absoluteURL, e);\n }, t.prototype.isEqualTo = function (t) {\n return this.absoluteURL === (null != t ? t.absoluteURL : void 0);\n }, t.prototype.toCacheKey = function () {\n return this.requestURL;\n }, t.prototype.toJSON = function () {\n return this.absoluteURL;\n }, t.prototype.toString = function () {\n return this.absoluteURL;\n }, t.prototype.valueOf = function () {\n return this.absoluteURL;\n }, r = function (t) {\n return e(t.getOrigin() + t.getPath());\n }, e = function (t) {\n return n(t, \"/\") ? t : t + \"/\";\n }, o = function (t, e) {\n return t.slice(0, e.length) === e;\n }, n = function (t, e) {\n return t.slice(-e.length) === e;\n }, t;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n\n e.HttpRequest = function () {\n function r(r, n, o) {\n this.delegate = r, this.requestCanceled = t(this.requestCanceled, this), this.requestTimedOut = t(this.requestTimedOut, this), this.requestFailed = t(this.requestFailed, this), this.requestLoaded = t(this.requestLoaded, this), this.requestProgressed = t(this.requestProgressed, this), this.url = e.Location.wrap(n).requestURL, this.referrer = e.Location.wrap(o).absoluteURL, this.createXHR();\n }\n\n return r.NETWORK_FAILURE = 0, r.TIMEOUT_FAILURE = -1, r.timeout = 60, r.prototype.send = function () {\n var t;\n return this.xhr && !this.sent ? (this.notifyApplicationBeforeRequestStart(), this.setProgress(0), this.xhr.send(), this.sent = !0, \"function\" == typeof (t = this.delegate).requestStarted ? t.requestStarted() : void 0) : void 0;\n }, r.prototype.cancel = function () {\n return this.xhr && this.sent ? this.xhr.abort() : void 0;\n }, r.prototype.requestProgressed = function (t) {\n return t.lengthComputable ? this.setProgress(t.loaded / t.total) : void 0;\n }, r.prototype.requestLoaded = function () {\n return this.endRequest(function (t) {\n return function () {\n var e;\n return 200 <= (e = t.xhr.status) && 300 > e ? t.delegate.requestCompletedWithResponse(t.xhr.responseText, t.xhr.getResponseHeader(\"Turbolinks-Location\")) : (t.failed = !0, t.delegate.requestFailedWithStatusCode(t.xhr.status, t.xhr.responseText));\n };\n }(this));\n }, r.prototype.requestFailed = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.NETWORK_FAILURE);\n };\n }(this));\n }, r.prototype.requestTimedOut = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.TIMEOUT_FAILURE);\n };\n }(this));\n }, r.prototype.requestCanceled = function () {\n return this.endRequest();\n }, r.prototype.notifyApplicationBeforeRequestStart = function () {\n return e.dispatch(\"turbolinks:request-start\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.notifyApplicationAfterRequestEnd = function () {\n return e.dispatch(\"turbolinks:request-end\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.createXHR = function () {\n return this.xhr = new XMLHttpRequest(), this.xhr.open(\"GET\", this.url, !0), this.xhr.timeout = 1e3 * this.constructor.timeout, this.xhr.setRequestHeader(\"Accept\", \"text/html, application/xhtml+xml\"), this.xhr.setRequestHeader(\"Turbolinks-Referrer\", this.referrer), this.xhr.onprogress = this.requestProgressed, this.xhr.onload = this.requestLoaded, this.xhr.onerror = this.requestFailed, this.xhr.ontimeout = this.requestTimedOut, this.xhr.onabort = this.requestCanceled;\n }, r.prototype.endRequest = function (t) {\n return this.xhr ? (this.notifyApplicationAfterRequestEnd(), null != t && t.call(this), this.destroy()) : void 0;\n }, r.prototype.setProgress = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.delegate).requestProgressed ? e.requestProgressed(this.progress) : void 0;\n }, r.prototype.destroy = function () {\n var t;\n return this.setProgress(1), \"function\" == typeof (t = this.delegate).requestFinished && t.requestFinished(), this.delegate = null, this.xhr = null;\n }, r;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n\n e.ProgressBar = function () {\n function e() {\n this.trickle = t(this.trickle, this), this.stylesheetElement = this.createStylesheetElement(), this.progressElement = this.createProgressElement();\n }\n\n var r;\n return r = 300, e.defaultCSS = \".turbolinks-progress-bar {\\n position: fixed;\\n display: block;\\n top: 0;\\n left: 0;\\n height: 3px;\\n background: #0076ff;\\n z-index: 9999;\\n transition: width \" + r + \"ms ease-out, opacity \" + r / 2 + \"ms \" + r / 2 + \"ms ease-in;\\n transform: translate3d(0, 0, 0);\\n}\", e.prototype.show = function () {\n return this.visible ? void 0 : (this.visible = !0, this.installStylesheetElement(), this.installProgressElement(), this.startTrickling());\n }, e.prototype.hide = function () {\n return this.visible && !this.hiding ? (this.hiding = !0, this.fadeProgressElement(function (t) {\n return function () {\n return t.uninstallProgressElement(), t.stopTrickling(), t.visible = !1, t.hiding = !1;\n };\n }(this))) : void 0;\n }, e.prototype.setValue = function (t) {\n return this.value = t, this.refresh();\n }, e.prototype.installStylesheetElement = function () {\n return document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\n }, e.prototype.installProgressElement = function () {\n return this.progressElement.style.width = 0, this.progressElement.style.opacity = 1, document.documentElement.insertBefore(this.progressElement, document.body), this.refresh();\n }, e.prototype.fadeProgressElement = function (t) {\n return this.progressElement.style.opacity = 0, setTimeout(t, 1.5 * r);\n }, e.prototype.uninstallProgressElement = function () {\n return this.progressElement.parentNode ? document.documentElement.removeChild(this.progressElement) : void 0;\n }, e.prototype.startTrickling = function () {\n return null != this.trickleInterval ? this.trickleInterval : this.trickleInterval = setInterval(this.trickle, r);\n }, e.prototype.stopTrickling = function () {\n return clearInterval(this.trickleInterval), this.trickleInterval = null;\n }, e.prototype.trickle = function () {\n return this.setValue(this.value + Math.random() / 100);\n }, e.prototype.refresh = function () {\n return requestAnimationFrame(function (t) {\n return function () {\n return t.progressElement.style.width = 10 + 90 * t.value + \"%\";\n };\n }(this));\n }, e.prototype.createStylesheetElement = function () {\n var t;\n return t = document.createElement(\"style\"), t.type = \"text/css\", t.textContent = this.constructor.defaultCSS, t;\n }, e.prototype.createProgressElement = function () {\n var t;\n return t = document.createElement(\"div\"), t.className = \"turbolinks-progress-bar\", t;\n }, e;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n\n e.BrowserAdapter = function () {\n function r(r) {\n this.controller = r, this.showProgressBar = t(this.showProgressBar, this), this.progressBar = new e.ProgressBar();\n }\n\n var n, o, i;\n return i = e.HttpRequest, n = i.NETWORK_FAILURE, o = i.TIMEOUT_FAILURE, r.prototype.visitProposedToLocationWithAction = function (t, e) {\n return this.controller.startVisitToLocationWithAction(t, e);\n }, r.prototype.visitStarted = function (t) {\n return t.issueRequest(), t.changeHistory(), t.loadCachedSnapshot();\n }, r.prototype.visitRequestStarted = function (t) {\n return this.progressBar.setValue(0), t.hasCachedSnapshot() || \"restore\" !== t.action ? this.showProgressBarAfterDelay() : this.showProgressBar();\n }, r.prototype.visitRequestProgressed = function (t) {\n return this.progressBar.setValue(t.progress);\n }, r.prototype.visitRequestCompleted = function (t) {\n return t.loadResponse();\n }, r.prototype.visitRequestFailedWithStatusCode = function (t, e) {\n switch (e) {\n case n:\n case o:\n return this.reload();\n\n default:\n return t.loadResponse();\n }\n }, r.prototype.visitRequestFinished = function (t) {\n return this.hideProgressBar();\n }, r.prototype.visitCompleted = function (t) {\n return t.followRedirect();\n }, r.prototype.pageInvalidated = function () {\n return this.reload();\n }, r.prototype.showProgressBarAfterDelay = function () {\n return this.progressBarTimeout = setTimeout(this.showProgressBar, this.controller.progressBarDelay);\n }, r.prototype.showProgressBar = function () {\n return this.progressBar.show();\n }, r.prototype.hideProgressBar = function () {\n return this.progressBar.hide(), clearTimeout(this.progressBarTimeout);\n }, r.prototype.reload = function () {\n return window.location.reload();\n }, r;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n\n e.History = function () {\n function r(e) {\n this.delegate = e, this.onPageLoad = t(this.onPageLoad, this), this.onPopState = t(this.onPopState, this);\n }\n\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"popstate\", this.onPopState, !1), addEventListener(\"load\", this.onPageLoad, !1), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"popstate\", this.onPopState, !1), removeEventListener(\"load\", this.onPageLoad, !1), this.started = !1) : void 0;\n }, r.prototype.push = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"push\", t, r);\n }, r.prototype.replace = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"replace\", t, r);\n }, r.prototype.onPopState = function (t) {\n var r, n, o, i;\n return this.shouldHandlePopState() && (i = null != (n = t.state) ? n.turbolinks : void 0) ? (r = e.Location.wrap(window.location), o = i.restorationIdentifier, this.delegate.historyPoppedToLocationWithRestorationIdentifier(r, o)) : void 0;\n }, r.prototype.onPageLoad = function (t) {\n return e.defer(function (t) {\n return function () {\n return t.pageLoaded = !0;\n };\n }(this));\n }, r.prototype.shouldHandlePopState = function () {\n return this.pageIsLoaded();\n }, r.prototype.pageIsLoaded = function () {\n return this.pageLoaded || \"complete\" === document.readyState;\n }, r.prototype.update = function (t, e, r) {\n var n;\n return n = {\n turbolinks: {\n restorationIdentifier: r\n }\n }, history[t + \"State\"](n, null, e);\n }, r;\n }();\n }.call(this), function () {\n e.HeadDetails = function () {\n function t(t) {\n var e, r, n, s, a, u;\n\n for (this.elements = {}, n = 0, a = t.length; a > n; n++) u = t[n], u.nodeType === Node.ELEMENT_NODE && (s = u.outerHTML, r = null != (e = this.elements)[s] ? e[s] : e[s] = {\n type: i(u),\n tracked: o(u),\n elements: []\n }, r.elements.push(u));\n }\n\n var e, r, n, o, i;\n return t.fromHeadElement = function (t) {\n var e;\n return new this(null != (e = null != t ? t.childNodes : void 0) ? e : []);\n }, t.prototype.hasElementWithKey = function (t) {\n return t in this.elements;\n }, t.prototype.getTrackedElementSignature = function () {\n var t, e;\n return function () {\n var r, n;\n r = this.elements, n = [];\n\n for (t in r) e = r[t].tracked, e && n.push(t);\n\n return n;\n }.call(this).join(\"\");\n }, t.prototype.getScriptElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"script\", t);\n }, t.prototype.getStylesheetElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"stylesheet\", t);\n }, t.prototype.getElementsMatchingTypeNotInDetails = function (t, e) {\n var r, n, o, i, s, a;\n o = this.elements, s = [];\n\n for (n in o) i = o[n], a = i.type, r = i.elements, a !== t || e.hasElementWithKey(n) || s.push(r[0]);\n\n return s;\n }, t.prototype.getProvisionalElements = function () {\n var t, e, r, n, o, i, s;\n r = [], n = this.elements;\n\n for (e in n) o = n[e], s = o.type, i = o.tracked, t = o.elements, null != s || i ? t.length > 1 && r.push.apply(r, t.slice(1)) : r.push.apply(r, t);\n\n return r;\n }, t.prototype.getMetaValue = function (t) {\n var e;\n return null != (e = this.findMetaElementByName(t)) ? e.getAttribute(\"content\") : void 0;\n }, t.prototype.findMetaElementByName = function (t) {\n var r, n, o, i;\n r = void 0, i = this.elements;\n\n for (o in i) n = i[o].elements, e(n[0], t) && (r = n[0]);\n\n return r;\n }, i = function (t) {\n return r(t) ? \"script\" : n(t) ? \"stylesheet\" : void 0;\n }, o = function (t) {\n return \"reload\" === t.getAttribute(\"data-turbolinks-track\");\n }, r = function (t) {\n var e;\n return e = t.tagName.toLowerCase(), \"script\" === e;\n }, n = function (t) {\n var e;\n return e = t.tagName.toLowerCase(), \"style\" === e || \"link\" === e && \"stylesheet\" === t.getAttribute(\"rel\");\n }, e = function (t, e) {\n var r;\n return r = t.tagName.toLowerCase(), \"meta\" === r && t.getAttribute(\"name\") === e;\n }, t;\n }();\n }.call(this), function () {\n e.Snapshot = function () {\n function t(t, e) {\n this.headDetails = t, this.bodyElement = e;\n }\n\n return t.wrap = function (t) {\n return t instanceof this ? t : \"string\" == typeof t ? this.fromHTMLString(t) : this.fromHTMLElement(t);\n }, t.fromHTMLString = function (t) {\n var e;\n return e = document.createElement(\"html\"), e.innerHTML = t, this.fromHTMLElement(e);\n }, t.fromHTMLElement = function (t) {\n var r, n, o, i;\n return o = t.querySelector(\"head\"), r = null != (i = t.querySelector(\"body\")) ? i : document.createElement(\"body\"), n = e.HeadDetails.fromHeadElement(o), new this(n, r);\n }, t.prototype.clone = function () {\n return new this.constructor(this.headDetails, this.bodyElement.cloneNode(!0));\n }, t.prototype.getRootLocation = function () {\n var t, r;\n return r = null != (t = this.getSetting(\"root\")) ? t : \"/\", new e.Location(r);\n }, t.prototype.getCacheControlValue = function () {\n return this.getSetting(\"cache-control\");\n }, t.prototype.getElementForAnchor = function (t) {\n try {\n return this.bodyElement.querySelector(\"[id='\" + t + \"'], a[name='\" + t + \"']\");\n } catch (e) {}\n }, t.prototype.getPermanentElements = function () {\n return this.bodyElement.querySelectorAll(\"[id][data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementById = function (t) {\n return this.bodyElement.querySelector(\"#\" + t + \"[data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementsPresentInSnapshot = function (t) {\n var e, r, n, o, i;\n\n for (o = this.getPermanentElements(), i = [], r = 0, n = o.length; n > r; r++) e = o[r], t.getPermanentElementById(e.id) && i.push(e);\n\n return i;\n }, t.prototype.findFirstAutofocusableElement = function () {\n return this.bodyElement.querySelector(\"[autofocus]\");\n }, t.prototype.hasAnchor = function (t) {\n return null != this.getElementForAnchor(t);\n }, t.prototype.isPreviewable = function () {\n return \"no-preview\" !== this.getCacheControlValue();\n }, t.prototype.isCacheable = function () {\n return \"no-cache\" !== this.getCacheControlValue();\n }, t.prototype.isVisitable = function () {\n return \"reload\" !== this.getSetting(\"visit-control\");\n }, t.prototype.getSetting = function (t) {\n return this.headDetails.getMetaValue(\"turbolinks-\" + t);\n }, t;\n }();\n }.call(this), function () {\n var t = [].slice;\n\n e.Renderer = function () {\n function e() {}\n\n var r;\n return e.render = function () {\n var e, r, n, o;\n return n = arguments[0], r = arguments[1], e = 3 <= arguments.length ? t.call(arguments, 2) : [], o = function (t, e, r) {\n r.prototype = t.prototype;\n var n = new r(),\n o = t.apply(n, e);\n return Object(o) === o ? o : n;\n }(this, e, function () {}), o.delegate = n, o.render(r), o;\n }, e.prototype.renderView = function (t) {\n return this.delegate.viewWillRender(this.newBody), t(), this.delegate.viewRendered(this.newBody);\n }, e.prototype.invalidateView = function () {\n return this.delegate.viewInvalidated();\n }, e.prototype.createScriptElement = function (t) {\n var e;\n return \"false\" === t.getAttribute(\"data-turbolinks-eval\") ? t : (e = document.createElement(\"script\"), e.textContent = t.textContent, e.async = !1, r(e, t), e);\n }, r = function (t, e) {\n var r, n, o, i, s, a, u;\n\n for (i = e.attributes, a = [], r = 0, n = i.length; n > r; r++) s = i[r], o = s.name, u = s.value, a.push(t.setAttribute(o, u));\n\n return a;\n }, e;\n }();\n }.call(this), function () {\n var t,\n r,\n n = function (t, e) {\n function r() {\n this.constructor = t;\n }\n\n for (var n in e) o.call(e, n) && (t[n] = e[n]);\n\n return r.prototype = e.prototype, t.prototype = new r(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n e.SnapshotRenderer = function (e) {\n function o(t, e, r) {\n this.currentSnapshot = t, this.newSnapshot = e, this.isPreview = r, this.currentHeadDetails = this.currentSnapshot.headDetails, this.newHeadDetails = this.newSnapshot.headDetails, this.currentBody = this.currentSnapshot.bodyElement, this.newBody = this.newSnapshot.bodyElement;\n }\n\n return n(o, e), o.prototype.render = function (t) {\n return this.shouldRender() ? (this.mergeHead(), this.renderView(function (e) {\n return function () {\n return e.replaceBody(), e.isPreview || e.focusFirstAutofocusableElement(), t();\n };\n }(this))) : this.invalidateView();\n }, o.prototype.mergeHead = function () {\n return this.copyNewHeadStylesheetElements(), this.copyNewHeadScriptElements(), this.removeCurrentHeadProvisionalElements(), this.copyNewHeadProvisionalElements();\n }, o.prototype.replaceBody = function () {\n var t;\n return t = this.relocateCurrentBodyPermanentElements(), this.activateNewBodyScriptElements(), this.assignNewBody(), this.replacePlaceholderElementsWithClonedPermanentElements(t);\n }, o.prototype.shouldRender = function () {\n return this.newSnapshot.isVisitable() && this.trackedElementsAreIdentical();\n }, o.prototype.trackedElementsAreIdentical = function () {\n return this.currentHeadDetails.getTrackedElementSignature() === this.newHeadDetails.getTrackedElementSignature();\n }, o.prototype.copyNewHeadStylesheetElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadStylesheetElements(), o = [], e = 0, r = n.length; r > e; e++) t = n[e], o.push(document.head.appendChild(t));\n\n return o;\n }, o.prototype.copyNewHeadScriptElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadScriptElements(), o = [], e = 0, r = n.length; r > e; e++) t = n[e], o.push(document.head.appendChild(this.createScriptElement(t)));\n\n return o;\n }, o.prototype.removeCurrentHeadProvisionalElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getCurrentHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) t = n[e], o.push(document.head.removeChild(t));\n\n return o;\n }, o.prototype.copyNewHeadProvisionalElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) t = n[e], o.push(document.head.appendChild(t));\n\n return o;\n }, o.prototype.relocateCurrentBodyPermanentElements = function () {\n var e, n, o, i, s, a, u;\n\n for (a = this.getCurrentBodyPermanentElements(), u = [], e = 0, n = a.length; n > e; e++) i = a[e], s = t(i), o = this.newSnapshot.getPermanentElementById(i.id), r(i, s.element), r(o, i), u.push(s);\n\n return u;\n }, o.prototype.replacePlaceholderElementsWithClonedPermanentElements = function (t) {\n var e, n, o, i, s, a, u;\n\n for (u = [], o = 0, i = t.length; i > o; o++) a = t[o], n = a.element, s = a.permanentElement, e = s.cloneNode(!0), u.push(r(n, e));\n\n return u;\n }, o.prototype.activateNewBodyScriptElements = function () {\n var t, e, n, o, i, s;\n\n for (i = this.getNewBodyScriptElements(), s = [], e = 0, o = i.length; o > e; e++) n = i[e], t = this.createScriptElement(n), s.push(r(n, t));\n\n return s;\n }, o.prototype.assignNewBody = function () {\n return document.body = this.newBody;\n }, o.prototype.focusFirstAutofocusableElement = function () {\n var t;\n return null != (t = this.newSnapshot.findFirstAutofocusableElement()) ? t.focus() : void 0;\n }, o.prototype.getNewHeadStylesheetElements = function () {\n return this.newHeadDetails.getStylesheetElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getNewHeadScriptElements = function () {\n return this.newHeadDetails.getScriptElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getCurrentHeadProvisionalElements = function () {\n return this.currentHeadDetails.getProvisionalElements();\n }, o.prototype.getNewHeadProvisionalElements = function () {\n return this.newHeadDetails.getProvisionalElements();\n }, o.prototype.getCurrentBodyPermanentElements = function () {\n return this.currentSnapshot.getPermanentElementsPresentInSnapshot(this.newSnapshot);\n }, o.prototype.getNewBodyScriptElements = function () {\n return this.newBody.querySelectorAll(\"script\");\n }, o;\n }(e.Renderer), t = function (t) {\n var e;\n return e = document.createElement(\"meta\"), e.setAttribute(\"name\", \"turbolinks-permanent-placeholder\"), e.setAttribute(\"content\", t.id), {\n element: e,\n permanentElement: t\n };\n }, r = function (t, e) {\n var r;\n return (r = t.parentNode) ? r.replaceChild(e, t) : void 0;\n };\n }.call(this), function () {\n var t = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) r.call(e, o) && (t[o] = e[o]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n e.ErrorRenderer = function (e) {\n function r(t) {\n var e;\n e = document.createElement(\"html\"), e.innerHTML = t, this.newHead = e.querySelector(\"head\"), this.newBody = e.querySelector(\"body\");\n }\n\n return t(r, e), r.prototype.render = function (t) {\n return this.renderView(function (e) {\n return function () {\n return e.replaceHeadAndBody(), e.activateBodyScriptElements(), t();\n };\n }(this));\n }, r.prototype.replaceHeadAndBody = function () {\n var t, e;\n return e = document.head, t = document.body, e.parentNode.replaceChild(this.newHead, e), t.parentNode.replaceChild(this.newBody, t);\n }, r.prototype.activateBodyScriptElements = function () {\n var t, e, r, n, o, i;\n\n for (n = this.getScriptElements(), i = [], e = 0, r = n.length; r > e; e++) o = n[e], t = this.createScriptElement(o), i.push(o.parentNode.replaceChild(t, o));\n\n return i;\n }, r.prototype.getScriptElements = function () {\n return document.documentElement.querySelectorAll(\"script\");\n }, r;\n }(e.Renderer);\n }.call(this), function () {\n e.View = function () {\n function t(t) {\n this.delegate = t, this.htmlElement = document.documentElement;\n }\n\n return t.prototype.getRootLocation = function () {\n return this.getSnapshot().getRootLocation();\n }, t.prototype.getElementForAnchor = function (t) {\n return this.getSnapshot().getElementForAnchor(t);\n }, t.prototype.getSnapshot = function () {\n return e.Snapshot.fromHTMLElement(this.htmlElement);\n }, t.prototype.render = function (t, e) {\n var r, n, o;\n return o = t.snapshot, r = t.error, n = t.isPreview, this.markAsPreview(n), null != o ? this.renderSnapshot(o, n, e) : this.renderError(r, e);\n }, t.prototype.markAsPreview = function (t) {\n return t ? this.htmlElement.setAttribute(\"data-turbolinks-preview\", \"\") : this.htmlElement.removeAttribute(\"data-turbolinks-preview\");\n }, t.prototype.renderSnapshot = function (t, r, n) {\n return e.SnapshotRenderer.render(this.delegate, n, this.getSnapshot(), e.Snapshot.wrap(t), r);\n }, t.prototype.renderError = function (t, r) {\n return e.ErrorRenderer.render(this.delegate, r, t);\n }, t;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n\n e.ScrollManager = function () {\n function r(r) {\n this.delegate = r, this.onScroll = t(this.onScroll, this), this.onScroll = e.throttle(this.onScroll);\n }\n\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"scroll\", this.onScroll, !1), this.onScroll(), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"scroll\", this.onScroll, !1), this.started = !1) : void 0;\n }, r.prototype.scrollToElement = function (t) {\n return t.scrollIntoView();\n }, r.prototype.scrollToPosition = function (t) {\n var e, r;\n return e = t.x, r = t.y, window.scrollTo(e, r);\n }, r.prototype.onScroll = function (t) {\n return this.updatePosition({\n x: window.pageXOffset,\n y: window.pageYOffset\n });\n }, r.prototype.updatePosition = function (t) {\n var e;\n return this.position = t, null != (e = this.delegate) ? e.scrollPositionChanged(this.position) : void 0;\n }, r;\n }();\n }.call(this), function () {\n e.SnapshotCache = function () {\n function t(t) {\n this.size = t, this.keys = [], this.snapshots = {};\n }\n\n var r;\n return t.prototype.has = function (t) {\n var e;\n return e = r(t), e in this.snapshots;\n }, t.prototype.get = function (t) {\n var e;\n if (this.has(t)) return e = this.read(t), this.touch(t), e;\n }, t.prototype.put = function (t, e) {\n return this.write(t, e), this.touch(t), e;\n }, t.prototype.read = function (t) {\n var e;\n return e = r(t), this.snapshots[e];\n }, t.prototype.write = function (t, e) {\n var n;\n return n = r(t), this.snapshots[n] = e;\n }, t.prototype.touch = function (t) {\n var e, n;\n return n = r(t), e = this.keys.indexOf(n), e > -1 && this.keys.splice(e, 1), this.keys.unshift(n), this.trim();\n }, t.prototype.trim = function () {\n var t, e, r, n, o;\n\n for (n = this.keys.splice(this.size), o = [], t = 0, r = n.length; r > t; t++) e = n[t], o.push(delete this.snapshots[e]);\n\n return o;\n }, r = function (t) {\n return e.Location.wrap(t).toCacheKey();\n }, t;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n\n e.Visit = function () {\n function r(r, n, o) {\n this.controller = r, this.action = o, this.performScroll = t(this.performScroll, this), this.identifier = e.uuid(), this.location = e.Location.wrap(n), this.adapter = this.controller.adapter, this.state = \"initialized\", this.timingMetrics = {};\n }\n\n var n;\n return r.prototype.start = function () {\n return \"initialized\" === this.state ? (this.recordTimingMetric(\"visitStart\"), this.state = \"started\", this.adapter.visitStarted(this)) : void 0;\n }, r.prototype.cancel = function () {\n var t;\n return \"started\" === this.state ? (null != (t = this.request) && t.cancel(), this.cancelRender(), this.state = \"canceled\") : void 0;\n }, r.prototype.complete = function () {\n var t;\n return \"started\" === this.state ? (this.recordTimingMetric(\"visitEnd\"), this.state = \"completed\", \"function\" == typeof (t = this.adapter).visitCompleted && t.visitCompleted(this), this.controller.visitCompleted(this)) : void 0;\n }, r.prototype.fail = function () {\n var t;\n return \"started\" === this.state ? (this.state = \"failed\", \"function\" == typeof (t = this.adapter).visitFailed ? t.visitFailed(this) : void 0) : void 0;\n }, r.prototype.changeHistory = function () {\n var t, e;\n return this.historyChanged ? void 0 : (t = this.location.isEqualTo(this.referrer) ? \"replace\" : this.action, e = n(t), this.controller[e](this.location, this.restorationIdentifier), this.historyChanged = !0);\n }, r.prototype.issueRequest = function () {\n return this.shouldIssueRequest() && null == this.request ? (this.progress = 0, this.request = new e.HttpRequest(this, this.location, this.referrer), this.request.send()) : void 0;\n }, r.prototype.getCachedSnapshot = function () {\n var t;\n return !(t = this.controller.getCachedSnapshotForLocation(this.location)) || null != this.location.anchor && !t.hasAnchor(this.location.anchor) || \"restore\" !== this.action && !t.isPreviewable() ? void 0 : t;\n }, r.prototype.hasCachedSnapshot = function () {\n return null != this.getCachedSnapshot();\n }, r.prototype.loadCachedSnapshot = function () {\n var t, e;\n return (e = this.getCachedSnapshot()) ? (t = this.shouldIssueRequest(), this.render(function () {\n var r;\n return this.cacheSnapshot(), this.controller.render({\n snapshot: e,\n isPreview: t\n }, this.performScroll), \"function\" == typeof (r = this.adapter).visitRendered && r.visitRendered(this), t ? void 0 : this.complete();\n })) : void 0;\n }, r.prototype.loadResponse = function () {\n return null != this.response ? this.render(function () {\n var t, e;\n return this.cacheSnapshot(), this.request.failed ? (this.controller.render({\n error: this.response\n }, this.performScroll), \"function\" == typeof (t = this.adapter).visitRendered && t.visitRendered(this), this.fail()) : (this.controller.render({\n snapshot: this.response\n }, this.performScroll), \"function\" == typeof (e = this.adapter).visitRendered && e.visitRendered(this), this.complete());\n }) : void 0;\n }, r.prototype.followRedirect = function () {\n return this.redirectedToLocation && !this.followedRedirect ? (this.location = this.redirectedToLocation, this.controller.replaceHistoryWithLocationAndRestorationIdentifier(this.redirectedToLocation, this.restorationIdentifier), this.followedRedirect = !0) : void 0;\n }, r.prototype.requestStarted = function () {\n var t;\n return this.recordTimingMetric(\"requestStart\"), \"function\" == typeof (t = this.adapter).visitRequestStarted ? t.visitRequestStarted(this) : void 0;\n }, r.prototype.requestProgressed = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.adapter).visitRequestProgressed ? e.visitRequestProgressed(this) : void 0;\n }, r.prototype.requestCompletedWithResponse = function (t, r) {\n return this.response = t, null != r && (this.redirectedToLocation = e.Location.wrap(r)), this.adapter.visitRequestCompleted(this);\n }, r.prototype.requestFailedWithStatusCode = function (t, e) {\n return this.response = e, this.adapter.visitRequestFailedWithStatusCode(this, t);\n }, r.prototype.requestFinished = function () {\n var t;\n return this.recordTimingMetric(\"requestEnd\"), \"function\" == typeof (t = this.adapter).visitRequestFinished ? t.visitRequestFinished(this) : void 0;\n }, r.prototype.performScroll = function () {\n return this.scrolled ? void 0 : (\"restore\" === this.action ? this.scrollToRestoredPosition() || this.scrollToTop() : this.scrollToAnchor() || this.scrollToTop(), this.scrolled = !0);\n }, r.prototype.scrollToRestoredPosition = function () {\n var t, e;\n return t = null != (e = this.restorationData) ? e.scrollPosition : void 0, null != t ? (this.controller.scrollToPosition(t), !0) : void 0;\n }, r.prototype.scrollToAnchor = function () {\n return null != this.location.anchor ? (this.controller.scrollToAnchor(this.location.anchor), !0) : void 0;\n }, r.prototype.scrollToTop = function () {\n return this.controller.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.recordTimingMetric = function (t) {\n var e;\n return null != (e = this.timingMetrics)[t] ? e[t] : e[t] = new Date().getTime();\n }, r.prototype.getTimingMetrics = function () {\n return e.copyObject(this.timingMetrics);\n }, n = function (t) {\n switch (t) {\n case \"replace\":\n return \"replaceHistoryWithLocationAndRestorationIdentifier\";\n\n case \"advance\":\n case \"restore\":\n return \"pushHistoryWithLocationAndRestorationIdentifier\";\n }\n }, r.prototype.shouldIssueRequest = function () {\n return \"restore\" === this.action ? !this.hasCachedSnapshot() : !0;\n }, r.prototype.cacheSnapshot = function () {\n return this.snapshotCached ? void 0 : (this.controller.cacheSnapshot(), this.snapshotCached = !0);\n }, r.prototype.render = function (t) {\n return this.cancelRender(), this.frame = requestAnimationFrame(function (e) {\n return function () {\n return e.frame = null, t.call(e);\n };\n }(this));\n }, r.prototype.cancelRender = function () {\n return this.frame ? cancelAnimationFrame(this.frame) : void 0;\n }, r;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n\n e.Controller = function () {\n function r() {\n this.clickBubbled = t(this.clickBubbled, this), this.clickCaptured = t(this.clickCaptured, this), this.pageLoaded = t(this.pageLoaded, this), this.history = new e.History(this), this.view = new e.View(this), this.scrollManager = new e.ScrollManager(this), this.restorationData = {}, this.clearCache(), this.setProgressBarDelay(500);\n }\n\n return r.prototype.start = function () {\n return e.supported && !this.started ? (addEventListener(\"click\", this.clickCaptured, !0), addEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.start(), this.startHistory(), this.started = !0, this.enabled = !0) : void 0;\n }, r.prototype.disable = function () {\n return this.enabled = !1;\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"click\", this.clickCaptured, !0), removeEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.stop(), this.stopHistory(), this.started = !1) : void 0;\n }, r.prototype.clearCache = function () {\n return this.cache = new e.SnapshotCache(10);\n }, r.prototype.visit = function (t, r) {\n var n, o;\n return null == r && (r = {}), t = e.Location.wrap(t), this.applicationAllowsVisitingLocation(t) ? this.locationIsVisitable(t) ? (n = null != (o = r.action) ? o : \"advance\", this.adapter.visitProposedToLocationWithAction(t, n)) : window.location = t : void 0;\n }, r.prototype.startVisitToLocationWithAction = function (t, r, n) {\n var o;\n return e.supported ? (o = this.getRestorationDataForIdentifier(n), this.startVisit(t, r, {\n restorationData: o\n })) : window.location = t;\n }, r.prototype.setProgressBarDelay = function (t) {\n return this.progressBarDelay = t;\n }, r.prototype.startHistory = function () {\n return this.location = e.Location.wrap(window.location), this.restorationIdentifier = e.uuid(), this.history.start(), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.stopHistory = function () {\n return this.history.stop();\n }, r.prototype.pushHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.push(this.location, this.restorationIdentifier);\n }, r.prototype.replaceHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.historyPoppedToLocationWithRestorationIdentifier = function (t, r) {\n var n;\n return this.restorationIdentifier = r, this.enabled ? (n = this.getRestorationDataForIdentifier(this.restorationIdentifier), this.startVisit(t, \"restore\", {\n restorationIdentifier: this.restorationIdentifier,\n restorationData: n,\n historyChanged: !0\n }), this.location = e.Location.wrap(t)) : this.adapter.pageInvalidated();\n }, r.prototype.getCachedSnapshotForLocation = function (t) {\n var e;\n return null != (e = this.cache.get(t)) ? e.clone() : void 0;\n }, r.prototype.shouldCacheSnapshot = function () {\n return this.view.getSnapshot().isCacheable();\n }, r.prototype.cacheSnapshot = function () {\n var t, r;\n return this.shouldCacheSnapshot() ? (this.notifyApplicationBeforeCachingSnapshot(), r = this.view.getSnapshot(), t = this.lastRenderedLocation, e.defer(function (e) {\n return function () {\n return e.cache.put(t, r.clone());\n };\n }(this))) : void 0;\n }, r.prototype.scrollToAnchor = function (t) {\n var e;\n return (e = this.view.getElementForAnchor(t)) ? this.scrollToElement(e) : this.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.scrollToElement = function (t) {\n return this.scrollManager.scrollToElement(t);\n }, r.prototype.scrollToPosition = function (t) {\n return this.scrollManager.scrollToPosition(t);\n }, r.prototype.scrollPositionChanged = function (t) {\n var e;\n return e = this.getCurrentRestorationData(), e.scrollPosition = t;\n }, r.prototype.render = function (t, e) {\n return this.view.render(t, e);\n }, r.prototype.viewInvalidated = function () {\n return this.adapter.pageInvalidated();\n }, r.prototype.viewWillRender = function (t) {\n return this.notifyApplicationBeforeRender(t);\n }, r.prototype.viewRendered = function () {\n return this.lastRenderedLocation = this.currentVisit.location, this.notifyApplicationAfterRender();\n }, r.prototype.pageLoaded = function () {\n return this.lastRenderedLocation = this.location, this.notifyApplicationAfterPageLoad();\n }, r.prototype.clickCaptured = function () {\n return removeEventListener(\"click\", this.clickBubbled, !1), addEventListener(\"click\", this.clickBubbled, !1);\n }, r.prototype.clickBubbled = function (t) {\n var e, r, n;\n return this.enabled && this.clickEventIsSignificant(t) && (r = this.getVisitableLinkForNode(t.target)) && (n = this.getVisitableLocationForLink(r)) && this.applicationAllowsFollowingLinkToLocation(r, n) ? (t.preventDefault(), e = this.getActionForLink(r), this.visit(n, {\n action: e\n })) : void 0;\n }, r.prototype.applicationAllowsFollowingLinkToLocation = function (t, e) {\n var r;\n return r = this.notifyApplicationAfterClickingLinkToLocation(t, e), !r.defaultPrevented;\n }, r.prototype.applicationAllowsVisitingLocation = function (t) {\n var e;\n return e = this.notifyApplicationBeforeVisitingLocation(t), !e.defaultPrevented;\n }, r.prototype.notifyApplicationAfterClickingLinkToLocation = function (t, r) {\n return e.dispatch(\"turbolinks:click\", {\n target: t,\n data: {\n url: r.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationBeforeVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:before-visit\", {\n data: {\n url: t.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationAfterVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:visit\", {\n data: {\n url: t.absoluteURL\n }\n });\n }, r.prototype.notifyApplicationBeforeCachingSnapshot = function () {\n return e.dispatch(\"turbolinks:before-cache\");\n }, r.prototype.notifyApplicationBeforeRender = function (t) {\n return e.dispatch(\"turbolinks:before-render\", {\n data: {\n newBody: t\n }\n });\n }, r.prototype.notifyApplicationAfterRender = function () {\n return e.dispatch(\"turbolinks:render\");\n }, r.prototype.notifyApplicationAfterPageLoad = function (t) {\n return null == t && (t = {}), e.dispatch(\"turbolinks:load\", {\n data: {\n url: this.location.absoluteURL,\n timing: t\n }\n });\n }, r.prototype.startVisit = function (t, e, r) {\n var n;\n return null != (n = this.currentVisit) && n.cancel(), this.currentVisit = this.createVisit(t, e, r), this.currentVisit.start(), this.notifyApplicationAfterVisitingLocation(t);\n }, r.prototype.createVisit = function (t, r, n) {\n var o, i, s, a, u;\n return i = null != n ? n : {}, a = i.restorationIdentifier, s = i.restorationData, o = i.historyChanged, u = new e.Visit(this, t, r), u.restorationIdentifier = null != a ? a : e.uuid(), u.restorationData = e.copyObject(s), u.historyChanged = o, u.referrer = this.location, u;\n }, r.prototype.visitCompleted = function (t) {\n return this.notifyApplicationAfterPageLoad(t.getTimingMetrics());\n }, r.prototype.clickEventIsSignificant = function (t) {\n return !(t.defaultPrevented || t.target.isContentEditable || t.which > 1 || t.altKey || t.ctrlKey || t.metaKey || t.shiftKey);\n }, r.prototype.getVisitableLinkForNode = function (t) {\n return this.nodeIsVisitable(t) ? e.closest(t, \"a[href]:not([target]):not([download])\") : void 0;\n }, r.prototype.getVisitableLocationForLink = function (t) {\n var r;\n return r = new e.Location(t.getAttribute(\"href\")), this.locationIsVisitable(r) ? r : void 0;\n }, r.prototype.getActionForLink = function (t) {\n var e;\n return null != (e = t.getAttribute(\"data-turbolinks-action\")) ? e : \"advance\";\n }, r.prototype.nodeIsVisitable = function (t) {\n var r;\n return (r = e.closest(t, \"[data-turbolinks]\")) ? \"false\" !== r.getAttribute(\"data-turbolinks\") : !0;\n }, r.prototype.locationIsVisitable = function (t) {\n return t.isPrefixedBy(this.view.getRootLocation()) && t.isHTML();\n }, r.prototype.getCurrentRestorationData = function () {\n return this.getRestorationDataForIdentifier(this.restorationIdentifier);\n }, r.prototype.getRestorationDataForIdentifier = function (t) {\n var e;\n return null != (e = this.restorationData)[t] ? e[t] : e[t] = {};\n }, r;\n }();\n }.call(this), function () {\n !function () {\n var t, e;\n if ((t = e = document.currentScript) && !e.hasAttribute(\"data-turbolinks-suppress-warning\")) for (; t = t.parentNode;) if (t === document.body) return console.warn(\"You are loading Turbolinks from a