{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/@hotwired/stimulus/dist/stimulus.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/trix/dist/trix.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///(webpack)/buildin/module.js","webpack:///./app/javascript/packs/trix-editor-overrides.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./node_modules/@rails/actiontext/node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./app/javascript/controllers sync \\.js$","webpack:///./app/javascript/controllers/background_controller.js","webpack:///./app/javascript/controllers/bob_controller.js","webpack:///./app/javascript/controllers/boolean_display_controller.js","webpack:///./app/javascript/controllers/bootstrap_collapse_toggler_controller.js","webpack:///./app/javascript/controllers/character_counter_controller.js","webpack:///./app/javascript/controllers/clipboard_controller.js","webpack:///./app/javascript/controllers/device_code_controller.js","webpack:///./app/javascript/controllers/email_preview_controller.js","webpack:///./app/javascript/controllers/flash_alert_controller.js","webpack:///./app/javascript/controllers/flash_toast_controller.js","webpack:///./app/javascript/controllers/frame_loader_controller.js","webpack:///./app/javascript/controllers/frame_re_loader_controller.js","webpack:///./app/javascript/controllers/frame_reset_controller.js","webpack:///./app/javascript/controllers/page_topper_controller.js","webpack:///./app/javascript/controllers/password_meter_controller.js","webpack:///./app/javascript/controllers/redirection_controller.js","webpack:///./app/javascript/controllers/reveal_secret_controller.js","webpack:///./app/javascript/controllers/tab_select_controller.js","webpack:///./app/javascript/controllers/table_select_controller.js","webpack:///./app/javascript/controllers/timeout_controller.js","webpack:///./app/javascript/controllers/toolbar_controller.js","webpack:///./app/javascript/controllers/video_container_controller.js","webpack:///./app/javascript/controllers/video_modal_controller.js","webpack:///./node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js","webpack:///./node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable.js","webpack:///./node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable_stream_source_element.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","installedModules","__webpack_require__","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","s","_typeof","obj","iterator","constructor","asyncGeneratorStep","gen","_next","_throw","arg","info","done","then","_toConsumableArray","arr","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","_unsupportedIterableToArray","TypeError","_nonIterableSpread","_inherits","subClass","superClass","writable","configurable","_setPrototypeOf","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","this","arguments","apply","_possibleConstructorReturn","self","ReferenceError","_assertThisInitialized","getPrototypeOf","_slicedToArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","next","_iterableToArrayLimit","_nonIterableRest","_defineProperty","_createForOfIteratorHelper","allowArrayLike","it","F","_e2","f","normalCompletion","didErr","step","_e3","return","minLen","toString","test","len","arr2","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","EventListener","eventTarget","eventName","eventOptions","unorderedBindings","Set","addEventListener","removeEventListener","binding","add","delete","_step","extendedEvent","_stopImmediatePropagation","stopImmediatePropagation","assign","immediatePropagationStopped","extendEvent","_iterator","bindings","handleEvent","sort","left","right","leftIndex","index","rightIndex","Dispatcher","application","eventListenerMaps","Map","started","eventListeners","forEach","eventListener","connect","disconnect","values","reduce","listeners","map","concat","fetchEventListenerForBinding","bindingConnected","bindingDisconnected","detail","handleError","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","cacheKey","createEventListener","set","parts","keys","join","descriptorPattern","parseEventTarget","eventTargetName","camelize","replace","_","char","toUpperCase","capitalize","charAt","dasherize","toLowerCase","Action","element","tagName","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","eventNameSuffix","Element","getParamsFromEventTargetAttributes","params","pattern","RegExp","attributes","_ref","match","JSON","parse","o_O","typecast","token","descriptorString","content","matches","trim","split","options","getAttribute","Binding","context","action","willBeInvokedByEvent","invokeWithEvent","method","controller","currentTarget","actionEvent","logDebugActivity","contains","scope","containsElement","ElementObserver","delegate","_this","mutationObserverInit","childList","subtree","elements","mutationObserver","MutationObserver","mutations","processMutations","observe","refresh","callback","takeRecords","matchElementsInTree","_Array$from","has","removeElement","_i2","_Array$from2","_element","addElement","_step2","_iterator2","mutation","processMutation","processAttributeChange","attributeName","processRemovedNodes","removedNodes","processAddedNodes","addedNodes","node","elementAttributeChanged","matchElement","nodes","_i3","_Array$from3","elementFromNode","processTree","_i4","_Array$from4","elementIsActive","tree","processor","_step3","_iterator3","nodeType","Node","ELEMENT_NODE","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","start","pause","stop","hasAttribute","querySelectorAll","selector","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","StringMapObserver","_this2","stringMap","attributeOldValue","_step4","_iterator4","knownAttributeNames","refreshAttribute","_step5","_iterator5","oldValue","getStringMapKeyForAttribute","stringMapKeyAdded","stringMapValueChanged","_oldValue","stringMapKeyRemoved","currentAttributeNames","recordedAttributeNames","attribute","_add","fetch","del","size","prune","Multimap","valuesByKey","some","filter","_ref2","_ref3","_ref4","_ref5","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","_this$refreshTokensFo2","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","getValuesForKey","tokens","_this4","tokenMatched","_this5","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","Math","max","findIndex","_ref6","_ref7","tokensAreEqual","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","WeakMap","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","_this6","clear","forToken","connectAction","disconnectAction","ValueObserver","receiver","stringMapObserver","valueDescriptorMap","invokeChangedCallbacksForDefaultValues","hasValue","invokeChangedCallback","writer","defaultValue","valueDescriptorNameMap","_step6","_iterator6","valueDescriptors","_ref9","rawValue","rawOldValue","changedMethodName","changedMethod","reader","_this7","descriptors","hasMethodName","TargetObserver","targetsByName","disconnectAllTargets","_ref10","connectTarget","_ref11","disconnectTarget","_a","_this8","targetConnected","_this9","targetDisconnected","_step7","_iterator7","_step8","_iterator8","Context","_this10","functionName","controllerConstructor","bindingObserver","dispatcher","valueObserver","targetObserver","initialize","parentElement","invokeControllerMethod","_len","args","_key","readInheritableStaticArrayValues","propertyName","ancestors","getAncestorsForConstructor","definition","getOwnStaticArrayValues","readInheritableStaticObjectPairs","pairs","getOwnStaticObjectPairs","reverse","bless","properties","shadowConstructor","extend","shadowProperties","getOwnKeys","shadowingDescriptor","getOwnPropertyDescriptor","getShadowedDescriptor","getShadowProperties","defineProperties","shadow","blessedProperties","blessing","getBlessedProperties","getOwnPropertySymbols","getOwnPropertyNames","extendWithReflect","extended","b","a","_constructor","_super2","Module","blessDefinition","contextsByScope","connectedContexts","fetchContextForScope","ClassMap","getDataKey","getAll","getAttributeNameForKey","DataMap","removeAttribute","Guide","logger","warnedKeysByObject","warnedKeys","warn","attributeValueContainsToken","TargetSet","targetName","find","_this11","_len2","targetNames","_key2","findTarget","findLegacyTarget","_this12","_len3","_key3","targets","findAllTargets","findAllLegacyTargets","getSelectorForTargetName","findElement","findAllElements","targetAttributeForScope","getLegacySelectorForTargetName","deprecate","_this13","targetDescriptor","targetAttribute","revisedAttributeName","guide","Scope","_this14","classes","closest","controllerSelector","queryElements","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","createScopeForElementAndIdentifier","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","contexts","unloadIdentifier","connectModule","disconnectModule","connectContextForScope","disconnectContextForScope","defaultSchema","Application","_this15","documentElement","debug","logFormattedMessage","router","fn","_start","mark","_callee","wrap","_context","prev","readyState","shouldLoad","load","_this16","_len4","rest","_key4","definitions","loadDefinition","_this17","_len5","_key5","identifiers","getContextForElementAndIdentifier","groupCollapsed","log","groupEnd","parseValueDefinitionPair","_ref15","_ref16","typeDefinition","typeFromObject","typeObject","parseValueTypeConstant","defaultValueType","parseValueTypeDefault","default","parseValueTypeObject","typeFromDefaultValue","typeFromConstant","parseValueTypeDefinition","constant","defaultValuesByType","defaultValueForDefinition","hasCustomDefaultValue","readers","writers","valueDescriptorForTokenAndTypeDefinition","Number","String","array","boolean","number","string","writeJSON","stringify","Controller","_ref17","_ref17$target","_ref17$detail","_ref17$prefix","prefix","_ref17$bubbles","bubbles","_ref17$cancelable","cancelable","CustomEvent","dispatchEvent","blessings","classDefinition","_ref12","getAttributeName","targetDefinition","_ref13","findAll","valueDefinitionPairs","propertyDescriptorMap","_this18","valueDefinitionPair","valueDescriptor","_ref14","read","write","propertiesForValueDefinitionPair","g","Function","indexOf","splice","_state","_handled","_value","_deferreds","h","onFulfilled","onRejected","u","setImmediate","race","_setImmediateFn","_setUnhandledRejectionFn","customElements","registerElement","Date","now","random","A","uid_","nodes_","observer","removeTransientObservers","callback_","parentNode","enqueue","records_","C","previousSibling","nextSibling","attributeNamespace","x","w","transientObservedNodes","JsMutationObserver","navigator","userAgent","v","y","postMessage","ShadowDOMPolyfill","wrapIfNeeded","characterData","attributeFilter","characterDataOldValue","SyntaxError","removeListeners","addListeners","addListeners_","removeListeners_","addTransientObserver","attrName","relatedNode","namespaceURI","attrChange","MutationEvent","ADDITION","prevValue","_isPolyfilled","performance","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","createEvent","initEvent","preventDefault","defaultPrevented","Event","initCustomEvent","WebComponents","CustomElements","flags","addModule","initializeModules","hasNative","isIE","useNative","register","HTMLImports","firstElementChild","firstChild","nextElementSibling","shadowRoot","olderShadowRoot","import","IMPORT_LINK_TYPE","forDocumentTree","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","dom","host","URL","_URL","localName","pop","group","DOCUMENT_FRAGMENT_NODE","E","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","S","createShadowRoot","watchShadow","__watched","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","attached","is","createdCallback","HTMLElement","native","HTMLTemplateElement","decorate","getRegisteredDefinition","tag","extends","upgradeWithDefinition","implementPrototype","_polyfilled","attributeChangedCallback","ctor","createElementNS","__name","lifecycle","ancestry","ready","registry","instanceof","reservedTagList","readyTime","elapsed","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","_t","__super__","id","fromJSONString","fromJSON","hasSameConstructorAs","isEqualTo","inspect","contentsForInspection","toJSONString","toUTF16String","UTF16String","box","getCacheKey","defer","normalizeSpaces","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","source","summarizeStringChange","added","removed","utf16String","offset","codepoints","fromCodepoints","_t2","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","textContent","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","strict","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","rangeIsCollapsed","rangesAreEqual","defaultCSS","insertBefore","querySelector","_t3","initialized","connectedCallback","disconnectedCallback","_n2","define","getDOMSelection","getSelection","rangeCount","getDOMRange","getRangeAt","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","update","_t4","startContainer","endContainer","dataTransferIsPlainText","getData","DOMParser","parseFromString","body","dataTransferIsWritable","setData","keyEventIsKeyboardCommand","platform","metaKey","ctrlKey","RTL_PATTERN","getDirection","dir","dirName","FormData","Hash","fromCommonAttributesOfObjects","getKeys","getKeysCommonToHash","merge","remove","toArray","isEmpty","toObject","toJSON","ObjectGroup","objects","depth","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","_t5","ObjectMap","ElementStore","reset","trixStoreKey","_t6","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","exclusive","fileSize","precision","formatter","byte","floor","pow","toFixed","inheritable","parser","getComputedStyle","fontWeight","fontStyle","href","groupTagName","frozen","backgroundColor","serializers","Document","fromHTML","innerHTML","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","click","_t7","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","_t8","objectGroup","getChildViews","createContainerElement","_t9","didMutate","_h","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","_t10","FileVerificationOperation","FileReader","abort","readAsArrayBuffer","InputController","events","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","handleInput","inputControllerWillAttachFiles","responder","insertFiles","inputControllerWillHandleInput","inputControllerDidHandleInput","createLinkHTML","outerHTML","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","L","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","html","inputControllerWillPaste","insertHTML","inputControllerDidPaste","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","insertText","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","title","trixAction","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","updateAttributesForImage","getURL","getPreviewURL","getWidth","getHeight","width","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","_t11","TextView","getPieces","BlockView","block","createComment","getLastAttribute","shouldAddExtraNewlineElement","isRTL","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","_t12","ImagePreloadOperation","Image","naturalWidth","naturalHeight","_t13","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","_t14","Piece","registerType","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","_t15","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","_t16","Text","textForAttachmentWithAttributes","textForStringWithAttributes","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","forbiddenElements","sanitize","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","currentNode","elementIsRemovable","sanitizeElement","protocol","previousElementSibling","elementIsForbidden","elementIsntSerializable","implementation","createHTMLDocument","HTMLParser","referenceElement","blocks","blockElements","processedElements","getDocument","createHiddenContainer","containerElement","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","FILTER_REJECT","FILTER_ACCEPT","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","appendStringWithAttributes","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","unshift","findBlockElementAncestors","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","_t17","UndoManager","undoEntries","redoEntries","consolidatable","createEntry","description","snapshot","canUndo","canRedo","attachmentGalleryFilter","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","Editor","selectionManager","_t18","undoManager","filters","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","_t19","ManagedAttachment","attachmentManager","requestRemovalOfAttachment","_t20","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","isFocusedInvisibly","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","notify","getUndoContext","getLocationContext","getTimeContext","getTime","ownerDocument","queryCommandSupported","execCommand","labels","inputElement","editorController","registerResetListener","registerClickListener","unregisterResetListener","unregisterClickListener","resetListener","resetBubbled","clickListener","clickBubbled","form","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","close","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","global","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","process","handle","nextTick","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","onreadystatechange","task","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","noop","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","cwd","chdir","umask","webpackPolyfill","paths","children","includes","alert","require","heading2","heading3","heading4","factory","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","tmp","lo","hi","state","substring","md51_array","subarray","Uint8Array","rhex","j","hex","toUtf8","str","unescape","encodeURIComponent","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","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","createClass","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","ceil","chunkIndex","md5Buffer","fileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","root","eventInit","toArray$1","BlobRecord","checksum","content_type","byte_size","xhr","XMLHttpRequest","open","responseType","setRequestHeader","csrfToken","getMetaValue","requestDidLoad","requestDidError","send","blob","status","response","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","headers","DirectUpload","upload","messages","DirectUploadController","directUpload","dispatch","hiddenInput","insertAdjacentElement","dispatchError","signed_id","progress","loaded","total","uploadRequestDidProgress","DirectUploadsController","inputs","controllers","createDirectUploadControllers","startNextController","processingAttribute","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","disable","enable","button","submitForm","ActiveStorage","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","awrap","async","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","channels","webpackEmptyContext","req","webpackContext","webpackContextResolve","imageUrl","$","mutedImage","parents","removeClass","addClass","toggleValue","toggle","tog","targetValue","bootstrap","Collapse","_maxCount","count","counter","update_element","ele","sourceTarget","writeText","indexedDB","set_code_from_db","dcode","localStorage","getItem","update_dcode","current_context","open_request","onupgradeneeded","createObjectStore","keyPath","errorCode","onsuccess","db","objectStore","transaction","read_request","new_code","write_request","put","chars","charLength","_intervalTimer","_clearTimer","_setTimer","_updatePreview","format","searchParams","attr","slideDown","slideUp","_toast","Toast","animation","autohide","show","hide","tab_id","someTabTriggerEl","cache_buster","delay","scrollTo","searchBoxTarget","_displaySearchIcon","submitButtonTarget","passwordTarget","encodeURI","Turbo","visit","inputTarget","iconTarget","prop","hasClass","loadContent","tabTarget","_loaded","nodeName","frame","timeout_url","timeoutUrl","timeout_delay","timeoutDelay","timestamp","timeout_reset_at","timeout_interval_timer","_displayResetIcon","keyPress","searchIconTarget","searchButtonBoxTarget","vFrame","video_embed_url","tFrame","video_id","Modal","_templateObject","_templateObject2","_get","base","_superPropBase","desc","_taggedTemplateLiteral","strings","freeze","_asyncToGenerator","_wrapNativeSuper","Class","_cache","Wrapper","_construct","Parent","polyfillWrapFlushCallback","BuiltInHTMLElement","wrapperForTheName","FrameLoadingStyle","submittersByForm","clickCaptured","candidate","submitter","vendor","SubmitEvent","HTMLFormElement","FrameElement","_HTMLElement","_super","delegateConstructor","loadingStyleChanged","sourceURLChanged","disabledChanged","lazy","frameLoadingStyleFromString","isLoading","isPreview","_b","expandURL","locatable","getAnchor","anchorMatch","pathname","getPathComponents","getLastPathComponent","isPrefixedBy","baseURL","origin","endsWith","getPrefix","startsWith","getRequestURL","anchor","toCacheKey","FetchMethod","FetchResponse","ok","statusCode","redirected","header","clone","isHTML","nextAnimationFrame","parseHTMLDocument","unindent","lines","interpolate","line","uuid","FetchRequest","location","URLSearchParams","abortController","AbortController","resolveRequestPromise","defaultHeaders","isIdempotent","mergeFormDataEntries","entries","_allowRequestToBeIntercepted","_receive","_perform","fetchOptions","prepareHeadersForRequest","allowRequestToBeIntercepted","requestStarted","receive","t0","requestErrored","requestFinished","_callee2","fetchResponse","_context2","requestPreventedHandlingResponse","requestSucceededWithResponse","requestFailedWithResponse","_x","credentials","redirect","signal","abortSignal","referrer","_callee3","requestInterception","_context3","resume","_x2","currentSearchParams","search","FormSubmissionState","FormEnctype","AppearanceObserver","_this3","intersect","lastEntry","isIntersecting","elementAppearedInViewport","intersectionObserver","IntersectionObserver","unobserve","StreamMessage","templateElement","fragment","foreignElements","importNode","templateChildren","streamElements","child","FormSubmission","formElement","mustRedirect","formData","buildFormData","fetchRequest","post","patch","fetchMethodFromString","formElementAction","enctype","urlEncoded","stringFormData","encoding","multipart","plain","formEnctypeFromString","_callee4","_FormSubmissionState","requesting","_context4","_FormSubmissionState2","stopping","stopped","cookieName","cookie","decodeURIComponent","getCookieValue","getMetaContent","waiting","formSubmission","formSubmissionStarted","success","clientError","serverError","formSubmissionFailedWithResponse","requestMustRedirect","responseSucceededWithoutRedirect","formSubmissionErrored","receiving","formSubmissionSucceededWithResponse","formSubmissionFinished","Snapshot","getElementForAnchor","permanentElementMap","permanentElements","currentPermanentElement","newPermanentElement","getPermanentElementById","FormInterceptor","submitBubbled","shouldInterceptFormSubmission","formSubmissionIntercepted","View","resolveRenderPromise","resolveInterceptionPromise","_renderSnapshot","_render","scrollToElement","focusElement","scrollToPosition","scrollToAnchor","scrollIntoView","scrollRoot","_callee5","renderer","shouldRender","renderInterception","_context5","newSnapshot","renderPromise","prepareToRenderSnapshot","allowsImmediateRender","renderSnapshot","viewRenderedSnapshot","finishRenderingSnapshot","_x3","viewInvalidated","markAsPreview","prepareToRender","_callee6","_context6","_x4","finishRendering","FrameView","_View","LinkInterceptor","respondsToEventTarget","clickEvent","linkClicked","shouldInterceptLinkClick","linkClickIntercepted","willVisit","Bardo","replaceNewPermanentElementWithPlaceholder","replaceCurrentPermanentElementWithClone","replacePlaceholderWithPermanentElement","permanentElement","createPlaceholderForPermanentElement","replaceWith","getPlaceholderById","placeholders","bardo","enter","leave","Renderer","currentSnapshot","resolvingFunctions","createdScriptElement","cspNonce","nonce","destinationElement","sourceElement","_arr2","copyElementAttributes","preservingPermanentElements","connectedSnapshot","firstAutofocusableElement","elementIsFocusable","getPermanentElementMapForSnapshot","_Renderer","FrameRenderer","_render2","_super3","_callee7","_context7","loadFrameElement","scrollFrameIntoView","focusFirstAutofocusableElement","activateScriptElements","destinationRange","selectNodeContents","currentElement","deleteContents","frameElement","newElement","sourceRange","extractContents","autoscroll","newScriptElements","inertScriptElement","activatedScriptElement","createScriptElement","ProgressBar","hiding","visible","trickle","setValue","stylesheetElement","createStylesheetElement","createProgressElement","installStylesheetElement","installProgressElement","startTrickling","fadeProgressElement","uninstallProgressElement","stopTrickling","animationDuration","trickleInterval","HeadSnapshot","_Snapshot","_super4","detailsByOuterHTML","elementIsNoscript","elementWithoutNonce","details","elementType","tracked","elementIsTracked","getElementsMatchingTypeNotInSnapshot","matchedType","_this15$detailsByOute","findMetaElementByName","elementIsMetaElementWithName","elementIsScript","elementIsStylesheet","TimingMetric","VisitState","PageSnapshot","_Snapshot2","_super5","headSnapshot","getSetting","cacheControlValue","fromDocument","SystemStatusCode","defaultOptions","historyChanged","Visit","restorationIdentifier","timingMetrics","followedRedirect","scrolled","snapshotCached","_Object$assign2","snapshotHTML","isSamePage","locationWithActionIsSamePage","_render3","_requestFailedWithResponse","_requestSucceededWithResponse","adapter","view","history","getRestorationDataForIdentifier","recordTimingMetric","visitStart","visitStarted","cancelRender","canceled","visitEnd","completed","visitCompleted","followRedirect","failed","visitFailed","actionForHistory","getHistoryMethodForAction","hasPreloadedResponse","simulateRequest","shouldIssueRequest","startRequest","recordResponse","finishRequest","requestStart","visitRequestStarted","isSuccessful","visitRequestCompleted","visitRequestFailedWithStatusCode","requestEnd","visitRequestFinished","_this$response","responseHTML","_callee8","_context8","cacheSnapshot","renderPage","fromHTMLString","visitRendered","renderError","fail","getCachedSnapshotForLocation","getPreloadedSnapshot","hasAnchor","getCachedSnapshot","_this19","_callee9","_context9","redirectedToLocation","visitProposedToLocation","_this20","_callee10","_context10","_callee11","_context11","contentTypeMismatch","_x5","_x6","_callee12","_context12","_x7","_x8","networkFailure","scrollToRestoredPosition","scrollToTop","visitScrolledToSamePageLocation","lastRenderedLocation","scrollPosition","restorationData","metric","replaceState","pushState","hasCachedSnapshot","_callee13","_this21","_context13","performScroll","_x9","BrowserAdapter","session","_this22","progressBar","showProgressBar","startVisit","issueRequest","changeHistory","goToSamePageAnchor","loadCachedSnapshot","showVisitProgressBarAfterDelay","loadResponse","timeoutFailure","reload","hideVisitProgressBar","showFormProgressBarAfterDelay","hideFormProgressBar","visitProgressBarTimeout","progressBarDelay","formProgressBarTimeout","CacheObserver","removeStaleElements","FormSubmitObserver","_this23","submitCaptured","willSubmitForm","formSubmitted","FrameRedirector","linkInterceptor","formInterceptor","shouldRedirect","findFrameElement","History","_this24","pageLoaded","onPopState","shouldHandlePopState","turbo","historyPoppedToLocationWithRestorationIdentifier","onPageLoad","_callee14","_context14","_x10","additionalData","previousScrollRestoration","scrollRestoration","pageIsLoaded","LinkClickObserver","_this25","clickEventIsSignificant","composedPath","findLinkFromClickTarget","_location","getLocationForLink","willFollowLinkToLocation","followedLinkToLocation","isContentEditable","isAction","PageStage","Navigator","_formSubmissionFailedWithResponse","_formSubmissionSucceededWithResponse","allowsVisitingLocationWithAction","currentVisit","proposeVisit","getActionForFormSubmission","_callee15","visitOptions","_context15","clearSnapshotCache","_x11","_x12","_callee16","_context16","_x13","_x14","currentAnchor","isRestorationToTop","oldURL","newURL","PageObserver","_this26","stage","initial","interpretReadyState","pageIsInteractive","pageIsComplete","pageWillUnload","loading","interactive","pageBecameInteractive","ScrollObserver","_this27","onScroll","scrollPositionChanged","StreamObserver","_this28","sources","inspectFetchResponse","fetchResponseFromEvent","fetchResponseIsStream","receiveMessageResponse","receiveMessageEvent","receiveMessageHTML","_receiveMessageResponse","streamSourceIsConnected","_callee17","_context17","_x15","receivedMessageFromStream","_Renderer2","ErrorRenderer","_render4","_super6","_callee18","_context18","replaceHeadAndBody","_document","newHead","scriptElements","replaceableElement","_Renderer3","PageRenderer","_render5","_super7","isVisitable","trackedElementsAreIdentical","mergeHead","_callee19","_context19","replaceBody","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","_this29","activateNewBody","assignNewBody","currentHeadSnapshot","trackedElementSignature","newHeadSnapshot","newHeadStylesheetElements","newHeadScriptElements","_step9","_iterator9","currentHeadProvisionalElements","_step10","_iterator10","newHeadProvisionalElements","adoptNode","activateNewBodyScriptElements","_step11","_iterator11","newBodyScriptElements","HTMLBodyElement","getStylesheetElementsNotInSnapshot","getScriptElementsNotInSnapshot","provisionalElements","SnapshotCache","snapshots","touch","_step12","_iterator12","_View2","PageView","_cacheSnapshot","_super8","_this30","snapshotCache","_callee20","_location2","_context20","shouldCacheSnapshot","viewWillCacheSnapshot","fromElement","isCacheable","Session","pageObserver","cacheObserver","linkClickObserver","formSubmitObserver","scrollObserver","streamObserver","frameRedirector","drive","enabled","connectStreamSource","disconnectStreamSource","pageInvalidated","updateRestorationData","elementDriveEnabled","locationIsVisitable","applicationAllowsFollowingLinkToLocation","getActionForLink","convertLinkWithMethodClickToFormSubmission","linkMethod","applicationAllowsVisitingLocation","extendURLWithDeprecatedProperties","silent","notifyApplicationAfterVisitingLocation","notifyApplicationAfterPageLoad","getTimingMetrics","notifyApplicationAfterVisitingSamePageLocation","assumeControlOfScrollRestoration","relinquishControlOfScrollRestoration","renderStreamMessage","notifyApplicationBeforeCachingSnapshot","_ref18","notifyApplicationBeforeRender","notifyApplicationAfterRender","notifyApplicationAfterFrameLoad","notifyApplicationAfterFrameRender","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","newBody","timing","HashChangeEvent","rootLocation","deprecatedLocationPropertyDescriptors","absoluteURL","navigator$1","registerAdapter","clearCache","setProgressBarDelay","FrameController","resolveVisitPromise","connected","hasBeenLoaded","settingSourceURL","appearanceObserver","_extractForeignFrameElement","_visit","_requestSucceededWithResponse2","_loadResponse","_loadSourceURL","reloadable","loadingStyle","loadSourceURL","_callee21","previousURL","_context21","isActive","sourceURL","currentURL","frameLoaded","_callee22","_parseHTMLDocument","_context22","extractForeignFrameElement","t1","frameRendered","t2","_x16","shouldInterceptNavigation","navigateFrame","_callee23","_context23","_x17","_x18","_callee24","_this31","_context24","_x19","getFrameElementById","_callee25","_context25","CSS","escape","activateElement","_x20","consumer","StreamActions","after","_this32","targetElements","templateContent","_this33","removeDuplicateTargetChildren","before","_this34","prepend","_this35","_this36","_this37","_HTMLElement2","StreamElement","_render6","_connectedCallback","_super9","_callee26","_context26","_callee28","_this38","_context28","_callee27","_context27","beforeRenderEvent","performAction","duplicateChildren","existingChildren","flatMap","newChildrenIds","actionFunction","raise","targetElementsById","targetElementsByQuery","getConsumer","_getConsumer","setConsumer","newConsumer","_createConsumer","_yield$import","createConsumer","subscribeTo","_subscribeTo","mixin","_yield$getConsumer","subscriptions","currentScript","TurboCableStreamSourceElement","received","dispatchMessageEvent","subscription","unsubscribe","MessageEvent","signed_stream_name","logicalName","identifierForContextKey","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext","AttachmentUpload","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate"],"mappings":"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","file":"js/application-cebaeb3d6742d90f491c.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t2: 0,\n \t\t3: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"0\":\"actioncable\"}[chunkId]||chunkId) + \"-\" + {\"0\":\"49ed8f8ba3d14a6a7012\",\"4\":\"827b38d6f1e9e1a7e955\"}[chunkId] + \".chunk.js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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 \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 39);\n","module.exports = require(\"regenerator-runtime\");\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\nStimulus 3.0.1\nCopyright © 2021 Basecamp, LLC\n */\nvar EventListener = /*#__PURE__*/function () {\n function EventListener(eventTarget, eventName, eventOptions) {\n _classCallCheck(this, EventListener);\n\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n\n _createClass(EventListener, [{\n key: \"connect\",\n value: function connect() {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n }\n }, {\n key: \"bindingConnected\",\n value: function bindingConnected(binding) {\n this.unorderedBindings.add(binding);\n }\n }, {\n key: \"bindingDisconnected\",\n value: function bindingDisconnected(binding) {\n this.unorderedBindings.delete(binding);\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(event) {\n var extendedEvent = extendEvent(event);\n\n var _iterator = _createForOfIteratorHelper(this.bindings),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var binding = _step.value;\n\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }, {\n key: \"bindings\",\n get: function get() {\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 }]);\n\n return EventListener;\n}();\n\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var _stopImmediatePropagation = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n\n _stopImmediatePropagation.call(this);\n }\n });\n }\n}\n\nvar Dispatcher = /*#__PURE__*/function () {\n function Dispatcher(application) {\n _classCallCheck(this, Dispatcher);\n\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n\n _createClass(Dispatcher, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n }\n }, {\n key: \"eventListeners\",\n get: function get() {\n return Array.from(this.eventListenerMaps.values()).reduce(function (listeners, map) {\n return listeners.concat(Array.from(map.values()));\n }, []);\n }\n }, {\n key: \"bindingConnected\",\n value: function bindingConnected(binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n }\n }, {\n key: \"bindingDisconnected\",\n value: function bindingDisconnected(binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n }\n }, {\n key: \"handleError\",\n value: function handleError(error, message) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.application.handleError(error, \"Error \".concat(message), detail);\n }\n }, {\n key: \"fetchEventListenerForBinding\",\n value: function fetchEventListenerForBinding(binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName,\n eventOptions = binding.eventOptions;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n }\n }, {\n key: \"fetchEventListener\",\n value: function fetchEventListener(eventTarget, eventName, eventOptions) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var cacheKey = this.cacheKey(eventName, eventOptions);\n var eventListener = eventListenerMap.get(cacheKey);\n\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n eventListenerMap.set(cacheKey, eventListener);\n }\n\n return eventListener;\n }\n }, {\n key: \"createEventListener\",\n value: function createEventListener(eventTarget, eventName, eventOptions) {\n var eventListener = new EventListener(eventTarget, eventName, eventOptions);\n\n if (this.started) {\n eventListener.connect();\n }\n\n return eventListener;\n }\n }, {\n key: \"fetchEventListenerMapForEventTarget\",\n value: function fetchEventListenerMapForEventTarget(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 key: \"cacheKey\",\n value: function cacheKey(eventName, eventOptions) {\n var parts = [eventName];\n Object.keys(eventOptions).sort().forEach(function (key) {\n parts.push(\"\".concat(eventOptions[key] ? \"\" : \"!\").concat(key));\n });\n return parts.join(\":\");\n }\n }]);\n\n return Dispatcher;\n}();\n\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;\n\nfunction parseActionDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n eventOptions: matches[9] ? parseEventOptions(matches[9]) : {},\n identifier: matches[5],\n methodName: matches[7]\n };\n}\n\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n } else if (eventTargetName == \"document\") {\n return document;\n }\n}\n\nfunction parseEventOptions(eventOptions) {\n return eventOptions.split(\":\").reduce(function (options, token) {\n return Object.assign(options, _defineProperty({}, token.replace(/^!/, \"\"), !/^!/.test(token)));\n }, {});\n}\n\nfunction stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}\n\nfunction camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, function (_, char) {\n return char.toUpperCase();\n });\n}\n\nfunction capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\n\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, char) {\n return \"-\".concat(char.toLowerCase());\n });\n}\n\nfunction tokenize(value) {\n return value.match(/[^\\s]+/g) || [];\n}\n\nvar Action = /*#__PURE__*/function () {\n function Action(element, index, descriptor) {\n _classCallCheck(this, Action);\n\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.eventOptions = descriptor.eventOptions || {};\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n\n _createClass(Action, [{\n key: \"toString\",\n value: function toString() {\n var eventNameSuffix = this.eventTargetName ? \"@\".concat(this.eventTargetName) : \"\";\n return \"\".concat(this.eventName).concat(eventNameSuffix, \"->\").concat(this.identifier, \"#\").concat(this.methodName);\n }\n }, {\n key: \"params\",\n get: function get() {\n if (this.eventTarget instanceof Element) {\n return this.getParamsFromEventTargetAttributes(this.eventTarget);\n } else {\n return {};\n }\n }\n }, {\n key: \"getParamsFromEventTargetAttributes\",\n value: function getParamsFromEventTargetAttributes(eventTarget) {\n var params = {};\n var pattern = new RegExp(\"^data-\".concat(this.identifier, \"-(.+)-param$\"));\n var attributes = Array.from(eventTarget.attributes);\n attributes.forEach(function (_ref) {\n var name = _ref.name,\n value = _ref.value;\n var match = name.match(pattern);\n var key = match && match[1];\n\n if (key) {\n Object.assign(params, _defineProperty({}, camelize(key), typecast(value)));\n }\n });\n return params;\n }\n }, {\n key: \"eventTargetName\",\n get: function get() {\n return stringifyEventTarget(this.eventTarget);\n }\n }], [{\n key: \"forToken\",\n value: function forToken(token) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content));\n }\n }]);\n\n return Action;\n}();\n\nvar defaultEventNames = {\n \"a\": function a(e) {\n return \"click\";\n },\n \"button\": function button(e) {\n return \"click\";\n },\n \"form\": function form(e) {\n return \"submit\";\n },\n \"details\": function details(e) {\n return \"toggle\";\n },\n \"input\": function input(e) {\n return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\";\n },\n \"select\": function select(e) {\n return \"change\";\n },\n \"textarea\": function textarea(e) {\n return \"input\";\n }\n};\n\nfunction 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}\n\nfunction typecast(value) {\n try {\n return JSON.parse(value);\n } catch (o_O) {\n return value;\n }\n}\n\nvar Binding = /*#__PURE__*/function () {\n function Binding(context, action) {\n _classCallCheck(this, Binding);\n\n this.context = context;\n this.action = action;\n }\n\n _createClass(Binding, [{\n key: \"index\",\n get: function get() {\n return this.action.index;\n }\n }, {\n key: \"eventTarget\",\n get: function get() {\n return this.action.eventTarget;\n }\n }, {\n key: \"eventOptions\",\n get: function get() {\n return this.action.eventOptions;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.context.identifier;\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n }\n }, {\n key: \"eventName\",\n get: function get() {\n return this.action.eventName;\n }\n }, {\n key: \"method\",\n get: function get() {\n var method = this.controller[this.methodName];\n\n if (typeof method == \"function\") {\n return method;\n }\n\n throw new Error(\"Action \\\"\".concat(this.action, \"\\\" references undefined method \\\"\").concat(this.methodName, \"\\\"\"));\n }\n }, {\n key: \"invokeWithEvent\",\n value: function invokeWithEvent(event) {\n var target = event.target,\n currentTarget = event.currentTarget;\n\n try {\n var params = this.action.params;\n var actionEvent = Object.assign(event, {\n params: params\n });\n this.method.call(this.controller, actionEvent);\n this.context.logDebugActivity(this.methodName, {\n event: event,\n target: target,\n currentTarget: currentTarget,\n action: this.methodName\n });\n } catch (error) {\n var identifier = this.identifier,\n controller = this.controller,\n element = this.element,\n index = this.index;\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 \\\"\".concat(this.action, \"\\\"\"), detail);\n }\n }\n }, {\n key: \"willBeInvokedByEvent\",\n value: function willBeInvokedByEvent(event) {\n var eventTarget = event.target;\n\n if (this.element === eventTarget) {\n return true;\n } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n } else {\n return this.scope.containsElement(this.action.element);\n }\n }\n }, {\n key: \"controller\",\n get: function get() {\n return this.context.controller;\n }\n }, {\n key: \"methodName\",\n get: function get() {\n return this.action.methodName;\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"scope\",\n get: function get() {\n return this.context.scope;\n }\n }]);\n\n return Binding;\n}();\n\nvar ElementObserver = /*#__PURE__*/function () {\n function ElementObserver(element, delegate) {\n var _this = this;\n\n _classCallCheck(this, ElementObserver);\n\n this.mutationObserverInit = {\n attributes: true,\n childList: true,\n subtree: true\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 _createClass(ElementObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.refresh();\n }\n }\n }, {\n key: \"pause\",\n value: function pause(callback) {\n if (this.started) {\n this.mutationObserver.disconnect();\n this.started = false;\n }\n\n callback();\n\n if (!this.started) {\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.started = true;\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n\n for (var _i = 0, _Array$from = Array.from(this.elements); _i < _Array$from.length; _i++) {\n var element = _Array$from[_i];\n\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n\n for (var _i2 = 0, _Array$from2 = Array.from(matches); _i2 < _Array$from2.length; _i2++) {\n var _element = _Array$from2[_i2];\n this.addElement(_element);\n }\n }\n }\n }, {\n key: \"processMutations\",\n value: function processMutations(mutations) {\n if (this.started) {\n var _iterator2 = _createForOfIteratorHelper(mutations),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var mutation = _step2.value;\n this.processMutation(mutation);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n }\n }, {\n key: \"processMutation\",\n value: function processMutation(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 key: \"processAttributeChange\",\n value: function processAttributeChange(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 key: \"processRemovedNodes\",\n value: function processRemovedNodes(nodes) {\n for (var _i3 = 0, _Array$from3 = Array.from(nodes); _i3 < _Array$from3.length; _i3++) {\n var node = _Array$from3[_i3];\n var element = this.elementFromNode(node);\n\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n }\n }, {\n key: \"processAddedNodes\",\n value: function processAddedNodes(nodes) {\n for (var _i4 = 0, _Array$from4 = Array.from(nodes); _i4 < _Array$from4.length; _i4++) {\n var node = _Array$from4[_i4];\n var element = this.elementFromNode(node);\n\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }\n }, {\n key: \"matchElement\",\n value: function matchElement(element) {\n return this.delegate.matchElement(element);\n }\n }, {\n key: \"matchElementsInTree\",\n value: function matchElementsInTree() {\n var tree = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.element;\n return this.delegate.matchElementsInTree(tree);\n }\n }, {\n key: \"processTree\",\n value: function processTree(tree, processor) {\n var _iterator3 = _createForOfIteratorHelper(this.matchElementsInTree(tree)),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var element = _step3.value;\n processor.call(this, element);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n }\n }, {\n key: \"elementFromNode\",\n value: function elementFromNode(node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n }\n }, {\n key: \"elementIsActive\",\n value: function elementIsActive(element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n }\n }, {\n key: \"addElement\",\n value: function addElement(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 key: \"removeElement\",\n value: function removeElement(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\n return ElementObserver;\n}();\n\nvar AttributeObserver = /*#__PURE__*/function () {\n function AttributeObserver(element, attributeName, delegate) {\n _classCallCheck(this, AttributeObserver);\n\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n\n _createClass(AttributeObserver, [{\n key: \"element\",\n get: function get() {\n return this.elementObserver.element;\n }\n }, {\n key: \"selector\",\n get: function get() {\n return \"[\".concat(this.attributeName, \"]\");\n }\n }, {\n key: \"start\",\n value: function start() {\n this.elementObserver.start();\n }\n }, {\n key: \"pause\",\n value: function pause(callback) {\n this.elementObserver.pause(callback);\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.elementObserver.stop();\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n this.elementObserver.refresh();\n }\n }, {\n key: \"started\",\n get: function get() {\n return this.elementObserver.started;\n }\n }, {\n key: \"matchElement\",\n value: function matchElement(element) {\n return element.hasAttribute(this.attributeName);\n }\n }, {\n key: \"matchElementsInTree\",\n value: function matchElementsInTree(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 key: \"elementMatched\",\n value: function elementMatched(element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n }\n }, {\n key: \"elementUnmatched\",\n value: function elementUnmatched(element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n }\n }, {\n key: \"elementAttributeChanged\",\n value: function elementAttributeChanged(element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n }\n }]);\n\n return AttributeObserver;\n}();\n\nvar StringMapObserver = /*#__PURE__*/function () {\n function StringMapObserver(element, delegate) {\n var _this2 = this;\n\n _classCallCheck(this, StringMapObserver);\n\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this2.processMutations(mutations);\n });\n }\n\n _createClass(StringMapObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n attributeOldValue: true\n });\n this.refresh();\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n if (this.started) {\n var _iterator4 = _createForOfIteratorHelper(this.knownAttributeNames),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var attributeName = _step4.value;\n this.refreshAttribute(attributeName, null);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n }\n }, {\n key: \"processMutations\",\n value: function processMutations(mutations) {\n if (this.started) {\n var _iterator5 = _createForOfIteratorHelper(mutations),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var mutation = _step5.value;\n this.processMutation(mutation);\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n }\n }\n }, {\n key: \"processMutation\",\n value: function processMutation(mutation) {\n var attributeName = mutation.attributeName;\n\n if (attributeName) {\n this.refreshAttribute(attributeName, mutation.oldValue);\n }\n }\n }, {\n key: \"refreshAttribute\",\n value: function refreshAttribute(attributeName, oldValue) {\n var key = this.delegate.getStringMapKeyForAttribute(attributeName);\n\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n\n var value = this.element.getAttribute(attributeName);\n\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key, oldValue);\n }\n\n if (value == null) {\n var _oldValue = this.stringMap.get(attributeName);\n\n this.stringMap.delete(attributeName);\n if (_oldValue) this.stringMapKeyRemoved(key, attributeName, _oldValue);\n } else {\n this.stringMap.set(attributeName, value);\n }\n }\n }\n }, {\n key: \"stringMapKeyAdded\",\n value: function stringMapKeyAdded(key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n }\n }, {\n key: \"stringMapValueChanged\",\n value: function stringMapValueChanged(value, key, oldValue) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key, oldValue);\n }\n }\n }, {\n key: \"stringMapKeyRemoved\",\n value: function stringMapKeyRemoved(key, attributeName, oldValue) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n }\n }, {\n key: \"knownAttributeNames\",\n get: function get() {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n }\n }, {\n key: \"currentAttributeNames\",\n get: function get() {\n return Array.from(this.element.attributes).map(function (attribute) {\n return attribute.name;\n });\n }\n }, {\n key: \"recordedAttributeNames\",\n get: function get() {\n return Array.from(this.stringMap.keys());\n }\n }]);\n\n return StringMapObserver;\n}();\n\nfunction _add(map, key, value) {\n fetch(map, key).add(value);\n}\n\nfunction del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\n\nfunction 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}\n\nfunction prune(map, key) {\n var values = map.get(key);\n\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}\n\nvar Multimap = /*#__PURE__*/function () {\n function Multimap() {\n _classCallCheck(this, Multimap);\n\n this.valuesByKey = new Map();\n }\n\n _createClass(Multimap, [{\n key: \"keys\",\n get: function get() {\n return Array.from(this.valuesByKey.keys());\n }\n }, {\n key: \"values\",\n get: function get() {\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 }, {\n key: \"size\",\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) {\n return size + set.size;\n }, 0);\n }\n }, {\n key: \"add\",\n value: function add(key, value) {\n _add(this.valuesByKey, key, value);\n }\n }, {\n key: \"delete\",\n value: function _delete(key, value) {\n del(this.valuesByKey, key, value);\n }\n }, {\n key: \"has\",\n value: function has(key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n }\n }, {\n key: \"hasKey\",\n value: function hasKey(key) {\n return this.valuesByKey.has(key);\n }\n }, {\n key: \"hasValue\",\n value: function hasValue(value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n }\n }, {\n key: \"getValuesForKey\",\n value: function getValuesForKey(key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n }\n }, {\n key: \"getKeysForValue\",\n value: function getKeysForValue(value) {\n return Array.from(this.valuesByKey).filter(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n key = _ref3[0],\n values = _ref3[1];\n\n return values.has(value);\n }).map(function (_ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n key = _ref5[0],\n values = _ref5[1];\n\n return key;\n });\n }\n }]);\n\n return Multimap;\n}();\n\nvar IndexedMultimap = /*#__PURE__*/function (_Multimap) {\n _inherits(IndexedMultimap, _Multimap);\n\n var _super = _createSuper(IndexedMultimap);\n\n function IndexedMultimap() {\n var _this3;\n\n _classCallCheck(this, IndexedMultimap);\n\n _this3 = _super.call(this);\n _this3.keysByValue = new Map();\n return _this3;\n }\n\n _createClass(IndexedMultimap, [{\n key: \"values\",\n get: function get() {\n return Array.from(this.keysByValue.keys());\n }\n }, {\n key: \"add\",\n value: function add(key, value) {\n _get(_getPrototypeOf(IndexedMultimap.prototype), \"add\", this).call(this, key, value);\n\n _add(this.keysByValue, value, key);\n }\n }, {\n key: \"delete\",\n value: function _delete(key, value) {\n _get(_getPrototypeOf(IndexedMultimap.prototype), \"delete\", this).call(this, key, value);\n\n del(this.keysByValue, value, key);\n }\n }, {\n key: \"hasValue\",\n value: function hasValue(value) {\n return this.keysByValue.has(value);\n }\n }, {\n key: \"getKeysForValue\",\n value: function getKeysForValue(value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n }\n }]);\n\n return IndexedMultimap;\n}(Multimap);\n\nvar TokenListObserver = /*#__PURE__*/function () {\n function TokenListObserver(element, attributeName, delegate) {\n _classCallCheck(this, TokenListObserver);\n\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n\n _createClass(TokenListObserver, [{\n key: \"started\",\n get: function get() {\n return this.attributeObserver.started;\n }\n }, {\n key: \"start\",\n value: function start() {\n this.attributeObserver.start();\n }\n }, {\n key: \"pause\",\n value: function pause(callback) {\n this.attributeObserver.pause(callback);\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.attributeObserver.stop();\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n this.attributeObserver.refresh();\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.attributeObserver.element;\n }\n }, {\n key: \"attributeName\",\n get: function get() {\n return this.attributeObserver.attributeName;\n }\n }, {\n key: \"elementMatchedAttribute\",\n value: function elementMatchedAttribute(element) {\n this.tokensMatched(this.readTokensForElement(element));\n }\n }, {\n key: \"elementAttributeValueChanged\",\n value: function elementAttributeValueChanged(element) {\n var _this$refreshTokensFo = this.refreshTokensForElement(element),\n _this$refreshTokensFo2 = _slicedToArray(_this$refreshTokensFo, 2),\n unmatchedTokens = _this$refreshTokensFo2[0],\n matchedTokens = _this$refreshTokensFo2[1];\n\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n }\n }, {\n key: \"elementUnmatchedAttribute\",\n value: function elementUnmatchedAttribute(element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n }\n }, {\n key: \"tokensMatched\",\n value: function tokensMatched(tokens) {\n var _this4 = this;\n\n tokens.forEach(function (token) {\n return _this4.tokenMatched(token);\n });\n }\n }, {\n key: \"tokensUnmatched\",\n value: function tokensUnmatched(tokens) {\n var _this5 = this;\n\n tokens.forEach(function (token) {\n return _this5.tokenUnmatched(token);\n });\n }\n }, {\n key: \"tokenMatched\",\n value: function tokenMatched(token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n }\n }, {\n key: \"tokenUnmatched\",\n value: function tokenUnmatched(token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n }\n }, {\n key: \"refreshTokensForElement\",\n value: function refreshTokensForElement(element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_ref6) {\n var _ref7 = _slicedToArray(_ref6, 2),\n previousToken = _ref7[0],\n currentToken = _ref7[1];\n\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 key: \"readTokensForElement\",\n value: function readTokensForElement(element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n }\n }]);\n\n return TokenListObserver;\n}();\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}\n\nvar ValueListObserver = /*#__PURE__*/function () {\n function ValueListObserver(element, attributeName, delegate) {\n _classCallCheck(this, ValueListObserver);\n\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 _createClass(ValueListObserver, [{\n key: \"started\",\n get: function get() {\n return this.tokenListObserver.started;\n }\n }, {\n key: \"start\",\n value: function start() {\n this.tokenListObserver.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.tokenListObserver.stop();\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n this.tokenListObserver.refresh();\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.tokenListObserver.element;\n }\n }, {\n key: \"attributeName\",\n get: function get() {\n return this.tokenListObserver.attributeName;\n }\n }, {\n key: \"tokenMatched\",\n value: function tokenMatched(token) {\n var element = token.element;\n\n var _this$fetchParseResul = this.fetchParseResultForToken(token),\n value = _this$fetchParseResul.value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n }\n }, {\n key: \"tokenUnmatched\",\n value: function tokenUnmatched(token) {\n var element = token.element;\n\n var _this$fetchParseResul2 = this.fetchParseResultForToken(token),\n value = _this$fetchParseResul2.value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n }\n }, {\n key: \"fetchParseResultForToken\",\n value: function fetchParseResultForToken(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 key: \"fetchValuesByTokenForElement\",\n value: function fetchValuesByTokenForElement(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 key: \"parseToken\",\n value: function parseToken(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\n return ValueListObserver;\n}();\n\nvar BindingObserver = /*#__PURE__*/function () {\n function BindingObserver(context, delegate) {\n _classCallCheck(this, BindingObserver);\n\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n\n _createClass(BindingObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.context.element;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.context.identifier;\n }\n }, {\n key: \"actionAttribute\",\n get: function get() {\n return this.schema.actionAttribute;\n }\n }, {\n key: \"schema\",\n get: function get() {\n return this.context.schema;\n }\n }, {\n key: \"bindings\",\n get: function get() {\n return Array.from(this.bindingsByAction.values());\n }\n }, {\n key: \"connectAction\",\n value: function connectAction(action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n }\n }, {\n key: \"disconnectAction\",\n value: function disconnectAction(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 key: \"disconnectAllActions\",\n value: function disconnectAllActions() {\n var _this6 = this;\n\n this.bindings.forEach(function (binding) {\n return _this6.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n }\n }, {\n key: \"parseValueForToken\",\n value: function parseValueForToken(token) {\n var action = Action.forToken(token);\n\n if (action.identifier == this.identifier) {\n return action;\n }\n }\n }, {\n key: \"elementMatchedValue\",\n value: function elementMatchedValue(element, action) {\n this.connectAction(action);\n }\n }, {\n key: \"elementUnmatchedValue\",\n value: function elementUnmatchedValue(element, action) {\n this.disconnectAction(action);\n }\n }]);\n\n return BindingObserver;\n}();\n\nvar ValueObserver = /*#__PURE__*/function () {\n function ValueObserver(context, receiver) {\n _classCallCheck(this, ValueObserver);\n\n this.context = context;\n this.receiver = receiver;\n this.stringMapObserver = new StringMapObserver(this.element, this);\n this.valueDescriptorMap = this.controller.valueDescriptorMap;\n this.invokeChangedCallbacksForDefaultValues();\n }\n\n _createClass(ValueObserver, [{\n key: \"start\",\n value: function start() {\n this.stringMapObserver.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.stringMapObserver.stop();\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.context.element;\n }\n }, {\n key: \"controller\",\n get: function get() {\n return this.context.controller;\n }\n }, {\n key: \"getStringMapKeyForAttribute\",\n value: function getStringMapKeyForAttribute(attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n }\n }, {\n key: \"stringMapKeyAdded\",\n value: function stringMapKeyAdded(key, attributeName) {\n var descriptor = this.valueDescriptorMap[attributeName];\n\n if (!this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), descriptor.writer(descriptor.defaultValue));\n }\n }\n }, {\n key: \"stringMapValueChanged\",\n value: function stringMapValueChanged(value, name, oldValue) {\n var descriptor = this.valueDescriptorNameMap[name];\n if (value === null) return;\n\n if (oldValue === null) {\n oldValue = descriptor.writer(descriptor.defaultValue);\n }\n\n this.invokeChangedCallback(name, value, oldValue);\n }\n }, {\n key: \"stringMapKeyRemoved\",\n value: function stringMapKeyRemoved(key, attributeName, oldValue) {\n var descriptor = this.valueDescriptorNameMap[key];\n\n if (this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), oldValue);\n } else {\n this.invokeChangedCallback(key, descriptor.writer(descriptor.defaultValue), oldValue);\n }\n }\n }, {\n key: \"invokeChangedCallbacksForDefaultValues\",\n value: function invokeChangedCallbacksForDefaultValues() {\n var _iterator6 = _createForOfIteratorHelper(this.valueDescriptors),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var _ref9 = _step6.value;\n var key = _ref9.key;\n var name = _ref9.name;\n var defaultValue = _ref9.defaultValue;\n var writer = _ref9.writer;\n\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallback(name, writer(defaultValue), undefined);\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n }\n }, {\n key: \"invokeChangedCallback\",\n value: function invokeChangedCallback(name, rawValue, rawOldValue) {\n var changedMethodName = \"\".concat(name, \"Changed\");\n var changedMethod = this.receiver[changedMethodName];\n\n if (typeof changedMethod == \"function\") {\n var descriptor = this.valueDescriptorNameMap[name];\n var value = descriptor.reader(rawValue);\n var oldValue = rawOldValue;\n\n if (rawOldValue) {\n oldValue = descriptor.reader(rawOldValue);\n }\n\n changedMethod.call(this.receiver, value, oldValue);\n }\n }\n }, {\n key: \"valueDescriptors\",\n get: function get() {\n var valueDescriptorMap = this.valueDescriptorMap;\n return Object.keys(valueDescriptorMap).map(function (key) {\n return valueDescriptorMap[key];\n });\n }\n }, {\n key: \"valueDescriptorNameMap\",\n get: function get() {\n var _this7 = this;\n\n var descriptors = {};\n Object.keys(this.valueDescriptorMap).forEach(function (key) {\n var descriptor = _this7.valueDescriptorMap[key];\n descriptors[descriptor.name] = descriptor;\n });\n return descriptors;\n }\n }, {\n key: \"hasValue\",\n value: function hasValue(attributeName) {\n var descriptor = this.valueDescriptorNameMap[attributeName];\n var hasMethodName = \"has\".concat(capitalize(descriptor.name));\n return this.receiver[hasMethodName];\n }\n }]);\n\n return ValueObserver;\n}();\n\nvar TargetObserver = /*#__PURE__*/function () {\n function TargetObserver(context, delegate) {\n _classCallCheck(this, TargetObserver);\n\n this.context = context;\n this.delegate = delegate;\n this.targetsByName = new Multimap();\n }\n\n _createClass(TargetObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.tokenListObserver) {\n this.tokenListObserver = new TokenListObserver(this.element, this.attributeName, this);\n this.tokenListObserver.start();\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.tokenListObserver) {\n this.disconnectAllTargets();\n this.tokenListObserver.stop();\n delete this.tokenListObserver;\n }\n }\n }, {\n key: \"tokenMatched\",\n value: function tokenMatched(_ref10) {\n var element = _ref10.element,\n name = _ref10.content;\n\n if (this.scope.containsElement(element)) {\n this.connectTarget(element, name);\n }\n }\n }, {\n key: \"tokenUnmatched\",\n value: function tokenUnmatched(_ref11) {\n var element = _ref11.element,\n name = _ref11.content;\n this.disconnectTarget(element, name);\n }\n }, {\n key: \"connectTarget\",\n value: function connectTarget(element, name) {\n var _this8 = this;\n\n var _a;\n\n if (!this.targetsByName.has(name, element)) {\n this.targetsByName.add(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(function () {\n return _this8.delegate.targetConnected(element, name);\n });\n }\n }\n }, {\n key: \"disconnectTarget\",\n value: function disconnectTarget(element, name) {\n var _this9 = this;\n\n var _a;\n\n if (this.targetsByName.has(name, element)) {\n this.targetsByName.delete(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(function () {\n return _this9.delegate.targetDisconnected(element, name);\n });\n }\n }\n }, {\n key: \"disconnectAllTargets\",\n value: function disconnectAllTargets() {\n var _iterator7 = _createForOfIteratorHelper(this.targetsByName.keys),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var name = _step7.value;\n\n var _iterator8 = _createForOfIteratorHelper(this.targetsByName.getValuesForKey(name)),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var element = _step8.value;\n this.disconnectTarget(element, name);\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n }\n }, {\n key: \"attributeName\",\n get: function get() {\n return \"data-\".concat(this.context.identifier, \"-target\");\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.context.element;\n }\n }, {\n key: \"scope\",\n get: function get() {\n return this.context.scope;\n }\n }]);\n\n return TargetObserver;\n}();\n\nvar Context = /*#__PURE__*/function () {\n function Context(module, scope) {\n var _this10 = this;\n\n _classCallCheck(this, Context);\n\n this.logDebugActivity = function (functionName) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var identifier = _this10.identifier,\n controller = _this10.controller,\n element = _this10.element;\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n\n _this10.application.logDebugActivity(_this10.identifier, functionName, detail);\n };\n\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n this.valueObserver = new ValueObserver(this, this.controller);\n this.targetObserver = new TargetObserver(this, this);\n\n try {\n this.controller.initialize();\n this.logDebugActivity(\"initialize\");\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n\n _createClass(Context, [{\n key: \"connect\",\n value: function connect() {\n this.bindingObserver.start();\n this.valueObserver.start();\n this.targetObserver.start();\n\n try {\n this.controller.connect();\n this.logDebugActivity(\"connect\");\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n try {\n this.controller.disconnect();\n this.logDebugActivity(\"disconnect\");\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n\n this.targetObserver.stop();\n this.valueObserver.stop();\n this.bindingObserver.stop();\n }\n }, {\n key: \"application\",\n get: function get() {\n return this.module.application;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.module.identifier;\n }\n }, {\n key: \"schema\",\n get: function get() {\n return this.application.schema;\n }\n }, {\n key: \"dispatcher\",\n get: function get() {\n return this.application.dispatcher;\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"parentElement\",\n get: function get() {\n return this.element.parentElement;\n }\n }, {\n key: \"handleError\",\n value: function handleError(error, message) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var identifier = this.identifier,\n controller = this.controller,\n element = this.element;\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \".concat(message), detail);\n }\n }, {\n key: \"targetConnected\",\n value: function targetConnected(element, name) {\n this.invokeControllerMethod(\"\".concat(name, \"TargetConnected\"), element);\n }\n }, {\n key: \"targetDisconnected\",\n value: function targetDisconnected(element, name) {\n this.invokeControllerMethod(\"\".concat(name, \"TargetDisconnected\"), element);\n }\n }, {\n key: \"invokeControllerMethod\",\n value: function invokeControllerMethod(methodName) {\n var controller = this.controller;\n\n if (typeof controller[methodName] == \"function\") {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n controller[methodName].apply(controller, args);\n }\n }\n }]);\n\n return Context;\n}();\n\nfunction readInheritableStaticArrayValues(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (values, constructor) {\n getOwnStaticArrayValues(constructor, propertyName).forEach(function (name) {\n return values.add(name);\n });\n return values;\n }, new Set()));\n}\n\nfunction readInheritableStaticObjectPairs(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce(function (pairs, constructor) {\n pairs.push.apply(pairs, _toConsumableArray(getOwnStaticObjectPairs(constructor, propertyName)));\n return pairs;\n }, []);\n}\n\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n\n return ancestors.reverse();\n}\n\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n var definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\n\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n var definition = constructor[propertyName];\n return definition ? Object.keys(definition).map(function (key) {\n return [key, definition[key]];\n }) : [];\n}\n\nfunction bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\n}\n\nfunction shadow(constructor, properties) {\n var shadowConstructor = extend(constructor);\n var shadowProperties = getShadowProperties(constructor.prototype, properties);\n Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n return shadowConstructor;\n}\n\nfunction getBlessedProperties(constructor) {\n var blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce(function (blessedProperties, blessing) {\n var properties = blessing(constructor);\n\n for (var key in properties) {\n var descriptor = blessedProperties[key] || {};\n blessedProperties[key] = Object.assign(descriptor, properties[key]);\n }\n\n return blessedProperties;\n }, {});\n}\n\nfunction getShadowProperties(prototype, properties) {\n return getOwnKeys(properties).reduce(function (shadowProperties, key) {\n var descriptor = getShadowedDescriptor(prototype, properties, key);\n\n if (descriptor) {\n Object.assign(shadowProperties, _defineProperty({}, key, descriptor));\n }\n\n return shadowProperties;\n }, {});\n}\n\nfunction getShadowedDescriptor(prototype, properties, key) {\n var shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n var shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n\n if (!shadowedByValue) {\n var descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n\n if (shadowingDescriptor) {\n descriptor.get = shadowingDescriptor.get || descriptor.get;\n descriptor.set = shadowingDescriptor.set || descriptor.set;\n }\n\n return descriptor;\n }\n}\n\nvar getOwnKeys = function () {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return function (object) {\n return [].concat(_toConsumableArray(Object.getOwnPropertyNames(object)), _toConsumableArray(Object.getOwnPropertySymbols(object)));\n };\n } else {\n return Object.getOwnPropertyNames;\n }\n}();\n\nvar extend = function () {\n function extendWithReflect(constructor) {\n function extended() {\n return Reflect.construct(constructor, arguments, this instanceof extended ? this.constructor : void 0);\n }\n\n extended.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: extended\n }\n });\n Reflect.setPrototypeOf(extended, constructor);\n return extended;\n }\n\n function testReflectExtension() {\n var a = function a() {\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 /*#__PURE__*/function (_constructor) {\n _inherits(extended, _constructor);\n\n var _super2 = _createSuper(extended);\n\n function extended() {\n _classCallCheck(this, extended);\n\n return _super2.apply(this, arguments);\n }\n\n return extended;\n }(constructor);\n };\n }\n}();\n\nfunction blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor)\n };\n}\n\nvar Module = /*#__PURE__*/function () {\n function Module(application, definition) {\n _classCallCheck(this, Module);\n\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n\n _createClass(Module, [{\n key: \"identifier\",\n get: function get() {\n return this.definition.identifier;\n }\n }, {\n key: \"controllerConstructor\",\n get: function get() {\n return this.definition.controllerConstructor;\n }\n }, {\n key: \"contexts\",\n get: function get() {\n return Array.from(this.connectedContexts);\n }\n }, {\n key: \"connectContextForScope\",\n value: function connectContextForScope(scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n }\n }, {\n key: \"disconnectContextForScope\",\n value: function disconnectContextForScope(scope) {\n var context = this.contextsByScope.get(scope);\n\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n }\n }, {\n key: \"fetchContextForScope\",\n value: function fetchContextForScope(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\n return Module;\n}();\n\nvar ClassMap = /*#__PURE__*/function () {\n function ClassMap(scope) {\n _classCallCheck(this, ClassMap);\n\n this.scope = scope;\n }\n\n _createClass(ClassMap, [{\n key: \"has\",\n value: function has(name) {\n return this.data.has(this.getDataKey(name));\n }\n }, {\n key: \"get\",\n value: function get(name) {\n return this.getAll(name)[0];\n }\n }, {\n key: \"getAll\",\n value: function getAll(name) {\n var tokenString = this.data.get(this.getDataKey(name)) || \"\";\n return tokenize(tokenString);\n }\n }, {\n key: \"getAttributeName\",\n value: function getAttributeName(name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n }\n }, {\n key: \"getDataKey\",\n value: function getDataKey(name) {\n return \"\".concat(name, \"-class\");\n }\n }, {\n key: \"data\",\n get: function get() {\n return this.scope.data;\n }\n }]);\n\n return ClassMap;\n}();\n\nvar DataMap = /*#__PURE__*/function () {\n function DataMap(scope) {\n _classCallCheck(this, DataMap);\n\n this.scope = scope;\n }\n\n _createClass(DataMap, [{\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.scope.identifier;\n }\n }, {\n key: \"get\",\n value: function get(key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n }\n }, {\n key: \"set\",\n value: function set(key, value) {\n var name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n }\n }, {\n key: \"has\",\n value: function has(key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n if (this.has(key)) {\n var name = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name);\n return true;\n } else {\n return false;\n }\n }\n }, {\n key: \"getAttributeNameForKey\",\n value: function getAttributeNameForKey(key) {\n return \"data-\".concat(this.identifier, \"-\").concat(dasherize(key));\n }\n }]);\n\n return DataMap;\n}();\n\nvar Guide = /*#__PURE__*/function () {\n function Guide(logger) {\n _classCallCheck(this, Guide);\n\n this.warnedKeysByObject = new WeakMap();\n this.logger = logger;\n }\n\n _createClass(Guide, [{\n key: \"warn\",\n value: function warn(object, key, message) {\n var warnedKeys = this.warnedKeysByObject.get(object);\n\n if (!warnedKeys) {\n warnedKeys = new Set();\n this.warnedKeysByObject.set(object, warnedKeys);\n }\n\n if (!warnedKeys.has(key)) {\n warnedKeys.add(key);\n this.logger.warn(message, object);\n }\n }\n }]);\n\n return Guide;\n}();\n\nfunction attributeValueContainsToken(attributeName, token) {\n return \"[\".concat(attributeName, \"~=\\\"\").concat(token, \"\\\"]\");\n}\n\nvar TargetSet = /*#__PURE__*/function () {\n function TargetSet(scope) {\n _classCallCheck(this, TargetSet);\n\n this.scope = scope;\n }\n\n _createClass(TargetSet, [{\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.scope.identifier;\n }\n }, {\n key: \"schema\",\n get: function get() {\n return this.scope.schema;\n }\n }, {\n key: \"has\",\n value: function has(targetName) {\n return this.find(targetName) != null;\n }\n }, {\n key: \"find\",\n value: function find() {\n var _this11 = this;\n\n for (var _len2 = arguments.length, targetNames = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n targetNames[_key2] = arguments[_key2];\n }\n\n return targetNames.reduce(function (target, targetName) {\n return target || _this11.findTarget(targetName) || _this11.findLegacyTarget(targetName);\n }, undefined);\n }\n }, {\n key: \"findAll\",\n value: function findAll() {\n var _this12 = this;\n\n for (var _len3 = arguments.length, targetNames = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n targetNames[_key3] = arguments[_key3];\n }\n\n return targetNames.reduce(function (targets, targetName) {\n return [].concat(_toConsumableArray(targets), _toConsumableArray(_this12.findAllTargets(targetName)), _toConsumableArray(_this12.findAllLegacyTargets(targetName)));\n }, []);\n }\n }, {\n key: \"findTarget\",\n value: function findTarget(targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n }\n }, {\n key: \"findAllTargets\",\n value: function findAllTargets(targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n }\n }, {\n key: \"getSelectorForTargetName\",\n value: function getSelectorForTargetName(targetName) {\n var attributeName = this.schema.targetAttributeForScope(this.identifier);\n return attributeValueContainsToken(attributeName, targetName);\n }\n }, {\n key: \"findLegacyTarget\",\n value: function findLegacyTarget(targetName) {\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n }\n }, {\n key: \"findAllLegacyTargets\",\n value: function findAllLegacyTargets(targetName) {\n var _this13 = this;\n\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map(function (element) {\n return _this13.deprecate(element, targetName);\n });\n }\n }, {\n key: \"getLegacySelectorForTargetName\",\n value: function getLegacySelectorForTargetName(targetName) {\n var targetDescriptor = \"\".concat(this.identifier, \".\").concat(targetName);\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n }\n }, {\n key: \"deprecate\",\n value: function deprecate(element, targetName) {\n if (element) {\n var identifier = this.identifier;\n var attributeName = this.schema.targetAttribute;\n var revisedAttributeName = this.schema.targetAttributeForScope(identifier);\n this.guide.warn(element, \"target:\".concat(targetName), \"Please replace \".concat(attributeName, \"=\\\"\").concat(identifier, \".\").concat(targetName, \"\\\" with \").concat(revisedAttributeName, \"=\\\"\").concat(targetName, \"\\\". \") + \"The \".concat(attributeName, \" attribute is deprecated and will be removed in a future version of Stimulus.\"));\n }\n\n return element;\n }\n }, {\n key: \"guide\",\n get: function get() {\n return this.scope.guide;\n }\n }]);\n\n return TargetSet;\n}();\n\nvar Scope = /*#__PURE__*/function () {\n function Scope(schema, element, identifier, logger) {\n var _this14 = this;\n\n _classCallCheck(this, Scope);\n\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n\n this.containsElement = function (element) {\n return element.closest(_this14.controllerSelector) === _this14.element;\n };\n\n this.schema = schema;\n this.element = element;\n this.identifier = identifier;\n this.guide = new Guide(logger);\n }\n\n _createClass(Scope, [{\n key: \"findElement\",\n value: function findElement(selector) {\n return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n }\n }, {\n key: \"findAllElements\",\n value: function findAllElements(selector) {\n return [].concat(_toConsumableArray(this.element.matches(selector) ? [this.element] : []), _toConsumableArray(this.queryElements(selector).filter(this.containsElement)));\n }\n }, {\n key: \"queryElements\",\n value: function queryElements(selector) {\n return Array.from(this.element.querySelectorAll(selector));\n }\n }, {\n key: \"controllerSelector\",\n get: function get() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n }\n }]);\n\n return Scope;\n}();\n\nvar ScopeObserver = /*#__PURE__*/function () {\n function ScopeObserver(element, schema, delegate) {\n _classCallCheck(this, ScopeObserver);\n\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 _createClass(ScopeObserver, [{\n key: \"start\",\n value: function start() {\n this.valueListObserver.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.valueListObserver.stop();\n }\n }, {\n key: \"controllerAttribute\",\n get: function get() {\n return this.schema.controllerAttribute;\n }\n }, {\n key: \"parseValueForToken\",\n value: function parseValueForToken(token) {\n var element = token.element,\n identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var scope = scopesByIdentifier.get(identifier);\n\n if (!scope) {\n scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n scopesByIdentifier.set(identifier, scope);\n }\n\n return scope;\n }\n }, {\n key: \"elementMatchedValue\",\n value: function elementMatchedValue(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 }, {\n key: \"elementUnmatchedValue\",\n value: function elementUnmatchedValue(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 key: \"fetchScopesByIdentifierForElement\",\n value: function fetchScopesByIdentifierForElement(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\n return ScopeObserver;\n}();\n\nvar Router = /*#__PURE__*/function () {\n function Router(application) {\n _classCallCheck(this, Router);\n\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 _createClass(Router, [{\n key: \"element\",\n get: function get() {\n return this.application.element;\n }\n }, {\n key: \"schema\",\n get: function get() {\n return this.application.schema;\n }\n }, {\n key: \"logger\",\n get: function get() {\n return this.application.logger;\n }\n }, {\n key: \"controllerAttribute\",\n get: function get() {\n return this.schema.controllerAttribute;\n }\n }, {\n key: \"modules\",\n get: function get() {\n return Array.from(this.modulesByIdentifier.values());\n }\n }, {\n key: \"contexts\",\n get: function get() {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n }\n }, {\n key: \"start\",\n value: function start() {\n this.scopeObserver.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.scopeObserver.stop();\n }\n }, {\n key: \"loadDefinition\",\n value: function loadDefinition(definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n }\n }, {\n key: \"unloadIdentifier\",\n value: function unloadIdentifier(identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n this.disconnectModule(module);\n }\n }\n }, {\n key: \"getContextForElementAndIdentifier\",\n value: function getContextForElementAndIdentifier(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 }\n }, {\n key: \"handleError\",\n value: function handleError(error, message, detail) {\n this.application.handleError(error, message, detail);\n }\n }, {\n key: \"createScopeForElementAndIdentifier\",\n value: function createScopeForElementAndIdentifier(element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n }\n }, {\n key: \"scopeConnected\",\n value: function scopeConnected(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 }, {\n key: \"scopeDisconnected\",\n value: function scopeDisconnected(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 }\n }, {\n key: \"connectModule\",\n value: function connectModule(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 key: \"disconnectModule\",\n value: function disconnectModule(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\n return Router;\n}();\n\nvar defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\",\n targetAttributeForScope: function targetAttributeForScope(identifier) {\n return \"data-\".concat(identifier, \"-target\");\n }\n};\n\nvar Application = /*#__PURE__*/function () {\n function Application() {\n var _this15 = this;\n\n var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.documentElement;\n var schema = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultSchema;\n\n _classCallCheck(this, Application);\n\n this.logger = console;\n this.debug = false;\n\n this.logDebugActivity = function (identifier, functionName) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (_this15.debug) {\n _this15.logFormattedMessage(identifier, functionName, detail);\n }\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 _createClass(Application, [{\n key: \"start\",\n value: function () {\n var _start = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return domReady();\n\n case 2:\n this.logDebugActivity(\"application\", \"starting\");\n this.dispatcher.start();\n this.router.start();\n this.logDebugActivity(\"application\", \"start\");\n\n case 6:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function start() {\n return _start.apply(this, arguments);\n }\n\n return start;\n }()\n }, {\n key: \"stop\",\n value: function stop() {\n this.logDebugActivity(\"application\", \"stopping\");\n this.dispatcher.stop();\n this.router.stop();\n this.logDebugActivity(\"application\", \"stop\");\n }\n }, {\n key: \"register\",\n value: function register(identifier, controllerConstructor) {\n if (controllerConstructor.shouldLoad) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n }\n }\n }, {\n key: \"load\",\n value: function load(head) {\n var _this16 = this;\n\n for (var _len4 = arguments.length, rest = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n rest[_key4 - 1] = arguments[_key4];\n }\n\n var definitions = Array.isArray(head) ? head : [head].concat(rest);\n definitions.forEach(function (definition) {\n return _this16.router.loadDefinition(definition);\n });\n }\n }, {\n key: \"unload\",\n value: function unload(head) {\n var _this17 = this;\n\n for (var _len5 = arguments.length, rest = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n rest[_key5 - 1] = arguments[_key5];\n }\n\n var identifiers = Array.isArray(head) ? head : [head].concat(rest);\n identifiers.forEach(function (identifier) {\n return _this17.router.unloadIdentifier(identifier);\n });\n }\n }, {\n key: \"controllers\",\n get: function get() {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n }\n }, {\n key: \"getControllerForElementAndIdentifier\",\n value: function getControllerForElementAndIdentifier(element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }\n }, {\n key: \"handleError\",\n value: function handleError(error, message, detail) {\n var _a;\n\n this.logger.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n (_a = window.onerror) === null || _a === void 0 ? void 0 : _a.call(window, message, \"\", 0, 0, error);\n }\n }, {\n key: \"logFormattedMessage\",\n value: function logFormattedMessage(identifier, functionName) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n detail = Object.assign({\n application: this\n }, detail);\n this.logger.groupCollapsed(\"\".concat(identifier, \" #\").concat(functionName));\n this.logger.log(\"details:\", Object.assign({}, detail));\n this.logger.groupEnd();\n }\n }], [{\n key: \"start\",\n value: function start(element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n }\n }]);\n\n return Application;\n}();\n\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", function () {\n return resolve();\n });\n } else {\n resolve();\n }\n });\n}\n\nfunction ClassPropertiesBlessing(constructor) {\n var classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce(function (properties, classDefinition) {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\n\nfunction propertiesForClassDefinition(key) {\n var _ref12;\n\n return _ref12 = {}, _defineProperty(_ref12, \"\".concat(key, \"Class\"), {\n get: function get() {\n var classes = this.classes;\n\n if (classes.has(key)) {\n return classes.get(key);\n } else {\n var attribute = classes.getAttributeName(key);\n throw new Error(\"Missing attribute \\\"\".concat(attribute, \"\\\"\"));\n }\n }\n }), _defineProperty(_ref12, \"\".concat(key, \"Classes\"), {\n get: function get() {\n return this.classes.getAll(key);\n }\n }), _defineProperty(_ref12, \"has\".concat(capitalize(key), \"Class\"), {\n get: function get() {\n return this.classes.has(key);\n }\n }), _ref12;\n}\n\nfunction TargetPropertiesBlessing(constructor) {\n var targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce(function (properties, targetDefinition) {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\n\nfunction propertiesForTargetDefinition(name) {\n var _ref13;\n\n return _ref13 = {}, _defineProperty(_ref13, \"\".concat(name, \"Target\"), {\n get: function get() {\n var target = this.targets.find(name);\n\n if (target) {\n return target;\n } else {\n throw new Error(\"Missing target element \\\"\".concat(name, \"\\\" for \\\"\").concat(this.identifier, \"\\\" controller\"));\n }\n }\n }), _defineProperty(_ref13, \"\".concat(name, \"Targets\"), {\n get: function get() {\n return this.targets.findAll(name);\n }\n }), _defineProperty(_ref13, \"has\".concat(capitalize(name), \"Target\"), {\n get: function get() {\n return this.targets.has(name);\n }\n }), _ref13;\n}\n\nfunction ValuePropertiesBlessing(constructor) {\n var valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n var propertyDescriptorMap = {\n valueDescriptorMap: {\n get: function get() {\n var _this18 = this;\n\n return valueDefinitionPairs.reduce(function (result, valueDefinitionPair) {\n var valueDescriptor = parseValueDefinitionPair(valueDefinitionPair);\n\n var attributeName = _this18.data.getAttributeNameForKey(valueDescriptor.key);\n\n return Object.assign(result, _defineProperty({}, attributeName, valueDescriptor));\n }, {});\n }\n }\n };\n return valueDefinitionPairs.reduce(function (properties, valueDefinitionPair) {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\n\nfunction propertiesForValueDefinitionPair(valueDefinitionPair) {\n var _ref14;\n\n var definition = parseValueDefinitionPair(valueDefinitionPair);\n var key = definition.key,\n name = definition.name,\n read = definition.reader,\n write = definition.writer;\n return _ref14 = {}, _defineProperty(_ref14, name, {\n get: function get() {\n var value = this.data.get(key);\n\n if (value !== null) {\n return read(value);\n } else {\n return definition.defaultValue;\n }\n },\n set: function set(value) {\n if (value === undefined) {\n this.data.delete(key);\n } else {\n this.data.set(key, write(value));\n }\n }\n }), _defineProperty(_ref14, \"has\".concat(capitalize(name)), {\n get: function get() {\n return this.data.has(key) || definition.hasCustomDefaultValue;\n }\n }), _ref14;\n}\n\nfunction parseValueDefinitionPair(_ref15) {\n var _ref16 = _slicedToArray(_ref15, 2),\n token = _ref16[0],\n typeDefinition = _ref16[1];\n\n return valueDescriptorForTokenAndTypeDefinition(token, typeDefinition);\n}\n\nfunction parseValueTypeConstant(constant) {\n switch (constant) {\n case Array:\n return \"array\";\n\n case Boolean:\n return \"boolean\";\n\n case Number:\n return \"number\";\n\n case Object:\n return \"object\";\n\n case String:\n return \"string\";\n }\n}\n\nfunction parseValueTypeDefault(defaultValue) {\n switch (_typeof(defaultValue)) {\n case \"boolean\":\n return \"boolean\";\n\n case \"number\":\n return \"number\";\n\n case \"string\":\n return \"string\";\n }\n\n if (Array.isArray(defaultValue)) return \"array\";\n if (Object.prototype.toString.call(defaultValue) === \"[object Object]\") return \"object\";\n}\n\nfunction parseValueTypeObject(typeObject) {\n var typeFromObject = parseValueTypeConstant(typeObject.type);\n\n if (typeFromObject) {\n var defaultValueType = parseValueTypeDefault(typeObject.default);\n\n if (typeFromObject !== defaultValueType) {\n throw new Error(\"Type \\\"\".concat(typeFromObject, \"\\\" must match the type of the default value. Given default value: \\\"\").concat(typeObject.default, \"\\\" as \\\"\").concat(defaultValueType, \"\\\"\"));\n }\n\n return typeFromObject;\n }\n}\n\nfunction parseValueTypeDefinition(typeDefinition) {\n var typeFromObject = parseValueTypeObject(typeDefinition);\n var typeFromDefaultValue = parseValueTypeDefault(typeDefinition);\n var typeFromConstant = parseValueTypeConstant(typeDefinition);\n var type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n if (type) return type;\n throw new Error(\"Unknown value type \\\"\".concat(typeDefinition, \"\\\"\"));\n}\n\nfunction defaultValueForDefinition(typeDefinition) {\n var constant = parseValueTypeConstant(typeDefinition);\n if (constant) return defaultValuesByType[constant];\n var defaultValue = typeDefinition.default;\n if (defaultValue !== undefined) return defaultValue;\n return typeDefinition;\n}\n\nfunction valueDescriptorForTokenAndTypeDefinition(token, typeDefinition) {\n var key = \"\".concat(dasherize(token), \"-value\");\n var type = parseValueTypeDefinition(typeDefinition);\n return {\n type: type,\n key: key,\n name: camelize(key),\n\n get defaultValue() {\n return defaultValueForDefinition(typeDefinition);\n },\n\n get hasCustomDefaultValue() {\n return parseValueTypeDefault(typeDefinition) !== undefined;\n },\n\n reader: readers[type],\n writer: writers[type] || writers.default\n };\n}\n\nvar defaultValuesByType = {\n get array() {\n return [];\n },\n\n boolean: false,\n number: 0,\n\n get object() {\n return {};\n },\n\n string: \"\"\n};\nvar readers = {\n array: function array(value) {\n var array = JSON.parse(value);\n\n if (!Array.isArray(array)) {\n throw new TypeError(\"Expected array\");\n }\n\n return array;\n },\n boolean: function boolean(value) {\n return !(value == \"0\" || value == \"false\");\n },\n number: function number(value) {\n return Number(value);\n },\n object: function object(value) {\n var object = JSON.parse(value);\n\n if (object === null || _typeof(object) != \"object\" || Array.isArray(object)) {\n throw new TypeError(\"Expected object\");\n }\n\n return object;\n },\n string: function string(value) {\n return value;\n }\n};\nvar writers = {\n default: writeString,\n array: writeJSON,\n object: writeJSON\n};\n\nfunction writeJSON(value) {\n return JSON.stringify(value);\n}\n\nfunction writeString(value) {\n return \"\".concat(value);\n}\n\nvar Controller = /*#__PURE__*/function () {\n function Controller(context) {\n _classCallCheck(this, Controller);\n\n this.context = context;\n }\n\n _createClass(Controller, [{\n key: \"application\",\n get: function get() {\n return this.context.application;\n }\n }, {\n key: \"scope\",\n get: function get() {\n return this.context.scope;\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.scope.identifier;\n }\n }, {\n key: \"targets\",\n get: function get() {\n return this.scope.targets;\n }\n }, {\n key: \"classes\",\n get: function get() {\n return this.scope.classes;\n }\n }, {\n key: \"data\",\n get: function get() {\n return this.scope.data;\n }\n }, {\n key: \"initialize\",\n value: function initialize() {}\n }, {\n key: \"connect\",\n value: function connect() {}\n }, {\n key: \"disconnect\",\n value: function disconnect() {}\n }, {\n key: \"dispatch\",\n value: function dispatch(eventName) {\n var _ref17 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref17$target = _ref17.target,\n target = _ref17$target === void 0 ? this.element : _ref17$target,\n _ref17$detail = _ref17.detail,\n detail = _ref17$detail === void 0 ? {} : _ref17$detail,\n _ref17$prefix = _ref17.prefix,\n prefix = _ref17$prefix === void 0 ? this.identifier : _ref17$prefix,\n _ref17$bubbles = _ref17.bubbles,\n bubbles = _ref17$bubbles === void 0 ? true : _ref17$bubbles,\n _ref17$cancelable = _ref17.cancelable,\n cancelable = _ref17$cancelable === void 0 ? true : _ref17$cancelable;\n\n var type = prefix ? \"\".concat(prefix, \":\").concat(eventName) : eventName;\n var event = new CustomEvent(type, {\n detail: detail,\n bubbles: bubbles,\n cancelable: cancelable\n });\n target.dispatchEvent(event);\n return event;\n }\n }], [{\n key: \"shouldLoad\",\n get: function get() {\n return true;\n }\n }]);\n\n return Controller;\n}();\n\nController.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];\nController.targets = [];\nController.values = {};\nexport { Application, AttributeObserver, Context, Controller, ElementObserver, IndexedMultimap, Multimap, StringMapObserver, TokenListObserver, ValueListObserver, _add as add, defaultSchema, del, fetch, prune };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar 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 === \"undefined\" ? \"undefined\" : _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;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nTrix 1.3.1\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;) {\n t = t._value;\n }\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++) {\n o(t, t._deferreds[e]);\n }\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 p(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++) {\n i(r, e[r]);\n }\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++) {\n t[i].then(e, n);\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 /**\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() {\n this.name = \"__st\" + (1e9 * Math.random() >>> 0) + (e++ + \"__\");\n };\n\n n.prototype = {\n set: function set(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 get(t) {\n var e;\n return (e = t[this.name]) && e[0] === t ? e[1] : void 0;\n },\n \"delete\": function _delete(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 has(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 g(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 observe(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++) {\n if (i[r].observer === this) {\n o = i[r], o.removeListeners(), o.options = e;\n break;\n }\n }\n\n o || (o = new f(this, t, e), i.push(o), this.nodes_.push(t)), o.addListeners();\n },\n disconnect: function disconnect() {\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 takeRecords() {\n var t = this.records_;\n return this.records_ = [], t;\n }\n };\n var x, w;\n f.prototype = {\n enqueue: function enqueue(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 addListeners() {\n this.addListeners_(this.target);\n },\n addListeners_: function addListeners_(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 removeListeners() {\n this.removeListeners_(this.target);\n },\n removeListeners_: function removeListeners_(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 addTransientObserver(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 removeTransientObservers() {\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++) {\n if (e[n] === this) {\n e.splice(n, 1);\n break;\n }\n }\n }, this);\n },\n handleEvent: function handleEvent(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 now() {\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 get() {\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 i(t) {\n n.push(t);\n },\n o = function o() {\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;) {\n o = o.nextSibling;\n }\n\n for (; o;) {\n e(o, i) !== !0 && n(o, e, i), o = o.nextElementSibling;\n }\n\n return null;\n }\n\n function i(t, n) {\n for (var i = t.shadowRoot; i;) {\n e(i, n), i = i.olderShadowRoot;\n }\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++) {\n i.import && r(i.import, e, n);\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++) {\n t();\n }\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;) {\n g(e), e = e.olderShadowRoot;\n }\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;) {\n o = o.parentNode;\n }\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;) {\n t = t.parentNode;\n }\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++) {\n i[r] || (Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(o, r)), i[r] = 1);\n }\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++) {\n if (t === C[e]) return !0;\n }\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 n = e.is && e.tag;\n }\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;) {\n o == e && (r = !0), i = Object.getPrototypeOf(o), i && (o.__proto__ = i), o = i;\n }\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 o() {};\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.3.1\",\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++) {\n if (n = i[t], !(n in InputEvent.prototype)) return !1;\n }\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 n(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(_t, e) {\n function i() {\n this.constructor = _t;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t[o] = e[o]);\n }\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 n = i[e], o.push(e + \"=\" + n);\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 n = t[e], this[e] = n;\n }\n\n return this;\n };\n }.call(this), function () {\n e.extend({\n defer: function defer(t) {\n return setTimeout(t, 1);\n }\n });\n }.call(this), function () {\n var t, n;\n e.extend({\n normalizeSpaces: function normalizeSpaces(t) {\n return t.replace(RegExp(\"\" + e.ZERO_WIDTH_SPACE, \"g\"), \"\").replace(RegExp(\"\" + e.NON_BREAKING_SPACE, \"g\"), \" \");\n },\n normalizeNewlines: function normalizeNewlines(t) {\n return t.replace(/\\r\\n/g, \"\\n\");\n },\n breakableWhitespacePattern: RegExp(\"[^\\\\S\" + e.NON_BREAKING_SPACE + \"]\"),\n squishBreakableWhitespace: function squishBreakableWhitespace(t) {\n return t.replace(RegExp(\"\" + e.breakableWhitespacePattern.source, \"g\"), \" \").replace(/\\ {2,}/g, \" \");\n },\n summarizeStringChange: function summarizeStringChange(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(_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(_t2, e) {\n var n, i, o;\n\n for (n = 0, i = _t2.length, o = e.length; i > n && _t2.charAt(n).isEqualTo(e.charAt(n));) {\n n++;\n }\n\n for (; i > n + 1 && _t2.charAt(i - 1).isEqualTo(e.charAt(o - 1));) {\n i--, o--;\n }\n\n return {\n utf16String: _t2.slice(n, i),\n offset: n\n };\n };\n }.call(this), function () {\n e.extend({\n copyObject: function copyObject(t) {\n var e, n, i;\n null == t && (t = {}), n = {};\n\n for (e in t) {\n i = t[e], n[e] = i;\n }\n\n return n;\n },\n objectsAreEqual: function objectsAreEqual(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) {\n if (i = t[n], i !== e[n]) return !1;\n }\n\n return !0;\n }\n });\n }.call(this), function () {\n var t = [].slice;\n e.extend({\n arraysAreEqual: function arraysAreEqual(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) {\n if (r = t[i], r !== e[i]) return !1;\n }\n\n return !0;\n },\n arrayStartsWith: function arrayStartsWith(t, n) {\n return null == t && (t = []), null == n && (n = []), e.arraysAreEqual(t.slice(0, n.length), n);\n },\n spliceArray: function spliceArray() {\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 summarizeArrayChange(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++) {\n p = t[r], o.add(p);\n }\n\n for (i = new Set(), s = 0, c = e.length; c > s; s++) {\n p = e[s], i.add(p), o.has(p) || n.push(p);\n }\n\n for (a = 0, l = t.length; l > a; a++) {\n p = t[a], i.has(p) || h.push(p);\n }\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 getAllAttributeNames() {\n return null != t ? t : t = e.getTextAttributeNames().concat(e.getBlockAttributeNames());\n },\n getBlockConfig: function getBlockConfig(t) {\n return e.config.blockAttributes[t];\n },\n getBlockAttributeNames: function getBlockAttributeNames() {\n return null != n ? n : n = Object.keys(e.config.blockAttributes);\n },\n getTextConfig: function getTextConfig(t) {\n return e.config.textAttributes[t];\n },\n getTextAttributeNames: function getTextAttributeNames() {\n return null != o ? o : o = Object.keys(e.config.textAttributes);\n },\n getListAttributeNames: function getListAttributeNames() {\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 n = i[t].listAttribute, null != n && o.push(n);\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++) {\n if (e in this && this[e] === t) return e;\n }\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 handleEvent(n, i) {\n var o, r, _s, a, u, c, l, h, p, d, f, g;\n\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 s(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 handleEventOnce(t, n) {\n return null == n && (n = {}), n.times = 1, e.handleEvent(t, n);\n },\n triggerEvent: function triggerEvent(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 elementMatchesSelector(t, e) {\n return 1 === (null != t ? t.nodeType : void 0) ? n.call(t, e) : void 0;\n },\n findClosestElementFromNode: function findClosestElementFromNode(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;) {\n t = t.parentNode;\n }\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 findInnerElement(t) {\n for (; null != t ? t.firstElementChild : void 0;) {\n t = t.firstElementChild;\n }\n\n return t;\n },\n innerElementIsActive: function innerElementIsActive(t) {\n return document.activeElement !== t && e.elementContainsNode(t, document.activeElement);\n },\n elementContainsNode: function elementContainsNode(t, e) {\n if (t && e) for (; e;) {\n if (e === t) return !0;\n e = e.parentNode;\n }\n },\n findNodeFromContainerAndOffset: function findNodeFromContainerAndOffset(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 findElementFromContainerAndOffset(t, n) {\n var i;\n return i = e.findNodeFromContainerAndOffset(t, n), e.findClosestElementFromNode(i);\n },\n findChildIndexOfNode: function findChildIndexOfNode(t) {\n var e;\n\n if (null != t ? t.parentNode : void 0) {\n for (e = 0; t = t.previousSibling;) {\n e++;\n }\n\n return e;\n }\n },\n removeNode: function removeNode(t) {\n var e;\n return null != t && null != (e = t.parentNode) ? e.removeChild(t) : void 0;\n },\n walkTree: function walkTree(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 tagName(t) {\n var e;\n return null != t && null != (e = t.tagName) ? e.toLowerCase() : void 0;\n },\n makeElement: function makeElement(t, e) {\n var n, i, o, r, s, a, u, c, l, h, p, d, f, g;\n\n if (null == e && (e = {}), \"object\" == _typeof(t) ? (e = t, t = e.tagName) : e = {\n attributes: e\n }, o = document.createElement(t), null != e.editable && (null == e.attributes && (e.attributes = {}), e.attributes.contenteditable = e.editable), e.attributes) {\n l = e.attributes;\n\n for (a in l) {\n g = l[a], o.setAttribute(a, g);\n }\n }\n\n if (e.style) {\n h = e.style;\n\n for (a in h) {\n g = h[a], o.style[a] = g;\n }\n }\n\n if (e.data) {\n p = e.data;\n\n for (a in p) {\n g = p[a], o.dataset[a] = g;\n }\n }\n\n if (e.className) for (d = e.className.split(\" \"), r = 0, u = d.length; u > r; r++) {\n i = d[r], o.classList.add(i);\n }\n if (e.textContent && (o.textContent = e.textContent), e.childNodes) for (f = [].concat(e.childNodes), s = 0, c = f.length; c > s; s++) {\n n = f[s], o.appendChild(n);\n }\n return o;\n },\n getBlockTagNames: function getBlockTagNames() {\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 n = i[t].tagName, n && o.push(n);\n }\n\n return o;\n }();\n },\n nodeIsBlockContainer: function nodeIsBlockContainer(t) {\n return e.nodeIsBlockStartComment(null != t ? t.firstChild : void 0);\n },\n nodeProbablyIsBlockContainer: function nodeProbablyIsBlockContainer(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 nodeIsBlockStart(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 nodeIsBlockStartComment(t) {\n return e.nodeIsCommentNode(t) && \"block\" === (null != t ? t.data : void 0);\n },\n nodeIsCommentNode: function nodeIsCommentNode(t) {\n return (null != t ? t.nodeType : void 0) === Node.COMMENT_NODE;\n },\n nodeIsCursorTarget: function nodeIsCursorTarget(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 nodeIsAttachmentElement(t) {\n return e.elementMatchesSelector(t, e.AttachmentView.attachmentSelector);\n },\n nodeIsEmptyTextNode: function nodeIsEmptyTextNode(t) {\n return e.nodeIsTextNode(t) && \"\" === (null != t ? t.data : void 0);\n },\n nodeIsTextNode: function nodeIsTextNode(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 i(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 rangeIsCollapsed(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 rangesAreEqual(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 n(e) {\n return \"number\" == typeof e ? e : t(e);\n }, r = function r(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 o(t, e) {\n var n;\n return n = i(e), n.textContent = t.replace(/%t/g, e);\n }, i = function i(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 t() {\n var t;\n return (t = n(\"trix-csp-nonce\") || n(\"csp-nonce\")) ? t.getAttribute(\"content\") : void 0;\n }, n = function n(t) {\n return document.head.querySelector(\"meta[name=\" + t + \"]\");\n }, s = function s(t) {\n var e, n, i;\n n = {};\n\n for (e in t) {\n i = t[e], n[e] = \"function\" == typeof i ? {\n value: i\n } : i;\n }\n\n return n;\n }, a = function () {\n var t;\n return t = function t(_t3) {\n var e, n, i, o, r;\n\n for (e = {}, r = [\"initialize\", \"connect\", \"disconnect\"], n = 0, o = r.length; o > n; n++) {\n i = r[n], e[i] = _t3[i], delete _t3[i];\n }\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() {\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 _n2;\n\n return _n2 = function n() {\n return \"object\" == (typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) ? Reflect.construct(HTMLElement, [], _n2) : HTMLElement.apply(this);\n }, Object.setPrototypeOf(_n2.prototype, HTMLElement.prototype), Object.setPrototypeOf(_n2, HTMLElement), Object.defineProperties(_n2.prototype, e), window.customElements.define(t, _n2), _n2;\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 getDOMSelection() {\n var t;\n return t = window.getSelection(), t.rangeCount > 0 ? t : void 0;\n },\n getDOMRange: function getDOMRange() {\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 setDOMRange(t) {\n var n;\n return n = window.getSelection(), n.removeAllRanges(), n.addRange(t), e.selectionChangeObserver.update();\n }\n }), t = function t(_t4) {\n return n(_t4.startContainer) || n(_t4.endContainer);\n }, n = function n(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 dataTransferIsPlainText(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 dataTransferIsWritable(e) {\n var n, i;\n\n if (null != (null != e ? e.setData : void 0)) {\n for (n in t) {\n if (i = t[n], !function () {\n try {\n return e.setData(n, i), e.getData(n) === i;\n } catch (t) {}\n }()) return;\n }\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 () {\n e.extend({\n RTL_PATTERN: /[\\u05BE\\u05C0\\u05C3\\u05D0-\\u05EA\\u05F0-\\u05F4\\u061B\\u061F\\u0621-\\u063A\\u0640-\\u064A\\u066D\\u0671-\\u06B7\\u06BA-\\u06BE\\u06C0-\\u06CE\\u06D0-\\u06D5\\u06E5\\u06E6\\u200F\\u202B\\u202E\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE72\\uFE74\\uFE76-\\uFEFC]/,\n getDirection: function () {\n var t, n, i, o;\n return n = e.makeElement(\"input\", {\n dir: \"auto\",\n name: \"x\",\n dirName: \"x.dir\"\n }), t = e.makeElement(\"form\"), t.appendChild(n), i = function () {\n try {\n return new FormData(t).has(n.dirName);\n } catch (e) {}\n }(), o = function () {\n try {\n return n.matches(\":dir(ltr),:dir(rtl)\");\n } catch (t) {}\n }(), i ? function (e) {\n return n.value = e, new FormData(t).get(n.dirName);\n } : o ? function (t) {\n return n.value = t, n.matches(\":dir(rtl)\") ? \"rtl\" : \"ltr\";\n } : function (t) {\n var n;\n return n = t.trim().charAt(0), e.RTL_PATTERN.test(n) ? \"rtl\" : \"ltr\";\n };\n }()\n });\n }.call(this), function () {}.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\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++) {\n s = a[n], i = e.getKeysCommonToHash(r(s)), e = e.slice(i);\n }\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++) {\n i = t[n], this.has(i) && (r[i] = this.values[i]);\n }\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 n = o[e], this.values[n] === t.values[n] && s.push(n);\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 n = i[t], e.push(t, n);\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 u(t, e) {\n var n;\n return n = {}, n[t] = e, n;\n }, a = function a(t, e) {\n var n, i, o;\n i = s(t);\n\n for (n in e) {\n o = e[n], i[n] = o;\n }\n\n return i;\n }, s = function s(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++) {\n i = s[n], i !== e && (r[i] = t[i]);\n }\n\n return r;\n }, r = function r(t) {\n return t instanceof e.Hash ? t : new e.Hash(t);\n }, c = function c(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++) {\n i = o[t], e.push(i.getCacheKey());\n }\n\n return e.join(\"/\");\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t5, e) {\n function i() {\n this.constructor = _t5;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t5[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t5.prototype = new i(), _t5.__super__ = e.prototype, _t5;\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++) {\n r = t[i], n = JSON.stringify(r), null == (e = this.objects)[n] && (e[n] = r);\n }\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++) {\n e = t[n], this.add(e);\n }\n\n return t;\n }, e = function e(t) {\n return t.dataset.trixStoreKey;\n }, t;\n }();\n }.call(this), function () {}.call(this), function () {\n var t = function t(_t6, e) {\n function i() {\n this.constructor = _t6;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t6[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t6.prototype = new i(), _t6.__super__ = e.prototype, _t6;\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 s(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n a.call(e, i) && (t[i] = e[i]);\n }\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;) {\n 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\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++) {\n 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\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 test(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 test(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 formatter(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 parser(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 parser(t) {\n var e;\n return e = window.getComputedStyle(t), \"italic\" === e.fontStyle;\n }\n },\n href: {\n groupTagName: \"a\",\n parser: function parser(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 applicationJson(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 textHtml(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++) {\n c = A[h], e.removeNode(c);\n }\n\n for (p = 0, m = o.length; m > p; p++) {\n for (a = o[p], C = l.querySelectorAll(\"[\" + a + \"]\"), d = 0, v = C.length; v > d; d++) {\n c = C[d], c.removeAttribute(a);\n }\n }\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) {\n w = u[b], c.setAttribute(b, w);\n }\n } catch (E) {}\n }\n\n return l.innerHTML.replace(t, \"\");\n }\n },\n deserializers: {\n \"application/json\": function applicationJson(t) {\n return e.Document.fromJSONString(t);\n },\n \"text/html\": function textHtml(t) {\n return e.Document.fromHTML(t);\n }\n },\n serializeToContentType: function serializeToContentType(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 deserializeFromContentType(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 getDefaultHTML() {\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 getLevel() {\n return this.level2Enabled && e.browser.supportsInputEvents ? 2 : 0;\n },\n pickFiles: function pickFiles(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 initialize() {\n return \"\" === this.innerHTML ? this.innerHTML = e.config.toolbar.getDefaultHTML() : void 0;\n }\n });\n }.call(this), function () {\n var t = function t(_t7, e) {\n function i() {\n this.constructor = _t7;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t7[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t7.prototype = new i(), _t7.__super__ = e.prototype, _t7;\n },\n n = {}.hasOwnProperty,\n i = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\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 n = i[t], o.push(n.cloneNode(!0));\n }\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++) {\n t = i[e], o.push(t), o = o.concat(t.getAllChildViews());\n }\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++) {\n if (o = i[e], o.object === t) return o;\n }\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++) {\n r = s[t], n.push(r.object.getCacheKey());\n }\n\n return n;\n }(), o = [];\n\n for (e in t) {\n i.call(n, e) < 0 && o.push(delete t[e]);\n }\n\n return o;\n }\n }, o;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t8, e) {\n function i() {\n this.constructor = _t8;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t8[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t8.prototype = new i(), _t8.__super__ = e.prototype, _t8;\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 n = i[t], this.findOrCreateCachedChildView(this.viewClass, n, this.options);\n }\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++) {\n for (u = s[e], a = u.getNodes(), n = 0, o = a.length; o > n; n++) {\n r = a[n], t.appendChild(r);\n }\n }\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(_t9, e) {\n function i() {\n this.constructor = _t9;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t9[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t9.prototype = new i(), _t9.__super__ = e.prototype, _t9;\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 a(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n u = function u(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n c.call(e, i) && (t[i] = e[i]);\n }\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++) {\n if (e in this && this[e] === t) return e;\n }\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\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++) {\n i = t[e], this.mutationIsSignificant(i) && o.push(i);\n }\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++) {\n if (i = o[e], this.nodeIsSignificant(i)) return !0;\n }\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++) {\n e = u[r], l.call(n, e) < 0 && n.push(e);\n }\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++) {\n i = o[e], i.type === t && r.push(i);\n }\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++) {\n s = a[e], t.push.apply(t, s.addedNodes), u.push.apply(u, s.removedNodes);\n }\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) {\n l = p[i], l !== d[i] && n.push(o(l));\n }\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) {\n l = d[i], l !== p[i] && n.push(o(l));\n }\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 h(t) {\n var e, n, i, o;\n\n for (null == t && (t = []), o = [], e = 0, n = t.length; n > e; e++) {\n 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\n return o;\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t10, e) {\n function i() {\n this.constructor = _t10;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t10[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t10.prototype = new i(), _t10.__super__ = e.prototype, _t10;\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 i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\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) {\n t(i, {\n onElement: this.element,\n withCallback: this.handlerFor(i)\n });\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 n = t[i], r.push(new e.FileVerificationOperation(n));\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.prototype.createLinkHTML = function (t, e) {\n var n;\n return n = document.createElement(\"a\"), n.href = t, n.textContent = null != e ? e : t, n.outerHTML;\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 f(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n g.call(e, i) && (t[i] = e[i]);\n }\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++) {\n if (e in this && this[e] === t) return e;\n }\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 n = t[e], this.inputSummary[e] = n;\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 keydown(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++) {\n l = h[o], t[l + \"Key\"] && (\"ctrl\" === l && (l = \"control\"), i = null != i ? i[l] : void 0);\n }\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++) {\n l = i[e], t[l + \"Key\"] && o.push(l);\n }\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 keypress(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 textInput(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 dragenter(t) {\n return t.preventDefault();\n },\n dragstart: function dragstart(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 dragover(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 dragend() {\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 drop(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 cut(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 copy(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 paste(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, L;\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 = \"text/html\", L = (c = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(c).trim() : a, l.html = this.createLinkHTML(a, L), null != (f = this.delegate) && f.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: L,\n didDelete: this.selectionIsExpanded()\n }), null != (C = this.responder) && C.insertHTML(l.html), 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 compositionstart(t) {\n return this.getCompositionInput().start(t.data);\n },\n compositionupdate: function compositionupdate(t) {\n return this.getCompositionInput().update(t.data);\n },\n compositionend: function compositionend(t) {\n return this.getCompositionInput().end(t.data);\n },\n beforeinput: function beforeinput() {\n return this.inputSummary.didInput = !0;\n },\n input: function input(t) {\n return this.inputSummary.didInput = !0, t.stopPropagation();\n }\n }, s.prototype.keys = {\n backspace: function backspace(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n \"delete\": function _delete(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n \"return\": function _return() {\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 tab(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 left(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 right(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 d(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n h: function h(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n o: function o(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 _return(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 tab(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 left(t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"backward\")) : void 0;\n },\n right: function right(t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"forward\")) : void 0;\n }\n },\n alt: {\n backspace: function backspace() {\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 backspace() {\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++) {\n r = o[e], s[r] = !0;\n }\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 r(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 p(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 h(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++) {\n if (l = c[i], e = /^CorePasteboardFlavorType/.test(l), n = /^dyn\\./.test(l) && u.getData(l), a = e || n) return !0;\n }\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 o(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\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++) {\n if (e in this && this[e] === t) return e;\n }\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 keydown(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 paste(t) {\n var e, n, i, o, r, s, a, u, c;\n return h(t) ? (t.preventDefault(), this.attachFiles(t.clipboardData.files)) : p(t) ? (t.preventDefault(), n = {\n type: \"text/plain\",\n string: t.clipboardData.getData(\"text/plain\")\n }, null != (i = this.delegate) && i.inputControllerWillPaste(n), null != (o = this.responder) && o.insertString(n.string), this.render(), null != (r = this.delegate) ? r.inputControllerDidPaste(n) : void 0) : (e = null != (s = t.clipboardData) ? s.getData(\"URL\") : void 0) ? (t.preventDefault(), n = {\n type: \"text/html\",\n html: this.createLinkHTML(e)\n }, null != (a = this.delegate) && a.inputControllerWillPaste(n), null != (u = this.responder) && u.insertHTML(n.html), this.render(), null != (c = this.delegate) ? c.inputControllerDidPaste(n) : void 0) : void 0;\n },\n beforeinput: function beforeinput(t) {\n var e;\n return (e = this.inputTypes[t.inputType]) ? (this.withEvent(t, e), this.scheduleRender()) : void 0;\n },\n input: function input() {\n return e.selectionChangeObserver.reset();\n },\n dragstart: function dragstart(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 dragenter(t) {\n return c(t) ? t.preventDefault() : void 0;\n },\n dragover: function dragover(t) {\n var e, n;\n\n if (this.dragging) {\n if (t.preventDefault(), e = d(t), !i(e, this.dragging.point)) return this.dragging.point = e, null != (n = this.responder) ? n.setLocationRangeFromPointRange(e) : void 0;\n } else if (c(t)) return t.preventDefault();\n },\n drop: function drop(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 dragend() {\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 compositionend() {\n return this.composing ? (this.composing = !1, this.scheduleRender()) : void 0;\n }\n }, u.prototype.keys = {\n ArrowLeft: function ArrowLeft() {\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 ArrowRight() {\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 Backspace() {\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 Tab() {\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 TabShift() {\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 deleteByComposition() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteByCut: function deleteByCut() {\n return this.deleteInDirection(\"backward\");\n },\n deleteByDrag: function deleteByDrag() {\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 deleteCompositionText() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteContent: function deleteContent() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentBackward: function deleteContentBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentForward: function deleteContentForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteEntireSoftLine: function deleteEntireSoftLine() {\n return this.deleteInDirection(\"forward\");\n },\n deleteHardLineBackward: function deleteHardLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteHardLineForward: function deleteHardLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteSoftLineBackward: function deleteSoftLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteSoftLineForward: function deleteSoftLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteWordBackward: function deleteWordBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteWordForward: function deleteWordForward() {\n return this.deleteInDirection(\"forward\");\n },\n formatBackColor: function formatBackColor() {\n return this.activateAttributeIfSupported(\"backgroundColor\", this.event.data);\n },\n formatBold: function formatBold() {\n return this.toggleAttributeIfSupported(\"bold\");\n },\n formatFontColor: function formatFontColor() {\n return this.activateAttributeIfSupported(\"color\", this.event.data);\n },\n formatFontName: function formatFontName() {\n return this.activateAttributeIfSupported(\"font\", this.event.data);\n },\n formatIndent: function formatIndent() {\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 formatItalic() {\n return this.toggleAttributeIfSupported(\"italic\");\n },\n formatJustifyCenter: function formatJustifyCenter() {\n return this.toggleAttributeIfSupported(\"justifyCenter\");\n },\n formatJustifyFull: function formatJustifyFull() {\n return this.toggleAttributeIfSupported(\"justifyFull\");\n },\n formatJustifyLeft: function formatJustifyLeft() {\n return this.toggleAttributeIfSupported(\"justifyLeft\");\n },\n formatJustifyRight: function formatJustifyRight() {\n return this.toggleAttributeIfSupported(\"justifyRight\");\n },\n formatOutdent: function formatOutdent() {\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 formatRemove() {\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) {\n i.push(null != (n = this.responder) ? n.removeCurrentAttribute(t) : void 0);\n }\n\n return i;\n });\n },\n formatSetBlockTextDirection: function formatSetBlockTextDirection() {\n return this.activateAttributeIfSupported(\"blockDir\", this.event.data);\n },\n formatSetInlineTextDirection: function formatSetInlineTextDirection() {\n return this.activateAttributeIfSupported(\"textDir\", this.event.data);\n },\n formatStrikeThrough: function formatStrikeThrough() {\n return this.toggleAttributeIfSupported(\"strike\");\n },\n formatSubscript: function formatSubscript() {\n return this.toggleAttributeIfSupported(\"sub\");\n },\n formatSuperscript: function formatSuperscript() {\n return this.toggleAttributeIfSupported(\"sup\");\n },\n formatUnderline: function formatUnderline() {\n return this.toggleAttributeIfSupported(\"underline\");\n },\n historyRedo: function historyRedo() {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformRedo() : void 0;\n },\n historyUndo: function historyUndo() {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformUndo() : void 0;\n },\n insertCompositionText: function insertCompositionText() {\n return this.composing = !0, this.insertString(this.event.data);\n },\n insertFromComposition: function insertFromComposition() {\n return this.composing = !1, this.insertString(this.event.data);\n },\n insertFromDrop: function insertFromDrop() {\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 insertFromPaste() {\n var n, i, o, r, s, a, u, c, l, h, p;\n return n = this.event.dataTransfer, s = {\n dataTransfer: n\n }, (i = n.getData(\"URL\")) ? (this.event.preventDefault(), s.type = \"text/html\", p = (r = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(r).trim() : i, s.html = this.createLinkHTML(i, p), null != (a = this.delegate) && a.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)) : 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\")) ? (this.event.preventDefault(), 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 insertFromYank() {\n return this.insertString(this.event.data);\n },\n insertLineBreak: function insertLineBreak() {\n return this.insertString(\"\\n\");\n },\n insertLink: function insertLink() {\n return this.activateAttributeIfSupported(\"href\", this.event.data);\n },\n insertOrderedList: function insertOrderedList() {\n return this.toggleAttributeIfSupported(\"number\");\n },\n insertParagraph: function insertParagraph() {\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 insertReplacementText() {\n return this.insertString(this.event.dataTransfer.getData(\"text/plain\"), {\n updatePosition: !1\n });\n },\n insertText: function insertText() {\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 insertTranspose() {\n return this.insertString(this.event.data);\n },\n insertUnorderedList: function insertUnorderedList() {\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 f(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 c(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 h(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 p(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 l(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 d(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 = function c(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n l = function l(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n h.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n h = {}.hasOwnProperty;\n\n n = e.defer, i = e.handleEvent, s = e.makeElement, u = e.tagName, a = e.config, r = a.lang, t = a.css, o = a.keyNames, e.AttachmentEditorController = function (a) {\n function h(t, e, n, i) {\n this.attachmentPiece = t, this.element = e, this.container = n, this.options = null != i ? i : {}, this.didBlurCaption = c(this.didBlurCaption, this), this.didChangeCaption = c(this.didChangeCaption, this), this.didInputCaption = c(this.didInputCaption, this), this.didKeyDownCaption = c(this.didKeyDownCaption, this), this.didClickActionButton = c(this.didClickActionButton, this), this.didClickToolbar = c(this.didClickToolbar, this), this.attachment = this.attachmentPiece.attachment, \"a\" === u(this.element) && (this.element = this.element.firstChild), this.install();\n }\n\n var p;\n return l(h, a), p = function p(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 }, h.prototype.install = function () {\n return this.makeElementMutable(), this.addToolbar(), this.attachment.isPreviewable() ? this.installCaptionEditor() : void 0;\n }, h.prototype.uninstall = function () {\n var t, e;\n\n for (this.savePendingCaption(); e = this.undos.pop();) {\n e();\n }\n\n return null != (t = this.delegate) ? t.didUninstallAttachmentEditor(this) : void 0;\n }, h.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 }, h.prototype.makeElementMutable = p(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 }), h.prototype.addToolbar = p(function () {\n var n;\n return n = s({\n tagName: \"div\",\n className: t.attachmentToolbar,\n data: {\n trixMutable: !0\n },\n childNodes: s({\n tagName: \"div\",\n className: \"trix-button-row\",\n childNodes: s({\n tagName: \"span\",\n className: \"trix-button-group trix-button-group--actions\",\n childNodes: s({\n tagName: \"button\",\n className: \"trix-button trix-button--remove\",\n textContent: r.remove,\n attributes: {\n title: r.remove\n },\n data: {\n trixAction: \"remove\"\n }\n })\n })\n })\n }), this.attachment.isPreviewable() && n.appendChild(s({\n tagName: \"div\",\n className: t.attachmentMetadataContainer,\n childNodes: s({\n tagName: \"span\",\n className: t.attachmentMetadata,\n childNodes: [s({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: this.attachment.getFilename(),\n attributes: {\n title: this.attachment.getFilename()\n }\n }), s({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: this.attachment.getFormattedFilesize()\n })]\n })\n })), i(\"click\", {\n onElement: n,\n withCallback: this.didClickToolbar\n }), i(\"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 }), h.prototype.installCaptionEditor = p(function () {\n var o, a, u, c, l;\n return c = s({\n tagName: \"textarea\",\n className: t.attachmentCaptionEditor,\n attributes: {\n placeholder: r.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, o = function o() {\n return l.value = c.value, c.style.height = l.scrollHeight + \"px\";\n }, i(\"input\", {\n onElement: c,\n withCallback: o\n }), i(\"input\", {\n onElement: c,\n withCallback: this.didInputCaption\n }), i(\"keydown\", {\n onElement: c,\n withCallback: this.didKeyDownCaption\n }), i(\"change\", {\n onElement: c,\n withCallback: this.didChangeCaption\n }), i(\"blur\", {\n onElement: c,\n withCallback: this.didBlurCaption\n }), u = this.element.querySelector(\"figcaption\"), a = u.cloneNode(), {\n \"do\": function (e) {\n return function () {\n return u.style.display = \"none\", a.appendChild(c), a.appendChild(l), a.classList.add(t.attachmentCaption + \"--editing\"), u.parentElement.insertBefore(a, u), o(), e.options.editCaption ? n(function () {\n return c.focus();\n }) : void 0;\n };\n }(this),\n undo: function undo() {\n return e.removeNode(a), u.style.display = null;\n }\n };\n }), h.prototype.didClickToolbar = function (t) {\n return t.preventDefault(), t.stopPropagation();\n }, h.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 }, h.prototype.didKeyDownCaption = function (t) {\n var e;\n return \"return\" === o[t.keyCode] ? (t.preventDefault(), this.savePendingCaption(), null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestDeselectingAttachment ? e.attachmentEditorDidRequestDeselectingAttachment(this.attachment) : void 0) : void 0;\n }, h.prototype.didInputCaption = function (t) {\n return this.pendingCaption = t.target.value.replace(/\\s/g, \" \").trim();\n }, h.prototype.didChangeCaption = function () {\n return this.savePendingCaption();\n }, h.prototype.didBlurCaption = function () {\n return this.savePendingCaption();\n }, h;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\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++) {\n u = c[o], r.appendChild(u);\n }\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 a(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 n(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 n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\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 o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\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++) {\n r = s[n], i.appendChild(r);\n }\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) {\n 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\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) {\n 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) {\n l = u[r], c[r] = l;\n }\n }\n }\n\n if (Object.keys(c).length) {\n null == e && (e = i(\"span\"));\n\n for (r in c) {\n l = c[r], e.style[r] = l;\n }\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) {\n if (s = r[o], (e = n(o)) && e.groupTagName) return t = {}, t[o] = s, i(e.groupTagName, t);\n }\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(_t11, e) {\n function i() {\n this.constructor = _t11;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t11[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t11.prototype = new i(), _t11.__super__ = e.prototype, _t11;\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) {\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\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 n = i[t], n.hasAttribute(\"blockBreak\") || o.push(n);\n }\n\n return o;\n }, o = function o(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 o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\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, p, d;\n if (o = document.createComment(\"block\"), c = [o], this.block.isEmpty() ? c.push(i(\"br\")) : (p = null != (l = n(this.block.getLastAttribute())) ? l.text : void 0, d = this.findOrCreateCachedChildView(e.TextView, this.block.text, {\n textConfig: p\n }), c.push.apply(c, d.getNodes()), this.shouldAddExtraNewlineElement() && c.push(i(\"br\"))), this.attributes.length) return c;\n\n for (h = e.config.blockAttributes[\"default\"].tagName, this.block.isRTL() && (t = {\n dir: \"rtl\"\n }), r = i({\n tagName: h,\n attributes: t\n }), s = 0, a = c.length; a > s; s++) {\n u = c[s], r.appendChild(u);\n }\n\n return [r];\n }, s.prototype.createContainerElement = function (e) {\n var o, r, s, a, u;\n return o = this.attributes[e], u = n(o).tagName, 0 === e && this.block.isRTL() && (r = {\n dir: \"rtl\"\n }), \"attachmentGallery\" === o && (a = this.block.getBlockBreakPosition(), s = t.attachmentGallery + \" \" + t.attachmentGallery + \"--\" + a), i({\n tagName: u,\n className: s,\n attributes: r\n });\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 i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\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++) {\n 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++) {\n o = n[t], i.push(this.shadowElement.appendChild(o));\n }\n\n return i;\n }.call(this));\n }\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;) {\n this.element.removeChild(this.element.lastChild);\n }\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++) {\n s = u[n], e.appendChild(s.cloneNode(!0));\n }\n\n for (c = a(e), i = 0, r = c.length; r > i; i++) {\n t = c[i], (l = this.elementStore.remove(t)) && t.parentNode.replaceChild(l, t);\n }\n\n return e;\n }, a = function a(t) {\n return t.querySelectorAll(\"[data-trix-store-key]\");\n }, s = function s(t, e) {\n return u(t.innerHTML) === u(e.innerHTML);\n }, u = function u(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 s(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n a = function a(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n u.call(e, i) && (t[i] = e[i]);\n }\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 o(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\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++) {\n e = o[n], r.push(t(e, d(e)));\n }\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++) {\n e = o[n], r.push(t(e, f(e)));\n }\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++) {\n 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\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 n = u[o], n.removeAttribute(\"disabled\");\n }\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++) {\n e = i[t], e.setAttribute(\"disabled\", \"disabled\"), e.removeAttribute(\"data-trix-validate\"), o.push(e.classList.remove(\"trix-validate\"));\n }\n\n return o;\n }, s.prototype.getDialog = function (t) {\n return this.element.querySelector(\"[data-trix-dialog=\" + t + \"]\");\n }, m = function m(t, e) {\n return null == e && (e = f(t)), t.querySelector(\"[data-trix-input][name='\" + e + \"']\");\n }, d = function d(t) {\n return t.getAttribute(\"data-trix-action\");\n }, f = function f(t) {\n var e;\n return null != (e = t.getAttribute(\"data-trix-attribute\")) ? e : t.getAttribute(\"data-trix-dialog-attribute\");\n }, g = function g(t) {\n return t.getAttribute(\"data-trix-dialog\");\n }, s;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t12, e) {\n function i() {\n this.constructor = _t12;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t12[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t12.prototype = new i(), _t12.__super__ = e.prototype, _t12;\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(_t13, e) {\n return function () {\n return _t13.apply(e, arguments);\n };\n },\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\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(_t14, e) {\n function i() {\n this.constructor = _t14;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t14[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t14.prototype = new i(), _t14.__super__ = e.prototype, _t14;\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(_t15, e) {\n function i() {\n this.constructor = _t15;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t15[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t15.prototype = new i(), _t15.__super__ = e.prototype, _t15;\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 n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\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 n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\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) {\n o = r[n], s.push(t(o, n));\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++) {\n e = o[n], t(e) && r.push(e);\n }\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) {\n o = r[n], u.push(n >= i && a >= n ? e(o) : o);\n }\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 n = r[t], (\"function\" == typeof o.canBeConsolidatedWith ? o.canBeConsolidatedWith(n) : void 0) ? o = o.consolidateWith(n) : (i.push(o), o = n);\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) {\n if (r = a[n], t > n) s += r.getLength();else if (n === t) {\n s += e;\n break;\n }\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++) {\n t = o[n], e += t.getLength();\n }\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 s(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) {\n r = t[i], s && !r.isEqualTo(e[i]) && (s = !1);\n }\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++) {\n t = i[e], o.push(t.inspect());\n }\n\n return o;\n }.call(this).join(\", \") + \"]\"\n };\n }, a = function a(t) {\n return t[0];\n }, r = function r(t) {\n return t[1];\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function t(_t16, e) {\n function i() {\n this.constructor = _t16;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t16[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t16.prototype = new i(), _t16.__super__ = e.prototype, _t16;\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 n = t[e], n.isEmpty() || o.push(n);\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 n = t[i], r.push(e.Piece.fromJSON(n));\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++) {\n e = o[n], s.push(null != (r = t.find(e)) ? r : e);\n }\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 n = i[t], o.push(n.getAttributes());\n }\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 }\n\n for (; i > o && this.getCommonAttributesAtRange([e, o + 1])[t];) {\n o++;\n }\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 n = i[t], null != n.attachment && o.push(n);\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 n = i[t], o.push(n.attachment);\n }\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++) {\n t = i[e], o.push(JSON.parse(t.toConsole()));\n }\n\n return o;\n }.call(this));\n }, i.prototype.getDirection = function () {\n return e.getDirection(this.toString());\n }, i.prototype.isRTL = function () {\n return \"rtl\" === this.getDirection();\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function s(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n a.call(e, i) && (t[i] = e[i]);\n }\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++) {\n if (e in this && this[e] === t) return e;\n }\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++) {\n t = o[e], i(t).nestable && r.push(t);\n }\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++) {\n t = o[e], i(t).listAttribute && r.push(t);\n }\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.getDirection = function () {\n return this.text.getDirection();\n }, a.prototype.isRTL = function () {\n return this.text.isRTL();\n }, a.prototype.getLength = function () {\n return this.text.getLength();\n }, a.prototype.canBeConsolidatedWith = function (t) {\n return !this.hasAttributes() && !t.hasAttributes() && this.getDirection() === t.getDirection();\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) || this.getDirection() !== t.getDirection() && !t.isEmpty());\n }, h = function h(t) {\n return t = y(t), t = l(t);\n }, y = function y(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++) {\n s = i[t], s.isBlockBreak() ? (r = !0, n.push(v(s))) : n.push(s);\n }\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 l(t) {\n return m(t) ? t : t.appendText(p);\n }, m = function m(t) {\n var e, n;\n return n = t.getLength(), 0 === n ? !1 : (e = t.getTextAtRange([n - 1, n]), e.isBlockBreak());\n }, v = function v(t) {\n return t.copyWithoutAttribute(\"blockBreak\");\n }, d = function d(t) {\n var e;\n return e = i(t).listAttribute, null != e ? [e, t] : [t];\n }, f = function f(t) {\n return t.slice(-1)[0];\n }, g = function g(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 o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\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++) {\n if (e in this && this[e] === t) return e;\n }\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, this.forbiddenElements = n.forbiddenElements, null == this.allowedAttributes && (this.allowedAttributes = c), null == this.forbiddenProtocols && (this.forbiddenProtocols = h), null == this.forbiddenElements && (this.forbiddenElements = l), this.body = p(t);\n }\n\n var c, l, h, p;\n return o(u, r), c = \"style href src width height class\".split(\" \"), h = \"javascript:\".split(\" \"), l = \"script iframe\".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();) {\n switch (o = s.currentNode, o.nodeType) {\n case Node.ELEMENT_NODE:\n this.elementIsRemovable(o) ? r.push(o) : this.sanitizeElement(o);\n break;\n\n case Node.COMMENT_NODE:\n r.push(o);\n }\n }\n\n for (t = 0, n = r.length; n > t; t++) {\n o = r[t], e.removeNode(o);\n }\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++) {\n i = r[e].name, s.call(this.allowedAttributes, i) >= 0 || 0 === i.indexOf(\"data-trix\") || t.removeAttribute(i);\n }\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++) {\n i = r[t], (o = i.previousElementSibling) && \"li\" === n(o) && o.appendChild(i);\n }\n\n return this.body;\n }, u.prototype.elementIsRemovable = function (t) {\n return (null != t ? t.nodeType : void 0) === Node.ELEMENT_NODE ? this.elementIsForbidden(t) || this.elementIsntSerializable(t) : void 0;\n }, u.prototype.elementIsForbidden = function (t) {\n var e;\n return e = n(t), s.call(this.forbiddenElements, e) >= 0;\n }, u.prototype.elementIsntSerializable = function (e) {\n return \"false\" === e.getAttribute(\"data-trix-serialize\") && !t(e);\n }, p = function p(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 n = r[i], e.body.appendChild(n);\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 p(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n d.call(e, i) && (t[i] = e[i]);\n }\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++) {\n if (e in this && this[e] === t) return e;\n }\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: x\n }); n.nextNode();) {\n this.processNode(n.currentNode);\n }\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 }, x = function x(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 && this.isBlockElement(e.previousSibling) ? this.appendStringWithAttributes(\"\\n\") : i !== this.containerElement && !this.isBlockElement(i) || (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), e.firstChild)) return o && t(n, this.currentBlock.attributes) ? this.appendStringWithAttributes(\"\\n\") : (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 = A(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 = w(t, \"attachment\"), 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 = b(t);\n\n for (n in i) {\n r = i[n], e[n] = r;\n }\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 S(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 E(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 m(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;\n r = {}, p = e.config.textAttributes;\n\n for (n in p) {\n if (u = p[n], u.tagName && o(t, {\n matchingSelector: u.tagName,\n untilNode: this.containerElement\n })) r[n] = !0;else if (u.parser) {\n if (g = u.parser(t)) {\n for (i = !1, d = this.findBlockElementAncestors(t), c = 0, h = d.length; h > c; c++) {\n if (s = d[c], u.parser(s) === g) {\n i = !0;\n break;\n }\n }\n\n i || (r[n] = g);\n }\n } else u.styleProperty && (g = t.style[u.styleProperty]) && (r[n] = g);\n }\n\n if (a(t)) {\n f = w(t, \"attributes\");\n\n for (l in f) {\n g = f[l], r[l] = g;\n }\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) {\n 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\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 n = l(t), f.call(r(), n) >= 0 && e.push(t), t = t.parentNode;\n }\n\n return e;\n }, w = function w(t, e) {\n try {\n return JSON.parse(t.getAttribute(\"data-trix-\" + e));\n } catch (n) {\n return {};\n }\n }, b = function b(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, (!C(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 v(t) {\n var e;\n return e = window.getComputedStyle(t).whiteSpace, \"pre\" === e || \"pre-wrap\" === e || \"pre-line\" === e;\n }, C = function C(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) {\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\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 : y(e);\n }, g.prototype.getMarginOfDefaultBlockElement = function () {\n var t;\n return t = s(e.config.blockAttributes[\"default\"].tagName), this.containerElement.appendChild(t), y(t);\n }, y = function y(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 }, A = function A(t) {\n return t.replace(RegExp(\"^\" + n.source + \"+\"), \"\");\n }, k = function k(t) {\n return RegExp(\"^\" + n.source + \"*$\").test(t);\n }, R = function R(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 r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\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++) {\n if (e in this && this[e] === t) return e;\n }\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 n = t[i], r.push(e.Block.fromJSON(n));\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++) {\n e = r[n], s.push((i = t.find(e)) ? i : e.copyUsingObjectMap(t));\n }\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 n = r[i], e = t.concat(n.getAttributes()), s.push(n.copyWithAttributes(e));\n }\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 (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\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) {\n d = t[c], d.inheritable && n.push(c);\n }\n\n return n;\n }();\n\n for (c in i) {\n d = i[c], (d === n[c] || u.call(a, c) >= 0) && (r[c] = d);\n }\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) {\n 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) {\n s.push(e[o]);\n }\n\n return s;\n }();\n }\n\n return t;\n }, l = function l(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++) {\n if (e = o[n], e.id === t) return e;\n }\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 n = i[t], o.push(n.attachment);\n }\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++) {\n if (i = o[e], i.attachment === t) return i;\n }\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++) {\n e = a[n], o = e.getLength(), e.hasAttribute(t) && s.push([r, r + o]), r += o;\n }\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 r(e) {\n return null != h ? e.getAttribute(t) === h : e.hasAttribute(t);\n }, l = this.getPieces(), n = 0, i = l.length; i > n; 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\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++) {\n t = i[e], o.push(t.text);\n }\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++) {\n o = i[t], n.push.apply(n, o.getPieces());\n }\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++) {\n t = i[e], o.push(JSON.parse(t.text.toConsole()));\n }\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 h(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n p.call(e, i) && (t[i] = e[i]);\n }\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++) {\n o = t[r], (null != (a = this.delegate) ? a.compositionShouldAcceptFile(o) : void 0) && (n = e.Attachment.attachmentForFile(o), i.push(n));\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 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\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++) {\n if (t = o[n], !t.hasContent()) return !1;\n }\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 }\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++) {\n t = r[n], e[t] || this.canSetCurrentAttribute(t) || (e[t] = !1);\n }\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) {\n i = n[e], i !== !1 && r(e) && (t[e] = i);\n }\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++) {\n e = h[i], e.delegate = null, null != (u = this.delegate) && \"function\" == typeof u.compositionDidRemoveAttachment && u.compositionDidRemoveAttachment(e);\n }\n\n for (p = [], o = 0, s = t.length; s > o; o++) {\n e = t[o], e.delegate = this, p.push(null != (c = this.delegate) && \"function\" == typeof c.compositionDidAddAttachment ? c.compositionDidAddAttachment(e) : void 0);\n }\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(_t17, e) {\n function i() {\n this.constructor = _t17;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t17[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t17.prototype = new i(), _t17.__super__ = e.prototype, _t17;\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 i(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++) {\n i = o[t], r.push(this.document = this.document.removeAttributeAtRange(e, i));\n }\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++) {\n 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\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(_t18, e) {\n return function () {\n return _t18.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(_t19, e) {\n function i() {\n this.constructor = _t19;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t19[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t19.prototype = new i(), _t19.__super__ = e.prototype, _t19;\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(_t20, e) {\n function i() {\n this.constructor = _t20;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t20[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t20.prototype = new i(), _t20.__super__ = e.prototype, _t20;\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++) {\n e = t[n], this.manageAttachment(e);\n }\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) {\n t = n[e], i.push(t);\n }\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;) {\n if (e = e.firstChild, o(e)) {\n u = 1;\n break;\n }\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 ;\n }\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();) {\n 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\n return i;\n }, d = function d(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 p(t) {\n return g(t) === NodeFilter.FILTER_ACCEPT ? f(t) : NodeFilter.FILTER_REJECT;\n }, g = function g(t) {\n return u(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, f = function f(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 n(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n i = function i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\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++) {\n if (e in this && this[e] === t) return e;\n }\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++) {\n e = o[n], e !== t && r.push(e);\n }\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++) {\n o = n[t], i.push(o.selectionDidChange());\n }\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 s(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 h(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n p = function p(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n d.call(e, i) && (t[i] = e[i]);\n }\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 n = i[o], n.destroy();\n }\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++) {\n e = r[t], s.push(o(e, {\n onElement: document,\n withCallback: n\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 r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\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.isFocusedInvisibly() && this.setLocationRange({\n index: 0,\n offset: 0\n }), 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 test() {\n return this.editor.canUndo();\n },\n perform: function perform() {\n return this.editor.undo();\n }\n },\n redo: {\n test: function test() {\n return this.editor.canRedo();\n },\n perform: function perform() {\n return this.editor.redo();\n }\n },\n link: {\n test: function test() {\n return this.editor.canActivateAttribute(\"href\");\n }\n },\n increaseNestingLevel: {\n test: function test() {\n return this.editor.canIncreaseNestingLevel();\n },\n perform: function perform() {\n return this.editor.increaseNestingLevel() && this.render();\n }\n },\n decreaseNestingLevel: {\n test: function test() {\n return this.editor.canDecreaseNestingLevel();\n },\n perform: function perform() {\n return this.editor.decreaseNestingLevel() && this.render();\n }\n },\n attachFiles: {\n test: function test() {\n return !0;\n },\n perform: function perform() {\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) {\n e[t] = this.canInvokeAction(t);\n }\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++) {\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\n return c(a, this.composition.getSnapshot()) ? void 0 : this.composition.loadSnapshot(a);\n }, c = function c(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.prototype.isFocusedInvisibly = function () {\n return this.isFocused() && !this.getLocationRange();\n }, u;\n }(e.Controller);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n n = e.browser, s = e.makeElement, a = e.triggerEvent, o = e.handleEvent, r = e.handleEventOnce, i = e.findClosestElementFromNode, t = e.AttachmentView.attachmentSelector, e.registerElement(\"trix-editor\", function () {\n var c, l, h, p, d, f, g, m, v;\n return g = 0, l = function l(t) {\n return !document.querySelector(\":focus\") && t.hasAttribute(\"autofocus\") && document.querySelector(\"[autofocus]\") === t ? t.focus() : void 0;\n }, m = function m(t) {\n return t.hasAttribute(\"contenteditable\") ? void 0 : (t.setAttribute(\"contenteditable\", \"\"), r(\"focus\", {\n onElement: t,\n withCallback: function withCallback() {\n return h(t);\n }\n }));\n }, h = function h(t) {\n return d(t), v(t);\n }, d = function d(t) {\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"enableObjectResizing\") : void 0) ? (document.execCommand(\"enableObjectResizing\", !1, !1), o(\"mscontrolselect\", {\n onElement: t,\n preventDefault: !0\n })) : void 0;\n }, v = function v() {\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 }, c = function c(t) {\n return t.hasAttribute(\"role\") ? void 0 : t.setAttribute(\"role\", \"textbox\");\n }, f = function f(t) {\n var e;\n if (!t.hasAttribute(\"aria-label\") && !t.hasAttribute(\"aria-labelledby\")) return (e = function e() {\n var e, n, i;\n return i = function () {\n var n, i, o, r;\n\n for (o = t.labels, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], e.contains(t) || r.push(e.textContent);\n }\n\n return r;\n }(), (n = i.join(\" \")) ? t.setAttribute(\"aria-label\", n) : t.removeAttribute(\"aria-label\");\n })(), o(\"focus\", {\n onElement: t,\n withCallback: e\n });\n }, p = 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 pointer-events: none;\\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: \" + p.display + \" !important;\\n width: \" + p.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 get() {\n return this.hasAttribute(\"trix-id\") ? this.getAttribute(\"trix-id\") : (this.setAttribute(\"trix-id\", ++g), this.trixId);\n }\n },\n labels: {\n get: function get() {\n var t, e, n;\n return e = [], this.id && this.ownerDocument && e.push.apply(e, this.ownerDocument.querySelectorAll(\"label[for='\" + this.id + \"']\")), (t = i(this, {\n matchingSelector: \"label\"\n })) && ((n = t.control) === this || null === n) && e.push(t), e;\n }\n },\n toolbarElement: {\n get: function get() {\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 = s(\"trix-toolbar\", {\n id: n\n }), this.parentNode.insertBefore(t, this), t) : void 0;\n }\n },\n inputElement: {\n get: function get() {\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 = s(\"input\", {\n type: \"hidden\",\n id: e\n }), this.parentNode.insertBefore(t, this.nextElementSibling), t) : void 0;\n }\n },\n editor: {\n get: function get() {\n var t;\n return null != (t = this.editorController) ? t.editor : void 0;\n }\n },\n name: {\n get: function get() {\n var t;\n return null != (t = this.inputElement) ? t.name : void 0;\n }\n },\n value: {\n get: function get() {\n var t;\n return null != (t = this.inputElement) ? t.value : void 0;\n },\n set: function set(t) {\n var e;\n return this.defaultValue = t, null != (e = this.editor) ? e.loadHTML(this.defaultValue) : void 0;\n }\n },\n notify: function notify(t, e) {\n return this.editorController ? a(\"trix-\" + t, {\n onElement: this,\n attributes: e\n }) : void 0;\n },\n setInputElementValue: function setInputElementValue(t) {\n var e;\n return null != (e = this.inputElement) ? e.value = t : void 0;\n },\n initialize: function initialize() {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (m(this), c(this), f(this));\n },\n connect: function connect() {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (this.editorController || (a(\"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 a(\"trix-initialize\", {\n onElement: t\n });\n };\n }(this))), this.editorController.registerSelectionManager(), this.registerResetListener(), this.registerClickListener(), l(this));\n },\n disconnect: function disconnect() {\n var t;\n return null != (t = this.editorController) && t.unregisterSelectionManager(), this.unregisterResetListener(), this.unregisterClickListener();\n },\n registerResetListener: function registerResetListener() {\n return this.resetListener = this.resetBubbled.bind(this), window.addEventListener(\"reset\", this.resetListener, !1);\n },\n unregisterResetListener: function unregisterResetListener() {\n return window.removeEventListener(\"reset\", this.resetListener, !1);\n },\n registerClickListener: function registerClickListener() {\n return this.clickListener = this.clickBubbled.bind(this), window.addEventListener(\"click\", this.clickListener, !1);\n },\n unregisterClickListener: function unregisterClickListener() {\n return window.removeEventListener(\"click\", this.clickListener, !1);\n },\n resetBubbled: function resetBubbled(t) {\n var e;\n if (!t.defaultPrevented && t.target === (null != (e = this.inputElement) ? e.form : void 0)) return this.reset();\n },\n clickBubbled: function clickBubbled(t) {\n var e;\n if (!(t.defaultPrevented || this.contains(t.target) || !(e = i(t.target, {\n matchingSelector: \"label\"\n })) || u.call(this.labels, e) < 0)) return this.focus();\n },\n reset: function reset() {\n return this.value = this.defaultValue;\n }\n };\n }());\n }.call(this), function () {}.call(this);\n }).call(this), \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) && module.exports ? module.exports = e : \"function\" == typeof define && define.amd && define(e);\n}.call(this);","var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply; // DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\n\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\n\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\n\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\n\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n}; // Does not start the time, just sets up the members needed.\n\n\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n}; // setimmediate attaches itself to the global object\n\n\nrequire(\"setimmediate\"); // On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\n\n\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n } // Copy function arguments\n\n\n var args = new Array(arguments.length - 1);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n } // Store and register the task\n\n\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n\n switch (args.length) {\n case 0:\n callback();\n break;\n\n case 1:\n callback(args[0]);\n break;\n\n case 2:\n callback(args[0], args[1]);\n break;\n\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n\n if (task) {\n currentlyRunningATask = true;\n\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n\n var onGlobalMessage = function onGlobalMessage(event) {\n if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n\n registerImmediate = function registerImmediate(handle) {\n // Create a