{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@stimulus/core/dist/src/event_listener.js","webpack:///./node_modules/@stimulus/core/dist/src/dispatcher.js","webpack:///./node_modules/@stimulus/core/dist/src/action_descriptor.js","webpack:///./node_modules/@stimulus/core/dist/src/action.js","webpack:///./node_modules/@stimulus/core/dist/src/binding.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/element_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/attribute_observer.js","webpack:///./node_modules/@stimulus/multimap/dist/src/set_operations.js","webpack:///./node_modules/@stimulus/multimap/dist/src/multimap.js","webpack:///./node_modules/@stimulus/multimap/dist/src/indexed_multimap.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/token_list_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/value_list_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/binding_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/context.js","webpack:///./node_modules/@stimulus/core/dist/src/definition.js","webpack:///./node_modules/@stimulus/core/dist/src/module.js","webpack:///./node_modules/@stimulus/core/dist/src/data_map.js","webpack:///./node_modules/@stimulus/core/dist/src/selectors.js","webpack:///./node_modules/@stimulus/core/dist/src/target_set.js","webpack:///./node_modules/@stimulus/core/dist/src/scope.js","webpack:///./node_modules/@stimulus/core/dist/src/scope_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/router.js","webpack:///./node_modules/@stimulus/core/dist/src/schema.js","webpack:///./node_modules/@stimulus/core/dist/src/application.js","webpack:///./node_modules/@stimulus/core/dist/src/target_properties.js","webpack:///./node_modules/@stimulus/core/dist/src/controller.js","webpack:///./node_modules/trix/dist/trix.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack:///./node_modules/@popperjs/core/lib/enums.js","webpack:///./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack:///./node_modules/@popperjs/core/lib/index.js","webpack:///./node_modules/@popperjs/core/lib/utils/debounce.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack:///./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack:///./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack:///./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack:///./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack:///./node_modules/@popperjs/core/lib/utils/within.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack:///./node_modules/@popperjs/core/lib/popper.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack:///./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack:///./node_modules/tippy.js/dist/tippy.esm.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/flatpickr/dist/flatpickr.js","webpack:///./node_modules/jstz/index.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.js","webpack:///./node_modules/tributejs/dist/tribute.min.js","webpack:///./node_modules/js-cookie/src/js.cookie.js","webpack:///./node_modules/clipboard/dist/clipboard.js","webpack:///./node_modules/local-time/app/assets/javascripts/local-time.js","webpack:///./app/javascript/controllers sync _controller\\.js$","webpack:///./app/javascript/controllers/braintree_controller.js","webpack:///./app/javascript/controllers/mentions_controller.js","webpack:///./app/javascript/controllers/paypal_controller.js","webpack:///./app/javascript/controllers/pricing_controller.js","webpack:///./app/javascript/controllers/qr_controller.js","webpack:///./app/javascript/controllers/stripe_controller.js","webpack:///./app/javascript/controllers/toggle_controller.js","webpack:///./app/javascript/src/actiontext.js","webpack:///./app/javascript/src/direct_uploads.js","webpack:///./app/javascript/src/forms.js","webpack:///./app/javascript/src/timezone.js","webpack:///./node_modules/jstz/dist/jstz.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./app/javascript/src/tooltips.js","webpack:///./node_modules/tailwindcss-stimulus-components/dist/tailwindcss-stimulus-components.m.js","webpack:///./node_modules/stimulus-flatpickr/dist/index.m.js","webpack:///./app/javascript/controllers/index.js","webpack:///./node_modules/@stimulus/webpack-helpers/dist/index.js","webpack:///./app/javascript/packs/application.js","webpack:///./app/javascript/src/confirm.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","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","createEventListener","set","descriptorPattern","parseEventTarget","eventTargetName","window","document","Action","element","descriptor","tagName","toLowerCase","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","forToken","token","descriptorString","content","matches","trim","match","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","fetch","del","size","prune","extendStatics","Multimap","valuesByKey","hasKey","hasValue","some","getValuesForKey","getKeysForValue","filter","__extends","setPrototypeOf","__proto__","b","__","constructor","_super","IndexedMultimap","keysByValue","keys","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","Math","max","_","findIndex","tokensAreEqual","slice","tokenString","split","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","WeakMap","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","connectAction","disconnectAction","clear","Context","controllerConstructor","bindingObserver","dispatcher","initialize","parentElement","blessControllerConstructor","extend","bless","extendWithReflect","Controller","_newTarget","Reflect","construct","arguments","a","apply","Module","definition","blessDefinition","contextsByScope","connectedContexts","connectContextForScope","fetchContextForScope","disconnectContextForScope","DataMap","getFormattedKey","setAttribute","removeAttribute","replace","char","attributeValueContainsToken","TargetSet","targetName","find","targetNames","getSelectorForTargetNames","findElement","findAll","findAllElements","getSelectorForTargetName","join","targetDescriptor","targetAttribute","Scope","targets","data","head","tail","filterElements","closest","controllerSelector","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","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","push","Application","documentElement","router","readyState","register","load","rest","definitions","isArray","unload","identifiers","getControllerForElementAndIdentifier","console","defineTargetProperties","ancestors","getPrototypeOf","getAncestorsForConstructor","getOwnTargetNamesForConstructor","getTargetNamesForConstructor","properties","charAt","toUpperCase","capitalize","indexOf","splice","_state","_handled","_value","_deferreds","h","onFulfilled","onRejected","promise","setTimeout","u","setImmediate","warn","all","race","_setImmediateFn","_setUnhandledRejectionFn","customElements","registerElement","Date","now","random","writable","A","uid_","nodes_","observer","removeTransientObservers","callback_","parentNode","options","enqueue","records_","C","previousSibling","nextSibling","attributeNamespace","oldValue","x","w","transientObservedNodes","JsMutationObserver","test","navigator","userAgent","String","postMessage","ShadowDOMPolyfill","wrapIfNeeded","characterData","attributeOldValue","attributeFilter","characterDataOldValue","SyntaxError","removeListeners","addListeners","addListeners_","removeListeners_","addTransientObserver","attrName","relatedNode","namespaceURI","attrChange","MutationEvent","ADDITION","prevValue","_isPolyfilled","self","performance","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","clearTimeout","createEvent","initEvent","preventDefault","defaultPrevented","Event","cancelable","CustomEvent","initCustomEvent","Boolean","bubbles","WebComponents","CustomElements","flags","addModule","initializeModules","hasNative","isIE","useNative","HTMLImports","firstElementChild","firstChild","nextElementSibling","shadowRoot","olderShadowRoot","wrap","import","IMPORT_LINK_TYPE","forDocumentTree","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","dom","host","URL","_URL","localName","shift","group","DOCUMENT_FRAGMENT_NODE","E","groupEnd","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","S","createShadowRoot","watchShadow","__watched","log","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","attached","is","createdCallback","HTMLElement","getOwnPropertyNames","getOwnPropertyDescriptor","native","HTMLTemplateElement","decorate","getRegisteredDefinition","tag","extends","upgradeWithDefinition","implementPrototype","_polyfilled","attributeChangedCallback","ctor","createElement","createElementNS","__name","lifecycle","ancestry","ready","registry","instanceof","reservedTagList","readyTime","elapsed","dispatchEvent","unwrap","unwrapIfNeeded","__importsParsingHook","eager","attachEvent","Trix","VERSION","ZERO_WIDTH_SPACE","NON_BREAKING_SPACE","OBJECT_REPLACEMENT_CHARACTER","browser","composesExistingText","forcesObjectResizing","supportsInputEvents","InputEvent","config","BasicObject","proxyMethod","toMethod","toProperty","optional","Function","__super__","id","fromJSONString","fromJSON","JSON","parse","hasSameConstructorAs","isEqualTo","inspect","contentsForInspection","toJSONString","stringify","toUTF16String","UTF16String","box","getCacheKey","defer","normalizeSpaces","RegExp","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","source","escapeHTML","textContent","innerHTML","summarizeStringChange","added","removed","utf16String","offset","codepoints","fromCodepoints","copyObject","objectsAreEqual","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","blockAttributes","getTextConfig","textAttributes","getListAttributeNames","listAttribute","matchesSelector","webkitMatchesSelector","msMatchesSelector","mozMatchesSelector","onElement","matchingSelector","withCallback","inPhase","times","destroy","findClosestElementFromNode","handleEventOnce","triggerEvent","elementMatchesSelector","untilNode","findInnerElement","innerElementIsActive","activeElement","elementContainsNode","findNodeFromContainerAndOffset","TEXT_NODE","childNodes","item","findElementFromContainerAndOffset","findChildIndexOfNode","removeNode","removeChild","walkTree","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","makeElement","editable","contenteditable","style","dataset","className","classList","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","strict","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","rangeIsCollapsed","rangesAreEqual","defaultCSS","insertBefore","querySelector","initialized","connectedCallback","disconnectedCallback","defineProperties","define","getDOMSelection","getSelection","rangeCount","getDOMRange","getRangeAt","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","update","startContainer","endContainer","dataTransferIsPlainText","getData","DOMParser","parseFromString","dataTransferIsWritable","setData","keyEventIsKeyboardCommand","platform","metaKey","ctrlKey","Hash","fromCommonAttributesOfObjects","getKeys","getKeysCommonToHash","merge","remove","toArray","isEmpty","array","toObject","toJSON","ObjectGroup","objects","depth","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","ObjectMap","ElementStore","reset","trixStoreKey","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","perform","release","cancel","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","offsetFromUCS2Offset","codePointAt","fromCodePoint","charCodeAt","fromCharCode","lang","attachFiles","bold","bullets","bytes","captionPlaceholder","code","heading1","indent","italic","link","numbers","outdent","quote","redo","strike","undo","unlink","url","urlPlaceholder","GB","KB","MB","PB","TB","css","attachment","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","attachmentGallery","nestable","terminal","breakOnReturn","text","plaintext","bulletList","bullet","numberList","number","exclusive","fileSize","prefix","precision","formatter","byte","floor","pow","toFixed","inheritable","parser","getComputedStyle","fontWeight","fontStyle","href","groupTagName","frozen","backgroundColor","serializers","Document","fromHTML","toSerializableDocument","DocumentView","render","cloneNode","deserializers","serializeToContentType","deserializeFromContentType","toolbar","getDefaultHTML","undoInterval","attachments","preview","presentation","caption","file","keyNames","input","level2Enabled","getLevel","pickFiles","multiple","hidden","fileInputId","files","getElementById","appendChild","click","ObjectView","childViews","rootView","getNodes","createNodes","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ObjectGroupView","getAllChildViews","findElementForObject","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","objectGroup","getChildViews","createContainerElement","didMutate","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","FileVerificationOperation","FileReader","onerror","onload","abort","readAsArrayBuffer","InputController","events","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","handleInput","inputControllerWillAttachFiles","responder","insertFiles","inputControllerWillHandleInput","inputControllerDidHandleInput","Level0InputController","resetInputSummary","setInputSummary","inputSummary","isComposing","inputControllerDidAllowUnhandledInput","mutationIsExpected","preferDocument","didDelete","getSelectedRange","positionIsBlockBreak","compositionInput","getEndData","keydown","didInput","keyCode","keyName","inputControllerDidReceiveKeyboardCommand","keypress","altKey","inputControllerWillPerformTyping","insertString","selectionIsExpanded","textInput","setSelectedRange","dragenter","dragstart","serializeSelectionToDataTransfer","dataTransfer","draggedRange","inputControllerDidStartDrag","dragover","canAcceptDataTransfer","clientX","clientY","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","drop","setLocationRangeFromPointRange","inputControllerWillMoveText","moveTextFromRange","insertDocument","cut","clipboardData","inputControllerWillCutText","deleteInDirection","copy","paste","R","k","D","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","html","inputControllerWillPaste","insertHTML","inputControllerDidPaste","string","insertText","Text","textForStringWithAttributes","types","items","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","end","beforeinput","stopPropagation","backspace","insertLineBreak","tab","canIncreaseNestingLevel","increaseNestingLevel","selectionIsInCursorTarget","moveCursorInDirection","control","updatePosition","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","alt","meta","isEnded","getSelectedDocument","Files","position","pageXOffset","top","pageYOffset","opacity","focus","which","charCode","inputController","isSignificant","insertPlaceholder","range","selectPlaceholder","forgetPlaceholder","canApplyToDocument","Level2InputController","scheduledRender","composing","reparse","scheduleRender","afterRender","shiftKey","withEvent","inputTypes","inputType","selectionContainsAttachments","dragging","point","ArrowLeft","shouldManageMovingCursorInDirection","ArrowRight","Backspace","shouldManageDeletingInDirection","Tab","deleteByComposition","recordUndoEntry","deleteByCut","deleteByDrag","withTargetDOMRange","deleteByDragRange","deleteCompositionText","deleteContent","deleteContentBackward","deleteContentForward","deleteEntireSoftLine","deleteHardLineBackward","deleteHardLineForward","deleteSoftLineBackward","deleteSoftLineForward","deleteWordBackward","deleteWordForward","formatBackColor","activateAttributeIfSupported","formatBold","toggleAttributeIfSupported","formatFontColor","formatFontName","formatIndent","formatItalic","formatJustifyCenter","formatJustifyFull","formatJustifyLeft","formatJustifyRight","formatOutdent","formatRemove","getCurrentAttributes","removeCurrentAttribute","formatSetBlockTextDirection","formatSetInlineTextDirection","formatStrikeThrough","formatSubscript","formatSuperscript","formatUnderline","historyRedo","inputControllerWillPerformRedo","historyUndo","inputControllerWillPerformUndo","insertCompositionText","insertFromComposition","insertFromDrop","insertFromPaste","insertFromYank","insertLink","insertOrderedList","insertParagraph","insertReplacementText","insertTranspose","insertUnorderedList","inputControllerWillPerformFormatting","toggleCurrentAttribute","setCurrentAttribute","getTargetDOMRange","minLength","getTargetRanges","createRange","setStart","startOffset","setEnd","endOffset","AttachmentEditorController","attachmentPiece","container","didBlurCaption","didChangeCaption","didInputCaption","didKeyDownCaption","didClickActionButton","didClickToolbar","install","undos","makeElementMutable","addToolbar","isPreviewable","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","trixMutable","getFilename","getFormattedFilesize","placeholder","getCaption","tabIndex","height","scrollHeight","display","editCaption","attachmentEditorDidRequestRemovalOfAttachment","attachmentEditorDidRequestDeselectingAttachment","uploadProgressDelegate","piece","createContentNodes","getClassName","getHref","tabindex","hasContent","getContent","createCaptionElement","isPending","progressElement","getUploadProgress","getCaptionConfig","createTextNode","getType","getExtension","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","findProgressElement","attachmentDidChangeUploadProgress","PreviewableAttachmentView","previewDelegate","image","src","updateAttributesForImage","getURL","getPreviewURL","getWidth","getHeight","width","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","TextView","getPieces","BlockView","block","createComment","getLastAttribute","shouldAddExtraNewlineElement","getBlockBreakPosition","elementStore","setDocument","sync","shadowElement","getBlocks","isSynced","createDocumentFragmentForSync","lastChild","didSync","createDocumentFragment","replaceChild","CompositionController","composition","didClickAttachment","didBlur","didFocus","documentView","focused","compositionControllerDidFocus","blurPromise","compositionControllerDidBlur","findAttachmentForElement","compositionControllerDidSelectAttachment","getSerializableElement","isEditingAttachment","revision","canSyncDocumentView","compositionControllerWillSyncDocumentView","compositionControllerDidSyncDocumentView","compositionControllerDidRender","rerenderViewForObject","refreshViewCache","attachmentEditor","installAttachmentEditorForAttachment","uninstallAttachmentEditor","getAttachmentPieceForAttachment","compositionControllerWillUpdateAttachment","updateAttributesForAttachment","removeAttributeForAttachment","compositionControllerDidRequestRemovalOfAttachment","compositionControllerDidRequestDeselectingAttachment","getAttachmentById","parseInt","ToolbarController","didKeyDownDialogInput","didClickDialogButton","didClickAttributeButton","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","disabled","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","select","toolbarDidShowDialog","willValidate","checkValidity","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","ImagePreloadOperation","Image","naturalWidth","naturalHeight","Attachment","releaseFile","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filename","filesize","contentType","setAttributes","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","createObjectURL","revokeObjectURL","Piece","registerType","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","AttachmentPiece","ensureAttachmentExclusivelyHasAttribute","removeProhibitedAttributes","permittedAttributes","toConsole","StringPiece","consolidateWith","splitAtOffset","SplittableList","eachObject","insertObjectAtIndex","insertSplittableListAtIndex","insertSplittableListAtPosition","splitObjectAtPosition","editObjectAtIndex","replaceObjectAtIndex","removeObjectAtIndex","getObjectAtIndex","getSplittableListInRange","splitObjectsAtRange","selectSplittableList","removeObjectsInRange","transformObjectsInRange","getObjectAtPosition","findIndexAndOffsetAtPosition","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","endPosition","textForAttachmentWithAttributes","copyWithPieceList","copyUsingObjectMap","appendText","insertTextAtPosition","removeTextAtRange","replaceTextAtRange","moveTextFromRangeToPosition","getTextAtRange","addAttributeAtRange","addAttributesAtRange","removeAttributeAtRange","setAttributesAtRange","getAttributesAtPosition","getCommonAttributesAtRange","getExpandedRangeForAttributeAtOffset","getStringAtRange","getStringAtPosition","startsWithString","endsWithString","getAttachmentPieces","getAttachments","getAttachmentAndPositionById","getRangeOfAttachment","getPieceAtPosition","toSerializableText","Block","copyWithText","copyWithoutText","copyWithoutAttributes","addAttribute","removeLastAttribute","getAttributeLevel","getAttributeAtLevel","hasAttributes","getLastNestableAttribute","getNestableAttributes","getNestingLevel","lastIndexOf","getListItemAttributes","isListItem","isTerminalBlock","breaksOnReturn","findLineBreakInDirectionFromPosition","getTextWithoutBlockBreak","blockBreak","HTMLSanitizer","allowedAttributes","forbiddenProtocols","sanitize","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","currentNode","sanitizeElement","protocol","previousElementSibling","implementation","createHTMLDocument","HTMLParser","referenceElement","blocks","blockElements","processedElements","getDocument","createHiddenContainer","containerElement","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","FILTER_REJECT","FILTER_ACCEPT","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","appendStringWithAttributes","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","unshift","findBlockElementAncestors","reverse","whiteSpace","getMarginOfDefaultBlockElement","getMarginOfBlockElementAtIndex","bottom","marginTop","marginBottom","blockList","fromString","getBlockAtIndex","consolidateBlocks","copyUsingObjectsFromDocument","copyWithBaseBlockAttributes","replaceBlock","insertDocumentAtRange","locationFromPosition","getBlockAtPosition","mergeDocumentAtRange","getBaseBlockAttributes","getBlockCount","insertTextAtRange","locationRangeFromRange","getDocumentAtRange","eachBlockAtRange","eachBlock","getTextAtIndex","insertBlockBreakAtRange","applyBlockAttributeAtRange","expandRangeToLineBreaksAndSplitBlocks","removeLastListAttributeAtRange","exceptAttributeName","convertLineBreaksToBlockBreaksInRange","removeBlockAttributesAtRange","removeLastTerminalAttributeAtRange","consolidateBlocksAtRange","positionFromLocation","getTextAtPosition","getCharacterAtPosition","getEditCount","editCount","getCommonAttributesAtPosition","getRangeOfCommonAttributeAtPosition","min","getLocationRangeOfAttachment","findRangesForBlockAttribute","findRangesForTextAttribute","withValue","locationRangeFromPosition","rangeFromLocationRange","getTexts","LineBreakInsertion","startPosition","startLocation","endLocation","previousCharacter","nextCharacter","shouldInsertBlockBreak","shouldBreakFormattedBlock","shouldDecreaseListLevel","shouldPrependListItem","shouldRemoveLastBlockAttribute","Composition","currentAttributes","refreshAttachments","compositionDidChangeDocument","getSnapshot","selectedRange","loadSnapshot","compositionWillLoadSnapshot","setSelection","compositionDidLoadSnapshot","notifyDelegateOfInsertionAtRange","insertBlock","getCurrentTextAttributes","insertBlockBreak","decreaseListLevel","removeLastBlockAttribute","breakFormattedBlock","replaceHTML","getLocationRange","compositionShouldAcceptFile","insertAttachments","insertAttachment","canDecreaseBlockAttributeLevel","getBlock","decreaseBlockAttributeLevel","getExpandedRangeInDirection","getAttachmentAtRange","editAttachment","removeAttachment","stopEditingAttachment","placeholderPosition","getPosition","hasCurrentAttribute","canSetCurrentAttribute","canSetCurrentBlockAttribute","canSetCurrentTextAttribute","setBlockAttribute","setTextAttribute","notifyDelegateOfCurrentAttributesChange","removeBlockAttribute","updateCurrentAttributes","removeTextAttribute","getPreviousBlock","ignoreLock","freezeSelection","thawSelection","hasFrozenSelection","compositionDidRequestChangingSelectionToLocationRange","getSelectionManager","setLocationRange","targetLocationRange","withTargetLocationRange","withTargetRange","createLocationRangeFromDOMRange","translateUTF16PositionFromOffset","editingAttachment","expandSelectionForEditing","expandSelectionAroundCommonAttribute","getSelectedAttachments","positionIsCursorTarget","locationIsCursorTarget","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","UndoManager","undoEntries","redoEntries","consolidatable","createEntry","description","snapshot","canUndo","canRedo","attachmentGalleryFilter","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","Editor","selectionManager","undoManager","filters","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","ManagedAttachment","attachmentManager","requestRemovalOfAttachment","AttachmentManager","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","LocationMapper","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","findContainerAndOffsetFromLocation","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","PointMapper","createDOMRangeFromPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","createTextRange","moveToPoint","getClientRectsForDOMRange","getClientRects","SelectionChangeObserver","run","selectionManagers","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","domRange","SelectionManager","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","getLocationAtPoint","lock","unlock","clearSelection","selectionIsCollapsed","collapsed","domRangeWithinElement","pauseTemporarily","paused","locationRangeDidChange","EditorController","editorElement","compositionController","toolbarController","toolbarElement","editor","notifyEditorElement","handlingInput","updateCurrentActions","pasting","pastedRange","attachmentLocationRange","loadingSnapshot","isFocused","requestedLocationRange","compositionRevisionWhenLocationRangeRequested","renderedCompositionRevision","runEditorFilters","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","notify","getUndoContext","getLocationContext","getTimeContext","getTime","ownerDocument","queryCommandSupported","execCommand","inputElement","editorController","defaultValue","registerResetListener","unregisterResetListener","resetListener","resetBubbled","form","createCommonjsModule","fn","sparkMd5","factory","undefined","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tmp","lo","hi","state","substring","md51_array","subarray","Uint8Array","rhex","j","hex","toUtf8","str","unescape","encodeURIComponent","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","concatenateArrayBuffers","first","second","byteLength","buffer","hexToBinaryString","substr","SparkMD5","clamp","val","to","num","targetArray","sourceArray","begin","append","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","hashBinary","classCallCheck","instance","Constructor","createClass","props","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","ceil","chunkIndex","callback","md5Buffer","fileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","getMetaValue","findElements","root","toArray$1","eventInit","BlobRecord","checksum","content_type","byte_size","xhr","XMLHttpRequest","open","responseType","setRequestHeader","csrfToken","requestDidLoad","requestDidError","send","blob","status","response","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","headers","DirectUpload","upload","_len","messages","_key","DirectUploadController","directUpload","dispatch","hiddenInput","insertAdjacentElement","dispatchError","signed_id","progress","loaded","total","alert","_this2","uploadRequestDidProgress","inputSelector","DirectUploadsController","inputs","controllers","createDirectUploadControllers","startNextController","processingAttribute","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","disable","enable","submitForm","button","autostart","ActiveStorage","getBoundingClientRect","rect","getWindow","defaultView","getWindowScroll","win","scrollLeft","scrollTop","isElement","isHTMLElement","getNodeName","nodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","scroll","offsets","clientLeft","clientTop","getLayoutRect","offsetLeft","offsetTop","offsetWidth","offsetHeight","getParentNode","assignedSlot","getScrollParent","listScrollParents","list","scrollParent","isBody","visualViewport","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","transform","perspective","willChange","getContainingBlock","auto","basePlacements","viewport","variationPlacements","acc","placement","modifierPhases","order","modifiers","visited","modifier","requires","requiresIfExists","dep","depModifier","DEFAULT_OPTIONS","strategy","areValidElements","args","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","reference","popper","pending","orderedModifiers","modifiersData","styles","effectCleanupFns","isDestroyed","setOptions","cleanupModifierEffects","scrollParents","contextElement","phase","orderModifiers","merged","current","existing","mergeByName","enabled","_ref3","_ref3$options","effect","cleanupFn","noopFn","forceUpdate","_state$elements","rects","_state$orderedModifie","_state$orderedModifie2","_options","onFirstUpdate","passive","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","_ref","basePlacement","variation","commonX","commonY","mainAxis","len","unsetSides","mapToStyles","_ref2","_Object$assign2","popperRect","gpuAcceleration","adaptive","_roundOffsets","dpr","devicePixelRatio","round","roundOffsets","hasX","hasY","sideX","sideY","clientHeight","clientWidth","_Object$assign","commonStyles","getOppositePlacement","matched","getOppositeVariationPlacement","parent","child","isShadow","getRootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","direction","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","padding","altContext","clippingClientRect","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","axis","within","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","_options$scroll","_options$resize","resize","_options$gpuAccelerat","_options$adaptive","arrow","initialStyles","margin","attribute","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","placements","_options$allowedAutoP","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","_loop","fittingPlacement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_mainSide","_altSide","_offset","_preventedOffset","_state$modifiersData$","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","CONTENT_CLASS","BACKDROP_CLASS","ARROW_CLASS","SVG_ARROW_CLASS","TOUCH_OPTIONS","capture","getValueAtIndexOrReturn","isType","invokeWithArgsOrReturn","ms","arg","timeout","normalizeToArray","pushIfUnique","arrayFrom","div","isMouseEvent","isReferenceElement","_tippy","getArrayOfElements","isNodeList","setTransitionDuration","els","el","transitionDuration","setVisibilityState","getOwnerDocument","elementOrElements","updateTransitionEndListener","listener","currentInput","isTouch","lastMouseMoveTime","onDocumentTouchStart","onDocumentMouseMove","onWindowBlur","blur","isVisible","ua","pluginProps","animateFill","followCursor","inlinePositioning","sticky","defaultProps","appendTo","aria","expanded","delay","duration","getReferenceClientRect","hideOnClick","ignoreAttributes","interactive","interactiveBorder","interactiveDebounce","moveTransition","onAfterUpdate","onBeforeUpdate","onCreate","onDestroy","onHidden","onHide","onMount","onShow","onShown","onTrigger","onUntrigger","onClickOutside","plugins","popperOptions","showOnCreate","touch","trigger","triggerTarget","allowHTML","animation","inertia","maxWidth","role","theme","zIndex","defaultKeys","getExtendedPassedProps","passedProps","plugin","evaluateProps","out","valueAsString","getDataAttributeProps","dangerouslySetInnerHTML","createArrowElement","getChildren","boxChildren","children","backdrop","onUpdate","prevProps","nextProps","_getChildren","$$tippy","idCounter","mouseMoveListeners","mountedInstances","createTippy","obj","showTimeout","hideTimeout","scheduleHideAnimationFrame","lastTriggerEvent","currentTransitionEndListener","currentTarget","isVisibleFromClick","didHideDueToDocumentMouseDown","didTouchMove","ignoreOnFirstUpdate","debouncedOnMouseMove","onMouseMove","doc","popperInstance","isEnabled","isMounted","isShown","clearDelayTimeouts","setProps","partialProps","invokeHook","cleanupInteractiveMouseListeners","handleAriaExpandedAttribute","handleStyles","createPopperInstance","getNestedPopperTree","nestedPopper","setContent","show","isAlreadyVisible","isDisabled","isTouchAndTouchDisabled","getCurrentTarget","getIsDefaultRenderFn","visibility","addDocumentPress","transition","_getDefaultTemplateCh2","getDefaultTemplateChildren","_getDefaultTemplateCh3","_box","_content","handleAriaContentAttribute","onTransitionEnd","onTransitionedIn","mount","hide","isAlreadyHidden","removeDocumentPress","_getDefaultTemplateCh4","onTransitionedOut","unmount","hideWithInteractivity","destroyPopperInstance","_props$render","pluginsHooks","hasAriaExpanded","scheduleShow","getNormalizedTouchSettings","getIsCustomTouchBehavior","_instance$props$rende","getDelay","isShow","pointerEvents","hook","shouldInvokePropsHook","_instance$props","pluginHooks","attr","currentValue","nextValue","onDocumentPress","onTouchMove","onTouchStart","on","eventType","handler","onMouseLeave","onBlurOrFocusOut","_lastTriggerEvent","shouldScheduleClickHide","isEventListenerStopped","wasFocused","scheduleHide","isCursorOverReferenceOrPopper","popperTreeData","_instance$popperInsta","popperState","topDistance","bottomDistance","leftDistance","rightDistance","exceedsTop","exceedsBottom","exceedsLeft","exceedsRight","isCursorOutsideInteractiveBorder","relatedTarget","_instance$props2","computedReference","tippyModifier","_getNormalizedTouchSe","touchValue","touchDelay","tippy","optionalProps","instances","setDefaultProps","__assign","HOOKS","defaults","_disable","_enable","allowInput","altFormat","altInput","altInputClass","animate","ariaDateFormat","clickOpens","closeOnSelect","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","disableMobile","enableSeconds","enableTime","errorHandler","err","getWeek","givenDate","date","setHours","setDate","getDate","getDay","week1","getFullYear","hourIncrement","ignoredFocusElements","inline","locale","minuteIncrement","monthSelectorType","nextArrow","noCalendar","onChange","onClose","onDayCreate","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","positionElement","prevArrow","shorthandCurrentMonth","showMonths","static","time_24hr","weekNumbers","english","weekdays","shorthand","longhand","months","daysInMonth","firstDayOfWeek","ordinal","nth","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","hourAriaLabel","minuteAriaLabel","pad","int","bool","debounce","func","wait","immediate","arrayify","toggleClass","elem","clearNode","findParent","condition","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","pattern","getEventTarget","composedPath","doNothing","monthToStr","monthNumber","revFormat","F","dateObj","monthName","setMonth","G","hour","parseFloat","H","J","day","K","getHours","M","shortMonth","seconds","setSeconds","U","unixSeconds","W","weekNum","weekNumber","Y","year","setFullYear","Z","ISODate","minutes","setMinutes","month","unixMillSeconds","tokenRegex","formats","toISOString","getMonth","getSeconds","getMinutes","createDateFormatter","l10n","frmt","overrideLocale","formatDate","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","format","datestr","parseDate","matchIndex","regexStr","token_1","isBackSlash","escaped","exec","isNaN","compareDates","date1","date2","isBetween","ts","ts1","ts2","DAY","_loop_1","args_1","DEBOUNCED_CHANGE_MS","FlatpickrInstance","instanceConfig","flatpickr","defaultConfig","setupHelperFunctions","utils","getDaysInMonth","yr","currentMonth","currentYear","init","isOpen","parseConfig","setupLocale","setupInputs","setupDates","isMobile","build","bindEvents","selectedDates","setHoursFromDate","latestSelectedDateObj","minDate","updateValue","setCalendarWidth","showTimeInput","isSafari","positionCalendar","bindToInstance","calendarContainer","daysContainer","daysWidth","days","weekWrapper","removeProperty","updateTime","setDefaultTime","timeWrapper","_input","setHoursFromInputs","_debouncedChange","ampm2military","military2ampm","hourElement","minuteElement","hours","secondElement","limitMinHours","minTime","minDateHasTime","maxTime","maxDate","maxDateHasTime","setDefaultHours","minHr","minMinutes","maxHr","maxMinutes","onYearInput","delta","changeYear","ev","_handlers","onClick","evt","triggerChange","setupMobile","debouncedResize","onResize","onMouseOver","ontouchstart","documentClick","monthNav","onMonthNavClick","selectDate","timeContainer","selText","timeIncrement","jumpToDate","jumpDate","jumpTo","oldYear","oldMonth","buildMonthSwitch","redraw","incrementNumInput","inputElem","fragment","buildMonthNav","innerContainer","buildWeeks","rContainer","buildWeekdays","buildDays","buildTime","customAppend","createDay","dayNumber","dateIsEnabled","dayElement","$i","todayDateElem","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","targetNode","getFirstAvailableDay","startMonth","endMonth","startIndex","endIndex","getNextAvailableDay","givenMonth","loopDelta","numMonthDays","abs","changeMonth","focusOnDay","dayFocused","isInView","startElem","buildMonthDays","firstOfMonth","prevMonthDays","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayIndex","dayNum","dayContainer","frag","shouldBuildMonth","monthsDropdownContainer","selected","buildMonth","monthElement","monthNavFragment","selectedMonth","yearInput","yearElement","getElementsByTagName","buildMonths","prevMonthNav","yearElements","monthElements","nextMonthNav","__hidePrevMonthArrow","__hideNextMonthArrow","currentYearElement","updateNavigationCurrentMonth","separator","hourInput","minuteInput","secondInput","title","weekdayContainer","updateWeekdays","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","triggerChangeEvent","toInitial","mobileInput","_initialDate","close","_type","isCalendarElem","eventTarget_1","isCalendarElement","isInput","path","lostFocus","isIgnored","newYear","newYearNum","isNewYear","dateToCheck","parsed","allowKeydown","allowInlineKeydown","isTimeObj","focusAndClose","delta_1","elems","pluginElements","hoverDate","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","dayElem","timestamp","outOfRange","_positionElement","wasOpen","minMaxDateSetter","inverseDateObj","boolOpts","userConfig","dates","parseDateRules","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","pluginConf","l10ns","customPositionElement","calendarHeight","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","distanceFromBottom","innerHeight","showOnTop","rightMost","centerMost","styleSheets","bodyWidth","centerLeft","centerBefore","centerAfter","centerIndex","cssRules","centerStyle","insertRule","msMaxTouchPoints","isSelectable","selectedDate","shouldChangeMonth","selectedIndex","single","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","_createElement","toggle","CALLBACKS","option","setSelectedDate","inputDate","rule","preloadedDate","defaultDate","_showTimeInput","required","mobileFormatStr","hooks","getDateStr","dObj","isPrevMonth","isNextMonth","isKeyDown","curValue","newValue","isHourElem","isMinuteElem","_flatpickr","nodeList","HTMLCollection","NodeList","en","localize","setDefaults","jQuery","fp_incr","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","cspNonce","oMatchesSelector","$","csrfParam","CSRFProtection","refreshCSRFTokens","param","fire","params","stopEverything","AcceptHeaders","createXHR","prepareOptions","processResponse","xml","json","script","ajax","responseText","getResponseHeader","success","statusText","complete","beforeSend","OPENED","location","dataType","accept","crossDomain","withCredentials","onreadystatechange","DONE","isCrossDomain","originAnchor","urlAnchor","serializeElement","additionalParam","checked","formElements","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","isRemote","handleRemote","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","ajaxPrefilter","originalOptions","_rails_loaded","Turbolinks","supported","history","pushState","visit","clearCache","setProgressBarDelay","throttle","uuid","Location","absoluteURL","requestURL","anchor","getOrigin","getPath","getPathComponents","getLastPathComponent","isHTML","isPrefixedBy","toCacheKey","valueOf","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","notifyApplicationBeforeRequestStart","setProgress","requestStarted","lengthComputable","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","onprogress","ontimeout","onabort","requestFinished","ProgressBar","trickle","stylesheetElement","createStylesheetElement","createProgressElement","visible","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","trickleInterval","setInterval","clearInterval","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","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","findMetaElementByName","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","clone","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isCacheable","isVisitable","Renderer","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","async","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","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","markAsPreview","renderSnapshot","renderError","ScrollManager","onScroll","scrollToElement","scrollIntoView","scrollToPosition","scrollTo","scrollPositionChanged","SnapshotCache","snapshots","read","put","write","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","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","timing","createVisit","isContentEditable","nodeIsVisitable","currentScript","channels","require","webpackEmptyContext","req","Timeout","clearFn","_id","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","global","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","process","handle","nextTick","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","task","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","noop","env","argv","version","versions","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","cwd","chdir","dir","umask","directUploadUrl","directUploadDidComplete","directUploadWillStoreFileWithXHR","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate","return","tribute","boundKeydown","boundKeyup","keyup","boundInput","shouldDeactivate","isActive","hideMenu","commandEvent","callbacks","inputEvent","menu","selectItemAtIndex","externalTrigger","updateSelection","allowSpaces","hasTrailingSpace","space","autocompleteMode","triggerChar","getKeyCode","triggers","mentionText","collection","menuShowMinLength","showMenuFor","getTriggerInfo","mentionTriggerChar","selectedPath","mentionSelectedPath","selectedOffset","mentionSelectedOffset","enter","filteredItems","menuSelected","escape","spaceSelectsMatch","up","setActiveLi","down","selectClass","currentStyle","menuEvents","menuClickEvent","menuContainerScrollEvent","windowResizeEvent","positionMenuAtCaret","menuContainer","iframe","contentWindow","positionMenu","cssText","getContentEditableCaretPosition","mentionPosition","getTextAreaOrInputUnderlinePosition","isMenuOffScreen","innerWidth","getWindowSelection","collapse","replaceTextSuffix","pasteHtml","selectionStart","selectionEnd","anchorNode","deleteContents","insertNode","cloneRange","setStartAfter","contentEditable","getNodePositionInParent","getContentEditableSelectedPath","getTextPrecedingCurrentSelection","getLastWordInText","mentionSelectedElement","requireLeadingSpace","lastIndexWithLeadingSpace","mozInnerScreenX","wordWrap","menuContainerIsBody","borderTopWidth","fontSize","borderLeftWidth","getMenuDimensions","search","pre","post","caseSensitive","skip","rendered","score","traverse","calculateScore","extract","original","containerClass","itemClass","T","selectTemplate","menuItemTemplate","lookup","L","fillAttr","I","N","O","noMatchTemplate","B","z","q","X","searchOpts","Q","V","menuItemLimit","defaultSelectTemplate","defaultMenuItemTemplate","_attach","ensureEditable","currentMentionTextSnapshot","createMenu","tributeMenu","_findLiTarget","movementY","placeCaretAtEnd","insertTextAtCursor","insertAtCaret","selectNodeContents","moveToElementText","replaceText","replaceTriggerText","_append","_detach","unbind","_isActive","OldCookies","Cookies","api","noConflict","decode","decodeURIComponent","converter","expires","toUTCString","stringifiedAttributes","cookie","jar","cookies","parts","getJSON","withConverter","selectedText","isReadOnly","setSelectionRange","selection","ctx","evtArr","evts","liveEvents","TinyEmitter","listenNode","listenNodeList","listenSelector","_delegate","useCapture","listenerFn","delegateTarget","proto","__webpack_exports__","src_select","select_default","_typeof","_createClass","clipboard_action_ClipboardAction","ClipboardAction","_classCallCheck","resolveOptions","initSelection","emitter","selectFake","selectTarget","isRTL","removeFake","fakeHandlerCallback","fakeHandler","fakeElem","border","yPosition","copyText","handleResult","_action","_target","clipboard_action","tiny_emitter","tiny_emitter_default","listen","listen_default","clipboard_typeof","clipboard_createClass","clipboard_Clipboard","_Emitter","Clipboard","clipboard_classCallCheck","ReferenceError","_possibleConstructorReturn","listenClick","subClass","superClass","_inherits","defaultAction","defaultTarget","defaultText","clipboardAction","getAttributeValue","support","suffix","LocalTime","getController","processElements","i18n","dayNames","abbrDayNames","monthNames","abbrMonthNames","yesterday","today","tomorrow","thisYear","time","am","pm","singular","singularAn","minute","datetime","at","defaultLocale","timerInterval","getI18nValue","translate","strftime","CalendarDate","UTC","setUTCDate","getUTCFullYear","getUTCMonth","getUTCDate","fromDate","equals","isToday","occursOnSameYearAs","occursThisYear","daysSince","daysPassed","RelativeTime","calendarDate","toTimeElapsedString","toWeekdayString","toTimeString","toDateString","toTimeOrDateString","PageObserver","processInsertion","observeWithMutationObserver","observeWithMutationEvent","findSignificantElements","pageObserver","startTimer","timer","webpackContext","webpackContextResolve","braintree","dropin","authorization","dropinTarget","paypal","flow","clientCreated","requestPaymentMethod","paymentMethod","payload","addHiddenField","formTarget","fieldTarget","initializeTribute","Tribute","fetchUsers","attach","replaced","_pasteHtml","detach","users","mention","startPos","endPos","client","buttonTarget","clientInstance","paypalCheckout","paypalCreated","paypalCheckoutErr","paypalCheckoutInstance","Button","color","shape","tagline","payment","createPayment","onAuthorize","tokenizePayment","onCancel","onError","activeFrequencyClass","inactiveFrequencyClass","activePlansClass","inactivePlansClass","frequencyTargets","frequency","plansTargets","childElementCount","_hideFrequencyToggle","_toggle","toggleTarget","showFrequency","hideFrequency","showPlans","hidePlans","updateInstruction","outputInstructionTarget","inputInstructionTarget","stripeMeta","stripeKey","stripe","Stripe","setup_intent","payment_intent","card","cardTarget","changed","errorTarget","submit","nameTarget","handleCardPayment","setupNewCard","createPaymentMethod","billing_details","handlePaymentMethod","payment_method","confirmCardSetup","setupIntent","payment_method_id","confirmCardPayment","paymentIntent","toggleableTargets","EmbedController","patterns","hrefElement","embedContainerElement","embedElement","installEventHandlers","embed","loadPatterns","regex","showEmbed","currentEmbed","fileInputToggle","labelVal","fileName","oldIntl","Intl","tz","jstz","determine","findTimeZone","consts","HOUR","MINUTE","SECOND","BASELINE_YEAR","MAX_SCORE","AMBIGUITIES","get_date_offset","getTimezoneOffset","lookup_key","january_offset","june_offset","diff","dst_dates","yearstart","yearend","dst_start","dst_end","dateToCheckOffset","find_dst_fold","a_date","date_start","date_end","dst_change","get_by_dst","preliminary_timezone","rules","rule_list","olson","dst_rules","years","year_rules","get_rules","has_dst","check_has_dst","score_sample","sample","windows7_adaptations","scoreboard","dst_zones","zones","dst_zones_length","ambiguities","best_dst_match","preliminary_tz","timezone","DateTimeFormat","resolvedOptions","timeZone","get_from_internationalization_api","timezones","stdTimezoneOffset","timezoneOffset","__webpack_amd_options__","clipboardTooltip","ClipboardJS","save","statusTarget","setStatus","menuTarget","backgroundHtml","_backgroundHTML","backgroundId","allowBackgroundClose","lockScroll","containerTarget","background","unlockScroll","closeBackground","closeWithKeyboard","paddingRight","saveScrollPosition","restoreScrollPosition","activeTabClasses","inactiveTabClasses","tabTargets","showTab","change","panelTargets","contentTarget","mouseOver","mouseOut","_defineProperties","_defineProperty","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_getPrototypeOf","_setPrototypeOf","_assertThisInitialized","dateFormats","boolean","arrayOrString","mapping","strftimeRegex","_Controller","StimulusFlatpickr","_initializeEvents","_initializeOptions","_initializeDateFormats","fp","flatpickrElement","getOwnPropertyDescriptors","_objectSpread2","_initializeElements","inputTarget","optionType","optionKebab","_handleDaysOfWeek","disableDaysOfWeek","_validateDaysOfWeek","enableDaysOfWeek","includes","hasInstanceTarget","instanceTarget","logicalName","identifierForContextKey","default","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext","Dropdown","Modal","Tabs","Flatpickr","scrollingElement","old_confirm","confirmModal","modal","createConfirmModal"],"mappings":"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","file":"js/application-9e283c599f16d1df260c.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 41);\n","var EventListener =\n/** @class */\nfunction () {\n function EventListener(eventTarget, eventName) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.unorderedBindings = new Set();\n }\n\n EventListener.prototype.connect = function () {\n this.eventTarget.addEventListener(this.eventName, this, false);\n };\n\n EventListener.prototype.disconnect = function () {\n this.eventTarget.removeEventListener(this.eventName, this, false);\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: true,\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: true,\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 return this.fetchEventListener(eventTarget, eventName);\n };\n\n Dispatcher.prototype.fetchEventListener = function (eventTarget, eventName) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var eventListener = eventListenerMap.get(eventName);\n\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName);\n eventListenerMap.set(eventName, eventListener);\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.createEventListener = function (eventTarget, eventName) {\n var eventListener = new EventListener(eventTarget, eventName);\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 return Dispatcher;\n}();\n\nexport { Dispatcher };","// capture nos.: 12 23 4 43 1 5 56 7 76\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#(.+))?$/;\nexport function parseDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\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\nexport function stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}","import { parseDescriptorString, 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.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, parseDescriptorString(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: true,\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\" : \"change\";\n },\n \"select\": function (e) {\n return \"change\";\n },\n \"textarea\": function (e) {\n return \"change\";\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: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventTarget\", {\n get: function () {\n return this.action.eventTarget;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"identifier\", {\n get: function () {\n return this.context.identifier;\n },\n enumerable: true,\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: true,\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: true,\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 true;\n }\n };\n\n Object.defineProperty(Binding.prototype, \"controller\", {\n get: function () {\n return this.context.controller;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"methodName\", {\n get: function () {\n return this.action.methodName;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"scope\", {\n get: function () {\n return this.context.scope;\n },\n enumerable: true,\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: true,\n configurable: true\n });\n Object.defineProperty(AttributeObserver.prototype, \"selector\", {\n get: function () {\n return \"[\" + this.attributeName + \"]\";\n },\n enumerable: true,\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: true,\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 };","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: true,\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: true,\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 = 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 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: true,\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: true,\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: true,\n configurable: true\n });\n Object.defineProperty(TokenListObserver.prototype, \"attributeName\", {\n get: function () {\n return this.attributeObserver.attributeName;\n },\n enumerable: true,\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: true,\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: true,\n configurable: true\n });\n Object.defineProperty(ValueListObserver.prototype, \"attributeName\", {\n get: function () {\n return this.tokenListObserver.attributeName;\n },\n enumerable: true,\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: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"identifier\", {\n get: function () {\n return this.context.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"actionAttribute\", {\n get: function () {\n return this.schema.actionAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"schema\", {\n get: function () {\n return this.context.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"bindings\", {\n get: function () {\n return Array.from(this.bindingsByAction.values());\n },\n enumerable: true,\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 { BindingObserver } from \"./binding_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\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\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.bindingObserver.stop();\n };\n\n Object.defineProperty(Context.prototype, \"application\", {\n get: function () {\n return this.module.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"identifier\", {\n get: function () {\n return this.module.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"schema\", {\n get: function () {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"dispatcher\", {\n get: function () {\n return this.application.dispatcher;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"parentElement\", {\n get: function () {\n return this.element.parentElement;\n },\n enumerable: true,\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 };","var __extends = this && this.__extends || function () {\n var 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 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/** @hidden */\n\n\nexport function blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: blessControllerConstructor(definition.controllerConstructor)\n };\n}\n\nfunction blessControllerConstructor(controllerConstructor) {\n var constructor = extend(controllerConstructor);\n constructor.bless();\n return constructor;\n}\n\nvar extend = function () {\n function extendWithReflect(constructor) {\n function Controller() {\n var _newTarget = this && this instanceof Controller ? this.constructor : void 0;\n\n return Reflect.construct(constructor, arguments, _newTarget);\n }\n\n Controller.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: Controller\n }\n });\n Reflect.setPrototypeOf(Controller, constructor);\n return Controller;\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(Controller, _super);\n\n function Controller() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return Controller;\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: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"controllerConstructor\", {\n get: function () {\n return this.definition.controllerConstructor;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"contexts\", {\n get: function () {\n return Array.from(this.connectedContexts);\n },\n enumerable: true,\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 };","var 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: true,\n configurable: true\n });\n Object.defineProperty(DataMap.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n\n DataMap.prototype.get = function (key) {\n key = this.getFormattedKey(key);\n return this.element.getAttribute(key);\n };\n\n DataMap.prototype.set = function (key, value) {\n key = this.getFormattedKey(key);\n this.element.setAttribute(key, value);\n return this.get(key);\n };\n\n DataMap.prototype.has = function (key) {\n key = this.getFormattedKey(key);\n return this.element.hasAttribute(key);\n };\n\n DataMap.prototype.delete = function (key) {\n if (this.has(key)) {\n key = this.getFormattedKey(key);\n this.element.removeAttribute(key);\n return true;\n } else {\n return false;\n }\n };\n\n DataMap.prototype.getFormattedKey = function (key) {\n return \"data-\" + this.identifier + \"-\" + dasherize(key);\n };\n\n return DataMap;\n}();\n\nexport { DataMap };\n\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, char) {\n return \"-\" + char.toLowerCase();\n });\n}","/** @hidden */\nexport function attributeValueContainsToken(attributeName, token) {\n return \"[\" + attributeName + \"~=\\\"\" + token + \"\\\"]\";\n}","import { 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: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"schema\", {\n get: function () {\n return this.scope.schema;\n },\n enumerable: true,\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 targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findElement(selector);\n };\n\n TargetSet.prototype.findAll = function () {\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findAllElements(selector);\n };\n\n TargetSet.prototype.getSelectorForTargetNames = function (targetNames) {\n var _this = this;\n\n return targetNames.map(function (targetName) {\n return _this.getSelectorForTargetName(targetName);\n }).join(\", \");\n };\n\n TargetSet.prototype.getSelectorForTargetName = function (targetName) {\n var targetDescriptor = this.identifier + \".\" + targetName;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n };\n\n return TargetSet;\n}();\n\nexport { TargetSet };","import { DataMap } from \"./data_map\";\nimport { TargetSet } from \"./target_set\";\nimport { attributeValueContainsToken } from \"./selectors\";\n\nvar Scope =\n/** @class */\nfunction () {\n function Scope(schema, identifier, element) {\n this.schema = schema;\n this.identifier = identifier;\n this.element = element;\n this.targets = new TargetSet(this);\n this.data = new DataMap(this);\n }\n\n Scope.prototype.findElement = function (selector) {\n return this.findAllElements(selector)[0];\n };\n\n Scope.prototype.findAllElements = function (selector) {\n var head = this.element.matches(selector) ? [this.element] : [];\n var tail = this.filterElements(Array.from(this.element.querySelectorAll(selector)));\n return head.concat(tail);\n };\n\n Scope.prototype.filterElements = function (elements) {\n var _this = this;\n\n return elements.filter(function (element) {\n return _this.containsElement(element);\n });\n };\n\n Scope.prototype.containsElement = function (element) {\n return element.closest(this.controllerSelector) === this.element;\n };\n\n Object.defineProperty(Scope.prototype, \"controllerSelector\", {\n get: function () {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n },\n enumerable: true,\n configurable: true\n });\n return Scope;\n}();\n\nexport { Scope };","import { Scope } from \"./scope\";\nimport { 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: true,\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 = new Scope(this.schema, identifier, element);\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 { 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: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"schema\", {\n get: function () {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"controllerAttribute\", {\n get: function () {\n return this.schema.controllerAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"modules\", {\n get: function () {\n return Array.from(this.modulesByIdentifier.values());\n },\n enumerable: true,\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: true,\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.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 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) : new P(function (resolve) {\n resolve(result.value);\n }).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 = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [0, 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\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.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.router.start();\n this.dispatcher.start();\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Application.prototype.stop = function () {\n this.router.stop();\n this.dispatcher.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 : [head].concat(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 : [head].concat(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: true,\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 console.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}","/** @hidden */\nexport function defineTargetProperties(constructor) {\n var prototype = constructor.prototype;\n var targetNames = getTargetNamesForConstructor(constructor);\n targetNames.forEach(function (name) {\n var _a;\n\n return defineLinkedProperties(prototype, (_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 });\n}\n\nfunction getTargetNamesForConstructor(constructor) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (targetNames, constructor) {\n getOwnTargetNamesForConstructor(constructor).forEach(function (name) {\n return targetNames.add(name);\n });\n return targetNames;\n }, new Set()));\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;\n}\n\nfunction getOwnTargetNamesForConstructor(constructor) {\n var definition = constructor[\"targets\"];\n return Array.isArray(definition) ? definition : [];\n}\n\nfunction defineLinkedProperties(object, properties) {\n Object.keys(properties).forEach(function (name) {\n if (!(name in object)) {\n var descriptor = properties[name];\n Object.defineProperty(object, name, descriptor);\n }\n });\n}\n\nfunction capitalize(name) {\n return name.charAt(0).toUpperCase() + name.slice(1);\n}","import { defineTargetProperties } from \"./target_properties\";\n\nvar Controller =\n/** @class */\nfunction () {\n function Controller(context) {\n this.context = context;\n }\n\n Controller.bless = function () {\n defineTargetProperties(this);\n };\n\n Object.defineProperty(Controller.prototype, \"application\", {\n get: function () {\n return this.context.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"scope\", {\n get: function () {\n return this.context.scope;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"targets\", {\n get: function () {\n return this.scope.targets;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"data\", {\n get: function () {\n return this.scope.data;\n },\n enumerable: true,\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.targets = [];\n return Controller;\n}();\n\nexport { Controller };","/*\nTrix 1.2.3\nCopyright © 2020 Basecamp, LLC\nhttp://trix-editor.org/\n */\n(function () {}).call(this), function () {\n var t;\n null == window.Set && (window.Set = t = function () {\n function t() {\n this.clear();\n }\n\n return t.prototype.clear = function () {\n return this.values = [];\n }, t.prototype.has = function (t) {\n return -1 !== this.values.indexOf(t);\n }, t.prototype.add = function (t) {\n return this.has(t) || this.values.push(t), this;\n }, t.prototype[\"delete\"] = function (t) {\n var e;\n return -1 === (e = this.values.indexOf(t)) ? !1 : (this.values.splice(e, 1), !0);\n }, t.prototype.forEach = function () {\n var t;\n return (t = this.values).forEach.apply(t, arguments);\n }, t;\n }());\n}.call(this), function (t) {\n function e() {}\n\n function n(t, e) {\n return function () {\n t.apply(e, arguments);\n };\n }\n\n function i(t) {\n if (\"object\" != typeof this) throw new TypeError(\"Promises must be constructed via new\");\n if (\"function\" != typeof t) throw new TypeError(\"not a function\");\n this._state = 0, this._handled = !1, this._value = void 0, this._deferreds = [], c(t, this);\n }\n\n function o(t, e) {\n for (; 3 === t._state;) t = t._value;\n\n return 0 === t._state ? void t._deferreds.push(e) : (t._handled = !0, void h(function () {\n var n = 1 === t._state ? e.onFulfilled : e.onRejected;\n if (null === n) return void (1 === t._state ? r : s)(e.promise, t._value);\n var i;\n\n try {\n i = n(t._value);\n } catch (o) {\n return void s(e.promise, o);\n }\n\n r(e.promise, i);\n }));\n }\n\n function r(t, e) {\n try {\n if (e === t) throw new TypeError(\"A promise cannot be resolved with itself.\");\n\n if (e && (\"object\" == typeof e || \"function\" == typeof e)) {\n var o = e.then;\n if (e instanceof i) return t._state = 3, t._value = e, void a(t);\n if (\"function\" == typeof o) return void c(n(o, e), t);\n }\n\n t._state = 1, t._value = e, a(t);\n } catch (r) {\n s(t, r);\n }\n }\n\n function s(t, e) {\n t._state = 2, t._value = e, a(t);\n }\n\n function a(t) {\n 2 === t._state && 0 === t._deferreds.length && setTimeout(function () {\n t._handled || p(t._value);\n }, 1);\n\n for (var e = 0, n = t._deferreds.length; n > e; e++) o(t, t._deferreds[e]);\n\n t._deferreds = null;\n }\n\n function u(t, e, n) {\n this.onFulfilled = \"function\" == typeof t ? t : null, this.onRejected = \"function\" == typeof e ? e : null, this.promise = n;\n }\n\n function c(t, e) {\n var n = !1;\n\n try {\n t(function (t) {\n n || (n = !0, r(e, t));\n }, function (t) {\n n || (n = !0, s(e, t));\n });\n } catch (i) {\n if (n) return;\n n = !0, s(e, i);\n }\n }\n\n var l = setTimeout,\n h = \"function\" == typeof setImmediate && setImmediate || function (t) {\n l(t, 1);\n },\n p = function (t) {\n \"undefined\" != typeof console && console && console.warn(\"Possible Unhandled Promise Rejection:\", t);\n };\n\n i.prototype[\"catch\"] = function (t) {\n return this.then(null, t);\n }, i.prototype.then = function (t, n) {\n var r = new i(e);\n return o(this, new u(t, n, r)), r;\n }, i.all = function (t) {\n var e = Array.prototype.slice.call(t);\n return new i(function (t, n) {\n function i(r, s) {\n try {\n if (s && (\"object\" == typeof s || \"function\" == typeof s)) {\n var a = s.then;\n if (\"function\" == typeof a) return void a.call(s, function (t) {\n i(r, t);\n }, n);\n }\n\n e[r] = s, 0 === --o && t(e);\n } catch (u) {\n n(u);\n }\n }\n\n if (0 === e.length) return t([]);\n\n for (var o = e.length, r = 0; r < e.length; r++) i(r, e[r]);\n });\n }, i.resolve = function (t) {\n return t && \"object\" == typeof t && t.constructor === i ? t : new i(function (e) {\n e(t);\n });\n }, i.reject = function (t) {\n return new i(function (e, n) {\n n(t);\n });\n }, i.race = function (t) {\n return new i(function (e, n) {\n for (var i = 0, o = t.length; o > i; i++) t[i].then(e, n);\n });\n }, i._setImmediateFn = function (t) {\n h = t;\n }, i._setUnhandledRejectionFn = function (t) {\n p = t;\n }, \"undefined\" != typeof module && module.exports ? module.exports = i : t.Promise || (t.Promise = i);\n}(this), function () {\n var t = \"object\" == typeof window.customElements,\n e = \"function\" == typeof document.registerElement,\n n = t || e;\n n || (\n /**\n * @license\n * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n \"undefined\" == typeof WeakMap && !function () {\n var t = Object.defineProperty,\n e = Date.now() % 1e9,\n n = function () {\n this.name = \"__st\" + (1e9 * Math.random() >>> 0) + (e++ + \"__\");\n };\n\n n.prototype = {\n set: function (e, n) {\n var i = e[this.name];\n return i && i[0] === e ? i[1] = n : t(e, this.name, {\n value: [e, n],\n writable: !0\n }), this;\n },\n get: function (t) {\n var e;\n return (e = t[this.name]) && e[0] === t ? e[1] : void 0;\n },\n \"delete\": function (t) {\n var e = t[this.name];\n return e && e[0] === t ? (e[0] = e[1] = void 0, !0) : !1;\n },\n has: function (t) {\n var e = t[this.name];\n return e ? e[0] === t : !1;\n }\n }, window.WeakMap = n;\n }(), function (t) {\n function e(t) {\n A.push(t), b || (b = !0, g(i));\n }\n\n function n(t) {\n return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(t) || t;\n }\n\n function i() {\n b = !1;\n var t = A;\n A = [], t.sort(function (t, e) {\n return t.uid_ - e.uid_;\n });\n var e = !1;\n t.forEach(function (t) {\n var n = t.takeRecords();\n o(t), n.length && (t.callback_(n, t), e = !0);\n }), e && i();\n }\n\n function o(t) {\n t.nodes_.forEach(function (e) {\n var n = m.get(e);\n n && n.forEach(function (e) {\n e.observer === t && e.removeTransientObservers();\n });\n });\n }\n\n function r(t, e) {\n for (var n = t; n; n = n.parentNode) {\n var i = m.get(n);\n if (i) for (var o = 0; o < i.length; o++) {\n var r = i[o],\n s = r.options;\n\n if (n === t || s.subtree) {\n var a = e(s);\n a && r.enqueue(a);\n }\n }\n }\n }\n\n function s(t) {\n this.callback_ = t, this.nodes_ = [], this.records_ = [], this.uid_ = ++C;\n }\n\n function a(t, e) {\n this.type = t, this.target = e, this.addedNodes = [], this.removedNodes = [], this.previousSibling = null, this.nextSibling = null, this.attributeName = null, this.attributeNamespace = null, this.oldValue = null;\n }\n\n function u(t) {\n var e = new a(t.type, t.target);\n return e.addedNodes = t.addedNodes.slice(), e.removedNodes = t.removedNodes.slice(), e.previousSibling = t.previousSibling, e.nextSibling = t.nextSibling, e.attributeName = t.attributeName, e.attributeNamespace = t.attributeNamespace, e.oldValue = t.oldValue, e;\n }\n\n function c(t, e) {\n return x = new a(t, e);\n }\n\n function l(t) {\n return w ? w : (w = u(x), w.oldValue = t, w);\n }\n\n function h() {\n x = w = void 0;\n }\n\n function p(t) {\n return t === w || t === x;\n }\n\n function d(t, e) {\n return t === e ? t : w && p(t) ? w : null;\n }\n\n function f(t, e, n) {\n this.observer = t, this.target = e, this.options = n, this.transientObservedNodes = [];\n }\n\n if (!t.JsMutationObserver) {\n var g,\n m = new WeakMap();\n if (/Trident|Edge/.test(navigator.userAgent)) g = setTimeout;else if (window.setImmediate) g = window.setImmediate;else {\n var v = [],\n y = String(Math.random());\n window.addEventListener(\"message\", function (t) {\n if (t.data === y) {\n var e = v;\n v = [], e.forEach(function (t) {\n t();\n });\n }\n }), g = function (t) {\n v.push(t), window.postMessage(y, \"*\");\n };\n }\n var b = !1,\n A = [],\n C = 0;\n s.prototype = {\n observe: function (t, e) {\n if (t = n(t), !e.childList && !e.attributes && !e.characterData || e.attributeOldValue && !e.attributes || e.attributeFilter && e.attributeFilter.length && !e.attributes || e.characterDataOldValue && !e.characterData) throw new SyntaxError();\n var i = m.get(t);\n i || m.set(t, i = []);\n\n for (var o, r = 0; r < i.length; r++) if (i[r].observer === this) {\n o = i[r], o.removeListeners(), o.options = e;\n break;\n }\n\n o || (o = new f(this, t, e), i.push(o), this.nodes_.push(t)), o.addListeners();\n },\n disconnect: function () {\n this.nodes_.forEach(function (t) {\n for (var e = m.get(t), n = 0; n < e.length; n++) {\n var i = e[n];\n\n if (i.observer === this) {\n i.removeListeners(), e.splice(n, 1);\n break;\n }\n }\n }, this), this.records_ = [];\n },\n takeRecords: function () {\n var t = this.records_;\n return this.records_ = [], t;\n }\n };\n var x, w;\n f.prototype = {\n enqueue: function (t) {\n var n = this.observer.records_,\n i = n.length;\n\n if (n.length > 0) {\n var o = n[i - 1],\n r = d(o, t);\n if (r) return void (n[i - 1] = r);\n } else e(this.observer);\n\n n[i] = t;\n },\n addListeners: function () {\n this.addListeners_(this.target);\n },\n addListeners_: function (t) {\n var e = this.options;\n e.attributes && t.addEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.addEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.addEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.addEventListener(\"DOMNodeRemoved\", this, !0);\n },\n removeListeners: function () {\n this.removeListeners_(this.target);\n },\n removeListeners_: function (t) {\n var e = this.options;\n e.attributes && t.removeEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.removeEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.removeEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.removeEventListener(\"DOMNodeRemoved\", this, !0);\n },\n addTransientObserver: function (t) {\n if (t !== this.target) {\n this.addListeners_(t), this.transientObservedNodes.push(t);\n var e = m.get(t);\n e || m.set(t, e = []), e.push(this);\n }\n },\n removeTransientObservers: function () {\n var t = this.transientObservedNodes;\n this.transientObservedNodes = [], t.forEach(function (t) {\n this.removeListeners_(t);\n\n for (var e = m.get(t), n = 0; n < e.length; n++) if (e[n] === this) {\n e.splice(n, 1);\n break;\n }\n }, this);\n },\n handleEvent: function (t) {\n switch (t.stopImmediatePropagation(), t.type) {\n case \"DOMAttrModified\":\n var e = t.attrName,\n n = t.relatedNode.namespaceURI,\n i = t.target,\n o = new c(\"attributes\", i);\n o.attributeName = e, o.attributeNamespace = n;\n var s = t.attrChange === MutationEvent.ADDITION ? null : t.prevValue;\n r(i, function (t) {\n return !t.attributes || t.attributeFilter && t.attributeFilter.length && -1 === t.attributeFilter.indexOf(e) && -1 === t.attributeFilter.indexOf(n) ? void 0 : t.attributeOldValue ? l(s) : o;\n });\n break;\n\n case \"DOMCharacterDataModified\":\n var i = t.target,\n o = c(\"characterData\", i),\n s = t.prevValue;\n r(i, function (t) {\n return t.characterData ? t.characterDataOldValue ? l(s) : o : void 0;\n });\n break;\n\n case \"DOMNodeRemoved\":\n this.addTransientObserver(t.target);\n\n case \"DOMNodeInserted\":\n var a,\n u,\n p = t.target;\n \"DOMNodeInserted\" === t.type ? (a = [p], u = []) : (a = [], u = [p]);\n var d = p.previousSibling,\n f = p.nextSibling,\n o = c(\"childList\", t.target.parentNode);\n o.addedNodes = a, o.removedNodes = u, o.previousSibling = d, o.nextSibling = f, r(t.relatedNode, function (t) {\n return t.childList ? o : void 0;\n });\n }\n\n h();\n }\n }, t.JsMutationObserver = s, t.MutationObserver || (t.MutationObserver = s, s._isPolyfilled = !0);\n }\n }(self), function () {\n \"use strict\";\n\n if (!window.performance || !window.performance.now) {\n var t = Date.now();\n window.performance = {\n now: function () {\n return Date.now() - t;\n }\n };\n }\n\n window.requestAnimationFrame || (window.requestAnimationFrame = function () {\n var t = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n return t ? function (e) {\n return t(function () {\n e(performance.now());\n });\n } : function (t) {\n return window.setTimeout(t, 1e3 / 60);\n };\n }()), window.cancelAnimationFrame || (window.cancelAnimationFrame = function () {\n return window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function (t) {\n clearTimeout(t);\n };\n }());\n\n var e = function () {\n var t = document.createEvent(\"Event\");\n return t.initEvent(\"foo\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }();\n\n if (!e) {\n var n = Event.prototype.preventDefault;\n\n Event.prototype.preventDefault = function () {\n this.cancelable && (n.call(this), Object.defineProperty(this, \"defaultPrevented\", {\n get: function () {\n return !0;\n },\n configurable: !0\n }));\n };\n }\n\n var i = /Trident/.test(navigator.userAgent);\n\n if ((!window.CustomEvent || i && \"function\" != typeof window.CustomEvent) && (window.CustomEvent = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"CustomEvent\");\n return n.initCustomEvent(t, Boolean(e.bubbles), Boolean(e.cancelable), e.detail), n;\n }, window.CustomEvent.prototype = window.Event.prototype), !window.Event || i && \"function\" != typeof window.Event) {\n var o = window.Event;\n window.Event = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"Event\");\n return n.initEvent(t, Boolean(e.bubbles), Boolean(e.cancelable)), n;\n }, window.Event.prototype = o.prototype;\n }\n }(window.WebComponents), window.CustomElements = window.CustomElements || {\n flags: {}\n }, function (t) {\n var e = t.flags,\n n = [],\n i = function (t) {\n n.push(t);\n },\n o = function () {\n n.forEach(function (e) {\n e(t);\n });\n };\n\n t.addModule = i, t.initializeModules = o, t.hasNative = Boolean(document.registerElement), t.isIE = /Trident/.test(navigator.userAgent), t.useNative = !e.register && t.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || window.HTMLImports.useNative);\n }(window.CustomElements), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n n(t, function (t) {\n return e(t) ? !0 : void i(t, e);\n }), i(t, e);\n }\n\n function n(t, e, i) {\n var o = t.firstElementChild;\n if (!o) for (o = t.firstChild; o && o.nodeType !== Node.ELEMENT_NODE;) o = o.nextSibling;\n\n for (; o;) e(o, i) !== !0 && n(o, e, i), o = o.nextElementSibling;\n\n return null;\n }\n\n function i(t, n) {\n for (var i = t.shadowRoot; i;) e(i, n), i = i.olderShadowRoot;\n }\n\n function o(t, e) {\n r(t, e, []);\n }\n\n function r(t, e, n) {\n if (t = window.wrap(t), !(n.indexOf(t) >= 0)) {\n n.push(t);\n\n for (var i, o = t.querySelectorAll(\"link[rel=\" + s + \"]\"), a = 0, u = o.length; u > a && (i = o[a]); a++) i.import && r(i.import, e, n);\n\n e(t);\n }\n }\n\n var s = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : \"none\";\n t.forDocumentTree = o, t.forSubtree = e;\n }), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n return n(t, e) || i(t, e);\n }\n\n function n(e, n) {\n return t.upgrade(e, n) ? !0 : void (n && s(e));\n }\n\n function i(t, e) {\n b(t, function (t) {\n return n(t, e) ? !0 : void 0;\n });\n }\n\n function o(t) {\n w.push(t), x || (x = !0, setTimeout(r));\n }\n\n function r() {\n x = !1;\n\n for (var t, e = w, n = 0, i = e.length; i > n && (t = e[n]); n++) t();\n\n w = [];\n }\n\n function s(t) {\n C ? o(function () {\n a(t);\n }) : a(t);\n }\n\n function a(t) {\n t.__upgraded__ && !t.__attached && (t.__attached = !0, t.attachedCallback && t.attachedCallback());\n }\n\n function u(t) {\n c(t), b(t, function (t) {\n c(t);\n });\n }\n\n function c(t) {\n C ? o(function () {\n l(t);\n }) : l(t);\n }\n\n function l(t) {\n t.__upgraded__ && t.__attached && (t.__attached = !1, t.detachedCallback && t.detachedCallback());\n }\n\n function h(t) {\n for (var e = t, n = window.wrap(document); e;) {\n if (e == n) return !0;\n e = e.parentNode || e.nodeType === Node.DOCUMENT_FRAGMENT_NODE && e.host;\n }\n }\n\n function p(t) {\n if (t.shadowRoot && !t.shadowRoot.__watched) {\n y.dom && console.log(\"watching shadow-root for: \", t.localName);\n\n for (var e = t.shadowRoot; e;) g(e), e = e.olderShadowRoot;\n }\n }\n\n function d(t, n) {\n if (y.dom) {\n var i = n[0];\n\n if (i && \"childList\" === i.type && i.addedNodes && i.addedNodes) {\n for (var o = i.addedNodes[0]; o && o !== document && !o.host;) o = o.parentNode;\n\n var r = o && (o.URL || o._URL || o.host && o.host.localName) || \"\";\n r = r.split(\"/?\").shift().split(\"/\").pop();\n }\n\n console.group(\"mutations (%d) [%s]\", n.length, r || \"\");\n }\n\n var s = h(t);\n n.forEach(function (t) {\n \"childList\" === t.type && (E(t.addedNodes, function (t) {\n t.localName && e(t, s);\n }), E(t.removedNodes, function (t) {\n t.localName && u(t);\n }));\n }), y.dom && console.groupEnd();\n }\n\n function f(t) {\n for (t = window.wrap(t), t || (t = window.wrap(document)); t.parentNode;) t = t.parentNode;\n\n var e = t.__observer;\n e && (d(t, e.takeRecords()), r());\n }\n\n function g(t) {\n if (!t.__observer) {\n var e = new MutationObserver(d.bind(this, t));\n e.observe(t, {\n childList: !0,\n subtree: !0\n }), t.__observer = e;\n }\n }\n\n function m(t) {\n t = window.wrap(t), y.dom && console.group(\"upgradeDocument: \", t.baseURI.split(\"/\").pop());\n var n = t === window.wrap(document);\n e(t, n), g(t), y.dom && console.groupEnd();\n }\n\n function v(t) {\n A(t, m);\n }\n\n var y = t.flags,\n b = t.forSubtree,\n A = t.forDocumentTree,\n C = window.MutationObserver._isPolyfilled && y[\"throttle-attached\"];\n t.hasPolyfillMutations = C, t.hasThrottledAttached = C;\n var x = !1,\n w = [],\n E = Array.prototype.forEach.call.bind(Array.prototype.forEach),\n S = Element.prototype.createShadowRoot;\n S && (Element.prototype.createShadowRoot = function () {\n var t = S.call(this);\n return window.CustomElements.watchShadow(this), t;\n }), t.watchShadow = p, t.upgradeDocumentTree = v, t.upgradeDocument = m, t.upgradeSubtree = i, t.upgradeAll = e, t.attached = s, t.takeRecords = f;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n if (\"template\" === e.localName && window.HTMLTemplateElement && HTMLTemplateElement.decorate && HTMLTemplateElement.decorate(e), !e.__upgraded__ && e.nodeType === Node.ELEMENT_NODE) {\n var o = e.getAttribute(\"is\"),\n r = t.getRegisteredDefinition(e.localName) || t.getRegisteredDefinition(o);\n if (r && (o && r.tag == e.localName || !o && !r.extends)) return n(e, r, i);\n }\n }\n\n function n(e, n, o) {\n return s.upgrade && console.group(\"upgrade:\", e.localName), n.is && e.setAttribute(\"is\", n.is), i(e, n), e.__upgraded__ = !0, r(e), o && t.attached(e), t.upgradeSubtree(e, o), s.upgrade && console.groupEnd(), e;\n }\n\n function i(t, e) {\n Object.__proto__ ? t.__proto__ = e.prototype : (o(t, e.prototype, e.native), t.__proto__ = e.prototype);\n }\n\n function o(t, e, n) {\n for (var i = {}, o = e; o !== n && o !== HTMLElement.prototype;) {\n for (var r, s = Object.getOwnPropertyNames(o), a = 0; r = s[a]; a++) i[r] || (Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(o, r)), i[r] = 1);\n\n o = Object.getPrototypeOf(o);\n }\n }\n\n function r(t) {\n t.createdCallback && t.createdCallback();\n }\n\n var s = t.flags;\n t.upgrade = e, t.upgradeWithDefinition = n, t.implementPrototype = i;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n var u = i || {};\n if (!e) throw new Error(\"document.registerElement: first argument `name` must not be empty\");\n if (e.indexOf(\"-\") < 0) throw new Error(\"document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '\" + String(e) + \"'.\");\n if (o(e)) throw new Error(\"Failed to execute 'registerElement' on 'Document': Registration failed for type '\" + String(e) + \"'. The type name is invalid.\");\n if (c(e)) throw new Error(\"DuplicateDefinitionError: a type with name '\" + String(e) + \"' is already registered\");\n return u.prototype || (u.prototype = Object.create(HTMLElement.prototype)), u.__name = e.toLowerCase(), u.extends && (u.extends = u.extends.toLowerCase()), u.lifecycle = u.lifecycle || {}, u.ancestry = r(u.extends), s(u), a(u), n(u.prototype), l(u.__name, u), u.ctor = h(u), u.ctor.prototype = u.prototype, u.prototype.constructor = u.ctor, t.ready && m(document), u.ctor;\n }\n\n function n(t) {\n if (!t.setAttribute._polyfilled) {\n var e = t.setAttribute;\n\n t.setAttribute = function (t, n) {\n i.call(this, t, n, e);\n };\n\n var n = t.removeAttribute;\n t.removeAttribute = function (t) {\n i.call(this, t, null, n);\n }, t.setAttribute._polyfilled = !0;\n }\n }\n\n function i(t, e, n) {\n t = t.toLowerCase();\n var i = this.getAttribute(t);\n n.apply(this, arguments);\n var o = this.getAttribute(t);\n this.attributeChangedCallback && o !== i && this.attributeChangedCallback(t, i, o);\n }\n\n function o(t) {\n for (var e = 0; e < C.length; e++) if (t === C[e]) return !0;\n }\n\n function r(t) {\n var e = c(t);\n return e ? r(e.extends).concat([e]) : [];\n }\n\n function s(t) {\n for (var e, n = t.extends, i = 0; e = t.ancestry[i]; i++) n = e.is && e.tag;\n\n t.tag = n || t.__name, n && (t.is = t.__name);\n }\n\n function a(t) {\n if (!Object.__proto__) {\n var e = HTMLElement.prototype;\n\n if (t.is) {\n var n = document.createElement(t.tag);\n e = Object.getPrototypeOf(n);\n }\n\n for (var i, o = t.prototype, r = !1; o;) o == e && (r = !0), i = Object.getPrototypeOf(o), i && (o.__proto__ = i), o = i;\n\n r || console.warn(t.tag + \" prototype not found in prototype chain for \" + t.is), t.native = e;\n }\n }\n\n function u(t) {\n return y(E(t.tag), t);\n }\n\n function c(t) {\n return t ? x[t.toLowerCase()] : void 0;\n }\n\n function l(t, e) {\n x[t] = e;\n }\n\n function h(t) {\n return function () {\n return u(t);\n };\n }\n\n function p(t, e, n) {\n return t === w ? d(e, n) : S(t, e);\n }\n\n function d(t, e) {\n t && (t = t.toLowerCase()), e && (e = e.toLowerCase());\n var n = c(e || t);\n\n if (n) {\n if (t == n.tag && e == n.is) return new n.ctor();\n if (!e && !n.is) return new n.ctor();\n }\n\n var i;\n return e ? (i = d(t), i.setAttribute(\"is\", e), i) : (i = E(t), t.indexOf(\"-\") >= 0 && b(i, HTMLElement), i);\n }\n\n function f(t, e) {\n var n = t[e];\n\n t[e] = function () {\n var t = n.apply(this, arguments);\n return v(t), t;\n };\n }\n\n var g,\n m = (t.isIE, t.upgradeDocumentTree),\n v = t.upgradeAll,\n y = t.upgradeWithDefinition,\n b = t.implementPrototype,\n A = t.useNative,\n C = [\"annotation-xml\", \"color-profile\", \"font-face\", \"font-face-src\", \"font-face-uri\", \"font-face-format\", \"font-face-name\", \"missing-glyph\"],\n x = {},\n w = \"http://www.w3.org/1999/xhtml\",\n E = document.createElement.bind(document),\n S = document.createElementNS.bind(document);\n g = Object.__proto__ || A ? function (t, e) {\n return t instanceof e;\n } : function (t, e) {\n if (t instanceof e) return !0;\n\n for (var n = t; n;) {\n if (n === e.prototype) return !0;\n n = n.__proto__;\n }\n\n return !1;\n }, f(Node.prototype, \"cloneNode\"), f(document, \"importNode\"), document.registerElement = e, document.createElement = d, document.createElementNS = p, t.registry = x, t.instanceof = g, t.reservedTagList = C, t.getRegisteredDefinition = c, document.register = document.registerElement;\n }), function (t) {\n function e() {\n r(window.wrap(document)), window.CustomElements.ready = !0;\n\n var t = window.requestAnimationFrame || function (t) {\n setTimeout(t, 16);\n };\n\n t(function () {\n setTimeout(function () {\n window.CustomElements.readyTime = Date.now(), window.HTMLImports && (window.CustomElements.elapsed = window.CustomElements.readyTime - window.HTMLImports.readyTime), document.dispatchEvent(new CustomEvent(\"WebComponentsReady\", {\n bubbles: !0\n }));\n });\n });\n }\n\n var n = t.useNative,\n i = t.initializeModules;\n\n if (t.isIE, n) {\n var o = function () {};\n\n t.watchShadow = o, t.upgrade = o, t.upgradeAll = o, t.upgradeDocumentTree = o, t.upgradeSubtree = o, t.takeRecords = o, t.instanceof = function (t, e) {\n return t instanceof e;\n };\n } else i();\n\n var r = t.upgradeDocumentTree,\n s = t.upgradeDocument;\n if (window.wrap || (window.ShadowDOMPolyfill ? (window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded, window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded) : window.wrap = window.unwrap = function (t) {\n return t;\n }), window.HTMLImports && (window.HTMLImports.__importsParsingHook = function (t) {\n t.import && s(wrap(t.import));\n }), \"complete\" === document.readyState || t.flags.eager) e();else if (\"interactive\" !== document.readyState || window.attachEvent || window.HTMLImports && !window.HTMLImports.ready) {\n var a = window.HTMLImports && !window.HTMLImports.ready ? \"HTMLImportsLoaded\" : \"DOMContentLoaded\";\n window.addEventListener(a, e);\n } else e();\n }(window.CustomElements));\n}.call(this), function () {}.call(this), function () {\n var t = this;\n (function () {\n (function () {\n this.Trix = {\n VERSION: \"1.2.3\",\n ZERO_WIDTH_SPACE: \"\\ufeff\",\n NON_BREAKING_SPACE: \"\\xa0\",\n OBJECT_REPLACEMENT_CHARACTER: \"\\ufffc\",\n browser: {\n composesExistingText: /Android.*Chrome/.test(navigator.userAgent),\n forcesObjectResizing: /Trident.*rv:11/.test(navigator.userAgent),\n supportsInputEvents: function () {\n var t, e, n, i;\n if (\"undefined\" == typeof InputEvent) return !1;\n\n for (i = [\"data\", \"getTargetRanges\", \"inputType\"], t = 0, e = i.length; e > t; t++) if (n = i[t], !(n in InputEvent.prototype)) return !1;\n\n return !0;\n }()\n },\n config: {}\n };\n }).call(this);\n }).call(t);\n var e = t.Trix;\n (function () {\n (function () {\n e.BasicObject = function () {\n function t() {}\n\n var e, n, i;\n return t.proxyMethod = function (t) {\n var i, o, r, s, a;\n return r = n(t), i = r.name, s = r.toMethod, a = r.toProperty, o = r.optional, this.prototype[i] = function () {\n var t, n;\n return t = null != s ? o ? \"function\" == typeof this[s] ? this[s]() : void 0 : this[s]() : null != a ? this[a] : void 0, o ? (n = null != t ? t[i] : void 0, null != n ? e.call(n, t, arguments) : void 0) : (n = t[i], e.call(n, t, arguments));\n };\n }, n = function (t) {\n var e, n;\n if (!(n = t.match(i))) throw new Error(\"can't parse @proxyMethod expression: \" + t);\n return e = {\n name: n[4]\n }, null != n[2] ? e.toMethod = n[1] : e.toProperty = n[1], null != n[3] && (e.optional = !0), e;\n }, e = Function.prototype.apply, i = /^(.+?)(\\(\\))?(\\?)?\\.(.+?)$/, t;\n }();\n }).call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.Object = function (n) {\n function i() {\n this.id = ++o;\n }\n\n var o;\n return t(i, n), o = 0, i.fromJSONString = function (t) {\n return this.fromJSON(JSON.parse(t));\n }, i.prototype.hasSameConstructorAs = function (t) {\n return this.constructor === (null != t ? t.constructor : void 0);\n }, i.prototype.isEqualTo = function (t) {\n return this === t;\n }, i.prototype.inspect = function () {\n var t, e, n;\n return t = function () {\n var t, i, o;\n i = null != (t = this.contentsForInspection()) ? t : {}, o = [];\n\n for (e in i) n = i[e], o.push(e + \"=\" + n);\n\n return o;\n }.call(this), \"#<\" + this.constructor.name + \":\" + this.id + (t.length ? \" \" + t.join(\", \") : \"\") + \">\";\n }, i.prototype.contentsForInspection = function () {}, i.prototype.toJSONString = function () {\n return JSON.stringify(this);\n }, i.prototype.toUTF16String = function () {\n return e.UTF16String.box(this);\n }, i.prototype.getCacheKey = function () {\n return this.id.toString();\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n e.extend = function (t) {\n var e, n;\n\n for (e in t) n = t[e], this[e] = n;\n\n return this;\n };\n }.call(this), function () {\n e.extend({\n defer: function (t) {\n return setTimeout(t, 1);\n }\n });\n }.call(this), function () {\n var t, n;\n e.extend({\n normalizeSpaces: function (t) {\n return t.replace(RegExp(\"\" + e.ZERO_WIDTH_SPACE, \"g\"), \"\").replace(RegExp(\"\" + e.NON_BREAKING_SPACE, \"g\"), \" \");\n },\n normalizeNewlines: function (t) {\n return t.replace(/\\r\\n/g, \"\\n\");\n },\n breakableWhitespacePattern: RegExp(\"[^\\\\S\" + e.NON_BREAKING_SPACE + \"]\"),\n squishBreakableWhitespace: function (t) {\n return t.replace(RegExp(\"\" + e.breakableWhitespacePattern.source, \"g\"), \" \").replace(/\\ {2,}/g, \" \");\n },\n escapeHTML: function (t) {\n var e;\n return e = document.createElement(\"div\"), e.textContent = t, e.innerHTML;\n },\n summarizeStringChange: function (t, i) {\n var o, r, s, a;\n return t = e.UTF16String.box(t), i = e.UTF16String.box(i), i.length < t.length ? (r = n(t, i), a = r[0], o = r[1]) : (s = n(i, t), o = s[0], a = s[1]), {\n added: o,\n removed: a\n };\n }\n }), n = function (n, i) {\n var o, r, s, a, u;\n return n.isEqualTo(i) ? [\"\", \"\"] : (r = t(n, i), a = r.utf16String.length, s = a ? (u = r.offset, r, o = n.codepoints.slice(0, u).concat(n.codepoints.slice(u + a)), t(i, e.UTF16String.fromCodepoints(o))) : t(i, n), [r.utf16String.toString(), s.utf16String.toString()]);\n }, t = function (t, e) {\n var n, i, o;\n\n for (n = 0, i = t.length, o = e.length; i > n && t.charAt(n).isEqualTo(e.charAt(n));) n++;\n\n for (; i > n + 1 && t.charAt(i - 1).isEqualTo(e.charAt(o - 1));) i--, o--;\n\n return {\n utf16String: t.slice(n, i),\n offset: n\n };\n };\n }.call(this), function () {\n e.extend({\n copyObject: function (t) {\n var e, n, i;\n null == t && (t = {}), n = {};\n\n for (e in t) i = t[e], n[e] = i;\n\n return n;\n },\n objectsAreEqual: function (t, e) {\n var n, i;\n if (null == t && (t = {}), null == e && (e = {}), Object.keys(t).length !== Object.keys(e).length) return !1;\n\n for (n in t) if (i = t[n], i !== e[n]) return !1;\n\n return !0;\n }\n });\n }.call(this), function () {\n var t = [].slice;\n e.extend({\n arraysAreEqual: function (t, e) {\n var n, i, o, r;\n if (null == t && (t = []), null == e && (e = []), t.length !== e.length) return !1;\n\n for (i = n = 0, o = t.length; o > n; i = ++n) if (r = t[i], r !== e[i]) return !1;\n\n return !0;\n },\n arrayStartsWith: function (t, n) {\n return null == t && (t = []), null == n && (n = []), e.arraysAreEqual(t.slice(0, n.length), n);\n },\n spliceArray: function () {\n var e, n, i;\n return n = arguments[0], e = 2 <= arguments.length ? t.call(arguments, 1) : [], i = n.slice(0), i.splice.apply(i, e), i;\n },\n summarizeArrayChange: function (t, e) {\n var n, i, o, r, s, a, u, c, l, h, p;\n\n for (null == t && (t = []), null == e && (e = []), n = [], h = [], o = new Set(), r = 0, u = t.length; u > r; r++) p = t[r], o.add(p);\n\n for (i = new Set(), s = 0, c = e.length; c > s; s++) p = e[s], i.add(p), o.has(p) || n.push(p);\n\n for (a = 0, l = t.length; l > a; a++) p = t[a], i.has(p) || h.push(p);\n\n return {\n added: n,\n removed: h\n };\n }\n });\n }.call(this), function () {\n var t, n, i, o;\n t = null, n = null, o = null, i = null, e.extend({\n getAllAttributeNames: function () {\n return null != t ? t : t = e.getTextAttributeNames().concat(e.getBlockAttributeNames());\n },\n getBlockConfig: function (t) {\n return e.config.blockAttributes[t];\n },\n getBlockAttributeNames: function () {\n return null != n ? n : n = Object.keys(e.config.blockAttributes);\n },\n getTextConfig: function (t) {\n return e.config.textAttributes[t];\n },\n getTextAttributeNames: function () {\n return null != o ? o : o = Object.keys(e.config.textAttributes);\n },\n getListAttributeNames: function () {\n var t, n;\n return null != i ? i : i = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n\n for (t in i) n = i[t].listAttribute, null != n && o.push(n);\n\n return o;\n }();\n }\n });\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n t = document.documentElement, n = null != (i = null != (o = null != (r = t.matchesSelector) ? r : t.webkitMatchesSelector) ? o : t.msMatchesSelector) ? i : t.mozMatchesSelector, e.extend({\n handleEvent: function (n, i) {\n var o, r, s, a, u, c, l, h, p, d, f, g;\n return h = null != i ? i : {}, c = h.onElement, u = h.matchingSelector, g = h.withCallback, a = h.inPhase, l = h.preventDefault, d = h.times, r = null != c ? c : t, p = u, o = g, f = \"capturing\" === a, s = function (t) {\n var n;\n return null != d && 0 === --d && s.destroy(), n = e.findClosestElementFromNode(t.target, {\n matchingSelector: p\n }), null != n && (null != g && g.call(n, t, n), l) ? t.preventDefault() : void 0;\n }, s.destroy = function () {\n return r.removeEventListener(n, s, f);\n }, r.addEventListener(n, s, f), s;\n },\n handleEventOnce: function (t, n) {\n return null == n && (n = {}), n.times = 1, e.handleEvent(t, n);\n },\n triggerEvent: function (n, i) {\n var o, r, s, a, u, c, l;\n return l = null != i ? i : {}, c = l.onElement, r = l.bubbles, s = l.cancelable, o = l.attributes, a = null != c ? c : t, r = r !== !1, s = s !== !1, u = document.createEvent(\"Events\"), u.initEvent(n, r, s), null != o && e.extend.call(u, o), a.dispatchEvent(u);\n },\n elementMatchesSelector: function (t, e) {\n return 1 === (null != t ? t.nodeType : void 0) ? n.call(t, e) : void 0;\n },\n findClosestElementFromNode: function (t, n) {\n var i, o, r;\n\n for (o = null != n ? n : {}, i = o.matchingSelector, r = o.untilNode; null != t && t.nodeType !== Node.ELEMENT_NODE;) t = t.parentNode;\n\n if (null != t) {\n if (null == i) return t;\n if (t.closest && null == r) return t.closest(i);\n\n for (; t && t !== r;) {\n if (e.elementMatchesSelector(t, i)) return t;\n t = t.parentNode;\n }\n }\n },\n findInnerElement: function (t) {\n for (; null != t ? t.firstElementChild : void 0;) t = t.firstElementChild;\n\n return t;\n },\n innerElementIsActive: function (t) {\n return document.activeElement !== t && e.elementContainsNode(t, document.activeElement);\n },\n elementContainsNode: function (t, e) {\n if (t && e) for (; e;) {\n if (e === t) return !0;\n e = e.parentNode;\n }\n },\n findNodeFromContainerAndOffset: function (t, e) {\n var n;\n if (t) return t.nodeType === Node.TEXT_NODE ? t : 0 === e ? null != (n = t.firstChild) ? n : t : t.childNodes.item(e - 1);\n },\n findElementFromContainerAndOffset: function (t, n) {\n var i;\n return i = e.findNodeFromContainerAndOffset(t, n), e.findClosestElementFromNode(i);\n },\n findChildIndexOfNode: function (t) {\n var e;\n\n if (null != t ? t.parentNode : void 0) {\n for (e = 0; t = t.previousSibling;) e++;\n\n return e;\n }\n },\n removeNode: function (t) {\n var e;\n return null != t && null != (e = t.parentNode) ? e.removeChild(t) : void 0;\n },\n walkTree: function (t, e) {\n var n, i, o, r, s;\n return o = null != e ? e : {}, i = o.onlyNodesOfType, r = o.usingFilter, n = o.expandEntityReferences, s = function () {\n switch (i) {\n case \"element\":\n return NodeFilter.SHOW_ELEMENT;\n\n case \"text\":\n return NodeFilter.SHOW_TEXT;\n\n case \"comment\":\n return NodeFilter.SHOW_COMMENT;\n\n default:\n return NodeFilter.SHOW_ALL;\n }\n }(), document.createTreeWalker(t, s, null != r ? r : null, n === !0);\n },\n tagName: function (t) {\n var e;\n return null != t && null != (e = t.tagName) ? e.toLowerCase() : void 0;\n },\n makeElement: function (t, e) {\n var n, i, o, r, s, a, u, c, l, h;\n\n if (null == e && (e = {}), \"object\" == typeof t ? (e = t, t = e.tagName) : e = {\n attributes: e\n }, i = document.createElement(t), null != e.editable && (null == e.attributes && (e.attributes = {}), e.attributes.contenteditable = e.editable), e.attributes) {\n a = e.attributes;\n\n for (r in a) h = a[r], i.setAttribute(r, h);\n }\n\n if (e.style) {\n u = e.style;\n\n for (r in u) h = u[r], i.style[r] = h;\n }\n\n if (e.data) {\n c = e.data;\n\n for (r in c) h = c[r], i.dataset[r] = h;\n }\n\n if (e.className) for (l = e.className.split(\" \"), o = 0, s = l.length; s > o; o++) n = l[o], i.classList.add(n);\n return e.textContent && (i.textContent = e.textContent), i;\n },\n getBlockTagNames: function () {\n var t, n;\n return null != e.blockTagNames ? e.blockTagNames : e.blockTagNames = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n\n for (t in i) n = i[t].tagName, n && o.push(n);\n\n return o;\n }();\n },\n nodeIsBlockContainer: function (t) {\n return e.nodeIsBlockStartComment(null != t ? t.firstChild : void 0);\n },\n nodeProbablyIsBlockContainer: function (t) {\n var n, i;\n return n = e.tagName(t), s.call(e.getBlockTagNames(), n) >= 0 && (i = e.tagName(t.firstChild), s.call(e.getBlockTagNames(), i) < 0);\n },\n nodeIsBlockStart: function (t, n) {\n var i;\n return i = (null != n ? n : {\n strict: !0\n }).strict, i ? e.nodeIsBlockStartComment(t) : e.nodeIsBlockStartComment(t) || !e.nodeIsBlockStartComment(t.firstChild) && e.nodeProbablyIsBlockContainer(t);\n },\n nodeIsBlockStartComment: function (t) {\n return e.nodeIsCommentNode(t) && \"block\" === (null != t ? t.data : void 0);\n },\n nodeIsCommentNode: function (t) {\n return (null != t ? t.nodeType : void 0) === Node.COMMENT_NODE;\n },\n nodeIsCursorTarget: function (t, n) {\n var i;\n return i = (null != n ? n : {}).name, t ? e.nodeIsTextNode(t) ? t.data === e.ZERO_WIDTH_SPACE ? i ? t.parentNode.dataset.trixCursorTarget === i : !0 : void 0 : e.nodeIsCursorTarget(t.firstChild) : void 0;\n },\n nodeIsAttachmentElement: function (t) {\n return e.elementMatchesSelector(t, e.AttachmentView.attachmentSelector);\n },\n nodeIsEmptyTextNode: function (t) {\n return e.nodeIsTextNode(t) && \"\" === (null != t ? t.data : void 0);\n },\n nodeIsTextNode: function (t) {\n return (null != t ? t.nodeType : void 0) === Node.TEXT_NODE;\n }\n });\n }.call(this), function () {\n var t, n, i, o, r;\n t = e.copyObject, o = e.objectsAreEqual, e.extend({\n normalizeRange: i = function (t) {\n var e;\n if (null != t) return Array.isArray(t) || (t = [t, t]), [n(t[0]), n(null != (e = t[1]) ? e : t[0])];\n },\n rangeIsCollapsed: function (t) {\n var e, n, o;\n if (null != t) return n = i(t), o = n[0], e = n[1], r(o, e);\n },\n rangesAreEqual: function (t, e) {\n var n, o, s, a, u, c;\n if (null != t && null != e) return s = i(t), o = s[0], n = s[1], a = i(e), c = a[0], u = a[1], r(o, c) && r(n, u);\n }\n }), n = function (e) {\n return \"number\" == typeof e ? e : t(e);\n }, r = function (t, e) {\n return \"number\" == typeof t ? t === e : o(t, e);\n };\n }.call(this), function () {\n var t, n, i, o, r, s, a;\n e.registerElement = function (t, e) {\n var n, i;\n return null == e && (e = {}), t = t.toLowerCase(), e = a(e), i = s(e), (n = i.defaultCSS) && (delete i.defaultCSS, o(n, t)), r(t, i);\n }, o = function (t, e) {\n var n;\n return n = i(e), n.textContent = t.replace(/%t/g, e);\n }, i = function (e) {\n var n, i;\n return n = document.createElement(\"style\"), n.setAttribute(\"type\", \"text/css\"), n.setAttribute(\"data-tag-name\", e.toLowerCase()), (i = t()) && n.setAttribute(\"nonce\", i), document.head.insertBefore(n, document.head.firstChild), n;\n }, t = function () {\n var t;\n return (t = n(\"trix-csp-nonce\") || n(\"csp-nonce\")) ? t.getAttribute(\"content\") : void 0;\n }, n = function (t) {\n return document.head.querySelector(\"meta[name=\" + t + \"]\");\n }, s = function (t) {\n var e, n, i;\n n = {};\n\n for (e in t) i = t[e], n[e] = \"function\" == typeof i ? {\n value: i\n } : i;\n\n return n;\n }, a = function () {\n var t;\n return t = function (t) {\n var e, n, i, o, r;\n\n for (e = {}, r = [\"initialize\", \"connect\", \"disconnect\"], n = 0, o = r.length; o > n; n++) i = r[n], e[i] = t[i], delete t[i];\n\n return e;\n }, window.customElements ? function (e) {\n var n, i, o, r, s;\n return s = t(e), o = s.initialize, n = s.connect, i = s.disconnect, o && (r = n, n = function () {\n return this.initialized || (this.initialized = !0, o.call(this)), null != r ? r.call(this) : void 0;\n }), n && (e.connectedCallback = n), i && (e.disconnectedCallback = i), e;\n } : function (e) {\n var n, i, o, r;\n return r = t(e), o = r.initialize, n = r.connect, i = r.disconnect, o && (e.createdCallback = o), n && (e.attachedCallback = n), i && (e.detachedCallback = i), e;\n };\n }(), r = function () {\n return window.customElements ? function (t, e) {\n var n;\n return n = function () {\n return \"object\" == typeof Reflect ? Reflect.construct(HTMLElement, [], n) : HTMLElement.apply(this);\n }, Object.setPrototypeOf(n.prototype, HTMLElement.prototype), Object.setPrototypeOf(n, HTMLElement), Object.defineProperties(n.prototype, e), window.customElements.define(t, n), n;\n } : function (t, e) {\n var n, i;\n return i = Object.create(HTMLElement.prototype, e), n = document.registerElement(t, {\n prototype: i\n }), Object.defineProperty(i, \"constructor\", {\n value: n\n }), n;\n };\n }();\n }.call(this), function () {\n var t, n;\n e.extend({\n getDOMSelection: function () {\n var t;\n return t = window.getSelection(), t.rangeCount > 0 ? t : void 0;\n },\n getDOMRange: function () {\n var n, i;\n return (n = null != (i = e.getDOMSelection()) ? i.getRangeAt(0) : void 0) && !t(n) ? n : void 0;\n },\n setDOMRange: function (t) {\n var n;\n return n = window.getSelection(), n.removeAllRanges(), n.addRange(t), e.selectionChangeObserver.update();\n }\n }), t = function (t) {\n return n(t.startContainer) || n(t.endContainer);\n }, n = function (t) {\n return !Object.getPrototypeOf(t);\n };\n }.call(this), function () {\n var t;\n t = {\n \"application/x-trix-feature-detection\": \"test\"\n }, e.extend({\n dataTransferIsPlainText: function (t) {\n var e, n, i;\n return i = t.getData(\"text/plain\"), n = t.getData(\"text/html\"), i && n ? (e = new DOMParser().parseFromString(n, \"text/html\").body, e.textContent === i ? !e.querySelector(\"*\") : void 0) : null != i ? i.length : void 0;\n },\n dataTransferIsWritable: function (e) {\n var n, i;\n\n if (null != (null != e ? e.setData : void 0)) {\n for (n in t) if (i = t[n], !function () {\n try {\n return e.setData(n, i), e.getData(n) === i;\n } catch (t) {}\n }()) return;\n\n return !0;\n }\n },\n keyEventIsKeyboardCommand: function () {\n return /Mac|^iP/.test(navigator.platform) ? function (t) {\n return t.metaKey;\n } : function (t) {\n return t.ctrlKey;\n };\n }()\n });\n }.call(this), function () {}.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) i.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 i = {}.hasOwnProperty;\n\n t = e.arraysAreEqual, e.Hash = function (i) {\n function o(t) {\n null == t && (t = {}), this.values = s(t), o.__super__.constructor.apply(this, arguments);\n }\n\n var r, s, a, u, c;\n return n(o, i), o.fromCommonAttributesOfObjects = function (t) {\n var e, n, i, o, s, a;\n if (null == t && (t = []), !t.length) return new this();\n\n for (e = r(t[0]), i = e.getKeys(), a = t.slice(1), n = 0, o = a.length; o > n; n++) s = a[n], i = e.getKeysCommonToHash(r(s)), e = e.slice(i);\n\n return e;\n }, o.box = function (t) {\n return r(t);\n }, o.prototype.add = function (t, e) {\n return this.merge(u(t, e));\n }, o.prototype.remove = function (t) {\n return new e.Hash(s(this.values, t));\n }, o.prototype.get = function (t) {\n return this.values[t];\n }, o.prototype.has = function (t) {\n return t in this.values;\n }, o.prototype.merge = function (t) {\n return new e.Hash(a(this.values, c(t)));\n }, o.prototype.slice = function (t) {\n var n, i, o, r;\n\n for (r = {}, n = 0, o = t.length; o > n; n++) i = t[n], this.has(i) && (r[i] = this.values[i]);\n\n return new e.Hash(r);\n }, o.prototype.getKeys = function () {\n return Object.keys(this.values);\n }, o.prototype.getKeysCommonToHash = function (t) {\n var e, n, i, o, s;\n\n for (t = r(t), o = this.getKeys(), s = [], e = 0, i = o.length; i > e; e++) n = o[e], this.values[n] === t.values[n] && s.push(n);\n\n return s;\n }, o.prototype.isEqualTo = function (e) {\n return t(this.toArray(), r(e).toArray());\n }, o.prototype.isEmpty = function () {\n return 0 === this.getKeys().length;\n }, o.prototype.toArray = function () {\n var t, e, n;\n return (null != this.array ? this.array : this.array = function () {\n var i;\n e = [], i = this.values;\n\n for (t in i) n = i[t], e.push(t, n);\n\n return e;\n }.call(this)).slice(0);\n }, o.prototype.toObject = function () {\n return s(this.values);\n }, o.prototype.toJSON = function () {\n return this.toObject();\n }, o.prototype.contentsForInspection = function () {\n return {\n values: JSON.stringify(this.values)\n };\n }, u = function (t, e) {\n var n;\n return n = {}, n[t] = e, n;\n }, a = function (t, e) {\n var n, i, o;\n i = s(t);\n\n for (n in e) o = e[n], i[n] = o;\n\n return i;\n }, s = function (t, e) {\n var n, i, o, r, s;\n\n for (r = {}, s = Object.keys(t).sort(), n = 0, o = s.length; o > n; n++) i = s[n], i !== e && (r[i] = t[i]);\n\n return r;\n }, r = function (t) {\n return t instanceof e.Hash ? t : new e.Hash(t);\n }, c = function (t) {\n return t instanceof e.Hash ? t.values : t;\n }, o;\n }(e.Object);\n }.call(this), function () {\n e.ObjectGroup = function () {\n function t(t, e) {\n var n, i;\n this.objects = null != t ? t : [], i = e.depth, n = e.asTree, n && (this.depth = i, this.objects = this.constructor.groupObjects(this.objects, {\n asTree: n,\n depth: this.depth + 1\n }));\n }\n\n return t.groupObjects = function (t, e) {\n var n, i, o, r, s, a, u, c, l;\n\n for (null == t && (t = []), l = null != e ? e : {}, o = l.depth, n = l.asTree, n && null == o && (o = 0), c = [], s = 0, a = t.length; a > s; s++) {\n if (u = t[s], r) {\n if ((\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) && (\"function\" == typeof (i = r[r.length - 1]).canBeGroupedWith ? i.canBeGroupedWith(u, o) : void 0)) {\n r.push(u);\n continue;\n }\n\n c.push(new this(r, {\n depth: o,\n asTree: n\n })), r = null;\n }\n\n (\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) ? r = [u] : c.push(u);\n }\n\n return r && c.push(new this(r, {\n depth: o,\n asTree: n\n })), c;\n }, t.prototype.getObjects = function () {\n return this.objects;\n }, t.prototype.getDepth = function () {\n return this.depth;\n }, t.prototype.getCacheKey = function () {\n var t, e, n, i, o;\n\n for (e = [\"objectGroup\"], o = this.getObjects(), t = 0, n = o.length; n > t; t++) i = o[t], e.push(i.getCacheKey());\n\n return e.join(\"/\");\n }, t;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.ObjectMap = function (e) {\n function n(t) {\n var e, n, i, o, r;\n\n for (null == t && (t = []), this.objects = {}, i = 0, o = t.length; o > i; i++) r = t[i], n = JSON.stringify(r), null == (e = this.objects)[n] && (e[n] = r);\n }\n\n return t(n, e), n.prototype.find = function (t) {\n var e;\n return e = JSON.stringify(t), this.objects[e];\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n e.ElementStore = function () {\n function t(t) {\n this.reset(t);\n }\n\n var e;\n return t.prototype.add = function (t) {\n var n;\n return n = e(t), this.elements[n] = t;\n }, t.prototype.remove = function (t) {\n var n, i;\n return n = e(t), (i = this.elements[n]) ? (delete this.elements[n], i) : void 0;\n }, t.prototype.reset = function (t) {\n var e, n, i;\n\n for (null == t && (t = []), this.elements = {}, n = 0, i = t.length; i > n; n++) e = t[n], this.add(e);\n\n return t;\n }, e = function (t) {\n return t.dataset.trixStoreKey;\n }, t;\n }();\n }.call(this), function () {}.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.Operation = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n\n return t(n, e), n.prototype.isPerforming = function () {\n return this.performing === !0;\n }, n.prototype.hasPerformed = function () {\n return this.performed === !0;\n }, n.prototype.hasSucceeded = function () {\n return this.performed && this.succeeded;\n }, n.prototype.hasFailed = function () {\n return this.performed && !this.succeeded;\n }, n.prototype.getPromise = function () {\n return null != this.promise ? this.promise : this.promise = new Promise(function (t) {\n return function (e, n) {\n return t.performing = !0, t.perform(function (i, o) {\n return t.succeeded = i, t.performing = !1, t.performed = !0, t.succeeded ? e(o) : n(o);\n });\n };\n }(this));\n }, n.prototype.perform = function (t) {\n return t(!1);\n }, n.prototype.release = function () {\n var t;\n return null != (t = this.promise) && \"function\" == typeof t.cancel && t.cancel(), this.promise = null, this.performing = null, this.performed = null, this.succeeded = null;\n }, n.proxyMethod(\"getPromise().then\"), n.proxyMethod(\"getPromise().catch\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) a.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty;\n\n e.UTF16String = function (t) {\n function e(t, e) {\n this.ucs2String = t, this.codepoints = e, this.length = this.codepoints.length, this.ucs2Length = this.ucs2String.length;\n }\n\n return s(e, t), e.box = function (t) {\n return null == t && (t = \"\"), t instanceof this ? t : this.fromUCS2String(null != t ? t.toString() : void 0);\n }, e.fromUCS2String = function (t) {\n return new this(t, o(t));\n }, e.fromCodepoints = function (t) {\n return new this(r(t), t);\n }, e.prototype.offsetToUCS2Offset = function (t) {\n return r(this.codepoints.slice(0, Math.max(0, t))).length;\n }, e.prototype.offsetFromUCS2Offset = function (t) {\n return o(this.ucs2String.slice(0, Math.max(0, t))).length;\n }, e.prototype.slice = function () {\n var t;\n return this.constructor.fromCodepoints((t = this.codepoints).slice.apply(t, arguments));\n }, e.prototype.charAt = function (t) {\n return this.slice(t, t + 1);\n }, e.prototype.isEqualTo = function (t) {\n return this.constructor.box(t).ucs2String === this.ucs2String;\n }, e.prototype.toJSON = function () {\n return this.ucs2String;\n }, e.prototype.getCacheKey = function () {\n return this.ucs2String;\n }, e.prototype.toString = function () {\n return this.ucs2String;\n }, e;\n }(e.BasicObject), t = 1 === (\"function\" == typeof Array.from ? Array.from(\"\\ud83d\\udc7c\").length : void 0), n = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), i = \" \\ud83d\\udc7c\" === (\"function\" == typeof String.fromCodePoint ? String.fromCodePoint(32, 128124) : void 0), o = t && n ? function (t) {\n return Array.from(t).map(function (t) {\n return t.codePointAt(0);\n });\n } : function (t) {\n var e, n, i, o, r;\n\n for (o = [], e = 0, i = t.length; i > e;) r = t.charCodeAt(e++), r >= 55296 && 56319 >= r && i > e && (n = t.charCodeAt(e++), 56320 === (64512 & n) ? r = ((1023 & r) << 10) + (1023 & n) + 65536 : e--), o.push(r);\n\n return o;\n }, r = i ? function (t) {\n return String.fromCodePoint.apply(String, t);\n } : function (t) {\n var e, n, i;\n return e = function () {\n var e, o, r;\n\n for (r = [], e = 0, o = t.length; o > e; e++) i = t[e], n = \"\", i > 65535 && (i -= 65536, n += String.fromCharCode(i >>> 10 & 1023 | 55296), i = 56320 | 1023 & i), r.push(n + String.fromCharCode(i));\n\n return r;\n }(), e.join(\"\");\n };\n }.call(this), function () {}.call(this), function () {}.call(this), function () {\n e.config.lang = {\n attachFiles: \"Attach Files\",\n bold: \"Bold\",\n bullets: \"Bullets\",\n \"byte\": \"Byte\",\n bytes: \"Bytes\",\n captionPlaceholder: \"Add a caption\\u2026\",\n code: \"Code\",\n heading1: \"Heading\",\n indent: \"Increase Level\",\n italic: \"Italic\",\n link: \"Link\",\n numbers: \"Numbers\",\n outdent: \"Decrease Level\",\n quote: \"Quote\",\n redo: \"Redo\",\n remove: \"Remove\",\n strike: \"Strikethrough\",\n undo: \"Undo\",\n unlink: \"Unlink\",\n url: \"URL\",\n urlPlaceholder: \"Enter a URL\\u2026\",\n GB: \"GB\",\n KB: \"KB\",\n MB: \"MB\",\n PB: \"PB\",\n TB: \"TB\"\n };\n }.call(this), function () {\n e.config.css = {\n attachment: \"attachment\",\n attachmentCaption: \"attachment__caption\",\n attachmentCaptionEditor: \"attachment__caption-editor\",\n attachmentMetadata: \"attachment__metadata\",\n attachmentMetadataContainer: \"attachment__metadata-container\",\n attachmentName: \"attachment__name\",\n attachmentProgress: \"attachment__progress\",\n attachmentSize: \"attachment__size\",\n attachmentToolbar: \"attachment__toolbar\",\n attachmentGallery: \"attachment-gallery\"\n };\n }.call(this), function () {\n var t;\n e.config.blockAttributes = t = {\n \"default\": {\n tagName: \"div\",\n parse: !1\n },\n quote: {\n tagName: \"blockquote\",\n nestable: !0\n },\n heading1: {\n tagName: \"h1\",\n terminal: !0,\n breakOnReturn: !0,\n group: !1\n },\n code: {\n tagName: \"pre\",\n terminal: !0,\n text: {\n plaintext: !0\n }\n },\n bulletList: {\n tagName: \"ul\",\n parse: !1\n },\n bullet: {\n tagName: \"li\",\n listAttribute: \"bulletList\",\n group: !1,\n nestable: !0,\n test: function (n) {\n return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n }\n },\n numberList: {\n tagName: \"ol\",\n parse: !1\n },\n number: {\n tagName: \"li\",\n listAttribute: \"numberList\",\n group: !1,\n nestable: !0,\n test: function (n) {\n return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n }\n },\n attachmentGallery: {\n tagName: \"div\",\n exclusive: !0,\n terminal: !0,\n parse: !1,\n group: !1\n }\n };\n }.call(this), function () {\n var t, n;\n t = e.config.lang, n = [t.bytes, t.KB, t.MB, t.GB, t.TB, t.PB], e.config.fileSize = {\n prefix: \"IEC\",\n precision: 2,\n formatter: function (e) {\n var i, o, r, s, a;\n\n switch (e) {\n case 0:\n return \"0 \" + t.bytes;\n\n case 1:\n return \"1 \" + t.byte;\n\n default:\n return i = function () {\n switch (this.prefix) {\n case \"SI\":\n return 1e3;\n\n case \"IEC\":\n return 1024;\n }\n }.call(this), o = Math.floor(Math.log(e) / Math.log(i)), r = e / Math.pow(i, o), s = r.toFixed(this.precision), a = s.replace(/0*$/, \"\").replace(/\\.$/, \"\"), a + \" \" + n[o];\n }\n }\n };\n }.call(this), function () {\n e.config.textAttributes = {\n bold: {\n tagName: \"strong\",\n inheritable: !0,\n parser: function (t) {\n var e;\n return e = window.getComputedStyle(t), \"bold\" === e.fontWeight || e.fontWeight >= 600;\n }\n },\n italic: {\n tagName: \"em\",\n inheritable: !0,\n parser: function (t) {\n var e;\n return e = window.getComputedStyle(t), \"italic\" === e.fontStyle;\n }\n },\n href: {\n groupTagName: \"a\",\n parser: function (t) {\n var n, i, o;\n return n = e.AttachmentView.attachmentSelector, o = \"a:not(\" + n + \")\", (i = e.findClosestElementFromNode(t, {\n matchingSelector: o\n })) ? i.getAttribute(\"href\") : void 0;\n }\n },\n strike: {\n tagName: \"del\",\n inheritable: !0\n },\n frozen: {\n style: {\n backgroundColor: \"highlight\"\n }\n }\n };\n }.call(this), function () {\n var t, n, i, o, r;\n r = \"[data-trix-serialize=false]\", o = [\"contenteditable\", \"data-trix-id\", \"data-trix-store-key\", \"data-trix-mutable\", \"data-trix-placeholder\", \"tabindex\"], n = \"data-trix-serialized-attributes\", i = \"[\" + n + \"]\", t = new RegExp(\"\", \"g\"), e.extend({\n serializers: {\n \"application/json\": function (t) {\n var n;\n if (t instanceof e.Document) n = t;else {\n if (!(t instanceof HTMLElement)) throw new Error(\"unserializable object\");\n n = e.Document.fromHTML(t.innerHTML);\n }\n return n.toSerializableDocument().toJSONString();\n },\n \"text/html\": function (s) {\n var a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n if (s instanceof e.Document) l = e.DocumentView.render(s);else {\n if (!(s instanceof HTMLElement)) throw new Error(\"unserializable object\");\n l = s.cloneNode(!0);\n }\n\n for (A = l.querySelectorAll(r), h = 0, g = A.length; g > h; h++) c = A[h], e.removeNode(c);\n\n for (p = 0, m = o.length; m > p; p++) for (a = o[p], C = l.querySelectorAll(\"[\" + a + \"]\"), d = 0, v = C.length; v > d; d++) c = C[d], c.removeAttribute(a);\n\n for (x = l.querySelectorAll(i), f = 0, y = x.length; y > f; f++) {\n c = x[f];\n\n try {\n u = JSON.parse(c.getAttribute(n)), c.removeAttribute(n);\n\n for (b in u) w = u[b], c.setAttribute(b, w);\n } catch (E) {}\n }\n\n return l.innerHTML.replace(t, \"\");\n }\n },\n deserializers: {\n \"application/json\": function (t) {\n return e.Document.fromJSONString(t);\n },\n \"text/html\": function (t) {\n return e.Document.fromHTML(t);\n }\n },\n serializeToContentType: function (t, n) {\n var i;\n if (i = e.serializers[n]) return i(t);\n throw new Error(\"unknown content type: \" + n);\n },\n deserializeFromContentType: function (t, n) {\n var i;\n if (i = e.deserializers[n]) return i(t);\n throw new Error(\"unknown content type: \" + n);\n }\n });\n }.call(this), function () {\n var t;\n t = e.config.lang, e.config.toolbar = {\n getDefaultHTML: function () {\n return '
\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n\\n \\n\\n \\n \\n \\n \\n
\\n\\n
\\n
\\n \\n
\\n
';\n }\n };\n }.call(this), function () {\n e.config.undoInterval = 5e3;\n }.call(this), function () {\n e.config.attachments = {\n preview: {\n presentation: \"gallery\",\n caption: {\n name: !0,\n size: !0\n }\n },\n file: {\n caption: {\n size: !0\n }\n }\n };\n }.call(this), function () {\n e.config.keyNames = {\n 8: \"backspace\",\n 9: \"tab\",\n 13: \"return\",\n 27: \"escape\",\n 37: \"left\",\n 39: \"right\",\n 46: \"delete\",\n 68: \"d\",\n 72: \"h\",\n 79: \"o\"\n };\n }.call(this), function () {\n e.config.input = {\n level2Enabled: !0,\n getLevel: function () {\n return this.level2Enabled && e.browser.supportsInputEvents ? 2 : 0;\n },\n pickFiles: function (t) {\n var n;\n return n = e.makeElement(\"input\", {\n type: \"file\",\n multiple: !0,\n hidden: !0,\n id: this.fileInputId\n }), n.addEventListener(\"change\", function () {\n return t(n.files), e.removeNode(n);\n }), e.removeNode(document.getElementById(this.fileInputId)), document.body.appendChild(n), n.click();\n },\n fileInputId: \"trix-file-input-\" + Date.now().toString(16)\n };\n }.call(this), function () {}.call(this), function () {\n e.registerElement(\"trix-toolbar\", {\n defaultCSS: \"%t {\\n display: block;\\n}\\n\\n%t {\\n white-space: nowrap;\\n}\\n\\n%t [data-trix-dialog] {\\n display: none;\\n}\\n\\n%t [data-trix-dialog][data-trix-active] {\\n display: block;\\n}\\n\\n%t [data-trix-dialog] [data-trix-validate]:invalid {\\n background-color: #ffdddd;\\n}\",\n initialize: function () {\n return \"\" === this.innerHTML ? this.innerHTML = e.config.toolbar.getDefaultHTML() : void 0;\n }\n });\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty,\n i = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n e.ObjectView = function (n) {\n function o(t, e) {\n this.object = t, this.options = null != e ? e : {}, this.childViews = [], this.rootView = this;\n }\n\n return t(o, n), o.prototype.getNodes = function () {\n var t, e, n, i, o;\n\n for (null == this.nodes && (this.nodes = this.createNodes()), i = this.nodes, o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.cloneNode(!0));\n\n return o;\n }, o.prototype.invalidate = function () {\n var t;\n return this.nodes = null, this.childViews = [], null != (t = this.parentView) ? t.invalidate() : void 0;\n }, o.prototype.invalidateViewForObject = function (t) {\n var e;\n return null != (e = this.findViewForObject(t)) ? e.invalidate() : void 0;\n }, o.prototype.findOrCreateCachedChildView = function (t, e) {\n var n;\n return (n = this.getCachedViewForObject(e)) ? this.recordChildView(n) : (n = this.createChildView.apply(this, arguments), this.cacheViewForObject(n, e)), n;\n }, o.prototype.createChildView = function (t, n, i) {\n var o;\n return null == i && (i = {}), n instanceof e.ObjectGroup && (i.viewClass = t, t = e.ObjectGroupView), o = new t(n, i), this.recordChildView(o);\n }, o.prototype.recordChildView = function (t) {\n return t.parentView = this, t.rootView = this.rootView, this.childViews.push(t), t;\n }, o.prototype.getAllChildViews = function () {\n var t, e, n, i, o;\n\n for (o = [], i = this.childViews, e = 0, n = i.length; n > e; e++) t = i[e], o.push(t), o = o.concat(t.getAllChildViews());\n\n return o;\n }, o.prototype.findElement = function () {\n return this.findElementForObject(this.object);\n }, o.prototype.findElementForObject = function (t) {\n var e;\n return (e = null != t ? t.id : void 0) ? this.rootView.element.querySelector(\"[data-trix-id='\" + e + \"']\") : void 0;\n }, o.prototype.findViewForObject = function (t) {\n var e, n, i, o;\n\n for (i = this.getAllChildViews(), e = 0, n = i.length; n > e; e++) if (o = i[e], o.object === t) return o;\n }, o.prototype.getViewCache = function () {\n return this.rootView !== this ? this.rootView.getViewCache() : this.isViewCachingEnabled() ? null != this.viewCache ? this.viewCache : this.viewCache = {} : void 0;\n }, o.prototype.isViewCachingEnabled = function () {\n return this.shouldCacheViews !== !1;\n }, o.prototype.enableViewCaching = function () {\n return this.shouldCacheViews = !0;\n }, o.prototype.disableViewCaching = function () {\n return this.shouldCacheViews = !1;\n }, o.prototype.getCachedViewForObject = function (t) {\n var e;\n return null != (e = this.getViewCache()) ? e[t.getCacheKey()] : void 0;\n }, o.prototype.cacheViewForObject = function (t, e) {\n var n;\n return null != (n = this.getViewCache()) ? n[e.getCacheKey()] = t : void 0;\n }, o.prototype.garbageCollectCachedViews = function () {\n var t, e, n, o, r, s;\n\n if (t = this.getViewCache()) {\n s = this.getAllChildViews().concat(this), n = function () {\n var t, e, n;\n\n for (n = [], t = 0, e = s.length; e > t; t++) r = s[t], n.push(r.object.getCacheKey());\n\n return n;\n }(), o = [];\n\n for (e in t) i.call(n, e) < 0 && o.push(delete t[e]);\n\n return o;\n }\n }, o;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.ObjectGroupView = function (e) {\n function n() {\n n.__super__.constructor.apply(this, arguments), this.objectGroup = this.object, this.viewClass = this.options.viewClass, delete this.options.viewClass;\n }\n\n return t(n, e), n.prototype.getChildViews = function () {\n var t, e, n, i;\n if (!this.childViews.length) for (i = this.objectGroup.getObjects(), t = 0, e = i.length; e > t; t++) n = i[t], this.findOrCreateCachedChildView(this.viewClass, n, this.options);\n return this.childViews;\n }, n.prototype.createNodes = function () {\n var t, e, n, i, o, r, s, a, u;\n\n for (t = this.createContainerElement(), s = this.getChildViews(), e = 0, i = s.length; i > e; e++) for (u = s[e], a = u.getNodes(), n = 0, o = a.length; o > n; n++) r = a[n], t.appendChild(r);\n\n return [t];\n }, n.prototype.createContainerElement = function (t) {\n return null == t && (t = this.objectGroup.getDepth()), this.getChildViews()[0].createContainerElement(t);\n }, n;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.Controller = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n\n return t(n, e), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n u = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) c.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n c = {}.hasOwnProperty,\n l = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n t = e.findClosestElementFromNode, i = e.nodeIsEmptyTextNode, n = e.nodeIsBlockStartComment, o = e.normalizeSpaces, r = e.summarizeStringChange, s = e.tagName, e.MutationObserver = function (e) {\n function c(t) {\n this.element = t, this.didMutate = a(this.didMutate, this), this.observer = new window.MutationObserver(this.didMutate), this.start();\n }\n\n var h, p, d, f;\n return u(c, e), p = \"data-trix-mutable\", d = \"[\" + p + \"]\", f = {\n attributes: !0,\n childList: !0,\n characterData: !0,\n characterDataOldValue: !0,\n subtree: !0\n }, c.prototype.start = function () {\n return this.reset(), this.observer.observe(this.element, f);\n }, c.prototype.stop = function () {\n return this.observer.disconnect();\n }, c.prototype.didMutate = function (t) {\n var e, n;\n return (e = this.mutations).push.apply(e, this.findSignificantMutations(t)), this.mutations.length ? (null != (n = this.delegate) && \"function\" == typeof n.elementDidMutate && n.elementDidMutate(this.getMutationSummary()), this.reset()) : void 0;\n }, c.prototype.reset = function () {\n return this.mutations = [];\n }, c.prototype.findSignificantMutations = function (t) {\n var e, n, i, o;\n\n for (o = [], e = 0, n = t.length; n > e; e++) i = t[e], this.mutationIsSignificant(i) && o.push(i);\n\n return o;\n }, c.prototype.mutationIsSignificant = function (t) {\n var e, n, i, o;\n if (this.nodeIsMutable(t.target)) return !1;\n\n for (o = this.nodesModifiedByMutation(t), e = 0, n = o.length; n > e; e++) if (i = o[e], this.nodeIsSignificant(i)) return !0;\n\n return !1;\n }, c.prototype.nodeIsSignificant = function (t) {\n return t !== this.element && !this.nodeIsMutable(t) && !i(t);\n }, c.prototype.nodeIsMutable = function (e) {\n return t(e, {\n matchingSelector: d\n });\n }, c.prototype.nodesModifiedByMutation = function (t) {\n var e;\n\n switch (e = [], t.type) {\n case \"attributes\":\n t.attributeName !== p && e.push(t.target);\n break;\n\n case \"characterData\":\n e.push(t.target.parentNode), e.push(t.target);\n break;\n\n case \"childList\":\n e.push.apply(e, t.addedNodes), e.push.apply(e, t.removedNodes);\n }\n\n return e;\n }, c.prototype.getMutationSummary = function () {\n return this.getTextMutationSummary();\n }, c.prototype.getTextMutationSummary = function () {\n var t, e, n, i, o, r, s, a, u, c, h;\n\n for (a = this.getTextChangesFromCharacterData(), n = a.additions, o = a.deletions, h = this.getTextChangesFromChildList(), u = h.additions, r = 0, s = u.length; s > r; r++) e = u[r], l.call(n, e) < 0 && n.push(e);\n\n return o.push.apply(o, h.deletions), c = {}, (t = n.join(\"\")) && (c.textAdded = t), (i = o.join(\"\")) && (c.textDeleted = i), c;\n }, c.prototype.getMutationsByType = function (t) {\n var e, n, i, o, r;\n\n for (o = this.mutations, r = [], e = 0, n = o.length; n > e; e++) i = o[e], i.type === t && r.push(i);\n\n return r;\n }, c.prototype.getTextChangesFromChildList = function () {\n var t, e, i, r, s, a, u, c, l, p, d;\n\n for (t = [], u = [], a = this.getMutationsByType(\"childList\"), e = 0, r = a.length; r > e; e++) s = a[e], t.push.apply(t, s.addedNodes), u.push.apply(u, s.removedNodes);\n\n return c = 0 === t.length && 1 === u.length && n(u[0]), c ? (p = [], d = [\"\\n\"]) : (p = h(t), d = h(u)), {\n additions: function () {\n var t, e, n;\n\n for (n = [], i = t = 0, e = p.length; e > t; i = ++t) l = p[i], l !== d[i] && n.push(o(l));\n\n return n;\n }(),\n deletions: function () {\n var t, e, n;\n\n for (n = [], i = t = 0, e = d.length; e > t; i = ++t) l = d[i], l !== p[i] && n.push(o(l));\n\n return n;\n }()\n };\n }, c.prototype.getTextChangesFromCharacterData = function () {\n var t, e, n, i, s, a, u, c;\n return e = this.getMutationsByType(\"characterData\"), e.length && (c = e[0], n = e[e.length - 1], s = o(c.oldValue), i = o(n.target.data), a = r(s, i), t = a.added, u = a.removed), {\n additions: t ? [t] : [],\n deletions: u ? [u] : []\n };\n }, h = function (t) {\n var e, n, i, o;\n\n for (null == t && (t = []), o = [], e = 0, n = t.length; n > e; e++) switch (i = t[e], i.nodeType) {\n case Node.TEXT_NODE:\n o.push(i.data);\n break;\n\n case Node.ELEMENT_NODE:\n \"br\" === s(i) ? o.push(\"\\n\") : o.push.apply(o, h(i.childNodes));\n }\n\n return o;\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.FileVerificationOperation = function (e) {\n function n(t) {\n this.file = t;\n }\n\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new FileReader(), e.onerror = function () {\n return t(!1);\n }, e.onload = function (n) {\n return function () {\n e.onerror = null;\n\n try {\n e.abort();\n } catch (i) {}\n\n return t(!0, n.file);\n };\n }(this), e.readAsArrayBuffer(this.file);\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t,\n n,\n i = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) o.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n t = e.handleEvent, n = e.innerElementIsActive, e.InputController = function (o) {\n function r(n) {\n var i;\n this.element = n, this.mutationObserver = new e.MutationObserver(this.element), this.mutationObserver.delegate = this;\n\n for (i in this.events) t(i, {\n onElement: this.element,\n withCallback: this.handlerFor(i)\n });\n }\n\n return i(r, o), r.prototype.events = {}, r.prototype.elementDidMutate = function () {}, r.prototype.editorWillSyncDocumentView = function () {\n return this.mutationObserver.stop();\n }, r.prototype.editorDidSyncDocumentView = function () {\n return this.mutationObserver.start();\n }, r.prototype.requestRender = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestRender ? t.inputControllerDidRequestRender() : void 0;\n }, r.prototype.requestReparse = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestReparse && t.inputControllerDidRequestReparse(), this.requestRender();\n }, r.prototype.attachFiles = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(new e.FileVerificationOperation(n));\n\n return r;\n }(), Promise.all(i).then(function (t) {\n return function (e) {\n return t.handleInput(function () {\n var t, n;\n return null != (t = this.delegate) && t.inputControllerWillAttachFiles(), null != (n = this.responder) && n.insertFiles(e), this.requestRender();\n });\n };\n }(this));\n }, r.prototype.handlerFor = function (t) {\n return function (e) {\n return function (i) {\n return i.defaultPrevented ? void 0 : e.handleInput(function () {\n return n(this.element) ? void 0 : (this.eventName = t, this.events[t].call(this, i));\n });\n };\n }(this);\n }, r.prototype.handleInput = function (t) {\n var e, n;\n\n try {\n return null != (e = this.delegate) && e.inputControllerWillHandleInput(), t.call(this);\n } finally {\n null != (n = this.delegate) && n.inputControllerDidHandleInput();\n }\n }, r;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p,\n d,\n f = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) g.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n g = {}.hasOwnProperty,\n m = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n c = e.makeElement, l = e.objectsAreEqual, d = e.tagName, n = e.browser, a = e.keyEventIsKeyboardCommand, o = e.dataTransferIsWritable, i = e.dataTransferIsPlainText, u = e.config.keyNames, e.Level0InputController = function (n) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.resetInputSummary();\n }\n\n var d;\n return f(s, n), d = 0, s.prototype.setInputSummary = function (t) {\n var e, n;\n null == t && (t = {}), this.inputSummary.eventName = this.eventName;\n\n for (e in t) n = t[e], this.inputSummary[e] = n;\n\n return this.inputSummary;\n }, s.prototype.resetInputSummary = function () {\n return this.inputSummary = {};\n }, s.prototype.reset = function () {\n return this.resetInputSummary(), e.selectionChangeObserver.reset();\n }, s.prototype.elementDidMutate = function (t) {\n var e;\n return this.isComposing() ? null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidAllowUnhandledInput ? e.inputControllerDidAllowUnhandledInput() : void 0 : this.handleInput(function () {\n return this.mutationIsSignificant(t) && (this.mutationIsExpected(t) ? this.requestRender() : this.requestReparse()), this.reset();\n });\n }, s.prototype.mutationIsExpected = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return a = t.textAdded, u = t.textDeleted, this.inputSummary.preferDocument ? !0 : (e = null != a ? a === this.inputSummary.textAdded : !this.inputSummary.textAdded, n = null != u ? this.inputSummary.didDelete : !this.inputSummary.didDelete, c = (\"\\n\" === a || \" \\n\" === a) && !e, l = \"\\n\" === u && !n, s = c && !l || l && !c, s && (o = this.getSelectedRange()) && (i = c ? a.replace(/\\n$/, \"\").length || -1 : (null != a ? a.length : void 0) || 1, null != (r = this.responder) ? r.positionIsBlockBreak(o[1] + i) : void 0) ? !0 : e && n);\n }, s.prototype.mutationIsSignificant = function (t) {\n var e, n, i;\n return i = Object.keys(t).length > 0, e = \"\" === (null != (n = this.compositionInput) ? n.getEndData() : void 0), i || !e;\n }, s.prototype.events = {\n keydown: function (t) {\n var n, i, o, r, s, c, l, h, p;\n\n if (this.isComposing() || this.resetInputSummary(), this.inputSummary.didInput = !0, r = u[t.keyCode]) {\n for (i = this.keys, h = [\"ctrl\", \"alt\", \"shift\", \"meta\"], o = 0, c = h.length; c > o; o++) l = h[o], t[l + \"Key\"] && (\"ctrl\" === l && (l = \"control\"), i = null != i ? i[l] : void 0);\n\n null != (null != i ? i[r] : void 0) && (this.setInputSummary({\n keyName: r\n }), e.selectionChangeObserver.reset(), i[r].call(this, t));\n }\n\n return a(t) && (n = String.fromCharCode(t.keyCode).toLowerCase()) && (s = function () {\n var e, n, i, o;\n\n for (i = [\"alt\", \"shift\"], o = [], e = 0, n = i.length; n > e; e++) l = i[e], t[l + \"Key\"] && o.push(l);\n\n return o;\n }(), s.push(n), null != (p = this.delegate) ? p.inputControllerDidReceiveKeyboardCommand(s) : void 0) ? t.preventDefault() : void 0;\n },\n keypress: function (t) {\n var e, n, i;\n if (null == this.inputSummary.eventName && !t.metaKey && (!t.ctrlKey || t.altKey)) return (i = p(t)) ? (null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(i), this.setInputSummary({\n textAdded: i,\n didDelete: this.selectionIsExpanded()\n })) : void 0;\n },\n textInput: function (t) {\n var e, n, i, o;\n return e = t.data, o = this.inputSummary.textAdded, o && o !== e && o.toUpperCase() === e ? (n = this.getSelectedRange(), this.setSelectedRange([n[0], n[1] + o.length]), null != (i = this.responder) && i.insertString(e), this.setInputSummary({\n textAdded: e\n }), this.setSelectedRange(n)) : void 0;\n },\n dragenter: function (t) {\n return t.preventDefault();\n },\n dragstart: function (t) {\n var e, n;\n return n = t.target, this.serializeSelectionToDataTransfer(t.dataTransfer), this.draggedRange = this.getSelectedRange(), null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidStartDrag ? e.inputControllerDidStartDrag() : void 0;\n },\n dragover: function (t) {\n var e, n;\n return !this.draggedRange && !this.canAcceptDataTransfer(t.dataTransfer) || (t.preventDefault(), e = {\n x: t.clientX,\n y: t.clientY\n }, l(e, this.draggingPoint)) ? void 0 : (this.draggingPoint = e, null != (n = this.delegate) && \"function\" == typeof n.inputControllerDidReceiveDragOverPoint ? n.inputControllerDidReceiveDragOverPoint(this.draggingPoint) : void 0);\n },\n dragend: function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidCancelDrag && t.inputControllerDidCancelDrag(), this.draggedRange = null, this.draggingPoint = null;\n },\n drop: function (t) {\n var n, i, o, r, s, a, u, c, l;\n return t.preventDefault(), o = null != (s = t.dataTransfer) ? s.files : void 0, r = {\n x: t.clientX,\n y: t.clientY\n }, null != (a = this.responder) && a.setLocationRangeFromPointRange(r), (null != o ? o.length : void 0) ? this.attachFiles(o) : this.draggedRange ? (null != (u = this.delegate) && u.inputControllerWillMoveText(), null != (c = this.responder) && c.moveTextFromRange(this.draggedRange), this.draggedRange = null, this.requestRender()) : (i = t.dataTransfer.getData(\"application/x-trix-document\")) && (n = e.Document.fromJSONString(i), null != (l = this.responder) && l.insertDocument(n), this.requestRender()), this.draggedRange = null, this.draggingPoint = null;\n },\n cut: function (t) {\n var e, n;\n return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && (this.serializeSelectionToDataTransfer(t.clipboardData) && t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillCutText(), this.deleteInDirection(\"backward\"), t.defaultPrevented) ? this.requestRender() : void 0;\n },\n copy: function (t) {\n var e;\n return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && this.serializeSelectionToDataTransfer(t.clipboardData) ? t.preventDefault() : void 0;\n },\n paste: function (t) {\n var n, o, s, a, u, c, l, p, f, g, v, y, b, A, C, x, w, E, S, R, k, D;\n return n = null != (p = t.clipboardData) ? p : t.testClipboardData, l = {\n clipboard: n\n }, null == n || h(t) ? void this.getPastedHTMLUsingHiddenElement(function (t) {\n return function (e) {\n var n, i, o;\n return l.type = \"text/html\", l.html = e, null != (n = t.delegate) && n.inputControllerWillPaste(l), null != (i = t.responder) && i.insertHTML(l.html), t.requestRender(), null != (o = t.delegate) ? o.inputControllerDidPaste(l) : void 0;\n };\n }(this)) : ((a = n.getData(\"URL\")) ? (l.type = \"URL\", l.href = a, l.string = (c = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(c).trim() : a, null != (f = this.delegate) && f.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: l.string,\n didDelete: this.selectionIsExpanded()\n }), null != (C = this.responder) && C.insertText(e.Text.textForStringWithAttributes(l.string, {\n href: l.href\n })), this.requestRender(), null != (x = this.delegate) && x.inputControllerDidPaste(l)) : i(n) ? (l.type = \"text/plain\", l.string = n.getData(\"text/plain\"), null != (w = this.delegate) && w.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: l.string,\n didDelete: this.selectionIsExpanded()\n }), null != (E = this.responder) && E.insertString(l.string), this.requestRender(), null != (S = this.delegate) && S.inputControllerDidPaste(l)) : (u = n.getData(\"text/html\")) ? (l.type = \"text/html\", l.html = u, null != (R = this.delegate) && R.inputControllerWillPaste(l), null != (k = this.responder) && k.insertHTML(l.html), this.requestRender(), null != (D = this.delegate) && D.inputControllerDidPaste(l)) : m.call(n.types, \"Files\") >= 0 && (s = null != (g = n.items) && null != (v = g[0]) && \"function\" == typeof v.getAsFile ? v.getAsFile() : void 0) && (!s.name && (o = r(s)) && (s.name = \"pasted-file-\" + ++d + \".\" + o), l.type = \"File\", l.file = s, null != (y = this.delegate) && y.inputControllerWillAttachFiles(), null != (b = this.responder) && b.insertFile(l.file), this.requestRender(), null != (A = this.delegate) && A.inputControllerDidPaste(l)), t.preventDefault());\n },\n compositionstart: function (t) {\n return this.getCompositionInput().start(t.data);\n },\n compositionupdate: function (t) {\n return this.getCompositionInput().update(t.data);\n },\n compositionend: function (t) {\n return this.getCompositionInput().end(t.data);\n },\n beforeinput: function () {\n return this.inputSummary.didInput = !0;\n },\n input: function (t) {\n return this.inputSummary.didInput = !0, t.stopPropagation();\n }\n }, s.prototype.keys = {\n backspace: function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n \"delete\": function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n \"return\": function () {\n var t, e;\n return this.setInputSummary({\n preferDocument: !0\n }), null != (t = this.delegate) && t.inputControllerWillPerformTyping(), null != (e = this.responder) ? e.insertLineBreak() : void 0;\n },\n tab: function (t) {\n var e, n;\n return (null != (e = this.responder) ? e.canIncreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.increaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n },\n left: function (t) {\n var e;\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n },\n right: function (t) {\n var e;\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n },\n control: {\n d: function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n h: function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n o: function (t) {\n var e, n;\n return t.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\", {\n updatePosition: !1\n }), this.requestRender();\n }\n },\n shift: {\n \"return\": function (t) {\n var e, n;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\"), this.requestRender(), t.preventDefault();\n },\n tab: function (t) {\n var e, n;\n return (null != (e = this.responder) ? e.canDecreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.decreaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n },\n left: function (t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"backward\")) : void 0;\n },\n right: function (t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"forward\")) : void 0;\n }\n },\n alt: {\n backspace: function () {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n },\n meta: {\n backspace: function () {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n }\n }, s.prototype.getCompositionInput = function () {\n return this.isComposing() ? this.compositionInput : this.compositionInput = new t(this);\n }, s.prototype.isComposing = function () {\n return null != this.compositionInput && !this.compositionInput.isEnded();\n }, s.prototype.deleteInDirection = function (t, e) {\n var n;\n return (null != (n = this.responder) ? n.deleteInDirection(t) : void 0) !== !1 ? this.setInputSummary({\n didDelete: !0\n }) : e ? (e.preventDefault(), this.requestRender()) : void 0;\n }, s.prototype.serializeSelectionToDataTransfer = function (t) {\n var n, i;\n if (o(t)) return n = null != (i = this.responder) ? i.getSelectedDocument().toSerializableDocument() : void 0, t.setData(\"application/x-trix-document\", JSON.stringify(n)), t.setData(\"text/html\", e.DocumentView.render(n).innerHTML), t.setData(\"text/plain\", n.toString().replace(/\\n$/, \"\")), !0;\n }, s.prototype.canAcceptDataTransfer = function (t) {\n var e, n, i, o, r, s;\n\n for (s = {}, o = null != (i = null != t ? t.types : void 0) ? i : [], e = 0, n = o.length; n > e; e++) r = o[e], s[r] = !0;\n\n return s.Files || s[\"application/x-trix-document\"] || s[\"text/html\"] || s[\"text/plain\"];\n }, s.prototype.getPastedHTMLUsingHiddenElement = function (t) {\n var n, i, o;\n return i = this.getSelectedRange(), o = {\n position: \"absolute\",\n left: window.pageXOffset + \"px\",\n top: window.pageYOffset + \"px\",\n opacity: 0\n }, n = c({\n style: o,\n tagName: \"div\",\n editable: !0\n }), document.body.appendChild(n), n.focus(), requestAnimationFrame(function (o) {\n return function () {\n var r;\n return r = n.innerHTML, e.removeNode(n), o.setSelectedRange(i), t(r);\n };\n }(this));\n }, s.proxyMethod(\"responder?.getSelectedRange\"), s.proxyMethod(\"responder?.setSelectedRange\"), s.proxyMethod(\"responder?.expandSelectionInDirection\"), s.proxyMethod(\"responder?.selectionIsInCursorTarget\"), s.proxyMethod(\"responder?.selectionIsExpanded\"), s;\n }(e.InputController), r = function (t) {\n var e, n;\n return null != (e = t.type) && null != (n = e.match(/\\/(\\w+)$/)) ? n[1] : void 0;\n }, s = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), p = function (t) {\n var n;\n return t.key && s && t.key.codePointAt(0) === t.keyCode ? t.key : (null === t.which ? n = t.keyCode : 0 !== t.which && 0 !== t.charCode && (n = t.charCode), null != n && \"escape\" !== u[n] ? e.UTF16String.fromCodepoints([n]).toString() : void 0);\n }, h = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n\n if (u = t.clipboardData) {\n if (m.call(u.types, \"text/html\") >= 0) {\n for (c = u.types, i = 0, s = c.length; s > i; i++) if (l = c[i], e = /^CorePasteboardFlavorType/.test(l), n = /^dyn\\./.test(l) && u.getData(l), a = e || n) return !0;\n\n return !1;\n }\n\n return o = m.call(u.types, \"com.apple.webarchive\") >= 0, r = m.call(u.types, \"com.apple.flat-rtfd\") >= 0, o || r;\n }\n }, t = function (t) {\n function e(t) {\n var e;\n this.inputController = t, e = this.inputController, this.responder = e.responder, this.delegate = e.delegate, this.inputSummary = e.inputSummary, this.data = {};\n }\n\n return f(e, t), e.prototype.start = function (t) {\n var e, n;\n return this.data.start = t, this.isSignificant() ? (\"keypress\" === this.inputSummary.eventName && this.inputSummary.textAdded && null != (e = this.responder) && e.deleteInDirection(\"left\"), this.selectionIsExpanded() || (this.insertPlaceholder(), this.requestRender()), this.range = null != (n = this.responder) ? n.getSelectedRange() : void 0) : void 0;\n }, e.prototype.update = function (t) {\n var e;\n return this.data.update = t, this.isSignificant() && (e = this.selectPlaceholder()) ? (this.forgetPlaceholder(), this.range = e) : void 0;\n }, e.prototype.end = function (t) {\n var e, n, i, o;\n return this.data.end = t, this.isSignificant() ? (this.forgetPlaceholder(), this.canApplyToDocument() ? (this.setInputSummary({\n preferDocument: !0,\n didInput: !1\n }), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.setSelectedRange(this.range), null != (i = this.responder) && i.insertString(this.data.end), null != (o = this.responder) ? o.setSelectedRange(this.range[0] + this.data.end.length) : void 0) : null != this.data.start || null != this.data.update ? (this.requestReparse(), this.inputController.reset()) : void 0) : this.inputController.reset();\n }, e.prototype.getEndData = function () {\n return this.data.end;\n }, e.prototype.isEnded = function () {\n return null != this.getEndData();\n }, e.prototype.isSignificant = function () {\n return n.composesExistingText ? this.inputSummary.didInput : !0;\n }, e.prototype.canApplyToDocument = function () {\n var t, e;\n return 0 === (null != (t = this.data.start) ? t.length : void 0) && (null != (e = this.data.end) ? e.length : void 0) > 0 && null != this.range;\n }, e.proxyMethod(\"inputController.setInputSummary\"), e.proxyMethod(\"inputController.requestRender\"), e.proxyMethod(\"inputController.requestReparse\"), e.proxyMethod(\"responder?.selectionIsExpanded\"), e.proxyMethod(\"responder?.insertPlaceholder\"), e.proxyMethod(\"responder?.selectPlaceholder\"), e.proxyMethod(\"responder?.forgetPlaceholder\"), e;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n t = e.dataTransferIsPlainText, n = e.keyEventIsKeyboardCommand, i = e.objectsAreEqual, e.Level2InputController = function (s) {\n function u() {\n return this.render = o(this.render, this), u.__super__.constructor.apply(this, arguments);\n }\n\n var c, l, h, p, d, f;\n return r(u, s), u.prototype.elementDidMutate = function () {\n var t;\n return this.scheduledRender ? this.composing && null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidAllowUnhandledInput ? t.inputControllerDidAllowUnhandledInput() : void 0 : this.reparse();\n }, u.prototype.scheduleRender = function () {\n return null != this.scheduledRender ? this.scheduledRender : this.scheduledRender = requestAnimationFrame(this.render);\n }, u.prototype.render = function () {\n var t;\n return cancelAnimationFrame(this.scheduledRender), this.scheduledRender = null, this.composing || null != (t = this.delegate) && t.render(), \"function\" == typeof this.afterRender && this.afterRender(), this.afterRender = null;\n }, u.prototype.reparse = function () {\n var t;\n return null != (t = this.delegate) ? t.reparse() : void 0;\n }, u.prototype.events = {\n keydown: function (t) {\n var e, i, o, r;\n\n if (n(t)) {\n if (e = l(t), null != (r = this.delegate) ? r.inputControllerDidReceiveKeyboardCommand(e) : void 0) return t.preventDefault();\n } else if (o = t.key, t.altKey && (o += \"+Alt\"), t.shiftKey && (o += \"+Shift\"), i = this.keys[o]) return this.withEvent(t, i);\n },\n paste: function (t) {\n var n, i, o, r, s, a, u, c, l;\n return h(t) ? (t.preventDefault(), this.attachFiles(t.clipboardData.files)) : p(t) ? (t.preventDefault(), i = {\n type: \"text/plain\",\n string: t.clipboardData.getData(\"text/plain\")\n }, null != (o = this.delegate) && o.inputControllerWillPaste(i), null != (r = this.responder) && r.insertString(i.string), this.render(), null != (s = this.delegate) ? s.inputControllerDidPaste(i) : void 0) : (n = null != (a = t.clipboardData) ? a.getData(\"URL\") : void 0) ? (t.preventDefault(), i = {\n type: \"URL\",\n href: n,\n string: n\n }, null != (u = this.delegate) && u.inputControllerWillPaste(i), null != (c = this.responder) && c.insertText(e.Text.textForStringWithAttributes(i.string, {\n href: i.href\n })), this.render(), null != (l = this.delegate) ? l.inputControllerDidPaste(i) : void 0) : void 0;\n },\n beforeinput: function (t) {\n var e;\n return (e = this.inputTypes[t.inputType]) ? (this.withEvent(t, e), this.scheduleRender()) : void 0;\n },\n input: function () {\n return e.selectionChangeObserver.reset();\n },\n dragstart: function (t) {\n var e, n;\n return (null != (e = this.responder) ? e.selectionContainsAttachments() : void 0) ? (t.dataTransfer.setData(\"application/x-trix-dragging\", !0), this.dragging = {\n range: null != (n = this.responder) ? n.getSelectedRange() : void 0,\n point: d(t)\n }) : void 0;\n },\n dragenter: function (t) {\n return c(t) ? t.preventDefault() : void 0;\n },\n dragover: function (t) {\n var e, n;\n return this.dragging && (t.preventDefault(), e = d(t), !i(e, this.dragging.point)) ? (this.dragging.point = e, null != (n = this.responder) ? n.setLocationRangeFromPointRange(e) : void 0) : void 0;\n },\n drop: function (t) {\n var e, n, i, o;\n return this.dragging ? (t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillMoveText(), null != (i = this.responder) && i.moveTextFromRange(this.dragging.range), this.dragging = null, this.scheduleRender()) : c(t) ? (t.preventDefault(), e = d(t), null != (o = this.responder) && o.setLocationRangeFromPointRange(e), this.attachFiles(t.dataTransfer.files)) : void 0;\n },\n dragend: function () {\n var t;\n return this.dragging ? (null != (t = this.responder) && t.setSelectedRange(this.dragging.range), this.dragging = null) : void 0;\n },\n compositionend: function () {\n return this.composing ? (this.composing = !1, this.scheduleRender()) : void 0;\n }\n }, u.prototype.keys = {\n ArrowLeft: function () {\n var t, e;\n return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n },\n ArrowRight: function () {\n var t, e;\n return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"forward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n },\n Backspace: function () {\n var t, e, n;\n return (null != (t = this.responder) ? t.shouldManageDeletingInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.deleteInDirection(\"backward\"), this.render()) : void 0;\n },\n Tab: function () {\n var t, e;\n return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.increaseNestingLevel(), this.render()) : void 0;\n },\n \"Tab+Shift\": function () {\n var t, e;\n return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.decreaseNestingLevel(), this.render()) : void 0;\n }\n }, u.prototype.inputTypes = {\n deleteByComposition: function () {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteByCut: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteByDrag: function () {\n return this.event.preventDefault(), this.withTargetDOMRange(function () {\n var t;\n return this.deleteByDragRange = null != (t = this.responder) ? t.getSelectedRange() : void 0;\n });\n },\n deleteCompositionText: function () {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteContent: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteEntireSoftLine: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteHardLineBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteHardLineForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteSoftLineBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteSoftLineForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteWordBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteWordForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n formatBackColor: function () {\n return this.activateAttributeIfSupported(\"backgroundColor\", this.event.data);\n },\n formatBold: function () {\n return this.toggleAttributeIfSupported(\"bold\");\n },\n formatFontColor: function () {\n return this.activateAttributeIfSupported(\"color\", this.event.data);\n },\n formatFontName: function () {\n return this.activateAttributeIfSupported(\"font\", this.event.data);\n },\n formatIndent: function () {\n var t;\n return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.increaseNestingLevel() : void 0;\n }) : void 0;\n },\n formatItalic: function () {\n return this.toggleAttributeIfSupported(\"italic\");\n },\n formatJustifyCenter: function () {\n return this.toggleAttributeIfSupported(\"justifyCenter\");\n },\n formatJustifyFull: function () {\n return this.toggleAttributeIfSupported(\"justifyFull\");\n },\n formatJustifyLeft: function () {\n return this.toggleAttributeIfSupported(\"justifyLeft\");\n },\n formatJustifyRight: function () {\n return this.toggleAttributeIfSupported(\"justifyRight\");\n },\n formatOutdent: function () {\n var t;\n return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.decreaseNestingLevel() : void 0;\n }) : void 0;\n },\n formatRemove: function () {\n return this.withTargetDOMRange(function () {\n var t, e, n, i;\n i = [];\n\n for (t in null != (e = this.responder) ? e.getCurrentAttributes() : void 0) i.push(null != (n = this.responder) ? n.removeCurrentAttribute(t) : void 0);\n\n return i;\n });\n },\n formatSetBlockTextDirection: function () {\n return this.activateAttributeIfSupported(\"blockDir\", this.event.data);\n },\n formatSetInlineTextDirection: function () {\n return this.activateAttributeIfSupported(\"textDir\", this.event.data);\n },\n formatStrikeThrough: function () {\n return this.toggleAttributeIfSupported(\"strike\");\n },\n formatSubscript: function () {\n return this.toggleAttributeIfSupported(\"sub\");\n },\n formatSuperscript: function () {\n return this.toggleAttributeIfSupported(\"sup\");\n },\n formatUnderline: function () {\n return this.toggleAttributeIfSupported(\"underline\");\n },\n historyRedo: function () {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformRedo() : void 0;\n },\n historyUndo: function () {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformUndo() : void 0;\n },\n insertCompositionText: function () {\n return this.composing = !0, this.insertString(this.event.data);\n },\n insertFromComposition: function () {\n return this.composing = !1, this.insertString(this.event.data);\n },\n insertFromDrop: function () {\n var t, e;\n return (t = this.deleteByDragRange) ? (this.deleteByDragRange = null, null != (e = this.delegate) && e.inputControllerWillMoveText(), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.moveTextFromRange(t) : void 0;\n })) : void 0;\n },\n insertFromPaste: function () {\n var n, i, o, r, s, a, u, c, l, h;\n return n = this.event.dataTransfer, s = {\n dataTransfer: n\n }, (i = n.getData(\"URL\")) ? (s.type = \"URL\", s.href = i, s.string = (r = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(r).trim() : i, null != (a = this.delegate) && a.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertText(e.Text.textForStringWithAttributes(s.string, {\n href: s.href\n })) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : t(n) ? (s.type = \"text/plain\", s.string = n.getData(\"text/plain\"), null != (u = this.delegate) && u.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertString(s.string) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : (o = n.getData(\"text/html\")) ? (s.type = \"text/html\", s.html = o, null != (c = this.delegate) && c.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertHTML(s.html) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : (null != (l = n.files) ? l.length : void 0) ? (s.type = \"File\", s.file = n.files[0], null != (h = this.delegate) && h.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertFile(s.file) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : void 0;\n },\n insertFromYank: function () {\n return this.insertString(this.event.data);\n },\n insertLineBreak: function () {\n return this.insertString(\"\\n\");\n },\n insertLink: function () {\n return this.activateAttributeIfSupported(\"href\", this.event.data);\n },\n insertOrderedList: function () {\n return this.toggleAttributeIfSupported(\"number\");\n },\n insertParagraph: function () {\n var t;\n return null != (t = this.delegate) && t.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertLineBreak() : void 0;\n });\n },\n insertReplacementText: function () {\n return this.insertString(this.event.dataTransfer.getData(\"text/plain\"), {\n updatePosition: !1\n });\n },\n insertText: function () {\n var t, e;\n return this.insertString(null != (t = this.event.data) ? t : null != (e = this.event.dataTransfer) ? e.getData(\"text/plain\") : void 0);\n },\n insertTranspose: function () {\n return this.insertString(this.event.data);\n },\n insertUnorderedList: function () {\n return this.toggleAttributeIfSupported(\"bullet\");\n }\n }, u.prototype.insertString = function (t, e) {\n var n;\n return null == t && (t = \"\"), null != (n = this.delegate) && n.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var n;\n return null != (n = this.responder) ? n.insertString(t, e) : void 0;\n });\n }, u.prototype.toggleAttributeIfSupported = function (t) {\n var n;\n return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (n = this.delegate) && n.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.toggleCurrentAttribute(t) : void 0;\n })) : void 0;\n }, u.prototype.activateAttributeIfSupported = function (t, n) {\n var i;\n return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (i = this.delegate) && i.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.setCurrentAttribute(t, n) : void 0;\n })) : void 0;\n }, u.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r;\n return o = (null != e ? e : {\n recordUndoEntry: !0\n }).recordUndoEntry, o && null != (r = this.delegate) && r.inputControllerWillPerformTyping(), i = function (e) {\n return function () {\n var n;\n return null != (n = e.responder) ? n.deleteInDirection(t) : void 0;\n };\n }(this), (n = this.getTargetDOMRange({\n minLength: 2\n })) ? this.withTargetDOMRange(n, i) : i();\n }, u.prototype.withTargetDOMRange = function (t, n) {\n var i;\n return \"function\" == typeof t && (n = t, t = this.getTargetDOMRange()), t ? null != (i = this.responder) ? i.withTargetDOMRange(t, n.bind(this)) : void 0 : (e.selectionChangeObserver.reset(), n.call(this));\n }, u.prototype.getTargetDOMRange = function (t) {\n var e, n, i, o;\n return i = (null != t ? t : {\n minLength: 0\n }).minLength, (o = \"function\" == typeof (e = this.event).getTargetRanges ? e.getTargetRanges() : void 0) && o.length && (n = f(o[0]), 0 === i || n.toString().length >= i) ? n : void 0;\n }, f = function (t) {\n var e;\n return e = document.createRange(), e.setStart(t.startContainer, t.startOffset), e.setEnd(t.endContainer, t.endOffset), e;\n }, u.prototype.withEvent = function (t, e) {\n var n;\n this.event = t;\n\n try {\n n = e.call(this);\n } finally {\n this.event = null;\n }\n\n return n;\n }, c = function (t) {\n var e, n;\n return a.call(null != (e = null != (n = t.dataTransfer) ? n.types : void 0) ? e : [], \"Files\") >= 0;\n }, h = function (t) {\n var e;\n return (e = t.clipboardData) ? a.call(e.types, \"Files\") >= 0 && 1 === e.types.length && e.files.length >= 1 : void 0;\n }, p = function (t) {\n var e;\n return (e = t.clipboardData) ? a.call(e.types, \"text/plain\") >= 0 && 1 === e.types.length : void 0;\n }, l = function (t) {\n var e;\n return e = [], t.altKey && e.push(\"alt\"), t.shiftKey && e.push(\"shift\"), e.push(t.key), e;\n }, d = function (t) {\n return {\n x: t.clientX,\n y: t.clientY\n };\n }, u;\n }(e.InputController);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n h = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) p.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n p = {}.hasOwnProperty;\n\n n = e.defer, i = e.escapeHTML, o = e.handleEvent, a = e.makeElement, c = e.tagName, u = e.config, s = u.lang, t = u.css, r = u.keyNames, e.AttachmentEditorController = function (u) {\n function p(t, e, n, i) {\n this.attachmentPiece = t, this.element = e, this.container = n, this.options = null != i ? i : {}, this.didBlurCaption = l(this.didBlurCaption, this), this.didChangeCaption = l(this.didChangeCaption, this), this.didInputCaption = l(this.didInputCaption, this), this.didKeyDownCaption = l(this.didKeyDownCaption, this), this.didClickActionButton = l(this.didClickActionButton, this), this.didClickToolbar = l(this.didClickToolbar, this), this.attachment = this.attachmentPiece.attachment, \"a\" === c(this.element) && (this.element = this.element.firstChild), this.install();\n }\n\n var d;\n return h(p, u), d = function (t) {\n return function () {\n var e;\n return e = t.apply(this, arguments), e[\"do\"](), null == this.undos && (this.undos = []), this.undos.push(e.undo);\n };\n }, p.prototype.install = function () {\n return this.makeElementMutable(), this.addToolbar(), this.attachment.isPreviewable() ? this.installCaptionEditor() : void 0;\n }, p.prototype.uninstall = function () {\n var t, e;\n\n for (this.savePendingCaption(); e = this.undos.pop();) e();\n\n return null != (t = this.delegate) ? t.didUninstallAttachmentEditor(this) : void 0;\n }, p.prototype.savePendingCaption = function () {\n var t, e, n;\n return null != this.pendingCaption ? (t = this.pendingCaption, this.pendingCaption = null, t ? null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestUpdatingAttributesForAttachment ? e.attachmentEditorDidRequestUpdatingAttributesForAttachment({\n caption: t\n }, this.attachment) : void 0 : null != (n = this.delegate) && \"function\" == typeof n.attachmentEditorDidRequestRemovingAttributeForAttachment ? n.attachmentEditorDidRequestRemovingAttributeForAttachment(\"caption\", this.attachment) : void 0) : void 0;\n }, p.prototype.makeElementMutable = d(function () {\n return {\n \"do\": function (t) {\n return function () {\n return t.element.dataset.trixMutable = !0;\n };\n }(this),\n undo: function (t) {\n return function () {\n return delete t.element.dataset.trixMutable;\n };\n }(this)\n };\n }), p.prototype.addToolbar = d(function () {\n var n, r, u;\n return n = a({\n tagName: \"div\",\n className: t.attachmentToolbar,\n data: {\n trixMutable: !0\n }\n }), n.innerHTML = '
\\n \\n \\n \\n
\", this.attachment.isPreviewable() && (r = i(this.attachment.getFilename()), u = i(this.attachment.getFormattedFilesize()), n.innerHTML += '
\\n \\n ' + r + '\\n ' + u + \"\\n \\n
\"), o(\"click\", {\n onElement: n,\n withCallback: this.didClickToolbar\n }), o(\"click\", {\n onElement: n,\n matchingSelector: \"[data-trix-action]\",\n withCallback: this.didClickActionButton\n }), {\n \"do\": function (t) {\n return function () {\n return t.element.appendChild(n);\n };\n }(this),\n undo: function () {\n return function () {\n return e.removeNode(n);\n };\n }(this)\n };\n }), p.prototype.installCaptionEditor = d(function () {\n var i, r, u, c, l;\n return c = a({\n tagName: \"textarea\",\n className: t.attachmentCaptionEditor,\n attributes: {\n placeholder: s.captionPlaceholder\n },\n data: {\n trixMutable: !0\n }\n }), c.value = this.attachmentPiece.getCaption(), l = c.cloneNode(), l.classList.add(\"trix-autoresize-clone\"), l.tabIndex = -1, i = function () {\n return l.value = c.value, c.style.height = l.scrollHeight + \"px\";\n }, o(\"input\", {\n onElement: c,\n withCallback: i\n }), o(\"input\", {\n onElement: c,\n withCallback: this.didInputCaption\n }), o(\"keydown\", {\n onElement: c,\n withCallback: this.didKeyDownCaption\n }), o(\"change\", {\n onElement: c,\n withCallback: this.didChangeCaption\n }), o(\"blur\", {\n onElement: c,\n withCallback: this.didBlurCaption\n }), u = this.element.querySelector(\"figcaption\"), r = u.cloneNode(), {\n \"do\": function (e) {\n return function () {\n return u.style.display = \"none\", r.appendChild(c), r.appendChild(l), r.classList.add(t.attachmentCaption + \"--editing\"), u.parentElement.insertBefore(r, u), i(), e.options.editCaption ? n(function () {\n return c.focus();\n }) : void 0;\n };\n }(this),\n undo: function () {\n return e.removeNode(r), u.style.display = null;\n }\n };\n }), p.prototype.didClickToolbar = function (t) {\n return t.preventDefault(), t.stopPropagation();\n }, p.prototype.didClickActionButton = function (t) {\n var e, n;\n\n switch (e = t.target.getAttribute(\"data-trix-action\")) {\n case \"remove\":\n return null != (n = this.delegate) ? n.attachmentEditorDidRequestRemovalOfAttachment(this.attachment) : void 0;\n }\n }, p.prototype.didKeyDownCaption = function (t) {\n var e;\n return \"return\" === r[t.keyCode] ? (t.preventDefault(), this.savePendingCaption(), null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestDeselectingAttachment ? e.attachmentEditorDidRequestDeselectingAttachment(this.attachment) : void 0) : void 0;\n }, p.prototype.didInputCaption = function (t) {\n return this.pendingCaption = t.target.value.replace(/\\s/g, \" \").trim();\n }, p.prototype.didChangeCaption = function () {\n return this.savePendingCaption();\n }, p.prototype.didBlurCaption = function () {\n return this.savePendingCaption();\n }, p;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, t = e.config.css, e.AttachmentView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.attachment = this.object, this.attachment.uploadProgressDelegate = this, this.attachmentPiece = this.options.piece;\n }\n\n var a;\n return o(s, r), s.attachmentSelector = \"[data-trix-attachment]\", s.prototype.createContentNodes = function () {\n return [];\n }, s.prototype.createNodes = function () {\n var e, n, o, r, s, u, c;\n if (e = r = i({\n tagName: \"figure\",\n className: this.getClassName(),\n data: this.getData(),\n editable: !1\n }), (n = this.getHref()) && (r = i({\n tagName: \"a\",\n editable: !1,\n attributes: {\n href: n,\n tabindex: -1\n }\n }), e.appendChild(r)), this.attachment.hasContent()) r.innerHTML = this.attachment.getContent();else for (c = this.createContentNodes(), o = 0, s = c.length; s > o; o++) u = c[o], r.appendChild(u);\n return r.appendChild(this.createCaptionElement()), this.attachment.isPending() && (this.progressElement = i({\n tagName: \"progress\",\n attributes: {\n \"class\": t.attachmentProgress,\n value: this.attachment.getUploadProgress(),\n max: 100\n },\n data: {\n trixMutable: !0,\n trixStoreKey: [\"progressElement\", this.attachment.id].join(\"/\")\n }\n }), e.appendChild(this.progressElement)), [a(\"left\"), e, a(\"right\")];\n }, s.prototype.createCaptionElement = function () {\n var e, n, o, r, s, a, u;\n return o = i({\n tagName: \"figcaption\",\n className: t.attachmentCaption\n }), (e = this.attachmentPiece.getCaption()) ? (o.classList.add(t.attachmentCaption + \"--edited\"), o.textContent = e) : (n = this.getCaptionConfig(), n.name && (r = this.attachment.getFilename()), n.size && (a = this.attachment.getFormattedFilesize()), r && (s = i({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: r\n }), o.appendChild(s)), a && (r && o.appendChild(document.createTextNode(\" \")), u = i({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: a\n }), o.appendChild(u))), o;\n }, s.prototype.getClassName = function () {\n var e, n;\n return n = [t.attachment, t.attachment + \"--\" + this.attachment.getType()], (e = this.attachment.getExtension()) && n.push(t.attachment + \"--\" + e), n.join(\" \");\n }, s.prototype.getData = function () {\n var t, e;\n return e = {\n trixAttachment: JSON.stringify(this.attachment),\n trixContentType: this.attachment.getContentType(),\n trixId: this.attachment.id\n }, t = this.attachmentPiece.attributes, t.isEmpty() || (e.trixAttributes = JSON.stringify(t)), this.attachment.isPending() && (e.trixSerialize = !1), e;\n }, s.prototype.getHref = function () {\n return n(this.attachment.getContent(), \"a\") ? void 0 : this.attachment.getHref();\n }, s.prototype.getCaptionConfig = function () {\n var t, n, i;\n return i = this.attachment.getType(), t = e.copyObject(null != (n = e.config.attachments[i]) ? n.caption : void 0), \"file\" === i && (t.name = !0), t;\n }, s.prototype.findProgressElement = function () {\n var t;\n return null != (t = this.findElement()) ? t.querySelector(\"progress\") : void 0;\n }, a = function (t) {\n return i({\n tagName: \"span\",\n textContent: e.ZERO_WIDTH_SPACE,\n data: {\n trixCursorTarget: t,\n trixSerialize: !1\n }\n });\n }, s.prototype.attachmentDidChangeUploadProgress = function () {\n var t, e;\n return e = this.attachment.getUploadProgress(), null != (t = this.findProgressElement()) ? t.value = e : void 0;\n }, s;\n }(e.ObjectView), n = function (t, e) {\n var n;\n return n = i(\"div\"), n.innerHTML = null != t ? t : \"\", n.querySelector(e);\n };\n }.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) i.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 i = {}.hasOwnProperty;\n\n t = e.makeElement, e.PreviewableAttachmentView = function (i) {\n function o() {\n o.__super__.constructor.apply(this, arguments), this.attachment.previewDelegate = this;\n }\n\n return n(o, i), o.prototype.createContentNodes = function () {\n return this.image = t({\n tagName: \"img\",\n attributes: {\n src: \"\"\n },\n data: {\n trixMutable: !0\n }\n }), this.refresh(this.image), [this.image];\n }, o.prototype.createCaptionElement = function () {\n var t;\n return t = o.__super__.createCaptionElement.apply(this, arguments), t.textContent || t.setAttribute(\"data-trix-placeholder\", e.config.lang.captionPlaceholder), t;\n }, o.prototype.refresh = function (t) {\n var e;\n return null == t && (t = null != (e = this.findElement()) ? e.querySelector(\"img\") : void 0), t ? this.updateAttributesForImage(t) : void 0;\n }, o.prototype.updateAttributesForImage = function (t) {\n var e, n, i, o, r, s;\n return r = this.attachment.getURL(), n = this.attachment.getPreviewURL(), t.src = n || r, n === r ? t.removeAttribute(\"data-trix-serialized-attributes\") : (i = JSON.stringify({\n src: r\n }), t.setAttribute(\"data-trix-serialized-attributes\", i)), s = this.attachment.getWidth(), e = this.attachment.getHeight(), null != s && (t.width = s), null != e && (t.height = e), o = [\"imageElement\", this.attachment.id, t.src, t.width, t.height].join(\"/\"), t.dataset.trixStoreKey = o;\n }, o.prototype.attachmentDidChangeAttributes = function () {\n return this.refresh(this.image), this.refresh();\n }, o;\n }(e.AttachmentView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, t = e.findInnerElement, n = e.getTextConfig, e.PieceView = function (r) {\n function s() {\n var t;\n s.__super__.constructor.apply(this, arguments), this.piece = this.object, this.attributes = this.piece.getAttributes(), t = this.options, this.textConfig = t.textConfig, this.context = t.context, this.piece.attachment ? this.attachment = this.piece.attachment : this.string = this.piece.toString();\n }\n\n var a;\n return o(s, r), s.prototype.createNodes = function () {\n var e, n, i, o, r, s;\n\n if (s = this.attachment ? this.createAttachmentNodes() : this.createStringNodes(), e = this.createElement()) {\n for (i = t(e), n = 0, o = s.length; o > n; n++) r = s[n], i.appendChild(r);\n\n s = [e];\n }\n\n return s;\n }, s.prototype.createAttachmentNodes = function () {\n var t, n;\n return t = this.attachment.isPreviewable() ? e.PreviewableAttachmentView : e.AttachmentView, n = this.createChildView(t, this.piece.attachment, {\n piece: this.piece\n }), n.getNodes();\n }, s.prototype.createStringNodes = function () {\n var t, e, n, o, r, s, a, u, c, l;\n if (null != (u = this.textConfig) ? u.plaintext : void 0) return [document.createTextNode(this.string)];\n\n for (a = [], c = this.string.split(\"\\n\"), n = e = 0, o = c.length; o > e; n = ++e) l = c[n], n > 0 && (t = i(\"br\"), a.push(t)), (r = l.length) && (s = document.createTextNode(this.preserveSpaces(l)), a.push(s));\n\n return a;\n }, s.prototype.createElement = function () {\n var t, e, o, r, s, a, u, c, l;\n c = {}, a = this.attributes;\n\n for (r in a) if (l = a[r], (t = n(r)) && (t.tagName && (s = i(t.tagName), o ? (o.appendChild(s), o = s) : e = o = s), t.styleProperty && (c[t.styleProperty] = l), t.style)) {\n u = t.style;\n\n for (r in u) l = u[r], c[r] = l;\n }\n\n if (Object.keys(c).length) {\n null == e && (e = i(\"span\"));\n\n for (r in c) l = c[r], e.style[r] = l;\n }\n\n return e;\n }, s.prototype.createContainerElement = function () {\n var t, e, o, r, s;\n r = this.attributes;\n\n for (o in r) if (s = r[o], (e = n(o)) && e.groupTagName) return t = {}, t[o] = s, i(e.groupTagName, t);\n }, a = e.NON_BREAKING_SPACE, s.prototype.preserveSpaces = function (t) {\n return this.context.isLast && (t = t.replace(/\\ $/, a)), t = t.replace(/(\\S)\\ {3}(\\S)/g, \"$1 \" + a + \" $2\").replace(/\\ {2}/g, a + \" \").replace(/\\ {2}/g, \" \" + a), (this.context.isFirst || this.context.followsWhitespace) && (t = t.replace(/^\\ /, a)), t;\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.TextView = function (n) {\n function i() {\n i.__super__.constructor.apply(this, arguments), this.text = this.object, this.textConfig = this.options.textConfig;\n }\n\n var o;\n return t(i, n), i.prototype.createNodes = function () {\n var t, n, i, r, s, a, u, c, l, h;\n\n for (a = [], c = e.ObjectGroup.groupObjects(this.getPieces()), r = c.length - 1, i = n = 0, s = c.length; s > n; i = ++n) u = c[i], t = {}, 0 === i && (t.isFirst = !0), i === r && (t.isLast = !0), o(l) && (t.followsWhitespace = !0), h = this.findOrCreateCachedChildView(e.PieceView, u, {\n textConfig: this.textConfig,\n context: t\n }), a.push.apply(a, h.getNodes()), l = u;\n\n return a;\n }, i.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (i = this.text.getPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], n.hasAttribute(\"blockBreak\") || o.push(n);\n\n return o;\n }, o = function (t) {\n return /\\s$/.test(null != t ? t.toString() : void 0);\n }, i;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, n = e.getBlockConfig, t = e.config.css, e.BlockView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.block = this.object, this.attributes = this.block.getAttributes();\n }\n\n return o(s, r), s.prototype.createNodes = function () {\n var t, o, r, s, a, u, c, l, h;\n if (t = document.createComment(\"block\"), u = [t], this.block.isEmpty() ? u.push(i(\"br\")) : (l = null != (c = n(this.block.getLastAttribute())) ? c.text : void 0, h = this.findOrCreateCachedChildView(e.TextView, this.block.text, {\n textConfig: l\n }), u.push.apply(u, h.getNodes()), this.shouldAddExtraNewlineElement() && u.push(i(\"br\"))), this.attributes.length) return u;\n\n for (o = i(e.config.blockAttributes[\"default\"].tagName), r = 0, s = u.length; s > r; r++) a = u[r], o.appendChild(a);\n\n return [o];\n }, s.prototype.createContainerElement = function (e) {\n var o, r, s, a;\n return o = this.attributes[e], a = n(o).tagName, r = {\n tagName: a\n }, \"attachmentGallery\" === o && (s = this.block.getBlockBreakPosition(), r.className = t.attachmentGallery + \" \" + t.attachmentGallery + \"--\" + s), i(r);\n }, s.prototype.shouldAddExtraNewlineElement = function () {\n return /\\n\\n$/.test(this.block.toString());\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) o.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n t = e.defer, n = e.makeElement, e.DocumentView = function (o) {\n function r() {\n r.__super__.constructor.apply(this, arguments), this.element = this.options.element, this.elementStore = new e.ElementStore(), this.setDocument(this.object);\n }\n\n var s, a, u;\n return i(r, o), r.render = function (t) {\n var e, i;\n return e = n(\"div\"), i = new this(t, {\n element: e\n }), i.render(), i.sync(), e;\n }, r.prototype.setDocument = function (t) {\n return t.isEqualTo(this.document) ? void 0 : this.document = this.object = t;\n }, r.prototype.render = function () {\n var t, i, o, r, s, a, u;\n\n if (this.childViews = [], this.shadowElement = n(\"div\"), !this.document.isEmpty()) {\n for (s = e.ObjectGroup.groupObjects(this.document.getBlocks(), {\n asTree: !0\n }), a = [], t = 0, i = s.length; i > t; t++) r = s[t], u = this.findOrCreateCachedChildView(e.BlockView, r), a.push(function () {\n var t, e, n, i;\n\n for (n = u.getNodes(), i = [], t = 0, e = n.length; e > t; t++) o = n[t], i.push(this.shadowElement.appendChild(o));\n\n return i;\n }.call(this));\n\n return a;\n }\n }, r.prototype.isSynced = function () {\n return s(this.shadowElement, this.element);\n }, r.prototype.sync = function () {\n var t;\n\n for (t = this.createDocumentFragmentForSync(); this.element.lastChild;) this.element.removeChild(this.element.lastChild);\n\n return this.element.appendChild(t), this.didSync();\n }, r.prototype.didSync = function () {\n return this.elementStore.reset(a(this.element)), t(function (t) {\n return function () {\n return t.garbageCollectCachedViews();\n };\n }(this));\n }, r.prototype.createDocumentFragmentForSync = function () {\n var t, e, n, i, o, r, s, u, c, l;\n\n for (e = document.createDocumentFragment(), u = this.shadowElement.childNodes, n = 0, o = u.length; o > n; n++) s = u[n], e.appendChild(s.cloneNode(!0));\n\n for (c = a(e), i = 0, r = c.length; r > i; i++) t = c[i], (l = this.elementStore.remove(t)) && t.parentNode.replaceChild(l, t);\n\n return e;\n }, a = function (t) {\n return t.querySelectorAll(\"[data-trix-store-key]\");\n }, s = function (t, e) {\n return u(t.innerHTML) === u(e.innerHTML);\n }, u = function (t) {\n return t.replace(/ /g, \" \");\n }, r;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n a = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) u.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n u = {}.hasOwnProperty;\n\n i = e.findClosestElementFromNode, o = e.handleEvent, r = e.innerElementIsActive, n = e.defer, t = e.AttachmentView.attachmentSelector, e.CompositionController = function (u) {\n function c(n, i) {\n this.element = n, this.composition = i, this.didClickAttachment = s(this.didClickAttachment, this), this.didBlur = s(this.didBlur, this), this.didFocus = s(this.didFocus, this), this.documentView = new e.DocumentView(this.composition.document, {\n element: this.element\n }), o(\"focus\", {\n onElement: this.element,\n withCallback: this.didFocus\n }), o(\"blur\", {\n onElement: this.element,\n withCallback: this.didBlur\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a[contenteditable=false]\",\n preventDefault: !0\n }), o(\"mousedown\", {\n onElement: this.element,\n matchingSelector: t,\n withCallback: this.didClickAttachment\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a\" + t,\n preventDefault: !0\n });\n }\n\n return a(c, u), c.prototype.didFocus = function () {\n var t, e, n;\n return t = function (t) {\n return function () {\n var e;\n return t.focused ? void 0 : (t.focused = !0, null != (e = t.delegate) && \"function\" == typeof e.compositionControllerDidFocus ? e.compositionControllerDidFocus() : void 0);\n };\n }(this), null != (e = null != (n = this.blurPromise) ? n.then(t) : void 0) ? e : t();\n }, c.prototype.didBlur = function () {\n return this.blurPromise = new Promise(function (t) {\n return function (e) {\n return n(function () {\n var n;\n return r(t.element) || (t.focused = null, null != (n = t.delegate) && \"function\" == typeof n.compositionControllerDidBlur && n.compositionControllerDidBlur()), t.blurPromise = null, e();\n });\n };\n }(this));\n }, c.prototype.didClickAttachment = function (t, e) {\n var n, o, r;\n return n = this.findAttachmentForElement(e), o = null != i(t.target, {\n matchingSelector: \"figcaption\"\n }), null != (r = this.delegate) && \"function\" == typeof r.compositionControllerDidSelectAttachment ? r.compositionControllerDidSelectAttachment(n, {\n editCaption: o\n }) : void 0;\n }, c.prototype.getSerializableElement = function () {\n return this.isEditingAttachment() ? this.documentView.shadowElement : this.element;\n }, c.prototype.render = function () {\n var t, e, n;\n return this.revision !== this.composition.revision && (this.documentView.setDocument(this.composition.document), this.documentView.render(), this.revision = this.composition.revision), this.canSyncDocumentView() && !this.documentView.isSynced() && (null != (t = this.delegate) && \"function\" == typeof t.compositionControllerWillSyncDocumentView && t.compositionControllerWillSyncDocumentView(), this.documentView.sync(), null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidSyncDocumentView && e.compositionControllerDidSyncDocumentView()), null != (n = this.delegate) && \"function\" == typeof n.compositionControllerDidRender ? n.compositionControllerDidRender() : void 0;\n }, c.prototype.rerenderViewForObject = function (t) {\n return this.invalidateViewForObject(t), this.render();\n }, c.prototype.invalidateViewForObject = function (t) {\n return this.documentView.invalidateViewForObject(t);\n }, c.prototype.isViewCachingEnabled = function () {\n return this.documentView.isViewCachingEnabled();\n }, c.prototype.enableViewCaching = function () {\n return this.documentView.enableViewCaching();\n }, c.prototype.disableViewCaching = function () {\n return this.documentView.disableViewCaching();\n }, c.prototype.refreshViewCache = function () {\n return this.documentView.garbageCollectCachedViews();\n }, c.prototype.isEditingAttachment = function () {\n return null != this.attachmentEditor;\n }, c.prototype.installAttachmentEditorForAttachment = function (t, n) {\n var i, o, r;\n if ((null != (r = this.attachmentEditor) ? r.attachment : void 0) !== t && (o = this.documentView.findElementForObject(t))) return this.uninstallAttachmentEditor(), i = this.composition.document.getAttachmentPieceForAttachment(t), this.attachmentEditor = new e.AttachmentEditorController(i, o, this.element, n), this.attachmentEditor.delegate = this;\n }, c.prototype.uninstallAttachmentEditor = function () {\n var t;\n return null != (t = this.attachmentEditor) ? t.uninstall() : void 0;\n }, c.prototype.didUninstallAttachmentEditor = function () {\n return this.attachmentEditor = null, this.render();\n }, c.prototype.attachmentEditorDidRequestUpdatingAttributesForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.updateAttributesForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovingAttributeForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.removeAttributeForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovalOfAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestRemovalOfAttachment ? e.compositionControllerDidRequestRemovalOfAttachment(t) : void 0;\n }, c.prototype.attachmentEditorDidRequestDeselectingAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestDeselectingAttachment ? e.compositionControllerDidRequestDeselectingAttachment(t) : void 0;\n }, c.prototype.canSyncDocumentView = function () {\n return !this.isEditingAttachment();\n }, c.prototype.findAttachmentForElement = function (t) {\n return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId, 10));\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty;\n\n n = e.handleEvent, i = e.triggerEvent, t = e.findClosestElementFromNode, e.ToolbarController = function (e) {\n function s(t) {\n this.element = t, this.didKeyDownDialogInput = o(this.didKeyDownDialogInput, this), this.didClickDialogButton = o(this.didClickDialogButton, this), this.didClickAttributeButton = o(this.didClickAttributeButton, this), this.didClickActionButton = o(this.didClickActionButton, this), this.attributes = {}, this.actions = {}, this.resetDialogInputs(), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: a,\n withCallback: this.didClickActionButton\n }), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: c,\n withCallback: this.didClickAttributeButton\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: v,\n preventDefault: !0\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: l,\n withCallback: this.didClickDialogButton\n }), n(\"keydown\", {\n onElement: this.element,\n matchingSelector: h,\n withCallback: this.didKeyDownDialogInput\n });\n }\n\n var a, u, c, l, h, p, d, f, g, m, v;\n return r(s, e), c = \"[data-trix-attribute]\", a = \"[data-trix-action]\", v = c + \", \" + a, p = \"[data-trix-dialog]\", u = p + \"[data-trix-active]\", l = p + \" [data-trix-method]\", h = p + \" [data-trix-input]\", s.prototype.didClickActionButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = d(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) ? o.toolbarDidInvokeAction(n) : void 0;\n }, s.prototype.didClickAttributeButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = f(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) && o.toolbarDidToggleAttribute(n), this.refreshAttributeButtons();\n }, s.prototype.didClickDialogButton = function (e, n) {\n var i, o;\n return i = t(n, {\n matchingSelector: p\n }), o = n.getAttribute(\"data-trix-method\"), this[o].call(this, i);\n }, s.prototype.didKeyDownDialogInput = function (t, e) {\n var n, i;\n return 13 === t.keyCode && (t.preventDefault(), n = e.getAttribute(\"name\"), i = this.getDialog(n), this.setAttribute(i)), 27 === t.keyCode ? (t.preventDefault(), this.hideDialog()) : void 0;\n }, s.prototype.updateActions = function (t) {\n return this.actions = t, this.refreshActionButtons();\n }, s.prototype.refreshActionButtons = function () {\n return this.eachActionButton(function (t) {\n return function (e, n) {\n return e.disabled = t.actions[n] === !1;\n };\n }(this));\n }, s.prototype.eachActionButton = function (t) {\n var e, n, i, o, r;\n\n for (o = this.element.querySelectorAll(a), r = [], n = 0, i = o.length; i > n; n++) e = o[n], r.push(t(e, d(e)));\n\n return r;\n }, s.prototype.updateAttributes = function (t) {\n return this.attributes = t, this.refreshAttributeButtons();\n }, s.prototype.refreshAttributeButtons = function () {\n return this.eachAttributeButton(function (t) {\n return function (e, n) {\n return e.disabled = t.attributes[n] === !1, t.attributes[n] || t.dialogIsVisible(n) ? (e.setAttribute(\"data-trix-active\", \"\"), e.classList.add(\"trix-active\")) : (e.removeAttribute(\"data-trix-active\"), e.classList.remove(\"trix-active\"));\n };\n }(this));\n }, s.prototype.eachAttributeButton = function (t) {\n var e, n, i, o, r;\n\n for (o = this.element.querySelectorAll(c), r = [], n = 0, i = o.length; i > n; n++) e = o[n], r.push(t(e, f(e)));\n\n return r;\n }, s.prototype.applyKeyboardCommand = function (t) {\n var e, n, o, r, s, a, u;\n\n for (s = JSON.stringify(t.sort()), u = this.element.querySelectorAll(\"[data-trix-key]\"), r = 0, a = u.length; a > r; r++) if (e = u[r], o = e.getAttribute(\"data-trix-key\").split(\"+\"), n = JSON.stringify(o.sort()), n === s) return i(\"mousedown\", {\n onElement: e\n }), !0;\n\n return !1;\n }, s.prototype.dialogIsVisible = function (t) {\n var e;\n return (e = this.getDialog(t)) ? e.hasAttribute(\"data-trix-active\") : void 0;\n }, s.prototype.toggleDialog = function (t) {\n return this.dialogIsVisible(t) ? this.hideDialog() : this.showDialog(t);\n }, s.prototype.showDialog = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n\n for (this.hideDialog(), null != (a = this.delegate) && a.toolbarWillShowDialog(), i = this.getDialog(t), i.setAttribute(\"data-trix-active\", \"\"), i.classList.add(\"trix-active\"), u = i.querySelectorAll(\"input[disabled]\"), o = 0, s = u.length; s > o; o++) n = u[o], n.removeAttribute(\"disabled\");\n\n return (e = f(i)) && (r = m(i, t)) && (r.value = null != (c = this.attributes[e]) ? c : \"\", r.select()), null != (l = this.delegate) ? l.toolbarDidShowDialog(t) : void 0;\n }, s.prototype.setAttribute = function (t) {\n var e, n, i;\n return e = f(t), n = m(t, e), n.willValidate && !n.checkValidity() ? (n.setAttribute(\"data-trix-validate\", \"\"), n.classList.add(\"trix-validate\"), n.focus()) : (null != (i = this.delegate) && i.toolbarDidUpdateAttribute(e, n.value), this.hideDialog());\n }, s.prototype.removeAttribute = function (t) {\n var e, n;\n return e = f(t), null != (n = this.delegate) && n.toolbarDidRemoveAttribute(e), this.hideDialog();\n }, s.prototype.hideDialog = function () {\n var t, e;\n return (t = this.element.querySelector(u)) ? (t.removeAttribute(\"data-trix-active\"), t.classList.remove(\"trix-active\"), this.resetDialogInputs(), null != (e = this.delegate) ? e.toolbarDidHideDialog(g(t)) : void 0) : void 0;\n }, s.prototype.resetDialogInputs = function () {\n var t, e, n, i, o;\n\n for (i = this.element.querySelectorAll(h), o = [], t = 0, n = i.length; n > t; t++) e = i[t], e.setAttribute(\"disabled\", \"disabled\"), e.removeAttribute(\"data-trix-validate\"), o.push(e.classList.remove(\"trix-validate\"));\n\n return o;\n }, s.prototype.getDialog = function (t) {\n return this.element.querySelector(\"[data-trix-dialog=\" + t + \"]\");\n }, m = function (t, e) {\n return null == e && (e = f(t)), t.querySelector(\"[data-trix-input][name='\" + e + \"']\");\n }, d = function (t) {\n return t.getAttribute(\"data-trix-action\");\n }, f = function (t) {\n var e;\n return null != (e = t.getAttribute(\"data-trix-attribute\")) ? e : t.getAttribute(\"data-trix-dialog-attribute\");\n }, g = function (t) {\n return t.getAttribute(\"data-trix-dialog\");\n }, s;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.ImagePreloadOperation = function (e) {\n function n(t) {\n this.url = t;\n }\n\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new Image(), e.onload = function (n) {\n return function () {\n return e.width = n.width = e.naturalWidth, e.height = n.height = e.naturalHeight, t(!0, e);\n };\n }(this), e.onerror = function () {\n return t(!1);\n }, e.src = this.url;\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) i.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 i = {}.hasOwnProperty;\n\n e.Attachment = function (i) {\n function o(n) {\n null == n && (n = {}), this.releaseFile = t(this.releaseFile, this), o.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n), this.didChangeAttributes();\n }\n\n return n(o, i), o.previewablePattern = /^image(\\/(gif|png|jpe?g)|$)/, o.attachmentForFile = function (t) {\n var e, n;\n return n = this.attributesForFile(t), e = new this(n), e.setFile(t), e;\n }, o.attributesForFile = function (t) {\n return new e.Hash({\n filename: t.name,\n filesize: t.size,\n contentType: t.type\n });\n }, o.fromJSON = function (t) {\n return new this(t);\n }, o.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, o.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, o.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, o.prototype.setAttributes = function (t) {\n var e, n, i;\n return null == t && (t = {}), e = this.attributes.merge(t), this.attributes.isEqualTo(e) ? void 0 : (this.attributes = e, this.didChangeAttributes(), null != (n = this.previewDelegate) && \"function\" == typeof n.attachmentDidChangeAttributes && n.attachmentDidChangeAttributes(this), null != (i = this.delegate) && \"function\" == typeof i.attachmentDidChangeAttributes ? i.attachmentDidChangeAttributes(this) : void 0);\n }, o.prototype.didChangeAttributes = function () {\n return this.isPreviewable() ? this.preloadURL() : void 0;\n }, o.prototype.isPending = function () {\n return null != this.file && !(this.getURL() || this.getHref());\n }, o.prototype.isPreviewable = function () {\n return this.attributes.has(\"previewable\") ? this.attributes.get(\"previewable\") : this.constructor.previewablePattern.test(this.getContentType());\n }, o.prototype.getType = function () {\n return this.hasContent() ? \"content\" : this.isPreviewable() ? \"preview\" : \"file\";\n }, o.prototype.getURL = function () {\n return this.attributes.get(\"url\");\n }, o.prototype.getHref = function () {\n return this.attributes.get(\"href\");\n }, o.prototype.getFilename = function () {\n var t;\n return null != (t = this.attributes.get(\"filename\")) ? t : \"\";\n }, o.prototype.getFilesize = function () {\n return this.attributes.get(\"filesize\");\n }, o.prototype.getFormattedFilesize = function () {\n var t;\n return t = this.attributes.get(\"filesize\"), \"number\" == typeof t ? e.config.fileSize.formatter(t) : \"\";\n }, o.prototype.getExtension = function () {\n var t;\n return null != (t = this.getFilename().match(/\\.(\\w+)$/)) ? t[1].toLowerCase() : void 0;\n }, o.prototype.getContentType = function () {\n return this.attributes.get(\"contentType\");\n }, o.prototype.hasContent = function () {\n return this.attributes.has(\"content\");\n }, o.prototype.getContent = function () {\n return this.attributes.get(\"content\");\n }, o.prototype.getWidth = function () {\n return this.attributes.get(\"width\");\n }, o.prototype.getHeight = function () {\n return this.attributes.get(\"height\");\n }, o.prototype.getFile = function () {\n return this.file;\n }, o.prototype.setFile = function (t) {\n return this.file = t, this.isPreviewable() ? this.preloadFile() : void 0;\n }, o.prototype.releaseFile = function () {\n return this.releasePreloadedFile(), this.file = null;\n }, o.prototype.getUploadProgress = function () {\n var t;\n return null != (t = this.uploadProgress) ? t : 0;\n }, o.prototype.setUploadProgress = function (t) {\n var e;\n return this.uploadProgress !== t ? (this.uploadProgress = t, null != (e = this.uploadProgressDelegate) && \"function\" == typeof e.attachmentDidChangeUploadProgress ? e.attachmentDidChangeUploadProgress(this) : void 0) : void 0;\n }, o.prototype.toJSON = function () {\n return this.getAttributes();\n }, o.prototype.getCacheKey = function () {\n return [o.__super__.getCacheKey.apply(this, arguments), this.attributes.getCacheKey(), this.getPreviewURL()].join(\"/\");\n }, o.prototype.getPreviewURL = function () {\n return this.previewURL || this.preloadingURL;\n }, o.prototype.setPreviewURL = function (t) {\n var e, n;\n return t !== this.getPreviewURL() ? (this.previewURL = t, null != (e = this.previewDelegate) && \"function\" == typeof e.attachmentDidChangeAttributes && e.attachmentDidChangeAttributes(this), null != (n = this.delegate) && \"function\" == typeof n.attachmentDidChangePreviewURL ? n.attachmentDidChangePreviewURL(this) : void 0) : void 0;\n }, o.prototype.preloadURL = function () {\n return this.preload(this.getURL(), this.releaseFile);\n }, o.prototype.preloadFile = function () {\n return this.file ? (this.fileObjectURL = URL.createObjectURL(this.file), this.preload(this.fileObjectURL)) : void 0;\n }, o.prototype.releasePreloadedFile = function () {\n return this.fileObjectURL ? (URL.revokeObjectURL(this.fileObjectURL), this.fileObjectURL = null) : void 0;\n }, o.prototype.preload = function (t, n) {\n var i;\n return t && t !== this.getPreviewURL() ? (this.preloadingURL = t, i = new e.ImagePreloadOperation(t), i.then(function (e) {\n return function (i) {\n var o, r;\n return r = i.width, o = i.height, e.getWidth() && e.getHeight() || e.setAttributes({\n width: r,\n height: o\n }), e.preloadingURL = null, e.setPreviewURL(t), \"function\" == typeof n ? n() : void 0;\n };\n }(this))[\"catch\"](function (t) {\n return function () {\n return t.preloadingURL = null, \"function\" == typeof n ? n() : void 0;\n };\n }(this))) : void 0;\n }, o;\n }(e.Object);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.Piece = function (n) {\n function i(t, n) {\n null == n && (n = {}), i.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n);\n }\n\n return t(i, n), i.types = {}, i.registerType = function (t, e) {\n return e.type = t, this.types[t] = e;\n }, i.fromJSON = function (t) {\n var e;\n return (e = this.types[t.type]) ? e.fromJSON(t) : void 0;\n }, i.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.getValue(), t);\n }, i.prototype.copyWithAdditionalAttributes = function (t) {\n return this.copyWithAttributes(this.attributes.merge(t));\n }, i.prototype.copyWithoutAttribute = function (t) {\n return this.copyWithAttributes(this.attributes.remove(t));\n }, i.prototype.copy = function () {\n return this.copyWithAttributes(this.attributes);\n }, i.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, i.prototype.getAttributesHash = function () {\n return this.attributes;\n }, i.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, i.prototype.getCommonAttributes = function () {\n var t, e, n;\n return (n = pieceList.getPieceAtIndex(0)) ? (t = n.attributes, e = t.getKeys(), pieceList.eachPiece(function (n) {\n return e = t.getKeysCommonToHash(n.attributes), t = t.slice(e);\n }), t.toObject()) : {};\n }, i.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, i.prototype.hasSameStringValueAsPiece = function (t) {\n return null != t && this.toString() === t.toString();\n }, i.prototype.hasSameAttributesAsPiece = function (t) {\n return null != t && (this.attributes === t.attributes || this.attributes.isEqualTo(t.attributes));\n }, i.prototype.isBlockBreak = function () {\n return !1;\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || this.hasSameConstructorAs(t) && this.hasSameStringValueAsPiece(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.isEmpty = function () {\n return 0 === this.length;\n }, i.prototype.isSerializable = function () {\n return !0;\n }, i.prototype.toJSON = function () {\n return {\n type: this.constructor.type,\n attributes: this.getAttributes()\n };\n }, i.prototype.contentsForInspection = function () {\n return {\n type: this.constructor.type,\n attributes: this.attributes.inspect()\n };\n }, i.prototype.canBeGrouped = function () {\n return this.hasAttribute(\"href\");\n }, i.prototype.canBeGroupedWith = function (t) {\n return this.getAttribute(\"href\") === t.getAttribute(\"href\");\n }, i.prototype.getLength = function () {\n return this.length;\n }, i.prototype.canBeConsolidatedWith = function () {\n return !1;\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.Piece.registerType(\"attachment\", e.AttachmentPiece = function (n) {\n function i(t) {\n this.attachment = t, i.__super__.constructor.apply(this, arguments), this.length = 1, this.ensureAttachmentExclusivelyHasAttribute(\"href\"), this.attachment.hasContent() || this.removeProhibitedAttributes();\n }\n\n return t(i, n), i.fromJSON = function (t) {\n return new this(e.Attachment.fromJSON(t.attachment), t.attributes);\n }, i.permittedAttributes = [\"caption\", \"presentation\"], i.prototype.ensureAttachmentExclusivelyHasAttribute = function (t) {\n return this.hasAttribute(t) ? (this.attachment.hasAttribute(t) || this.attachment.setAttributes(this.attributes.slice(t)), this.attributes = this.attributes.remove(t)) : void 0;\n }, i.prototype.removeProhibitedAttributes = function () {\n var t;\n return t = this.attributes.slice(this.constructor.permittedAttributes), t.isEqualTo(this.attributes) ? void 0 : this.attributes = t;\n }, i.prototype.getValue = function () {\n return this.attachment;\n }, i.prototype.isSerializable = function () {\n return !this.attachment.isPending();\n }, i.prototype.getCaption = function () {\n var t;\n return null != (t = this.attributes.get(\"caption\")) ? t : \"\";\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) && this.attachment.id === (null != t && null != (e = t.attachment) ? e.id : void 0);\n }, i.prototype.toString = function () {\n return e.OBJECT_REPLACEMENT_CHARACTER;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.attachment = this.attachment, t;\n }, i.prototype.getCacheKey = function () {\n return [i.__super__.getCacheKey.apply(this, arguments), this.attachment.getCacheKey()].join(\"/\");\n }, i.prototype.toConsole = function () {\n return JSON.stringify(this.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) i.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 i = {}.hasOwnProperty;\n\n t = e.normalizeNewlines, e.Piece.registerType(\"string\", e.StringPiece = function (e) {\n function i(e) {\n i.__super__.constructor.apply(this, arguments), this.string = t(e), this.length = this.string.length;\n }\n\n return n(i, e), i.fromJSON = function (t) {\n return new this(t.string, t.attributes);\n }, i.prototype.getValue = function () {\n return this.string;\n }, i.prototype.toString = function () {\n return this.string.toString();\n }, i.prototype.isBlockBreak = function () {\n return \"\\n\" === this.toString() && this.getAttribute(\"blockBreak\") === !0;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.string = this.string, t;\n }, i.prototype.canBeConsolidatedWith = function (t) {\n return null != t && this.hasSameConstructorAs(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.consolidateWith = function (t) {\n return new this.constructor(this.toString() + t.toString(), this.attributes);\n }, i.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.length ? (e = this, n = null) : (e = new this.constructor(this.string.slice(0, t), this.attributes), n = new this.constructor(this.string.slice(t), this.attributes)), [e, n];\n }, i.prototype.toConsole = function () {\n var t;\n return t = this.string, t.length > 15 && (t = t.slice(0, 14) + \"\\u2026\"), JSON.stringify(t.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) i.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 i = {}.hasOwnProperty,\n o = [].slice;\n\n t = e.spliceArray, e.SplittableList = function (e) {\n function i(t) {\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.objects = t.slice(0), this.length = this.objects.length;\n }\n\n var r, s, a;\n return n(i, e), i.box = function (t) {\n return t instanceof this ? t : new this(t);\n }, i.prototype.indexOf = function (t) {\n return this.objects.indexOf(t);\n }, i.prototype.splice = function () {\n var e;\n return e = 1 <= arguments.length ? o.call(arguments, 0) : [], new this.constructor(t.apply(null, [this.objects].concat(o.call(e))));\n }, i.prototype.eachObject = function (t) {\n var e, n, i, o, r, s;\n\n for (r = this.objects, s = [], n = e = 0, i = r.length; i > e; n = ++e) o = r[n], s.push(t(o, n));\n\n return s;\n }, i.prototype.insertObjectAtIndex = function (t, e) {\n return this.splice(e, 0, t);\n }, i.prototype.insertSplittableListAtIndex = function (t, e) {\n return this.splice.apply(this, [e, 0].concat(o.call(t.objects)));\n }, i.prototype.insertSplittableListAtPosition = function (t, e) {\n var n, i, o;\n return o = this.splitObjectAtPosition(e), i = o[0], n = o[1], new this.constructor(i).insertSplittableListAtIndex(t, n);\n }, i.prototype.editObjectAtIndex = function (t, e) {\n return this.replaceObjectAtIndex(e(this.objects[t]), t);\n }, i.prototype.replaceObjectAtIndex = function (t, e) {\n return this.splice(e, 1, t);\n }, i.prototype.removeObjectAtIndex = function (t) {\n return this.splice(t, 1);\n }, i.prototype.getObjectAtIndex = function (t) {\n return this.objects[t];\n }, i.prototype.getSplittableListInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n.slice(e, o + 1));\n }, i.prototype.selectSplittableList = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r;\n\n for (o = this.objects, r = [], n = 0, i = o.length; i > n; n++) e = o[n], t(e) && r.push(e);\n\n return r;\n }.call(this), new this.constructor(n);\n }, i.prototype.removeObjectsInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n).splice(e, o - e + 1);\n }, i.prototype.transformObjectsInRange = function (t, e) {\n var n, i, o, r, s, a, u;\n return s = this.splitObjectsAtRange(t), r = s[0], i = s[1], a = s[2], u = function () {\n var t, s, u;\n\n for (u = [], n = t = 0, s = r.length; s > t; n = ++t) o = r[n], u.push(n >= i && a >= n ? e(o) : o);\n\n return u;\n }(), new this.constructor(u);\n }, i.prototype.splitObjectsAtRange = function (t) {\n var e, n, i, o, s, u;\n return o = this.splitObjectAtPosition(a(t)), n = o[0], e = o[1], i = o[2], s = new this.constructor(n).splitObjectAtPosition(r(t) + i), n = s[0], u = s[1], [n, e, u - 1];\n }, i.prototype.getObjectAtPosition = function (t) {\n var e, n, i;\n return i = this.findIndexAndOffsetAtPosition(t), e = i.index, n = i.offset, this.objects[e];\n }, i.prototype.splitObjectAtPosition = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return s = this.findIndexAndOffsetAtPosition(t), e = s.index, r = s.offset, o = this.objects.slice(0), null != e ? 0 === r ? (c = e, l = 0) : (i = this.getObjectAtIndex(e), a = i.splitAtOffset(r), n = a[0], u = a[1], o.splice(e, 1, n, u), c = e + 1, l = n.getLength() - r) : (c = o.length, l = 0), [o, c, l];\n }, i.prototype.consolidate = function () {\n var t, e, n, i, o, r;\n\n for (i = [], o = this.objects[0], r = this.objects.slice(1), t = 0, e = r.length; e > t; t++) n = r[t], (\"function\" == typeof o.canBeConsolidatedWith ? o.canBeConsolidatedWith(n) : void 0) ? o = o.consolidateWith(n) : (i.push(o), o = n);\n\n return null != o && i.push(o), new this.constructor(i);\n }, i.prototype.consolidateFromIndexToIndex = function (t, e) {\n var n, i, r;\n return i = this.objects.slice(0), r = i.slice(t, e + 1), n = new this.constructor(r).consolidate().toArray(), this.splice.apply(this, [t, r.length].concat(o.call(n)));\n }, i.prototype.findIndexAndOffsetAtPosition = function (t) {\n var e, n, i, o, r, s, a;\n\n for (e = 0, a = this.objects, i = n = 0, o = a.length; o > n; i = ++n) {\n if (s = a[i], r = e + s.getLength(), t >= e && r > t) return {\n index: i,\n offset: t - e\n };\n e = r;\n }\n\n return {\n index: null,\n offset: null\n };\n }, i.prototype.findPositionAtIndexAndOffset = function (t, e) {\n var n, i, o, r, s, a;\n\n for (s = 0, a = this.objects, n = i = 0, o = a.length; o > i; n = ++i) if (r = a[n], t > n) s += r.getLength();else if (n === t) {\n s += e;\n break;\n }\n\n return s;\n }, i.prototype.getEndPosition = function () {\n var t, e;\n return null != this.endPosition ? this.endPosition : this.endPosition = function () {\n var n, i, o;\n\n for (e = 0, o = this.objects, n = 0, i = o.length; i > n; n++) t = o[n], e += t.getLength();\n\n return e;\n }.call(this);\n }, i.prototype.toString = function () {\n return this.objects.join(\"\");\n }, i.prototype.toArray = function () {\n return this.objects.slice(0);\n }, i.prototype.toJSON = function () {\n return this.toArray();\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || s(this.objects, null != t ? t.objects : void 0);\n }, s = function (t, e) {\n var n, i, o, r, s;\n if (null == e && (e = []), t.length !== e.length) return !1;\n\n for (s = !0, i = n = 0, o = t.length; o > n; i = ++n) r = t[i], s && !r.isEqualTo(e[i]) && (s = !1);\n\n return s;\n }, i.prototype.contentsForInspection = function () {\n var t;\n return {\n objects: \"[\" + function () {\n var e, n, i, o;\n\n for (i = this.objects, o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(t.inspect());\n\n return o;\n }.call(this).join(\", \") + \"]\"\n };\n }, a = function (t) {\n return t[0];\n }, r = function (t) {\n return t[1];\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.Text = function (n) {\n function i(t) {\n var n;\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.pieceList = new e.SplittableList(function () {\n var e, i, o;\n\n for (o = [], e = 0, i = t.length; i > e; e++) n = t[e], n.isEmpty() || o.push(n);\n\n return o;\n }());\n }\n\n return t(i, n), i.textForAttachmentWithAttributes = function (t, n) {\n var i;\n return i = new e.AttachmentPiece(t, n), new this([i]);\n }, i.textForStringWithAttributes = function (t, n) {\n var i;\n return i = new e.StringPiece(t, n), new this([i]);\n }, i.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(e.Piece.fromJSON(n));\n\n return r;\n }(), new this(i);\n }, i.prototype.copy = function () {\n return this.copyWithPieceList(this.pieceList);\n }, i.prototype.copyWithPieceList = function (t) {\n return new this.constructor(t.consolidate().toArray());\n }, i.prototype.copyUsingObjectMap = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r, s;\n\n for (o = this.getPieces(), s = [], n = 0, i = o.length; i > n; n++) e = o[n], s.push(null != (r = t.find(e)) ? r : e);\n\n return s;\n }.call(this), new this.constructor(n);\n }, i.prototype.appendText = function (t) {\n return this.insertTextAtPosition(t, this.getLength());\n }, i.prototype.insertTextAtPosition = function (t, e) {\n return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList, e));\n }, i.prototype.removeTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t));\n }, i.prototype.replaceTextAtRange = function (t, e) {\n return this.removeTextAtRange(e).insertTextAtPosition(t, e[0]);\n }, i.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, i;\n if (!(t[0] <= e && e <= t[1])) return i = this.getTextAtRange(t), n = i.getLength(), t[0] < e && (e -= n), this.removeTextAtRange(t).insertTextAtPosition(i, e);\n }, i.prototype.addAttributeAtRange = function (t, e, n) {\n var i;\n return i = {}, i[t] = e, this.addAttributesAtRange(i, n);\n }, i.prototype.addAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAdditionalAttributes(t);\n }));\n }, i.prototype.removeAttributeAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithoutAttribute(t);\n }));\n }, i.prototype.setAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAttributes(t);\n }));\n }, i.prototype.getAttributesAtPosition = function (t) {\n var e, n;\n return null != (e = null != (n = this.pieceList.getObjectAtPosition(t)) ? n.getAttributes() : void 0) ? e : {};\n }, i.prototype.getCommonAttributes = function () {\n var t, n;\n return t = function () {\n var t, e, i, o;\n\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.getAttributes());\n\n return o;\n }.call(this), e.Hash.fromCommonAttributesOfObjects(t).toObject();\n }, i.prototype.getCommonAttributesAtRange = function (t) {\n var e;\n return null != (e = this.getTextAtRange(t).getCommonAttributes()) ? e : {};\n }, i.prototype.getExpandedRangeForAttributeAtOffset = function (t, e) {\n var n, i, o;\n\n for (n = o = e, i = this.getLength(); n > 0 && this.getCommonAttributesAtRange([n - 1, o])[t];) n--;\n\n for (; i > o && this.getCommonAttributesAtRange([e, o + 1])[t];) o++;\n\n return [n, o];\n }, i.prototype.getTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.getSplittableListInRange(t));\n }, i.prototype.getStringAtRange = function (t) {\n return this.pieceList.getSplittableListInRange(t).toString();\n }, i.prototype.getStringAtPosition = function (t) {\n return this.getStringAtRange([t, t + 1]);\n }, i.prototype.startsWithString = function (t) {\n return this.getStringAtRange([0, t.length]) === t;\n }, i.prototype.endsWithString = function (t) {\n var e;\n return e = this.getLength(), this.getStringAtRange([e - t.length, e]) === t;\n }, i.prototype.getAttachmentPieces = function () {\n var t, e, n, i, o;\n\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], null != n.attachment && o.push(n);\n\n return o;\n }, i.prototype.getAttachments = function () {\n var t, e, n, i, o;\n\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.attachment);\n\n return o;\n }, i.prototype.getAttachmentAndPositionById = function (t) {\n var e, n, i, o, r, s;\n\n for (o = 0, r = this.pieceList.toArray(), e = 0, n = r.length; n > e; e++) {\n if (i = r[e], (null != (s = i.attachment) ? s.id : void 0) === t) return {\n attachment: i.attachment,\n position: o\n };\n o += i.length;\n }\n\n return {\n attachment: null,\n position: null\n };\n }, i.prototype.getAttachmentById = function (t) {\n var e, n, i;\n return i = this.getAttachmentAndPositionById(t), e = i.attachment, n = i.position, e;\n }, i.prototype.getRangeOfAttachment = function (t) {\n var e, n;\n return n = this.getAttachmentAndPositionById(t.id), t = n.attachment, e = n.position, null != t ? [e, e + 1] : void 0;\n }, i.prototype.updateAttributesForAttachment = function (t, e) {\n var n;\n return (n = this.getRangeOfAttachment(e)) ? this.addAttributesAtRange(t, n) : this;\n }, i.prototype.getLength = function () {\n return this.pieceList.getEndPosition();\n }, i.prototype.isEmpty = function () {\n return 0 === this.getLength();\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) || (null != t && null != (e = t.pieceList) ? e.isEqualTo(this.pieceList) : void 0);\n }, i.prototype.isBlockBreak = function () {\n return 1 === this.getLength() && this.pieceList.getObjectAtIndex(0).isBlockBreak();\n }, i.prototype.eachPiece = function (t) {\n return this.pieceList.eachObject(t);\n }, i.prototype.getPieces = function () {\n return this.pieceList.toArray();\n }, i.prototype.getPieceAtPosition = function (t) {\n return this.pieceList.getObjectAtPosition(t);\n }, i.prototype.contentsForInspection = function () {\n return {\n pieceList: this.pieceList.inspect()\n };\n }, i.prototype.toSerializableText = function () {\n var t;\n return t = this.pieceList.selectSplittableList(function (t) {\n return t.isSerializable();\n }), this.copyWithPieceList(t);\n }, i.prototype.toString = function () {\n return this.pieceList.toString();\n }, i.prototype.toJSON = function () {\n return this.pieceList.toJSON();\n }, i.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n\n for (i = this.pieceList.toArray(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(JSON.parse(t.toConsole()));\n\n return o;\n }.call(this));\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) a.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n },\n c = [].slice;\n\n t = e.arraysAreEqual, r = e.spliceArray, i = e.getBlockConfig, n = e.getBlockAttributeNames, o = e.getListAttributeNames, e.Block = function (n) {\n function a(t, n) {\n null == t && (t = new e.Text()), null == n && (n = []), a.__super__.constructor.apply(this, arguments), this.text = h(t), this.attributes = n;\n }\n\n var l, h, p, d, f, g, m, v, y;\n return s(a, n), a.fromJSON = function (t) {\n var n;\n return n = e.Text.fromJSON(t.text), new this(n, t.attributes);\n }, a.prototype.isEmpty = function () {\n return this.text.isBlockBreak();\n }, a.prototype.isEqualTo = function (e) {\n return a.__super__.isEqualTo.apply(this, arguments) || this.text.isEqualTo(null != e ? e.text : void 0) && t(this.attributes, null != e ? e.attributes : void 0);\n }, a.prototype.copyWithText = function (t) {\n return new this.constructor(t, this.attributes);\n }, a.prototype.copyWithoutText = function () {\n return this.copyWithText(null);\n }, a.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.text, t);\n }, a.prototype.copyWithoutAttributes = function () {\n return this.copyWithAttributes(null);\n }, a.prototype.copyUsingObjectMap = function (t) {\n var e;\n return this.copyWithText((e = t.find(this.text)) ? e : this.text.copyUsingObjectMap(t));\n }, a.prototype.addAttribute = function (t) {\n var e;\n return e = this.attributes.concat(d(t)), this.copyWithAttributes(e);\n }, a.prototype.removeAttribute = function (t) {\n var e, n;\n return n = i(t).listAttribute, e = g(g(this.attributes, t), n), this.copyWithAttributes(e);\n }, a.prototype.removeLastAttribute = function () {\n return this.removeAttribute(this.getLastAttribute());\n }, a.prototype.getLastAttribute = function () {\n return f(this.attributes);\n }, a.prototype.getAttributes = function () {\n return this.attributes.slice(0);\n }, a.prototype.getAttributeLevel = function () {\n return this.attributes.length;\n }, a.prototype.getAttributeAtLevel = function (t) {\n return this.attributes[t - 1];\n }, a.prototype.hasAttribute = function (t) {\n return u.call(this.attributes, t) >= 0;\n }, a.prototype.hasAttributes = function () {\n return this.getAttributeLevel() > 0;\n }, a.prototype.getLastNestableAttribute = function () {\n return f(this.getNestableAttributes());\n }, a.prototype.getNestableAttributes = function () {\n var t, e, n, o, r;\n\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) t = o[e], i(t).nestable && r.push(t);\n\n return r;\n }, a.prototype.getNestingLevel = function () {\n return this.getNestableAttributes().length;\n }, a.prototype.decreaseNestingLevel = function () {\n var t;\n return (t = this.getLastNestableAttribute()) ? this.removeAttribute(t) : this;\n }, a.prototype.increaseNestingLevel = function () {\n var t, e, n;\n return (t = this.getLastNestableAttribute()) ? (n = this.attributes.lastIndexOf(t), e = r.apply(null, [this.attributes, n + 1, 0].concat(c.call(d(t)))), this.copyWithAttributes(e)) : this;\n }, a.prototype.getListItemAttributes = function () {\n var t, e, n, o, r;\n\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) t = o[e], i(t).listAttribute && r.push(t);\n\n return r;\n }, a.prototype.isListItem = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.listAttribute : void 0;\n }, a.prototype.isTerminalBlock = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.terminal : void 0;\n }, a.prototype.breaksOnReturn = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.breakOnReturn : void 0;\n }, a.prototype.findLineBreakInDirectionFromPosition = function (t, e) {\n var n, i;\n return i = this.toString(), n = function () {\n switch (t) {\n case \"forward\":\n return i.indexOf(\"\\n\", e);\n\n case \"backward\":\n return i.slice(0, e).lastIndexOf(\"\\n\");\n }\n }(), -1 !== n ? n : void 0;\n }, a.prototype.contentsForInspection = function () {\n return {\n text: this.text.inspect(),\n attributes: this.attributes\n };\n }, a.prototype.toString = function () {\n return this.text.toString();\n }, a.prototype.toJSON = function () {\n return {\n text: this.text,\n attributes: this.attributes\n };\n }, a.prototype.getLength = function () {\n return this.text.getLength();\n }, a.prototype.canBeConsolidatedWith = function (t) {\n return !this.hasAttributes() && !t.hasAttributes();\n }, a.prototype.consolidateWith = function (t) {\n var n, i;\n return n = e.Text.textForStringWithAttributes(\"\\n\"), i = this.getTextWithoutBlockBreak().appendText(n), this.copyWithText(i.appendText(t.text));\n }, a.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.getLength() ? (e = this, n = null) : (e = this.copyWithText(this.text.getTextAtRange([0, t])), n = this.copyWithText(this.text.getTextAtRange([t, this.getLength()]))), [e, n];\n }, a.prototype.getBlockBreakPosition = function () {\n return this.text.getLength() - 1;\n }, a.prototype.getTextWithoutBlockBreak = function () {\n return m(this.text) ? this.text.getTextAtRange([0, this.getBlockBreakPosition()]) : this.text.copy();\n }, a.prototype.canBeGrouped = function (t) {\n return this.attributes[t];\n }, a.prototype.canBeGroupedWith = function (t, e) {\n var n, r, s, a;\n return s = t.getAttributes(), r = s[e], n = this.attributes[e], n === r && !(i(n).group === !1 && (a = s[e + 1], u.call(o(), a) < 0));\n }, h = function (t) {\n return t = y(t), t = l(t);\n }, y = function (t) {\n var n, i, o, r, s, a;\n return r = !1, a = t.getPieces(), i = 2 <= a.length ? c.call(a, 0, n = a.length - 1) : (n = 0, []), o = a[n++], null == o ? t : (i = function () {\n var t, e, n;\n\n for (n = [], t = 0, e = i.length; e > t; t++) s = i[t], s.isBlockBreak() ? (r = !0, n.push(v(s))) : n.push(s);\n\n return n;\n }(), r ? new e.Text(c.call(i).concat([o])) : t);\n }, p = e.Text.textForStringWithAttributes(\"\\n\", {\n blockBreak: !0\n }), l = function (t) {\n return m(t) ? t : t.appendText(p);\n }, m = function (t) {\n var e, n;\n return n = t.getLength(), 0 === n ? !1 : (e = t.getTextAtRange([n - 1, n]), e.isBlockBreak());\n }, v = function (t) {\n return t.copyWithoutAttribute(\"blockBreak\");\n }, d = function (t) {\n var e;\n return e = i(t).listAttribute, null != e ? [e, t] : [t];\n }, f = function (t) {\n return t.slice(-1)[0];\n }, g = function (t, e) {\n var n;\n return n = t.lastIndexOf(e), -1 === n ? t : r(t, n, 1);\n }, a;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n },\n a = [].slice;\n\n n = e.tagName, i = e.walkTree, t = e.nodeIsAttachmentElement, e.HTMLSanitizer = function (r) {\n function u(t, e) {\n var n;\n n = null != e ? e : {}, this.allowedAttributes = n.allowedAttributes, this.forbiddenProtocols = n.forbiddenProtocols, null == this.allowedAttributes && (this.allowedAttributes = c), null == this.forbiddenProtocols && (this.forbiddenProtocols = l), this.body = h(t);\n }\n\n var c, l, h, p;\n return o(u, r), c = \"style href src width height class\".split(\" \"), l = \"javascript:\".split(\" \"), u.sanitize = function (t, e) {\n var n;\n return n = new this(t, e), n.sanitize(), n;\n }, u.prototype.sanitize = function () {\n return this.sanitizeElements(), this.normalizeListElementNesting();\n }, u.prototype.getHTML = function () {\n return this.body.innerHTML;\n }, u.prototype.getBody = function () {\n return this.body;\n }, u.prototype.sanitizeElements = function () {\n var t, n, o, r, s;\n\n for (s = i(this.body), r = []; s.nextNode();) switch (o = s.currentNode, o.nodeType) {\n case Node.ELEMENT_NODE:\n p(o) ? r.push(o) : this.sanitizeElement(o);\n break;\n\n case Node.COMMENT_NODE:\n r.push(o);\n }\n\n for (t = 0, n = r.length; n > t; t++) o = r[t], e.removeNode(o);\n\n return this.body;\n }, u.prototype.sanitizeElement = function (t) {\n var e, n, i, o, r;\n\n for (t.hasAttribute(\"href\") && (o = t.protocol, s.call(this.forbiddenProtocols, o) >= 0 && t.removeAttribute(\"href\")), r = a.call(t.attributes), e = 0, n = r.length; n > e; e++) i = r[e].name, s.call(this.allowedAttributes, i) >= 0 || 0 === i.indexOf(\"data-trix\") || t.removeAttribute(i);\n\n return t;\n }, u.prototype.normalizeListElementNesting = function () {\n var t, e, i, o, r;\n\n for (r = a.call(this.body.querySelectorAll(\"ul,ol\")), t = 0, e = r.length; e > t; t++) i = r[t], (o = i.previousElementSibling) && \"li\" === n(o) && o.appendChild(i);\n\n return this.body;\n }, p = function (e) {\n return (null != e ? e.nodeType : void 0) !== Node.ELEMENT_NODE || t(e) ? void 0 : \"script\" === n(e) || \"false\" === e.getAttribute(\"data-trix-serialize\");\n }, h = function (t) {\n var e, n, i, o, r;\n\n for (null == t && (t = \"\"), t = t.replace(/<\\/html[^>]*>[^]*$/i, \"\"), e = document.implementation.createHTMLDocument(\"\"), e.documentElement.innerHTML = t, r = e.head.querySelectorAll(\"style\"), i = 0, o = r.length; o > i; i++) n = r[i], e.body.appendChild(n);\n\n return e.body;\n }, u;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) d.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty,\n f = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n t = e.arraysAreEqual, s = e.makeElement, l = e.tagName, r = e.getBlockTagNames, h = e.walkTree, o = e.findClosestElementFromNode, i = e.elementContainsNode, a = e.nodeIsAttachmentElement, u = e.normalizeSpaces, n = e.breakableWhitespacePattern, c = e.squishBreakableWhitespace, e.HTMLParser = function (d) {\n function g(t, e) {\n this.html = t, this.referenceElement = (null != e ? e : {}).referenceElement, this.blocks = [], this.blockElements = [], this.processedElements = [];\n }\n\n var m, v, y, b, A, C, x, w, E, S, R, k;\n return p(g, d), g.parse = function (t, e) {\n var n;\n return n = new this(t, e), n.parse(), n;\n }, g.prototype.getDocument = function () {\n return e.Document.fromJSON(this.blocks);\n }, g.prototype.parse = function () {\n var t, n;\n\n try {\n for (this.createHiddenContainer(), t = e.HTMLSanitizer.sanitize(this.html).getHTML(), this.containerElement.innerHTML = t, n = h(this.containerElement, {\n usingFilter: w\n }); n.nextNode();) this.processNode(n.currentNode);\n\n return this.translateBlockElementMarginsToNewlines();\n } finally {\n this.removeHiddenContainer();\n }\n }, g.prototype.createHiddenContainer = function () {\n return this.referenceElement ? (this.containerElement = this.referenceElement.cloneNode(!1), this.containerElement.removeAttribute(\"id\"), this.containerElement.setAttribute(\"data-trix-internal\", \"\"), this.containerElement.style.display = \"none\", this.referenceElement.parentNode.insertBefore(this.containerElement, this.referenceElement.nextSibling)) : (this.containerElement = s({\n tagName: \"div\",\n style: {\n display: \"none\"\n }\n }), document.body.appendChild(this.containerElement));\n }, g.prototype.removeHiddenContainer = function () {\n return e.removeNode(this.containerElement);\n }, w = function (t) {\n return \"style\" === l(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, g.prototype.processNode = function (t) {\n switch (t.nodeType) {\n case Node.TEXT_NODE:\n if (!this.isInsignificantTextNode(t)) return this.appendBlockForTextNode(t), this.processTextNode(t);\n break;\n\n case Node.ELEMENT_NODE:\n return this.appendBlockForElement(t), this.processElement(t);\n }\n }, g.prototype.appendBlockForTextNode = function (e) {\n var n, i, o;\n return i = e.parentNode, i === this.currentBlockElement || i !== this.containerElement && !this.isBlockElement(i) ? void 0 : (n = this.getBlockAttributes(i), t(n, null != (o = this.currentBlock) ? o.attributes : void 0) ? void 0 : (this.currentBlock = this.appendBlockForAttributesWithElement(n, i), this.currentBlockElement = i));\n }, g.prototype.appendBlockForElement = function (e) {\n var n, o, r, s;\n\n if (r = this.isBlockElement(e), o = i(this.currentBlockElement, e), r && !this.isBlockElement(e.firstChild)) {\n if (!(this.isInsignificantTextNode(e.firstChild) && this.isBlockElement(e.firstElementChild) || (n = this.getBlockAttributes(e), o && t(n, this.currentBlock.attributes)))) return this.currentBlock = this.appendBlockForAttributesWithElement(n, e), this.currentBlockElement = e;\n } else if (this.currentBlockElement && !o && !r) return (s = this.findParentBlockElement(e)) ? this.appendBlockForElement(s) : (this.currentBlock = this.appendEmptyBlock(), this.currentBlockElement = null);\n }, g.prototype.findParentBlockElement = function (t) {\n var e;\n\n for (e = t.parentElement; e && e !== this.containerElement;) {\n if (this.isBlockElement(e) && f.call(this.blockElements, e) >= 0) return e;\n e = e.parentElement;\n }\n\n return null;\n }, g.prototype.processTextNode = function (t) {\n var e, n;\n return n = t.data, v(t.parentNode) || (n = c(n), R(null != (e = t.previousSibling) ? e.textContent : void 0) && (n = C(n))), this.appendStringWithAttributes(n, this.getTextAttributes(t.parentNode));\n }, g.prototype.processElement = function (t) {\n var e, n, i, o, r;\n if (a(t)) return e = y(t), Object.keys(e).length && (o = this.getTextAttributes(t), this.appendAttachmentWithAttributes(e, o), t.innerHTML = \"\"), this.processedElements.push(t);\n\n switch (l(t)) {\n case \"br\":\n return this.isExtraBR(t) || this.isBlockElement(t.nextSibling) || this.appendStringWithAttributes(\"\\n\", this.getTextAttributes(t)), this.processedElements.push(t);\n\n case \"img\":\n e = {\n url: t.getAttribute(\"src\"),\n contentType: \"image\"\n }, i = A(t);\n\n for (n in i) r = i[n], e[n] = r;\n\n return this.appendAttachmentWithAttributes(e, this.getTextAttributes(t)), this.processedElements.push(t);\n\n case \"tr\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\"\\n\");\n break;\n\n case \"td\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\" | \");\n }\n }, g.prototype.appendBlockForAttributesWithElement = function (t, e) {\n var n;\n return this.blockElements.push(e), n = m(t), this.blocks.push(n), n;\n }, g.prototype.appendEmptyBlock = function () {\n return this.appendBlockForAttributesWithElement([], null);\n }, g.prototype.appendStringWithAttributes = function (t, e) {\n return this.appendPiece(S(t, e));\n }, g.prototype.appendAttachmentWithAttributes = function (t, e) {\n return this.appendPiece(E(t, e));\n }, g.prototype.appendPiece = function (t) {\n return 0 === this.blocks.length && this.appendEmptyBlock(), this.blocks[this.blocks.length - 1].text.push(t);\n }, g.prototype.appendStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[i.length - 1], \"string\" === (null != n ? n.type : void 0) ? n.string += t : i.push(S(t));\n }, g.prototype.prependStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[0], \"string\" === (null != n ? n.type : void 0) ? n.string = t + n.string : i.unshift(S(t));\n }, S = function (t, e) {\n var n;\n return null == e && (e = {}), n = \"string\", t = u(t), {\n string: t,\n attributes: e,\n type: n\n };\n }, E = function (t, e) {\n var n;\n return null == e && (e = {}), n = \"attachment\", {\n attachment: t,\n attributes: e,\n type: n\n };\n }, m = function (t) {\n var e;\n return null == t && (t = {}), e = [], {\n text: e,\n attributes: t\n };\n }, g.prototype.getTextAttributes = function (t) {\n var n, i, r, s, u, c, l, h, p, d, f, g, m;\n r = {}, d = e.config.textAttributes;\n\n for (n in d) if (u = d[n], u.tagName && o(t, {\n matchingSelector: u.tagName,\n untilNode: this.containerElement\n })) r[n] = !0;else if (u.parser) {\n if (m = u.parser(t)) {\n for (i = !1, f = this.findBlockElementAncestors(t), c = 0, p = f.length; p > c; c++) if (s = f[c], u.parser(s) === m) {\n i = !0;\n break;\n }\n\n i || (r[n] = m);\n }\n } else u.styleProperty && (m = t.style[u.styleProperty]) && (r[n] = m);\n\n if (a(t) && (l = t.getAttribute(\"data-trix-attributes\"))) {\n g = JSON.parse(l);\n\n for (h in g) m = g[h], r[h] = m;\n }\n\n return r;\n }, g.prototype.getBlockAttributes = function (t) {\n var n, i, o, r;\n\n for (i = []; t && t !== this.containerElement;) {\n r = e.config.blockAttributes;\n\n for (n in r) o = r[n], o.parse !== !1 && l(t) === o.tagName && ((\"function\" == typeof o.test ? o.test(t) : void 0) || !o.test) && (i.push(n), o.listAttribute && i.push(o.listAttribute));\n\n t = t.parentNode;\n }\n\n return i.reverse();\n }, g.prototype.findBlockElementAncestors = function (t) {\n var e, n;\n\n for (e = []; t && t !== this.containerElement;) n = l(t), f.call(r(), n) >= 0 && e.push(t), t = t.parentNode;\n\n return e;\n }, y = function (t) {\n return JSON.parse(t.getAttribute(\"data-trix-attachment\"));\n }, A = function (t) {\n var e, n, i;\n return i = t.getAttribute(\"width\"), n = t.getAttribute(\"height\"), e = {}, i && (e.width = parseInt(i, 10)), n && (e.height = parseInt(n, 10)), e;\n }, g.prototype.isBlockElement = function (t) {\n var e;\n if ((null != t ? t.nodeType : void 0) === Node.ELEMENT_NODE && !a(t) && !o(t, {\n matchingSelector: \"td\",\n untilNode: this.containerElement\n })) return e = l(t), f.call(r(), e) >= 0 || \"block\" === window.getComputedStyle(t).display;\n }, g.prototype.isInsignificantTextNode = function (t) {\n var e, n, i;\n if ((null != t ? t.nodeType : void 0) === Node.TEXT_NODE && k(t.data) && (n = t.parentNode, i = t.previousSibling, e = t.nextSibling, (!x(n.previousSibling) || this.isBlockElement(n.previousSibling)) && !v(n))) return !i || this.isBlockElement(i) || !e || this.isBlockElement(e);\n }, g.prototype.isExtraBR = function (t) {\n return \"br\" === l(t) && this.isBlockElement(t.parentNode) && t.parentNode.lastChild === t;\n }, v = function (t) {\n var e;\n return e = window.getComputedStyle(t).whiteSpace, \"pre\" === e || \"pre-wrap\" === e || \"pre-line\" === e;\n }, x = function (t) {\n return t && !R(t.textContent);\n }, g.prototype.translateBlockElementMarginsToNewlines = function () {\n var t, e, n, i, o, r, s, a;\n\n for (e = this.getMarginOfDefaultBlockElement(), s = this.blocks, a = [], i = n = 0, o = s.length; o > n; i = ++n) t = s[i], (r = this.getMarginOfBlockElementAtIndex(i)) && (r.top > 2 * e.top && this.prependStringToTextAtIndex(\"\\n\", i), a.push(r.bottom > 2 * e.bottom ? this.appendStringToTextAtIndex(\"\\n\", i) : void 0));\n\n return a;\n }, g.prototype.getMarginOfBlockElementAtIndex = function (t) {\n var e, n;\n return !(e = this.blockElements[t]) || !e.textContent || (n = l(e), f.call(r(), n) >= 0 || f.call(this.processedElements, e) >= 0) ? void 0 : b(e);\n }, g.prototype.getMarginOfDefaultBlockElement = function () {\n var t;\n return t = s(e.config.blockAttributes[\"default\"].tagName), this.containerElement.appendChild(t), b(t);\n }, b = function (t) {\n var e;\n return e = window.getComputedStyle(t), \"block\" === e.display ? {\n top: parseInt(e.marginTop),\n bottom: parseInt(e.marginBottom)\n } : void 0;\n }, C = function (t) {\n return t.replace(RegExp(\"^\" + n.source + \"+\"), \"\");\n }, k = function (t) {\n return RegExp(\"^\" + n.source + \"*$\").test(t);\n }, R = function (t) {\n return /\\s$/.test(t);\n }, g;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n t = e.arraysAreEqual, i = e.normalizeRange, o = e.rangeIsCollapsed, n = e.getBlockConfig, e.Document = function (s) {\n function c(t) {\n null == t && (t = []), c.__super__.constructor.apply(this, arguments), 0 === t.length && (t = [new e.Block()]), this.blockList = e.SplittableList.box(t);\n }\n\n var l;\n return r(c, s), c.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(e.Block.fromJSON(n));\n\n return r;\n }(), new this(i);\n }, c.fromHTML = function (t, n) {\n return e.HTMLParser.parse(t, n).getDocument();\n }, c.fromString = function (t, n) {\n var i;\n return i = e.Text.textForStringWithAttributes(t, n), new this([new e.Block(i)]);\n }, c.prototype.isEmpty = function () {\n var t;\n return 1 === this.blockList.length && (t = this.getBlockAtIndex(0), t.isEmpty() && !t.hasAttributes());\n }, c.prototype.copy = function (t) {\n var e;\n return null == t && (t = {}), e = t.consolidateBlocks ? this.blockList.consolidate().toArray() : this.blockList.toArray(), new this.constructor(e);\n }, c.prototype.copyUsingObjectsFromDocument = function (t) {\n var n;\n return n = new e.ObjectMap(t.getObjects()), this.copyUsingObjectMap(n);\n }, c.prototype.copyUsingObjectMap = function (t) {\n var e, n, i;\n return n = function () {\n var n, o, r, s;\n\n for (r = this.getBlocks(), s = [], n = 0, o = r.length; o > n; n++) e = r[n], s.push((i = t.find(e)) ? i : e.copyUsingObjectMap(t));\n\n return s;\n }.call(this), new this.constructor(n);\n }, c.prototype.copyWithBaseBlockAttributes = function (t) {\n var e, n, i;\n return null == t && (t = []), i = function () {\n var i, o, r, s;\n\n for (r = this.getBlocks(), s = [], i = 0, o = r.length; o > i; i++) n = r[i], e = t.concat(n.getAttributes()), s.push(n.copyWithAttributes(e));\n\n return s;\n }.call(this), new this.constructor(i);\n }, c.prototype.replaceBlock = function (t, e) {\n var n;\n return n = this.blockList.indexOf(t), -1 === n ? this : new this.constructor(this.blockList.replaceObjectAtIndex(e, n));\n }, c.prototype.insertDocumentAtRange = function (t, e) {\n var n, r, s, a, u, c, l;\n return r = t.blockList, u = (e = i(e))[0], c = this.locationFromPosition(u), s = c.index, a = c.offset, l = this, n = this.getBlockAtPosition(u), o(e) && n.isEmpty() && !n.hasAttributes() ? l = new this.constructor(l.blockList.removeObjectAtIndex(s)) : n.getBlockBreakPosition() === a && u++, l = l.removeTextAtRange(e), new this.constructor(l.blockList.insertSplittableListAtPosition(r, u));\n }, c.prototype.mergeDocumentAtRange = function (e, n) {\n var o, r, s, a, u, c, l, h, p, d, f, g;\n return f = (n = i(n))[0], d = this.locationFromPosition(f), r = this.getBlockAtIndex(d.index).getAttributes(), o = e.getBaseBlockAttributes(), g = r.slice(-o.length), t(o, g) ? (l = r.slice(0, -o.length), c = e.copyWithBaseBlockAttributes(l)) : c = e.copy({\n consolidateBlocks: !0\n }).copyWithBaseBlockAttributes(r), s = c.getBlockCount(), a = c.getBlockAtIndex(0), t(r, a.getAttributes()) ? (u = a.getTextWithoutBlockBreak(), p = this.insertTextAtRange(u, n), s > 1 && (c = new this.constructor(c.getBlocks().slice(1)), h = f + u.getLength(), p = p.insertDocumentAtRange(c, h))) : p = this.insertDocumentAtRange(c, n), p;\n }, c.prototype.insertTextAtRange = function (t, e) {\n var n, o, r, s, a;\n return a = (e = i(e))[0], s = this.locationFromPosition(a), o = s.index, r = s.offset, n = this.removeTextAtRange(e), new this.constructor(n.blockList.editObjectAtIndex(o, function (e) {\n return e.copyWithText(e.text.insertTextAtPosition(t, r));\n }));\n }, c.prototype.removeTextAtRange = function (t) {\n var e, n, r, s, a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n return p = t = i(t), l = p[0], A = p[1], o(t) ? this : (d = this.locationRangeFromRange(t), u = d[0], y = d[1], a = u.index, c = u.offset, s = this.getBlockAtIndex(a), v = y.index, b = y.offset, m = this.getBlockAtIndex(v), f = A - l === 1 && s.getBlockBreakPosition() === c && m.getBlockBreakPosition() !== b && \"\\n\" === m.text.getStringAtPosition(b), f ? r = this.blockList.editObjectAtIndex(v, function (t) {\n return t.copyWithText(t.text.removeTextAtRange([b, b + 1]));\n }) : (h = s.text.getTextAtRange([0, c]), C = m.text.getTextAtRange([b, m.getLength()]), x = h.appendText(C), g = a !== v && 0 === c, w = g && s.getAttributeLevel() >= m.getAttributeLevel(), n = w ? m.copyWithText(x) : s.copyWithText(x), e = v + 1 - a, r = this.blockList.splice(a, e, n)), new this.constructor(r));\n }, c.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, o, r, s, u, c, l, h, p, d;\n return c = t = i(t), p = c[0], r = c[1], e >= p && r >= e ? this : (o = this.getDocumentAtRange(t), h = this.removeTextAtRange(t), u = e > p, u && (e -= o.getLength()), l = o.getBlocks(), s = l[0], n = 2 <= l.length ? a.call(l, 1) : [], 0 === n.length ? (d = s.getTextWithoutBlockBreak(), u && (e += 1)) : d = s.text, h = h.insertTextAtRange(d, e), 0 === n.length ? h : (o = new this.constructor(n), e += d.getLength(), h.insertDocumentAtRange(o, e)));\n }, c.prototype.addAttributeAtRange = function (t, e, i) {\n var o;\n return o = this.blockList, this.eachBlockAtRange(i, function (i, r, s) {\n return o = o.editObjectAtIndex(s, function () {\n return n(t) ? i.addAttribute(t, e) : r[0] === r[1] ? i : i.copyWithText(i.text.addAttributeAtRange(t, e, r));\n });\n }), new this.constructor(o);\n }, c.prototype.addAttribute = function (t, e) {\n var n;\n return n = this.blockList, this.eachBlock(function (i, o) {\n return n = n.editObjectAtIndex(o, function () {\n return i.addAttribute(t, e);\n });\n }), new this.constructor(n);\n }, c.prototype.removeAttributeAtRange = function (t, e) {\n var i;\n return i = this.blockList, this.eachBlockAtRange(e, function (e, o, r) {\n return n(t) ? i = i.editObjectAtIndex(r, function () {\n return e.removeAttribute(t);\n }) : o[0] !== o[1] ? i = i.editObjectAtIndex(r, function () {\n return e.copyWithText(e.text.removeAttributeAtRange(t, o));\n }) : void 0;\n }), new this.constructor(i);\n }, c.prototype.updateAttributesForAttachment = function (t, e) {\n var n, i, o, r;\n return o = (i = this.getRangeOfAttachment(e))[0], n = this.locationFromPosition(o).index, r = this.getTextAtIndex(n), new this.constructor(this.blockList.editObjectAtIndex(n, function (n) {\n return n.copyWithText(r.updateAttributesForAttachment(t, e));\n }));\n }, c.prototype.removeAttributeForAttachment = function (t, e) {\n var n;\n return n = this.getRangeOfAttachment(e), this.removeAttributeAtRange(t, n);\n }, c.prototype.insertBlockBreakAtRange = function (t) {\n var n, o, r, s;\n return s = (t = i(t))[0], r = this.locationFromPosition(s).offset, o = this.removeTextAtRange(t), 0 === r && (n = [new e.Block()]), new this.constructor(o.blockList.insertSplittableListAtPosition(new e.SplittableList(n), s));\n }, c.prototype.applyBlockAttributeAtRange = function (t, e, i) {\n var o, r, s, a;\n return s = this.expandRangeToLineBreaksAndSplitBlocks(i), r = s.document, i = s.range, o = n(t), o.listAttribute ? (r = r.removeLastListAttributeAtRange(i, {\n exceptAttributeName: t\n }), a = r.convertLineBreaksToBlockBreaksInRange(i), r = a.document, i = a.range) : r = o.exclusive ? r.removeBlockAttributesAtRange(i) : o.terminal ? r.removeLastTerminalAttributeAtRange(i) : r.consolidateBlocksAtRange(i), r.addAttributeAtRange(t, e, i);\n }, c.prototype.removeLastListAttributeAtRange = function (t, e) {\n var i;\n return null == e && (e = {}), i = this.blockList, this.eachBlockAtRange(t, function (t, o, r) {\n var s;\n if ((s = t.getLastAttribute()) && n(s).listAttribute && s !== e.exceptAttributeName) return i = i.editObjectAtIndex(r, function () {\n return t.removeAttribute(s);\n });\n }), new this.constructor(i);\n }, c.prototype.removeLastTerminalAttributeAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, i, o) {\n var r;\n if ((r = t.getLastAttribute()) && n(r).terminal) return e = e.editObjectAtIndex(o, function () {\n return t.removeAttribute(r);\n });\n }), new this.constructor(e);\n }, c.prototype.removeBlockAttributesAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, n, i) {\n return t.hasAttributes() ? e = e.editObjectAtIndex(i, function () {\n return t.copyWithoutAttributes();\n }) : void 0;\n }), new this.constructor(e);\n }, c.prototype.expandRangeToLineBreaksAndSplitBlocks = function (t) {\n var e, n, o, r, s, a, u, c, l;\n return a = t = i(t), l = a[0], r = a[1], c = this.locationFromPosition(l), o = this.locationFromPosition(r), e = this, u = e.getBlockAtIndex(c.index), null != (c.offset = u.findLineBreakInDirectionFromPosition(\"backward\", c.offset)) && (s = e.positionFromLocation(c), e = e.insertBlockBreakAtRange([s, s + 1]), o.index += 1, o.offset -= e.getBlockAtIndex(c.index).getLength(), c.index += 1), c.offset = 0, 0 === o.offset && o.index > c.index ? (o.index -= 1, o.offset = e.getBlockAtIndex(o.index).getBlockBreakPosition()) : (n = e.getBlockAtIndex(o.index), \"\\n\" === n.text.getStringAtRange([o.offset - 1, o.offset]) ? o.offset -= 1 : o.offset = n.findLineBreakInDirectionFromPosition(\"forward\", o.offset), o.offset !== n.getBlockBreakPosition() && (s = e.positionFromLocation(o), e = e.insertBlockBreakAtRange([s, s + 1]))), l = e.positionFromLocation(c), r = e.positionFromLocation(o), t = i([l, r]), {\n document: e,\n range: t\n };\n }, c.prototype.convertLineBreaksToBlockBreaksInRange = function (t) {\n var e, n, o;\n return n = (t = i(t))[0], o = this.getStringAtRange(t).slice(0, -1), e = this, o.replace(/.*?\\n/g, function (t) {\n return n += t.length, e = e.insertBlockBreakAtRange([n - 1, n]);\n }), {\n document: e,\n range: t\n };\n }, c.prototype.consolidateBlocksAtRange = function (t) {\n var e, n, o, r, s;\n return o = t = i(t), s = o[0], n = o[1], r = this.locationFromPosition(s).index, e = this.locationFromPosition(n).index, new this.constructor(this.blockList.consolidateFromIndexToIndex(r, e));\n }, c.prototype.getDocumentAtRange = function (t) {\n var e;\n return t = i(t), e = this.blockList.getSplittableListInRange(t).toArray(), new this.constructor(e);\n }, c.prototype.getStringAtRange = function (t) {\n var e, n, o;\n return o = t = i(t), n = o[o.length - 1], n !== this.getLength() && (e = -1), this.getDocumentAtRange(t).toString().slice(0, e);\n }, c.prototype.getBlockAtIndex = function (t) {\n return this.blockList.getObjectAtIndex(t);\n }, c.prototype.getBlockAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getBlockAtIndex(e);\n }, c.prototype.getTextAtIndex = function (t) {\n var e;\n return null != (e = this.getBlockAtIndex(t)) ? e.text : void 0;\n }, c.prototype.getTextAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getTextAtIndex(e);\n }, c.prototype.getPieceAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getPieceAtPosition(n);\n }, c.prototype.getCharacterAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getStringAtRange([n, n + 1]);\n }, c.prototype.getLength = function () {\n return this.blockList.getEndPosition();\n }, c.prototype.getBlocks = function () {\n return this.blockList.toArray();\n }, c.prototype.getBlockCount = function () {\n return this.blockList.length;\n }, c.prototype.getEditCount = function () {\n return this.editCount;\n }, c.prototype.eachBlock = function (t) {\n return this.blockList.eachObject(t);\n }, c.prototype.eachBlockAtRange = function (t, e) {\n var n, o, r, s, a, u, c, l, h, p, d, f;\n if (u = t = i(t), d = u[0], r = u[1], p = this.locationFromPosition(d), o = this.locationFromPosition(r), p.index === o.index) return n = this.getBlockAtIndex(p.index), f = [p.offset, o.offset], e(n, f, p.index);\n\n for (h = [], a = s = c = p.index, l = o.index; l >= c ? l >= s : s >= l; a = l >= c ? ++s : --s) (n = this.getBlockAtIndex(a)) ? (f = function () {\n switch (a) {\n case p.index:\n return [p.offset, n.text.getLength()];\n\n case o.index:\n return [0, o.offset];\n\n default:\n return [0, n.text.getLength()];\n }\n }(), h.push(e(n, f, a))) : h.push(void 0);\n\n return h;\n }, c.prototype.getCommonAttributesAtRange = function (t) {\n var n, r, s;\n return r = (t = i(t))[0], o(t) ? this.getCommonAttributesAtPosition(r) : (s = [], n = [], this.eachBlockAtRange(t, function (t, e) {\n return e[0] !== e[1] ? (s.push(t.text.getCommonAttributesAtRange(e)), n.push(l(t))) : void 0;\n }), e.Hash.fromCommonAttributesOfObjects(s).merge(e.Hash.fromCommonAttributesOfObjects(n)).toObject());\n }, c.prototype.getCommonAttributesAtPosition = function (t) {\n var n, i, o, r, s, a, c, h, p, d;\n if (p = this.locationFromPosition(t), s = p.index, h = p.offset, o = this.getBlockAtIndex(s), !o) return {};\n r = l(o), n = o.text.getAttributesAtPosition(h), i = o.text.getAttributesAtPosition(h - 1), a = function () {\n var t, n;\n t = e.config.textAttributes, n = [];\n\n for (c in t) d = t[c], d.inheritable && n.push(c);\n\n return n;\n }();\n\n for (c in i) d = i[c], (d === n[c] || u.call(a, c) >= 0) && (r[c] = d);\n\n return r;\n }, c.prototype.getRangeOfCommonAttributeAtPosition = function (t, e) {\n var n, o, r, s, a, u, c, l, h;\n return a = this.locationFromPosition(e), r = a.index, s = a.offset, h = this.getTextAtIndex(r), u = h.getExpandedRangeForAttributeAtOffset(t, s), l = u[0], o = u[1], c = this.positionFromLocation({\n index: r,\n offset: l\n }), n = this.positionFromLocation({\n index: r,\n offset: o\n }), i([c, n]);\n }, c.prototype.getBaseBlockAttributes = function () {\n var t, e, n, i, o, r, s;\n\n for (t = this.getBlockAtIndex(0).getAttributes(), n = i = 1, s = this.getBlockCount(); s >= 1 ? s > i : i > s; n = s >= 1 ? ++i : --i) e = this.getBlockAtIndex(n).getAttributes(), r = Math.min(t.length, e.length), t = function () {\n var n, i, s;\n\n for (s = [], o = n = 0, i = r; (i >= 0 ? i > n : n > i) && e[o] === t[o]; o = i >= 0 ? ++n : --n) s.push(e[o]);\n\n return s;\n }();\n\n return t;\n }, l = function (t) {\n var e, n;\n return n = {}, (e = t.getLastAttribute()) && (n[e] = !0), n;\n }, c.prototype.getAttachmentById = function (t) {\n var e, n, i, o;\n\n for (o = this.getAttachments(), n = 0, i = o.length; i > n; n++) if (e = o[n], e.id === t) return e;\n }, c.prototype.getAttachmentPieces = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n var n;\n return n = e.text, t = t.concat(n.getAttachmentPieces());\n }), t;\n }, c.prototype.getAttachments = function () {\n var t, e, n, i, o;\n\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.attachment);\n\n return o;\n }, c.prototype.getRangeOfAttachment = function (t) {\n var e, n, o, r, s, a, u;\n\n for (r = 0, s = this.blockList.toArray(), n = e = 0, o = s.length; o > e; n = ++e) {\n if (a = s[n].text, u = a.getRangeOfAttachment(t)) return i([r + u[0], r + u[1]]);\n r += a.getLength();\n }\n }, c.prototype.getLocationRangeOfAttachment = function (t) {\n var e;\n return e = this.getRangeOfAttachment(t), this.locationRangeFromRange(e);\n }, c.prototype.getAttachmentPieceForAttachment = function (t) {\n var e, n, i, o;\n\n for (o = this.getAttachmentPieces(), e = 0, n = o.length; n > e; e++) if (i = o[e], i.attachment === t) return i;\n }, c.prototype.findRangesForBlockAttribute = function (t) {\n var e, n, i, o, r, s, a;\n\n for (r = 0, s = [], a = this.getBlocks(), n = 0, i = a.length; i > n; n++) e = a[n], o = e.getLength(), e.hasAttribute(t) && s.push([r, r + o]), r += o;\n\n return s;\n }, c.prototype.findRangesForTextAttribute = function (t, e) {\n var n, i, o, r, s, a, u, c, l, h;\n\n for (h = (null != e ? e : {}).withValue, a = 0, u = [], c = [], r = function (e) {\n return null != h ? e.getAttribute(t) === h : e.hasAttribute(t);\n }, l = this.getPieces(), n = 0, i = l.length; i > n; n++) s = l[n], o = s.getLength(), r(s) && (u[1] === a ? u[1] = a + o : c.push(u = [a, a + o])), a += o;\n\n return c;\n }, c.prototype.locationFromPosition = function (t) {\n var e, n;\n return n = this.blockList.findIndexAndOffsetAtPosition(Math.max(0, t)), null != n.index ? n : (e = this.getBlocks(), {\n index: e.length - 1,\n offset: e[e.length - 1].getLength()\n });\n }, c.prototype.positionFromLocation = function (t) {\n return this.blockList.findPositionAtIndexAndOffset(t.index, t.offset);\n }, c.prototype.locationRangeFromPosition = function (t) {\n return i(this.locationFromPosition(t));\n }, c.prototype.locationRangeFromRange = function (t) {\n var e, n, o, r;\n if (t = i(t)) return r = t[0], n = t[1], o = this.locationFromPosition(r), e = this.locationFromPosition(n), i([o, e]);\n }, c.prototype.rangeFromLocationRange = function (t) {\n var e, n;\n return t = i(t), e = this.positionFromLocation(t[0]), o(t) || (n = this.positionFromLocation(t[1])), i([e, n]);\n }, c.prototype.isEqualTo = function (t) {\n return this.blockList.isEqualTo(null != t ? t.blockList : void 0);\n }, c.prototype.getTexts = function () {\n var t, e, n, i, o;\n\n for (i = this.getBlocks(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(t.text);\n\n return o;\n }, c.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (n = [], i = this.getTexts(), t = 0, e = i.length; e > t; t++) o = i[t], n.push.apply(n, o.getPieces());\n\n return n;\n }, c.prototype.getObjects = function () {\n return this.getBlocks().concat(this.getTexts()).concat(this.getPieces());\n }, c.prototype.toSerializableDocument = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n return t.push(e.copyWithText(e.text.toSerializableText()));\n }), new this.constructor(t);\n }, c.prototype.toString = function () {\n return this.blockList.toString();\n }, c.prototype.toJSON = function () {\n return this.blockList.toJSON();\n }, c.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n\n for (i = this.blockList.toArray(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(JSON.parse(t.text.toConsole()));\n\n return o;\n }.call(this));\n }, c;\n }(e.Object);\n }.call(this), function () {\n e.LineBreakInsertion = function () {\n function t(t) {\n var e;\n this.composition = t, this.document = this.composition.document, e = this.composition.getSelectedRange(), this.startPosition = e[0], this.endPosition = e[1], this.startLocation = this.document.locationFromPosition(this.startPosition), this.endLocation = this.document.locationFromPosition(this.endPosition), this.block = this.document.getBlockAtIndex(this.endLocation.index), this.breaksOnReturn = this.block.breaksOnReturn(), this.previousCharacter = this.block.text.getStringAtPosition(this.endLocation.offset - 1), this.nextCharacter = this.block.text.getStringAtPosition(this.endLocation.offset);\n }\n\n return t.prototype.shouldInsertBlockBreak = function () {\n return this.block.hasAttributes() && this.block.isListItem() && !this.block.isEmpty() ? 0 !== this.startLocation.offset : this.breaksOnReturn && \"\\n\" !== this.nextCharacter;\n }, t.prototype.shouldBreakFormattedBlock = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && (this.breaksOnReturn && \"\\n\" === this.nextCharacter || \"\\n\" === this.previousCharacter);\n }, t.prototype.shouldDecreaseListLevel = function () {\n return this.block.hasAttributes() && this.block.isListItem() && this.block.isEmpty();\n }, t.prototype.shouldPrependListItem = function () {\n return this.block.isListItem() && 0 === this.startLocation.offset && !this.block.isEmpty();\n }, t.prototype.shouldRemoveLastBlockAttribute = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && this.block.isEmpty();\n }, t;\n }();\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) p.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n p = {}.hasOwnProperty;\n\n s = e.normalizeRange, c = e.rangesAreEqual, u = e.rangeIsCollapsed, a = e.objectsAreEqual, t = e.arrayStartsWith, l = e.summarizeArrayChange, i = e.getAllAttributeNames, o = e.getBlockConfig, r = e.getTextConfig, n = e.extend, e.Composition = function (p) {\n function d() {\n this.document = new e.Document(), this.attachments = [], this.currentAttributes = {}, this.revision = 0;\n }\n\n var f;\n return h(d, p), d.prototype.setDocument = function (t) {\n var e;\n return t.isEqualTo(this.document) ? void 0 : (this.document = t, this.refreshAttachments(), this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeDocument ? e.compositionDidChangeDocument(t) : void 0);\n }, d.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.getSelectedRange()\n };\n }, d.prototype.loadSnapshot = function (t) {\n var n, i, o, r;\n return n = t.document, r = t.selectedRange, null != (i = this.delegate) && \"function\" == typeof i.compositionWillLoadSnapshot && i.compositionWillLoadSnapshot(), this.setDocument(null != n ? n : new e.Document()), this.setSelection(null != r ? r : [0, 0]), null != (o = this.delegate) && \"function\" == typeof o.compositionDidLoadSnapshot ? o.compositionDidLoadSnapshot() : void 0;\n }, d.prototype.insertText = function (t, e) {\n var n, i, o, r;\n return r = (null != e ? e : {\n updatePosition: !0\n }).updatePosition, i = this.getSelectedRange(), this.setDocument(this.document.insertTextAtRange(t, i)), o = i[0], n = o + t.getLength(), r && this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertBlock = function (t) {\n var n;\n return null == t && (t = new e.Block()), n = new e.Document([t]), this.insertDocument(n);\n }, d.prototype.insertDocument = function (t) {\n var n, i, o;\n return null == t && (t = new e.Document()), i = this.getSelectedRange(), this.setDocument(this.document.insertDocumentAtRange(t, i)), o = i[0], n = o + t.getLength(), this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertString = function (t, n) {\n var i, o;\n return i = this.getCurrentTextAttributes(), o = e.Text.textForStringWithAttributes(t, i), this.insertText(o, n);\n }, d.prototype.insertBlockBreak = function () {\n var t, e, n;\n return e = this.getSelectedRange(), this.setDocument(this.document.insertBlockBreakAtRange(e)), n = e[0], t = n + 1, this.setSelection(t), this.notifyDelegateOfInsertionAtRange([n, t]);\n }, d.prototype.insertLineBreak = function () {\n var t, n;\n return n = new e.LineBreakInsertion(this), n.shouldDecreaseListLevel() ? (this.decreaseListLevel(), this.setSelection(n.startPosition)) : n.shouldPrependListItem() ? (t = new e.Document([n.block.copyWithoutText()]), this.insertDocument(t)) : n.shouldInsertBlockBreak() ? this.insertBlockBreak() : n.shouldRemoveLastBlockAttribute() ? this.removeLastBlockAttribute() : n.shouldBreakFormattedBlock() ? this.breakFormattedBlock(n) : this.insertString(\"\\n\");\n }, d.prototype.insertHTML = function (t) {\n var n, i, o, r;\n return n = e.Document.fromHTML(t), o = this.getSelectedRange(), this.setDocument(this.document.mergeDocumentAtRange(n, o)), r = o[0], i = r + n.getLength() - 1, this.setSelection(i), this.notifyDelegateOfInsertionAtRange([r, i]);\n }, d.prototype.replaceHTML = function (t) {\n var n, i, o;\n return n = e.Document.fromHTML(t).copyUsingObjectsFromDocument(this.document), i = this.getLocationRange({\n strict: !1\n }), o = this.document.rangeFromLocationRange(i), this.setDocument(n), this.setSelection(o);\n }, d.prototype.insertFile = function (t) {\n return this.insertFiles([t]);\n }, d.prototype.insertFiles = function (t) {\n var n, i, o, r, s, a;\n\n for (i = [], r = 0, s = t.length; s > r; r++) o = t[r], (null != (a = this.delegate) ? a.compositionShouldAcceptFile(o) : void 0) && (n = e.Attachment.attachmentForFile(o), i.push(n));\n\n return this.insertAttachments(i);\n }, d.prototype.insertAttachment = function (t) {\n return this.insertAttachments([t]);\n }, d.prototype.insertAttachments = function (t) {\n var n, i, o, r, s, a, u, c, l;\n\n for (c = new e.Text(), r = 0, s = t.length; s > r; r++) n = t[r], l = n.getType(), a = null != (u = e.config.attachments[l]) ? u.presentation : void 0, o = this.getCurrentTextAttributes(), a && (o.presentation = a), i = e.Text.textForAttachmentWithAttributes(n, o), c = c.appendText(i);\n\n return this.insertText(c);\n }, d.prototype.shouldManageDeletingInDirection = function (t) {\n var e;\n\n if (e = this.getLocationRange(), u(e)) {\n if (\"backward\" === t && 0 === e[0].offset) return !0;\n if (this.shouldManageMovingCursorInDirection(t)) return !0;\n } else if (e[0].index !== e[1].index) return !0;\n\n return !1;\n }, d.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r, s, a, c, l;\n return r = (null != e ? e : {}).length, s = this.getLocationRange(), a = this.getSelectedRange(), c = u(a), c ? o = \"backward\" === t && 0 === s[0].offset : l = s[0].index !== s[1].index, o && this.canDecreaseBlockAttributeLevel() && (i = this.getBlock(), i.isListItem() ? this.decreaseListLevel() : this.decreaseBlockAttributeLevel(), this.setSelection(a[0]), i.isEmpty()) ? !1 : (c && (a = this.getExpandedRangeInDirection(t, {\n length: r\n }), \"backward\" === t && (n = this.getAttachmentAtRange(a))), n ? (this.editAttachment(n), !1) : (this.setDocument(this.document.removeTextAtRange(a)), this.setSelection(a[0]), o || l ? !1 : void 0));\n }, d.prototype.moveTextFromRange = function (t) {\n var e;\n return e = this.getSelectedRange()[0], this.setDocument(this.document.moveTextFromRangeToPosition(t, e)), this.setSelection(e);\n }, d.prototype.removeAttachment = function (t) {\n var e;\n return (e = this.document.getRangeOfAttachment(t)) ? (this.stopEditingAttachment(), this.setDocument(this.document.removeTextAtRange(e)), this.setSelection(e[0])) : void 0;\n }, d.prototype.removeLastBlockAttribute = function () {\n var t, e, n, i;\n return n = this.getSelectedRange(), i = n[0], e = n[1], t = this.document.getBlockAtPosition(e), this.removeCurrentAttribute(t.getLastAttribute()), this.setSelection(i);\n }, f = \" \", d.prototype.insertPlaceholder = function () {\n return this.placeholderPosition = this.getPosition(), this.insertString(f);\n }, d.prototype.selectPlaceholder = function () {\n return null != this.placeholderPosition ? (this.setSelectedRange([this.placeholderPosition, this.placeholderPosition + f.length]), this.getSelectedRange()) : void 0;\n }, d.prototype.forgetPlaceholder = function () {\n return this.placeholderPosition = null;\n }, d.prototype.hasCurrentAttribute = function (t) {\n var e;\n return e = this.currentAttributes[t], null != e && e !== !1;\n }, d.prototype.toggleCurrentAttribute = function (t) {\n var e;\n return (e = !this.currentAttributes[t]) ? this.setCurrentAttribute(t, e) : this.removeCurrentAttribute(t);\n }, d.prototype.canSetCurrentAttribute = function (t) {\n return o(t) ? this.canSetCurrentBlockAttribute(t) : this.canSetCurrentTextAttribute(t);\n }, d.prototype.canSetCurrentTextAttribute = function () {\n var t, e, n, i, o;\n\n if (e = this.getSelectedDocument()) {\n for (o = e.getAttachments(), n = 0, i = o.length; i > n; n++) if (t = o[n], !t.hasContent()) return !1;\n\n return !0;\n }\n }, d.prototype.canSetCurrentBlockAttribute = function () {\n var t;\n if (t = this.getBlock()) return !t.isTerminalBlock();\n }, d.prototype.setCurrentAttribute = function (t, e) {\n return o(t) ? this.setBlockAttribute(t, e) : (this.setTextAttribute(t, e), this.currentAttributes[t] = e, this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.setTextAttribute = function (t, n) {\n var i, o, r, s;\n if (o = this.getSelectedRange()) return r = o[0], i = o[1], r !== i ? this.setDocument(this.document.addAttributeAtRange(t, n, o)) : \"href\" === t ? (s = e.Text.textForStringWithAttributes(n, {\n href: n\n }), this.insertText(s)) : void 0;\n }, d.prototype.setBlockAttribute = function (t, e) {\n var n, i;\n if (i = this.getSelectedRange()) return this.canSetCurrentAttribute(t) ? (n = this.getBlock(), this.setDocument(this.document.applyBlockAttributeAtRange(t, e, i)), this.setSelection(i)) : void 0;\n }, d.prototype.removeCurrentAttribute = function (t) {\n return o(t) ? (this.removeBlockAttribute(t), this.updateCurrentAttributes()) : (this.removeTextAttribute(t), delete this.currentAttributes[t], this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.removeTextAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.removeBlockAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.canDecreaseNestingLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getNestingLevel() : void 0) > 0;\n }, d.prototype.canIncreaseNestingLevel = function () {\n var e, n, i;\n if (e = this.getBlock()) return (null != (i = o(e.getLastNestableAttribute())) ? i.listAttribute : 0) ? (n = this.getPreviousBlock()) ? t(n.getListItemAttributes(), e.getListItemAttributes()) : void 0 : e.getNestingLevel() > 0;\n }, d.prototype.decreaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.decreaseNestingLevel()));\n }, d.prototype.increaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.increaseNestingLevel()));\n }, d.prototype.canDecreaseBlockAttributeLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getAttributeLevel() : void 0) > 0;\n }, d.prototype.decreaseBlockAttributeLevel = function () {\n var t, e;\n return (t = null != (e = this.getBlock()) ? e.getLastAttribute() : void 0) ? this.removeCurrentAttribute(t) : void 0;\n }, d.prototype.decreaseListLevel = function () {\n var t, e, n, i, o, r;\n\n for (r = this.getSelectedRange()[0], o = this.document.locationFromPosition(r).index, n = o, t = this.getBlock().getAttributeLevel(); (e = this.document.getBlockAtIndex(n + 1)) && e.isListItem() && e.getAttributeLevel() > t;) n++;\n\n return r = this.document.positionFromLocation({\n index: o,\n offset: 0\n }), i = this.document.positionFromLocation({\n index: n,\n offset: 0\n }), this.setDocument(this.document.removeLastListAttributeAtRange([r, i]));\n }, d.prototype.updateCurrentAttributes = function () {\n var t, e, n, o, r, s;\n\n if (s = this.getSelectedRange({\n ignoreLock: !0\n })) {\n for (e = this.document.getCommonAttributesAtRange(s), r = i(), n = 0, o = r.length; o > n; n++) t = r[n], e[t] || this.canSetCurrentAttribute(t) || (e[t] = !1);\n\n if (!a(e, this.currentAttributes)) return this.currentAttributes = e, this.notifyDelegateOfCurrentAttributesChange();\n }\n }, d.prototype.getCurrentAttributes = function () {\n return n.call({}, this.currentAttributes);\n }, d.prototype.getCurrentTextAttributes = function () {\n var t, e, n, i;\n t = {}, n = this.currentAttributes;\n\n for (e in n) i = n[e], i !== !1 && r(e) && (t[e] = i);\n\n return t;\n }, d.prototype.freezeSelection = function () {\n return this.setCurrentAttribute(\"frozen\", !0);\n }, d.prototype.thawSelection = function () {\n return this.removeCurrentAttribute(\"frozen\");\n }, d.prototype.hasFrozenSelection = function () {\n return this.hasCurrentAttribute(\"frozen\");\n }, d.proxyMethod(\"getSelectionManager().getPointRange\"), d.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"), d.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"), d.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"), d.proxyMethod(\"getSelectionManager().selectionIsExpanded\"), d.proxyMethod(\"delegate?.getSelectionManager\"), d.prototype.setSelection = function (t) {\n var e, n;\n return e = this.document.locationRangeFromRange(t), null != (n = this.delegate) ? n.compositionDidRequestChangingSelectionToLocationRange(e) : void 0;\n }, d.prototype.getSelectedRange = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.rangeFromLocationRange(t) : void 0;\n }, d.prototype.setSelectedRange = function (t) {\n var e;\n return e = this.document.locationRangeFromRange(t), this.getSelectionManager().setLocationRange(e);\n }, d.prototype.getPosition = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.positionFromLocation(t[0]) : void 0;\n }, d.prototype.getLocationRange = function (t) {\n var e, n;\n return null != (e = null != (n = this.targetLocationRange) ? n : this.getSelectionManager().getLocationRange(t)) ? e : s({\n index: 0,\n offset: 0\n });\n }, d.prototype.withTargetLocationRange = function (t, e) {\n var n;\n this.targetLocationRange = t;\n\n try {\n n = e();\n } finally {\n this.targetLocationRange = null;\n }\n\n return n;\n }, d.prototype.withTargetRange = function (t, e) {\n var n;\n return n = this.document.locationRangeFromRange(t), this.withTargetLocationRange(n, e);\n }, d.prototype.withTargetDOMRange = function (t, e) {\n var n;\n return n = this.createLocationRangeFromDOMRange(t, {\n strict: !1\n }), this.withTargetLocationRange(n, e);\n }, d.prototype.getExpandedRangeInDirection = function (t, e) {\n var n, i, o, r;\n return i = (null != e ? e : {}).length, o = this.getSelectedRange(), r = o[0], n = o[1], \"backward\" === t ? i ? r -= i : r = this.translateUTF16PositionFromOffset(r, -1) : i ? n += i : n = this.translateUTF16PositionFromOffset(n, 1), s([r, n]);\n }, d.prototype.shouldManageMovingCursorInDirection = function (t) {\n var e;\n return this.editingAttachment ? !0 : (e = this.getExpandedRangeInDirection(t), null != this.getAttachmentAtRange(e));\n }, d.prototype.moveCursorInDirection = function (t) {\n var e, n, i, o;\n return this.editingAttachment ? i = this.document.getRangeOfAttachment(this.editingAttachment) : (o = this.getSelectedRange(), i = this.getExpandedRangeInDirection(t), n = !c(o, i)), this.setSelectedRange(\"backward\" === t ? i[0] : i[1]), n && (e = this.getAttachmentAtRange(i)) ? this.editAttachment(e) : void 0;\n }, d.prototype.expandSelectionInDirection = function (t, e) {\n var n, i;\n return n = (null != e ? e : {}).length, i = this.getExpandedRangeInDirection(t, {\n length: n\n }), this.setSelectedRange(i);\n }, d.prototype.expandSelectionForEditing = function () {\n return this.hasCurrentAttribute(\"href\") ? this.expandSelectionAroundCommonAttribute(\"href\") : void 0;\n }, d.prototype.expandSelectionAroundCommonAttribute = function (t) {\n var e, n;\n return e = this.getPosition(), n = this.document.getRangeOfCommonAttributeAtPosition(t, e), this.setSelectedRange(n);\n }, d.prototype.selectionContainsAttachments = function () {\n var t;\n return (null != (t = this.getSelectedAttachments()) ? t.length : void 0) > 0;\n }, d.prototype.selectionIsInCursorTarget = function () {\n return this.editingAttachment || this.positionIsCursorTarget(this.getPosition());\n }, d.prototype.positionIsCursorTarget = function (t) {\n var e;\n return (e = this.document.locationFromPosition(t)) ? this.locationIsCursorTarget(e) : void 0;\n }, d.prototype.positionIsBlockBreak = function (t) {\n var e;\n return null != (e = this.document.getPieceAtPosition(t)) ? e.isBlockBreak() : void 0;\n }, d.prototype.getSelectedDocument = function () {\n var t;\n return (t = this.getSelectedRange()) ? this.document.getDocumentAtRange(t) : void 0;\n }, d.prototype.getSelectedAttachments = function () {\n var t;\n return null != (t = this.getSelectedDocument()) ? t.getAttachments() : void 0;\n }, d.prototype.getAttachments = function () {\n return this.attachments.slice(0);\n }, d.prototype.refreshAttachments = function () {\n var t, e, n, i, o, r, s, a, u, c, h, p;\n\n for (n = this.document.getAttachments(), a = l(this.attachments, n), t = a.added, h = a.removed, this.attachments = n, i = 0, r = h.length; r > i; i++) e = h[i], e.delegate = null, null != (u = this.delegate) && \"function\" == typeof u.compositionDidRemoveAttachment && u.compositionDidRemoveAttachment(e);\n\n for (p = [], o = 0, s = t.length; s > o; o++) e = t[o], e.delegate = this, p.push(null != (c = this.delegate) && \"function\" == typeof c.compositionDidAddAttachment ? c.compositionDidAddAttachment(e) : void 0);\n\n return p;\n }, d.prototype.attachmentDidChangeAttributes = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidEditAttachment ? e.compositionDidEditAttachment(t) : void 0;\n }, d.prototype.attachmentDidChangePreviewURL = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeAttachmentPreviewURL ? e.compositionDidChangeAttachmentPreviewURL(t) : void 0;\n }, d.prototype.editAttachment = function (t, e) {\n var n;\n if (t !== this.editingAttachment) return this.stopEditingAttachment(), this.editingAttachment = t, null != (n = this.delegate) && \"function\" == typeof n.compositionDidStartEditingAttachment ? n.compositionDidStartEditingAttachment(this.editingAttachment, e) : void 0;\n }, d.prototype.stopEditingAttachment = function () {\n var t;\n if (this.editingAttachment) return null != (t = this.delegate) && \"function\" == typeof t.compositionDidStopEditingAttachment && t.compositionDidStopEditingAttachment(this.editingAttachment), this.editingAttachment = null;\n }, d.prototype.updateAttributesForAttachment = function (t, e) {\n return this.setDocument(this.document.updateAttributesForAttachment(t, e));\n }, d.prototype.removeAttributeForAttachment = function (t, e) {\n return this.setDocument(this.document.removeAttributeForAttachment(t, e));\n }, d.prototype.breakFormattedBlock = function (t) {\n var n, i, o, r, s;\n return i = t.document, n = t.block, r = t.startPosition, s = [r - 1, r], n.getBlockBreakPosition() === t.startLocation.offset ? (n.breaksOnReturn() && \"\\n\" === t.nextCharacter ? r += 1 : i = i.removeTextAtRange(s), s = [r, r]) : \"\\n\" === t.nextCharacter ? \"\\n\" === t.previousCharacter ? s = [r - 1, r + 1] : (s = [r, r + 1], r += 1) : t.startLocation.offset - 1 !== 0 && (r += 1), o = new e.Document([n.removeLastAttribute().copyWithoutText()]), this.setDocument(i.insertDocumentAtRange(o, s)), this.setSelection(r);\n }, d.prototype.getPreviousBlock = function () {\n var t, e;\n return (e = this.getLocationRange()) && (t = e[0].index, t > 0) ? this.document.getBlockAtIndex(t - 1) : void 0;\n }, d.prototype.getBlock = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.getBlockAtIndex(t[0].index) : void 0;\n }, d.prototype.getAttachmentAtRange = function (t) {\n var n;\n return n = this.document.getDocumentAtRange(t), n.toString() === e.OBJECT_REPLACEMENT_CHARACTER + \"\\n\" ? n.getAttachments()[0] : void 0;\n }, d.prototype.notifyDelegateOfCurrentAttributesChange = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.compositionDidChangeCurrentAttributes ? t.compositionDidChangeCurrentAttributes(this.currentAttributes) : void 0;\n }, d.prototype.notifyDelegateOfInsertionAtRange = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionDidPerformInsertionAtRange ? e.compositionDidPerformInsertionAtRange(t) : void 0;\n }, d.prototype.translateUTF16PositionFromOffset = function (t, e) {\n var n, i;\n return i = this.document.toUTF16String(), n = i.offsetFromUCS2Offset(t), i.offsetToUCS2Offset(n + e);\n }, d;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.UndoManager = function (e) {\n function n(t) {\n this.composition = t, this.undoEntries = [], this.redoEntries = [];\n }\n\n var i;\n return t(n, e), n.prototype.recordUndoEntry = function (t, e) {\n var n, o, r, s, a;\n return s = null != e ? e : {}, o = s.context, n = s.consolidatable, r = this.undoEntries.slice(-1)[0], n && i(r, t, o) ? void 0 : (a = this.createEntry({\n description: t,\n context: o\n }), this.undoEntries.push(a), this.redoEntries = []);\n }, n.prototype.undo = function () {\n var t, e;\n return (e = this.undoEntries.pop()) ? (t = this.createEntry(e), this.redoEntries.push(t), this.composition.loadSnapshot(e.snapshot)) : void 0;\n }, n.prototype.redo = function () {\n var t, e;\n return (t = this.redoEntries.pop()) ? (e = this.createEntry(t), this.undoEntries.push(e), this.composition.loadSnapshot(t.snapshot)) : void 0;\n }, n.prototype.canUndo = function () {\n return this.undoEntries.length > 0;\n }, n.prototype.canRedo = function () {\n return this.redoEntries.length > 0;\n }, n.prototype.createEntry = function (t) {\n var e, n, i;\n return i = null != t ? t : {}, n = i.description, e = i.context, {\n description: null != n ? n.toString() : void 0,\n context: JSON.stringify(e),\n snapshot: this.composition.getSnapshot()\n };\n }, i = function (t, e, n) {\n return (null != t ? t.description : void 0) === (null != e ? e.toString() : void 0) && (null != t ? t.context : void 0) === JSON.stringify(n);\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n var t;\n e.attachmentGalleryFilter = function (e) {\n var n;\n return n = new t(e), n.perform(), n.getSnapshot();\n }, t = function () {\n function t(t) {\n this.document = t.document, this.selectedRange = t.selectedRange;\n }\n\n var e, n, i;\n return e = \"attachmentGallery\", n = \"presentation\", i = \"gallery\", t.prototype.perform = function () {\n return this.removeBlockAttribute(), this.applyBlockAttribute();\n }, t.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.selectedRange\n };\n }, t.prototype.removeBlockAttribute = function () {\n var t, n, i, o, r;\n\n for (o = this.findRangesOfBlocks(), r = [], t = 0, n = o.length; n > t; t++) i = o[t], r.push(this.document = this.document.removeAttributeAtRange(e, i));\n\n return r;\n }, t.prototype.applyBlockAttribute = function () {\n var t, n, i, o, r, s;\n\n for (i = 0, r = this.findRangesOfPieces(), s = [], t = 0, n = r.length; n > t; t++) o = r[t], o[1] - o[0] > 1 && (o[0] += i, o[1] += i, \"\\n\" !== this.document.getCharacterAtPosition(o[1]) && (this.document = this.document.insertBlockBreakAtRange(o[1]), o[1] < this.selectedRange[1] && this.moveSelectedRangeForward(), o[1]++, i++), 0 !== o[0] && \"\\n\" !== this.document.getCharacterAtPosition(o[0] - 1) && (this.document = this.document.insertBlockBreakAtRange(o[0]), o[0] < this.selectedRange[0] && this.moveSelectedRangeForward(), o[0]++, i++), s.push(this.document = this.document.applyBlockAttributeAtRange(e, !0, o)));\n\n return s;\n }, t.prototype.findRangesOfBlocks = function () {\n return this.document.findRangesForBlockAttribute(e);\n }, t.prototype.findRangesOfPieces = function () {\n return this.document.findRangesForTextAttribute(n, {\n withValue: i\n });\n }, t.prototype.moveSelectedRangeForward = function () {\n return this.selectedRange[0] += 1, this.selectedRange[1] += 1;\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.Editor = function () {\n function n(n, o, r) {\n this.composition = n, this.selectionManager = o, this.element = r, this.insertFiles = t(this.insertFiles, this), this.undoManager = new e.UndoManager(this.composition), this.filters = i.slice(0);\n }\n\n var i;\n return i = [e.attachmentGalleryFilter], n.prototype.loadDocument = function (t) {\n return this.loadSnapshot({\n document: t,\n selectedRange: [0, 0]\n });\n }, n.prototype.loadHTML = function (t) {\n return null == t && (t = \"\"), this.loadDocument(e.Document.fromHTML(t, {\n referenceElement: this.element\n }));\n }, n.prototype.loadJSON = function (t) {\n var n, i;\n return n = t.document, i = t.selectedRange, n = e.Document.fromJSON(n), this.loadSnapshot({\n document: n,\n selectedRange: i\n });\n }, n.prototype.loadSnapshot = function (t) {\n return this.undoManager = new e.UndoManager(this.composition), this.composition.loadSnapshot(t);\n }, n.prototype.getDocument = function () {\n return this.composition.document;\n }, n.prototype.getSelectedDocument = function () {\n return this.composition.getSelectedDocument();\n }, n.prototype.getSnapshot = function () {\n return this.composition.getSnapshot();\n }, n.prototype.toJSON = function () {\n return this.getSnapshot();\n }, n.prototype.deleteInDirection = function (t) {\n return this.composition.deleteInDirection(t);\n }, n.prototype.insertAttachment = function (t) {\n return this.composition.insertAttachment(t);\n }, n.prototype.insertAttachments = function (t) {\n return this.composition.insertAttachments(t);\n }, n.prototype.insertDocument = function (t) {\n return this.composition.insertDocument(t);\n }, n.prototype.insertFile = function (t) {\n return this.composition.insertFile(t);\n }, n.prototype.insertFiles = function (t) {\n return this.composition.insertFiles(t);\n }, n.prototype.insertHTML = function (t) {\n return this.composition.insertHTML(t);\n }, n.prototype.insertString = function (t) {\n return this.composition.insertString(t);\n }, n.prototype.insertText = function (t) {\n return this.composition.insertText(t);\n }, n.prototype.insertLineBreak = function () {\n return this.composition.insertLineBreak();\n }, n.prototype.getSelectedRange = function () {\n return this.composition.getSelectedRange();\n }, n.prototype.getPosition = function () {\n return this.composition.getPosition();\n }, n.prototype.getClientRectAtPosition = function (t) {\n var e;\n return e = this.getDocument().locationRangeFromRange([t, t + 1]), this.selectionManager.getClientRectAtLocationRange(e);\n }, n.prototype.expandSelectionInDirection = function (t) {\n return this.composition.expandSelectionInDirection(t);\n }, n.prototype.moveCursorInDirection = function (t) {\n return this.composition.moveCursorInDirection(t);\n }, n.prototype.setSelectedRange = function (t) {\n return this.composition.setSelectedRange(t);\n }, n.prototype.activateAttribute = function (t, e) {\n return null == e && (e = !0), this.composition.setCurrentAttribute(t, e);\n }, n.prototype.attributeIsActive = function (t) {\n return this.composition.hasCurrentAttribute(t);\n }, n.prototype.canActivateAttribute = function (t) {\n return this.composition.canSetCurrentAttribute(t);\n }, n.prototype.deactivateAttribute = function (t) {\n return this.composition.removeCurrentAttribute(t);\n }, n.prototype.canDecreaseNestingLevel = function () {\n return this.composition.canDecreaseNestingLevel();\n }, n.prototype.canIncreaseNestingLevel = function () {\n return this.composition.canIncreaseNestingLevel();\n }, n.prototype.decreaseNestingLevel = function () {\n return this.canDecreaseNestingLevel() ? this.composition.decreaseNestingLevel() : void 0;\n }, n.prototype.increaseNestingLevel = function () {\n return this.canIncreaseNestingLevel() ? this.composition.increaseNestingLevel() : void 0;\n }, n.prototype.canRedo = function () {\n return this.undoManager.canRedo();\n }, n.prototype.canUndo = function () {\n return this.undoManager.canUndo();\n }, n.prototype.recordUndoEntry = function (t, e) {\n var n, i, o;\n return o = null != e ? e : {}, i = o.context, n = o.consolidatable, this.undoManager.recordUndoEntry(t, {\n context: i,\n consolidatable: n\n });\n }, n.prototype.redo = function () {\n return this.canRedo() ? this.undoManager.redo() : void 0;\n }, n.prototype.undo = function () {\n return this.canUndo() ? this.undoManager.undo() : void 0;\n }, n;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.ManagedAttachment = function (e) {\n function n(t, e) {\n var n;\n this.attachmentManager = t, this.attachment = e, n = this.attachment, this.id = n.id, this.file = n.file;\n }\n\n return t(n, e), n.prototype.remove = function () {\n return this.attachmentManager.requestRemovalOfAttachment(this.attachment);\n }, n.proxyMethod(\"attachment.getAttribute\"), n.proxyMethod(\"attachment.hasAttribute\"), n.proxyMethod(\"attachment.setAttribute\"), n.proxyMethod(\"attachment.getAttributes\"), n.proxyMethod(\"attachment.setAttributes\"), n.proxyMethod(\"attachment.isPending\"), n.proxyMethod(\"attachment.isPreviewable\"), n.proxyMethod(\"attachment.getURL\"), n.proxyMethod(\"attachment.getHref\"), n.proxyMethod(\"attachment.getFilename\"), n.proxyMethod(\"attachment.getFilesize\"), n.proxyMethod(\"attachment.getFormattedFilesize\"), n.proxyMethod(\"attachment.getExtension\"), n.proxyMethod(\"attachment.getContentType\"), n.proxyMethod(\"attachment.getFile\"), n.proxyMethod(\"attachment.setFile\"), n.proxyMethod(\"attachment.releaseFile\"), n.proxyMethod(\"attachment.getUploadProgress\"), n.proxyMethod(\"attachment.setUploadProgress\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.AttachmentManager = function (n) {\n function i(t) {\n var e, n, i;\n\n for (null == t && (t = []), this.managedAttachments = {}, n = 0, i = t.length; i > n; n++) e = t[n], this.manageAttachment(e);\n }\n\n return t(i, n), i.prototype.getAttachments = function () {\n var t, e, n, i;\n n = this.managedAttachments, i = [];\n\n for (e in n) t = n[e], i.push(t);\n\n return i;\n }, i.prototype.manageAttachment = function (t) {\n var n, i;\n return null != (n = this.managedAttachments)[i = t.id] ? n[i] : n[i] = new e.ManagedAttachment(this, t);\n }, i.prototype.attachmentIsManaged = function (t) {\n return t.id in this.managedAttachments;\n }, i.prototype.requestRemovalOfAttachment = function (t) {\n var e;\n return this.attachmentIsManaged(t) && null != (e = this.delegate) && \"function\" == typeof e.attachmentManagerDidRequestRemovalOfAttachment ? e.attachmentManagerDidRequestRemovalOfAttachment(t) : void 0;\n }, i.prototype.unmanageAttachment = function (t) {\n var e;\n return e = this.managedAttachments[t.id], delete this.managedAttachments[t.id], e;\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n var t, n, i, o, r, s, a, u, c, l, h;\n t = e.elementContainsNode, n = e.findChildIndexOfNode, r = e.nodeIsBlockStart, s = e.nodeIsBlockStartComment, o = e.nodeIsBlockContainer, a = e.nodeIsCursorTarget, u = e.nodeIsEmptyTextNode, c = e.nodeIsTextNode, i = e.nodeIsAttachmentElement, l = e.tagName, h = e.walkTree, e.LocationMapper = function () {\n function e(t) {\n this.element = t;\n }\n\n var p, d, f, g;\n return e.prototype.findLocationFromContainerAndOffset = function (e, i, o) {\n var s, u, l, p, g, m, v;\n\n for (m = (null != o ? o : {\n strict: !0\n }).strict, u = 0, l = !1, p = {\n index: 0,\n offset: 0\n }, (s = this.findAttachmentElementParentForNode(e)) && (e = s.parentNode, i = n(s)), v = h(this.element, {\n usingFilter: f\n }); v.nextNode();) {\n if (g = v.currentNode, g === e && c(e)) {\n a(g) || (p.offset += i);\n break;\n }\n\n if (g.parentNode === e) {\n if (u++ === i) break;\n } else if (!t(e, g) && u > 0) break;\n\n r(g, {\n strict: m\n }) ? (l && p.index++, p.offset = 0, l = !0) : p.offset += d(g);\n }\n\n return p;\n }, e.prototype.findContainerAndOffsetFromLocation = function (t) {\n var e, i, s, u, l;\n\n if (0 === t.index && 0 === t.offset) {\n for (e = this.element, u = 0; e.firstChild;) if (e = e.firstChild, o(e)) {\n u = 1;\n break;\n }\n\n return [e, u];\n }\n\n if (l = this.findNodeAndOffsetFromLocation(t), i = l[0], s = l[1], i) {\n if (c(i)) 0 === d(i) ? (e = i.parentNode.parentNode, u = n(i.parentNode), a(i, {\n name: \"right\"\n }) && u++) : (e = i, u = t.offset - s);else {\n if (e = i.parentNode, !r(i.previousSibling) && !o(e)) for (; i === e.lastChild && (i = e, e = e.parentNode, !o(e)););\n u = n(i), 0 !== t.offset && u++;\n }\n return [e, u];\n }\n }, e.prototype.findNodeAndOffsetFromLocation = function (t) {\n var e, n, i, o, r, s, u, l;\n\n for (u = 0, l = this.getSignificantNodesForIndex(t.index), n = 0, i = l.length; i > n; n++) {\n if (e = l[n], o = d(e), t.offset <= u + o) if (c(e)) {\n if (r = e, s = u, t.offset === s && a(r)) break;\n } else r || (r = e, s = u);\n if (u += o, u > t.offset) break;\n }\n\n return [r, s];\n }, e.prototype.findAttachmentElementParentForNode = function (t) {\n for (; t && t !== this.element;) {\n if (i(t)) return t;\n t = t.parentNode;\n }\n }, e.prototype.getSignificantNodesForIndex = function (t) {\n var e, n, i, o, r;\n\n for (i = [], r = h(this.element, {\n usingFilter: p\n }), o = !1; r.nextNode();) if (n = r.currentNode, s(n)) {\n if (\"undefined\" != typeof e && null !== e ? e++ : e = 0, e === t) o = !0;else if (o) break;\n } else o && i.push(n);\n\n return i;\n }, d = function (t) {\n var e;\n return t.nodeType === Node.TEXT_NODE ? a(t) ? 0 : (e = t.textContent, e.length) : \"br\" === l(t) || i(t) ? 1 : 0;\n }, p = function (t) {\n return g(t) === NodeFilter.FILTER_ACCEPT ? f(t) : NodeFilter.FILTER_REJECT;\n }, g = function (t) {\n return u(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, f = function (t) {\n return i(t.parentNode) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, e;\n }();\n }.call(this), function () {\n var t,\n n,\n i = [].slice;\n t = e.getDOMRange, n = e.setDOMRange, e.PointMapper = function () {\n function e() {}\n\n return e.prototype.createDOMRangeFromPoint = function (e) {\n var i, o, r, s, a, u, c, l;\n if (c = e.x, l = e.y, document.caretPositionFromPoint) return a = document.caretPositionFromPoint(c, l), r = a.offsetNode, o = a.offset, i = document.createRange(), i.setStart(r, o), i;\n if (document.caretRangeFromPoint) return document.caretRangeFromPoint(c, l);\n\n if (document.body.createTextRange) {\n s = t();\n\n try {\n u = document.body.createTextRange(), u.moveToPoint(c, l), u.select();\n } catch (h) {}\n\n return i = t(), n(s), i;\n }\n }, e.prototype.getClientRectsForDOMRange = function (t) {\n var e, n, o;\n return n = i.call(t.getClientRects()), o = n[0], e = n[n.length - 1], [o, e];\n }, e;\n }();\n }.call(this), function () {\n var t,\n n = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n i = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) o.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty,\n r = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n t = e.getDOMRange, e.SelectionChangeObserver = function (e) {\n function o() {\n this.run = n(this.run, this), this.update = n(this.update, this), this.selectionManagers = [];\n }\n\n var s;\n return i(o, e), o.prototype.start = function () {\n return this.started ? void 0 : (this.started = !0, \"onselectionchange\" in document ? document.addEventListener(\"selectionchange\", this.update, !0) : this.run());\n }, o.prototype.stop = function () {\n return this.started ? (this.started = !1, document.removeEventListener(\"selectionchange\", this.update, !0)) : void 0;\n }, o.prototype.registerSelectionManager = function (t) {\n return r.call(this.selectionManagers, t) < 0 ? (this.selectionManagers.push(t), this.start()) : void 0;\n }, o.prototype.unregisterSelectionManager = function (t) {\n var e;\n return this.selectionManagers = function () {\n var n, i, o, r;\n\n for (o = this.selectionManagers, r = [], n = 0, i = o.length; i > n; n++) e = o[n], e !== t && r.push(e);\n\n return r;\n }.call(this), 0 === this.selectionManagers.length ? this.stop() : void 0;\n }, o.prototype.notifySelectionManagersOfSelectionChange = function () {\n var t, e, n, i, o;\n\n for (n = this.selectionManagers, i = [], t = 0, e = n.length; e > t; t++) o = n[t], i.push(o.selectionDidChange());\n\n return i;\n }, o.prototype.update = function () {\n var e;\n return e = t(), s(e, this.domRange) ? void 0 : (this.domRange = e, this.notifySelectionManagersOfSelectionChange());\n }, o.prototype.reset = function () {\n return this.domRange = null, this.update();\n }, o.prototype.run = function () {\n return this.started ? (this.update(), requestAnimationFrame(this.run)) : void 0;\n }, s = function (t, e) {\n return (null != t ? t.startContainer : void 0) === (null != e ? e.startContainer : void 0) && (null != t ? t.startOffset : void 0) === (null != e ? e.startOffset : void 0) && (null != t ? t.endContainer : void 0) === (null != e ? e.endContainer : void 0) && (null != t ? t.endOffset : void 0) === (null != e ? e.endOffset : void 0);\n }, o;\n }(e.BasicObject), null == e.selectionChangeObserver && (e.selectionChangeObserver = new e.SelectionChangeObserver());\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n p = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) d.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty;\n\n i = e.getDOMSelection, n = e.getDOMRange, l = e.setDOMRange, t = e.elementContainsNode, s = e.nodeIsCursorTarget, r = e.innerElementIsActive, o = e.handleEvent, a = e.normalizeRange, u = e.rangeIsCollapsed, c = e.rangesAreEqual, e.SelectionManager = function (d) {\n function f(t) {\n this.element = t, this.selectionDidChange = h(this.selectionDidChange, this), this.didMouseDown = h(this.didMouseDown, this), this.locationMapper = new e.LocationMapper(this.element), this.pointMapper = new e.PointMapper(), this.lockCount = 0, o(\"mousedown\", {\n onElement: this.element,\n withCallback: this.didMouseDown\n });\n }\n\n return p(f, d), f.prototype.getLocationRange = function (t) {\n var e, i;\n return null == t && (t = {}), e = t.strict === !1 ? this.createLocationRangeFromDOMRange(n(), {\n strict: !1\n }) : t.ignoreLock ? this.currentLocationRange : null != (i = this.lockedLocationRange) ? i : this.currentLocationRange;\n }, f.prototype.setLocationRange = function (t) {\n var e;\n if (!this.lockedLocationRange) return t = a(t), (e = this.createDOMRangeFromLocationRange(t)) ? (l(e), this.updateCurrentLocationRange(t)) : void 0;\n }, f.prototype.setLocationRangeFromPointRange = function (t) {\n var e, n;\n return t = a(t), n = this.getLocationAtPoint(t[0]), e = this.getLocationAtPoint(t[1]), this.setLocationRange([n, e]);\n }, f.prototype.getClientRectAtLocationRange = function (t) {\n var e;\n return (e = this.createDOMRangeFromLocationRange(t)) ? this.getClientRectsForDOMRange(e)[1] : void 0;\n }, f.prototype.locationIsCursorTarget = function (t) {\n var e, n, i;\n return i = this.findNodeAndOffsetFromLocation(t), e = i[0], n = i[1], s(e);\n }, f.prototype.lock = function () {\n return 0 === this.lockCount++ ? (this.updateCurrentLocationRange(), this.lockedLocationRange = this.getLocationRange()) : void 0;\n }, f.prototype.unlock = function () {\n var t;\n return 0 === --this.lockCount && (t = this.lockedLocationRange, this.lockedLocationRange = null, null != t) ? this.setLocationRange(t) : void 0;\n }, f.prototype.clearSelection = function () {\n var t;\n return null != (t = i()) ? t.removeAllRanges() : void 0;\n }, f.prototype.selectionIsCollapsed = function () {\n var t;\n return (null != (t = n()) ? t.collapsed : void 0) === !0;\n }, f.prototype.selectionIsExpanded = function () {\n return !this.selectionIsCollapsed();\n }, f.prototype.createLocationRangeFromDOMRange = function (t, e) {\n var n, i;\n if (null != t && this.domRangeWithinElement(t) && (i = this.findLocationFromContainerAndOffset(t.startContainer, t.startOffset, e))) return t.collapsed || (n = this.findLocationFromContainerAndOffset(t.endContainer, t.endOffset, e)), a([i, n]);\n }, f.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"), f.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"), f.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"), f.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"), f.proxyMethod(\"pointMapper.getClientRectsForDOMRange\"), f.prototype.didMouseDown = function () {\n return this.pauseTemporarily();\n }, f.prototype.pauseTemporarily = function () {\n var e, n, i, r;\n return this.paused = !0, n = function (e) {\n return function () {\n var n, o, s;\n\n for (e.paused = !1, clearTimeout(r), o = 0, s = i.length; s > o; o++) n = i[o], n.destroy();\n\n return t(document, e.element) ? e.selectionDidChange() : void 0;\n };\n }(this), r = setTimeout(n, 200), i = function () {\n var t, i, r, s;\n\n for (r = [\"mousemove\", \"keydown\"], s = [], t = 0, i = r.length; i > t; t++) e = r[t], s.push(o(e, {\n onElement: document,\n withCallback: n\n }));\n\n return s;\n }();\n }, f.prototype.selectionDidChange = function () {\n return this.paused || r(this.element) ? void 0 : this.updateCurrentLocationRange();\n }, f.prototype.updateCurrentLocationRange = function (t) {\n var e;\n return (null != t ? t : t = this.createLocationRangeFromDOMRange(n())) && !c(t, this.currentLocationRange) ? (this.currentLocationRange = t, null != (e = this.delegate) && \"function\" == typeof e.locationRangeDidChange ? e.locationRangeDidChange(this.currentLocationRange.slice(0)) : void 0) : void 0;\n }, f.prototype.createDOMRangeFromLocationRange = function (t) {\n var e, n, i, o;\n return i = this.findContainerAndOffsetFromLocation(t[0]), n = u(t) ? i : null != (o = this.findContainerAndOffsetFromLocation(t[1])) ? o : i, null != i && null != n ? (e = document.createRange(), e.setStart.apply(e, i), e.setEnd.apply(e, n), e) : void 0;\n }, f.prototype.getLocationAtPoint = function (t) {\n var e, n;\n return (e = this.createDOMRangeFromPoint(t)) && null != (n = this.createLocationRangeFromDOMRange(e)) ? n[0] : void 0;\n }, f.prototype.domRangeWithinElement = function (e) {\n return e.collapsed ? t(this.element, e.startContainer) : t(this.element, e.startContainer) && t(this.element, e.endContainer);\n }, f;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice;\n\n i = e.rangeIsCollapsed, o = e.rangesAreEqual, n = e.objectsAreEqual, t = e.getBlockConfig, e.EditorController = function (s) {\n function u(t) {\n var n, i;\n this.editorElement = t.editorElement, n = t.document, i = t.html, this.selectionManager = new e.SelectionManager(this.editorElement), this.selectionManager.delegate = this, this.composition = new e.Composition(), this.composition.delegate = this, this.attachmentManager = new e.AttachmentManager(this.composition.getAttachments()), this.attachmentManager.delegate = this, this.inputController = new e[\"Level\" + e.config.input.getLevel() + \"InputController\"](this.editorElement), this.inputController.delegate = this, this.inputController.responder = this.composition, this.compositionController = new e.CompositionController(this.editorElement, this.composition), this.compositionController.delegate = this, this.toolbarController = new e.ToolbarController(this.editorElement.toolbarElement), this.toolbarController.delegate = this, this.editor = new e.Editor(this.composition, this.selectionManager, this.editorElement), null != n ? this.editor.loadDocument(n) : this.editor.loadHTML(i);\n }\n\n var c;\n return r(u, s), u.prototype.registerSelectionManager = function () {\n return e.selectionChangeObserver.registerSelectionManager(this.selectionManager);\n }, u.prototype.unregisterSelectionManager = function () {\n return e.selectionChangeObserver.unregisterSelectionManager(this.selectionManager);\n }, u.prototype.render = function () {\n return this.compositionController.render();\n }, u.prototype.reparse = function () {\n return this.composition.replaceHTML(this.editorElement.innerHTML);\n }, u.prototype.compositionDidChangeDocument = function () {\n return this.notifyEditorElement(\"document-change\"), this.handlingInput ? void 0 : this.render();\n }, u.prototype.compositionDidChangeCurrentAttributes = function (t) {\n return this.currentAttributes = t, this.toolbarController.updateAttributes(this.currentAttributes), this.updateCurrentActions(), this.notifyEditorElement(\"attributes-change\", {\n attributes: this.currentAttributes\n });\n }, u.prototype.compositionDidPerformInsertionAtRange = function (t) {\n return this.pasting ? this.pastedRange = t : void 0;\n }, u.prototype.compositionShouldAcceptFile = function (t) {\n return this.notifyEditorElement(\"file-accept\", {\n file: t\n });\n }, u.prototype.compositionDidAddAttachment = function (t) {\n var e;\n return e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-add\", {\n attachment: e\n });\n }, u.prototype.compositionDidEditAttachment = function (t) {\n var e;\n return this.compositionController.rerenderViewForObject(t), e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-edit\", {\n attachment: e\n }), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidChangeAttachmentPreviewURL = function (t) {\n return this.compositionController.invalidateViewForObject(t), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidRemoveAttachment = function (t) {\n var e;\n return e = this.attachmentManager.unmanageAttachment(t), this.notifyEditorElement(\"attachment-remove\", {\n attachment: e\n });\n }, u.prototype.compositionDidStartEditingAttachment = function (t, e) {\n return this.attachmentLocationRange = this.composition.document.getLocationRangeOfAttachment(t), this.compositionController.installAttachmentEditorForAttachment(t, e), this.selectionManager.setLocationRange(this.attachmentLocationRange);\n }, u.prototype.compositionDidStopEditingAttachment = function () {\n return this.compositionController.uninstallAttachmentEditor(), this.attachmentLocationRange = null;\n }, u.prototype.compositionDidRequestChangingSelectionToLocationRange = function (t) {\n return !this.loadingSnapshot || this.isFocused() ? (this.requestedLocationRange = t, this.compositionRevisionWhenLocationRangeRequested = this.composition.revision, this.handlingInput ? void 0 : this.render()) : void 0;\n }, u.prototype.compositionWillLoadSnapshot = function () {\n return this.loadingSnapshot = !0;\n }, u.prototype.compositionDidLoadSnapshot = function () {\n return this.compositionController.refreshViewCache(), this.render(), this.loadingSnapshot = !1;\n }, u.prototype.getSelectionManager = function () {\n return this.selectionManager;\n }, u.proxyMethod(\"getSelectionManager().setLocationRange\"), u.proxyMethod(\"getSelectionManager().getLocationRange\"), u.prototype.attachmentManagerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.compositionControllerWillSyncDocumentView = function () {\n return this.inputController.editorWillSyncDocumentView(), this.selectionManager.lock(), this.selectionManager.clearSelection();\n }, u.prototype.compositionControllerDidSyncDocumentView = function () {\n return this.inputController.editorDidSyncDocumentView(), this.selectionManager.unlock(), this.updateCurrentActions(), this.notifyEditorElement(\"sync\");\n }, u.prototype.compositionControllerDidRender = function () {\n return null != this.requestedLocationRange && (this.compositionRevisionWhenLocationRangeRequested === this.composition.revision && this.selectionManager.setLocationRange(this.requestedLocationRange), this.requestedLocationRange = null, this.compositionRevisionWhenLocationRangeRequested = null), this.renderedCompositionRevision !== this.composition.revision && (this.runEditorFilters(), this.composition.updateCurrentAttributes(), this.notifyEditorElement(\"render\")), this.renderedCompositionRevision = this.composition.revision;\n }, u.prototype.compositionControllerDidFocus = function () {\n return this.toolbarController.hideDialog(), this.notifyEditorElement(\"focus\");\n }, u.prototype.compositionControllerDidBlur = function () {\n return this.notifyEditorElement(\"blur\");\n }, u.prototype.compositionControllerDidSelectAttachment = function (t, e) {\n return this.toolbarController.hideDialog(), this.composition.editAttachment(t, e);\n }, u.prototype.compositionControllerDidRequestDeselectingAttachment = function (t) {\n var e, n;\n return e = null != (n = this.attachmentLocationRange) ? n : this.composition.document.getLocationRangeOfAttachment(t), this.selectionManager.setLocationRange(e[1]);\n }, u.prototype.compositionControllerWillUpdateAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Edit Attachment\", {\n context: t.id,\n consolidatable: !0\n });\n }, u.prototype.compositionControllerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.inputControllerWillHandleInput = function () {\n return this.handlingInput = !0, this.requestedRender = !1;\n }, u.prototype.inputControllerDidRequestRender = function () {\n return this.requestedRender = !0;\n }, u.prototype.inputControllerDidHandleInput = function () {\n return this.handlingInput = !1, this.requestedRender ? (this.requestedRender = !1, this.render()) : void 0;\n }, u.prototype.inputControllerDidAllowUnhandledInput = function () {\n return this.notifyEditorElement(\"change\");\n }, u.prototype.inputControllerDidRequestReparse = function () {\n return this.reparse();\n }, u.prototype.inputControllerWillPerformTyping = function () {\n return this.recordTypingUndoEntry();\n }, u.prototype.inputControllerWillPerformFormatting = function (t) {\n return this.recordFormattingUndoEntry(t);\n }, u.prototype.inputControllerWillCutText = function () {\n return this.editor.recordUndoEntry(\"Cut\");\n }, u.prototype.inputControllerWillPaste = function (t) {\n return this.editor.recordUndoEntry(\"Paste\"), this.pasting = !0, this.notifyEditorElement(\"before-paste\", {\n paste: t\n });\n }, u.prototype.inputControllerDidPaste = function (t) {\n return t.range = this.pastedRange, this.pastedRange = null, this.pasting = null, this.notifyEditorElement(\"paste\", {\n paste: t\n });\n }, u.prototype.inputControllerWillMoveText = function () {\n return this.editor.recordUndoEntry(\"Move\");\n }, u.prototype.inputControllerWillAttachFiles = function () {\n return this.editor.recordUndoEntry(\"Drop Files\");\n }, u.prototype.inputControllerWillPerformUndo = function () {\n return this.editor.undo();\n }, u.prototype.inputControllerWillPerformRedo = function () {\n return this.editor.redo();\n }, u.prototype.inputControllerDidReceiveKeyboardCommand = function (t) {\n return this.toolbarController.applyKeyboardCommand(t);\n }, u.prototype.inputControllerDidStartDrag = function () {\n return this.locationRangeBeforeDrag = this.selectionManager.getLocationRange();\n }, u.prototype.inputControllerDidReceiveDragOverPoint = function (t) {\n return this.selectionManager.setLocationRangeFromPointRange(t);\n }, u.prototype.inputControllerDidCancelDrag = function () {\n return this.selectionManager.setLocationRange(this.locationRangeBeforeDrag), this.locationRangeBeforeDrag = null;\n }, u.prototype.locationRangeDidChange = function (t) {\n return this.composition.updateCurrentAttributes(), this.updateCurrentActions(), this.attachmentLocationRange && !o(this.attachmentLocationRange, t) && this.composition.stopEditingAttachment(), this.notifyEditorElement(\"selection-change\");\n }, u.prototype.toolbarDidClickButton = function () {\n return this.getLocationRange() ? void 0 : this.setLocationRange({\n index: 0,\n offset: 0\n });\n }, u.prototype.toolbarDidInvokeAction = function (t) {\n return this.invokeAction(t);\n }, u.prototype.toolbarDidToggleAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.toggleCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidUpdateAttribute = function (t, e) {\n return this.recordFormattingUndoEntry(t), this.composition.setCurrentAttribute(t, e), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidRemoveAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.removeCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarWillShowDialog = function () {\n return this.composition.expandSelectionForEditing(), this.freezeSelection();\n }, u.prototype.toolbarDidShowDialog = function (t) {\n return this.notifyEditorElement(\"toolbar-dialog-show\", {\n dialogName: t\n });\n }, u.prototype.toolbarDidHideDialog = function (t) {\n return this.thawSelection(), this.editorElement.focus(), this.notifyEditorElement(\"toolbar-dialog-hide\", {\n dialogName: t\n });\n }, u.prototype.freezeSelection = function () {\n return this.selectionFrozen ? void 0 : (this.selectionManager.lock(), this.composition.freezeSelection(), this.selectionFrozen = !0, this.render());\n }, u.prototype.thawSelection = function () {\n return this.selectionFrozen ? (this.composition.thawSelection(), this.selectionManager.unlock(), this.selectionFrozen = !1, this.render()) : void 0;\n }, u.prototype.actions = {\n undo: {\n test: function () {\n return this.editor.canUndo();\n },\n perform: function () {\n return this.editor.undo();\n }\n },\n redo: {\n test: function () {\n return this.editor.canRedo();\n },\n perform: function () {\n return this.editor.redo();\n }\n },\n link: {\n test: function () {\n return this.editor.canActivateAttribute(\"href\");\n }\n },\n increaseNestingLevel: {\n test: function () {\n return this.editor.canIncreaseNestingLevel();\n },\n perform: function () {\n return this.editor.increaseNestingLevel() && this.render();\n }\n },\n decreaseNestingLevel: {\n test: function () {\n return this.editor.canDecreaseNestingLevel();\n },\n perform: function () {\n return this.editor.decreaseNestingLevel() && this.render();\n }\n },\n attachFiles: {\n test: function () {\n return !0;\n },\n perform: function () {\n return e.config.input.pickFiles(this.editor.insertFiles);\n }\n }\n }, u.prototype.canInvokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? !0 : !!(null != (e = this.actions[t]) && null != (n = e.test) ? n.call(this) : void 0);\n }, u.prototype.invokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? this.notifyEditorElement(\"action-invoke\", {\n actionName: t\n }) : null != (e = this.actions[t]) && null != (n = e.perform) ? n.call(this) : void 0;\n }, u.prototype.actionIsExternal = function (t) {\n return /^x-./.test(t);\n }, u.prototype.getCurrentActions = function () {\n var t, e;\n e = {};\n\n for (t in this.actions) e[t] = this.canInvokeAction(t);\n\n return e;\n }, u.prototype.updateCurrentActions = function () {\n var t;\n return t = this.getCurrentActions(), n(t, this.currentActions) ? void 0 : (this.currentActions = t, this.toolbarController.updateActions(this.currentActions), this.notifyEditorElement(\"actions-change\", {\n actions: this.currentActions\n }));\n }, u.prototype.runEditorFilters = function () {\n var t, e, n, i, o, r, s, a;\n\n for (a = this.composition.getSnapshot(), o = this.editor.filters, n = 0, i = o.length; i > n; n++) e = o[n], t = a.document, s = a.selectedRange, a = null != (r = e.call(this.editor, a)) ? r : {}, null == a.document && (a.document = t), null == a.selectedRange && (a.selectedRange = s);\n\n return c(a, this.composition.getSnapshot()) ? void 0 : this.composition.loadSnapshot(a);\n }, c = function (t, e) {\n return o(t.selectedRange, e.selectedRange) && t.document.isEqualTo(e.document);\n }, u.prototype.updateInputElement = function () {\n var t, n;\n return t = this.compositionController.getSerializableElement(), n = e.serializeToContentType(t, \"text/html\"), this.editorElement.setInputElementValue(n);\n }, u.prototype.notifyEditorElement = function (t, e) {\n switch (t) {\n case \"document-change\":\n this.documentChangedSinceLastRender = !0;\n break;\n\n case \"render\":\n this.documentChangedSinceLastRender && (this.documentChangedSinceLastRender = !1, this.notifyEditorElement(\"change\"));\n break;\n\n case \"change\":\n case \"attachment-add\":\n case \"attachment-edit\":\n case \"attachment-remove\":\n this.updateInputElement();\n }\n\n return this.editorElement.notify(t, e);\n }, u.prototype.removeAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Delete Attachment\"), this.composition.removeAttachment(t), this.render();\n }, u.prototype.recordFormattingUndoEntry = function (e) {\n var n, o;\n return n = t(e), o = this.selectionManager.getLocationRange(), n || !i(o) ? this.editor.recordUndoEntry(\"Formatting\", {\n context: this.getUndoContext(),\n consolidatable: !0\n }) : void 0;\n }, u.prototype.recordTypingUndoEntry = function () {\n return this.editor.recordUndoEntry(\"Typing\", {\n context: this.getUndoContext(this.currentAttributes),\n consolidatable: !0\n });\n }, u.prototype.getUndoContext = function () {\n var t;\n return t = 1 <= arguments.length ? a.call(arguments, 0) : [], [this.getLocationContext(), this.getTimeContext()].concat(a.call(t));\n }, u.prototype.getLocationContext = function () {\n var t;\n return t = this.selectionManager.getLocationRange(), i(t) ? t[0].index : t;\n }, u.prototype.getTimeContext = function () {\n return e.config.undoInterval > 0 ? Math.floor(new Date().getTime() / e.config.undoInterval) : 0;\n }, u.prototype.isFocused = function () {\n var t;\n return this.editorElement === (null != (t = this.editorElement.ownerDocument) ? t.activeElement : void 0);\n }, u;\n }(e.Controller);\n }.call(this), function () {\n var t, n, i, o, r, s;\n n = e.browser, r = e.makeElement, s = e.triggerEvent, i = e.handleEvent, o = e.handleEventOnce, t = e.AttachmentView.attachmentSelector, e.registerElement(\"trix-editor\", function () {\n var a, u, c, l, h, p, d, f;\n return p = 0, u = function (t) {\n return !document.querySelector(\":focus\") && t.hasAttribute(\"autofocus\") && document.querySelector(\"[autofocus]\") === t ? t.focus() : void 0;\n }, d = function (t) {\n return t.hasAttribute(\"contenteditable\") ? void 0 : (t.setAttribute(\"contenteditable\", \"\"), o(\"focus\", {\n onElement: t,\n withCallback: function () {\n return c(t);\n }\n }));\n }, a = function (t) {\n return t.hasAttribute(\"role\") ? void 0 : t.setAttribute(\"role\", \"textbox\");\n }, c = function (t) {\n return h(t), f(t);\n }, h = function (t) {\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"enableObjectResizing\") : void 0) ? (document.execCommand(\"enableObjectResizing\", !1, !1), i(\"mscontrolselect\", {\n onElement: t,\n preventDefault: !0\n })) : void 0;\n }, f = function () {\n var t;\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"DefaultParagraphSeparator\") : void 0) && (t = e.config.blockAttributes[\"default\"].tagName, \"div\" === t || \"p\" === t) ? document.execCommand(\"DefaultParagraphSeparator\", !1, t) : void 0;\n }, l = function () {\n return n.forcesObjectResizing ? {\n display: \"inline\",\n width: \"auto\"\n } : {\n display: \"inline-block\",\n width: \"1px\"\n };\n }(), {\n defaultCSS: \"%t {\\n display: block;\\n}\\n\\n%t:empty:not(:focus)::before {\\n content: attr(placeholder);\\n color: graytext;\\n cursor: text;\\n}\\n\\n%t a[contenteditable=false] {\\n cursor: text;\\n}\\n\\n%t img {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n%t \" + t + \" figcaption textarea {\\n resize: none;\\n}\\n\\n%t \" + t + \" figcaption textarea.trix-autoresize-clone {\\n position: absolute;\\n left: -9999px;\\n max-height: 0px;\\n}\\n\\n%t \" + t + \" figcaption[data-trix-placeholder]:empty::before {\\n content: attr(data-trix-placeholder);\\n color: graytext;\\n}\\n\\n%t [data-trix-cursor-target] {\\n display: \" + l.display + \" !important;\\n width: \" + l.width + \" !important;\\n padding: 0 !important;\\n margin: 0 !important;\\n border: none !important;\\n}\\n\\n%t [data-trix-cursor-target=left] {\\n vertical-align: top !important;\\n margin-left: -1px !important;\\n}\\n\\n%t [data-trix-cursor-target=right] {\\n vertical-align: bottom !important;\\n margin-right: -1px !important;\\n}\",\n trixId: {\n get: function () {\n return this.hasAttribute(\"trix-id\") ? this.getAttribute(\"trix-id\") : (this.setAttribute(\"trix-id\", ++p), this.trixId);\n }\n },\n toolbarElement: {\n get: function () {\n var t, e, n;\n return this.hasAttribute(\"toolbar\") ? null != (e = this.ownerDocument) ? e.getElementById(this.getAttribute(\"toolbar\")) : void 0 : this.parentNode ? (n = \"trix-toolbar-\" + this.trixId, this.setAttribute(\"toolbar\", n), t = r(\"trix-toolbar\", {\n id: n\n }), this.parentNode.insertBefore(t, this), t) : void 0;\n }\n },\n inputElement: {\n get: function () {\n var t, e, n;\n return this.hasAttribute(\"input\") ? null != (n = this.ownerDocument) ? n.getElementById(this.getAttribute(\"input\")) : void 0 : this.parentNode ? (e = \"trix-input-\" + this.trixId, this.setAttribute(\"input\", e), t = r(\"input\", {\n type: \"hidden\",\n id: e\n }), this.parentNode.insertBefore(t, this.nextElementSibling), t) : void 0;\n }\n },\n editor: {\n get: function () {\n var t;\n return null != (t = this.editorController) ? t.editor : void 0;\n }\n },\n name: {\n get: function () {\n var t;\n return null != (t = this.inputElement) ? t.name : void 0;\n }\n },\n value: {\n get: function () {\n var t;\n return null != (t = this.inputElement) ? t.value : void 0;\n },\n set: function (t) {\n var e;\n return this.defaultValue = t, null != (e = this.editor) ? e.loadHTML(this.defaultValue) : void 0;\n }\n },\n notify: function (t, e) {\n return this.editorController ? s(\"trix-\" + t, {\n onElement: this,\n attributes: e\n }) : void 0;\n },\n setInputElementValue: function (t) {\n var e;\n return null != (e = this.inputElement) ? e.value = t : void 0;\n },\n initialize: function () {\n return d(this), a(this);\n },\n connect: function () {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (this.editorController || (s(\"trix-before-initialize\", {\n onElement: this\n }), this.editorController = new e.EditorController({\n editorElement: this,\n html: this.defaultValue = this.value\n }), requestAnimationFrame(function (t) {\n return function () {\n return s(\"trix-initialize\", {\n onElement: t\n });\n };\n }(this))), this.editorController.registerSelectionManager(), this.registerResetListener(), u(this));\n },\n disconnect: function () {\n var t;\n return null != (t = this.editorController) && t.unregisterSelectionManager(), this.unregisterResetListener();\n },\n registerResetListener: function () {\n return this.resetListener = this.resetBubbled.bind(this), window.addEventListener(\"reset\", this.resetListener, !1);\n },\n unregisterResetListener: function () {\n return window.removeEventListener(\"reset\", this.resetListener, !1);\n },\n resetBubbled: function (t) {\n var e;\n return t.target !== (null != (e = this.inputElement) ? e.form : void 0) || t.defaultPrevented ? void 0 : this.reset();\n },\n reset: function () {\n return this.value = this.defaultValue;\n }\n };\n }());\n }.call(this), function () {}.call(this);\n }).call(this), \"object\" == typeof module && module.exports ? module.exports = e : \"function\" == typeof define && define.amd && define(e);\n}.call(this);","(function (global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function rhex(n) {\n var s = \"\",\n j;\n\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n });\n });\n\n var classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\n\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\n\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n\n var id = 0;\n\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n\n return object[methodName].apply(object, messages);\n }\n }\n\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\n };\n\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n\n submitButtonsByForm.delete(form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","export default function getBoundingClientRect(element) {\n var rect = element.getBoundingClientRect();\n return {\n width: rect.width,\n height: rect.height,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.left,\n y: rect.top\n };\n}","/*:: import type { Window } from '../types'; */\n\n/*:: declare function getWindow(node: Node | Window): Window; */\nexport default function getWindow(node) {\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getWindow from \"./getWindow.js\";\n/*:: declare function isElement(node: mixed): boolean %checks(node instanceof\n Element); */\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n/*:: declare function isHTMLElement(node: mixed): boolean %checks(node instanceof\n HTMLElement); */\n\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nexport { isElement, isHTMLElement };","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe: assume body is always available\n return (isElement(element) ? element.ownerDocument : element.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\"; // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement);\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","// Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\nexport default function getLayoutRect(element) {\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: element.offsetWidth,\n height: element.offsetHeight\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// $FlowFixMe: this is a quicker (but less type safe) way to save quite some bytes from the bundle\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || // DOM Element detected\n // $FlowFixMe: need a better way to handle this...\n element.host || // ShadowRoot detected\n // $FlowFixMe: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the \nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = getNodeName(scrollParent) === 'body';\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n var offsetParent = element.offsetParent;\n\n if (offsetParent) {\n var html = getDocumentElement(offsetParent);\n\n if (getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && getComputedStyle(html).position !== 'static') {\n return html;\n }\n }\n\n return offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.willChange && css.willChange !== 'auto') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static') {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nexport * from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign(Object.assign({}, DEFAULT_OPTIONS), defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(options) {\n cleanupModifierEffects();\n state.options = Object.assign(Object.assign(Object.assign({}, defaultOptions), state.options), options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign(Object.assign(Object.assign({}, existing), current), {}, {\n options: Object.assign(Object.assign({}, existing.options), current.options),\n data: Object.assign(Object.assign({}, existing.data), current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = Math.floor(offsets[mainAxis]) - Math.floor(reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = Math.floor(offsets[mainAxis]) + Math.ceil(reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name; // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsets(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: Math.round(x * dpr) / dpr || 0,\n y: Math.round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive;\n\n var _roundOffsets = roundOffsets(offsets),\n x = _roundOffsets.x,\n y = _roundOffsets.y;\n\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n } // $FlowFixMe: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n /*:: offsetParent = (offsetParent: Element); */\n\n\n if (placement === top) {\n sideY = bottom;\n y -= offsetParent.clientHeight - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left) {\n sideX = right;\n x -= offsetParent.clientWidth - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign(Object.assign({}, commonStyles), {}, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) < 2 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign(Object.assign({}, commonStyles), {}, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref3) {\n var state = _ref3.state,\n options = _ref3.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign(Object.assign({}, state.styles.popper), mapToStyles(Object.assign(Object.assign({}, commonStyles), {}, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign(Object.assign({}, state.styles.arrow), mapToStyles(Object.assign(Object.assign({}, commonStyles), {}, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false\n })));\n }\n\n state.attributes.popper = Object.assign(Object.assign({}, state.attributes.popper), {}, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\";\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign(Object.assign({}, rects), {}, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","export default function contains(parent, child) {\n // $FlowFixMe: hasOwnProperty doesn't seem to work in tests\n var isShadow = Boolean(child.getRootNode && child.getRootNode().host); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (isShadow) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign(Object.assign({}, rect), {}, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = Math.max(rect.top, accRect.top);\n accRect.right = Math.min(rect.right, accRect.right);\n accRect.bottom = Math.min(rect.bottom, accRect.bottom);\n accRect.left = Math.max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = element.ownerDocument.body;\n var width = Math.max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = Math.max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += Math.max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign(Object.assign({}, getFreshSideObject()), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var referenceElement = state.elements.reference;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(referenceElement);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign(Object.assign({}, popperRect), popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","export default function within(min, value, max) {\n return Math.max(min, Math.min(value, max));\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign(Object.assign({}, state.attributes.popper), {}, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./index.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\n/*:: type OverflowsMap = { [ComputedPlacement]: number }; */\n\n/*;; type OverflowsMap = { [key in ComputedPlacement]: number }; */\n\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements; // $FlowFixMe\n\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport within from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign(Object.assign({}, state.rects), {}, {\n placement: state.placement\n })) : tetherOffset;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = popperOffsets[mainAxis] + overflow[mainSide];\n var max = popperOffsets[mainAxis] - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;\n var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? Math.min(min, tetherMin) : min, offset, tether ? Math.max(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var _preventedOffset = within(_min, _offset, _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport within from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = state.modifiersData[name + \"#persistent\"].padding;\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element,\n _options$padding = options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n state.modifiersData[name + \"#persistent\"] = {\n padding: mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements))\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","/**!\n* tippy.js v6.2.5\n* (c) 2017-2020 atomiks\n* MIT License\n*/\nimport { createPopper } from '@popperjs/core';\nvar ROUND_ARROW = '';\nvar BOX_CLASS = \"tippy-box\";\nvar CONTENT_CLASS = \"tippy-content\";\nvar BACKDROP_CLASS = \"tippy-backdrop\";\nvar ARROW_CLASS = \"tippy-arrow\";\nvar SVG_ARROW_CLASS = \"tippy-svg-arrow\";\nvar TOUCH_OPTIONS = {\n passive: true,\n capture: true\n};\n\nfunction hasOwnProperty(obj, key) {\n return {}.hasOwnProperty.call(obj, key);\n}\n\nfunction getValueAtIndexOrReturn(value, index, defaultValue) {\n if (Array.isArray(value)) {\n var v = value[index];\n return v == null ? Array.isArray(defaultValue) ? defaultValue[index] : defaultValue : v;\n }\n\n return value;\n}\n\nfunction isType(value, type) {\n var str = {}.toString.call(value);\n return str.indexOf('[object') === 0 && str.indexOf(type + \"]\") > -1;\n}\n\nfunction invokeWithArgsOrReturn(value, args) {\n return typeof value === 'function' ? value.apply(void 0, args) : value;\n}\n\nfunction debounce(fn, ms) {\n // Avoid wrapping in `setTimeout` if ms is 0 anyway\n if (ms === 0) {\n return fn;\n }\n\n var timeout;\n return function (arg) {\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n fn(arg);\n }, ms);\n };\n}\n\nfunction removeProperties(obj, keys) {\n var clone = Object.assign({}, obj);\n keys.forEach(function (key) {\n delete clone[key];\n });\n return clone;\n}\n\nfunction splitBySpaces(value) {\n return value.split(/\\s+/).filter(Boolean);\n}\n\nfunction normalizeToArray(value) {\n return [].concat(value);\n}\n\nfunction pushIfUnique(arr, value) {\n if (arr.indexOf(value) === -1) {\n arr.push(value);\n }\n}\n\nfunction unique(arr) {\n return arr.filter(function (item, index) {\n return arr.indexOf(item) === index;\n });\n}\n\nfunction getBasePlacement(placement) {\n return placement.split('-')[0];\n}\n\nfunction arrayFrom(value) {\n return [].slice.call(value);\n}\n\nfunction removeUndefinedProps(obj) {\n return Object.keys(obj).reduce(function (acc, key) {\n if (obj[key] !== undefined) {\n acc[key] = obj[key];\n }\n\n return acc;\n }, {});\n}\n\nfunction div() {\n return document.createElement('div');\n}\n\nfunction isElement(value) {\n return ['Element', 'Fragment'].some(function (type) {\n return isType(value, type);\n });\n}\n\nfunction isNodeList(value) {\n return isType(value, 'NodeList');\n}\n\nfunction isMouseEvent(value) {\n return isType(value, 'MouseEvent');\n}\n\nfunction isReferenceElement(value) {\n return !!(value && value._tippy && value._tippy.reference === value);\n}\n\nfunction getArrayOfElements(value) {\n if (isElement(value)) {\n return [value];\n }\n\n if (isNodeList(value)) {\n return arrayFrom(value);\n }\n\n if (Array.isArray(value)) {\n return value;\n }\n\n return arrayFrom(document.querySelectorAll(value));\n}\n\nfunction setTransitionDuration(els, value) {\n els.forEach(function (el) {\n if (el) {\n el.style.transitionDuration = value + \"ms\";\n }\n });\n}\n\nfunction setVisibilityState(els, state) {\n els.forEach(function (el) {\n if (el) {\n el.setAttribute('data-state', state);\n }\n });\n}\n\nfunction getOwnerDocument(elementOrElements) {\n var _normalizeToArray = normalizeToArray(elementOrElements),\n element = _normalizeToArray[0];\n\n return element ? element.ownerDocument || document : document;\n}\n\nfunction isCursorOutsideInteractiveBorder(popperTreeData, event) {\n var clientX = event.clientX,\n clientY = event.clientY;\n return popperTreeData.every(function (_ref) {\n var popperRect = _ref.popperRect,\n popperState = _ref.popperState,\n props = _ref.props;\n var interactiveBorder = props.interactiveBorder;\n var basePlacement = getBasePlacement(popperState.placement);\n var offsetData = popperState.modifiersData.offset;\n\n if (!offsetData) {\n return true;\n }\n\n var topDistance = basePlacement === 'bottom' ? offsetData.top.y : 0;\n var bottomDistance = basePlacement === 'top' ? offsetData.bottom.y : 0;\n var leftDistance = basePlacement === 'right' ? offsetData.left.x : 0;\n var rightDistance = basePlacement === 'left' ? offsetData.right.x : 0;\n var exceedsTop = popperRect.top - clientY + topDistance > interactiveBorder;\n var exceedsBottom = clientY - popperRect.bottom - bottomDistance > interactiveBorder;\n var exceedsLeft = popperRect.left - clientX + leftDistance > interactiveBorder;\n var exceedsRight = clientX - popperRect.right - rightDistance > interactiveBorder;\n return exceedsTop || exceedsBottom || exceedsLeft || exceedsRight;\n });\n}\n\nfunction updateTransitionEndListener(box, action, listener) {\n var method = action + \"EventListener\"; // some browsers apparently support `transition` (unprefixed) but only fire\n // `webkitTransitionEnd`...\n\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n box[method](event, listener);\n });\n}\n\nvar currentInput = {\n isTouch: false\n};\nvar lastMouseMoveTime = 0;\n/**\n * When a `touchstart` event is fired, it's assumed the user is using touch\n * input. We'll bind a `mousemove` event listener to listen for mouse input in\n * the future. This way, the `isTouch` property is fully dynamic and will handle\n * hybrid devices that use a mix of touch + mouse input.\n */\n\nfunction onDocumentTouchStart() {\n if (currentInput.isTouch) {\n return;\n }\n\n currentInput.isTouch = true;\n\n if (window.performance) {\n document.addEventListener('mousemove', onDocumentMouseMove);\n }\n}\n/**\n * When two `mousemove` event are fired consecutively within 20ms, it's assumed\n * the user is using mouse input again. `mousemove` can fire on touch devices as\n * well, but very rarely that quickly.\n */\n\n\nfunction onDocumentMouseMove() {\n var now = performance.now();\n\n if (now - lastMouseMoveTime < 20) {\n currentInput.isTouch = false;\n document.removeEventListener('mousemove', onDocumentMouseMove);\n }\n\n lastMouseMoveTime = now;\n}\n/**\n * When an element is in focus and has a tippy, leaving the tab/window and\n * returning causes it to show again. For mouse users this is unexpected, but\n * for keyboard use it makes sense.\n * TODO: find a better technique to solve this problem\n */\n\n\nfunction onWindowBlur() {\n var activeElement = document.activeElement;\n\n if (isReferenceElement(activeElement)) {\n var instance = activeElement._tippy;\n\n if (activeElement.blur && !instance.state.isVisible) {\n activeElement.blur();\n }\n }\n}\n\nfunction bindGlobalEventListeners() {\n document.addEventListener('touchstart', onDocumentTouchStart, TOUCH_OPTIONS);\n window.addEventListener('blur', onWindowBlur);\n}\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nvar ua = isBrowser ? navigator.userAgent : '';\nvar isIE = /MSIE |Trident\\//.test(ua);\n\nfunction createMemoryLeakWarning(method) {\n var txt = method === 'destroy' ? 'n already-' : ' ';\n return [method + \"() was called on a\" + txt + \"destroyed instance. This is a no-op but\", 'indicates a potential memory leak.'].join(' ');\n}\n\nfunction clean(value) {\n var spacesAndTabs = /[ \\t]{2,}/g;\n var lineStartWithSpaces = /^[ \\t]*/gm;\n return value.replace(spacesAndTabs, ' ').replace(lineStartWithSpaces, '').trim();\n}\n\nfunction getDevMessage(message) {\n return clean(\"\\n %ctippy.js\\n\\n %c\" + clean(message) + \"\\n\\n %c\\uD83D\\uDC77\\u200D This is a development-only message. It will be removed in production.\\n \");\n}\n\nfunction getFormattedMessage(message) {\n return [getDevMessage(message), // title\n 'color: #00C584; font-size: 1.3em; font-weight: bold;', // message\n 'line-height: 1.5', // footer\n 'color: #a6a095;'];\n} // Assume warnings and errors never have the same message\n\n\nvar visitedMessages;\n\nif (process.env.NODE_ENV !== \"production\") {\n resetVisitedMessages();\n}\n\nfunction resetVisitedMessages() {\n visitedMessages = new Set();\n}\n\nfunction warnWhen(condition, message) {\n if (condition && !visitedMessages.has(message)) {\n var _console;\n\n visitedMessages.add(message);\n\n (_console = console).warn.apply(_console, getFormattedMessage(message));\n }\n}\n\nfunction errorWhen(condition, message) {\n if (condition && !visitedMessages.has(message)) {\n var _console2;\n\n visitedMessages.add(message);\n\n (_console2 = console).error.apply(_console2, getFormattedMessage(message));\n }\n}\n\nfunction validateTargets(targets) {\n var didPassFalsyValue = !targets;\n var didPassPlainObject = Object.prototype.toString.call(targets) === '[object Object]' && !targets.addEventListener;\n errorWhen(didPassFalsyValue, ['tippy() was passed', '`' + String(targets) + '`', 'as its targets (first) argument. Valid types are: String, Element,', 'Element[], or NodeList.'].join(' '));\n errorWhen(didPassPlainObject, ['tippy() was passed a plain object which is not supported as an argument', 'for virtual positioning. Use props.getReferenceClientRect instead.'].join(' '));\n}\n\nvar pluginProps = {\n animateFill: false,\n followCursor: false,\n inlinePositioning: false,\n sticky: false\n};\nvar renderProps = {\n allowHTML: false,\n animation: 'fade',\n arrow: true,\n content: '',\n inertia: false,\n maxWidth: 350,\n role: 'tooltip',\n theme: '',\n zIndex: 9999\n};\nvar defaultProps = Object.assign({\n appendTo: function appendTo() {\n return document.body;\n },\n aria: {\n content: 'auto',\n expanded: 'auto'\n },\n delay: 0,\n duration: [300, 250],\n getReferenceClientRect: null,\n hideOnClick: true,\n ignoreAttributes: false,\n interactive: false,\n interactiveBorder: 2,\n interactiveDebounce: 0,\n moveTransition: '',\n offset: [0, 10],\n onAfterUpdate: function onAfterUpdate() {},\n onBeforeUpdate: function onBeforeUpdate() {},\n onCreate: function onCreate() {},\n onDestroy: function onDestroy() {},\n onHidden: function onHidden() {},\n onHide: function onHide() {},\n onMount: function onMount() {},\n onShow: function onShow() {},\n onShown: function onShown() {},\n onTrigger: function onTrigger() {},\n onUntrigger: function onUntrigger() {},\n onClickOutside: function onClickOutside() {},\n placement: 'top',\n plugins: [],\n popperOptions: {},\n render: null,\n showOnCreate: false,\n touch: true,\n trigger: 'mouseenter focus',\n triggerTarget: null\n}, pluginProps, {}, renderProps);\nvar defaultKeys = Object.keys(defaultProps);\n\nvar setDefaultProps = function setDefaultProps(partialProps) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n validateProps(partialProps, []);\n }\n\n var keys = Object.keys(partialProps);\n keys.forEach(function (key) {\n defaultProps[key] = partialProps[key];\n });\n};\n\nfunction getExtendedPassedProps(passedProps) {\n var plugins = passedProps.plugins || [];\n var pluginProps = plugins.reduce(function (acc, plugin) {\n var name = plugin.name,\n defaultValue = plugin.defaultValue;\n\n if (name) {\n acc[name] = passedProps[name] !== undefined ? passedProps[name] : defaultValue;\n }\n\n return acc;\n }, {});\n return Object.assign({}, passedProps, {}, pluginProps);\n}\n\nfunction getDataAttributeProps(reference, plugins) {\n var propKeys = plugins ? Object.keys(getExtendedPassedProps(Object.assign({}, defaultProps, {\n plugins: plugins\n }))) : defaultKeys;\n var props = propKeys.reduce(function (acc, key) {\n var valueAsString = (reference.getAttribute(\"data-tippy-\" + key) || '').trim();\n\n if (!valueAsString) {\n return acc;\n }\n\n if (key === 'content') {\n acc[key] = valueAsString;\n } else {\n try {\n acc[key] = JSON.parse(valueAsString);\n } catch (e) {\n acc[key] = valueAsString;\n }\n }\n\n return acc;\n }, {});\n return props;\n}\n\nfunction evaluateProps(reference, props) {\n var out = Object.assign({}, props, {\n content: invokeWithArgsOrReturn(props.content, [reference])\n }, props.ignoreAttributes ? {} : getDataAttributeProps(reference, props.plugins));\n out.aria = Object.assign({}, defaultProps.aria, {}, out.aria);\n out.aria = {\n expanded: out.aria.expanded === 'auto' ? props.interactive : out.aria.expanded,\n content: out.aria.content === 'auto' ? props.interactive ? null : 'describedby' : out.aria.content\n };\n return out;\n}\n\nfunction validateProps(partialProps, plugins) {\n if (partialProps === void 0) {\n partialProps = {};\n }\n\n if (plugins === void 0) {\n plugins = [];\n }\n\n var keys = Object.keys(partialProps);\n keys.forEach(function (prop) {\n var nonPluginProps = removeProperties(defaultProps, Object.keys(pluginProps));\n var didPassUnknownProp = !hasOwnProperty(nonPluginProps, prop); // Check if the prop exists in `plugins`\n\n if (didPassUnknownProp) {\n didPassUnknownProp = plugins.filter(function (plugin) {\n return plugin.name === prop;\n }).length === 0;\n }\n\n warnWhen(didPassUnknownProp, [\"`\" + prop + \"`\", \"is not a valid prop. You may have spelled it incorrectly, or if it's\", 'a plugin, forgot to pass it in an array as props.plugins.', '\\n\\n', 'All props: https://atomiks.github.io/tippyjs/v6/all-props/\\n', 'Plugins: https://atomiks.github.io/tippyjs/v6/plugins/'].join(' '));\n });\n}\n\nvar innerHTML = function innerHTML() {\n return 'innerHTML';\n};\n\nfunction dangerouslySetInnerHTML(element, html) {\n element[innerHTML()] = html;\n}\n\nfunction createArrowElement(value) {\n var arrow = div();\n\n if (value === true) {\n arrow.className = ARROW_CLASS;\n } else {\n arrow.className = SVG_ARROW_CLASS;\n\n if (isElement(value)) {\n arrow.appendChild(value);\n } else {\n dangerouslySetInnerHTML(arrow, value);\n }\n }\n\n return arrow;\n}\n\nfunction setContent(content, props) {\n if (isElement(props.content)) {\n dangerouslySetInnerHTML(content, '');\n content.appendChild(props.content);\n } else if (typeof props.content !== 'function') {\n if (props.allowHTML) {\n dangerouslySetInnerHTML(content, props.content);\n } else {\n content.textContent = props.content;\n }\n }\n}\n\nfunction getChildren(popper) {\n var box = popper.firstElementChild;\n var boxChildren = arrayFrom(box.children);\n return {\n box: box,\n content: boxChildren.find(function (node) {\n return node.classList.contains(CONTENT_CLASS);\n }),\n arrow: boxChildren.find(function (node) {\n return node.classList.contains(ARROW_CLASS) || node.classList.contains(SVG_ARROW_CLASS);\n }),\n backdrop: boxChildren.find(function (node) {\n return node.classList.contains(BACKDROP_CLASS);\n })\n };\n}\n\nfunction render(instance) {\n var popper = div();\n var box = div();\n box.className = BOX_CLASS;\n box.setAttribute('data-state', 'hidden');\n box.setAttribute('tabindex', '-1');\n var content = div();\n content.className = CONTENT_CLASS;\n content.setAttribute('data-state', 'hidden');\n setContent(content, instance.props);\n popper.appendChild(box);\n box.appendChild(content);\n onUpdate(instance.props, instance.props);\n\n function onUpdate(prevProps, nextProps) {\n var _getChildren = getChildren(popper),\n box = _getChildren.box,\n content = _getChildren.content,\n arrow = _getChildren.arrow;\n\n if (nextProps.theme) {\n box.setAttribute('data-theme', nextProps.theme);\n } else {\n box.removeAttribute('data-theme');\n }\n\n if (typeof nextProps.animation === 'string') {\n box.setAttribute('data-animation', nextProps.animation);\n } else {\n box.removeAttribute('data-animation');\n }\n\n if (nextProps.inertia) {\n box.setAttribute('data-inertia', '');\n } else {\n box.removeAttribute('data-inertia');\n }\n\n box.style.maxWidth = typeof nextProps.maxWidth === 'number' ? nextProps.maxWidth + \"px\" : nextProps.maxWidth;\n\n if (nextProps.role) {\n box.setAttribute('role', nextProps.role);\n } else {\n box.removeAttribute('role');\n }\n\n if (prevProps.content !== nextProps.content || prevProps.allowHTML !== nextProps.allowHTML) {\n setContent(content, instance.props);\n }\n\n if (nextProps.arrow) {\n if (!arrow) {\n box.appendChild(createArrowElement(nextProps.arrow));\n } else if (prevProps.arrow !== nextProps.arrow) {\n box.removeChild(arrow);\n box.appendChild(createArrowElement(nextProps.arrow));\n }\n } else if (arrow) {\n box.removeChild(arrow);\n }\n }\n\n return {\n popper: popper,\n onUpdate: onUpdate\n };\n} // Runtime check to identify if the render function is the default one; this\n// way we can apply default CSS transitions logic and it can be tree-shaken away\n\n\nrender.$$tippy = true;\nvar idCounter = 1;\nvar mouseMoveListeners = []; // Used by `hideAll()`\n\nvar mountedInstances = [];\n\nfunction createTippy(reference, passedProps) {\n var props = evaluateProps(reference, Object.assign({}, defaultProps, {}, getExtendedPassedProps(removeUndefinedProps(passedProps)))); // ===========================================================================\n // 🔒 Private members\n // ===========================================================================\n\n var showTimeout;\n var hideTimeout;\n var scheduleHideAnimationFrame;\n var isVisibleFromClick = false;\n var didHideDueToDocumentMouseDown = false;\n var didTouchMove = false;\n var ignoreOnFirstUpdate = false;\n var lastTriggerEvent;\n var currentTransitionEndListener;\n var onFirstUpdate;\n var listeners = [];\n var debouncedOnMouseMove = debounce(onMouseMove, props.interactiveDebounce);\n var currentTarget;\n var doc = getOwnerDocument(props.triggerTarget || reference); // ===========================================================================\n // 🔑 Public members\n // ===========================================================================\n\n var id = idCounter++;\n var popperInstance = null;\n var plugins = unique(props.plugins);\n var state = {\n // Is the instance currently enabled?\n isEnabled: true,\n // Is the tippy currently showing and not transitioning out?\n isVisible: false,\n // Has the instance been destroyed?\n isDestroyed: false,\n // Is the tippy currently mounted to the DOM?\n isMounted: false,\n // Has the tippy finished transitioning in?\n isShown: false\n };\n var instance = {\n // properties\n id: id,\n reference: reference,\n popper: div(),\n popperInstance: popperInstance,\n props: props,\n state: state,\n plugins: plugins,\n // methods\n clearDelayTimeouts: clearDelayTimeouts,\n setProps: setProps,\n setContent: setContent,\n show: show,\n hide: hide,\n hideWithInteractivity: hideWithInteractivity,\n enable: enable,\n disable: disable,\n unmount: unmount,\n destroy: destroy\n }; // TODO: Investigate why this early return causes a TDZ error in the tests —\n // it doesn't seem to happen in the browser\n\n /* istanbul ignore if */\n\n if (!props.render) {\n if (process.env.NODE_ENV !== \"production\") {\n errorWhen(true, 'render() function has not been supplied.');\n }\n\n return instance;\n } // ===========================================================================\n // Initial mutations\n // ===========================================================================\n\n\n var _props$render = props.render(instance),\n popper = _props$render.popper,\n onUpdate = _props$render.onUpdate;\n\n popper.setAttribute('data-tippy-root', '');\n popper.id = \"tippy-\" + instance.id;\n instance.popper = popper;\n reference._tippy = instance;\n popper._tippy = instance;\n var pluginsHooks = plugins.map(function (plugin) {\n return plugin.fn(instance);\n });\n var hasAriaExpanded = reference.hasAttribute('aria-expanded');\n addListeners();\n handleAriaExpandedAttribute();\n handleStyles();\n invokeHook('onCreate', [instance]);\n\n if (props.showOnCreate) {\n scheduleShow();\n } // Prevent a tippy with a delay from hiding if the cursor left then returned\n // before it started hiding\n\n\n popper.addEventListener('mouseenter', function () {\n if (instance.props.interactive && instance.state.isVisible) {\n instance.clearDelayTimeouts();\n }\n });\n popper.addEventListener('mouseleave', function (event) {\n if (instance.props.interactive && instance.props.trigger.indexOf('mouseenter') >= 0) {\n doc.addEventListener('mousemove', debouncedOnMouseMove);\n debouncedOnMouseMove(event);\n }\n });\n return instance; // ===========================================================================\n // 🔒 Private methods\n // ===========================================================================\n\n function getNormalizedTouchSettings() {\n var touch = instance.props.touch;\n return Array.isArray(touch) ? touch : [touch, 0];\n }\n\n function getIsCustomTouchBehavior() {\n return getNormalizedTouchSettings()[0] === 'hold';\n }\n\n function getIsDefaultRenderFn() {\n var _instance$props$rende; // @ts-ignore\n\n\n return !!((_instance$props$rende = instance.props.render) == null ? void 0 : _instance$props$rende.$$tippy);\n }\n\n function getCurrentTarget() {\n return currentTarget || reference;\n }\n\n function getDefaultTemplateChildren() {\n return getChildren(popper);\n }\n\n function getDelay(isShow) {\n // For touch or keyboard input, force `0` delay for UX reasons\n // Also if the instance is mounted but not visible (transitioning out),\n // ignore delay\n if (instance.state.isMounted && !instance.state.isVisible || currentInput.isTouch || lastTriggerEvent && lastTriggerEvent.type === 'focus') {\n return 0;\n }\n\n return getValueAtIndexOrReturn(instance.props.delay, isShow ? 0 : 1, defaultProps.delay);\n }\n\n function handleStyles() {\n popper.style.pointerEvents = instance.props.interactive && instance.state.isVisible ? '' : 'none';\n popper.style.zIndex = \"\" + instance.props.zIndex;\n }\n\n function invokeHook(hook, args, shouldInvokePropsHook) {\n if (shouldInvokePropsHook === void 0) {\n shouldInvokePropsHook = true;\n }\n\n pluginsHooks.forEach(function (pluginHooks) {\n if (pluginHooks[hook]) {\n pluginHooks[hook].apply(void 0, args);\n }\n });\n\n if (shouldInvokePropsHook) {\n var _instance$props;\n\n (_instance$props = instance.props)[hook].apply(_instance$props, args);\n }\n }\n\n function handleAriaContentAttribute() {\n var aria = instance.props.aria;\n\n if (!aria.content) {\n return;\n }\n\n var attr = \"aria-\" + aria.content;\n var id = popper.id;\n var nodes = normalizeToArray(instance.props.triggerTarget || reference);\n nodes.forEach(function (node) {\n var currentValue = node.getAttribute(attr);\n\n if (instance.state.isVisible) {\n node.setAttribute(attr, currentValue ? currentValue + \" \" + id : id);\n } else {\n var nextValue = currentValue && currentValue.replace(id, '').trim();\n\n if (nextValue) {\n node.setAttribute(attr, nextValue);\n } else {\n node.removeAttribute(attr);\n }\n }\n });\n }\n\n function handleAriaExpandedAttribute() {\n if (hasAriaExpanded || !instance.props.aria.expanded) {\n return;\n }\n\n var nodes = normalizeToArray(instance.props.triggerTarget || reference);\n nodes.forEach(function (node) {\n if (instance.props.interactive) {\n node.setAttribute('aria-expanded', instance.state.isVisible && node === getCurrentTarget() ? 'true' : 'false');\n } else {\n node.removeAttribute('aria-expanded');\n }\n });\n }\n\n function cleanupInteractiveMouseListeners() {\n doc.removeEventListener('mousemove', debouncedOnMouseMove);\n mouseMoveListeners = mouseMoveListeners.filter(function (listener) {\n return listener !== debouncedOnMouseMove;\n });\n }\n\n function onDocumentPress(event) {\n // Moved finger to scroll instead of an intentional tap outside\n if (currentInput.isTouch) {\n if (didTouchMove || event.type === 'mousedown') {\n return;\n }\n } // Clicked on interactive popper\n\n\n if (instance.props.interactive && popper.contains(event.target)) {\n return;\n } // Clicked on the event listeners target\n\n\n if (getCurrentTarget().contains(event.target)) {\n if (currentInput.isTouch) {\n return;\n }\n\n if (instance.state.isVisible && instance.props.trigger.indexOf('click') >= 0) {\n return;\n }\n } else {\n invokeHook('onClickOutside', [instance, event]);\n }\n\n if (instance.props.hideOnClick === true) {\n isVisibleFromClick = false;\n instance.clearDelayTimeouts();\n instance.hide(); // `mousedown` event is fired right before `focus` if pressing the\n // currentTarget. This lets a tippy with `focus` trigger know that it\n // should not show\n\n didHideDueToDocumentMouseDown = true;\n setTimeout(function () {\n didHideDueToDocumentMouseDown = false;\n }); // The listener gets added in `scheduleShow()`, but this may be hiding it\n // before it shows, and hide()'s early bail-out behavior can prevent it\n // from being cleaned up\n\n if (!instance.state.isMounted) {\n removeDocumentPress();\n }\n }\n }\n\n function onTouchMove() {\n didTouchMove = true;\n }\n\n function onTouchStart() {\n didTouchMove = false;\n }\n\n function addDocumentPress() {\n doc.addEventListener('mousedown', onDocumentPress, true);\n doc.addEventListener('touchend', onDocumentPress, TOUCH_OPTIONS);\n doc.addEventListener('touchstart', onTouchStart, TOUCH_OPTIONS);\n doc.addEventListener('touchmove', onTouchMove, TOUCH_OPTIONS);\n }\n\n function removeDocumentPress() {\n doc.removeEventListener('mousedown', onDocumentPress, true);\n doc.removeEventListener('touchend', onDocumentPress, TOUCH_OPTIONS);\n doc.removeEventListener('touchstart', onTouchStart, TOUCH_OPTIONS);\n doc.removeEventListener('touchmove', onTouchMove, TOUCH_OPTIONS);\n }\n\n function onTransitionedOut(duration, callback) {\n onTransitionEnd(duration, function () {\n if (!instance.state.isVisible && popper.parentNode && popper.parentNode.contains(popper)) {\n callback();\n }\n });\n }\n\n function onTransitionedIn(duration, callback) {\n onTransitionEnd(duration, callback);\n }\n\n function onTransitionEnd(duration, callback) {\n var box = getDefaultTemplateChildren().box;\n\n function listener(event) {\n if (event.target === box) {\n updateTransitionEndListener(box, 'remove', listener);\n callback();\n }\n } // Make callback synchronous if duration is 0\n // `transitionend` won't fire otherwise\n\n\n if (duration === 0) {\n return callback();\n }\n\n updateTransitionEndListener(box, 'remove', currentTransitionEndListener);\n updateTransitionEndListener(box, 'add', listener);\n currentTransitionEndListener = listener;\n }\n\n function on(eventType, handler, options) {\n if (options === void 0) {\n options = false;\n }\n\n var nodes = normalizeToArray(instance.props.triggerTarget || reference);\n nodes.forEach(function (node) {\n node.addEventListener(eventType, handler, options);\n listeners.push({\n node: node,\n eventType: eventType,\n handler: handler,\n options: options\n });\n });\n }\n\n function addListeners() {\n if (getIsCustomTouchBehavior()) {\n on('touchstart', onTrigger, {\n passive: true\n });\n on('touchend', onMouseLeave, {\n passive: true\n });\n }\n\n splitBySpaces(instance.props.trigger).forEach(function (eventType) {\n if (eventType === 'manual') {\n return;\n }\n\n on(eventType, onTrigger);\n\n switch (eventType) {\n case 'mouseenter':\n on('mouseleave', onMouseLeave);\n break;\n\n case 'focus':\n on(isIE ? 'focusout' : 'blur', onBlurOrFocusOut);\n break;\n\n case 'focusin':\n on('focusout', onBlurOrFocusOut);\n break;\n }\n });\n }\n\n function removeListeners() {\n listeners.forEach(function (_ref) {\n var node = _ref.node,\n eventType = _ref.eventType,\n handler = _ref.handler,\n options = _ref.options;\n node.removeEventListener(eventType, handler, options);\n });\n listeners = [];\n }\n\n function onTrigger(event) {\n var _lastTriggerEvent;\n\n var shouldScheduleClickHide = false;\n\n if (!instance.state.isEnabled || isEventListenerStopped(event) || didHideDueToDocumentMouseDown) {\n return;\n }\n\n var wasFocused = ((_lastTriggerEvent = lastTriggerEvent) == null ? void 0 : _lastTriggerEvent.type) === 'focus';\n lastTriggerEvent = event;\n currentTarget = event.currentTarget;\n handleAriaExpandedAttribute();\n\n if (!instance.state.isVisible && isMouseEvent(event)) {\n // If scrolling, `mouseenter` events can be fired if the cursor lands\n // over a new target, but `mousemove` events don't get fired. This\n // causes interactive tooltips to get stuck open until the cursor is\n // moved\n mouseMoveListeners.forEach(function (listener) {\n return listener(event);\n });\n } // Toggle show/hide when clicking click-triggered tooltips\n\n\n if (event.type === 'click' && (instance.props.trigger.indexOf('mouseenter') < 0 || isVisibleFromClick) && instance.props.hideOnClick !== false && instance.state.isVisible) {\n shouldScheduleClickHide = true;\n } else {\n scheduleShow(event);\n }\n\n if (event.type === 'click') {\n isVisibleFromClick = !shouldScheduleClickHide;\n }\n\n if (shouldScheduleClickHide && !wasFocused) {\n scheduleHide(event);\n }\n }\n\n function onMouseMove(event) {\n var target = event.target;\n var isCursorOverReferenceOrPopper = reference.contains(target) || popper.contains(target);\n\n if (event.type === 'mousemove' && isCursorOverReferenceOrPopper) {\n return;\n }\n\n var popperTreeData = getNestedPopperTree().concat(popper).map(function (popper) {\n var _instance$popperInsta;\n\n var instance = popper._tippy;\n var state = (_instance$popperInsta = instance.popperInstance) == null ? void 0 : _instance$popperInsta.state;\n\n if (state) {\n return {\n popperRect: popper.getBoundingClientRect(),\n popperState: state,\n props: props\n };\n }\n\n return null;\n }).filter(Boolean);\n\n if (isCursorOutsideInteractiveBorder(popperTreeData, event)) {\n cleanupInteractiveMouseListeners();\n scheduleHide(event);\n }\n }\n\n function onMouseLeave(event) {\n var shouldBail = isEventListenerStopped(event) || instance.props.trigger.indexOf('click') >= 0 && isVisibleFromClick;\n\n if (shouldBail) {\n return;\n }\n\n if (instance.props.interactive) {\n instance.hideWithInteractivity(event);\n return;\n }\n\n scheduleHide(event);\n }\n\n function onBlurOrFocusOut(event) {\n if (instance.props.trigger.indexOf('focusin') < 0 && event.target !== getCurrentTarget()) {\n return;\n } // If focus was moved to within the popper\n\n\n if (instance.props.interactive && event.relatedTarget && popper.contains(event.relatedTarget)) {\n return;\n }\n\n scheduleHide(event);\n }\n\n function isEventListenerStopped(event) {\n return currentInput.isTouch ? getIsCustomTouchBehavior() !== event.type.indexOf('touch') >= 0 : false;\n }\n\n function createPopperInstance() {\n destroyPopperInstance();\n var _instance$props2 = instance.props,\n popperOptions = _instance$props2.popperOptions,\n placement = _instance$props2.placement,\n offset = _instance$props2.offset,\n getReferenceClientRect = _instance$props2.getReferenceClientRect,\n moveTransition = _instance$props2.moveTransition;\n var arrow = getIsDefaultRenderFn() ? getChildren(popper).arrow : null;\n var computedReference = getReferenceClientRect ? {\n getBoundingClientRect: getReferenceClientRect,\n contextElement: getReferenceClientRect.contextElement || getCurrentTarget()\n } : reference;\n var tippyModifier = {\n name: '$$tippy',\n enabled: true,\n phase: 'beforeWrite',\n requires: ['computeStyles'],\n fn: function fn(_ref2) {\n var state = _ref2.state;\n\n if (getIsDefaultRenderFn()) {\n var _getDefaultTemplateCh = getDefaultTemplateChildren(),\n box = _getDefaultTemplateCh.box;\n\n ['placement', 'reference-hidden', 'escaped'].forEach(function (attr) {\n if (attr === 'placement') {\n box.setAttribute('data-placement', state.placement);\n } else {\n if (state.attributes.popper[\"data-popper-\" + attr]) {\n box.setAttribute(\"data-\" + attr, '');\n } else {\n box.removeAttribute(\"data-\" + attr);\n }\n }\n });\n state.attributes.popper = {};\n }\n }\n };\n var modifiers = [{\n name: 'offset',\n options: {\n offset: offset\n }\n }, {\n name: 'preventOverflow',\n options: {\n padding: {\n top: 2,\n bottom: 2,\n left: 5,\n right: 5\n }\n }\n }, {\n name: 'flip',\n options: {\n padding: 5\n }\n }, {\n name: 'computeStyles',\n options: {\n adaptive: !moveTransition\n }\n }, tippyModifier];\n\n if (getIsDefaultRenderFn() && arrow) {\n modifiers.push({\n name: 'arrow',\n options: {\n element: arrow,\n padding: 3\n }\n });\n }\n\n modifiers.push.apply(modifiers, (popperOptions == null ? void 0 : popperOptions.modifiers) || []);\n instance.popperInstance = createPopper(computedReference, popper, Object.assign({}, popperOptions, {\n placement: placement,\n onFirstUpdate: onFirstUpdate,\n modifiers: modifiers\n }));\n }\n\n function destroyPopperInstance() {\n if (instance.popperInstance) {\n instance.popperInstance.destroy();\n instance.popperInstance = null;\n }\n }\n\n function mount() {\n var appendTo = instance.props.appendTo;\n var parentNode; // By default, we'll append the popper to the triggerTargets's parentNode so\n // it's directly after the reference element so the elements inside the\n // tippy can be tabbed to\n // If there are clipping issues, the user can specify a different appendTo\n // and ensure focus management is handled correctly manually\n\n var node = getCurrentTarget();\n\n if (instance.props.interactive && appendTo === defaultProps.appendTo || appendTo === 'parent') {\n parentNode = node.parentNode;\n } else {\n parentNode = invokeWithArgsOrReturn(appendTo, [node]);\n } // The popper element needs to exist on the DOM before its position can be\n // updated as Popper needs to read its dimensions\n\n\n if (!parentNode.contains(popper)) {\n parentNode.appendChild(popper);\n }\n\n createPopperInstance();\n /* istanbul ignore else */\n\n if (process.env.NODE_ENV !== \"production\") {\n // Accessibility check\n warnWhen(instance.props.interactive && appendTo === defaultProps.appendTo && node.nextElementSibling !== popper, ['Interactive tippy element may not be accessible via keyboard', 'navigation because it is not directly after the reference element', 'in the DOM source order.', '\\n\\n', 'Using a wrapper
or tag around the reference element', 'solves this by creating a new parentNode context.', '\\n\\n', 'Specifying `appendTo: document.body` silences this warning, but it', 'assumes you are using a focus management solution to handle', 'keyboard navigation.', '\\n\\n', 'See: https://atomiks.github.io/tippyjs/v6/accessibility/#interactivity'].join(' '));\n }\n }\n\n function getNestedPopperTree() {\n return arrayFrom(popper.querySelectorAll('[data-tippy-root]'));\n }\n\n function scheduleShow(event) {\n instance.clearDelayTimeouts();\n\n if (event) {\n invokeHook('onTrigger', [instance, event]);\n }\n\n addDocumentPress();\n var delay = getDelay(true);\n\n var _getNormalizedTouchSe = getNormalizedTouchSettings(),\n touchValue = _getNormalizedTouchSe[0],\n touchDelay = _getNormalizedTouchSe[1];\n\n if (currentInput.isTouch && touchValue === 'hold' && touchDelay) {\n delay = touchDelay;\n }\n\n if (delay) {\n showTimeout = setTimeout(function () {\n instance.show();\n }, delay);\n } else {\n instance.show();\n }\n }\n\n function scheduleHide(event) {\n instance.clearDelayTimeouts();\n invokeHook('onUntrigger', [instance, event]);\n\n if (!instance.state.isVisible) {\n removeDocumentPress();\n return;\n } // For interactive tippies, scheduleHide is added to a document.body handler\n // from onMouseLeave so must intercept scheduled hides from mousemove/leave\n // events when trigger contains mouseenter and click, and the tip is\n // currently shown as a result of a click.\n\n\n if (instance.props.trigger.indexOf('mouseenter') >= 0 && instance.props.trigger.indexOf('click') >= 0 && ['mouseleave', 'mousemove'].indexOf(event.type) >= 0 && isVisibleFromClick) {\n return;\n }\n\n var delay = getDelay(false);\n\n if (delay) {\n hideTimeout = setTimeout(function () {\n if (instance.state.isVisible) {\n instance.hide();\n }\n }, delay);\n } else {\n // Fixes a `transitionend` problem when it fires 1 frame too\n // late sometimes, we don't want hide() to be called.\n scheduleHideAnimationFrame = requestAnimationFrame(function () {\n instance.hide();\n });\n }\n } // ===========================================================================\n // 🔑 Public methods\n // ===========================================================================\n\n\n function enable() {\n instance.state.isEnabled = true;\n }\n\n function disable() {\n // Disabling the instance should also hide it\n // https://github.com/atomiks/tippy.js-react/issues/106\n instance.hide();\n instance.state.isEnabled = false;\n }\n\n function clearDelayTimeouts() {\n clearTimeout(showTimeout);\n clearTimeout(hideTimeout);\n cancelAnimationFrame(scheduleHideAnimationFrame);\n }\n\n function setProps(partialProps) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('setProps'));\n }\n\n if (instance.state.isDestroyed) {\n return;\n }\n\n invokeHook('onBeforeUpdate', [instance, partialProps]);\n removeListeners();\n var prevProps = instance.props;\n var nextProps = evaluateProps(reference, Object.assign({}, instance.props, {}, partialProps, {\n ignoreAttributes: true\n }));\n instance.props = nextProps;\n addListeners();\n\n if (prevProps.interactiveDebounce !== nextProps.interactiveDebounce) {\n cleanupInteractiveMouseListeners();\n debouncedOnMouseMove = debounce(onMouseMove, nextProps.interactiveDebounce);\n } // Ensure stale aria-expanded attributes are removed\n\n\n if (prevProps.triggerTarget && !nextProps.triggerTarget) {\n normalizeToArray(prevProps.triggerTarget).forEach(function (node) {\n node.removeAttribute('aria-expanded');\n });\n } else if (nextProps.triggerTarget) {\n reference.removeAttribute('aria-expanded');\n }\n\n handleAriaExpandedAttribute();\n handleStyles();\n\n if (onUpdate) {\n onUpdate(prevProps, nextProps);\n }\n\n if (instance.popperInstance) {\n createPopperInstance(); // Fixes an issue with nested tippies if they are all getting re-rendered,\n // and the nested ones get re-rendered first.\n // https://github.com/atomiks/tippyjs-react/issues/177\n // TODO: find a cleaner / more efficient solution(!)\n\n getNestedPopperTree().forEach(function (nestedPopper) {\n // React (and other UI libs likely) requires a rAF wrapper as it flushes\n // its work in one\n requestAnimationFrame(nestedPopper._tippy.popperInstance.forceUpdate);\n });\n }\n\n invokeHook('onAfterUpdate', [instance, partialProps]);\n }\n\n function setContent(content) {\n instance.setProps({\n content: content\n });\n }\n\n function show() {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('show'));\n } // Early bail-out\n\n\n var isAlreadyVisible = instance.state.isVisible;\n var isDestroyed = instance.state.isDestroyed;\n var isDisabled = !instance.state.isEnabled;\n var isTouchAndTouchDisabled = currentInput.isTouch && !instance.props.touch;\n var duration = getValueAtIndexOrReturn(instance.props.duration, 0, defaultProps.duration);\n\n if (isAlreadyVisible || isDestroyed || isDisabled || isTouchAndTouchDisabled) {\n return;\n } // Normalize `disabled` behavior across browsers.\n // Firefox allows events on disabled elements, but Chrome doesn't.\n // Using a wrapper element (i.e. ) is recommended.\n\n\n if (getCurrentTarget().hasAttribute('disabled')) {\n return;\n }\n\n invokeHook('onShow', [instance], false);\n\n if (instance.props.onShow(instance) === false) {\n return;\n }\n\n instance.state.isVisible = true;\n\n if (getIsDefaultRenderFn()) {\n popper.style.visibility = 'visible';\n }\n\n handleStyles();\n addDocumentPress();\n\n if (!instance.state.isMounted) {\n popper.style.transition = 'none';\n } // If flipping to the opposite side after hiding at least once, the\n // animation will use the wrong placement without resetting the duration\n\n\n if (getIsDefaultRenderFn()) {\n var _getDefaultTemplateCh2 = getDefaultTemplateChildren(),\n box = _getDefaultTemplateCh2.box,\n content = _getDefaultTemplateCh2.content;\n\n setTransitionDuration([box, content], 0);\n }\n\n onFirstUpdate = function onFirstUpdate() {\n if (!instance.state.isVisible || ignoreOnFirstUpdate) {\n return;\n }\n\n ignoreOnFirstUpdate = true; // reflow\n\n void popper.offsetHeight;\n popper.style.transition = instance.props.moveTransition;\n\n if (getIsDefaultRenderFn() && instance.props.animation) {\n var _getDefaultTemplateCh3 = getDefaultTemplateChildren(),\n _box = _getDefaultTemplateCh3.box,\n _content = _getDefaultTemplateCh3.content;\n\n setTransitionDuration([_box, _content], duration);\n setVisibilityState([_box, _content], 'visible');\n }\n\n handleAriaContentAttribute();\n handleAriaExpandedAttribute();\n pushIfUnique(mountedInstances, instance);\n instance.state.isMounted = true;\n invokeHook('onMount', [instance]);\n\n if (instance.props.animation && getIsDefaultRenderFn()) {\n onTransitionedIn(duration, function () {\n instance.state.isShown = true;\n invokeHook('onShown', [instance]);\n });\n }\n };\n\n mount();\n }\n\n function hide() {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('hide'));\n } // Early bail-out\n\n\n var isAlreadyHidden = !instance.state.isVisible;\n var isDestroyed = instance.state.isDestroyed;\n var isDisabled = !instance.state.isEnabled;\n var duration = getValueAtIndexOrReturn(instance.props.duration, 1, defaultProps.duration);\n\n if (isAlreadyHidden || isDestroyed || isDisabled) {\n return;\n }\n\n invokeHook('onHide', [instance], false);\n\n if (instance.props.onHide(instance) === false) {\n return;\n }\n\n instance.state.isVisible = false;\n instance.state.isShown = false;\n ignoreOnFirstUpdate = false;\n\n if (getIsDefaultRenderFn()) {\n popper.style.visibility = 'hidden';\n }\n\n cleanupInteractiveMouseListeners();\n removeDocumentPress();\n handleStyles();\n\n if (getIsDefaultRenderFn()) {\n var _getDefaultTemplateCh4 = getDefaultTemplateChildren(),\n box = _getDefaultTemplateCh4.box,\n content = _getDefaultTemplateCh4.content;\n\n if (instance.props.animation) {\n setTransitionDuration([box, content], duration);\n setVisibilityState([box, content], 'hidden');\n }\n }\n\n handleAriaContentAttribute();\n handleAriaExpandedAttribute();\n\n if (instance.props.animation) {\n if (getIsDefaultRenderFn()) {\n onTransitionedOut(duration, instance.unmount);\n }\n } else {\n instance.unmount();\n }\n }\n\n function hideWithInteractivity(event) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('hideWithInteractivity'));\n }\n\n doc.addEventListener('mousemove', debouncedOnMouseMove);\n pushIfUnique(mouseMoveListeners, debouncedOnMouseMove);\n debouncedOnMouseMove(event);\n }\n\n function unmount() {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('unmount'));\n }\n\n if (instance.state.isVisible) {\n instance.hide();\n }\n\n if (!instance.state.isMounted) {\n return;\n }\n\n destroyPopperInstance(); // If a popper is not interactive, it will be appended outside the popper\n // tree by default. This seems mainly for interactive tippies, but we should\n // find a workaround if possible\n\n getNestedPopperTree().forEach(function (nestedPopper) {\n nestedPopper._tippy.unmount();\n });\n\n if (popper.parentNode) {\n popper.parentNode.removeChild(popper);\n }\n\n mountedInstances = mountedInstances.filter(function (i) {\n return i !== instance;\n });\n instance.state.isMounted = false;\n invokeHook('onHidden', [instance]);\n }\n\n function destroy() {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('destroy'));\n }\n\n if (instance.state.isDestroyed) {\n return;\n }\n\n instance.clearDelayTimeouts();\n instance.unmount();\n removeListeners();\n delete reference._tippy;\n instance.state.isDestroyed = true;\n invokeHook('onDestroy', [instance]);\n }\n}\n\nfunction tippy(targets, optionalProps) {\n if (optionalProps === void 0) {\n optionalProps = {};\n }\n\n var plugins = defaultProps.plugins.concat(optionalProps.plugins || []);\n /* istanbul ignore else */\n\n if (process.env.NODE_ENV !== \"production\") {\n validateTargets(targets);\n validateProps(optionalProps, plugins);\n }\n\n bindGlobalEventListeners();\n var passedProps = Object.assign({}, optionalProps, {\n plugins: plugins\n });\n var elements = getArrayOfElements(targets);\n /* istanbul ignore else */\n\n if (process.env.NODE_ENV !== \"production\") {\n var isSingleContentElement = isElement(passedProps.content);\n var isMoreThanOneReferenceElement = elements.length > 1;\n warnWhen(isSingleContentElement && isMoreThanOneReferenceElement, ['tippy() was passed an Element as the `content` prop, but more than', 'one tippy instance was created by this invocation. This means the', 'content element will only be appended to the last tippy instance.', '\\n\\n', 'Instead, pass the .innerHTML of the element, or use a function that', 'returns a cloned version of the element instead.', '\\n\\n', '1) content: element.innerHTML\\n', '2) content: () => element.cloneNode(true)'].join(' '));\n }\n\n var instances = elements.reduce(function (acc, reference) {\n var instance = reference && createTippy(reference, passedProps);\n\n if (instance) {\n acc.push(instance);\n }\n\n return acc;\n }, []);\n return isElement(targets) ? instances[0] : instances;\n}\n\ntippy.defaultProps = defaultProps;\ntippy.setDefaultProps = setDefaultProps;\ntippy.currentInput = currentInput;\n\nvar hideAll = function hideAll(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n excludedReferenceOrInstance = _ref.exclude,\n duration = _ref.duration;\n\n mountedInstances.forEach(function (instance) {\n var isExcluded = false;\n\n if (excludedReferenceOrInstance) {\n isExcluded = isReferenceElement(excludedReferenceOrInstance) ? instance.reference === excludedReferenceOrInstance : instance.popper === excludedReferenceOrInstance.popper;\n }\n\n if (!isExcluded) {\n var originalDuration = instance.props.duration;\n instance.setProps({\n duration: duration\n });\n instance.hide();\n\n if (!instance.state.isDestroyed) {\n instance.setProps({\n duration: originalDuration\n });\n }\n }\n });\n};\n\nvar createSingleton = function createSingleton(tippyInstances, optionalProps) {\n if (optionalProps === void 0) {\n optionalProps = {};\n }\n /* istanbul ignore else */\n\n\n if (process.env.NODE_ENV !== \"production\") {\n errorWhen(!Array.isArray(tippyInstances), ['The first argument passed to createSingleton() must be an array of', 'tippy instances. The passed value was', String(tippyInstances)].join(' '));\n }\n\n var mutTippyInstances = tippyInstances;\n var references = [];\n var currentTarget;\n var overrides = optionalProps.overrides;\n\n function setReferences() {\n references = mutTippyInstances.map(function (instance) {\n return instance.reference;\n });\n }\n\n function enableInstances(isEnabled) {\n mutTippyInstances.forEach(function (instance) {\n if (isEnabled) {\n instance.enable();\n } else {\n instance.disable();\n }\n });\n }\n\n enableInstances(false);\n setReferences();\n var singleton = {\n fn: function fn() {\n return {\n onDestroy: function onDestroy() {\n enableInstances(true);\n },\n onTrigger: function onTrigger(instance, event) {\n var target = event.currentTarget;\n var index = references.indexOf(target); // bail-out\n\n if (target === currentTarget) {\n return;\n }\n\n currentTarget = target;\n var overrideProps = (overrides || []).concat('content').reduce(function (acc, prop) {\n acc[prop] = mutTippyInstances[index].props[prop];\n return acc;\n }, {});\n instance.setProps(Object.assign({}, overrideProps, {\n getReferenceClientRect: function getReferenceClientRect() {\n return target.getBoundingClientRect();\n }\n }));\n }\n };\n }\n };\n var instance = tippy(div(), Object.assign({}, removeProperties(optionalProps, ['overrides']), {\n plugins: [singleton].concat(optionalProps.plugins || []),\n triggerTarget: references\n }));\n var originalSetProps = instance.setProps;\n\n instance.setProps = function (props) {\n overrides = props.overrides || overrides;\n originalSetProps(props);\n };\n\n instance.setInstances = function (nextInstances) {\n enableInstances(true);\n mutTippyInstances = nextInstances;\n enableInstances(false);\n setReferences();\n instance.setProps({\n triggerTarget: references\n });\n };\n\n return instance;\n};\n\nvar BUBBLING_EVENTS_MAP = {\n mouseover: 'mouseenter',\n focusin: 'focus',\n click: 'click'\n};\n/**\n * Creates a delegate instance that controls the creation of tippy instances\n * for child elements (`target` CSS selector).\n */\n\nfunction delegate(targets, props) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== \"production\") {\n errorWhen(!(props && props.target), ['You must specity a `target` prop indicating a CSS selector string matching', 'the target elements that should receive a tippy.'].join(' '));\n }\n\n var listeners = [];\n var childTippyInstances = [];\n var target = props.target;\n var nativeProps = removeProperties(props, ['target']);\n var parentProps = Object.assign({}, nativeProps, {\n trigger: 'manual',\n touch: false\n });\n var childProps = Object.assign({}, nativeProps, {\n showOnCreate: true\n });\n var returnValue = tippy(targets, parentProps);\n var normalizedReturnValue = normalizeToArray(returnValue);\n\n function onTrigger(event) {\n if (!event.target) {\n return;\n }\n\n var targetNode = event.target.closest(target);\n\n if (!targetNode) {\n return;\n } // Get relevant trigger with fallbacks:\n // 1. Check `data-tippy-trigger` attribute on target node\n // 2. Fallback to `trigger` passed to `delegate()`\n // 3. Fallback to `defaultProps.trigger`\n\n\n var trigger = targetNode.getAttribute('data-tippy-trigger') || props.trigger || defaultProps.trigger; // @ts-ignore\n\n if (targetNode._tippy) {\n return;\n }\n\n if (event.type === 'touchstart' && typeof childProps.touch === 'boolean') {\n return;\n }\n\n if (event.type !== 'touchstart' && trigger.indexOf(BUBBLING_EVENTS_MAP[event.type])) {\n return;\n }\n\n var instance = tippy(targetNode, childProps);\n\n if (instance) {\n childTippyInstances = childTippyInstances.concat(instance);\n }\n }\n\n function on(node, eventType, handler, options) {\n if (options === void 0) {\n options = false;\n }\n\n node.addEventListener(eventType, handler, options);\n listeners.push({\n node: node,\n eventType: eventType,\n handler: handler,\n options: options\n });\n }\n\n function addEventListeners(instance) {\n var reference = instance.reference;\n on(reference, 'touchstart', onTrigger);\n on(reference, 'mouseover', onTrigger);\n on(reference, 'focusin', onTrigger);\n on(reference, 'click', onTrigger);\n }\n\n function removeEventListeners() {\n listeners.forEach(function (_ref) {\n var node = _ref.node,\n eventType = _ref.eventType,\n handler = _ref.handler,\n options = _ref.options;\n node.removeEventListener(eventType, handler, options);\n });\n listeners = [];\n }\n\n function applyMutations(instance) {\n var originalDestroy = instance.destroy;\n\n instance.destroy = function (shouldDestroyChildInstances) {\n if (shouldDestroyChildInstances === void 0) {\n shouldDestroyChildInstances = true;\n }\n\n if (shouldDestroyChildInstances) {\n childTippyInstances.forEach(function (instance) {\n instance.destroy();\n });\n }\n\n childTippyInstances = [];\n removeEventListeners();\n originalDestroy();\n };\n\n addEventListeners(instance);\n }\n\n normalizedReturnValue.forEach(applyMutations);\n return returnValue;\n}\n\nvar animateFill = {\n name: 'animateFill',\n defaultValue: false,\n fn: function fn(instance) {\n var _instance$props$rende; // @ts-ignore\n\n\n if (!((_instance$props$rende = instance.props.render) == null ? void 0 : _instance$props$rende.$$tippy)) {\n if (process.env.NODE_ENV !== \"production\") {\n errorWhen(instance.props.animateFill, 'The `animateFill` plugin requires the default render function.');\n }\n\n return {};\n }\n\n var _getChildren = getChildren(instance.popper),\n box = _getChildren.box,\n content = _getChildren.content;\n\n var backdrop = instance.props.animateFill ? createBackdropElement() : null;\n return {\n onCreate: function onCreate() {\n if (backdrop) {\n box.insertBefore(backdrop, box.firstElementChild);\n box.setAttribute('data-animatefill', '');\n box.style.overflow = 'hidden';\n instance.setProps({\n arrow: false,\n animation: 'shift-away'\n });\n }\n },\n onMount: function onMount() {\n if (backdrop) {\n var transitionDuration = box.style.transitionDuration;\n var duration = Number(transitionDuration.replace('ms', '')); // The content should fade in after the backdrop has mostly filled the\n // tooltip element. `clip-path` is the other alternative but is not\n // well-supported and is buggy on some devices.\n\n content.style.transitionDelay = Math.round(duration / 10) + \"ms\";\n backdrop.style.transitionDuration = transitionDuration;\n setVisibilityState([backdrop], 'visible');\n }\n },\n onShow: function onShow() {\n if (backdrop) {\n backdrop.style.transitionDuration = '0ms';\n }\n },\n onHide: function onHide() {\n if (backdrop) {\n setVisibilityState([backdrop], 'hidden');\n }\n }\n };\n }\n};\n\nfunction createBackdropElement() {\n var backdrop = div();\n backdrop.className = BACKDROP_CLASS;\n setVisibilityState([backdrop], 'hidden');\n return backdrop;\n}\n\nvar mouseCoords = {\n clientX: 0,\n clientY: 0\n};\nvar activeInstances = [];\n\nfunction storeMouseCoords(_ref) {\n var clientX = _ref.clientX,\n clientY = _ref.clientY;\n mouseCoords = {\n clientX: clientX,\n clientY: clientY\n };\n}\n\nfunction addMouseCoordsListener(doc) {\n doc.addEventListener('mousemove', storeMouseCoords);\n}\n\nfunction removeMouseCoordsListener(doc) {\n doc.removeEventListener('mousemove', storeMouseCoords);\n}\n\nvar followCursor = {\n name: 'followCursor',\n defaultValue: false,\n fn: function fn(instance) {\n var reference = instance.reference;\n var doc = getOwnerDocument(instance.props.triggerTarget || reference);\n var isInternalUpdate = false;\n var wasFocusEvent = false;\n var isUnmounted = true;\n var prevProps = instance.props;\n\n function getIsInitialBehavior() {\n return instance.props.followCursor === 'initial' && instance.state.isVisible;\n }\n\n function addListener() {\n doc.addEventListener('mousemove', onMouseMove);\n }\n\n function removeListener() {\n doc.removeEventListener('mousemove', onMouseMove);\n }\n\n function unsetGetReferenceClientRect() {\n isInternalUpdate = true;\n instance.setProps({\n getReferenceClientRect: null\n });\n isInternalUpdate = false;\n }\n\n function onMouseMove(event) {\n // If the instance is interactive, avoid updating the position unless it's\n // over the reference element\n var isCursorOverReference = event.target ? reference.contains(event.target) : true;\n var followCursor = instance.props.followCursor;\n var clientX = event.clientX,\n clientY = event.clientY;\n var rect = reference.getBoundingClientRect();\n var relativeX = clientX - rect.left;\n var relativeY = clientY - rect.top;\n\n if (isCursorOverReference || !instance.props.interactive) {\n instance.setProps({\n getReferenceClientRect: function getReferenceClientRect() {\n var rect = reference.getBoundingClientRect();\n var x = clientX;\n var y = clientY;\n\n if (followCursor === 'initial') {\n x = rect.left + relativeX;\n y = rect.top + relativeY;\n }\n\n var top = followCursor === 'horizontal' ? rect.top : y;\n var right = followCursor === 'vertical' ? rect.right : x;\n var bottom = followCursor === 'horizontal' ? rect.bottom : y;\n var left = followCursor === 'vertical' ? rect.left : x;\n return {\n width: right - left,\n height: bottom - top,\n top: top,\n right: right,\n bottom: bottom,\n left: left\n };\n }\n });\n }\n }\n\n function create() {\n if (instance.props.followCursor) {\n activeInstances.push({\n instance: instance,\n doc: doc\n });\n addMouseCoordsListener(doc);\n }\n }\n\n function destroy() {\n activeInstances = activeInstances.filter(function (data) {\n return data.instance !== instance;\n });\n\n if (activeInstances.filter(function (data) {\n return data.doc === doc;\n }).length === 0) {\n removeMouseCoordsListener(doc);\n }\n }\n\n return {\n onCreate: create,\n onDestroy: destroy,\n onBeforeUpdate: function onBeforeUpdate() {\n prevProps = instance.props;\n },\n onAfterUpdate: function onAfterUpdate(_, _ref2) {\n var followCursor = _ref2.followCursor;\n\n if (isInternalUpdate) {\n return;\n }\n\n if (followCursor !== undefined && prevProps.followCursor !== followCursor) {\n destroy();\n\n if (followCursor) {\n create();\n\n if (instance.state.isMounted && !wasFocusEvent && !getIsInitialBehavior()) {\n addListener();\n }\n } else {\n removeListener();\n unsetGetReferenceClientRect();\n }\n }\n },\n onMount: function onMount() {\n if (instance.props.followCursor) {\n if (isUnmounted) {\n onMouseMove(mouseCoords);\n isUnmounted = false;\n }\n\n if (!wasFocusEvent && !getIsInitialBehavior()) {\n addListener();\n }\n }\n },\n onTrigger: function onTrigger(_, _ref3) {\n var type = _ref3.type;\n wasFocusEvent = type === 'focus';\n },\n onHidden: function onHidden() {\n if (instance.props.followCursor) {\n unsetGetReferenceClientRect();\n removeListener();\n isUnmounted = true;\n }\n }\n };\n }\n};\n\nfunction getProps(props, modifier) {\n var _props$popperOptions;\n\n return {\n popperOptions: Object.assign({}, props.popperOptions, {\n modifiers: [].concat((((_props$popperOptions = props.popperOptions) == null ? void 0 : _props$popperOptions.modifiers) || []).filter(function (_ref) {\n var name = _ref.name;\n return name !== modifier.name;\n }), [modifier])\n })\n };\n}\n\nvar inlinePositioning = {\n name: 'inlinePositioning',\n defaultValue: false,\n fn: function fn(instance) {\n var reference = instance.reference;\n\n function isEnabled() {\n return !!instance.props.inlinePositioning;\n }\n\n var placement;\n var cursorRectIndex = -1;\n var isInternalUpdate = false;\n var modifier = {\n name: 'tippyInlinePositioning',\n enabled: true,\n phase: 'afterWrite',\n fn: function fn(_ref2) {\n var state = _ref2.state;\n\n if (isEnabled()) {\n if (placement !== state.placement) {\n instance.setProps({\n getReferenceClientRect: function getReferenceClientRect() {\n return _getReferenceClientRect(state.placement);\n }\n });\n }\n\n placement = state.placement;\n }\n }\n };\n\n function _getReferenceClientRect(placement) {\n return getInlineBoundingClientRect(getBasePlacement(placement), reference.getBoundingClientRect(), arrayFrom(reference.getClientRects()), cursorRectIndex);\n }\n\n function setInternalProps(partialProps) {\n isInternalUpdate = true;\n instance.setProps(partialProps);\n isInternalUpdate = false;\n }\n\n function addModifier() {\n if (!isInternalUpdate) {\n setInternalProps(getProps(instance.props, modifier));\n }\n }\n\n return {\n onCreate: addModifier,\n onAfterUpdate: addModifier,\n onTrigger: function onTrigger(_, event) {\n if (isMouseEvent(event)) {\n var rects = arrayFrom(instance.reference.getClientRects());\n var cursorRect = rects.find(function (rect) {\n return rect.left - 2 <= event.clientX && rect.right + 2 >= event.clientX && rect.top - 2 <= event.clientY && rect.bottom + 2 >= event.clientY;\n });\n cursorRectIndex = rects.indexOf(cursorRect);\n }\n },\n onUntrigger: function onUntrigger() {\n cursorRectIndex = -1;\n }\n };\n }\n};\n\nfunction getInlineBoundingClientRect(currentBasePlacement, boundingRect, clientRects, cursorRectIndex) {\n // Not an inline element, or placement is not yet known\n if (clientRects.length < 2 || currentBasePlacement === null) {\n return boundingRect;\n } // There are two rects and they are disjoined\n\n\n if (clientRects.length === 2 && cursorRectIndex >= 0 && clientRects[0].left > clientRects[1].right) {\n return clientRects[cursorRectIndex] || boundingRect;\n }\n\n switch (currentBasePlacement) {\n case 'top':\n case 'bottom':\n {\n var firstRect = clientRects[0];\n var lastRect = clientRects[clientRects.length - 1];\n var isTop = currentBasePlacement === 'top';\n var top = firstRect.top;\n var bottom = lastRect.bottom;\n var left = isTop ? firstRect.left : lastRect.left;\n var right = isTop ? firstRect.right : lastRect.right;\n var width = right - left;\n var height = bottom - top;\n return {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n };\n }\n\n case 'left':\n case 'right':\n {\n var minLeft = Math.min.apply(Math, clientRects.map(function (rects) {\n return rects.left;\n }));\n var maxRight = Math.max.apply(Math, clientRects.map(function (rects) {\n return rects.right;\n }));\n var measureRects = clientRects.filter(function (rect) {\n return currentBasePlacement === 'left' ? rect.left === minLeft : rect.right === maxRight;\n });\n var _top = measureRects[0].top;\n var _bottom = measureRects[measureRects.length - 1].bottom;\n var _left = minLeft;\n var _right = maxRight;\n\n var _width = _right - _left;\n\n var _height = _bottom - _top;\n\n return {\n top: _top,\n bottom: _bottom,\n left: _left,\n right: _right,\n width: _width,\n height: _height\n };\n }\n\n default:\n {\n return boundingRect;\n }\n }\n}\n\nvar sticky = {\n name: 'sticky',\n defaultValue: false,\n fn: function fn(instance) {\n var reference = instance.reference,\n popper = instance.popper;\n\n function getReference() {\n return instance.popperInstance ? instance.popperInstance.state.elements.reference : reference;\n }\n\n function shouldCheck(value) {\n return instance.props.sticky === true || instance.props.sticky === value;\n }\n\n var prevRefRect = null;\n var prevPopRect = null;\n\n function updatePosition() {\n var currentRefRect = shouldCheck('reference') ? getReference().getBoundingClientRect() : null;\n var currentPopRect = shouldCheck('popper') ? popper.getBoundingClientRect() : null;\n\n if (currentRefRect && areRectsDifferent(prevRefRect, currentRefRect) || currentPopRect && areRectsDifferent(prevPopRect, currentPopRect)) {\n if (instance.popperInstance) {\n instance.popperInstance.update();\n }\n }\n\n prevRefRect = currentRefRect;\n prevPopRect = currentPopRect;\n\n if (instance.state.isMounted) {\n requestAnimationFrame(updatePosition);\n }\n }\n\n return {\n onMount: function onMount() {\n if (instance.props.sticky) {\n updatePosition();\n }\n }\n };\n }\n};\n\nfunction areRectsDifferent(rectA, rectB) {\n if (rectA && rectB) {\n return rectA.top !== rectB.top || rectA.right !== rectB.right || rectA.bottom !== rectB.bottom || rectA.left !== rectB.left;\n }\n\n return true;\n}\n\ntippy.setDefaultProps({\n render: render\n});\nexport default tippy;\nexport { animateFill, createSingleton, delegate, followCursor, hideAll, inlinePositioning, ROUND_ARROW as roundArrow, sticky };","var g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","/* flatpickr v4.6.3, @license MIT */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.flatpickr = factory());\n})(this, function () {\n 'use strict';\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\n\n var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n };\n\n var HOOKS = [\"onChange\", \"onClose\", \"onDayCreate\", \"onDestroy\", \"onKeyDown\", \"onMonthChange\", \"onOpen\", \"onParseConfig\", \"onReady\", \"onValueUpdate\", \"onYearChange\", \"onPreCalendarPosition\"];\n var defaults = {\n _disable: [],\n _enable: [],\n allowInput: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" && window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enable: [],\n enableSeconds: false,\n enableTime: false,\n errorHandler: function (err) {\n return typeof console !== \"undefined\" && console.warn(err);\n },\n getWeek: function (givenDate) {\n var date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0); // Thursday in current week decides the year.\n\n date.setDate(date.getDate() + 3 - (date.getDay() + 6) % 7); // January 4 is always in week 1.\n\n var week1 = new Date(date.getFullYear(), 0, 4); // Adjust to Thursday in week 1 and count number of weeks from date to week1.\n\n return 1 + Math.round(((date.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7);\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false\n };\n var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"]\n },\n months: {\n shorthand: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n longhand: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"]\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21) return \"th\";\n\n switch (s % 10) {\n case 1:\n return \"st\";\n\n case 2:\n return \"nd\";\n\n case 3:\n return \"rd\";\n\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false\n };\n\n var pad = function (number) {\n return (\"0\" + number).slice(-2);\n };\n\n var int = function (bool) {\n return bool === true ? 1 : 0;\n };\n /* istanbul ignore next */\n\n\n function debounce(func, wait, immediate) {\n if (immediate === void 0) {\n immediate = false;\n }\n\n var timeout;\n return function () {\n var context = this,\n args = arguments;\n timeout !== null && clearTimeout(timeout);\n timeout = window.setTimeout(function () {\n timeout = null;\n if (!immediate) func.apply(context, args);\n }, wait);\n if (immediate && !timeout) func.apply(context, args);\n };\n }\n\n var arrayify = function (obj) {\n return obj instanceof Array ? obj : [obj];\n };\n\n function toggleClass(elem, className, bool) {\n if (bool === true) return elem.classList.add(className);\n elem.classList.remove(className);\n }\n\n function createElement(tag, className, content) {\n var e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined) e.textContent = content;\n return e;\n }\n\n function clearNode(node) {\n while (node.firstChild) node.removeChild(node.firstChild);\n }\n\n function findParent(node, condition) {\n if (condition(node)) return node;else if (node.parentNode) return findParent(node.parentNode, condition);\n return undefined; // nothing found\n }\n\n function createNumberInput(inputClassName, opts) {\n var wrapper = createElement(\"div\", \"numInputWrapper\"),\n numInput = createElement(\"input\", \"numInput \" + inputClassName),\n arrowUp = createElement(\"span\", \"arrowUp\"),\n arrowDown = createElement(\"span\", \"arrowDown\");\n\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n } else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n\n if (opts !== undefined) for (var key in opts) numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n }\n\n function getEventTarget(event) {\n if (typeof event.composedPath === \"function\") {\n var path = event.composedPath();\n return path[0];\n }\n\n return event.target;\n }\n\n var doNothing = function () {\n return undefined;\n };\n\n var monthToStr = function (monthNumber, shorthand, locale) {\n return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber];\n };\n\n var revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n H: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n J: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n K: function (dateObj, amPM, locale) {\n dateObj.setHours(dateObj.getHours() % 12 + 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: function (_, unixSeconds) {\n return new Date(parseFloat(unixSeconds) * 1000);\n },\n W: function (dateObj, weekNum, locale) {\n var weekNumber = parseInt(weekNum);\n var date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: function (dateObj, year) {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: function (_, ISODate) {\n return new Date(ISODate);\n },\n d: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n h: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n i: function (dateObj, minutes) {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: function (_, unixMillSeconds) {\n return new Date(parseFloat(unixMillSeconds));\n },\n w: doNothing,\n y: function (dateObj, year) {\n dateObj.setFullYear(2000 + parseFloat(year));\n }\n };\n var tokenRegex = {\n D: \"(\\\\w+)\",\n F: \"(\\\\w+)\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"(\\\\w+)\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"(\\\\w+)\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\"\n };\n var formats = {\n // get the date in UTC\n Z: function (date) {\n return date.toISOString();\n },\n // weekday name, short, e.g. Thu\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n // full month name e.g. January\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n // padded hour 1-12\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n // hours with leading zero e.g. 03\n H: function (date) {\n return pad(date.getHours());\n },\n // day (1-30) with ordinal suffix e.g. 1st, 2nd\n J: function (date, locale) {\n return locale.ordinal !== undefined ? date.getDate() + locale.ordinal(date.getDate()) : date.getDate();\n },\n // AM/PM\n K: function (date, locale) {\n return locale.amPM[int(date.getHours() > 11)];\n },\n // shorthand month e.g. Jan, Sep, Oct, etc\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n // seconds 00-59\n S: function (date) {\n return pad(date.getSeconds());\n },\n // unix timestamp\n U: function (date) {\n return date.getTime() / 1000;\n },\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n // full year e.g. 2016\n Y: function (date) {\n return date.getFullYear();\n },\n // day in month, padded (01-30)\n d: function (date) {\n return pad(date.getDate());\n },\n // hour from 1-12 (am/pm)\n h: function (date) {\n return date.getHours() % 12 ? date.getHours() % 12 : 12;\n },\n // minutes, padded with leading zero e.g. 09\n i: function (date) {\n return pad(date.getMinutes());\n },\n // day in month (1-30)\n j: function (date) {\n return date.getDate();\n },\n // weekday name, full, e.g. Thursday\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n // padded month number (01-12)\n m: function (date) {\n return pad(date.getMonth() + 1);\n },\n // the month number (1-12)\n n: function (date) {\n return date.getMonth() + 1;\n },\n // seconds 0-59\n s: function (date) {\n return date.getSeconds();\n },\n // Unix Milliseconds\n u: function (date) {\n return date.getTime();\n },\n // number of the day of the week\n w: function (date) {\n return date.getDay();\n },\n // last two digits of year e.g. 16 for 2016\n y: function (date) {\n return String(date.getFullYear()).substring(2);\n }\n };\n\n var createDateFormatter = function (_a) {\n var _b = _a.config,\n config = _b === void 0 ? defaults : _b,\n _c = _a.l10n,\n l10n = _c === void 0 ? english : _c;\n return function (dateObj, frmt, overrideLocale) {\n var locale = overrideLocale || l10n;\n\n if (config.formatDate !== undefined) {\n return config.formatDate(dateObj, frmt, locale);\n }\n\n return frmt.split(\"\").map(function (c, i, arr) {\n return formats[c] && arr[i - 1] !== \"\\\\\" ? formats[c](dateObj, locale, config) : c !== \"\\\\\" ? c : \"\";\n }).join(\"\");\n };\n };\n\n var createDateParser = function (_a) {\n var _b = _a.config,\n config = _b === void 0 ? defaults : _b,\n _c = _a.l10n,\n l10n = _c === void 0 ? english : _c;\n return function (date, givenFormat, timeless, customLocale) {\n if (date !== 0 && !date) return undefined;\n var locale = customLocale || l10n;\n var parsedDate;\n var dateOrig = date;\n if (date instanceof Date) parsedDate = new Date(date.getTime());else if (typeof date !== \"string\" && date.toFixed !== undefined // timestamp\n ) // create a copy\n parsedDate = new Date(date);else if (typeof date === \"string\") {\n // date string\n var format = givenFormat || (config || defaults).dateFormat;\n var datestr = String(date).trim();\n\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n } else if (/Z$/.test(datestr) || /GMT$/.test(datestr) // datestrings w/ timezone\n ) parsedDate = new Date(date);else if (config && config.parseDate) parsedDate = config.parseDate(date, format);else {\n parsedDate = !config || !config.noCalendar ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0) : new Date(new Date().setHours(0, 0, 0, 0));\n var matched = void 0,\n ops = [];\n\n for (var i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n var token_1 = format[i];\n var isBackSlash = token_1 === \"\\\\\";\n var escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n\n if (tokenRegex[token_1] && !escaped) {\n regexStr += tokenRegex[token_1];\n var match = new RegExp(regexStr).exec(date);\n\n if (match && (matched = true)) {\n ops[token_1 !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token_1],\n val: match[++matchIndex]\n });\n }\n } else if (!isBackSlash) regexStr += \".\"; // don't really care\n\n\n ops.forEach(function (_a) {\n var fn = _a.fn,\n val = _a.val;\n return parsedDate = fn(parsedDate, val, locale) || parsedDate;\n });\n }\n\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n /* istanbul ignore next */\n\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(\"Invalid date provided: \" + dateOrig));\n return undefined;\n }\n\n if (timeless === true) parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n };\n };\n /**\n * Compute the difference in dates, measured in ms\n */\n\n\n function compareDates(date1, date2, timeless) {\n if (timeless === void 0) {\n timeless = true;\n }\n\n if (timeless !== false) {\n return new Date(date1.getTime()).setHours(0, 0, 0, 0) - new Date(date2.getTime()).setHours(0, 0, 0, 0);\n }\n\n return date1.getTime() - date2.getTime();\n }\n\n var isBetween = function (ts, ts1, ts2) {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n };\n\n var duration = {\n DAY: 86400000\n };\n\n if (typeof Object.assign !== \"function\") {\n Object.assign = function (target) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n\n var _loop_1 = function (source) {\n if (source) {\n Object.keys(source).forEach(function (key) {\n return target[key] = source[key];\n });\n }\n };\n\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var source = args_1[_a];\n\n _loop_1(source);\n }\n\n return target;\n };\n }\n\n var DEBOUNCED_CHANGE_MS = 300;\n\n function FlatpickrInstance(element, instanceConfig) {\n var self = {\n config: __assign({}, defaults, flatpickr.defaultConfig),\n l10n: english\n };\n self.parseDate = createDateParser({\n config: self.config,\n l10n: self.l10n\n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self._createElement = createElement;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth: function (month, yr) {\n if (month === void 0) {\n month = self.currentMonth;\n }\n\n if (yr === void 0) {\n yr = self.currentYear;\n }\n\n if (month === 1 && (yr % 4 === 0 && yr % 100 !== 0 || yr % 400 === 0)) return 29;\n return self.l10n.daysInMonth[month];\n }\n };\n }\n\n function init() {\n self.element = self.input = element;\n self.isOpen = false;\n parseConfig();\n setupLocale();\n setupInputs();\n setupDates();\n setupHelperFunctions();\n if (!self.isMobile) build();\n bindEvents();\n\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj || self.config.minDate : undefined);\n }\n\n updateValue(false);\n }\n\n setCalendarWidth();\n self.showTimeInput = self.selectedDates.length > 0 || self.config.noCalendar;\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n /* TODO: investigate this further\n Currently, there is weird positioning behavior in safari causing pages\n to scroll up. https://github.com/chmln/flatpickr/issues/563\n However, most browsers are not Safari and positioning is expensive when used\n in scale. https://github.com/chmln/flatpickr/issues/1096\n */\n\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n\n triggerEvent(\"onReady\");\n }\n\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n\n function setCalendarWidth() {\n var config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1) return;else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n\n if (self.daysContainer !== undefined) {\n var daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width = daysWidth + (self.weekWrapper !== undefined ? self.weekWrapper.offsetWidth : 0) + \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n /**\n * The handler for all events targeting the time inputs\n */\n\n\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n setDefaultTime();\n }\n\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n\n var prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n\n function ampm2military(hour, amPM) {\n return hour % 12 + 12 * int(amPM === self.l10n.amPM[1]);\n }\n\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n\n default:\n return hour % 12;\n }\n }\n /**\n * Syncs the selected date object time with user's time input\n */\n\n\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined) return;\n var hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24,\n minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60,\n seconds = self.secondElement !== undefined ? (parseInt(self.secondElement.value, 10) || 0) % 60 : 0;\n\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n\n var limitMinHours = self.config.minTime !== undefined || self.config.minDate && self.minDateHasTime && self.latestSelectedDateObj && compareDates(self.latestSelectedDateObj, self.config.minDate, true) === 0;\n var limitMaxHours = self.config.maxTime !== undefined || self.config.maxDate && self.maxDateHasTime && self.latestSelectedDateObj && compareDates(self.latestSelectedDateObj, self.config.maxDate, true) === 0;\n\n if (limitMaxHours) {\n var maxTime = self.config.maxTime !== undefined ? self.config.maxTime : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours()) minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes()) seconds = Math.min(seconds, maxTime.getSeconds());\n }\n\n if (limitMinHours) {\n var minTime = self.config.minTime !== undefined ? self.config.minTime : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours()) minutes = Math.max(minutes, minTime.getMinutes());\n if (minutes === minTime.getMinutes()) seconds = Math.max(seconds, minTime.getSeconds());\n }\n\n setHours(hours, minutes, seconds);\n }\n /**\n * Syncs time input values with a date\n */\n\n\n function setHoursFromDate(dateObj) {\n var date = dateObj || self.latestSelectedDateObj;\n if (date) setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n\n function setDefaultHours() {\n var hours = self.config.defaultHour;\n var minutes = self.config.defaultMinute;\n var seconds = self.config.defaultSeconds;\n\n if (self.config.minDate !== undefined) {\n var minHr = self.config.minDate.getHours();\n var minMinutes = self.config.minDate.getMinutes();\n hours = Math.max(hours, minHr);\n if (hours === minHr) minutes = Math.max(minMinutes, minutes);\n if (hours === minHr && minutes === minMinutes) seconds = self.config.minDate.getSeconds();\n }\n\n if (self.config.maxDate !== undefined) {\n var maxHr = self.config.maxDate.getHours();\n var maxMinutes = self.config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr) minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes) seconds = self.config.maxDate.getSeconds();\n }\n\n setHours(hours, minutes, seconds);\n }\n /**\n * Sets the hours, minutes, and optionally seconds\n * of the latest selected date object and the\n * corresponding time inputs\n * @param {Number} hours the hour. whether its military\n * or am-pm gets inferred from config\n * @param {Number} minutes the minutes\n * @param {Number} seconds the seconds (optional)\n */\n\n\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n\n if (!self.hourElement || !self.minuteElement || self.isMobile) return;\n self.hourElement.value = pad(!self.config.time_24hr ? (12 + hours) % 12 + 12 * int(hours % 12 === 0) : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined) self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined) self.secondElement.value = pad(seconds);\n }\n /**\n * Handles the year input and incrementing events\n * @param {Event} event the keyup or increment event\n */\n\n\n function onYearInput(event) {\n var year = parseInt(event.target.value) + (event.delta || 0);\n\n if (year / 1000 > 1 || event.key === \"Enter\" && !/[^\\d]/.test(year.toString())) {\n changeYear(year);\n }\n }\n /**\n * Essentially addEventListener + tracking\n * @param {Element} element the element to addEventListener to\n * @param {String} event the event name\n * @param {Function} handler the event handler\n */\n\n\n function bind(element, event, handler, options) {\n if (event instanceof Array) return event.forEach(function (ev) {\n return bind(element, ev, handler, options);\n });\n if (element instanceof Array) return element.forEach(function (el) {\n return bind(el, event, handler, options);\n });\n element.addEventListener(event, handler, options);\n\n self._handlers.push({\n element: element,\n event: event,\n handler: handler,\n options: options\n });\n }\n /**\n * A mousedown handler which mimics click.\n * Minimizes latency, since we don't need to wait for mouseup in most cases.\n * Also, avoids handling right clicks.\n *\n * @param {Function} handler the event handler\n */\n\n\n function onClick(handler) {\n return function (evt) {\n evt.which === 1 && handler(evt);\n };\n }\n\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n /**\n * Adds all the necessary event listeners\n */\n\n\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach(function (evt) {\n Array.prototype.forEach.call(self.element.querySelectorAll(\"[data-\" + evt + \"]\"), function (el) {\n return bind(el, \"click\", self[evt]);\n });\n });\n }\n\n if (self.isMobile) {\n setupMobile();\n return;\n }\n\n var debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent)) bind(self.daysContainer, \"mouseover\", function (e) {\n if (self.config.mode === \"range\") onMouseOver(e.target);\n });\n bind(window.document.body, \"keydown\", onKeyDown);\n if (!self.config.inline && !self.config.static) bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined) bind(window.document, \"touchstart\", documentClick);else bind(window.document, \"mousedown\", onClick(documentClick));\n bind(window.document, \"focus\", documentClick, {\n capture: true\n });\n\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"mousedown\", onClick(self.open));\n }\n\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"mousedown\", onClick(onMonthNavClick));\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"mousedown\", onClick(selectDate));\n }\n\n if (self.timeContainer !== undefined && self.minuteElement !== undefined && self.hourElement !== undefined) {\n var selText = function (e) {\n return e.target.select();\n };\n\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, {\n capture: true\n });\n bind(self.timeContainer, \"mousedown\", onClick(timeIncrement));\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined) bind(self.secondElement, \"focus\", function () {\n return self.secondElement && self.secondElement.select();\n });\n\n if (self.amPM !== undefined) {\n bind(self.amPM, \"mousedown\", onClick(function (e) {\n updateTime(e);\n triggerChange();\n }));\n }\n }\n }\n /**\n * Set the calendar view to a particular date.\n * @param {Date} jumpDate the date to set the view to\n * @param {boolean} triggerChange if change events should be triggered\n */\n\n\n function jumpToDate(jumpDate, triggerChange) {\n var jumpTo = jumpDate !== undefined ? self.parseDate(jumpDate) : self.latestSelectedDateObj || (self.config.minDate && self.config.minDate > self.now ? self.config.minDate : self.config.maxDate && self.config.maxDate < self.now ? self.config.maxDate : self.now);\n var oldYear = self.currentYear;\n var oldMonth = self.currentMonth;\n\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n } catch (e) {\n /* istanbul ignore next */\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n\n if (triggerChange && (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n\n self.redraw();\n }\n /**\n * The up/down arrow handler for time inputs\n * @param {Event} e the click event\n */\n\n\n function timeIncrement(e) {\n if (~e.target.className.indexOf(\"arrow\")) incrementNumInput(e, e.target.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n /**\n * Increments/decrements the value of input associ-\n * ated with the up/down arrow by dispatching an\n * \"increment\" event on the input.\n *\n * @param {Event} e the click event\n * @param {Number} delta the diff (usually 1 or -1)\n * @param {Element} inputElem the input element\n */\n\n\n function incrementNumInput(e, delta, inputElem) {\n var target = e && e.target;\n var input = inputElem || target && target.parentNode && target.parentNode.firstChild;\n var event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n\n function build() {\n var fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n\n if (self.config.weekNumbers) {\n var _a = buildWeeks(),\n weekWrapper = _a.weekWrapper,\n weekNumbers = _a.weekNumbers;\n\n self.innerContainer.appendChild(weekWrapper);\n self.weekNumbers = weekNumbers;\n self.weekWrapper = weekWrapper;\n }\n\n self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n self.rContainer.appendChild(buildWeekdays());\n\n if (!self.daysContainer) {\n self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n self.daysContainer.tabIndex = -1;\n }\n\n buildDays();\n self.rContainer.appendChild(self.daysContainer);\n self.innerContainer.appendChild(self.rContainer);\n fragment.appendChild(self.innerContainer);\n }\n\n if (self.config.enableTime) {\n fragment.appendChild(buildTime());\n }\n\n toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n self.calendarContainer.appendChild(fragment);\n var customAppend = self.config.appendTo !== undefined && self.config.appendTo.nodeType !== undefined;\n\n if (self.config.inline || self.config.static) {\n self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n\n if (self.config.inline) {\n if (!customAppend && self.element.parentNode) self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);else if (self.config.appendTo !== undefined) self.config.appendTo.appendChild(self.calendarContainer);\n }\n\n if (self.config.static) {\n var wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode) self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput) wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n\n if (!self.config.static && !self.config.inline) (self.config.appendTo !== undefined ? self.config.appendTo : window.document.body).appendChild(self.calendarContainer);\n }\n\n function createDay(className, date, dayNumber, i) {\n var dateIsEnabled = isEnabled(date, true),\n dayElement = createElement(\"span\", \"flatpickr-day \" + className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n\n if (className.indexOf(\"hidden\") === -1 && compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] && compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] && compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\") dayElement.classList.add(\"inRange\");\n }\n }\n } else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date)) dayElement.classList.add(\"inRange\");\n }\n\n if (self.weekNumbers && self.config.showMonths === 1 && className !== \"prevMonthDay\" && dayNumber % 7 === 1) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"\" + self.config.getWeek(date) + \"\");\n }\n\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\") onMouseOver(targetNode);\n }\n\n function getFirstAvailableDay(delta) {\n var startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n\n for (var m = startMonth; m != endMonth; m += delta) {\n var month = self.daysContainer.children[m];\n var startIndex = delta > 0 ? 0 : month.children.length - 1;\n var endIndex = delta > 0 ? month.children.length : -1;\n\n for (var i = startIndex; i != endIndex; i += delta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj)) return c;\n }\n }\n\n return undefined;\n }\n\n function getNextAvailableDay(current, delta) {\n var givenMonth = current.className.indexOf(\"Month\") === -1 ? current.dateObj.getMonth() : self.currentMonth;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n var loopDelta = delta > 0 ? 1 : -1;\n\n for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n var month = self.daysContainer.children[m];\n var startIndex = givenMonth - self.currentMonth === m ? current.$i + delta : delta < 0 ? month.children.length - 1 : 0;\n var numMonthDays = month.children.length;\n\n for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj) && Math.abs(current.$i - i) >= Math.abs(delta)) return focusOnDayElem(c);\n }\n }\n\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n\n function focusOnDay(current, offset) {\n var dayFocused = isInView(document.activeElement || document.body);\n var startElem = current !== undefined ? current : dayFocused ? document.activeElement : self.selectedDateElem !== undefined && isInView(self.selectedDateElem) ? self.selectedDateElem : self.todayDateElem !== undefined && isInView(self.todayDateElem) ? self.todayDateElem : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined) return self._input.focus();\n if (!dayFocused) return focusOnDayElem(startElem);\n getNextAvailableDay(startElem, offset);\n }\n\n function buildMonthDays(year, month) {\n var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12);\n var daysInMonth = self.utils.getDaysInMonth(month),\n days = window.document.createDocumentFragment(),\n isMultiMonth = self.config.showMonths > 1,\n prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\",\n nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n var dayNumber = prevMonthDays + 1 - firstOfMonth,\n dayIndex = 0; // prepend days from the ending of previous month\n\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n } // Start at 1 since there is no 0th day\n\n\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n } // append days from the next month\n\n\n for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth && (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n } //updateNavigationCurrentMonth();\n\n\n var dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n\n clearNode(self.daysContainer); // TODO: week numbers for each month\n\n if (self.weekNumbers) clearNode(self.weekNumbers);\n var frag = document.createDocumentFragment();\n\n for (var i = 0; i < self.config.showMonths; i++) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 || self.config.monthSelectorType !== \"dropdown\") return;\n\n var shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined && self.currentYear === self.config.minDate.getFullYear() && month < self.config.minDate.getMonth()) {\n return false;\n }\n\n return !(self.config.maxDate !== undefined && self.currentYear === self.config.maxDate.getFullYear() && month > self.config.maxDate.getMonth());\n };\n\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n\n for (var i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i)) continue;\n var month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n\n if (self.currentMonth === i) {\n month.selected = true;\n }\n\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n\n function buildMonth() {\n var container = createElement(\"div\", \"flatpickr-month\");\n var monthNavFragment = window.document.createDocumentFragment();\n var monthElement;\n\n if (self.config.showMonths > 1 || self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n } else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n bind(self.monthsDropdownContainer, \"change\", function (e) {\n var target = e.target;\n var selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n\n var yearInput = createNumberInput(\"cur-year\", {\n tabindex: \"-1\"\n });\n var yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled = !!self.config.minDate && self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n\n var currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container: container,\n yearElement: yearElement,\n monthElement: monthElement\n };\n }\n\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n\n for (var m = self.config.showMonths; m--;) {\n var month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n\n self.monthNav.appendChild(self.nextMonthNav);\n }\n\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: function () {\n return self.__hidePrevMonthArrow;\n },\n set: function (bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n }\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: function () {\n return self.__hideNextMonthArrow;\n },\n set: function (bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n }\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar) self.calendarContainer.classList.add(\"noCalendar\");\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n var separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n var hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n var minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj ? self.latestSelectedDateObj.getHours() : self.config.time_24hr ? self.config.defaultHour : military2ampm(self.config.defaultHour));\n self.minuteElement.value = pad(self.latestSelectedDateObj ? self.latestSelectedDateObj.getMinutes() : self.config.defaultMinute);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr) self.timeContainer.classList.add(\"time24hr\");\n\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n var secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj ? self.latestSelectedDateObj.getSeconds() : self.config.defaultSeconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n\n if (!self.config.time_24hr) {\n // add self.amPM if appropriate\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj ? self.hourElement.value : self.config.defaultHour) > 11)]);\n self.amPM.title = self.l10n.toggleTitle;\n self.amPM.tabIndex = -1;\n self.timeContainer.appendChild(self.amPM);\n }\n\n return self.timeContainer;\n }\n\n function buildWeekdays() {\n if (!self.weekdayContainer) self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");else clearNode(self.weekdayContainer);\n\n for (var i = self.config.showMonths; i--;) {\n var container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n\n updateWeekdays();\n return self.weekdayContainer;\n }\n\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n\n var firstDayOfWeek = self.l10n.firstDayOfWeek;\n var weekdays = self.l10n.weekdays.shorthand.slice();\n\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = weekdays.splice(firstDayOfWeek, weekdays.length).concat(weekdays.splice(0, firstDayOfWeek));\n }\n\n for (var i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = \"\\n \\n \" + weekdays.join(\"\") + \"\\n \\n \";\n }\n }\n /* istanbul ignore next */\n\n\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n var weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n var weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper: weekWrapper,\n weekNumbers: weekNumbers\n };\n }\n\n function changeMonth(value, isOffset) {\n if (isOffset === void 0) {\n isOffset = true;\n }\n\n var delta = isOffset ? value : value - self.currentMonth;\n if (delta < 0 && self._hidePrevMonthArrow === true || delta > 0 && self._hideNextMonthArrow === true) return;\n self.currentMonth += delta;\n\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n\n function clear(triggerChangeEvent, toInitial) {\n if (triggerChangeEvent === void 0) {\n triggerChangeEvent = true;\n }\n\n if (toInitial === void 0) {\n toInitial = true;\n }\n\n self.input.value = \"\";\n if (self.altInput !== undefined) self.altInput.value = \"\";\n if (self.mobileInput !== undefined) self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n\n self.showTimeInput = false;\n\n if (self.config.enableTime === true) {\n setDefaultHours();\n }\n\n self.redraw();\n if (triggerChangeEvent) // triggerChangeEvent is true (default) or an Event\n triggerEvent(\"onChange\");\n }\n\n function close() {\n self.isOpen = false;\n\n if (!self.isMobile) {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.classList.remove(\"open\");\n }\n\n if (self._input !== undefined) {\n self._input.classList.remove(\"active\");\n }\n }\n\n triggerEvent(\"onClose\");\n }\n\n function destroy() {\n if (self.config !== undefined) triggerEvent(\"onDestroy\");\n\n for (var i = self._handlers.length; i--;) {\n var h = self._handlers[i];\n h.element.removeEventListener(h.event, h.handler, h.options);\n }\n\n self._handlers = [];\n\n if (self.mobileInput) {\n if (self.mobileInput.parentNode) self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n } else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n var wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n\n if (wrapper.parentNode) {\n while (wrapper.firstChild) wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n\n wrapper.parentNode.removeChild(wrapper);\n }\n } else self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode) self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n self.input.value = \"\";\n }\n\n [\"_showTimeInput\", \"latestSelectedDateObj\", \"_hideNextMonthArrow\", \"_hidePrevMonthArrow\", \"__hideNextMonthArrow\", \"__hidePrevMonthArrow\", \"isMobile\", \"isOpen\", \"selectedDateElem\", \"minDateHasTime\", \"maxDateHasTime\", \"days\", \"daysContainer\", \"_input\", \"_positionElement\", \"innerContainer\", \"rContainer\", \"monthNav\", \"todayDateElem\", \"calendarContainer\", \"weekdayContainer\", \"prevMonthNav\", \"nextMonthNav\", \"monthsDropdownContainer\", \"currentMonthElement\", \"currentYearElement\", \"navigationCurrentMonth\", \"selectedDateElem\", \"config\"].forEach(function (k) {\n try {\n delete self[k];\n } catch (_) {}\n });\n }\n\n function isCalendarElem(elem) {\n if (self.config.appendTo && self.config.appendTo.contains(elem)) return true;\n return self.calendarContainer.contains(elem);\n }\n\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n var eventTarget_1 = getEventTarget(e);\n var isCalendarElement = isCalendarElem(eventTarget_1);\n var isInput = eventTarget_1 === self.input || eventTarget_1 === self.altInput || self.element.contains(eventTarget_1) || // web components\n // e.path is not present in all browsers. circumventing typechecks\n e.path && e.path.indexOf && (~e.path.indexOf(self.input) || ~e.path.indexOf(self.altInput));\n var lostFocus = e.type === \"blur\" ? isInput && e.relatedTarget && !isCalendarElem(e.relatedTarget) : !isInput && !isCalendarElement && !isCalendarElem(e.relatedTarget);\n var isIgnored = !self.config.ignoredFocusElements.some(function (elem) {\n return elem.contains(eventTarget_1);\n });\n\n if (lostFocus && isIgnored) {\n if (self.timeContainer !== undefined && self.minuteElement !== undefined && self.hourElement !== undefined) {\n updateTime();\n }\n\n self.close();\n\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n self.clear(false);\n self.redraw();\n }\n }\n }\n }\n\n function changeYear(newYear) {\n if (!newYear || self.config.minDate && newYear < self.config.minDate.getFullYear() || self.config.maxDate && newYear > self.config.maxDate.getFullYear()) return;\n var newYearNum = newYear,\n isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n\n if (self.config.maxDate && self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n } else if (self.config.minDate && self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n\n function isEnabled(date, timeless) {\n if (timeless === void 0) {\n timeless = true;\n }\n\n var dateToCheck = self.parseDate(date, undefined, timeless); // timeless\n\n if (self.config.minDate && dateToCheck && compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0 || self.config.maxDate && dateToCheck && compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0) return false;\n if (self.config.enable.length === 0 && self.config.disable.length === 0) return true;\n if (dateToCheck === undefined) return false;\n var bool = self.config.enable.length > 0,\n array = bool ? self.config.enable : self.config.disable;\n\n for (var i = 0, d = void 0; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" && d(dateToCheck) // disabled by function\n ) return bool;else if (d instanceof Date && dateToCheck !== undefined && d.getTime() === dateToCheck.getTime()) // disabled by date\n return bool;else if (typeof d === \"string\" && dateToCheck !== undefined) {\n // disabled by date string\n var parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime() ? bool : !bool;\n } else if ( // disabled by range\n typeof d === \"object\" && dateToCheck !== undefined && d.from && d.to && dateToCheck.getTime() >= d.from.getTime() && dateToCheck.getTime() <= d.to.getTime()) return bool;\n }\n\n return !bool;\n }\n\n function isInView(elem) {\n if (self.daysContainer !== undefined) return elem.className.indexOf(\"hidden\") === -1 && self.daysContainer.contains(elem);\n return false;\n }\n\n function onKeyDown(e) {\n // e.key e.keyCode\n // \"Backspace\" 8\n // \"Tab\" 9\n // \"Enter\" 13\n // \"Escape\" (IE \"Esc\") 27\n // \"ArrowLeft\" (IE \"Left\") 37\n // \"ArrowUp\" (IE \"Up\") 38\n // \"ArrowRight\" (IE \"Right\") 39\n // \"ArrowDown\" (IE \"Down\") 40\n // \"Delete\" (IE \"Del\") 46\n var isInput = e.target === self._input;\n var allowInput = self.config.allowInput;\n var allowKeydown = self.isOpen && (!allowInput || !isInput);\n var allowInlineKeydown = self.config.inline && isInput && !allowInput;\n\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, e.target === self.altInput ? self.config.altFormat : self.config.dateFormat);\n return e.target.blur();\n } else {\n self.open();\n }\n } else if (isCalendarElem(e.target) || allowKeydown || allowInlineKeydown) {\n var isTimeObj = !!self.timeContainer && self.timeContainer.contains(e.target);\n\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n } else selectDate(e);\n\n break;\n\n case 27:\n // escape\n e.preventDefault();\n focusAndClose();\n break;\n\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n\n break;\n\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n\n if (self.daysContainer !== undefined && (allowInput === false || document.activeElement && isInView(document.activeElement))) {\n var delta_1 = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey) focusOnDay(undefined, delta_1);else {\n e.stopPropagation();\n changeMonth(delta_1);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n } else if (self.hourElement) self.hourElement.focus();\n\n break;\n\n case 38:\n case 40:\n e.preventDefault();\n var delta = e.keyCode === 40 ? 1 : -1;\n\n if (self.daysContainer && e.target.$i !== undefined || e.target === self.input || e.target === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n } else if (!isTimeObj) focusOnDay(undefined, delta * 7);\n } else if (e.target === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n } else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement) self.hourElement.focus();\n updateTime(e);\n\n self._debouncedChange();\n }\n\n break;\n\n case 9:\n if (isTimeObj) {\n var elems = [self.hourElement, self.minuteElement, self.secondElement, self.amPM].concat(self.pluginElements).filter(function (x) {\n return x;\n });\n var i = elems.indexOf(e.target);\n\n if (i !== -1) {\n var target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n\n (target || self._input).focus();\n }\n } else if (!self.config.noCalendar && self.daysContainer && self.daysContainer.contains(e.target) && e.shiftKey) {\n e.preventDefault();\n\n self._input.focus();\n }\n\n break;\n\n default:\n break;\n }\n }\n\n if (self.amPM !== undefined && e.target === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n\n if (isInput || isCalendarElem(e.target)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n\n function onMouseOver(elem) {\n if (self.selectedDates.length !== 1 || elem && (!elem.classList.contains(\"flatpickr-day\") || elem.classList.contains(\"flatpickr-disabled\"))) return;\n var hoverDate = elem ? elem.dateObj.getTime() : self.days.firstElementChild.dateObj.getTime(),\n initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(),\n rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()),\n rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n var containsDisabled = false;\n var minRange = 0,\n maxRange = 0;\n\n for (var t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled = containsDisabled || t > rangeStartDate && t < rangeEndDate;\n if (t < initialDate && (!minRange || t > minRange)) minRange = t;else if (t > initialDate && (!maxRange || t < maxRange)) maxRange = t;\n }\n }\n\n for (var m = 0; m < self.config.showMonths; m++) {\n var month = self.daysContainer.children[m];\n\n var _loop_1 = function (i, l) {\n var dayElem = month.children[i],\n date = dayElem.dateObj;\n var timestamp = date.getTime();\n var outOfRange = minRange > 0 && timestamp < minRange || maxRange > 0 && timestamp > maxRange;\n\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n return \"continue\";\n } else if (containsDisabled && !outOfRange) return \"continue\";\n\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime() ? \"startRange\" : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate) dayElem.classList.add(\"startRange\");else if (initialDate > hoverDate && timestamp === initialDate) dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange && (maxRange === 0 || timestamp <= maxRange) && isBetween(timestamp, initialDate, hoverDate)) dayElem.classList.add(\"inRange\");\n }\n };\n\n for (var i = 0, l = month.children.length; i < l; i++) {\n _loop_1(i, l);\n }\n }\n }\n\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline) positionCalendar();\n }\n\n function setDefaultTime() {\n self.setDate(self.config.minDate !== undefined ? new Date(self.config.minDate.getTime()) : new Date(), true);\n setDefaultHours();\n updateValue();\n }\n\n function open(e, positionElement) {\n if (positionElement === void 0) {\n positionElement = self._positionElement;\n }\n\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n e.target && e.target.blur();\n }\n\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n\n triggerEvent(\"onOpen\");\n return;\n }\n\n if (self._input.disabled || self.config.inline) return;\n var wasOpen = self.isOpen;\n self.isOpen = true;\n\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n\n self._input.classList.add(\"active\");\n\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.selectedDates.length === 0) {\n setDefaultTime();\n }\n\n if (self.config.allowInput === false && (e === undefined || !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(function () {\n return self.hourElement.select();\n }, 50);\n }\n }\n }\n\n function minMaxDateSetter(type) {\n return function (date) {\n var dateObj = self.config[\"_\" + type + \"Date\"] = self.parseDate(date, self.config.dateFormat);\n var inverseDateObj = self.config[\"_\" + (type === \"min\" ? \"max\" : \"min\") + \"Date\"];\n\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] = dateObj.getHours() > 0 || dateObj.getMinutes() > 0 || dateObj.getSeconds() > 0;\n }\n\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter(function (d) {\n return isEnabled(d);\n });\n if (!self.selectedDates.length && type === \"min\") setHoursFromDate(dateObj);\n updateValue();\n }\n\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined) self.currentYearElement[type] = dateObj.getFullYear().toString();else self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled = !!inverseDateObj && dateObj !== undefined && inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n\n function parseConfig() {\n var boolOpts = [\"wrap\", \"weekNumbers\", \"allowInput\", \"clickOpens\", \"time_24hr\", \"enableTime\", \"noCalendar\", \"altInput\", \"shorthandCurrentMonth\", \"inline\", \"static\", \"enableSeconds\", \"disableMobile\"];\n\n var userConfig = __assign({}, instanceConfig, JSON.parse(JSON.stringify(element.dataset || {})));\n\n var formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: function () {\n return self.config._enable;\n },\n set: function (dates) {\n self.config._enable = parseDateRules(dates);\n }\n });\n Object.defineProperty(self.config, \"disable\", {\n get: function () {\n return self.config._disable;\n },\n set: function (dates) {\n self.config._disable = parseDateRules(dates);\n }\n });\n var timeMode = userConfig.mode === \"time\";\n\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n var defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaults.dateFormat;\n formats.dateFormat = userConfig.noCalendar || timeMode ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\") : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n\n if (userConfig.altInput && (userConfig.enableTime || timeMode) && !userConfig.altFormat) {\n var defaultAltFormat = flatpickr.defaultConfig.altFormat || defaults.altFormat;\n formats.altFormat = userConfig.noCalendar || timeMode ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\") : defaultAltFormat + (\" h:i\" + (userConfig.enableSeconds ? \":S\" : \"\") + \" K\");\n }\n\n if (!userConfig.altInputClass) {\n self.config.altInputClass = self.input.className + \" \" + self.config.altInputClass;\n }\n\n Object.defineProperty(self.config, \"minDate\", {\n get: function () {\n return self.config._minDate;\n },\n set: minMaxDateSetter(\"min\")\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: function () {\n return self.config._maxDate;\n },\n set: minMaxDateSetter(\"max\")\n });\n\n var minMaxTimeSetter = function (type) {\n return function (val) {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n };\n };\n\n Object.defineProperty(self.config, \"minTime\", {\n get: function () {\n return self.config._minTime;\n },\n set: minMaxTimeSetter(\"min\")\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: function () {\n return self.config._maxTime;\n },\n set: minMaxTimeSetter(\"max\")\n });\n\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n\n Object.assign(self.config, formats, userConfig);\n\n for (var i = 0; i < boolOpts.length; i++) self.config[boolOpts[i]] = self.config[boolOpts[i]] === true || self.config[boolOpts[i]] === \"true\";\n\n HOOKS.filter(function (hook) {\n return self.config[hook] !== undefined;\n }).forEach(function (hook) {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile = !self.config.disableMobile && !self.config.inline && self.config.mode === \"single\" && !self.config.disable.length && !self.config.enable.length && !self.config.weekNumbers && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n\n for (var i = 0; i < self.config.plugins.length; i++) {\n var pluginConf = self.config.plugins[i](self) || {};\n\n for (var key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key]).map(bindToInstance).concat(self.config[key]);\n } else if (typeof userConfig[key] === \"undefined\") self.config[key] = pluginConf[key];\n }\n }\n\n triggerEvent(\"onParseConfig\");\n }\n\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" && typeof flatpickr.l10ns[self.config.locale] === \"undefined\") self.config.errorHandler(new Error(\"flatpickr: invalid locale \" + self.config.locale));\n self.l10n = __assign({}, flatpickr.l10ns[\"default\"], typeof self.config.locale === \"object\" ? self.config.locale : self.config.locale !== \"default\" ? flatpickr.l10ns[self.config.locale] : undefined);\n tokenRegex.K = \"(\" + self.l10n.amPM[0] + \"|\" + self.l10n.amPM[1] + \"|\" + self.l10n.amPM[0].toLowerCase() + \"|\" + self.l10n.amPM[1].toLowerCase() + \")\";\n\n var userConfig = __assign({}, instanceConfig, JSON.parse(JSON.stringify(element.dataset || {})));\n\n if (userConfig.time_24hr === undefined && flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({\n config: self.config,\n l10n: self.l10n\n });\n }\n\n function positionCalendar(customPositionElement) {\n if (self.calendarContainer === undefined) return;\n triggerEvent(\"onPreCalendarPosition\");\n var positionElement = customPositionElement || self._positionElement;\n var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, function (acc, child) {\n return acc + child.offsetHeight;\n }, 0),\n calendarWidth = self.calendarContainer.offsetWidth,\n configPos = self.config.position.split(\" \"),\n configPosVertical = configPos[0],\n configPosHorizontal = configPos.length > 1 ? configPos[1] : null,\n inputBounds = positionElement.getBoundingClientRect(),\n distanceFromBottom = window.innerHeight - inputBounds.bottom,\n showOnTop = configPosVertical === \"above\" || configPosVertical !== \"below\" && distanceFromBottom < calendarHeight && inputBounds.top > calendarHeight;\n var top = window.pageYOffset + inputBounds.top + (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline) return;\n var left = window.pageXOffset + inputBounds.left - (configPosHorizontal != null && configPosHorizontal === \"center\" ? (calendarWidth - inputBounds.width) / 2 : 0);\n var right = window.document.body.offsetWidth - (window.pageXOffset + inputBounds.right);\n var rightMost = left + calendarWidth > window.document.body.offsetWidth;\n var centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static) return;\n self.calendarContainer.style.top = top + \"px\";\n\n if (!rightMost) {\n self.calendarContainer.style.left = left + \"px\";\n self.calendarContainer.style.right = \"auto\";\n } else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = right + \"px\";\n } else {\n var doc = document.styleSheets[0]; // some testing environments don't have css support\n\n if (doc === undefined) return;\n var bodyWidth = window.document.body.offsetWidth;\n var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n var centerBefore = \".flatpickr-calendar.centerMost:before\";\n var centerAfter = \".flatpickr-calendar.centerMost:after\";\n var centerIndex = doc.cssRules.length;\n var centerStyle = \"{left:\" + inputBounds.left + \"px;right:auto;}\";\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(centerBefore + \",\" + centerAfter + centerStyle, centerIndex);\n self.calendarContainer.style.left = centerLeft + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n }\n\n function redraw() {\n if (self.config.noCalendar || self.isMobile) return;\n updateNavigationCurrentMonth();\n buildDays();\n }\n\n function focusAndClose() {\n self._input.focus();\n\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 || navigator.msMaxTouchPoints !== undefined) {\n // hack - bugs in the way IE handles focus keeps the calendar open\n setTimeout(self.close, 0);\n } else {\n self.close();\n }\n }\n\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n\n var isSelectable = function (day) {\n return day.classList && day.classList.contains(\"flatpickr-day\") && !day.classList.contains(\"flatpickr-disabled\") && !day.classList.contains(\"notAllowed\");\n };\n\n var t = findParent(e.target, isSelectable);\n if (t === undefined) return;\n var target = t;\n var selectedDate = self.latestSelectedDateObj = new Date(target.dateObj.getTime());\n var shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth || selectedDate.getMonth() > self.currentMonth + self.config.showMonths - 1) && self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\") self.selectedDates = [selectedDate];else if (self.config.mode === \"multiple\") {\n var selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex) self.selectedDates.splice(parseInt(selectedIndex), 1);else self.selectedDates.push(selectedDate);\n } else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate); // unless selecting same date twice, sort ascendingly\n\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0) self.selectedDates.sort(function (a, b) {\n return a.getTime() - b.getTime();\n });\n }\n setHoursFromInputs();\n\n if (shouldChangeMonth) {\n var isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n\n triggerEvent(\"onMonthChange\");\n }\n\n updateNavigationCurrentMonth();\n buildDays();\n updateValue();\n if (self.config.enableTime) setTimeout(function () {\n return self.showTimeInput = true;\n }, 50); // maintain focus\n\n if (!shouldChangeMonth && self.config.mode !== \"range\" && self.config.showMonths === 1) focusOnDayElem(target);else if (self.selectedDateElem !== undefined && self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined) self.hourElement !== undefined && self.hourElement.focus();\n\n if (self.config.closeOnSelect) {\n var single = self.config.mode === \"single\" && !self.config.enableTime;\n var range = self.config.mode === \"range\" && self.selectedDates.length === 2 && !self.config.enableTime;\n\n if (single || range) {\n focusAndClose();\n }\n }\n\n triggerChange();\n }\n\n var CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate]\n };\n\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n\n for (var key in option) {\n if (CALLBACKS[key] !== undefined) CALLBACKS[key].forEach(function (x) {\n return x();\n });\n }\n } else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined) CALLBACKS[option].forEach(function (x) {\n return x();\n });else if (HOOKS.indexOf(option) > -1) self.config[option] = arrayify(value);\n }\n\n self.redraw();\n updateValue(false);\n }\n\n function setSelectedDate(inputDate, format) {\n var dates = [];\n if (inputDate instanceof Array) dates = inputDate.map(function (d) {\n return self.parseDate(d, format);\n });else if (inputDate instanceof Date || typeof inputDate === \"number\") dates = [self.parseDate(inputDate, format)];else if (typeof inputDate === \"string\") {\n switch (self.config.mode) {\n case \"single\":\n case \"time\":\n dates = [self.parseDate(inputDate, format)];\n break;\n\n case \"multiple\":\n dates = inputDate.split(self.config.conjunction).map(function (date) {\n return self.parseDate(date, format);\n });\n break;\n\n case \"range\":\n dates = inputDate.split(self.l10n.rangeSeparator).map(function (date) {\n return self.parseDate(date, format);\n });\n break;\n\n default:\n break;\n }\n } else self.config.errorHandler(new Error(\"Invalid date supplied: \" + JSON.stringify(inputDate)));\n self.selectedDates = dates.filter(function (d) {\n return d instanceof Date && isEnabled(d, false);\n });\n if (self.config.mode === \"range\") self.selectedDates.sort(function (a, b) {\n return a.getTime() - b.getTime();\n });\n }\n\n function setDate(date, triggerChange, format) {\n if (triggerChange === void 0) {\n triggerChange = false;\n }\n\n if (format === void 0) {\n format = self.config.dateFormat;\n }\n\n if (date !== 0 && !date || date instanceof Array && date.length === 0) return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.showTimeInput = self.selectedDates.length > 0;\n self.latestSelectedDateObj = self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate();\n setHoursFromDate();\n\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n\n updateValue(triggerChange);\n if (triggerChange) triggerEvent(\"onChange\");\n }\n\n function parseDateRules(arr) {\n return arr.slice().map(function (rule) {\n if (typeof rule === \"string\" || typeof rule === \"number\" || rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n } else if (rule && typeof rule === \"object\" && rule.from && rule.to) return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined)\n };\n\n return rule;\n }).filter(function (x) {\n return x;\n }); // remove falsy values\n }\n\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date(); // Workaround IE11 setting placeholder as the input's value\n\n var preloadedDate = self.config.defaultDate || ((self.input.nodeName === \"INPUT\" || self.input.nodeName === \"TEXTAREA\") && self.input.placeholder && self.input.value === self.input.placeholder ? null : self.input.value);\n if (preloadedDate) setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate = self.selectedDates.length > 0 ? self.selectedDates[0] : self.config.minDate && self.config.minDate.getTime() > self.now.getTime() ? self.config.minDate : self.config.maxDate && self.config.maxDate.getTime() < self.now.getTime() ? self.config.maxDate : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0) self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined) self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined) self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime = !!self.config.minDate && (self.config.minDate.getHours() > 0 || self.config.minDate.getMinutes() > 0 || self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime = !!self.config.maxDate && (self.config.maxDate.getHours() > 0 || self.config.maxDate.getMinutes() > 0 || self.config.maxDate.getSeconds() > 0);\n Object.defineProperty(self, \"showTimeInput\", {\n get: function () {\n return self._showTimeInput;\n },\n set: function (bool) {\n self._showTimeInput = bool;\n if (self.calendarContainer) toggleClass(self.calendarContainer, \"showTimeInput\", bool);\n self.isOpen && positionCalendar();\n }\n });\n }\n\n function setupInputs() {\n self.input = self.config.wrap ? element.querySelector(\"[data-input]\") : element;\n /* istanbul ignore next */\n\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n } // hack: store previous type to restore it after destroy()\n\n\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n\n if (self.config.altInput) {\n // replicate self.element\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode) self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n\n if (!self.config.allowInput) self._input.setAttribute(\"readonly\", \"readonly\");\n self._positionElement = self.config.positionElement || self._input;\n }\n\n function setupMobile() {\n var inputType = self.config.enableTime ? self.config.noCalendar ? \"time\" : \"datetime-local\" : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.step = self.input.getAttribute(\"step\") || \"any\";\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr = inputType === \"datetime-local\" ? \"Y-m-d\\\\TH:i:S\" : inputType === \"date\" ? \"Y-m-d\" : \"H:i:S\";\n\n if (self.selectedDates.length > 0) {\n self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n }\n\n if (self.config.minDate) self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate) self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n self.input.type = \"hidden\";\n if (self.altInput !== undefined) self.altInput.type = \"hidden\";\n\n try {\n if (self.input.parentNode) self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n } catch (_a) {}\n\n bind(self.mobileInput, \"change\", function (e) {\n self.setDate(e.target.value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n\n function toggle(e) {\n if (self.isOpen === true) return self.close();\n self.open(e);\n }\n\n function triggerEvent(event, data) {\n // If the instance has been destroyed already, all hooks have been removed\n if (self.config === undefined) return;\n var hooks = self.config[event];\n\n if (hooks !== undefined && hooks.length > 0) {\n for (var i = 0; hooks[i] && i < hooks.length; i++) hooks[i](self.selectedDates, self.input.value, self, data);\n }\n\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\")); // many front-end frameworks bind to the input event\n\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n\n function createEvent(name) {\n var e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n\n function isDateSelected(date) {\n for (var i = 0; i < self.selectedDates.length; i++) {\n if (compareDates(self.selectedDates[i], date) === 0) return \"\" + i;\n }\n\n return false;\n }\n\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2) return false;\n return compareDates(date, self.selectedDates[0]) >= 0 && compareDates(date, self.selectedDates[1]) <= 0;\n }\n\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav) return;\n self.yearElements.forEach(function (yearElement, i) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n\n if (self.config.showMonths > 1 || self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent = monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n } else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow = self.config.minDate !== undefined && (self.currentYear === self.config.minDate.getFullYear() ? self.currentMonth <= self.config.minDate.getMonth() : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow = self.config.maxDate !== undefined && (self.currentYear === self.config.maxDate.getFullYear() ? self.currentMonth + 1 > self.config.maxDate.getMonth() : self.currentYear > self.config.maxDate.getFullYear());\n }\n\n function getDateStr(format) {\n return self.selectedDates.map(function (dObj) {\n return self.formatDate(dObj, format);\n }).filter(function (d, i, arr) {\n return self.config.mode !== \"range\" || self.config.enableTime || arr.indexOf(d) === i;\n }).join(self.config.mode !== \"range\" ? self.config.conjunction : self.l10n.rangeSeparator);\n }\n /**\n * Updates the values of inputs associated with the calendar\n */\n\n\n function updateValue(triggerChange) {\n if (triggerChange === void 0) {\n triggerChange = true;\n }\n\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value = self.latestSelectedDateObj !== undefined ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr) : \"\";\n }\n\n self.input.value = getDateStr(self.config.dateFormat);\n\n if (self.altInput !== undefined) {\n self.altInput.value = getDateStr(self.config.altFormat);\n }\n\n if (triggerChange !== false) triggerEvent(\"onValueUpdate\");\n }\n\n function onMonthNavClick(e) {\n var isPrevMonth = self.prevMonthNav.contains(e.target);\n var isNextMonth = self.nextMonthNav.contains(e.target);\n\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n } else if (self.yearElements.indexOf(e.target) >= 0) {\n e.target.select();\n } else if (e.target.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n } else if (e.target.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n\n function timeWrapper(e) {\n e.preventDefault();\n var isKeyDown = e.type === \"keydown\",\n input = e.target;\n\n if (self.amPM !== undefined && e.target === self.amPM) {\n self.amPM.textContent = self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n\n var min = parseFloat(input.getAttribute(\"min\")),\n max = parseFloat(input.getAttribute(\"max\")),\n step = parseFloat(input.getAttribute(\"step\")),\n curValue = parseInt(input.value, 10),\n delta = e.delta || (isKeyDown ? e.which === 38 ? 1 : -1 : 0);\n var newValue = curValue + step * delta;\n\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n var isHourElem = input === self.hourElement,\n isMinuteElem = input === self.minuteElement;\n\n if (newValue < min) {\n newValue = max + newValue + int(!isHourElem) + (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem) incrementNumInput(undefined, -1, self.hourElement);\n } else if (newValue > max) {\n newValue = input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem) incrementNumInput(undefined, 1, self.hourElement);\n }\n\n if (self.amPM && isHourElem && (step === 1 ? newValue + curValue === 23 : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent = self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n\n input.value = pad(newValue);\n }\n }\n\n init();\n return self;\n }\n /* istanbul ignore next */\n\n\n function _flatpickr(nodeList, config) {\n // static list\n var nodes = Array.prototype.slice.call(nodeList).filter(function (x) {\n return x instanceof HTMLElement;\n });\n var instances = [];\n\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null) continue;\n\n if (node._flatpickr !== undefined) {\n node._flatpickr.destroy();\n\n node._flatpickr = undefined;\n }\n\n node._flatpickr = FlatpickrInstance(node, config || {});\n instances.push(node._flatpickr);\n } catch (e) {\n console.error(e);\n }\n }\n\n return instances.length === 1 ? instances[0] : instances;\n }\n /* istanbul ignore next */\n\n\n if (typeof HTMLElement !== \"undefined\" && typeof HTMLCollection !== \"undefined\" && typeof NodeList !== \"undefined\") {\n // browser env\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n }\n /* istanbul ignore next */\n\n\n var flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n } else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n } else {\n return _flatpickr(selector, config);\n }\n };\n /* istanbul ignore next */\n\n\n flatpickr.defaultConfig = {};\n flatpickr.l10ns = {\n en: __assign({}, english),\n \"default\": __assign({}, english)\n };\n\n flatpickr.localize = function (l10n) {\n flatpickr.l10ns[\"default\"] = __assign({}, flatpickr.l10ns[\"default\"], l10n);\n };\n\n flatpickr.setDefaults = function (config) {\n flatpickr.defaultConfig = __assign({}, flatpickr.defaultConfig, config);\n };\n\n flatpickr.parseDate = createDateParser({});\n flatpickr.formatDate = createDateFormatter({});\n flatpickr.compareDates = compareDates;\n /* istanbul ignore next */\n\n if (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n } // eslint-disable-next-line @typescript-eslint/camelcase\n\n\n Date.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n };\n\n if (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n }\n\n return flatpickr;\n});","module.exports = require('./dist/jstz.js');","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/master/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form',\n formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function (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 }\n\n CSRFProtection(xhr);\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);","/*\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