{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@stimulus/core/dist/event_listener.js","webpack:///./node_modules/@stimulus/core/dist/dispatcher.js","webpack:///./node_modules/@stimulus/core/dist/action_descriptor.js","webpack:///./node_modules/@stimulus/core/dist/action.js","webpack:///./node_modules/@stimulus/core/dist/binding.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/element_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/attribute_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/string_map_observer.js","webpack:///./node_modules/@stimulus/multimap/dist/set_operations.js","webpack:///./node_modules/@stimulus/multimap/dist/multimap.js","webpack:///./node_modules/@stimulus/multimap/dist/indexed_multimap.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/token_list_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/value_list_observer.js","webpack:///./node_modules/@stimulus/core/dist/binding_observer.js","webpack:///./node_modules/@stimulus/core/dist/value_observer.js","webpack:///./node_modules/@stimulus/core/dist/context.js","webpack:///./node_modules/@stimulus/core/dist/inheritable_statics.js","webpack:///./node_modules/@stimulus/core/dist/blessing.js","webpack:///./node_modules/@stimulus/core/dist/module.js","webpack:///./node_modules/@stimulus/core/dist/definition.js","webpack:///./node_modules/@stimulus/core/dist/class_map.js","webpack:///./node_modules/@stimulus/core/dist/string_helpers.js","webpack:///./node_modules/@stimulus/core/dist/data_map.js","webpack:///./node_modules/@stimulus/core/dist/guide.js","webpack:///./node_modules/@stimulus/core/dist/selectors.js","webpack:///./node_modules/@stimulus/core/dist/target_set.js","webpack:///./node_modules/@stimulus/core/dist/scope.js","webpack:///./node_modules/@stimulus/core/dist/scope_observer.js","webpack:///./node_modules/@stimulus/core/dist/router.js","webpack:///./node_modules/@stimulus/core/dist/schema.js","webpack:///./node_modules/@stimulus/core/dist/application.js","webpack:///./node_modules/@stimulus/core/dist/class_properties.js","webpack:///./node_modules/@stimulus/core/dist/target_properties.js","webpack:///./node_modules/@stimulus/core/dist/value_properties.js","webpack:///./node_modules/@stimulus/core/dist/controller.js","webpack:///./app/javascript/controllers/index.js","webpack:///./node_modules/@stimulus/webpack-helpers/dist/index.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./app/javascript/controllers sync _controller\\.js$","webpack:///./app/javascript/controllers/folder_list_controller.js","webpack:///./app/javascript/controllers/hello_controller.js","webpack:///./node_modules/@rails/actiontext/app/assets/javascripts/actiontext.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/trix/dist/trix.esm.min.js","webpack:///./app/javascript/packs/application.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","EventListener","eventTarget","eventName","eventOptions","this","unorderedBindings","Set","connect","addEventListener","disconnect","removeEventListener","bindingConnected","binding","add","bindingDisconnected","delete","handleEvent","event","extendedEvent","stopImmediatePropagation_1","stopImmediatePropagation","assign","immediatePropagationStopped","extendEvent","_i","_a","bindings","length","Array","from","sort","left","right","leftIndex","index","rightIndex","configurable","Dispatcher","application","eventListenerMaps","Map","started","start","eventListeners","forEach","eventListener","stop","values","reduce","listeners","map","concat","fetchEventListenerForBinding","handleError","error","message","detail","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","cacheKey","createEventListener","set","parts","keys","push","join","descriptorPattern","parseEventTarget","eventTargetName","window","document","Action","element","descriptor","tagName","toLowerCase","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","forToken","token","descriptorString","content","matches","trim","match","split","options","replace","test","toString","eventNameSuffix","e","getAttribute","Error","Binding","context","action","willBeInvokedByEvent","invokeWithEvent","method","controller","target","Element","contains","scope","containsElement","ElementObserver","delegate","_this","elements","mutationObserver","MutationObserver","mutations","processMutations","observe","attributes","childList","subtree","refresh","takeRecords","matchElementsInTree","has","removeElement","_b","_c","addElement","mutations_1","mutation","processMutation","type","processAttributeChange","attributeName","processRemovedNodes","removedNodes","processAddedNodes","addedNodes","node","elementAttributeChanged","matchElement","nodes","elementFromNode","processTree","elementIsActive","tree","processor","nodeType","Node","ELEMENT_NODE","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","hasAttribute","querySelectorAll","selector","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","StringMapObserver","stringMap","knownAttributeNames","refreshAttribute","getStringMapKeyForAttribute","stringMapKeyAdded","stringMapValueChanged","stringMapKeyRemoved","currentAttributeNames","recordedAttributeNames","attribute","fetch","del","size","prune","extendStatics","Multimap","valuesByKey","hasKey","hasValue","some","getValuesForKey","getKeysForValue","filter","__extends","b","setPrototypeOf","__proto__","__","constructor","_super","IndexedMultimap","keysByValue","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","Math","max","_","findIndex","tokensAreEqual","slice","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","WeakMap","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","connectAction","disconnectAction","clear","ValueObserver","receiver","stringMapObserver","valueDescriptorMap","invokeChangedCallbacksForDefaultValues","attributeValue","invokeChangedCallbackForValue","valueDescriptors","name_1","undefined","defaultValue","data","Context","controllerConstructor","bindingObserver","dispatcher","valueObserver","initialize","parentElement","readInheritableStaticArrayValues","propertyName","ancestors","getAncestorsForConstructor","definition","isArray","getOwnStaticArrayValues","readInheritableStaticObjectPairs","pairs","apply","getOwnStaticObjectPairs","getPrototypeOf","reverse","__spreadArrays","il","arguments","k","a","j","jl","bless","properties","shadowConstructor","extend","shadowProperties","getOwnKeys","shadowingDescriptor","getOwnPropertyDescriptor","getShadowedDescriptor","getShadowProperties","defineProperties","shadow","blessings","blessedProperties","blessing","getBlessedProperties","getOwnPropertySymbols","getOwnPropertyNames","extendWithReflect","extended","_newTarget","Reflect","construct","Module","blessDefinition","contextsByScope","connectedContexts","connectContextForScope","fetchContextForScope","disconnectContextForScope","ClassMap","getDataKey","getAttributeName","getAttributeNameForKey","camelize","char","toUpperCase","capitalize","charAt","dasherize","DataMap","setAttribute","removeAttribute","Guide","logger","warnedKeysByObject","warn","warnedKeys","attributeValueContainsToken","TargetSet","targetName","find","targetNames","findTarget","findLegacyTarget","findAll","targets","findAllTargets","findAllLegacyTargets","getSelectorForTargetName","findElement","findAllElements","getLegacySelectorForTargetName","deprecate","targetDescriptor","targetAttribute","guide","Scope","classes","closest","controllerSelector","queryElements","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","createScopeForElementAndIdentifier","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","contexts","loadDefinition","unloadIdentifier","connectModule","disconnectModule","getContextForElementAndIdentifier","defaultSchema","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","__generator","body","f","y","g","label","sent","trys","ops","verb","iterator","v","op","TypeError","pop","Application","documentElement","console","router","readyState","register","load","head","rest","definitions","unload","identifiers","getControllerForElementAndIdentifier","ClassPropertiesBlessing","classDefinition","TargetPropertiesBlessing","targetDefinition","ValuePropertiesBlessing","valueDefinitionPairs","propertyDescriptorMap","valueDefinitionPair","valueDescriptor","parseValueDefinitionPair","read","readers","write","writers","default","propertiesForValueDefinitionPair","typeConstant","Boolean","Number","String","parseValueTypeConstant","defaultValuesByType","valueDescriptorForTokenAndType","array","boolean","number","string","JSON","parse","parseFloat","writeJSON","stringify","Controller","require","logicalName","identifierForContextKey","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","querySelector","cspNonce","expando","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","setData","$","csrfParam","csrfToken","meta","CSRFProtection","xhr","setRequestHeader","refreshCSRFTokens","param","input","CustomEvent","fire","preventDefault","params","evt","createEvent","initCustomEvent","bubbles","cancelable","Event","defaultPrevented","obj","dispatchEvent","stopEverything","stopPropagation","eventType","handler","parentNode","AcceptHeaders","createXHR","prepareOptions","processResponse","text","html","xml","json","script","ajax","response","responseText","getResponseHeader","floor","status","success","statusText","complete","beforeSend","XMLHttpRequest","OPENED","send","url","location","href","indexOf","dataType","accept","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","createElement","appendChild","removeChild","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","inputs","disabled","option","selected","checked","encodeURIComponent","formElements","form","el","allowAction","handleConfirm","confirm","answer","callback","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","handleMethod","formContent","link","style","display","click","isRemote","handleRemote","button","enctype","FormData","append","args","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","ajaxPrefilter","originalOptions","_rails_loaded","setTimeout","webpackContext","req","id","webpackContextResolve","code","foldersTarget","nameTarget","doToggle","formContainerTarget","classList","toggle","newFolderButtonTarget","outputTarget","textContent","activestorage","sparkMd5","factory","undefined$1","hex_chr","md5cycle","x","md5blk","md5blks","charCodeAt","md5blk_array","md51","tail","tmp","lo","hi","state","substring","parseInt","md51_array","subarray","Uint8Array","rhex","hex","toUtf8","str","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","fromCharCode","concatenateArrayBuffers","first","second","byteLength","buffer","hexToBinaryString","bytes","substr","SparkMD5","reset","clamp","val","min","to","num","targetArray","sourceArray","begin","end","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","destroy","hashBinary","fileSlice","File","mozSlice","webkitSlice","FileChecksum","static","file","chunkSize","chunkCount","ceil","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","getMetaValue","findElements","root","eventInit","initEvent","BlobRecord","checksum","filename","content_type","byte_size","responseType","requestDidLoad","requestDidError","_this$xhr","blob","direct_upload","directUploadData","toJSON","BlobUpload","_blob$directUploadDat","headers","_this$xhr2","DirectUpload","notify","upload","_len","messages","_key","DirectUploadController","directUpload","dispatch","hiddenInput","insertAdjacentElement","dispatchError","signed_id","uploadRequestDidProgress","progress","loaded","total","alert","directUploadWillCreateBlobWithXHR","directUploadWillStoreFileWithXHR","inputSelector","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","shift","processingAttribute","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","disable","enable","submitForm","focus","autostart","ActiveStorage","AttachmentUpload","attachment","directUploadUrl","directUploadDidComplete","setUploadProgress","setAttributes","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate","dataset","Function","_toArray","_arrayWithHoles","iter","_iterableToArray","_unsupportedIterableToArray","_nonIterableRest","_slicedToArray","_s","_e","_x","_r","_arr","_n","_d","err","return","_iterableToArrayLimit","minLen","_arrayLikeToArray","len","arr2","preview","presentation","caption","quote","nestable","heading1","terminal","breakOnReturn","group","plaintext","bulletList","bullet","listAttribute","numberList","attachmentGallery","exclusive","navigator","userAgent","composesExistingText","recentAndroid","samsungAndroid","forcesObjectResizing","supportsInputEvents","InputEvent","every","attachFiles","bold","bullets","byte","captionPlaceholder","indent","italic","numbers","outdent","redo","remove","strike","undo","unlink","urlPlaceholder","GB","KB","MB","PB","TB","prefix","precision","formatter","log","pow","toFixed","h","u","_ref","onElement","matchingSelector","withCallback","inPhase","times","_ref2","_ref3","untilNode","activeElement","previousSibling","A","_ref4","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","C","editable","contenteditable","className","childNodes","R","S","E","D","firstChild","includes","L","_ref5","strict","w","COMMENT_NODE","T","_ref6","I","trixCursorTarget","F","B","TEXT_NODE","level2Enabled","getLevel","pickFiles","multiple","hidden","fileInputId","getElementById","N","removeBlankTableCells","tableCellSeparator","tableRowSeparator","O","inheritable","getComputedStyle","fontWeight","fontStyle","groupTagName","frozen","backgroundColor","M","getDefaultHTML","interval","W","freeze","attachments","blockAttributes","browser","css","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","fileSize","keyNames","lang","textAttributes","toolbar","U","_q","q","toMethod","toProperty","optional","V","z","RegExp","H","J","K","fromUCS2String","Y","Q","super","ucs2String","codepoints","ucs2Length","offsetToUCS2Offset","offsetFromUCS2Offset","fromCodepoints","isEqualTo","box","getCacheKey","G","codePointAt","X","fromCodePoint","Z","tt","fromJSON","hasSameConstructorAs","inspect","contentsForInspection","toJSONString","toUTF16String","et","it","splice","nt","rt","dir","dirName","ot","st","at","lt","ct","gt","ut","ht","dt","mt","pt","ft","insertBefore","bt","vt","At","xt","platform","yt","Ct","Rt","St","Lt","Et","_St2","Dt","kt","_St4","_St6","wt","update","run","selectionManagers","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","It","Tt","domRange","requestAnimationFrame","startContainer","startOffset","endContainer","endOffset","Ft","Bt","getSelection","rangeCount","getRangeAt","Nt","Pt","removeAllRanges","addRange","Ot","Mt","jt","Wt","source","Ut","qt","utf16String","offset","Vt","Jt","getKeys","getKeysCommonToHash","Ht","merge","zt","_t","Kt","isEmpty","toObject","Gt","_ref7","depth","asTree","canBeGrouped","canBeGroupedWith","_ref8","objects","groupObjects","getObjects","getDepth","$t","Xt","Yt","trixStoreKey","Qt","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","promise","perform","release","cancel","proxyMethod","Zt","childViews","rootView","getNodes","createNodes","cloneNode","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","te","getAllChildViews","findElementForObject","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","objectGroup","getChildViews","createContainerElement","ee","ie","uploadProgressDelegate","attachmentPiece","piece","createContentNodes","getClassName","getHref","tabindex","hasContent","getContent","createCaptionElement","isPending","progressElement","class","getUploadProgress","trixMutable","ne","getCaption","getCaptionConfig","getFilename","getFormattedFilesize","createTextNode","getType","getExtension","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","re","findProgressElement","attachmentDidChangeUploadProgress","oe","previewDelegate","image","src","updateAttributesForImage","getURL","getPreviewURL","getWidth","getHeight","width","height","attachmentDidChangeAttributes","se","getAttributes","textConfig","createAttachmentNodes","createStringNodes","firstElementChild","isPreviewable","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","ae","getPieces","le","ce","he","block","createComment","getLastAttribute","shouldAddExtraNewlineElement","isRTL","getBlockBreakPosition","ue","render","sync","elementStore","setDocument","shadowElement","getBlocks","isSynced","ge","createDocumentFragmentForSync","lastChild","didSync","de","createDocumentFragment","replaceChild","me","pe","wrapped","fe","arg","_invoke","be","writable","asyncIterator","throw","ve","types","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","copy","getAttributesHash","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","Ae","Image","onload","naturalWidth","naturalHeight","onerror","xe","attributesForFile","setFile","filesize","contentType","releaseFile","didChangeAttributes","preloadURL","previewablePattern","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","URL","createObjectURL","revokeObjectURL","catch","ye","ensureAttachmentExclusivelyHasAttribute","removeProhibitedAttributes","permittedAttributes","toConsole","registerType","Ce","consolidateWith","splitAtOffset","Re","eachObject","insertObjectAtIndex","insertSplittableListAtIndex","insertSplittableListAtPosition","_this$splitObjectAtPo2","splitObjectAtPosition","editObjectAtIndex","replaceObjectAtIndex","removeObjectAtIndex","getObjectAtIndex","getSplittableListInRange","_this$splitObjectsAtR2","splitObjectsAtRange","selectSplittableList","removeObjectsInRange","_this$splitObjectsAtR4","transformObjectsInRange","_this$splitObjectsAtR6","_this$constructor$spl2","_this$splitObjectAtPo4","Ee","ke","getObjectAtPosition","findIndexAndOffsetAtPosition","_this$findIndexAndOff2","_t$splitAtOffset2","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","endPosition","Se","Le","pieceList","copyWithPieceList","copyUsingObjectMap","appendText","insertTextAtPosition","removeTextAtRange","replaceTextAtRange","moveTextFromRangeToPosition","getTextAtRange","addAttributeAtRange","addAttributesAtRange","removeAttributeAtRange","setAttributesAtRange","getAttributesAtPosition","getCommonAttributes","fromCommonAttributesOfObjects","getCommonAttributesAtRange","getExpandedRangeForAttributeAtOffset","getStringAtRange","getStringAtPosition","startsWithString","endsWithString","getAttachmentPieces","getAttachments","getAttachmentAndPositionById","position","getAttachmentById","getRangeOfAttachment","updateAttributesForAttachment","eachPiece","getPieceAtPosition","toSerializableText","getDirection","De","we","copyWithText","copyWithoutText","copyWithoutAttributes","addAttribute","Ne","Me","removeLastAttribute","Oe","getAttributeLevel","getAttributeAtLevel","hasAttributes","getLastNestableAttribute","getNestableAttributes","getNestingLevel","decreaseNestingLevel","increaseNestingLevel","lastIndexOf","getListItemAttributes","isListItem","isTerminalBlock","breaksOnReturn","findLineBreakInDirectionFromPosition","textForStringWithAttributes","getTextWithoutBlockBreak","Ie","Te","Be","Pe","Fe","blockBreak","je","blockList","getBlockAtIndex","consolidateBlocks","copyUsingObjectsFromDocument","copyWithBaseBlockAttributes","replaceBlock","insertDocumentAtRange","_this$locationFromPos","locationFromPosition","getBlockAtPosition","mergeDocumentAtRange","getBaseBlockAttributes","getBlockCount","insertTextAtRange","_this$locationFromPos2","_t3","_Array$from2","locationRangeFromRange","_t5","getDocumentAtRange","_o$getBlocks2","eachBlockAtRange","eachBlock","getTextAtIndex","removeAttributeForAttachment","insertBlockBreakAtRange","applyBlockAttributeAtRange","expandRangeToLineBreaksAndSplitBlocks","range","removeLastListAttributeAtRange","exceptAttributeName","convertLineBreaksToBlockBreaksInRange","removeBlockAttributesAtRange","removeLastTerminalAttributeAtRange","consolidateBlocksAtRange","_t9","positionFromLocation","_t13","getTextAtPosition","_this$locationFromPos7","getCharacterAtPosition","_this$locationFromPos8","getEditCount","editCount","_t15","getCommonAttributesAtPosition","We","_this$locationFromPos9","getRangeOfCommonAttributeAtPosition","_this$locationFromPos10","_Array$from6","getLocationRangeOfAttachment","getAttachmentPieceForAttachment","findRangesForBlockAttribute","findRangesForTextAttribute","withValue","locationRangeFromPosition","_Array$from8","rangeFromLocationRange","getTexts","toSerializableDocument","Ue","qe","Ve","ze","sanitize","_ref10","allowedAttributes","forbiddenProtocols","forbiddenElements","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","currentNode","elementIsRemovable","sanitizeElement","previousElementSibling","elementIsForbidden","elementIsntSerializable","implementation","createHTMLDocument","He","Je","Ke","referenceElement","blocks","blockElements","processedElements","getDocument","createHiddenContainer","containerElement","Ye","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","nextSibling","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","appendStringWithAttributes","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","Ge","ti","Qe","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","needsTableSeparator","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","unshift","findBlockElementAncestors","Ze","$e","getMarginOfDefaultBlockElement","getMarginOfBlockElementAtIndex","top","bottom","Xe","whiteSpace","marginTop","marginBottom","FILTER_REJECT","FILTER_ACCEPT","ei","ii","ni","ri","HTMLElement","oi","si","attachmentManager","requestRemovalOfAttachment","ai","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","li","composition","getSelectedRange","startPosition","startLocation","endLocation","previousCharacter","nextCharacter","shouldInsertBlockBreak","shouldBreakFormattedBlock","shouldDecreaseListLevel","shouldPrependListItem","shouldRemoveLastBlockAttribute","ci","currentAttributes","revision","refreshAttachments","compositionDidChangeDocument","getSnapshot","selectedRange","loadSnapshot","compositionWillLoadSnapshot","setSelection","compositionDidLoadSnapshot","insertText","updatePosition","notifyDelegateOfInsertionAtRange","insertBlock","insertDocument","insertString","getCurrentTextAttributes","insertBlockBreak","insertLineBreak","decreaseListLevel","removeLastBlockAttribute","breakFormattedBlock","insertHTML","replaceHTML","getLocationRange","insertFile","insertFiles","compositionShouldAcceptFile","attachmentForFile","insertAttachments","insertAttachment","textForAttachmentWithAttributes","shouldManageDeletingInDirection","shouldManageMovingCursorInDirection","deleteInDirection","canDecreaseBlockAttributeLevel","getBlock","decreaseBlockAttributeLevel","getExpandedRangeInDirection","getAttachmentAtRange","editAttachment","moveTextFromRange","removeAttachment","stopEditingAttachment","_Array$from12","removeCurrentAttribute","insertPlaceholder","placeholderPosition","getPosition","selectPlaceholder","setSelectedRange","forgetPlaceholder","hasCurrentAttribute","toggleCurrentAttribute","setCurrentAttribute","canSetCurrentAttribute","canSetCurrentBlockAttribute","canSetCurrentTextAttribute","getSelectedDocument","setBlockAttribute","setTextAttribute","notifyDelegateOfCurrentAttributesChange","_Array$from14","removeBlockAttribute","updateCurrentAttributes","removeTextAttribute","canDecreaseNestingLevel","canIncreaseNestingLevel","getPreviousBlock","ignoreLock","getCurrentAttributes","freezeSelection","thawSelection","hasFrozenSelection","compositionDidRequestChangingSelectionToLocationRange","getSelectionManager","setLocationRange","targetLocationRange","withTargetLocationRange","withTargetRange","withTargetDOMRange","createLocationRangeFromDOMRange","_Array$from18","translateUTF16PositionFromOffset","editingAttachment","moveCursorInDirection","expandSelectionInDirection","expandSelectionForEditing","expandSelectionAroundCommonAttribute","selectionContainsAttachments","getSelectedAttachments","selectionIsInCursorTarget","positionIsCursorTarget","locationIsCursorTarget","positionIsBlockBreak","_ref16","added","removed","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","undoEntries","redoEntries","recordUndoEntry","_ref17","consolidatable","ui","createEntry","description","snapshot","canUndo","canRedo","_ref18","di","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","gi","mi","pi","selectionManager","undoManager","filters","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","_ref19","fi","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","xi","bi","findContainerAndOffsetFromLocation","_this$findNodeAndOffs2","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","vi","Ai","yi","createDOMRangeFromPoint","caretPositionFromPoint","_document$caretPositi","offsetNode","createRange","setStart","caretRangeFromPoint","createTextRange","moveToPoint","select","getClientRectsForDOMRange","getClientRects","Ci","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","setLocationRangeFromPointRange","getLocationAtPoint","lock","unlock","clearSelection","selectionIsCollapsed","collapsed","selectionIsExpanded","domRangeWithinElement","pauseTemporarily","paused","clearTimeout","locationRangeDidChange","setEnd","Ri","Attachment","AttachmentManager","AttachmentPiece","Block","Composition","Document","Editor","HTMLParser","HTMLSanitizer","LineBreakInsertion","LocationMapper","ManagedAttachment","Piece","PointMapper","SelectionManager","SplittableList","StringPiece","Text","UndoManager","Si","Ei","ki","Li","Di","do","undos","wi","title","trixAction","didClickToolbar","didClickActionButton","placeholder","tabIndex","scrollHeight","didInputCaption","didKeyDownCaption","didChangeCaption","didBlurCaption","editCaption","container","install","makeElementMutable","addToolbar","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","attachmentEditorDidRequestRemovalOfAttachment","keyCode","attachmentEditorDidRequestDeselectingAttachment","Ti","didFocus","didBlur","didClickAttachment","documentView","focused","compositionControllerDidFocus","blurPromise","compositionControllerDidBlur","findAttachmentForElement","compositionControllerDidSelectAttachment","getSerializableElement","isEditingAttachment","canSyncDocumentView","compositionControllerWillSyncDocumentView","compositionControllerDidSyncDocumentView","compositionControllerDidRender","rerenderViewForObject","refreshViewCache","attachmentEditor","installAttachmentEditorForAttachment","uninstallAttachmentEditor","compositionControllerWillUpdateAttachment","compositionControllerDidRequestRemovalOfAttachment","compositionControllerDidRequestDeselectingAttachment","Fi","Bi","Ii","characterData","characterDataOldValue","Pi","didMutate","observer","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","_this$getTextChangesF","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","Ni","_Ut2","_Ut4","oldValue","Oi","abort","Mi","shouldIgnore","previousEvent","checkSamsungKeyboardBuggyModeStart","checkSamsungKeyboardBuggyModeEnd","buggyMode","insertingLongTextAfterUnidentifiedChar","ji","innerText","inputType","isBeforeInputInsertText","previousEventWasUnidentifiedKeydown","Wi","Ui","flakyKeyboardDetector","events","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","all","handleInput","inputControllerWillAttachFiles","responder","inputControllerWillHandleInput","inputControllerDidHandleInput","createLinkHTML","outerHTML","qi","Vi","zi","Hi","resetInputSummary","setInputSummary","inputSummary","isComposing","inputControllerDidAllowUnhandledInput","mutationIsExpected","preferDocument","didDelete","compositionInput","getEndData","getCompositionInput","Xi","isEnded","serializeSelectionToDataTransfer","canAcceptDataTransfer","Files","getPastedHTMLUsingHiddenElement","pageXOffset","pageYOffset","opacity","keydown","didInput","keyName","inputControllerDidReceiveKeyboardCommand","keypress","altKey","Gi","inputControllerWillPerformTyping","textInput","dragenter","dragstart","dataTransfer","draggedRange","inputControllerDidStartDrag","dragover","clientX","clientY","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","drop","inputControllerWillMoveText","fromJSONString","cut","clipboardData","inputControllerWillCutText","paste","testClipboardData","clipboard","$i","inputControllerWillPaste","inputControllerDidPaste","items","getAsFile","Ji","compositionstart","compositionupdate","compositionend","beforeinput","backspace","tab","control","alt","Ki","which","charCode","inputController","isSignificant","canApplyToDocument","Yi","scheduledRender","composing","reparse","scheduleRender","cancelAnimationFrame","afterRender","toggleAttributeIfSupported","inputControllerWillPerformFormatting","activateAttributeIfSupported","getTargetDOMRange","minLength","getTargetRanges","Qi","withEvent","nn","shiftKey","tn","en","inputTypes","dragging","point","rn","Zi","ArrowLeft","ArrowRight","Backspace","Tab","deleteByComposition","deleteByCut","deleteByDrag","deleteByDragRange","deleteCompositionText","deleteContent","deleteContentBackward","deleteContentForward","deleteEntireSoftLine","deleteHardLineBackward","deleteHardLineForward","deleteSoftLineBackward","deleteSoftLineForward","deleteWordBackward","deleteWordForward","formatBackColor","formatBold","formatFontColor","formatFontName","formatIndent","formatItalic","formatJustifyCenter","formatJustifyFull","formatJustifyLeft","formatJustifyRight","formatOutdent","formatRemove","formatSetBlockTextDirection","formatSetInlineTextDirection","formatStrikeThrough","formatSubscript","formatSuperscript","formatUnderline","historyRedo","inputControllerWillPerformRedo","historyUndo","inputControllerWillPerformUndo","insertCompositionText","insertFromComposition","insertFromDrop","insertFromPaste","insertFromYank","insertLink","insertOrderedList","insertParagraph","insertReplacementText","insertTranspose","insertUnorderedList","on","sn","an","ln","cn","un","hn","dn","didClickAttributeButton","didClickDialogButton","didKeyDownDialogInput","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","toolbarDidShowDialog","willValidate","checkValidity","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","gn","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","_t18","updateInputElement","setInputElementValue","documentChangedSinceLastRender","getUndoContext","getLocationContext","getTimeContext","Date","getTime","ownerDocument","mn","AttachmentEditorController","CompositionController","EditorController","InputController","Level0InputController","Level2InputController","ToolbarController","pn","SelectionChangeObserver","fn","FileVerificationOperation","ImagePreloadOperation","bn","connectedCallback","vn","xn","yn","Cn","queryCommandSupported","execCommand","Rn","Sn","labels","inputElement","nextElementSibling","editorController","An","registerResetListener","registerClickListener","disconnectedCallback","unregisterResetListener","unregisterClickListener","resetListener","resetBubbled","clickListener","clickBubbled","En","VERSION","config","core","models","views","observers","operations","TrixEditorElement","TrixToolbarElement","Filter","attachmentGalleryFilter","Trix","customElements","define"],"mappings":"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","file":"js/application-7435da2bb43905993e60.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 8);\n","var EventListener = /** @class */function () {\n function EventListener(eventTarget, eventName, eventOptions) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n EventListener.prototype.connect = function () {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n };\n EventListener.prototype.disconnect = function () {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n };\n // Binding observer delegate\n /** @hidden */\n EventListener.prototype.bindingConnected = function (binding) {\n this.unorderedBindings.add(binding);\n };\n /** @hidden */\n EventListener.prototype.bindingDisconnected = function (binding) {\n this.unorderedBindings.delete(binding);\n };\n EventListener.prototype.handleEvent = function (event) {\n var extendedEvent = extendEvent(event);\n for (var _i = 0, _a = this.bindings; _i < _a.length; _i++) {\n var binding = _a[_i];\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n };\n Object.defineProperty(EventListener.prototype, \"bindings\", {\n get: function () {\n return Array.from(this.unorderedBindings).sort(function (left, right) {\n var leftIndex = left.index,\n rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n },\n enumerable: false,\n configurable: true\n });\n return EventListener;\n}();\nexport { EventListener };\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var stopImmediatePropagation_1 = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function () {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation_1.call(this);\n }\n });\n }\n}","import { EventListener } from \"./event_listener\";\nvar Dispatcher = /** @class */function () {\n function Dispatcher(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n Dispatcher.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n };\n Dispatcher.prototype.stop = function () {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n };\n Object.defineProperty(Dispatcher.prototype, \"eventListeners\", {\n get: function () {\n return Array.from(this.eventListenerMaps.values()).reduce(function (listeners, map) {\n return listeners.concat(Array.from(map.values()));\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n // Binding observer delegate\n /** @hidden */\n Dispatcher.prototype.bindingConnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n };\n /** @hidden */\n Dispatcher.prototype.bindingDisconnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n };\n // Error handling\n Dispatcher.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n this.application.handleError(error, \"Error \" + message, detail);\n };\n Dispatcher.prototype.fetchEventListenerForBinding = function (binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName,\n eventOptions = binding.eventOptions;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n };\n Dispatcher.prototype.fetchEventListener = function (eventTarget, eventName, eventOptions) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var cacheKey = this.cacheKey(eventName, eventOptions);\n var eventListener = eventListenerMap.get(cacheKey);\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n eventListenerMap.set(cacheKey, eventListener);\n }\n return eventListener;\n };\n Dispatcher.prototype.createEventListener = function (eventTarget, eventName, eventOptions) {\n var eventListener = new EventListener(eventTarget, eventName, eventOptions);\n if (this.started) {\n eventListener.connect();\n }\n return eventListener;\n };\n Dispatcher.prototype.fetchEventListenerMapForEventTarget = function (eventTarget) {\n var eventListenerMap = this.eventListenerMaps.get(eventTarget);\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n return eventListenerMap;\n };\n Dispatcher.prototype.cacheKey = function (eventName, eventOptions) {\n var parts = [eventName];\n Object.keys(eventOptions).sort().forEach(function (key) {\n parts.push(\"\" + (eventOptions[key] ? \"\" : \"!\") + key);\n });\n return parts.join(\":\");\n };\n return Dispatcher;\n}();\nexport { Dispatcher };","// capture nos.: 12 23 4 43 1 5 56 7 768 9 98\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;\nexport function parseActionDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n eventOptions: matches[9] ? parseEventOptions(matches[9]) : {},\n identifier: matches[5],\n methodName: matches[7]\n };\n}\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n } else if (eventTargetName == \"document\") {\n return document;\n }\n}\nfunction parseEventOptions(eventOptions) {\n return eventOptions.split(\":\").reduce(function (options, token) {\n var _a;\n return Object.assign(options, (_a = {}, _a[token.replace(/^!/, \"\")] = !/^!/.test(token), _a));\n }, {});\n}\nexport function stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}","import { parseActionDescriptorString, stringifyEventTarget } from \"./action_descriptor\";\nvar Action = /** @class */function () {\n function Action(element, index, descriptor) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.eventOptions = descriptor.eventOptions || {};\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n Action.forToken = function (token) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content));\n };\n Action.prototype.toString = function () {\n var eventNameSuffix = this.eventTargetName ? \"@\" + this.eventTargetName : \"\";\n return \"\" + this.eventName + eventNameSuffix + \"->\" + this.identifier + \"#\" + this.methodName;\n };\n Object.defineProperty(Action.prototype, \"eventTargetName\", {\n get: function () {\n return stringifyEventTarget(this.eventTarget);\n },\n enumerable: false,\n configurable: true\n });\n return Action;\n}();\nexport { Action };\nvar defaultEventNames = {\n \"a\": function (e) {\n return \"click\";\n },\n \"button\": function (e) {\n return \"click\";\n },\n \"form\": function (e) {\n return \"submit\";\n },\n \"input\": function (e) {\n return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\";\n },\n \"select\": function (e) {\n return \"change\";\n },\n \"textarea\": function (e) {\n return \"input\";\n }\n};\nexport function getDefaultEventNameForElement(element) {\n var tagName = element.tagName.toLowerCase();\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\nfunction error(message) {\n throw new Error(message);\n}","var Binding = /** @class */function () {\n function Binding(context, action) {\n this.context = context;\n this.action = action;\n }\n Object.defineProperty(Binding.prototype, \"index\", {\n get: function () {\n return this.action.index;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventTarget\", {\n get: function () {\n return this.action.eventTarget;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventOptions\", {\n get: function () {\n return this.action.eventOptions;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"identifier\", {\n get: function () {\n return this.context.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Binding.prototype.handleEvent = function (event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n };\n Object.defineProperty(Binding.prototype, \"eventName\", {\n get: function () {\n return this.action.eventName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"method\", {\n get: function () {\n var method = this.controller[this.methodName];\n if (typeof method == \"function\") {\n return method;\n }\n throw new Error(\"Action \\\"\" + this.action + \"\\\" references undefined method \\\"\" + this.methodName + \"\\\"\");\n },\n enumerable: false,\n configurable: true\n });\n Binding.prototype.invokeWithEvent = function (event) {\n try {\n this.method.call(this.controller, event);\n } catch (error) {\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element,\n index = _a.index;\n var detail = {\n identifier: identifier,\n controller: controller,\n element: element,\n index: index,\n event: event\n };\n this.context.handleError(error, \"invoking action \\\"\" + this.action + \"\\\"\", detail);\n }\n };\n Binding.prototype.willBeInvokedByEvent = function (event) {\n var eventTarget = event.target;\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 Object.defineProperty(Binding.prototype, \"controller\", {\n get: function () {\n return this.context.controller;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"methodName\", {\n get: function () {\n return this.action.methodName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"scope\", {\n get: function () {\n return this.context.scope;\n },\n enumerable: false,\n configurable: true\n });\n return Binding;\n}();\nexport { Binding };","var ElementObserver = /** @class */function () {\n function ElementObserver(element, delegate) {\n var _this = this;\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 ElementObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n childList: true,\n subtree: true\n });\n this.refresh();\n }\n };\n ElementObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n ElementObserver.prototype.refresh = function () {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n for (var _i = 0, _a = Array.from(this.elements); _i < _a.length; _i++) {\n var element = _a[_i];\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n for (var _b = 0, _c = Array.from(matches); _b < _c.length; _b++) {\n var element = _c[_b];\n this.addElement(element);\n }\n }\n };\n // Mutation record processing\n ElementObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n ElementObserver.prototype.processMutation = function (mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n } else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n };\n ElementObserver.prototype.processAttributeChange = function (node, attributeName) {\n var element = node;\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 ElementObserver.prototype.processRemovedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n };\n ElementObserver.prototype.processAddedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n };\n // Element matching\n ElementObserver.prototype.matchElement = function (element) {\n return this.delegate.matchElement(element);\n };\n ElementObserver.prototype.matchElementsInTree = function (tree) {\n if (tree === void 0) {\n tree = this.element;\n }\n return this.delegate.matchElementsInTree(tree);\n };\n ElementObserver.prototype.processTree = function (tree, processor) {\n for (var _i = 0, _a = this.matchElementsInTree(tree); _i < _a.length; _i++) {\n var element = _a[_i];\n processor.call(this, element);\n }\n };\n ElementObserver.prototype.elementFromNode = function (node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n };\n ElementObserver.prototype.elementIsActive = function (element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n };\n // Element tracking\n ElementObserver.prototype.addElement = function (element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n };\n ElementObserver.prototype.removeElement = function (element) {\n if (this.elements.has(element)) {\n this.elements.delete(element);\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n };\n return ElementObserver;\n}();\nexport { ElementObserver };","import { ElementObserver } from \"./element_observer\";\nvar AttributeObserver = /** @class */function () {\n function AttributeObserver(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n Object.defineProperty(AttributeObserver.prototype, \"element\", {\n get: function () {\n return this.elementObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AttributeObserver.prototype, \"selector\", {\n get: function () {\n return \"[\" + this.attributeName + \"]\";\n },\n enumerable: false,\n configurable: true\n });\n AttributeObserver.prototype.start = function () {\n this.elementObserver.start();\n };\n AttributeObserver.prototype.stop = function () {\n this.elementObserver.stop();\n };\n AttributeObserver.prototype.refresh = function () {\n this.elementObserver.refresh();\n };\n Object.defineProperty(AttributeObserver.prototype, \"started\", {\n get: function () {\n return this.elementObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n // Element observer delegate\n AttributeObserver.prototype.matchElement = function (element) {\n return element.hasAttribute(this.attributeName);\n };\n AttributeObserver.prototype.matchElementsInTree = function (tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n };\n AttributeObserver.prototype.elementMatched = function (element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n };\n AttributeObserver.prototype.elementUnmatched = function (element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n };\n AttributeObserver.prototype.elementAttributeChanged = function (element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n };\n return AttributeObserver;\n}();\nexport { AttributeObserver };","var StringMapObserver = /** @class */function () {\n function StringMapObserver(element, delegate) {\n var _this = this;\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n StringMapObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true\n });\n this.refresh();\n }\n };\n StringMapObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n StringMapObserver.prototype.refresh = function () {\n if (this.started) {\n for (var _i = 0, _a = this.knownAttributeNames; _i < _a.length; _i++) {\n var attributeName = _a[_i];\n this.refreshAttribute(attributeName);\n }\n }\n };\n // Mutation record processing\n StringMapObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n StringMapObserver.prototype.processMutation = function (mutation) {\n var attributeName = mutation.attributeName;\n if (attributeName) {\n this.refreshAttribute(attributeName);\n }\n };\n // State tracking\n StringMapObserver.prototype.refreshAttribute = function (attributeName) {\n var key = this.delegate.getStringMapKeyForAttribute(attributeName);\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n var value = this.element.getAttribute(attributeName);\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key);\n }\n if (value == null) {\n this.stringMap.delete(attributeName);\n this.stringMapKeyRemoved(key, attributeName);\n } else {\n this.stringMap.set(attributeName, value);\n }\n }\n };\n StringMapObserver.prototype.stringMapKeyAdded = function (key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n };\n StringMapObserver.prototype.stringMapValueChanged = function (value, key) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key);\n }\n };\n StringMapObserver.prototype.stringMapKeyRemoved = function (key, attributeName) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName);\n }\n };\n Object.defineProperty(StringMapObserver.prototype, \"knownAttributeNames\", {\n get: function () {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StringMapObserver.prototype, \"currentAttributeNames\", {\n get: function () {\n return Array.from(this.element.attributes).map(function (attribute) {\n return attribute.name;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StringMapObserver.prototype, \"recordedAttributeNames\", {\n get: function () {\n return Array.from(this.stringMap.keys());\n },\n enumerable: false,\n configurable: true\n });\n return StringMapObserver;\n}();\nexport { StringMapObserver };","export function add(map, key, value) {\n fetch(map, key).add(value);\n}\nexport function del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\nexport function fetch(map, key) {\n var values = map.get(key);\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n return values;\n}\nexport function prune(map, key) {\n var values = map.get(key);\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}","import { add, del } from \"./set_operations\";\nvar Multimap = /** @class */function () {\n function Multimap() {\n this.valuesByKey = new Map();\n }\n Object.defineProperty(Multimap.prototype, \"values\", {\n get: function () {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) {\n return values.concat(Array.from(set));\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Multimap.prototype, \"size\", {\n get: function () {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) {\n return size + set.size;\n }, 0);\n },\n enumerable: false,\n configurable: true\n });\n Multimap.prototype.add = function (key, value) {\n add(this.valuesByKey, key, value);\n };\n Multimap.prototype.delete = function (key, value) {\n del(this.valuesByKey, key, value);\n };\n Multimap.prototype.has = function (key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n };\n Multimap.prototype.hasKey = function (key) {\n return this.valuesByKey.has(key);\n };\n Multimap.prototype.hasValue = function (value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n };\n Multimap.prototype.getValuesForKey = function (key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n };\n Multimap.prototype.getKeysForValue = function (value) {\n return Array.from(this.valuesByKey).filter(function (_a) {\n var key = _a[0],\n values = _a[1];\n return values.has(value);\n }).map(function (_a) {\n var key = _a[0],\n values = _a[1];\n return key;\n });\n };\n return Multimap;\n}();\nexport { Multimap };","var __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nimport { Multimap } from \"./multimap\";\nimport { add, del } from \"./set_operations\";\nvar IndexedMultimap = /** @class */function (_super) {\n __extends(IndexedMultimap, _super);\n function IndexedMultimap() {\n var _this = _super.call(this) || this;\n _this.keysByValue = new Map();\n return _this;\n }\n Object.defineProperty(IndexedMultimap.prototype, \"values\", {\n get: function () {\n return Array.from(this.keysByValue.keys());\n },\n enumerable: false,\n configurable: true\n });\n IndexedMultimap.prototype.add = function (key, value) {\n _super.prototype.add.call(this, key, value);\n add(this.keysByValue, value, key);\n };\n IndexedMultimap.prototype.delete = function (key, value) {\n _super.prototype.delete.call(this, key, value);\n del(this.keysByValue, value, key);\n };\n IndexedMultimap.prototype.hasValue = function (value) {\n return this.keysByValue.has(value);\n };\n IndexedMultimap.prototype.getKeysForValue = function (value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n };\n return IndexedMultimap;\n}(Multimap);\nexport { IndexedMultimap };","import { AttributeObserver } from \"./attribute_observer\";\nimport { Multimap } from \"@stimulus/multimap\";\nvar TokenListObserver = /** @class */function () {\n function TokenListObserver(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n Object.defineProperty(TokenListObserver.prototype, \"started\", {\n get: function () {\n return this.attributeObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n TokenListObserver.prototype.start = function () {\n this.attributeObserver.start();\n };\n TokenListObserver.prototype.stop = function () {\n this.attributeObserver.stop();\n };\n TokenListObserver.prototype.refresh = function () {\n this.attributeObserver.refresh();\n };\n Object.defineProperty(TokenListObserver.prototype, \"element\", {\n get: function () {\n return this.attributeObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TokenListObserver.prototype, \"attributeName\", {\n get: function () {\n return this.attributeObserver.attributeName;\n },\n enumerable: false,\n configurable: true\n });\n // Attribute observer delegate\n TokenListObserver.prototype.elementMatchedAttribute = function (element) {\n this.tokensMatched(this.readTokensForElement(element));\n };\n TokenListObserver.prototype.elementAttributeValueChanged = function (element) {\n var _a = this.refreshTokensForElement(element),\n unmatchedTokens = _a[0],\n matchedTokens = _a[1];\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n };\n TokenListObserver.prototype.elementUnmatchedAttribute = function (element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n };\n TokenListObserver.prototype.tokensMatched = function (tokens) {\n var _this = this;\n tokens.forEach(function (token) {\n return _this.tokenMatched(token);\n });\n };\n TokenListObserver.prototype.tokensUnmatched = function (tokens) {\n var _this = this;\n tokens.forEach(function (token) {\n return _this.tokenUnmatched(token);\n });\n };\n TokenListObserver.prototype.tokenMatched = function (token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n };\n TokenListObserver.prototype.tokenUnmatched = function (token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n };\n TokenListObserver.prototype.refreshTokensForElement = function (element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_a) {\n var previousToken = _a[0],\n currentToken = _a[1];\n return !tokensAreEqual(previousToken, currentToken);\n });\n if (firstDifferingIndex == -1) {\n return [[], []];\n } else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n };\n TokenListObserver.prototype.readTokensForElement = function (element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n };\n return TokenListObserver;\n}();\nexport { TokenListObserver };\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}\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}\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}","import { TokenListObserver } from \"./token_list_observer\";\nvar ValueListObserver = /** @class */function () {\n function ValueListObserver(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n Object.defineProperty(ValueListObserver.prototype, \"started\", {\n get: function () {\n return this.tokenListObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n ValueListObserver.prototype.start = function () {\n this.tokenListObserver.start();\n };\n ValueListObserver.prototype.stop = function () {\n this.tokenListObserver.stop();\n };\n ValueListObserver.prototype.refresh = function () {\n this.tokenListObserver.refresh();\n };\n Object.defineProperty(ValueListObserver.prototype, \"element\", {\n get: function () {\n return this.tokenListObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ValueListObserver.prototype, \"attributeName\", {\n get: function () {\n return this.tokenListObserver.attributeName;\n },\n enumerable: false,\n configurable: true\n });\n ValueListObserver.prototype.tokenMatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n };\n ValueListObserver.prototype.tokenUnmatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n };\n ValueListObserver.prototype.fetchParseResultForToken = function (token) {\n var parseResult = this.parseResultsByToken.get(token);\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n return parseResult;\n };\n ValueListObserver.prototype.fetchValuesByTokenForElement = function (element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n return valuesByToken;\n };\n ValueListObserver.prototype.parseToken = function (token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return {\n value: value\n };\n } catch (error) {\n return {\n error: error\n };\n }\n };\n return ValueListObserver;\n}();\nexport { ValueListObserver };","import { Action } from \"./action\";\nimport { Binding } from \"./binding\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\nvar BindingObserver = /** @class */function () {\n function BindingObserver(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n BindingObserver.prototype.start = function () {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n };\n BindingObserver.prototype.stop = function () {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n };\n Object.defineProperty(BindingObserver.prototype, \"element\", {\n get: function () {\n return this.context.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"identifier\", {\n get: function () {\n return this.context.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"actionAttribute\", {\n get: function () {\n return this.schema.actionAttribute;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"schema\", {\n get: function () {\n return this.context.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"bindings\", {\n get: function () {\n return Array.from(this.bindingsByAction.values());\n },\n enumerable: false,\n configurable: true\n });\n BindingObserver.prototype.connectAction = function (action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n };\n BindingObserver.prototype.disconnectAction = function (action) {\n var binding = this.bindingsByAction.get(action);\n if (binding) {\n this.bindingsByAction.delete(action);\n this.delegate.bindingDisconnected(binding);\n }\n };\n BindingObserver.prototype.disconnectAllActions = function () {\n var _this = this;\n this.bindings.forEach(function (binding) {\n return _this.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n };\n // Value observer delegate\n BindingObserver.prototype.parseValueForToken = function (token) {\n var action = Action.forToken(token);\n if (action.identifier == this.identifier) {\n return action;\n }\n };\n BindingObserver.prototype.elementMatchedValue = function (element, action) {\n this.connectAction(action);\n };\n BindingObserver.prototype.elementUnmatchedValue = function (element, action) {\n this.disconnectAction(action);\n };\n return BindingObserver;\n}();\nexport { BindingObserver };","import { StringMapObserver } from \"@stimulus/mutation-observers\";\nvar ValueObserver = /** @class */function () {\n function ValueObserver(context, receiver) {\n this.context = context;\n this.receiver = receiver;\n this.stringMapObserver = new StringMapObserver(this.element, this);\n this.valueDescriptorMap = this.controller.valueDescriptorMap;\n this.invokeChangedCallbacksForDefaultValues();\n }\n ValueObserver.prototype.start = function () {\n this.stringMapObserver.start();\n };\n ValueObserver.prototype.stop = function () {\n this.stringMapObserver.stop();\n };\n Object.defineProperty(ValueObserver.prototype, \"element\", {\n get: function () {\n return this.context.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ValueObserver.prototype, \"controller\", {\n get: function () {\n return this.context.controller;\n },\n enumerable: false,\n configurable: true\n });\n // String map observer delegate\n ValueObserver.prototype.getStringMapKeyForAttribute = function (attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n };\n ValueObserver.prototype.stringMapValueChanged = function (attributeValue, name) {\n this.invokeChangedCallbackForValue(name);\n };\n ValueObserver.prototype.invokeChangedCallbacksForDefaultValues = function () {\n for (var _i = 0, _a = this.valueDescriptors; _i < _a.length; _i++) {\n var _b = _a[_i],\n key = _b.key,\n name_1 = _b.name,\n defaultValue = _b.defaultValue;\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallbackForValue(name_1);\n }\n }\n };\n ValueObserver.prototype.invokeChangedCallbackForValue = function (name) {\n var methodName = name + \"Changed\";\n var method = this.receiver[methodName];\n if (typeof method == \"function\") {\n var value = this.receiver[name];\n method.call(this.receiver, value);\n }\n };\n Object.defineProperty(ValueObserver.prototype, \"valueDescriptors\", {\n get: function () {\n var valueDescriptorMap = this.valueDescriptorMap;\n return Object.keys(valueDescriptorMap).map(function (key) {\n return valueDescriptorMap[key];\n });\n },\n enumerable: false,\n configurable: true\n });\n return ValueObserver;\n}();\nexport { ValueObserver };","import { BindingObserver } from \"./binding_observer\";\nimport { ValueObserver } from \"./value_observer\";\nvar Context = /** @class */function () {\n function Context(module, scope) {\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n this.valueObserver = new ValueObserver(this, this.controller);\n try {\n this.controller.initialize();\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n Context.prototype.connect = function () {\n this.bindingObserver.start();\n this.valueObserver.start();\n try {\n this.controller.connect();\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n };\n Context.prototype.disconnect = function () {\n try {\n this.controller.disconnect();\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n this.valueObserver.stop();\n this.bindingObserver.stop();\n };\n Object.defineProperty(Context.prototype, \"application\", {\n get: function () {\n return this.module.application;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"identifier\", {\n get: function () {\n return this.module.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"schema\", {\n get: function () {\n return this.application.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"dispatcher\", {\n get: function () {\n return this.application.dispatcher;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"parentElement\", {\n get: function () {\n return this.element.parentElement;\n },\n enumerable: false,\n configurable: true\n });\n // Error handling\n Context.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element;\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \" + message, detail);\n };\n return Context;\n}();\nexport { Context };","export function readInheritableStaticArrayValues(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (values, constructor) {\n getOwnStaticArrayValues(constructor, propertyName).forEach(function (name) {\n return values.add(name);\n });\n return values;\n }, new Set()));\n}\nexport function readInheritableStaticObjectPairs(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce(function (pairs, constructor) {\n pairs.push.apply(pairs, getOwnStaticObjectPairs(constructor, propertyName));\n return pairs;\n }, []);\n}\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n return ancestors.reverse();\n}\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n var definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n var definition = constructor[propertyName];\n return definition ? Object.keys(definition).map(function (key) {\n return [key, definition[key]];\n }) : [];\n}","var __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n};\nimport { readInheritableStaticArrayValues } from \"./inheritable_statics\";\n/** @hidden */\nexport function bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\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}\nfunction getBlessedProperties(constructor) {\n var blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce(function (blessedProperties, blessing) {\n var properties = blessing(constructor);\n for (var key in properties) {\n var descriptor = blessedProperties[key] || {};\n blessedProperties[key] = Object.assign(descriptor, properties[key]);\n }\n return blessedProperties;\n }, {});\n}\nfunction getShadowProperties(prototype, properties) {\n return getOwnKeys(properties).reduce(function (shadowProperties, key) {\n var _a;\n var descriptor = getShadowedDescriptor(prototype, properties, key);\n if (descriptor) {\n Object.assign(shadowProperties, (_a = {}, _a[key] = descriptor, _a));\n }\n return shadowProperties;\n }, {});\n}\nfunction getShadowedDescriptor(prototype, properties, key) {\n var shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n var shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n if (!shadowedByValue) {\n var descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n if (shadowingDescriptor) {\n descriptor.get = shadowingDescriptor.get || descriptor.get;\n descriptor.set = shadowingDescriptor.set || descriptor.set;\n }\n return descriptor;\n }\n}\nvar getOwnKeys = function () {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return function (object) {\n return __spreadArrays(Object.getOwnPropertyNames(object), Object.getOwnPropertySymbols(object));\n };\n } else {\n return Object.getOwnPropertyNames;\n }\n}();\nvar extend = function () {\n function extendWithReflect(constructor) {\n function extended() {\n var _newTarget = this && this instanceof extended ? this.constructor : void 0;\n return Reflect.construct(constructor, arguments, _newTarget);\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 function testReflectExtension() {\n var a = function () {\n this.a.call(this);\n };\n var b = extendWithReflect(a);\n b.prototype.a = function () {};\n return new b();\n }\n try {\n testReflectExtension();\n return extendWithReflect;\n } catch (error) {\n return function (constructor) {\n return (/** @class */function (_super) {\n __extends(extended, _super);\n function extended() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return extended;\n }(constructor)\n );\n };\n }\n}();","import { Context } from \"./context\";\nimport { blessDefinition } from \"./definition\";\nvar Module = /** @class */function () {\n function Module(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n Object.defineProperty(Module.prototype, \"identifier\", {\n get: function () {\n return this.definition.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"controllerConstructor\", {\n get: function () {\n return this.definition.controllerConstructor;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"contexts\", {\n get: function () {\n return Array.from(this.connectedContexts);\n },\n enumerable: false,\n configurable: true\n });\n Module.prototype.connectContextForScope = function (scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n };\n Module.prototype.disconnectContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n };\n Module.prototype.fetchContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n return context;\n };\n return Module;\n}();\nexport { Module };","import { bless } from \"./blessing\";\n/** @hidden */\nexport function blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor)\n };\n}","var ClassMap = /** @class */function () {\n function ClassMap(scope) {\n this.scope = scope;\n }\n ClassMap.prototype.has = function (name) {\n return this.data.has(this.getDataKey(name));\n };\n ClassMap.prototype.get = function (name) {\n return this.data.get(this.getDataKey(name));\n };\n ClassMap.prototype.getAttributeName = function (name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n };\n ClassMap.prototype.getDataKey = function (name) {\n return name + \"-class\";\n };\n Object.defineProperty(ClassMap.prototype, \"data\", {\n get: function () {\n return this.scope.data;\n },\n enumerable: false,\n configurable: true\n });\n return ClassMap;\n}();\nexport { ClassMap };","export function camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, function (_, char) {\n return char.toUpperCase();\n });\n}\nexport function capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\nexport function dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, char) {\n return \"-\" + char.toLowerCase();\n });\n}","import { dasherize } from \"./string_helpers\";\nvar DataMap = /** @class */function () {\n function DataMap(scope) {\n this.scope = scope;\n }\n Object.defineProperty(DataMap.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DataMap.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n DataMap.prototype.get = function (key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n };\n DataMap.prototype.set = function (key, value) {\n var name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n };\n DataMap.prototype.has = function (key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n };\n DataMap.prototype.delete = function (key) {\n if (this.has(key)) {\n var name_1 = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name_1);\n return true;\n } else {\n return false;\n }\n };\n DataMap.prototype.getAttributeNameForKey = function (key) {\n return \"data-\" + this.identifier + \"-\" + dasherize(key);\n };\n return DataMap;\n}();\nexport { DataMap };","var Guide = /** @class */function () {\n function Guide(logger) {\n this.warnedKeysByObject = new WeakMap();\n this.logger = logger;\n }\n Guide.prototype.warn = function (object, key, message) {\n var warnedKeys = this.warnedKeysByObject.get(object);\n if (!warnedKeys) {\n warnedKeys = new Set();\n this.warnedKeysByObject.set(object, warnedKeys);\n }\n if (!warnedKeys.has(key)) {\n warnedKeys.add(key);\n this.logger.warn(message, object);\n }\n };\n return Guide;\n}();\nexport { Guide };","/** @hidden */\nexport function attributeValueContainsToken(attributeName, token) {\n return \"[\" + attributeName + \"~=\\\"\" + token + \"\\\"]\";\n}","var __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n};\nimport { attributeValueContainsToken } from \"./selectors\";\nvar TargetSet = /** @class */function () {\n function TargetSet(scope) {\n this.scope = scope;\n }\n Object.defineProperty(TargetSet.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"schema\", {\n get: function () {\n return this.scope.schema;\n },\n enumerable: false,\n configurable: true\n });\n TargetSet.prototype.has = function (targetName) {\n return this.find(targetName) != null;\n };\n TargetSet.prototype.find = function () {\n var _this = this;\n var targetNames = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n return targetNames.reduce(function (target, targetName) {\n return target || _this.findTarget(targetName) || _this.findLegacyTarget(targetName);\n }, undefined);\n };\n TargetSet.prototype.findAll = function () {\n var _this = this;\n var targetNames = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n return targetNames.reduce(function (targets, targetName) {\n return __spreadArrays(targets, _this.findAllTargets(targetName), _this.findAllLegacyTargets(targetName));\n }, []);\n };\n TargetSet.prototype.findTarget = function (targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n };\n TargetSet.prototype.findAllTargets = function (targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n };\n TargetSet.prototype.getSelectorForTargetName = function (targetName) {\n var attributeName = \"data-\" + this.identifier + \"-target\";\n return attributeValueContainsToken(attributeName, targetName);\n };\n TargetSet.prototype.findLegacyTarget = function (targetName) {\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n };\n TargetSet.prototype.findAllLegacyTargets = function (targetName) {\n var _this = this;\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map(function (element) {\n return _this.deprecate(element, targetName);\n });\n };\n TargetSet.prototype.getLegacySelectorForTargetName = function (targetName) {\n var targetDescriptor = this.identifier + \".\" + targetName;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n };\n TargetSet.prototype.deprecate = function (element, targetName) {\n if (element) {\n var identifier = this.identifier;\n var attributeName = this.schema.targetAttribute;\n this.guide.warn(element, \"target:\" + targetName, \"Please replace \" + attributeName + \"=\\\"\" + identifier + \".\" + targetName + \"\\\" with data-\" + identifier + \"-target=\\\"\" + targetName + \"\\\". \" + (\"The \" + attributeName + \" attribute is deprecated and will be removed in a future version of Stimulus.\"));\n }\n return element;\n };\n Object.defineProperty(TargetSet.prototype, \"guide\", {\n get: function () {\n return this.scope.guide;\n },\n enumerable: false,\n configurable: true\n });\n return TargetSet;\n}();\nexport { TargetSet };","var __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n};\nimport { ClassMap } from \"./class_map\";\nimport { DataMap } from \"./data_map\";\nimport { Guide } from \"./guide\";\nimport { attributeValueContainsToken } from \"./selectors\";\nimport { TargetSet } from \"./target_set\";\nvar Scope = /** @class */function () {\n function Scope(schema, element, identifier, logger) {\n var _this = this;\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n this.containsElement = function (element) {\n return element.closest(_this.controllerSelector) === _this.element;\n };\n this.schema = schema;\n this.element = element;\n this.identifier = identifier;\n this.guide = new Guide(logger);\n }\n Scope.prototype.findElement = function (selector) {\n return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n };\n Scope.prototype.findAllElements = function (selector) {\n return __spreadArrays(this.element.matches(selector) ? [this.element] : [], this.queryElements(selector).filter(this.containsElement));\n };\n Scope.prototype.queryElements = function (selector) {\n return Array.from(this.element.querySelectorAll(selector));\n };\n Object.defineProperty(Scope.prototype, \"controllerSelector\", {\n get: function () {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n },\n enumerable: false,\n configurable: true\n });\n return Scope;\n}();\nexport { Scope };","import { ValueListObserver } from \"@stimulus/mutation-observers\";\nvar ScopeObserver = /** @class */function () {\n function ScopeObserver(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n ScopeObserver.prototype.start = function () {\n this.valueListObserver.start();\n };\n ScopeObserver.prototype.stop = function () {\n this.valueListObserver.stop();\n };\n Object.defineProperty(ScopeObserver.prototype, \"controllerAttribute\", {\n get: function () {\n return this.schema.controllerAttribute;\n },\n enumerable: false,\n configurable: true\n });\n // Value observer delegate\n /** @hidden */\n ScopeObserver.prototype.parseValueForToken = function (token) {\n var element = token.element,\n identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var scope = scopesByIdentifier.get(identifier);\n if (!scope) {\n scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n scopesByIdentifier.set(identifier, scope);\n }\n return scope;\n };\n /** @hidden */\n ScopeObserver.prototype.elementMatchedValue = function (element, value) {\n var referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n };\n /** @hidden */\n ScopeObserver.prototype.elementUnmatchedValue = function (element, value) {\n var referenceCount = this.scopeReferenceCounts.get(value);\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n };\n ScopeObserver.prototype.fetchScopesByIdentifierForElement = function (element) {\n var scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n return scopesByIdentifier;\n };\n return ScopeObserver;\n}();\nexport { ScopeObserver };","import { Module } from \"./module\";\nimport { Multimap } from \"@stimulus/multimap\";\nimport { Scope } from \"./scope\";\nimport { ScopeObserver } from \"./scope_observer\";\nvar Router = /** @class */function () {\n function Router(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n Object.defineProperty(Router.prototype, \"element\", {\n get: function () {\n return this.application.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"schema\", {\n get: function () {\n return this.application.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"logger\", {\n get: function () {\n return this.application.logger;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"controllerAttribute\", {\n get: function () {\n return this.schema.controllerAttribute;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"modules\", {\n get: function () {\n return Array.from(this.modulesByIdentifier.values());\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"contexts\", {\n get: function () {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n Router.prototype.start = function () {\n this.scopeObserver.start();\n };\n Router.prototype.stop = function () {\n this.scopeObserver.stop();\n };\n Router.prototype.loadDefinition = function (definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n };\n Router.prototype.unloadIdentifier = function (identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n if (module) {\n this.disconnectModule(module);\n }\n };\n Router.prototype.getContextForElementAndIdentifier = function (element, identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n if (module) {\n return module.contexts.find(function (context) {\n return context.element == element;\n });\n }\n };\n // Error handler delegate\n /** @hidden */\n Router.prototype.handleError = function (error, message, detail) {\n this.application.handleError(error, message, detail);\n };\n // Scope observer delegate\n /** @hidden */\n Router.prototype.createScopeForElementAndIdentifier = function (element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n };\n /** @hidden */\n Router.prototype.scopeConnected = function (scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.connectContextForScope(scope);\n }\n };\n /** @hidden */\n Router.prototype.scopeDisconnected = function (scope) {\n this.scopesByIdentifier.delete(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.disconnectContextForScope(scope);\n }\n };\n // Modules\n Router.prototype.connectModule = function (module) {\n this.modulesByIdentifier.set(module.identifier, module);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.connectContextForScope(scope);\n });\n };\n Router.prototype.disconnectModule = function (module) {\n this.modulesByIdentifier.delete(module.identifier);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.disconnectContextForScope(scope);\n });\n };\n return Router;\n}();\nexport { Router };","export var defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\"\n};","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n};\nimport { Dispatcher } from \"./dispatcher\";\nimport { Router } from \"./router\";\nimport { defaultSchema } from \"./schema\";\nvar Application = /** @class */function () {\n function Application(element, schema) {\n if (element === void 0) {\n element = document.documentElement;\n }\n if (schema === void 0) {\n schema = defaultSchema;\n }\n this.logger = console;\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n Application.start = function (element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n };\n Application.prototype.start = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, domReady()];\n case 1:\n _a.sent();\n this.dispatcher.start();\n this.router.start();\n return [2 /*return*/];\n }\n });\n });\n };\n\n Application.prototype.stop = function () {\n this.dispatcher.stop();\n this.router.stop();\n };\n Application.prototype.register = function (identifier, controllerConstructor) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n };\n Application.prototype.load = function (head) {\n var _this = this;\n var rest = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n var definitions = Array.isArray(head) ? head : __spreadArrays([head], rest);\n definitions.forEach(function (definition) {\n return _this.router.loadDefinition(definition);\n });\n };\n Application.prototype.unload = function (head) {\n var _this = this;\n var rest = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n var identifiers = Array.isArray(head) ? head : __spreadArrays([head], rest);\n identifiers.forEach(function (identifier) {\n return _this.router.unloadIdentifier(identifier);\n });\n };\n Object.defineProperty(Application.prototype, \"controllers\", {\n // Controllers\n get: function () {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n },\n enumerable: false,\n configurable: true\n });\n Application.prototype.getControllerForElementAndIdentifier = function (element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n };\n // Error handling\n Application.prototype.handleError = function (error, message, detail) {\n this.logger.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n };\n return Application;\n}();\nexport { Application };\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", resolve);\n } else {\n resolve();\n }\n });\n}","import { readInheritableStaticArrayValues } from \"./inheritable_statics\";\nimport { capitalize } from \"./string_helpers\";\n/** @hidden */\nexport function ClassPropertiesBlessing(constructor) {\n var classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce(function (properties, classDefinition) {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\nfunction propertiesForClassDefinition(key) {\n var _a;\n var name = key + \"Class\";\n return _a = {}, _a[name] = {\n get: function () {\n var classes = this.classes;\n if (classes.has(key)) {\n return classes.get(key);\n } else {\n var attribute = classes.getAttributeName(key);\n throw new Error(\"Missing attribute \\\"\" + attribute + \"\\\"\");\n }\n }\n }, _a[\"has\" + capitalize(name)] = {\n get: function () {\n return this.classes.has(key);\n }\n }, _a;\n}","import { readInheritableStaticArrayValues } from \"./inheritable_statics\";\nimport { capitalize } from \"./string_helpers\";\n/** @hidden */\nexport function TargetPropertiesBlessing(constructor) {\n var targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce(function (properties, targetDefinition) {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\nfunction propertiesForTargetDefinition(name) {\n var _a;\n return _a = {}, _a[name + \"Target\"] = {\n get: function () {\n var target = this.targets.find(name);\n if (target) {\n return target;\n } else {\n throw new Error(\"Missing target element \\\"\" + this.identifier + \".\" + name + \"\\\"\");\n }\n }\n }, _a[name + \"Targets\"] = {\n get: function () {\n return this.targets.findAll(name);\n }\n }, _a[\"has\" + capitalize(name) + \"Target\"] = {\n get: function () {\n return this.targets.has(name);\n }\n }, _a;\n}","import { readInheritableStaticObjectPairs } from \"./inheritable_statics\";\nimport { camelize, capitalize, dasherize } from \"./string_helpers\";\n/** @hidden */\nexport function ValuePropertiesBlessing(constructor) {\n var valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n var propertyDescriptorMap = {\n valueDescriptorMap: {\n get: function () {\n var _this = this;\n return valueDefinitionPairs.reduce(function (result, valueDefinitionPair) {\n var _a;\n var valueDescriptor = parseValueDefinitionPair(valueDefinitionPair);\n var attributeName = _this.data.getAttributeNameForKey(valueDescriptor.key);\n return Object.assign(result, (_a = {}, _a[attributeName] = valueDescriptor, _a));\n }, {});\n }\n }\n };\n return valueDefinitionPairs.reduce(function (properties, valueDefinitionPair) {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\n/** @hidden */\nexport function propertiesForValueDefinitionPair(valueDefinitionPair) {\n var _a;\n var definition = parseValueDefinitionPair(valueDefinitionPair);\n var type = definition.type,\n key = definition.key,\n name = definition.name;\n var read = readers[type],\n write = writers[type] || writers.default;\n return _a = {}, _a[name] = {\n get: function () {\n var value = this.data.get(key);\n if (value !== null) {\n return read(value);\n } else {\n return definition.defaultValue;\n }\n },\n set: function (value) {\n if (value === undefined) {\n this.data.delete(key);\n } else {\n this.data.set(key, write(value));\n }\n }\n }, _a[\"has\" + capitalize(name)] = {\n get: function () {\n return this.data.has(key);\n }\n }, _a;\n}\nfunction parseValueDefinitionPair(_a) {\n var token = _a[0],\n typeConstant = _a[1];\n var type = parseValueTypeConstant(typeConstant);\n return valueDescriptorForTokenAndType(token, type);\n}\nfunction parseValueTypeConstant(typeConstant) {\n switch (typeConstant) {\n case Array:\n return \"array\";\n case Boolean:\n return \"boolean\";\n case Number:\n return \"number\";\n case Object:\n return \"object\";\n case String:\n return \"string\";\n }\n throw new Error(\"Unknown value type constant \\\"\" + typeConstant + \"\\\"\");\n}\nfunction valueDescriptorForTokenAndType(token, type) {\n var key = dasherize(token) + \"-value\";\n return {\n type: type,\n key: key,\n name: camelize(key),\n get defaultValue() {\n return defaultValuesByType[type];\n }\n };\n}\nvar defaultValuesByType = {\n get array() {\n return [];\n },\n boolean: false,\n number: 0,\n get object() {\n return {};\n },\n string: \"\"\n};\nvar readers = {\n array: function (value) {\n var array = JSON.parse(value);\n if (!Array.isArray(array)) {\n throw new TypeError(\"Expected array\");\n }\n return array;\n },\n boolean: function (value) {\n return !(value == \"0\" || value == \"false\");\n },\n number: function (value) {\n return parseFloat(value);\n },\n object: function (value) {\n var object = JSON.parse(value);\n if (object === null || typeof object != \"object\" || Array.isArray(object)) {\n throw new TypeError(\"Expected object\");\n }\n return object;\n },\n string: function (value) {\n return value;\n }\n};\nvar writers = {\n default: writeString,\n array: writeJSON,\n object: writeJSON\n};\nfunction writeJSON(value) {\n return JSON.stringify(value);\n}\nfunction writeString(value) {\n return \"\" + value;\n}","import { ClassPropertiesBlessing } from \"./class_properties\";\nimport { TargetPropertiesBlessing } from \"./target_properties\";\nimport { ValuePropertiesBlessing } from \"./value_properties\";\nvar Controller = /** @class */function () {\n function Controller(context) {\n this.context = context;\n }\n Object.defineProperty(Controller.prototype, \"application\", {\n get: function () {\n return this.context.application;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"scope\", {\n get: function () {\n return this.context.scope;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"targets\", {\n get: function () {\n return this.scope.targets;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"classes\", {\n get: function () {\n return this.scope.classes;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"data\", {\n get: function () {\n return this.scope.data;\n },\n enumerable: false,\n configurable: true\n });\n Controller.prototype.initialize = function () {\n // Override in your subclass to set up initial controller state\n };\n Controller.prototype.connect = function () {\n // Override in your subclass to respond when the controller is connected to the DOM\n };\n Controller.prototype.disconnect = function () {\n // Override in your subclass to respond when the controller is disconnected from the DOM\n };\n Controller.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];\n Controller.targets = [];\n Controller.values = {};\n return Controller;\n}();\nexport { Controller };","// Load all the controllers within this directory and all subdirectories.\n// Controller files must be named *_controller.js.\n\nimport { Application } from \"stimulus\"\nimport { definitionsFromContext } from \"stimulus/webpack-helpers\"\n\nconst application = Application.start()\nconst context = require.context(\"controllers\", true, /_controller\\.js$/)\napplication.load(definitionsFromContext(context))\n","export function definitionsFromContext(context) {\n return context.keys().map(function (key) {\n return definitionForModuleWithContextAndKey(context, key);\n }).filter(function (value) {\n return value;\n });\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n var identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n var controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return {\n identifier: identifier,\n controllerConstructor: controllerConstructor\n };\n }\n}\nexport function identifierForContextKey(key) {\n var logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form',\n formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n expando = '_ujsData';\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n return element[expando][key] = value;\n };\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function (event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function () {\n return true;\n }\n });\n }\n return result;\n };\n }\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n prepareOptions = function (options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n return options;\n };\n createXHR = function (options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n };\n processResponse = function (response, type) {\n var parser, script;\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n return response;\n };\n Rails.href = function (element) {\n return element.href;\n };\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n toArray = function (e) {\n return Array.prototype.slice.call(e);\n };\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n if (additionalParam) {\n params.push(additionalParam);\n }\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n allowAction = function (element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n if (!message) {\n return true;\n }\n answer = false;\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n callback = fire(element, 'confirm:complete', [answer]);\n }\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n Rails.enableElement = function (e) {\n var element;\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n element = e.target;\n } else {\n element = e;\n }\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n disableLinkElement = function (element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n enableLinkElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n disableFormElements = function (form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n disableFormElement = function (element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n enableFormElements = function (form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n enableFormElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, 'ujs:enable-with', null);\n }\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n isXhrRedirect = function (event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n if (!method) {\n return;\n }\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n isRemote = function (element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function (xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n if (!form) {\n return;\n }\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","var map = {\n\t\"./folder_list_controller.js\": 4,\n\t\"./hello_controller.js\": 5\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 3;","import { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n static targets = ['name', 'folders', 'formContainer', 'newFolderButton']\n\n onPostSuccess(event) {\n const [data, status, xhr] = event.detail\n this.foldersTarget.innerHTML += `
${xhr.response}
`\n this.nameTarget.value = ''\n this.doToggle()\n }\n\n onToggle() {\n this.doToggle()\n }\n\n onCancel() {\n this.doToggle()\n }\n\n doToggle() {\n this.formContainerTarget.classList.toggle('hidden')\n this.newFolderButtonTarget.classList.toggle('hidden')\n }\n}","// Visit The Stimulus Handbook for more details \n// https://stimulusjs.org/handbook/introduction\n// \n// This example controller works with specially annotated HTML like:\n//\n//
\n//

\n//
\n\nimport { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"output\" ]\n\n connect() {\n this.outputTarget.textContent = 'Hello, Stimulus!'\n }\n}\n","var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\nvar activestorage = {\n exports: {}\n};\n(function (module, exports) {\n (function (global, factory) {\n factory(exports);\n })(commonjsGlobal, function (exports) {\n var sparkMd5 = {\n exports: {}\n };\n (function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined$1) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n function md5blk(s) {\n var md5blks = [],\n i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n function md5blk_array(a) {\n var md5blks = [],\n i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function rhex(n) {\n var s = \"\",\n j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n return s;\n }\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join(\"\");\n }\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n return Math.min(val, length);\n }\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n if (to !== undefined$1) {\n end = clamp(to, length);\n }\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n return str;\n }\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n return returnUInt8Array ? arr : buff;\n }\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n return String.fromCharCode.apply(String, bytes);\n }\n function SparkMD5() {\n this.reset();\n }\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash.slice()\n };\n };\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n return SparkMD5;\n });\n })(sparkMd5);\n var SparkMD5 = sparkMd5.exports;\n const fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n class FileChecksum {\n static create(file, callback) {\n const instance = new FileChecksum(file);\n instance.create(callback);\n }\n constructor(file) {\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n create(callback) {\n this.callback = callback;\n this.md5Buffer = new SparkMD5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", event => this.fileReaderDidLoad(event));\n this.fileReader.addEventListener(\"error\", event => this.fileReaderDidError(event));\n this.readNextChunk();\n }\n fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n if (!this.readNextChunk()) {\n const binaryDigest = this.md5Buffer.end(true);\n const base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n fileReaderDidError(event) {\n this.callback(`Error reading ${this.file.name}`);\n }\n readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n const start = this.chunkIndex * this.chunkSize;\n const end = Math.min(start + this.chunkSize, this.file.size);\n const bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }\n function getMetaValue(name) {\n const element = findElement(document.head, `meta[name=\"${name}\"]`);\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n const elements = root.querySelectorAll(selector);\n return toArray(elements);\n }\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n return root.querySelector(selector);\n }\n function dispatchEvent(element, type) {\n let eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const disabled = element.disabled;\n const bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n const event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n return event;\n }\n function toArray(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n class BlobRecord {\n constructor(file, checksum, url) {\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n const csrfToken = getMetaValue(\"csrf-token\");\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n this.xhr.addEventListener(\"load\", event => this.requestDidLoad(event));\n this.xhr.addEventListener(\"error\", event => this.requestDidError(event));\n }\n get status() {\n return this.xhr.status;\n }\n get response() {\n const _this$xhr = this.xhr,\n responseType = _this$xhr.responseType,\n response = _this$xhr.response;\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n const response = this.response;\n const direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n requestDidError(event) {\n this.callback(`Error creating Blob for \"${this.file.name}\". Status: ${this.status}`);\n }\n toJSON() {\n const result = {};\n for (const key in this.attributes) {\n result[key] = this.attributes[key];\n }\n return result;\n }\n }\n class BlobUpload {\n constructor(blob) {\n this.blob = blob;\n this.file = blob.file;\n const _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n for (const key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n this.xhr.addEventListener(\"load\", event => this.requestDidLoad(event));\n this.xhr.addEventListener(\"error\", event => this.requestDidError(event));\n }\n create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n requestDidLoad(event) {\n const _this$xhr2 = this.xhr,\n status = _this$xhr2.status,\n response = _this$xhr2.response;\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n requestDidError(event) {\n this.callback(`Error storing \"${this.file.name}\". Status: ${this.xhr.status}`);\n }\n }\n let id = 0;\n class DirectUpload {\n constructor(file, url, delegate) {\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n create(callback) {\n FileChecksum.create(this.file, (error, checksum) => {\n if (error) {\n callback(error);\n return;\n }\n const blob = new BlobRecord(this.file, checksum, this.url);\n notify(this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(error => {\n if (error) {\n callback(error);\n } else {\n const upload = new BlobUpload(blob);\n notify(this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(error => {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n return object[methodName](...messages);\n }\n }\n class DirectUploadController {\n constructor(input, file) {\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n start(callback) {\n const hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create((error, attributes) => {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n this.dispatch(\"end\");\n callback(error);\n });\n }\n uploadRequestDidProgress(event) {\n const progress = event.loaded / event.total * 100;\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n get url() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n dispatch(name) {\n let detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, `direct-upload:${name}`, {\n detail: detail\n });\n }\n dispatchError(error) {\n const event = this.dispatch(\"error\", {\n error: error\n });\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n directUploadWillStoreFileWithXHR(xhr) {\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", event => this.uploadRequestDidProgress(event));\n }\n }\n const inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n class DirectUploadsController {\n constructor(form) {\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(input => input.files.length);\n }\n start(callback) {\n const controllers = this.createDirectUploadControllers();\n const startNextController = () => {\n const controller = controllers.shift();\n if (controller) {\n controller.start(error => {\n if (error) {\n callback(error);\n this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n this.dispatch(\"end\");\n }\n };\n this.dispatch(\"start\");\n startNextController();\n }\n createDirectUploadControllers() {\n const controllers = [];\n this.inputs.forEach(input => {\n toArray(input.files).forEach(file => {\n const controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n dispatch(name) {\n let detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, `direct-uploads:${name}`, {\n detail: detail\n });\n }\n }\n const processingAttribute = \"data-direct-uploads-processing\";\n const submitButtonsByForm = new WeakMap();\n let started = false;\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm, true);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n function didClick(event) {\n const target = event.target;\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n function handleFormSubmissionEvent(event) {\n const form = event.target;\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n const controller = new DirectUploadsController(form);\n const inputs = controller.inputs;\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(error => {\n form.removeAttribute(processingAttribute);\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n function submitForm(form) {\n let button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n if (button) {\n const _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n submitButtonsByForm.delete(form);\n }\n function disable(input) {\n input.disabled = true;\n }\n function enable(input) {\n input.disabled = false;\n }\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n setTimeout(autostart, 1);\n exports.DirectUpload = DirectUpload;\n exports.start = start;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n });\n})(activestorage, activestorage.exports);\nclass AttachmentUpload {\n constructor(attachment, element) {\n this.attachment = attachment;\n this.element = element;\n this.directUpload = new activestorage.exports.DirectUpload(attachment.file, this.directUploadUrl, this);\n }\n start() {\n this.directUpload.create(this.directUploadDidComplete.bind(this));\n }\n directUploadWillStoreFileWithXHR(xhr) {\n xhr.upload.addEventListener(\"progress\", event => {\n const progress = event.loaded / event.total * 100;\n this.attachment.setUploadProgress(progress);\n });\n }\n directUploadDidComplete(error, attributes) {\n if (error) {\n throw new Error(`Direct upload failed: ${error}`);\n }\n this.attachment.setAttributes({\n sgid: attributes.attachable_sgid,\n url: this.createBlobUrl(attributes.signed_id, attributes.filename)\n });\n }\n createBlobUrl(signedId, filename) {\n return this.blobUrlTemplate.replace(\":signed_id\", signedId).replace(\":filename\", encodeURIComponent(filename));\n }\n get directUploadUrl() {\n return this.element.dataset.directUploadUrl;\n }\n get blobUrlTemplate() {\n return this.element.dataset.blobUrlTemplate;\n }\n}\naddEventListener(\"trix-attachment-add\", event => {\n const attachment = event.attachment,\n target = event.target;\n if (attachment.file) {\n const upload = new AttachmentUpload(attachment, target);\n upload.start();\n }\n});","var g;\n\n// This works in non-strict mode\ng = function () {\n return this;\n}();\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\n}\n\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\nmodule.exports = g;","function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\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.\"); }\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); }\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; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/*\nTrix 2.0.3\nCopyright © 2022 Basecamp, LLC\n */\nconst t = {\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 e = {\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(t) {\n return i(t.parentNode) === e[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(t) {\n return i(t.parentNode) === e[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 i = t => {\n var e;\n return null == t || null === (e = t.tagName) || void 0 === e ? void 0 : e.toLowerCase();\n },\n n = navigator.userAgent.match(/android\\s([0-9]+.*Chrome)/i),\n r = n && parseInt(n[1]);\nvar o = {\n composesExistingText: /Android.*Chrome/.test(navigator.userAgent),\n recentAndroid: r && r > 12,\n samsungAndroid: r && navigator.userAgent.match(/Android.*SM-/),\n forcesObjectResizing: /Trident.*rv:11/.test(navigator.userAgent),\n supportsInputEvents: \"undefined\" != typeof InputEvent && [\"data\", \"getTargetRanges\", \"inputType\"].every(t => t in InputEvent.prototype)\n },\n s = {\n attachFiles: \"Attach Files\",\n bold: \"Bold\",\n bullets: \"Bullets\",\n byte: \"Byte\",\n bytes: \"Bytes\",\n captionPlaceholder: \"Add a caption…\",\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…\",\n GB: \"GB\",\n KB: \"KB\",\n MB: \"MB\",\n PB: \"PB\",\n TB: \"TB\"\n };\nconst a = [s.bytes, s.KB, s.MB, s.GB, s.TB, s.PB];\nvar l = {\n prefix: \"IEC\",\n precision: 2,\n formatter(t) {\n switch (t) {\n case 0:\n return \"0 \".concat(s.bytes);\n case 1:\n return \"1 \".concat(s.byte);\n default:\n let e;\n \"SI\" === this.prefix ? e = 1e3 : \"IEC\" === this.prefix && (e = 1024);\n const i = Math.floor(Math.log(t) / Math.log(e)),\n n = (t / Math.pow(e, i)).toFixed(this.precision).replace(/0*$/, \"\").replace(/\\.$/, \"\");\n return \"\".concat(n, \" \").concat(a[i]);\n }\n }\n};\nconst c = function (t) {\n for (const e in t) {\n const i = t[e];\n this[e] = i;\n }\n return this;\n },\n h = document.documentElement,\n u = h.matches,\n d = function (t) {\n let _ref = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n e = _ref.onElement,\n i = _ref.matchingSelector,\n n = _ref.withCallback,\n r = _ref.inPhase,\n o = _ref.preventDefault,\n s = _ref.times;\n const a = e || h,\n l = i,\n c = \"capturing\" === r,\n u = function (t) {\n null != s && 0 == --s && u.destroy();\n const e = p(t.target, {\n matchingSelector: l\n });\n null != e && (null == n || n.call(e, t, e), o && t.preventDefault());\n };\n return u.destroy = () => a.removeEventListener(t, u, c), a.addEventListener(t, u, c), u;\n },\n g = function (t) {\n let _ref2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n e = _ref2.onElement,\n i = _ref2.bubbles,\n n = _ref2.cancelable,\n r = _ref2.attributes;\n const o = null != e ? e : h;\n i = !1 !== i, n = !1 !== n;\n const s = document.createEvent(\"Events\");\n return s.initEvent(t, i, n), null != r && c.call(s, r), o.dispatchEvent(s);\n },\n m = function (t, e) {\n if (1 === (null == t ? void 0 : t.nodeType)) return u.call(t, e);\n },\n p = function (t) {\n let _ref3 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n e = _ref3.matchingSelector,\n i = _ref3.untilNode;\n for (; t && t.nodeType !== Node.ELEMENT_NODE;) t = t.parentNode;\n if (null != t) {\n if (null == e) return t;\n if (t.closest && null == i) return t.closest(e);\n for (; t && t !== i;) {\n if (m(t, e)) return t;\n t = t.parentNode;\n }\n }\n },\n f = t => document.activeElement !== t && b(t, document.activeElement),\n b = function (t, e) {\n if (t && e) for (; e;) {\n if (e === t) return !0;\n e = e.parentNode;\n }\n },\n v = function (t) {\n var e;\n if (null === (e = t) || void 0 === e || !e.parentNode) return;\n let i = 0;\n for (t = t.previousSibling; t;) i++, t = t.previousSibling;\n return i;\n },\n A = t => {\n var e;\n return null == t || null === (e = t.parentNode) || void 0 === e ? void 0 : e.removeChild(t);\n },\n x = function (t) {\n let _ref4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n e = _ref4.onlyNodesOfType,\n i = _ref4.usingFilter,\n n = _ref4.expandEntityReferences;\n const r = (() => {\n switch (e) {\n case \"element\":\n return NodeFilter.SHOW_ELEMENT;\n case \"text\":\n return NodeFilter.SHOW_TEXT;\n case \"comment\":\n return NodeFilter.SHOW_COMMENT;\n default:\n return NodeFilter.SHOW_ALL;\n }\n })();\n return document.createTreeWalker(t, r, null != i ? i : null, !0 === n);\n },\n y = t => {\n var e;\n return null == t || null === (e = t.tagName) || void 0 === e ? void 0 : e.toLowerCase();\n },\n C = function (t) {\n let e,\n i,\n n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n \"object\" == typeof t ? (n = t, t = n.tagName) : n = {\n attributes: n\n };\n const r = document.createElement(t);\n if (null != n.editable && (null == n.attributes && (n.attributes = {}), n.attributes.contenteditable = n.editable), n.attributes) for (e in n.attributes) i = n.attributes[e], r.setAttribute(e, i);\n if (n.style) for (e in n.style) i = n.style[e], r.style[e] = i;\n if (n.data) for (e in n.data) i = n.data[e], r.dataset[e] = i;\n return n.className && n.className.split(\" \").forEach(t => {\n r.classList.add(t);\n }), n.textContent && (r.textContent = n.textContent), n.childNodes && [].concat(n.childNodes).forEach(t => {\n r.appendChild(t);\n }), r;\n };\nlet R;\nconst S = function () {\n if (null != R) return R;\n R = [];\n for (const t in e) {\n const i = e[t];\n i.tagName && R.push(i.tagName);\n }\n return R;\n },\n E = t => D(null == t ? void 0 : t.firstChild),\n k = function (t) {\n return S().includes(y(t)) && !S().includes(y(t.firstChild));\n },\n L = function (t) {\n let _ref5 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {\n strict: !0\n },\n e = _ref5.strict;\n return e ? D(t) : D(t) || !D(t.firstChild) && k(t);\n },\n D = t => w(t) && \"block\" === (null == t ? void 0 : t.data),\n w = t => (null == t ? void 0 : t.nodeType) === Node.COMMENT_NODE,\n T = function (t) {\n let _ref6 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n e = _ref6.name;\n if (t) return I(t) ? \"\\ufeff\" === t.data ? !e || t.parentNode.dataset.trixCursorTarget === e : void 0 : T(t.firstChild);\n },\n F = t => m(t, \"[data-trix-attachment]\"),\n B = t => I(t) && \"\" === (null == t ? void 0 : t.data),\n I = t => (null == t ? void 0 : t.nodeType) === Node.TEXT_NODE,\n P = {\n level2Enabled: !0,\n getLevel() {\n return this.level2Enabled && o.supportsInputEvents ? 2 : 0;\n },\n pickFiles(t) {\n const e = C(\"input\", {\n type: \"file\",\n multiple: !0,\n hidden: !0,\n id: this.fileInputId\n });\n e.addEventListener(\"change\", () => {\n t(e.files), A(e);\n }), A(document.getElementById(this.fileInputId)), document.body.appendChild(e), e.click();\n }\n };\nvar N = {\n removeBlankTableCells: !1,\n tableCellSeparator: \" | \",\n tableRowSeparator: \"\\n\"\n },\n O = {\n bold: {\n tagName: \"strong\",\n inheritable: !0,\n parser(t) {\n const e = window.getComputedStyle(t);\n return \"bold\" === e.fontWeight || e.fontWeight >= 600;\n }\n },\n italic: {\n tagName: \"em\",\n inheritable: !0,\n parser: t => \"italic\" === window.getComputedStyle(t).fontStyle\n },\n href: {\n groupTagName: \"a\",\n parser(t) {\n const e = \"a:not(\".concat(\"[data-trix-attachment]\", \")\"),\n i = t.closest(e);\n if (i) return i.getAttribute(\"href\");\n }\n },\n strike: {\n tagName: \"del\",\n inheritable: !0\n },\n frozen: {\n style: {\n backgroundColor: \"highlight\"\n }\n }\n },\n M = {\n getDefaultHTML: () => '
\\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 };\nconst j = {\n interval: 5e3\n};\nvar W = Object.freeze({\n __proto__: null,\n attachments: t,\n blockAttributes: e,\n browser: o,\n 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 fileSize: l,\n input: P,\n 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 lang: s,\n parser: N,\n textAttributes: O,\n toolbar: M,\n undo: j\n});\nclass U {\n static proxyMethod(t) {\n const _q = q(t),\n e = _q.name,\n i = _q.toMethod,\n n = _q.toProperty,\n r = _q.optional;\n this.prototype[e] = function () {\n let t, o;\n var s, a;\n i ? o = r ? null === (s = this[i]) || void 0 === s ? void 0 : s.call(this) : this[i]() : n && (o = this[n]);\n return r ? (t = null === (a = o) || void 0 === a ? void 0 : a[e], t ? V.call(t, o, arguments) : void 0) : (t = o[e], V.call(t, o, arguments));\n };\n }\n}\nconst q = function (t) {\n const e = t.match(z);\n if (!e) throw new Error(\"can't parse @proxyMethod expression: \".concat(t));\n const i = {\n name: e[4]\n };\n return null != e[2] ? i.toMethod = e[1] : i.toProperty = e[1], null != e[3] && (i.optional = !0), i;\n },\n V = Function.prototype.apply,\n z = new RegExp(\"^(.+?)(\\\\(\\\\))?(\\\\?)?\\\\.(.+?)$\");\nvar _, H, J;\nclass K extends U {\n static box() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : \"\";\n return t instanceof this ? t : this.fromUCS2String(null == t ? void 0 : t.toString());\n }\n static fromUCS2String(t) {\n return new this(t, Y(t));\n }\n static fromCodepoints(t) {\n return new this(Q(t), t);\n }\n constructor(t, e) {\n super(...arguments), this.ucs2String = t, this.codepoints = e, this.length = this.codepoints.length, this.ucs2Length = this.ucs2String.length;\n }\n offsetToUCS2Offset(t) {\n return Q(this.codepoints.slice(0, Math.max(0, t))).length;\n }\n offsetFromUCS2Offset(t) {\n return Y(this.ucs2String.slice(0, Math.max(0, t))).length;\n }\n slice() {\n return this.constructor.fromCodepoints(this.codepoints.slice(...arguments));\n }\n charAt(t) {\n return this.slice(t, t + 1);\n }\n isEqualTo(t) {\n return this.constructor.box(t).ucs2String === this.ucs2String;\n }\n toJSON() {\n return this.ucs2String;\n }\n getCacheKey() {\n return this.ucs2String;\n }\n toString() {\n return this.ucs2String;\n }\n}\nconst G = 1 === (null === (_ = Array.from) || void 0 === _ ? void 0 : _.call(Array, \"👼\").length),\n $ = null != (null === (H = \" \".codePointAt) || void 0 === H ? void 0 : H.call(\" \", 0)),\n X = \" 👼\" === (null === (J = String.fromCodePoint) || void 0 === J ? void 0 : J.call(String, 32, 128124));\nlet Y, Q;\nY = G && $ ? t => Array.from(t).map(t => t.codePointAt(0)) : function (t) {\n const e = [];\n let i = 0;\n const n = t.length;\n for (; i < n;) {\n let r = t.charCodeAt(i++);\n if (55296 <= r && r <= 56319 && i < n) {\n const e = t.charCodeAt(i++);\n 56320 == (64512 & e) ? r = ((1023 & r) << 10) + (1023 & e) + 65536 : i--;\n }\n e.push(r);\n }\n return e;\n}, Q = X ? t => String.fromCodePoint(...Array.from(t || [])) : function (t) {\n return (() => {\n const e = [];\n return Array.from(t).forEach(t => {\n let i = \"\";\n t > 65535 && (t -= 65536, i += String.fromCharCode(t >>> 10 & 1023 | 55296), t = 56320 | 1023 & t), e.push(i + String.fromCharCode(t));\n }), e;\n })().join(\"\");\n};\nlet Z = 0;\nclass tt extends U {\n static fromJSONString(t) {\n return this.fromJSON(JSON.parse(t));\n }\n constructor() {\n super(...arguments), this.id = ++Z;\n }\n hasSameConstructorAs(t) {\n return this.constructor === (null == t ? void 0 : t.constructor);\n }\n isEqualTo(t) {\n return this === t;\n }\n inspect() {\n const t = [],\n e = this.contentsForInspection() || {};\n for (const i in e) {\n const n = e[i];\n t.push(\"\".concat(i, \"=\").concat(n));\n }\n return \"#<\".concat(this.constructor.name, \":\").concat(this.id).concat(t.length ? \" \".concat(t.join(\", \")) : \"\", \">\");\n }\n contentsForInspection() {}\n toJSONString() {\n return JSON.stringify(this);\n }\n toUTF16String() {\n return K.box(this);\n }\n getCacheKey() {\n return this.id.toString();\n }\n}\nconst et = function () {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [],\n e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];\n if (t.length !== e.length) return !1;\n for (let i = 0; i < t.length; i++) {\n if (t[i] !== e[i]) return !1;\n }\n return !0;\n },\n it = function (t) {\n const e = t.slice(0);\n for (var i = arguments.length, n = new Array(i > 1 ? i - 1 : 0), r = 1; r < i; r++) n[r - 1] = arguments[r];\n return e.splice(...n), e;\n },\n nt = /[\\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 rt = function () {\n const t = C(\"input\", {\n dir: \"auto\",\n name: \"x\",\n dirName: \"x.dir\"\n }),\n e = C(\"form\");\n e.appendChild(t);\n const i = function () {\n try {\n return new FormData(e).has(t.dirName);\n } catch (t) {\n return !1;\n }\n }(),\n n = function () {\n try {\n return t.matches(\":dir(ltr),:dir(rtl)\");\n } catch (t) {\n return !1;\n }\n }();\n return i ? function (i) {\n return t.value = i, new FormData(e).get(t.dirName);\n } : n ? function (e) {\n return t.value = e, t.matches(\":dir(rtl)\") ? \"rtl\" : \"ltr\";\n } : function (t) {\n const e = t.trim().charAt(0);\n return nt.test(e) ? \"rtl\" : \"ltr\";\n };\n }();\nlet ot = null,\n st = null,\n at = null,\n lt = null;\nconst ct = () => (ot || (ot = gt().concat(ut())), ot),\n ht = t => e[t],\n ut = () => (st || (st = Object.keys(e)), st),\n dt = t => O[t],\n gt = () => (at || (at = Object.keys(O)), at),\n mt = function (t, e) {\n pt(t).textContent = e.replace(/%t/g, t);\n },\n pt = function (t) {\n const e = document.createElement(\"style\");\n e.setAttribute(\"type\", \"text/css\"), e.setAttribute(\"data-tag-name\", t.toLowerCase());\n const i = ft();\n return i && e.setAttribute(\"nonce\", i), document.head.insertBefore(e, document.head.firstChild), e;\n },\n ft = function () {\n const t = bt(\"trix-csp-nonce\") || bt(\"csp-nonce\");\n if (t) return t.getAttribute(\"content\");\n },\n bt = t => document.head.querySelector(\"meta[name=\".concat(t, \"]\")),\n vt = {\n \"application/x-trix-feature-detection\": \"test\"\n },\n At = function (t) {\n const e = t.getData(\"text/plain\"),\n i = t.getData(\"text/html\");\n if (!e || !i) return null == e ? void 0 : e.length;\n {\n const _DOMParser$parseFromS = new DOMParser().parseFromString(i, \"text/html\"),\n t = _DOMParser$parseFromS.body;\n if (t.textContent === e) return !t.querySelector(\"*\");\n }\n },\n xt = /Mac|^iP/.test(navigator.platform) ? t => t.metaKey : t => t.ctrlKey,\n yt = t => setTimeout(t, 1),\n Ct = function () {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n const e = {};\n for (const i in t) {\n const n = t[i];\n e[i] = n;\n }\n return e;\n },\n Rt = function () {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n if (Object.keys(t).length !== Object.keys(e).length) return !1;\n for (const i in t) {\n if (t[i] !== e[i]) return !1;\n }\n return !0;\n },\n St = function (t) {\n if (null != t) return Array.isArray(t) || (t = [t, t]), [Lt(t[0]), Lt(null != t[1] ? t[1] : t[0])];\n },\n Et = function (t) {\n if (null == t) return;\n const _St = St(t),\n _St2 = _slicedToArray(_St, 2),\n e = _St2[0],\n i = _St2[1];\n return Dt(e, i);\n },\n kt = function (t, e) {\n if (null == t || null == e) return;\n const _St3 = St(t),\n _St4 = _slicedToArray(_St3, 2),\n i = _St4[0],\n n = _St4[1],\n _St5 = St(e),\n _St6 = _slicedToArray(_St5, 2),\n r = _St6[0],\n o = _St6[1];\n return Dt(i, r) && Dt(n, o);\n },\n Lt = function (t) {\n return \"number\" == typeof t ? t : Ct(t);\n },\n Dt = function (t, e) {\n return \"number\" == typeof t ? t === e : Rt(t, e);\n };\nclass wt extends U {\n constructor() {\n super(...arguments), this.update = this.update.bind(this), this.run = this.run.bind(this), this.selectionManagers = [];\n }\n start() {\n if (!this.started) return this.started = !0, \"onselectionchange\" in document ? document.addEventListener(\"selectionchange\", this.update, !0) : this.run();\n }\n stop() {\n if (this.started) return this.started = !1, document.removeEventListener(\"selectionchange\", this.update, !0);\n }\n registerSelectionManager(t) {\n if (!this.selectionManagers.includes(t)) return this.selectionManagers.push(t), this.start();\n }\n unregisterSelectionManager(t) {\n if (this.selectionManagers = this.selectionManagers.filter(e => e !== t), 0 === this.selectionManagers.length) return this.stop();\n }\n notifySelectionManagersOfSelectionChange() {\n return this.selectionManagers.map(t => t.selectionDidChange());\n }\n update() {\n const t = It();\n if (!Tt(t, this.domRange)) return this.domRange = t, this.notifySelectionManagersOfSelectionChange();\n }\n reset() {\n return this.domRange = null, this.update();\n }\n run() {\n if (this.started) return this.update(), requestAnimationFrame(this.run);\n }\n}\nconst Tt = (t, e) => (null == t ? void 0 : t.startContainer) === (null == e ? void 0 : e.startContainer) && (null == t ? void 0 : t.startOffset) === (null == e ? void 0 : e.startOffset) && (null == t ? void 0 : t.endContainer) === (null == e ? void 0 : e.endContainer) && (null == t ? void 0 : t.endOffset) === (null == e ? void 0 : e.endOffset),\n Ft = new wt(),\n Bt = function () {\n const t = window.getSelection();\n if (t.rangeCount > 0) return t;\n },\n It = function () {\n var t;\n const e = null === (t = Bt()) || void 0 === t ? void 0 : t.getRangeAt(0);\n if (e && !Nt(e)) return e;\n },\n Pt = function (t) {\n const e = window.getSelection();\n return e.removeAllRanges(), e.addRange(t), Ft.update();\n },\n Nt = t => Ot(t.startContainer) || Ot(t.endContainer),\n Ot = t => !Object.getPrototypeOf(t),\n Mt = t => t.replace(new RegExp(\"\".concat(\"\\ufeff\"), \"g\"), \"\").replace(new RegExp(\"\".concat(\" \"), \"g\"), \" \"),\n jt = new RegExp(\"[^\\\\S\".concat(\" \", \"]\")),\n Wt = t => t.replace(new RegExp(\"\".concat(jt.source), \"g\"), \" \").replace(/\\ {2,}/g, \" \"),\n Ut = function (t, e) {\n if (t.isEqualTo(e)) return [\"\", \"\"];\n const i = qt(t, e),\n n = i.utf16String.length;\n let r;\n if (n) {\n const o = i.offset,\n s = t.codepoints.slice(0, o).concat(t.codepoints.slice(o + n));\n r = qt(e, K.fromCodepoints(s));\n } else r = qt(e, t);\n return [i.utf16String.toString(), r.utf16String.toString()];\n },\n qt = function (t, e) {\n let i = 0,\n n = t.length,\n r = e.length;\n for (; i < n && t.charAt(i).isEqualTo(e.charAt(i));) i++;\n for (; n > i + 1 && t.charAt(n - 1).isEqualTo(e.charAt(r - 1));) n--, r--;\n return {\n utf16String: t.slice(i, n),\n offset: i\n };\n };\nclass Vt extends tt {\n static fromCommonAttributesOfObjects() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\n if (!t.length) return new this();\n let e = Jt(t[0]),\n i = e.getKeys();\n return t.slice(1).forEach(t => {\n i = e.getKeysCommonToHash(Jt(t)), e = e.slice(i);\n }), e;\n }\n static box(t) {\n return Jt(t);\n }\n constructor() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n super(...arguments), this.values = Ht(t);\n }\n add(t, e) {\n return this.merge(zt(t, e));\n }\n remove(t) {\n return new Vt(Ht(this.values, t));\n }\n get(t) {\n return this.values[t];\n }\n has(t) {\n return t in this.values;\n }\n merge(t) {\n return new Vt(_t(this.values, Kt(t)));\n }\n slice(t) {\n const e = {};\n return Array.from(t).forEach(t => {\n this.has(t) && (e[t] = this.values[t]);\n }), new Vt(e);\n }\n getKeys() {\n return Object.keys(this.values);\n }\n getKeysCommonToHash(t) {\n return t = Jt(t), this.getKeys().filter(e => this.values[e] === t.values[e]);\n }\n isEqualTo(t) {\n return et(this.toArray(), Jt(t).toArray());\n }\n isEmpty() {\n return 0 === this.getKeys().length;\n }\n toArray() {\n if (!this.array) {\n const t = [];\n for (const e in this.values) {\n const i = this.values[e];\n t.push(t.push(e, i));\n }\n this.array = t.slice(0);\n }\n return this.array;\n }\n toObject() {\n return Ht(this.values);\n }\n toJSON() {\n return this.toObject();\n }\n contentsForInspection() {\n return {\n values: JSON.stringify(this.values)\n };\n }\n}\nconst zt = function (t, e) {\n const i = {};\n return i[t] = e, i;\n },\n _t = function (t, e) {\n const i = Ht(t);\n for (const t in e) {\n const n = e[t];\n i[t] = n;\n }\n return i;\n },\n Ht = function (t, e) {\n const i = {};\n return Object.keys(t).sort().forEach(n => {\n n !== e && (i[n] = t[n]);\n }), i;\n },\n Jt = function (t) {\n return t instanceof Vt ? t : new Vt(t);\n },\n Kt = function (t) {\n return t instanceof Vt ? t.values : t;\n };\nclass Gt {\n static groupObjects() {\n let t,\n e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [],\n _ref7 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n i = _ref7.depth,\n n = _ref7.asTree;\n n && null == i && (i = 0);\n const r = [];\n return Array.from(e).forEach(e => {\n var o;\n if (t) {\n var s, a, l;\n if (null !== (s = e.canBeGrouped) && void 0 !== s && s.call(e, i) && null !== (a = (l = t[t.length - 1]).canBeGroupedWith) && void 0 !== a && a.call(l, e, i)) return void t.push(e);\n r.push(new this(t, {\n depth: i,\n asTree: n\n })), t = null;\n }\n null !== (o = e.canBeGrouped) && void 0 !== o && o.call(e, i) ? t = [e] : r.push(e);\n }), t && r.push(new this(t, {\n depth: i,\n asTree: n\n })), r;\n }\n constructor() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [],\n _ref8 = arguments.length > 1 ? arguments[1] : void 0,\n e = _ref8.depth,\n i = _ref8.asTree;\n this.objects = t, i && (this.depth = e, this.objects = this.constructor.groupObjects(this.objects, {\n asTree: i,\n depth: this.depth + 1\n }));\n }\n getObjects() {\n return this.objects;\n }\n getDepth() {\n return this.depth;\n }\n getCacheKey() {\n const t = [\"objectGroup\"];\n return Array.from(this.getObjects()).forEach(e => {\n t.push(e.getCacheKey());\n }), t.join(\"/\");\n }\n}\nclass $t extends U {\n constructor() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\n super(...arguments), this.objects = {}, Array.from(t).forEach(t => {\n const e = JSON.stringify(t);\n null == this.objects[e] && (this.objects[e] = t);\n });\n }\n find(t) {\n const e = JSON.stringify(t);\n return this.objects[e];\n }\n}\nclass Xt {\n constructor(t) {\n this.reset(t);\n }\n add(t) {\n const e = Yt(t);\n this.elements[e] = t;\n }\n remove(t) {\n const e = Yt(t),\n i = this.elements[e];\n if (i) return delete this.elements[e], i;\n }\n reset() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\n return this.elements = {}, Array.from(t).forEach(t => {\n this.add(t);\n }), t;\n }\n}\nconst Yt = t => t.dataset.trixStoreKey;\nclass Qt extends U {\n isPerforming() {\n return !0 === this.performing;\n }\n hasPerformed() {\n return !0 === this.performed;\n }\n hasSucceeded() {\n return this.performed && this.succeeded;\n }\n hasFailed() {\n return this.performed && !this.succeeded;\n }\n getPromise() {\n return this.promise || (this.promise = new Promise((t, e) => (this.performing = !0, this.perform((i, n) => {\n this.succeeded = i, this.performing = !1, this.performed = !0, this.succeeded ? t(n) : e(n);\n })))), this.promise;\n }\n perform(t) {\n return t(!1);\n }\n release() {\n var t, e;\n null === (t = this.promise) || void 0 === t || null === (e = t.cancel) || void 0 === e || e.call(t), this.promise = null, this.performing = null, this.performed = null, this.succeeded = null;\n }\n}\nQt.proxyMethod(\"getPromise().then\"), Qt.proxyMethod(\"getPromise().catch\");\nclass Zt extends U {\n constructor(t) {\n let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n super(...arguments), this.object = t, this.options = e, this.childViews = [], this.rootView = this;\n }\n getNodes() {\n return this.nodes || (this.nodes = this.createNodes()), this.nodes.map(t => t.cloneNode(!0));\n }\n invalidate() {\n var t;\n return this.nodes = null, this.childViews = [], null === (t = this.parentView) || void 0 === t ? void 0 : t.invalidate();\n }\n invalidateViewForObject(t) {\n var e;\n return null === (e = this.findViewForObject(t)) || void 0 === e ? void 0 : e.invalidate();\n }\n findOrCreateCachedChildView(t, e, i) {\n let n = this.getCachedViewForObject(e);\n return n ? this.recordChildView(n) : (n = this.createChildView(...arguments), this.cacheViewForObject(n, e)), n;\n }\n createChildView(t, e) {\n let i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\n e instanceof Gt && (i.viewClass = t, t = te);\n const n = new t(e, i);\n return this.recordChildView(n);\n }\n recordChildView(t) {\n return t.parentView = this, t.rootView = this.rootView, this.childViews.push(t), t;\n }\n getAllChildViews() {\n let t = [];\n return this.childViews.forEach(e => {\n t.push(e), t = t.concat(e.getAllChildViews());\n }), t;\n }\n findElement() {\n return this.findElementForObject(this.object);\n }\n findElementForObject(t) {\n const e = null == t ? void 0 : t.id;\n if (e) return this.rootView.element.querySelector(\"[data-trix-id='\".concat(e, \"']\"));\n }\n findViewForObject(t) {\n for (const e of this.getAllChildViews()) if (e.object === t) return e;\n }\n getViewCache() {\n return this.rootView !== this ? this.rootView.getViewCache() : this.isViewCachingEnabled() ? (this.viewCache || (this.viewCache = {}), this.viewCache) : void 0;\n }\n isViewCachingEnabled() {\n return !1 !== this.shouldCacheViews;\n }\n enableViewCaching() {\n this.shouldCacheViews = !0;\n }\n disableViewCaching() {\n this.shouldCacheViews = !1;\n }\n getCachedViewForObject(t) {\n var e;\n return null === (e = this.getViewCache()) || void 0 === e ? void 0 : e[t.getCacheKey()];\n }\n cacheViewForObject(t, e) {\n const i = this.getViewCache();\n i && (i[e.getCacheKey()] = t);\n }\n garbageCollectCachedViews() {\n const t = this.getViewCache();\n if (t) {\n const e = this.getAllChildViews().concat(this).map(t => t.object.getCacheKey());\n for (const i in t) e.includes(i) || delete t[i];\n }\n }\n}\nclass te extends Zt {\n constructor() {\n super(...arguments), this.objectGroup = this.object, this.viewClass = this.options.viewClass, delete this.options.viewClass;\n }\n getChildViews() {\n return this.childViews.length || Array.from(this.objectGroup.getObjects()).forEach(t => {\n this.findOrCreateCachedChildView(this.viewClass, t, this.options);\n }), this.childViews;\n }\n createNodes() {\n const t = this.createContainerElement();\n return this.getChildViews().forEach(e => {\n Array.from(e.getNodes()).forEach(e => {\n t.appendChild(e);\n });\n }), [t];\n }\n createContainerElement() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.objectGroup.getDepth();\n return this.getChildViews()[0].createContainerElement(t);\n }\n}\nconst ee = W.css;\nclass ie extends Zt {\n constructor() {\n super(...arguments), this.attachment = this.object, this.attachment.uploadProgressDelegate = this, this.attachmentPiece = this.options.piece;\n }\n createContentNodes() {\n return [];\n }\n createNodes() {\n let t;\n const e = t = C({\n tagName: \"figure\",\n className: this.getClassName(),\n data: this.getData(),\n editable: !1\n }),\n i = this.getHref();\n return i && (t = C({\n tagName: \"a\",\n editable: !1,\n attributes: {\n href: i,\n tabindex: -1\n }\n }), e.appendChild(t)), this.attachment.hasContent() ? t.innerHTML = this.attachment.getContent() : this.createContentNodes().forEach(e => {\n t.appendChild(e);\n }), t.appendChild(this.createCaptionElement()), this.attachment.isPending() && (this.progressElement = C({\n tagName: \"progress\",\n attributes: {\n class: ee.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)), [ne(\"left\"), e, ne(\"right\")];\n }\n createCaptionElement() {\n const t = C({\n tagName: \"figcaption\",\n className: ee.attachmentCaption\n }),\n e = this.attachmentPiece.getCaption();\n if (e) t.classList.add(\"\".concat(ee.attachmentCaption, \"--edited\")), t.textContent = e;else {\n let e, i;\n const n = this.getCaptionConfig();\n if (n.name && (e = this.attachment.getFilename()), n.size && (i = this.attachment.getFormattedFilesize()), e) {\n const i = C({\n tagName: \"span\",\n className: ee.attachmentName,\n textContent: e\n });\n t.appendChild(i);\n }\n if (i) {\n e && t.appendChild(document.createTextNode(\" \"));\n const n = C({\n tagName: \"span\",\n className: ee.attachmentSize,\n textContent: i\n });\n t.appendChild(n);\n }\n }\n return t;\n }\n getClassName() {\n const t = [ee.attachment, \"\".concat(ee.attachment, \"--\").concat(this.attachment.getType())],\n e = this.attachment.getExtension();\n return e && t.push(\"\".concat(ee.attachment, \"--\").concat(e)), t.join(\" \");\n }\n getData() {\n const t = {\n trixAttachment: JSON.stringify(this.attachment),\n trixContentType: this.attachment.getContentType(),\n trixId: this.attachment.id\n },\n e = this.attachmentPiece.attributes;\n return e.isEmpty() || (t.trixAttributes = JSON.stringify(e)), this.attachment.isPending() && (t.trixSerialize = !1), t;\n }\n getHref() {\n if (!re(this.attachment.getContent(), \"a\")) return this.attachment.getHref();\n }\n getCaptionConfig() {\n var e;\n const i = this.attachment.getType(),\n n = Ct(null === (e = t[i]) || void 0 === e ? void 0 : e.caption);\n return \"file\" === i && (n.name = !0), n;\n }\n findProgressElement() {\n var t;\n return null === (t = this.findElement()) || void 0 === t ? void 0 : t.querySelector(\"progress\");\n }\n attachmentDidChangeUploadProgress() {\n const t = this.attachment.getUploadProgress(),\n e = this.findProgressElement();\n e && (e.value = t);\n }\n}\nconst ne = t => C({\n tagName: \"span\",\n textContent: \"\\ufeff\",\n data: {\n trixCursorTarget: t,\n trixSerialize: !1\n }\n }),\n re = function (t, e) {\n const i = C(\"div\");\n return i.innerHTML = t || \"\", i.querySelector(e);\n };\nclass oe extends ie {\n constructor() {\n super(...arguments), this.attachment.previewDelegate = this;\n }\n createContentNodes() {\n return this.image = C({\n tagName: \"img\",\n attributes: {\n src: \"\"\n },\n data: {\n trixMutable: !0\n }\n }), this.refresh(this.image), [this.image];\n }\n createCaptionElement() {\n const t = super.createCaptionElement(...arguments);\n return t.textContent || t.setAttribute(\"data-trix-placeholder\", s.captionPlaceholder), t;\n }\n refresh(t) {\n var e;\n t || (t = null === (e = this.findElement()) || void 0 === e ? void 0 : e.querySelector(\"img\"));\n if (t) return this.updateAttributesForImage(t);\n }\n updateAttributesForImage(t) {\n const e = this.attachment.getURL(),\n i = this.attachment.getPreviewURL();\n if (t.src = i || e, i === e) t.removeAttribute(\"data-trix-serialized-attributes\");else {\n const i = JSON.stringify({\n src: e\n });\n t.setAttribute(\"data-trix-serialized-attributes\", i);\n }\n const n = this.attachment.getWidth(),\n r = this.attachment.getHeight();\n null != n && (t.width = n), null != r && (t.height = r);\n const o = [\"imageElement\", this.attachment.id, t.src, t.width, t.height].join(\"/\");\n t.dataset.trixStoreKey = o;\n }\n attachmentDidChangeAttributes() {\n return this.refresh(this.image), this.refresh();\n }\n}\nclass se extends Zt {\n constructor() {\n super(...arguments), this.piece = this.object, this.attributes = this.piece.getAttributes(), this.textConfig = this.options.textConfig, this.context = this.options.context, this.piece.attachment ? this.attachment = this.piece.attachment : this.string = this.piece.toString();\n }\n createNodes() {\n let t = this.attachment ? this.createAttachmentNodes() : this.createStringNodes();\n const e = this.createElement();\n if (e) {\n const i = function (t) {\n for (; null !== (e = t) && void 0 !== e && e.firstElementChild;) {\n var e;\n t = t.firstElementChild;\n }\n return t;\n }(e);\n Array.from(t).forEach(t => {\n i.appendChild(t);\n }), t = [e];\n }\n return t;\n }\n createAttachmentNodes() {\n const t = this.attachment.isPreviewable() ? oe : ie;\n return this.createChildView(t, this.piece.attachment, {\n piece: this.piece\n }).getNodes();\n }\n createStringNodes() {\n var t;\n if (null !== (t = this.textConfig) && void 0 !== t && t.plaintext) return [document.createTextNode(this.string)];\n {\n const t = [],\n e = this.string.split(\"\\n\");\n for (let i = 0; i < e.length; i++) {\n const n = e[i];\n if (i > 0) {\n const e = C(\"br\");\n t.push(e);\n }\n if (n.length) {\n const e = document.createTextNode(this.preserveSpaces(n));\n t.push(e);\n }\n }\n return t;\n }\n }\n createElement() {\n let t, e, i;\n const n = {};\n for (e in this.attributes) {\n i = this.attributes[e];\n const o = dt(e);\n if (o) {\n if (o.tagName) {\n var r;\n const e = C(o.tagName);\n r ? (r.appendChild(e), r = e) : t = r = e;\n }\n if (o.styleProperty && (n[o.styleProperty] = i), o.style) for (e in o.style) i = o.style[e], n[e] = i;\n }\n }\n if (Object.keys(n).length) for (e in t || (t = C(\"span\")), n) i = n[e], t.style[e] = i;\n return t;\n }\n createContainerElement() {\n for (const t in this.attributes) {\n const e = this.attributes[t],\n i = dt(t);\n if (i && i.groupTagName) {\n const n = {};\n return n[t] = e, C(i.groupTagName, n);\n }\n }\n }\n preserveSpaces(t) {\n return this.context.isLast && (t = t.replace(/\\ $/, \" \")), t = t.replace(/(\\S)\\ {3}(\\S)/g, \"$1 \".concat(\" \", \" $2\")).replace(/\\ {2}/g, \"\".concat(\" \", \" \")).replace(/\\ {2}/g, \" \".concat(\" \")), (this.context.isFirst || this.context.followsWhitespace) && (t = t.replace(/^\\ /, \" \")), t;\n }\n}\nclass ae extends Zt {\n constructor() {\n super(...arguments), this.text = this.object, this.textConfig = this.options.textConfig;\n }\n createNodes() {\n const t = [],\n e = Gt.groupObjects(this.getPieces()),\n i = e.length - 1;\n for (let r = 0; r < e.length; r++) {\n const o = e[r],\n s = {};\n 0 === r && (s.isFirst = !0), r === i && (s.isLast = !0), le(n) && (s.followsWhitespace = !0);\n const a = this.findOrCreateCachedChildView(se, o, {\n textConfig: this.textConfig,\n context: s\n });\n t.push(...Array.from(a.getNodes() || []));\n var n = o;\n }\n return t;\n }\n getPieces() {\n return Array.from(this.text.getPieces()).filter(t => !t.hasAttribute(\"blockBreak\"));\n }\n}\nconst le = t => /\\s$/.test(null == t ? void 0 : t.toString()),\n ce = W.css;\nclass he extends Zt {\n constructor() {\n super(...arguments), this.block = this.object, this.attributes = this.block.getAttributes();\n }\n createNodes() {\n const t = [document.createComment(\"block\")];\n if (this.block.isEmpty()) t.push(C(\"br\"));else {\n var i;\n const e = null === (i = ht(this.block.getLastAttribute())) || void 0 === i ? void 0 : i.text,\n n = this.findOrCreateCachedChildView(ae, this.block.text, {\n textConfig: e\n });\n t.push(...Array.from(n.getNodes() || [])), this.shouldAddExtraNewlineElement() && t.push(C(\"br\"));\n }\n if (this.attributes.length) return t;\n {\n let i;\n const n = e.default.tagName;\n this.block.isRTL() && (i = {\n dir: \"rtl\"\n });\n const r = C({\n tagName: n,\n attributes: i\n });\n return t.forEach(t => r.appendChild(t)), [r];\n }\n }\n createContainerElement(t) {\n let e, i;\n const n = this.attributes[t],\n _ht = ht(n),\n r = _ht.tagName;\n if (0 === t && this.block.isRTL() && (e = {\n dir: \"rtl\"\n }), \"attachmentGallery\" === n) {\n const t = this.block.getBlockBreakPosition();\n i = \"\".concat(ce.attachmentGallery, \" \").concat(ce.attachmentGallery, \"--\").concat(t);\n }\n return C({\n tagName: r,\n className: i,\n attributes: e\n });\n }\n shouldAddExtraNewlineElement() {\n return /\\n\\n$/.test(this.block.toString());\n }\n}\nclass ue extends Zt {\n static render(t) {\n const e = C(\"div\"),\n i = new this(t, {\n element: e\n });\n return i.render(), i.sync(), e;\n }\n constructor() {\n super(...arguments), this.element = this.options.element, this.elementStore = new Xt(), this.setDocument(this.object);\n }\n setDocument(t) {\n t.isEqualTo(this.document) || (this.document = this.object = t);\n }\n render() {\n if (this.childViews = [], this.shadowElement = C(\"div\"), !this.document.isEmpty()) {\n const t = Gt.groupObjects(this.document.getBlocks(), {\n asTree: !0\n });\n Array.from(t).forEach(t => {\n const e = this.findOrCreateCachedChildView(he, t);\n Array.from(e.getNodes()).map(t => this.shadowElement.appendChild(t));\n });\n }\n }\n isSynced() {\n return ge(this.shadowElement, this.element);\n }\n sync() {\n const t = this.createDocumentFragmentForSync();\n for (; this.element.lastChild;) this.element.removeChild(this.element.lastChild);\n return this.element.appendChild(t), this.didSync();\n }\n didSync() {\n return this.elementStore.reset(de(this.element)), yt(() => this.garbageCollectCachedViews());\n }\n createDocumentFragmentForSync() {\n const t = document.createDocumentFragment();\n return Array.from(this.shadowElement.childNodes).forEach(e => {\n t.appendChild(e.cloneNode(!0));\n }), Array.from(de(t)).forEach(t => {\n const e = this.elementStore.remove(t);\n e && t.parentNode.replaceChild(e, t);\n }), t;\n }\n}\nconst de = t => t.querySelectorAll(\"[data-trix-store-key]\"),\n ge = (t, e) => me(t.innerHTML) === me(e.innerHTML),\n me = t => t.replace(/ /g, \" \");\nfunction pe(t) {\n this.wrapped = t;\n}\nfunction fe(t) {\n var e, i;\n function n(e, i) {\n try {\n var o = t[e](i),\n s = o.value,\n a = s instanceof pe;\n Promise.resolve(a ? s.wrapped : s).then(function (t) {\n a ? n(\"return\" === e ? \"return\" : \"next\", t) : r(o.done ? \"return\" : \"normal\", t);\n }, function (t) {\n n(\"throw\", t);\n });\n } catch (t) {\n r(\"throw\", t);\n }\n }\n function r(t, r) {\n switch (t) {\n case \"return\":\n e.resolve({\n value: r,\n done: !0\n });\n break;\n case \"throw\":\n e.reject(r);\n break;\n default:\n e.resolve({\n value: r,\n done: !1\n });\n }\n (e = e.next) ? n(e.key, e.arg) : i = null;\n }\n this._invoke = function (t, r) {\n return new Promise(function (o, s) {\n var a = {\n key: t,\n arg: r,\n resolve: o,\n reject: s,\n next: null\n };\n i ? i = i.next = a : (e = i = a, n(t, r));\n });\n }, \"function\" != typeof t.return && (this.return = void 0);\n}\nfunction be(t, e, i) {\n return e in t ? Object.defineProperty(t, e, {\n value: i,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : t[e] = i, t;\n}\nfe.prototype[\"function\" == typeof Symbol && Symbol.asyncIterator || \"@@asyncIterator\"] = function () {\n return this;\n}, fe.prototype.next = function (t) {\n return this._invoke(\"next\", t);\n}, fe.prototype.throw = function (t) {\n return this._invoke(\"throw\", t);\n}, fe.prototype.return = function (t) {\n return this._invoke(\"return\", t);\n};\nclass ve extends tt {\n static registerType(t, e) {\n e.type = t, this.types[t] = e;\n }\n static fromJSON(t) {\n const e = this.types[t.type];\n if (e) return e.fromJSON(t);\n }\n constructor(t) {\n let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n super(...arguments), this.attributes = Vt.box(e);\n }\n copyWithAttributes(t) {\n return new this.constructor(this.getValue(), t);\n }\n copyWithAdditionalAttributes(t) {\n return this.copyWithAttributes(this.attributes.merge(t));\n }\n copyWithoutAttribute(t) {\n return this.copyWithAttributes(this.attributes.remove(t));\n }\n copy() {\n return this.copyWithAttributes(this.attributes);\n }\n getAttribute(t) {\n return this.attributes.get(t);\n }\n getAttributesHash() {\n return this.attributes;\n }\n getAttributes() {\n return this.attributes.toObject();\n }\n hasAttribute(t) {\n return this.attributes.has(t);\n }\n hasSameStringValueAsPiece(t) {\n return t && this.toString() === t.toString();\n }\n hasSameAttributesAsPiece(t) {\n return t && (this.attributes === t.attributes || this.attributes.isEqualTo(t.attributes));\n }\n isBlockBreak() {\n return !1;\n }\n isEqualTo(t) {\n return super.isEqualTo(...arguments) || this.hasSameConstructorAs(t) && this.hasSameStringValueAsPiece(t) && this.hasSameAttributesAsPiece(t);\n }\n isEmpty() {\n return 0 === this.length;\n }\n isSerializable() {\n return !0;\n }\n toJSON() {\n return {\n type: this.constructor.type,\n attributes: this.getAttributes()\n };\n }\n contentsForInspection() {\n return {\n type: this.constructor.type,\n attributes: this.attributes.inspect()\n };\n }\n canBeGrouped() {\n return this.hasAttribute(\"href\");\n }\n canBeGroupedWith(t) {\n return this.getAttribute(\"href\") === t.getAttribute(\"href\");\n }\n getLength() {\n return this.length;\n }\n canBeConsolidatedWith(t) {\n return !1;\n }\n}\nbe(ve, \"types\", {});\nclass Ae extends Qt {\n constructor(t) {\n super(...arguments), this.url = t;\n }\n perform(t) {\n const e = new Image();\n e.onload = () => (e.width = this.width = e.naturalWidth, e.height = this.height = e.naturalHeight, t(!0, e)), e.onerror = () => t(!1), e.src = this.url;\n }\n}\nclass xe extends tt {\n static attachmentForFile(t) {\n const e = new this(this.attributesForFile(t));\n return e.setFile(t), e;\n }\n static attributesForFile(t) {\n return new Vt({\n filename: t.name,\n filesize: t.size,\n contentType: t.type\n });\n }\n static fromJSON(t) {\n return new this(t);\n }\n constructor() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n super(t), this.releaseFile = this.releaseFile.bind(this), this.attributes = Vt.box(t), this.didChangeAttributes();\n }\n getAttribute(t) {\n return this.attributes.get(t);\n }\n hasAttribute(t) {\n return this.attributes.has(t);\n }\n getAttributes() {\n return this.attributes.toObject();\n }\n setAttributes() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n const e = this.attributes.merge(t);\n var i, n, r, o;\n if (!this.attributes.isEqualTo(e)) return this.attributes = e, this.didChangeAttributes(), null === (i = this.previewDelegate) || void 0 === i || null === (n = i.attachmentDidChangeAttributes) || void 0 === n || n.call(i, this), null === (r = this.delegate) || void 0 === r || null === (o = r.attachmentDidChangeAttributes) || void 0 === o ? void 0 : o.call(r, this);\n }\n didChangeAttributes() {\n if (this.isPreviewable()) return this.preloadURL();\n }\n isPending() {\n return null != this.file && !(this.getURL() || this.getHref());\n }\n isPreviewable() {\n return this.attributes.has(\"previewable\") ? this.attributes.get(\"previewable\") : xe.previewablePattern.test(this.getContentType());\n }\n getType() {\n return this.hasContent() ? \"content\" : this.isPreviewable() ? \"preview\" : \"file\";\n }\n getURL() {\n return this.attributes.get(\"url\");\n }\n getHref() {\n return this.attributes.get(\"href\");\n }\n getFilename() {\n return this.attributes.get(\"filename\") || \"\";\n }\n getFilesize() {\n return this.attributes.get(\"filesize\");\n }\n getFormattedFilesize() {\n const t = this.attributes.get(\"filesize\");\n return \"number\" == typeof t ? l.formatter(t) : \"\";\n }\n getExtension() {\n var t;\n return null === (t = this.getFilename().match(/\\.(\\w+)$/)) || void 0 === t ? void 0 : t[1].toLowerCase();\n }\n getContentType() {\n return this.attributes.get(\"contentType\");\n }\n hasContent() {\n return this.attributes.has(\"content\");\n }\n getContent() {\n return this.attributes.get(\"content\");\n }\n getWidth() {\n return this.attributes.get(\"width\");\n }\n getHeight() {\n return this.attributes.get(\"height\");\n }\n getFile() {\n return this.file;\n }\n setFile(t) {\n if (this.file = t, this.isPreviewable()) return this.preloadFile();\n }\n releaseFile() {\n this.releasePreloadedFile(), this.file = null;\n }\n getUploadProgress() {\n return null != this.uploadProgress ? this.uploadProgress : 0;\n }\n setUploadProgress(t) {\n var e, i;\n if (this.uploadProgress !== t) return this.uploadProgress = t, null === (e = this.uploadProgressDelegate) || void 0 === e || null === (i = e.attachmentDidChangeUploadProgress) || void 0 === i ? void 0 : i.call(e, this);\n }\n toJSON() {\n return this.getAttributes();\n }\n getCacheKey() {\n return [super.getCacheKey(...arguments), this.attributes.getCacheKey(), this.getPreviewURL()].join(\"/\");\n }\n getPreviewURL() {\n return this.previewURL || this.preloadingURL;\n }\n setPreviewURL(t) {\n var e, i, n, r;\n if (t !== this.getPreviewURL()) return this.previewURL = t, null === (e = this.previewDelegate) || void 0 === e || null === (i = e.attachmentDidChangeAttributes) || void 0 === i || i.call(e, this), null === (n = this.delegate) || void 0 === n || null === (r = n.attachmentDidChangePreviewURL) || void 0 === r ? void 0 : r.call(n, this);\n }\n preloadURL() {\n return this.preload(this.getURL(), this.releaseFile);\n }\n preloadFile() {\n if (this.file) return this.fileObjectURL = URL.createObjectURL(this.file), this.preload(this.fileObjectURL);\n }\n releasePreloadedFile() {\n this.fileObjectURL && (URL.revokeObjectURL(this.fileObjectURL), this.fileObjectURL = null);\n }\n preload(t, e) {\n if (t && t !== this.getPreviewURL()) {\n this.preloadingURL = t;\n return new Ae(t).then(i => {\n let n = i.width,\n r = i.height;\n return this.getWidth() && this.getHeight() || this.setAttributes({\n width: n,\n height: r\n }), this.preloadingURL = null, this.setPreviewURL(t), null == e ? void 0 : e();\n }).catch(() => (this.preloadingURL = null, null == e ? void 0 : e()));\n }\n }\n}\nbe(xe, \"previewablePattern\", /^image(\\/(gif|png|jpe?g)|$)/);\nclass ye extends ve {\n static fromJSON(t) {\n return new this(xe.fromJSON(t.attachment), t.attributes);\n }\n constructor(t) {\n super(...arguments), this.attachment = t, this.length = 1, this.ensureAttachmentExclusivelyHasAttribute(\"href\"), this.attachment.hasContent() || this.removeProhibitedAttributes();\n }\n ensureAttachmentExclusivelyHasAttribute(t) {\n this.hasAttribute(t) && (this.attachment.hasAttribute(t) || this.attachment.setAttributes(this.attributes.slice([t])), this.attributes = this.attributes.remove(t));\n }\n removeProhibitedAttributes() {\n const t = this.attributes.slice(ye.permittedAttributes);\n t.isEqualTo(this.attributes) || (this.attributes = t);\n }\n getValue() {\n return this.attachment;\n }\n isSerializable() {\n return !this.attachment.isPending();\n }\n getCaption() {\n return this.attributes.get(\"caption\") || \"\";\n }\n isEqualTo(t) {\n var e;\n return super.isEqualTo(t) && this.attachment.id === (null == t || null === (e = t.attachment) || void 0 === e ? void 0 : e.id);\n }\n toString() {\n return \"\";\n }\n toJSON() {\n const t = super.toJSON(...arguments);\n return t.attachment = this.attachment, t;\n }\n getCacheKey() {\n return [super.getCacheKey(...arguments), this.attachment.getCacheKey()].join(\"/\");\n }\n toConsole() {\n return JSON.stringify(this.toString());\n }\n}\nbe(ye, \"permittedAttributes\", [\"caption\", \"presentation\"]), ve.registerType(\"attachment\", ye);\nclass Ce extends ve {\n static fromJSON(t) {\n return new this(t.string, t.attributes);\n }\n constructor(t) {\n super(...arguments), this.string = (t => t.replace(/\\r\\n/g, \"\\n\"))(t), this.length = this.string.length;\n }\n getValue() {\n return this.string;\n }\n toString() {\n return this.string.toString();\n }\n isBlockBreak() {\n return \"\\n\" === this.toString() && !0 === this.getAttribute(\"blockBreak\");\n }\n toJSON() {\n const t = super.toJSON(...arguments);\n return t.string = this.string, t;\n }\n canBeConsolidatedWith(t) {\n return t && this.hasSameConstructorAs(t) && this.hasSameAttributesAsPiece(t);\n }\n consolidateWith(t) {\n return new this.constructor(this.toString() + t.toString(), this.attributes);\n }\n splitAtOffset(t) {\n let e, i;\n return 0 === t ? (e = null, i = this) : t === this.length ? (e = this, i = null) : (e = new this.constructor(this.string.slice(0, t), this.attributes), i = new this.constructor(this.string.slice(t), this.attributes)), [e, i];\n }\n toConsole() {\n let t = this.string;\n return t.length > 15 && (t = t.slice(0, 14) + \"…\"), JSON.stringify(t.toString());\n }\n}\nve.registerType(\"string\", Ce);\nclass Re extends tt {\n static box(t) {\n return t instanceof this ? t : new this(t);\n }\n constructor() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\n super(...arguments), this.objects = t.slice(0), this.length = this.objects.length;\n }\n indexOf(t) {\n return this.objects.indexOf(t);\n }\n splice() {\n for (var t = arguments.length, e = new Array(t), i = 0; i < t; i++) e[i] = arguments[i];\n return new this.constructor(it(this.objects, ...e));\n }\n eachObject(t) {\n return this.objects.map((e, i) => t(e, i));\n }\n insertObjectAtIndex(t, e) {\n return this.splice(e, 0, t);\n }\n insertSplittableListAtIndex(t, e) {\n return this.splice(e, 0, ...t.objects);\n }\n insertSplittableListAtPosition(t, e) {\n const _this$splitObjectAtPo = this.splitObjectAtPosition(e),\n _this$splitObjectAtPo2 = _slicedToArray(_this$splitObjectAtPo, 2),\n i = _this$splitObjectAtPo2[0],\n n = _this$splitObjectAtPo2[1];\n return new this.constructor(i).insertSplittableListAtIndex(t, n);\n }\n editObjectAtIndex(t, e) {\n return this.replaceObjectAtIndex(e(this.objects[t]), t);\n }\n replaceObjectAtIndex(t, e) {\n return this.splice(e, 1, t);\n }\n removeObjectAtIndex(t) {\n return this.splice(t, 1);\n }\n getObjectAtIndex(t) {\n return this.objects[t];\n }\n getSplittableListInRange(t) {\n const _this$splitObjectsAtR = this.splitObjectsAtRange(t),\n _this$splitObjectsAtR2 = _slicedToArray(_this$splitObjectsAtR, 3),\n e = _this$splitObjectsAtR2[0],\n i = _this$splitObjectsAtR2[1],\n n = _this$splitObjectsAtR2[2];\n return new this.constructor(e.slice(i, n + 1));\n }\n selectSplittableList(t) {\n const e = this.objects.filter(e => t(e));\n return new this.constructor(e);\n }\n removeObjectsInRange(t) {\n const _this$splitObjectsAtR3 = this.splitObjectsAtRange(t),\n _this$splitObjectsAtR4 = _slicedToArray(_this$splitObjectsAtR3, 3),\n e = _this$splitObjectsAtR4[0],\n i = _this$splitObjectsAtR4[1],\n n = _this$splitObjectsAtR4[2];\n return new this.constructor(e).splice(i, n - i + 1);\n }\n transformObjectsInRange(t, e) {\n const _this$splitObjectsAtR5 = this.splitObjectsAtRange(t),\n _this$splitObjectsAtR6 = _slicedToArray(_this$splitObjectsAtR5, 3),\n i = _this$splitObjectsAtR6[0],\n n = _this$splitObjectsAtR6[1],\n r = _this$splitObjectsAtR6[2],\n o = i.map((t, i) => n <= i && i <= r ? e(t) : t);\n return new this.constructor(o);\n }\n splitObjectsAtRange(t) {\n var _this$constructor$spl, _this$constructor$spl2;\n let e,\n _this$splitObjectAtPo3 = this.splitObjectAtPosition(Ee(t)),\n _this$splitObjectAtPo4 = _slicedToArray(_this$splitObjectAtPo3, 3),\n i = _this$splitObjectAtPo4[0],\n n = _this$splitObjectAtPo4[1],\n r = _this$splitObjectAtPo4[2];\n return (_this$constructor$spl = new this.constructor(i).splitObjectAtPosition(ke(t) + r), _this$constructor$spl2 = _slicedToArray(_this$constructor$spl, 2), i = _this$constructor$spl2[0], e = _this$constructor$spl2[1]), [i, n, e - 1];\n }\n getObjectAtPosition(t) {\n const _this$findIndexAndOff = this.findIndexAndOffsetAtPosition(t),\n e = _this$findIndexAndOff.index;\n return this.objects[e];\n }\n splitObjectAtPosition(t) {\n let e, i;\n const _this$findIndexAndOff2 = this.findIndexAndOffsetAtPosition(t),\n n = _this$findIndexAndOff2.index,\n r = _this$findIndexAndOff2.offset,\n o = this.objects.slice(0);\n if (null != n) {\n if (0 === r) e = n, i = 0;else {\n const t = this.getObjectAtIndex(n),\n _t$splitAtOffset = t.splitAtOffset(r),\n _t$splitAtOffset2 = _slicedToArray(_t$splitAtOffset, 2),\n s = _t$splitAtOffset2[0],\n a = _t$splitAtOffset2[1];\n o.splice(n, 1, s, a), e = n + 1, i = s.getLength() - r;\n }\n } else e = o.length, i = 0;\n return [o, e, i];\n }\n consolidate() {\n const t = [];\n let e = this.objects[0];\n return this.objects.slice(1).forEach(i => {\n var n, r;\n null !== (n = (r = e).canBeConsolidatedWith) && void 0 !== n && n.call(r, i) ? e = e.consolidateWith(i) : (t.push(e), e = i);\n }), e && t.push(e), new this.constructor(t);\n }\n consolidateFromIndexToIndex(t, e) {\n const i = this.objects.slice(0).slice(t, e + 1),\n n = new this.constructor(i).consolidate().toArray();\n return this.splice(t, i.length, ...n);\n }\n findIndexAndOffsetAtPosition(t) {\n let e,\n i = 0;\n for (e = 0; e < this.objects.length; e++) {\n const n = i + this.objects[e].getLength();\n if (i <= t && t < n) return {\n index: e,\n offset: t - i\n };\n i = n;\n }\n return {\n index: null,\n offset: null\n };\n }\n findPositionAtIndexAndOffset(t, e) {\n let i = 0;\n for (let n = 0; n < this.objects.length; n++) {\n const r = this.objects[n];\n if (n < t) i += r.getLength();else if (n === t) {\n i += e;\n break;\n }\n }\n return i;\n }\n getEndPosition() {\n return null == this.endPosition && (this.endPosition = 0, this.objects.forEach(t => this.endPosition += t.getLength())), this.endPosition;\n }\n toString() {\n return this.objects.join(\"\");\n }\n toArray() {\n return this.objects.slice(0);\n }\n toJSON() {\n return this.toArray();\n }\n isEqualTo(t) {\n return super.isEqualTo(...arguments) || Se(this.objects, null == t ? void 0 : t.objects);\n }\n contentsForInspection() {\n return {\n objects: \"[\".concat(this.objects.map(t => t.inspect()).join(\", \"), \"]\")\n };\n }\n}\nconst Se = function (t) {\n let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];\n if (t.length !== e.length) return !1;\n let i = !0;\n for (let n = 0; n < t.length; n++) {\n const r = t[n];\n i && !r.isEqualTo(e[n]) && (i = !1);\n }\n return i;\n },\n Ee = t => t[0],\n ke = t => t[1];\nclass Le extends tt {\n static textForAttachmentWithAttributes(t, e) {\n return new this([new ye(t, e)]);\n }\n static textForStringWithAttributes(t, e) {\n return new this([new Ce(t, e)]);\n }\n static fromJSON(t) {\n return new this(Array.from(t).map(t => ve.fromJSON(t)));\n }\n constructor() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\n super(...arguments);\n const e = t.filter(t => !t.isEmpty());\n this.pieceList = new Re(e);\n }\n copy() {\n return this.copyWithPieceList(this.pieceList);\n }\n copyWithPieceList(t) {\n return new this.constructor(t.consolidate().toArray());\n }\n copyUsingObjectMap(t) {\n const e = this.getPieces().map(e => t.find(e) || e);\n return new this.constructor(e);\n }\n appendText(t) {\n return this.insertTextAtPosition(t, this.getLength());\n }\n insertTextAtPosition(t, e) {\n return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList, e));\n }\n removeTextAtRange(t) {\n return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t));\n }\n replaceTextAtRange(t, e) {\n return this.removeTextAtRange(e).insertTextAtPosition(t, e[0]);\n }\n moveTextFromRangeToPosition(t, e) {\n if (t[0] <= e && e <= t[1]) return;\n const i = this.getTextAtRange(t),\n n = i.getLength();\n return t[0] < e && (e -= n), this.removeTextAtRange(t).insertTextAtPosition(i, e);\n }\n addAttributeAtRange(t, e, i) {\n const n = {};\n return n[t] = e, this.addAttributesAtRange(n, i);\n }\n addAttributesAtRange(t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, e => e.copyWithAdditionalAttributes(t)));\n }\n removeAttributeAtRange(t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, e => e.copyWithoutAttribute(t)));\n }\n setAttributesAtRange(t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, e => e.copyWithAttributes(t)));\n }\n getAttributesAtPosition(t) {\n var e;\n return (null === (e = this.pieceList.getObjectAtPosition(t)) || void 0 === e ? void 0 : e.getAttributes()) || {};\n }\n getCommonAttributes() {\n const t = Array.from(this.pieceList.toArray()).map(t => t.getAttributes());\n return Vt.fromCommonAttributesOfObjects(t).toObject();\n }\n getCommonAttributesAtRange(t) {\n return this.getTextAtRange(t).getCommonAttributes() || {};\n }\n getExpandedRangeForAttributeAtOffset(t, e) {\n let i,\n n = i = e;\n const r = this.getLength();\n for (; n > 0 && this.getCommonAttributesAtRange([n - 1, i])[t];) n--;\n for (; i < r && this.getCommonAttributesAtRange([e, i + 1])[t];) i++;\n return [n, i];\n }\n getTextAtRange(t) {\n return this.copyWithPieceList(this.pieceList.getSplittableListInRange(t));\n }\n getStringAtRange(t) {\n return this.pieceList.getSplittableListInRange(t).toString();\n }\n getStringAtPosition(t) {\n return this.getStringAtRange([t, t + 1]);\n }\n startsWithString(t) {\n return this.getStringAtRange([0, t.length]) === t;\n }\n endsWithString(t) {\n const e = this.getLength();\n return this.getStringAtRange([e - t.length, e]) === t;\n }\n getAttachmentPieces() {\n return this.pieceList.toArray().filter(t => !!t.attachment);\n }\n getAttachments() {\n return this.getAttachmentPieces().map(t => t.attachment);\n }\n getAttachmentAndPositionById(t) {\n let e = 0;\n for (const n of this.pieceList.toArray()) {\n var i;\n if ((null === (i = n.attachment) || void 0 === i ? void 0 : i.id) === t) return {\n attachment: n.attachment,\n position: e\n };\n e += n.length;\n }\n return {\n attachment: null,\n position: null\n };\n }\n getAttachmentById(t) {\n const _this$getAttachmentAn = this.getAttachmentAndPositionById(t),\n e = _this$getAttachmentAn.attachment;\n return e;\n }\n getRangeOfAttachment(t) {\n const e = this.getAttachmentAndPositionById(t.id),\n i = e.position;\n if (t = e.attachment) return [i, i + 1];\n }\n updateAttributesForAttachment(t, e) {\n const i = this.getRangeOfAttachment(e);\n return i ? this.addAttributesAtRange(t, i) : this;\n }\n getLength() {\n return this.pieceList.getEndPosition();\n }\n isEmpty() {\n return 0 === this.getLength();\n }\n isEqualTo(t) {\n var e;\n return super.isEqualTo(t) || (null == t || null === (e = t.pieceList) || void 0 === e ? void 0 : e.isEqualTo(this.pieceList));\n }\n isBlockBreak() {\n return 1 === this.getLength() && this.pieceList.getObjectAtIndex(0).isBlockBreak();\n }\n eachPiece(t) {\n return this.pieceList.eachObject(t);\n }\n getPieces() {\n return this.pieceList.toArray();\n }\n getPieceAtPosition(t) {\n return this.pieceList.getObjectAtPosition(t);\n }\n contentsForInspection() {\n return {\n pieceList: this.pieceList.inspect()\n };\n }\n toSerializableText() {\n const t = this.pieceList.selectSplittableList(t => t.isSerializable());\n return this.copyWithPieceList(t);\n }\n toString() {\n return this.pieceList.toString();\n }\n toJSON() {\n return this.pieceList.toJSON();\n }\n toConsole() {\n return JSON.stringify(this.pieceList.toArray().map(t => JSON.parse(t.toConsole())));\n }\n getDirection() {\n return rt(this.toString());\n }\n isRTL() {\n return \"rtl\" === this.getDirection();\n }\n}\nclass De extends tt {\n static fromJSON(t) {\n return new this(Le.fromJSON(t.text), t.attributes);\n }\n constructor(t, e) {\n super(...arguments), this.text = we(t || new Le()), this.attributes = e || [];\n }\n isEmpty() {\n return this.text.isBlockBreak();\n }\n isEqualTo(t) {\n return !!super.isEqualTo(t) || this.text.isEqualTo(null == t ? void 0 : t.text) && et(this.attributes, null == t ? void 0 : t.attributes);\n }\n copyWithText(t) {\n return new De(t, this.attributes);\n }\n copyWithoutText() {\n return this.copyWithText(null);\n }\n copyWithAttributes(t) {\n return new De(this.text, t);\n }\n copyWithoutAttributes() {\n return this.copyWithAttributes(null);\n }\n copyUsingObjectMap(t) {\n const e = t.find(this.text);\n return e ? this.copyWithText(e) : this.copyWithText(this.text.copyUsingObjectMap(t));\n }\n addAttribute(t) {\n const e = this.attributes.concat(Ne(t));\n return this.copyWithAttributes(e);\n }\n removeAttribute(t) {\n const _ht2 = ht(t),\n e = _ht2.listAttribute,\n i = Me(Me(this.attributes, t), e);\n return this.copyWithAttributes(i);\n }\n removeLastAttribute() {\n return this.removeAttribute(this.getLastAttribute());\n }\n getLastAttribute() {\n return Oe(this.attributes);\n }\n getAttributes() {\n return this.attributes.slice(0);\n }\n getAttributeLevel() {\n return this.attributes.length;\n }\n getAttributeAtLevel(t) {\n return this.attributes[t - 1];\n }\n hasAttribute(t) {\n return this.attributes.includes(t);\n }\n hasAttributes() {\n return this.getAttributeLevel() > 0;\n }\n getLastNestableAttribute() {\n return Oe(this.getNestableAttributes());\n }\n getNestableAttributes() {\n return this.attributes.filter(t => ht(t).nestable);\n }\n getNestingLevel() {\n return this.getNestableAttributes().length;\n }\n decreaseNestingLevel() {\n const t = this.getLastNestableAttribute();\n return t ? this.removeAttribute(t) : this;\n }\n increaseNestingLevel() {\n const t = this.getLastNestableAttribute();\n if (t) {\n const e = this.attributes.lastIndexOf(t),\n i = it(this.attributes, e + 1, 0, ...Ne(t));\n return this.copyWithAttributes(i);\n }\n return this;\n }\n getListItemAttributes() {\n return this.attributes.filter(t => ht(t).listAttribute);\n }\n isListItem() {\n var t;\n return null === (t = ht(this.getLastAttribute())) || void 0 === t ? void 0 : t.listAttribute;\n }\n isTerminalBlock() {\n var t;\n return null === (t = ht(this.getLastAttribute())) || void 0 === t ? void 0 : t.terminal;\n }\n breaksOnReturn() {\n var t;\n return null === (t = ht(this.getLastAttribute())) || void 0 === t ? void 0 : t.breakOnReturn;\n }\n findLineBreakInDirectionFromPosition(t, e) {\n const i = this.toString();\n let n;\n switch (t) {\n case \"forward\":\n n = i.indexOf(\"\\n\", e);\n break;\n case \"backward\":\n n = i.slice(0, e).lastIndexOf(\"\\n\");\n }\n if (-1 !== n) return n;\n }\n contentsForInspection() {\n return {\n text: this.text.inspect(),\n attributes: this.attributes\n };\n }\n toString() {\n return this.text.toString();\n }\n toJSON() {\n return {\n text: this.text,\n attributes: this.attributes\n };\n }\n getDirection() {\n return this.text.getDirection();\n }\n isRTL() {\n return this.text.isRTL();\n }\n getLength() {\n return this.text.getLength();\n }\n canBeConsolidatedWith(t) {\n return !this.hasAttributes() && !t.hasAttributes() && this.getDirection() === t.getDirection();\n }\n consolidateWith(t) {\n const e = Le.textForStringWithAttributes(\"\\n\"),\n i = this.getTextWithoutBlockBreak().appendText(e);\n return this.copyWithText(i.appendText(t.text));\n }\n splitAtOffset(t) {\n let e, i;\n return 0 === t ? (e = null, i = this) : t === this.getLength() ? (e = this, i = null) : (e = this.copyWithText(this.text.getTextAtRange([0, t])), i = this.copyWithText(this.text.getTextAtRange([t, this.getLength()]))), [e, i];\n }\n getBlockBreakPosition() {\n return this.text.getLength() - 1;\n }\n getTextWithoutBlockBreak() {\n return Ie(this.text) ? this.text.getTextAtRange([0, this.getBlockBreakPosition()]) : this.text.copy();\n }\n canBeGrouped(t) {\n return this.attributes[t];\n }\n canBeGroupedWith(t, i) {\n const n = t.getAttributes(),\n r = n[i],\n o = this.attributes[i];\n return o === r && !(!1 === ht(o).group && !(() => {\n if (!lt) {\n lt = [];\n for (const t in e) {\n const i = e[t].listAttribute;\n null != i && lt.push(i);\n }\n }\n return lt;\n })().includes(n[i + 1])) && (this.getDirection() === t.getDirection() || t.isEmpty());\n }\n}\nconst we = function (t) {\n return t = Te(t), t = Be(t);\n },\n Te = function (t) {\n let e = !1;\n const i = t.getPieces();\n let n = i.slice(0, i.length - 1);\n const r = i[i.length - 1];\n return r ? (n = n.map(t => t.isBlockBreak() ? (e = !0, Pe(t)) : t), e ? new Le([...n, r]) : t) : t;\n },\n Fe = Le.textForStringWithAttributes(\"\\n\", {\n blockBreak: !0\n }),\n Be = function (t) {\n return Ie(t) ? t : t.appendText(Fe);\n },\n Ie = function (t) {\n const e = t.getLength();\n if (0 === e) return !1;\n return t.getTextAtRange([e - 1, e]).isBlockBreak();\n },\n Pe = t => t.copyWithoutAttribute(\"blockBreak\"),\n Ne = function (t) {\n const _ht3 = ht(t),\n e = _ht3.listAttribute;\n return e ? [e, t] : [t];\n },\n Oe = t => t.slice(-1)[0],\n Me = function (t, e) {\n const i = t.lastIndexOf(e);\n return -1 === i ? t : it(t, i, 1);\n };\nclass je extends tt {\n static fromJSON(t) {\n return new this(Array.from(t).map(t => De.fromJSON(t)));\n }\n static fromString(t, e) {\n const i = Le.textForStringWithAttributes(t, e);\n return new this([new De(i)]);\n }\n constructor() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\n super(...arguments), 0 === t.length && (t = [new De()]), this.blockList = Re.box(t);\n }\n isEmpty() {\n const t = this.getBlockAtIndex(0);\n return 1 === this.blockList.length && t.isEmpty() && !t.hasAttributes();\n }\n copy() {\n const t = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).consolidateBlocks ? this.blockList.consolidate().toArray() : this.blockList.toArray();\n return new this.constructor(t);\n }\n copyUsingObjectsFromDocument(t) {\n const e = new $t(t.getObjects());\n return this.copyUsingObjectMap(e);\n }\n copyUsingObjectMap(t) {\n const e = this.getBlocks().map(e => t.find(e) || e.copyUsingObjectMap(t));\n return new this.constructor(e);\n }\n copyWithBaseBlockAttributes() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\n const e = this.getBlocks().map(e => {\n const i = t.concat(e.getAttributes());\n return e.copyWithAttributes(i);\n });\n return new this.constructor(e);\n }\n replaceBlock(t, e) {\n const i = this.blockList.indexOf(t);\n return -1 === i ? this : new this.constructor(this.blockList.replaceObjectAtIndex(e, i));\n }\n insertDocumentAtRange(t, e) {\n const i = t.blockList;\n e = St(e);\n let _e2 = e,\n _e3 = _slicedToArray(_e2, 1),\n n = _e3[0];\n const _this$locationFromPos = this.locationFromPosition(n),\n r = _this$locationFromPos.index,\n o = _this$locationFromPos.offset;\n let s = this;\n const a = this.getBlockAtPosition(n);\n return Et(e) && a.isEmpty() && !a.hasAttributes() ? s = new this.constructor(s.blockList.removeObjectAtIndex(r)) : a.getBlockBreakPosition() === o && n++, s = s.removeTextAtRange(e), new this.constructor(s.blockList.insertSplittableListAtPosition(i, n));\n }\n mergeDocumentAtRange(t, e) {\n let i, n;\n e = St(e);\n const _e4 = e,\n _e5 = _slicedToArray(_e4, 1),\n r = _e5[0],\n o = this.locationFromPosition(r),\n s = this.getBlockAtIndex(o.index).getAttributes(),\n a = t.getBaseBlockAttributes(),\n l = s.slice(-a.length);\n if (et(a, l)) {\n const e = s.slice(0, -a.length);\n i = t.copyWithBaseBlockAttributes(e);\n } else i = t.copy({\n consolidateBlocks: !0\n }).copyWithBaseBlockAttributes(s);\n const c = i.getBlockCount(),\n h = i.getBlockAtIndex(0);\n if (et(s, h.getAttributes())) {\n const t = h.getTextWithoutBlockBreak();\n if (n = this.insertTextAtRange(t, e), c > 1) {\n i = new this.constructor(i.getBlocks().slice(1));\n const e = r + t.getLength();\n n = n.insertDocumentAtRange(i, e);\n }\n } else n = this.insertDocumentAtRange(i, e);\n return n;\n }\n insertTextAtRange(t, e) {\n e = St(e);\n const _e6 = e,\n _e7 = _slicedToArray(_e6, 1),\n i = _e7[0],\n _this$locationFromPos2 = this.locationFromPosition(i),\n n = _this$locationFromPos2.index,\n r = _this$locationFromPos2.offset,\n o = this.removeTextAtRange(e);\n return new this.constructor(o.blockList.editObjectAtIndex(n, e => e.copyWithText(e.text.insertTextAtPosition(t, r))));\n }\n removeTextAtRange(t) {\n let e;\n t = St(t);\n const _t2 = t,\n _t3 = _slicedToArray(_t2, 2),\n i = _t3[0],\n n = _t3[1];\n if (Et(t)) return this;\n const _Array$from = Array.from(this.locationRangeFromRange(t)),\n _Array$from2 = _slicedToArray(_Array$from, 2),\n r = _Array$from2[0],\n o = _Array$from2[1],\n s = r.index,\n a = r.offset,\n l = this.getBlockAtIndex(s),\n c = o.index,\n h = o.offset,\n u = this.getBlockAtIndex(c);\n if (n - i == 1 && l.getBlockBreakPosition() === a && u.getBlockBreakPosition() !== h && \"\\n\" === u.text.getStringAtPosition(h)) e = this.blockList.editObjectAtIndex(c, t => t.copyWithText(t.text.removeTextAtRange([h, h + 1])));else {\n let t;\n const i = l.text.getTextAtRange([0, a]),\n n = u.text.getTextAtRange([h, u.getLength()]),\n r = i.appendText(n);\n t = s !== c && 0 === a && l.getAttributeLevel() >= u.getAttributeLevel() ? u.copyWithText(r) : l.copyWithText(r);\n const o = c + 1 - s;\n e = this.blockList.splice(s, o, t);\n }\n return new this.constructor(e);\n }\n moveTextFromRangeToPosition(t, e) {\n let i;\n t = St(t);\n const _t4 = t,\n _t5 = _slicedToArray(_t4, 2),\n n = _t5[0],\n r = _t5[1];\n if (n <= e && e <= r) return this;\n let o = this.getDocumentAtRange(t),\n s = this.removeTextAtRange(t);\n const a = n < e;\n a && (e -= o.getLength());\n const _o$getBlocks = o.getBlocks(),\n _o$getBlocks2 = _toArray(_o$getBlocks),\n l = _o$getBlocks2[0],\n c = _o$getBlocks2.slice(1);\n return 0 === c.length ? (i = l.getTextWithoutBlockBreak(), a && (e += 1)) : i = l.text, s = s.insertTextAtRange(i, e), 0 === c.length ? s : (o = new this.constructor(c), e += i.getLength(), s.insertDocumentAtRange(o, e));\n }\n addAttributeAtRange(t, e, i) {\n let n = this.blockList;\n return this.eachBlockAtRange(i, (i, r, o) => n = n.editObjectAtIndex(o, function () {\n return ht(t) ? i.addAttribute(t, e) : r[0] === r[1] ? i : i.copyWithText(i.text.addAttributeAtRange(t, e, r));\n })), new this.constructor(n);\n }\n addAttribute(t, e) {\n let i = this.blockList;\n return this.eachBlock((n, r) => i = i.editObjectAtIndex(r, () => n.addAttribute(t, e))), new this.constructor(i);\n }\n removeAttributeAtRange(t, e) {\n let i = this.blockList;\n return this.eachBlockAtRange(e, function (e, n, r) {\n ht(t) ? i = i.editObjectAtIndex(r, () => e.removeAttribute(t)) : n[0] !== n[1] && (i = i.editObjectAtIndex(r, () => e.copyWithText(e.text.removeAttributeAtRange(t, n))));\n }), new this.constructor(i);\n }\n updateAttributesForAttachment(t, e) {\n const i = this.getRangeOfAttachment(e),\n _Array$from3 = Array.from(i),\n _Array$from4 = _slicedToArray(_Array$from3, 1),\n n = _Array$from4[0],\n _this$locationFromPos3 = this.locationFromPosition(n),\n r = _this$locationFromPos3.index,\n o = this.getTextAtIndex(r);\n return new this.constructor(this.blockList.editObjectAtIndex(r, i => i.copyWithText(o.updateAttributesForAttachment(t, e))));\n }\n removeAttributeForAttachment(t, e) {\n const i = this.getRangeOfAttachment(e);\n return this.removeAttributeAtRange(t, i);\n }\n insertBlockBreakAtRange(t) {\n let e;\n t = St(t);\n const _t6 = t,\n _t7 = _slicedToArray(_t6, 1),\n i = _t7[0],\n _this$locationFromPos4 = this.locationFromPosition(i),\n n = _this$locationFromPos4.offset,\n r = this.removeTextAtRange(t);\n return 0 === n && (e = [new De()]), new this.constructor(r.blockList.insertSplittableListAtPosition(new Re(e), i));\n }\n applyBlockAttributeAtRange(t, e, i) {\n const n = this.expandRangeToLineBreaksAndSplitBlocks(i);\n let r = n.document;\n i = n.range;\n const o = ht(t);\n if (o.listAttribute) {\n r = r.removeLastListAttributeAtRange(i, {\n exceptAttributeName: t\n });\n const e = r.convertLineBreaksToBlockBreaksInRange(i);\n r = e.document, i = e.range;\n } else r = o.exclusive ? r.removeBlockAttributesAtRange(i) : o.terminal ? r.removeLastTerminalAttributeAtRange(i) : r.consolidateBlocksAtRange(i);\n return r.addAttributeAtRange(t, e, i);\n }\n removeLastListAttributeAtRange(t) {\n let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n i = this.blockList;\n return this.eachBlockAtRange(t, function (t, n, r) {\n const o = t.getLastAttribute();\n o && ht(o).listAttribute && o !== e.exceptAttributeName && (i = i.editObjectAtIndex(r, () => t.removeAttribute(o)));\n }), new this.constructor(i);\n }\n removeLastTerminalAttributeAtRange(t) {\n let e = this.blockList;\n return this.eachBlockAtRange(t, function (t, i, n) {\n const r = t.getLastAttribute();\n r && ht(r).terminal && (e = e.editObjectAtIndex(n, () => t.removeAttribute(r)));\n }), new this.constructor(e);\n }\n removeBlockAttributesAtRange(t) {\n let e = this.blockList;\n return this.eachBlockAtRange(t, function (t, i, n) {\n t.hasAttributes() && (e = e.editObjectAtIndex(n, () => t.copyWithoutAttributes()));\n }), new this.constructor(e);\n }\n expandRangeToLineBreaksAndSplitBlocks(t) {\n let e;\n t = St(t);\n let _t8 = t,\n _t9 = _slicedToArray(_t8, 2),\n i = _t9[0],\n n = _t9[1];\n const r = this.locationFromPosition(i),\n o = this.locationFromPosition(n);\n let s = this;\n const a = s.getBlockAtIndex(r.index);\n if (r.offset = a.findLineBreakInDirectionFromPosition(\"backward\", r.offset), null != r.offset && (e = s.positionFromLocation(r), s = s.insertBlockBreakAtRange([e, e + 1]), o.index += 1, o.offset -= s.getBlockAtIndex(r.index).getLength(), r.index += 1), r.offset = 0, 0 === o.offset && o.index > r.index) o.index -= 1, o.offset = s.getBlockAtIndex(o.index).getBlockBreakPosition();else {\n const t = s.getBlockAtIndex(o.index);\n \"\\n\" === t.text.getStringAtRange([o.offset - 1, o.offset]) ? o.offset -= 1 : o.offset = t.findLineBreakInDirectionFromPosition(\"forward\", o.offset), o.offset !== t.getBlockBreakPosition() && (e = s.positionFromLocation(o), s = s.insertBlockBreakAtRange([e, e + 1]));\n }\n return i = s.positionFromLocation(r), n = s.positionFromLocation(o), {\n document: s,\n range: t = St([i, n])\n };\n }\n convertLineBreaksToBlockBreaksInRange(t) {\n t = St(t);\n let _t10 = t,\n _t11 = _slicedToArray(_t10, 1),\n e = _t11[0];\n const i = this.getStringAtRange(t).slice(0, -1);\n let n = this;\n return i.replace(/.*?\\n/g, function (t) {\n e += t.length, n = n.insertBlockBreakAtRange([e - 1, e]);\n }), {\n document: n,\n range: t\n };\n }\n consolidateBlocksAtRange(t) {\n t = St(t);\n const _t12 = t,\n _t13 = _slicedToArray(_t12, 2),\n e = _t13[0],\n i = _t13[1],\n n = this.locationFromPosition(e).index,\n r = this.locationFromPosition(i).index;\n return new this.constructor(this.blockList.consolidateFromIndexToIndex(n, r));\n }\n getDocumentAtRange(t) {\n t = St(t);\n const e = this.blockList.getSplittableListInRange(t).toArray();\n return new this.constructor(e);\n }\n getStringAtRange(t) {\n let e;\n const i = t = St(t);\n return i[i.length - 1] !== this.getLength() && (e = -1), this.getDocumentAtRange(t).toString().slice(0, e);\n }\n getBlockAtIndex(t) {\n return this.blockList.getObjectAtIndex(t);\n }\n getBlockAtPosition(t) {\n const _this$locationFromPos5 = this.locationFromPosition(t),\n e = _this$locationFromPos5.index;\n return this.getBlockAtIndex(e);\n }\n getTextAtIndex(t) {\n var e;\n return null === (e = this.getBlockAtIndex(t)) || void 0 === e ? void 0 : e.text;\n }\n getTextAtPosition(t) {\n const _this$locationFromPos6 = this.locationFromPosition(t),\n e = _this$locationFromPos6.index;\n return this.getTextAtIndex(e);\n }\n getPieceAtPosition(t) {\n const _this$locationFromPos7 = this.locationFromPosition(t),\n e = _this$locationFromPos7.index,\n i = _this$locationFromPos7.offset;\n return this.getTextAtIndex(e).getPieceAtPosition(i);\n }\n getCharacterAtPosition(t) {\n const _this$locationFromPos8 = this.locationFromPosition(t),\n e = _this$locationFromPos8.index,\n i = _this$locationFromPos8.offset;\n return this.getTextAtIndex(e).getStringAtRange([i, i + 1]);\n }\n getLength() {\n return this.blockList.getEndPosition();\n }\n getBlocks() {\n return this.blockList.toArray();\n }\n getBlockCount() {\n return this.blockList.length;\n }\n getEditCount() {\n return this.editCount;\n }\n eachBlock(t) {\n return this.blockList.eachObject(t);\n }\n eachBlockAtRange(t, e) {\n let i, n;\n t = St(t);\n const _t14 = t,\n _t15 = _slicedToArray(_t14, 2),\n r = _t15[0],\n o = _t15[1],\n s = this.locationFromPosition(r),\n a = this.locationFromPosition(o);\n if (s.index === a.index) return i = this.getBlockAtIndex(s.index), n = [s.offset, a.offset], e(i, n, s.index);\n for (let t = s.index; t <= a.index; t++) if (i = this.getBlockAtIndex(t), i) {\n switch (t) {\n case s.index:\n n = [s.offset, i.text.getLength()];\n break;\n case a.index:\n n = [0, a.offset];\n break;\n default:\n n = [0, i.text.getLength()];\n }\n e(i, n, t);\n }\n }\n getCommonAttributesAtRange(t) {\n t = St(t);\n const _t16 = t,\n _t17 = _slicedToArray(_t16, 1),\n e = _t17[0];\n if (Et(t)) return this.getCommonAttributesAtPosition(e);\n {\n const e = [],\n i = [];\n return this.eachBlockAtRange(t, function (t, n) {\n if (n[0] !== n[1]) return e.push(t.text.getCommonAttributesAtRange(n)), i.push(We(t));\n }), Vt.fromCommonAttributesOfObjects(e).merge(Vt.fromCommonAttributesOfObjects(i)).toObject();\n }\n }\n getCommonAttributesAtPosition(t) {\n let e, i;\n const _this$locationFromPos9 = this.locationFromPosition(t),\n n = _this$locationFromPos9.index,\n r = _this$locationFromPos9.offset,\n o = this.getBlockAtIndex(n);\n if (!o) return {};\n const s = We(o),\n a = o.text.getAttributesAtPosition(r),\n l = o.text.getAttributesAtPosition(r - 1),\n c = Object.keys(O).filter(t => O[t].inheritable);\n for (e in l) i = l[e], (i === a[e] || c.includes(e)) && (s[e] = i);\n return s;\n }\n getRangeOfCommonAttributeAtPosition(t, e) {\n const _this$locationFromPos10 = this.locationFromPosition(e),\n i = _this$locationFromPos10.index,\n n = _this$locationFromPos10.offset,\n r = this.getTextAtIndex(i),\n _Array$from5 = Array.from(r.getExpandedRangeForAttributeAtOffset(t, n)),\n _Array$from6 = _slicedToArray(_Array$from5, 2),\n o = _Array$from6[0],\n s = _Array$from6[1],\n a = this.positionFromLocation({\n index: i,\n offset: o\n }),\n l = this.positionFromLocation({\n index: i,\n offset: s\n });\n return St([a, l]);\n }\n getBaseBlockAttributes() {\n let t = this.getBlockAtIndex(0).getAttributes();\n for (let e = 1; e < this.getBlockCount(); e++) {\n const i = this.getBlockAtIndex(e).getAttributes(),\n n = Math.min(t.length, i.length);\n t = (() => {\n const e = [];\n for (let r = 0; r < n && i[r] === t[r]; r++) e.push(i[r]);\n return e;\n })();\n }\n return t;\n }\n getAttachmentById(t) {\n for (const e of this.getAttachments()) if (e.id === t) return e;\n }\n getAttachmentPieces() {\n let t = [];\n return this.blockList.eachObject(e => {\n let i = e.text;\n return t = t.concat(i.getAttachmentPieces());\n }), t;\n }\n getAttachments() {\n return this.getAttachmentPieces().map(t => t.attachment);\n }\n getRangeOfAttachment(t) {\n let e = 0;\n const i = this.blockList.toArray();\n for (let n = 0; n < i.length; n++) {\n const r = i[n].text,\n o = r.getRangeOfAttachment(t);\n if (o) return St([e + o[0], e + o[1]]);\n e += r.getLength();\n }\n }\n getLocationRangeOfAttachment(t) {\n const e = this.getRangeOfAttachment(t);\n return this.locationRangeFromRange(e);\n }\n getAttachmentPieceForAttachment(t) {\n for (const e of this.getAttachmentPieces()) if (e.attachment === t) return e;\n }\n findRangesForBlockAttribute(t) {\n let e = 0;\n const i = [];\n return this.getBlocks().forEach(n => {\n const r = n.getLength();\n n.hasAttribute(t) && i.push([e, e + r]), e += r;\n }), i;\n }\n findRangesForTextAttribute(t) {\n let _ref9 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n e = _ref9.withValue,\n i = 0,\n n = [];\n const r = [];\n return this.getPieces().forEach(o => {\n const s = o.getLength();\n (function (i) {\n return e ? i.getAttribute(t) === e : i.hasAttribute(t);\n })(o) && (n[1] === i ? n[1] = i + s : r.push(n = [i, i + s])), i += s;\n }), r;\n }\n locationFromPosition(t) {\n const e = this.blockList.findIndexAndOffsetAtPosition(Math.max(0, t));\n if (null != e.index) return e;\n {\n const t = this.getBlocks();\n return {\n index: t.length - 1,\n offset: t[t.length - 1].getLength()\n };\n }\n }\n positionFromLocation(t) {\n return this.blockList.findPositionAtIndexAndOffset(t.index, t.offset);\n }\n locationRangeFromPosition(t) {\n return St(this.locationFromPosition(t));\n }\n locationRangeFromRange(t) {\n if (!(t = St(t))) return;\n const _Array$from7 = Array.from(t),\n _Array$from8 = _slicedToArray(_Array$from7, 2),\n e = _Array$from8[0],\n i = _Array$from8[1],\n n = this.locationFromPosition(e),\n r = this.locationFromPosition(i);\n return St([n, r]);\n }\n rangeFromLocationRange(t) {\n let e;\n t = St(t);\n const i = this.positionFromLocation(t[0]);\n return Et(t) || (e = this.positionFromLocation(t[1])), St([i, e]);\n }\n isEqualTo(t) {\n return this.blockList.isEqualTo(null == t ? void 0 : t.blockList);\n }\n getTexts() {\n return this.getBlocks().map(t => t.text);\n }\n getPieces() {\n const t = [];\n return Array.from(this.getTexts()).forEach(e => {\n t.push(...Array.from(e.getPieces() || []));\n }), t;\n }\n getObjects() {\n return this.getBlocks().concat(this.getTexts()).concat(this.getPieces());\n }\n toSerializableDocument() {\n const t = [];\n return this.blockList.eachObject(e => t.push(e.copyWithText(e.text.toSerializableText()))), new this.constructor(t);\n }\n toString() {\n return this.blockList.toString();\n }\n toJSON() {\n return this.blockList.toJSON();\n }\n toConsole() {\n return JSON.stringify(this.blockList.toArray()).map(t => JSON.parse(t.text.toConsole()));\n }\n}\nconst We = function (t) {\n const e = {},\n i = t.getLastAttribute();\n return i && (e[i] = !0), e;\n },\n Ue = \"style href src width height class\".split(\" \"),\n qe = \"javascript:\".split(\" \"),\n Ve = \"script iframe\".split(\" \");\nclass ze extends U {\n static sanitize(t, e) {\n const i = new this(t, e);\n return i.sanitize(), i;\n }\n constructor(t) {\n let _ref10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n e = _ref10.allowedAttributes,\n i = _ref10.forbiddenProtocols,\n n = _ref10.forbiddenElements;\n super(...arguments), this.allowedAttributes = e || Ue, this.forbiddenProtocols = i || qe, this.forbiddenElements = n || Ve, this.body = _e(t);\n }\n sanitize() {\n return this.sanitizeElements(), this.normalizeListElementNesting();\n }\n getHTML() {\n return this.body.innerHTML;\n }\n getBody() {\n return this.body;\n }\n sanitizeElements() {\n const t = x(this.body),\n e = [];\n for (; t.nextNode();) {\n const i = t.currentNode;\n switch (i.nodeType) {\n case Node.ELEMENT_NODE:\n this.elementIsRemovable(i) ? e.push(i) : this.sanitizeElement(i);\n break;\n case Node.COMMENT_NODE:\n e.push(i);\n }\n }\n return e.forEach(t => A(t)), this.body;\n }\n sanitizeElement(t) {\n return t.hasAttribute(\"href\") && this.forbiddenProtocols.includes(t.protocol) && t.removeAttribute(\"href\"), Array.from(t.attributes).forEach(e => {\n let i = e.name;\n this.allowedAttributes.includes(i) || 0 === i.indexOf(\"data-trix\") || t.removeAttribute(i);\n }), t;\n }\n normalizeListElementNesting() {\n return Array.from(this.body.querySelectorAll(\"ul,ol\")).forEach(t => {\n const e = t.previousElementSibling;\n e && \"li\" === y(e) && e.appendChild(t);\n }), this.body;\n }\n elementIsRemovable(t) {\n if ((null == t ? void 0 : t.nodeType) === Node.ELEMENT_NODE) return this.elementIsForbidden(t) || this.elementIsntSerializable(t);\n }\n elementIsForbidden(t) {\n return this.forbiddenElements.includes(y(t));\n }\n elementIsntSerializable(t) {\n return \"false\" === t.getAttribute(\"data-trix-serialize\") && !F(t);\n }\n}\nconst _e = function () {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : \"\";\n t = t.replace(/<\\/html[^>]*>[^]*$/i, \"\");\n const e = document.implementation.createHTMLDocument(\"\");\n return e.documentElement.innerHTML = t, Array.from(e.head.querySelectorAll(\"style\")).forEach(t => {\n e.body.appendChild(t);\n }), e.body;\n },\n He = function (t) {\n let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n const i = \"string\";\n return {\n string: t = Mt(t),\n attributes: e,\n type: i\n };\n },\n Je = (t, e) => {\n try {\n return JSON.parse(t.getAttribute(\"data-trix-\".concat(e)));\n } catch (t) {\n return {};\n }\n };\nclass Ke extends U {\n static parse(t, e) {\n const i = new this(t, e);\n return i.parse(), i;\n }\n constructor(t) {\n let _ref11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n e = _ref11.referenceElement;\n super(...arguments), this.html = t, this.referenceElement = e, this.blocks = [], this.blockElements = [], this.processedElements = [];\n }\n getDocument() {\n return je.fromJSON(this.blocks);\n }\n parse() {\n try {\n this.createHiddenContainer();\n const t = ze.sanitize(this.html).getHTML();\n this.containerElement.innerHTML = t;\n const e = x(this.containerElement, {\n usingFilter: Ye\n });\n for (; e.nextNode();) this.processNode(e.currentNode);\n return this.translateBlockElementMarginsToNewlines();\n } finally {\n this.removeHiddenContainer();\n }\n }\n createHiddenContainer() {\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 = C({\n tagName: \"div\",\n style: {\n display: \"none\"\n }\n }), document.body.appendChild(this.containerElement));\n }\n removeHiddenContainer() {\n return A(this.containerElement);\n }\n processNode(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 case Node.ELEMENT_NODE:\n return this.appendBlockForElement(t), this.processElement(t);\n }\n }\n appendBlockForTextNode(t) {\n const e = t.parentNode;\n if (e === this.currentBlockElement && this.isBlockElement(t.previousSibling)) return this.appendStringWithAttributes(\"\\n\");\n if (e === this.containerElement || this.isBlockElement(e)) {\n var i;\n const t = this.getBlockAttributes(e);\n et(t, null === (i = this.currentBlock) || void 0 === i ? void 0 : i.attributes) || (this.currentBlock = this.appendBlockForAttributesWithElement(t, e), this.currentBlockElement = e);\n }\n }\n appendBlockForElement(t) {\n const e = this.isBlockElement(t),\n i = b(this.currentBlockElement, t);\n if (e && !this.isBlockElement(t.firstChild)) {\n if (!this.isInsignificantTextNode(t.firstChild) || !this.isBlockElement(t.firstElementChild)) {\n const e = this.getBlockAttributes(t);\n if (t.firstChild) {\n if (i && et(e, this.currentBlock.attributes)) return this.appendStringWithAttributes(\"\\n\");\n this.currentBlock = this.appendBlockForAttributesWithElement(e, t), this.currentBlockElement = t;\n }\n }\n } else if (this.currentBlockElement && !i && !e) {\n const e = this.findParentBlockElement(t);\n if (e) return this.appendBlockForElement(e);\n this.currentBlock = this.appendEmptyBlock(), this.currentBlockElement = null;\n }\n }\n findParentBlockElement(t) {\n let e = t.parentElement;\n for (; e && e !== this.containerElement;) {\n if (this.isBlockElement(e) && this.blockElements.includes(e)) return e;\n e = e.parentElement;\n }\n return null;\n }\n processTextNode(t) {\n let e = t.data;\n var i;\n Ge(t.parentNode) || (e = Wt(e), ti(null === (i = t.previousSibling) || void 0 === i ? void 0 : i.textContent) && (e = Qe(e)));\n return this.appendStringWithAttributes(e, this.getTextAttributes(t.parentNode));\n }\n processElement(t) {\n let e;\n if (F(t)) {\n if (e = Je(t, \"attachment\"), Object.keys(e).length) {\n const i = this.getTextAttributes(t);\n this.appendAttachmentWithAttributes(e, i), t.innerHTML = \"\";\n }\n return this.processedElements.push(t);\n }\n switch (y(t)) {\n case \"br\":\n return this.isExtraBR(t) || this.isBlockElement(t.nextSibling) || this.appendStringWithAttributes(\"\\n\", this.getTextAttributes(t)), this.processedElements.push(t);\n case \"img\":\n e = {\n url: t.getAttribute(\"src\"),\n contentType: \"image\"\n };\n const i = (t => {\n const e = t.getAttribute(\"width\"),\n i = t.getAttribute(\"height\"),\n n = {};\n return e && (n.width = parseInt(e, 10)), i && (n.height = parseInt(i, 10)), n;\n })(t);\n for (const t in i) {\n const n = i[t];\n e[t] = n;\n }\n return this.appendAttachmentWithAttributes(e, this.getTextAttributes(t)), this.processedElements.push(t);\n case \"tr\":\n if (this.needsTableSeparator(t)) return this.appendStringWithAttributes(N.tableRowSeparator);\n break;\n case \"td\":\n if (this.needsTableSeparator(t)) return this.appendStringWithAttributes(N.tableCellSeparator);\n }\n }\n appendBlockForAttributesWithElement(t, e) {\n this.blockElements.push(e);\n const i = function () {\n return {\n text: [],\n attributes: arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}\n };\n }(t);\n return this.blocks.push(i), i;\n }\n appendEmptyBlock() {\n return this.appendBlockForAttributesWithElement([], null);\n }\n appendStringWithAttributes(t, e) {\n return this.appendPiece(He(t, e));\n }\n appendAttachmentWithAttributes(t, e) {\n return this.appendPiece(function (t) {\n return {\n attachment: t,\n attributes: arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n type: \"attachment\"\n };\n }(t, e));\n }\n appendPiece(t) {\n return 0 === this.blocks.length && this.appendEmptyBlock(), this.blocks[this.blocks.length - 1].text.push(t);\n }\n appendStringToTextAtIndex(t, e) {\n const i = this.blocks[e].text,\n n = i[i.length - 1];\n if (\"string\" !== (null == n ? void 0 : n.type)) return i.push(He(t));\n n.string += t;\n }\n prependStringToTextAtIndex(t, e) {\n const i = this.blocks[e].text,\n n = i[0];\n if (\"string\" !== (null == n ? void 0 : n.type)) return i.unshift(He(t));\n n.string = t + n.string;\n }\n getTextAttributes(t) {\n let e;\n const i = {};\n for (const n in O) {\n const r = O[n];\n if (r.tagName && p(t, {\n matchingSelector: r.tagName,\n untilNode: this.containerElement\n })) i[n] = !0;else if (r.parser) {\n if (e = r.parser(t), e) {\n let o = !1;\n for (const i of this.findBlockElementAncestors(t)) if (r.parser(i) === e) {\n o = !0;\n break;\n }\n o || (i[n] = e);\n }\n } else r.styleProperty && (e = t.style[r.styleProperty], e && (i[n] = e));\n }\n if (F(t)) {\n const n = Je(t, \"attributes\");\n for (const t in n) e = n[t], i[t] = e;\n }\n return i;\n }\n getBlockAttributes(t) {\n const i = [];\n for (; t && t !== this.containerElement;) {\n for (const r in e) {\n const o = e[r];\n var n;\n if (!1 !== o.parse) if (y(t) === o.tagName) (null !== (n = o.test) && void 0 !== n && n.call(o, t) || !o.test) && (i.push(r), o.listAttribute && i.push(o.listAttribute));\n }\n t = t.parentNode;\n }\n return i.reverse();\n }\n findBlockElementAncestors(t) {\n const e = [];\n for (; t && t !== this.containerElement;) {\n const i = y(t);\n S().includes(i) && e.push(t), t = t.parentNode;\n }\n return e;\n }\n isBlockElement(t) {\n if ((null == t ? void 0 : t.nodeType) === Node.ELEMENT_NODE && !F(t) && !p(t, {\n matchingSelector: \"td\",\n untilNode: this.containerElement\n })) return S().includes(y(t)) || \"block\" === window.getComputedStyle(t).display;\n }\n isInsignificantTextNode(t) {\n if ((null == t ? void 0 : t.nodeType) !== Node.TEXT_NODE) return;\n if (!Ze(t.data)) return;\n const e = t.parentNode,\n i = t.previousSibling,\n n = t.nextSibling;\n return $e(e.previousSibling) && !this.isBlockElement(e.previousSibling) || Ge(e) ? void 0 : !i || this.isBlockElement(i) || !n || this.isBlockElement(n);\n }\n isExtraBR(t) {\n return \"br\" === y(t) && this.isBlockElement(t.parentNode) && t.parentNode.lastChild === t;\n }\n needsTableSeparator(t) {\n if (N.removeBlankTableCells) {\n var e;\n const i = null === (e = t.previousSibling) || void 0 === e ? void 0 : e.textContent;\n return i && /\\S/.test(i);\n }\n return t.previousSibling;\n }\n translateBlockElementMarginsToNewlines() {\n const t = this.getMarginOfDefaultBlockElement();\n for (let e = 0; e < this.blocks.length; e++) {\n const i = this.getMarginOfBlockElementAtIndex(e);\n i && (i.top > 2 * t.top && this.prependStringToTextAtIndex(\"\\n\", e), i.bottom > 2 * t.bottom && this.appendStringToTextAtIndex(\"\\n\", e));\n }\n }\n getMarginOfBlockElementAtIndex(t) {\n const e = this.blockElements[t];\n if (e && e.textContent && !S().includes(y(e)) && !this.processedElements.includes(e)) return Xe(e);\n }\n getMarginOfDefaultBlockElement() {\n const t = C(e.default.tagName);\n return this.containerElement.appendChild(t), Xe(t);\n }\n}\nconst Ge = function (t) {\n const _window$getComputedSt = window.getComputedStyle(t),\n e = _window$getComputedSt.whiteSpace;\n return [\"pre\", \"pre-wrap\", \"pre-line\"].includes(e);\n },\n $e = t => t && !ti(t.textContent),\n Xe = function (t) {\n const e = window.getComputedStyle(t);\n if (\"block\" === e.display) return {\n top: parseInt(e.marginTop),\n bottom: parseInt(e.marginBottom)\n };\n },\n Ye = function (t) {\n return \"style\" === y(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n },\n Qe = t => t.replace(new RegExp(\"^\".concat(jt.source, \"+\")), \"\"),\n Ze = t => new RegExp(\"^\".concat(jt.source, \"*$\")).test(t),\n ti = t => /\\s$/.test(t),\n ei = [\"contenteditable\", \"data-trix-id\", \"data-trix-store-key\", \"data-trix-mutable\", \"data-trix-placeholder\", \"tabindex\"],\n ii = \"[\".concat(\"data-trix-serialized-attributes\", \"]\"),\n ni = new RegExp(\"\\x3c!--block--\\x3e\", \"g\"),\n ri = {\n \"application/json\": function (t) {\n let e;\n if (t instanceof je) e = t;else {\n if (!(t instanceof HTMLElement)) throw new Error(\"unserializable object\");\n e = Ke.parse(t.innerHTML).getDocument();\n }\n return e.toSerializableDocument().toJSONString();\n },\n \"text/html\": function (t) {\n let e;\n if (t instanceof je) e = ue.render(t);else {\n if (!(t instanceof HTMLElement)) throw new Error(\"unserializable object\");\n e = t.cloneNode(!0);\n }\n return Array.from(e.querySelectorAll(\"[data-trix-serialize=false]\")).forEach(t => {\n A(t);\n }), ei.forEach(t => {\n Array.from(e.querySelectorAll(\"[\".concat(t, \"]\"))).forEach(e => {\n e.removeAttribute(t);\n });\n }), Array.from(e.querySelectorAll(ii)).forEach(t => {\n try {\n const e = JSON.parse(t.getAttribute(\"data-trix-serialized-attributes\"));\n t.removeAttribute(\"data-trix-serialized-attributes\");\n for (const i in e) {\n const n = e[i];\n t.setAttribute(i, n);\n }\n } catch (t) {}\n }), e.innerHTML.replace(ni, \"\");\n }\n };\nvar oi = Object.freeze({\n __proto__: null\n});\nclass si extends U {\n constructor(t, e) {\n super(...arguments), this.attachmentManager = t, this.attachment = e, this.id = this.attachment.id, this.file = this.attachment.file;\n }\n remove() {\n return this.attachmentManager.requestRemovalOfAttachment(this.attachment);\n }\n}\nsi.proxyMethod(\"attachment.getAttribute\"), si.proxyMethod(\"attachment.hasAttribute\"), si.proxyMethod(\"attachment.setAttribute\"), si.proxyMethod(\"attachment.getAttributes\"), si.proxyMethod(\"attachment.setAttributes\"), si.proxyMethod(\"attachment.isPending\"), si.proxyMethod(\"attachment.isPreviewable\"), si.proxyMethod(\"attachment.getURL\"), si.proxyMethod(\"attachment.getHref\"), si.proxyMethod(\"attachment.getFilename\"), si.proxyMethod(\"attachment.getFilesize\"), si.proxyMethod(\"attachment.getFormattedFilesize\"), si.proxyMethod(\"attachment.getExtension\"), si.proxyMethod(\"attachment.getContentType\"), si.proxyMethod(\"attachment.getFile\"), si.proxyMethod(\"attachment.setFile\"), si.proxyMethod(\"attachment.releaseFile\"), si.proxyMethod(\"attachment.getUploadProgress\"), si.proxyMethod(\"attachment.setUploadProgress\");\nclass ai extends U {\n constructor() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\n super(...arguments), this.managedAttachments = {}, Array.from(t).forEach(t => {\n this.manageAttachment(t);\n });\n }\n getAttachments() {\n const t = [];\n for (const e in this.managedAttachments) {\n const i = this.managedAttachments[e];\n t.push(i);\n }\n return t;\n }\n manageAttachment(t) {\n return this.managedAttachments[t.id] || (this.managedAttachments[t.id] = new si(this, t)), this.managedAttachments[t.id];\n }\n attachmentIsManaged(t) {\n return t.id in this.managedAttachments;\n }\n requestRemovalOfAttachment(t) {\n var e, i;\n if (this.attachmentIsManaged(t)) return null === (e = this.delegate) || void 0 === e || null === (i = e.attachmentManagerDidRequestRemovalOfAttachment) || void 0 === i ? void 0 : i.call(e, t);\n }\n unmanageAttachment(t) {\n const e = this.managedAttachments[t.id];\n return delete this.managedAttachments[t.id], e;\n }\n}\nclass li {\n constructor(t) {\n this.composition = t, this.document = this.composition.document;\n const e = this.composition.getSelectedRange();\n 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 shouldInsertBlockBreak() {\n return this.block.hasAttributes() && this.block.isListItem() && !this.block.isEmpty() ? 0 !== this.startLocation.offset : this.breaksOnReturn && \"\\n\" !== this.nextCharacter;\n }\n shouldBreakFormattedBlock() {\n return this.block.hasAttributes() && !this.block.isListItem() && (this.breaksOnReturn && \"\\n\" === this.nextCharacter || \"\\n\" === this.previousCharacter);\n }\n shouldDecreaseListLevel() {\n return this.block.hasAttributes() && this.block.isListItem() && this.block.isEmpty();\n }\n shouldPrependListItem() {\n return this.block.isListItem() && 0 === this.startLocation.offset && !this.block.isEmpty();\n }\n shouldRemoveLastBlockAttribute() {\n return this.block.hasAttributes() && !this.block.isListItem() && this.block.isEmpty();\n }\n}\nclass ci extends U {\n constructor() {\n super(...arguments), this.document = new je(), this.attachments = [], this.currentAttributes = {}, this.revision = 0;\n }\n setDocument(t) {\n var e, i;\n if (!t.isEqualTo(this.document)) return this.document = t, this.refreshAttachments(), this.revision++, null === (e = this.delegate) || void 0 === e || null === (i = e.compositionDidChangeDocument) || void 0 === i ? void 0 : i.call(e, t);\n }\n getSnapshot() {\n return {\n document: this.document,\n selectedRange: this.getSelectedRange()\n };\n }\n loadSnapshot(t) {\n var e, i, n, r;\n let o = t.document,\n s = t.selectedRange;\n return null === (e = this.delegate) || void 0 === e || null === (i = e.compositionWillLoadSnapshot) || void 0 === i || i.call(e), this.setDocument(null != o ? o : new je()), this.setSelection(null != s ? s : [0, 0]), null === (n = this.delegate) || void 0 === n || null === (r = n.compositionDidLoadSnapshot) || void 0 === r ? void 0 : r.call(n);\n }\n insertText(t) {\n let _ref12 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {\n updatePosition: !0\n },\n e = _ref12.updatePosition;\n const i = this.getSelectedRange();\n this.setDocument(this.document.insertTextAtRange(t, i));\n const n = i[0],\n r = n + t.getLength();\n return e && this.setSelection(r), this.notifyDelegateOfInsertionAtRange([n, r]);\n }\n insertBlock() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new De();\n const e = new je([t]);\n return this.insertDocument(e);\n }\n insertDocument() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new je();\n const e = this.getSelectedRange();\n this.setDocument(this.document.insertDocumentAtRange(t, e));\n const i = e[0],\n n = i + t.getLength();\n return this.setSelection(n), this.notifyDelegateOfInsertionAtRange([i, n]);\n }\n insertString(t, e) {\n const i = this.getCurrentTextAttributes(),\n n = Le.textForStringWithAttributes(t, i);\n return this.insertText(n, e);\n }\n insertBlockBreak() {\n const t = this.getSelectedRange();\n this.setDocument(this.document.insertBlockBreakAtRange(t));\n const e = t[0],\n i = e + 1;\n return this.setSelection(i), this.notifyDelegateOfInsertionAtRange([e, i]);\n }\n insertLineBreak() {\n const t = new li(this);\n if (t.shouldDecreaseListLevel()) return this.decreaseListLevel(), this.setSelection(t.startPosition);\n if (t.shouldPrependListItem()) {\n const e = new je([t.block.copyWithoutText()]);\n return this.insertDocument(e);\n }\n return t.shouldInsertBlockBreak() ? this.insertBlockBreak() : t.shouldRemoveLastBlockAttribute() ? this.removeLastBlockAttribute() : t.shouldBreakFormattedBlock() ? this.breakFormattedBlock(t) : this.insertString(\"\\n\");\n }\n insertHTML(t) {\n const e = Ke.parse(t).getDocument(),\n i = this.getSelectedRange();\n this.setDocument(this.document.mergeDocumentAtRange(e, i));\n const n = i[0],\n r = n + e.getLength() - 1;\n return this.setSelection(r), this.notifyDelegateOfInsertionAtRange([n, r]);\n }\n replaceHTML(t) {\n const e = Ke.parse(t).getDocument().copyUsingObjectsFromDocument(this.document),\n i = this.getLocationRange({\n strict: !1\n }),\n n = this.document.rangeFromLocationRange(i);\n return this.setDocument(e), this.setSelection(n);\n }\n insertFile(t) {\n return this.insertFiles([t]);\n }\n insertFiles(t) {\n const e = [];\n return Array.from(t).forEach(t => {\n var i;\n if (null !== (i = this.delegate) && void 0 !== i && i.compositionShouldAcceptFile(t)) {\n const i = xe.attachmentForFile(t);\n e.push(i);\n }\n }), this.insertAttachments(e);\n }\n insertAttachment(t) {\n return this.insertAttachments([t]);\n }\n insertAttachments(e) {\n let i = new Le();\n return Array.from(e).forEach(e => {\n var n;\n const r = e.getType(),\n o = null === (n = t[r]) || void 0 === n ? void 0 : n.presentation,\n s = this.getCurrentTextAttributes();\n o && (s.presentation = o);\n const a = Le.textForAttachmentWithAttributes(e, s);\n i = i.appendText(a);\n }), this.insertText(i);\n }\n shouldManageDeletingInDirection(t) {\n const e = this.getLocationRange();\n if (Et(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 return !1;\n }\n deleteInDirection(t) {\n let e,\n i,\n n,\n _ref13 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n r = _ref13.length;\n const o = this.getLocationRange();\n let s = this.getSelectedRange();\n const a = Et(s);\n if (a ? i = \"backward\" === t && 0 === o[0].offset : n = o[0].index !== o[1].index, i && this.canDecreaseBlockAttributeLevel()) {\n const t = this.getBlock();\n if (t.isListItem() ? this.decreaseListLevel() : this.decreaseBlockAttributeLevel(), this.setSelection(s[0]), t.isEmpty()) return !1;\n }\n return a && (s = this.getExpandedRangeInDirection(t, {\n length: r\n }), \"backward\" === t && (e = this.getAttachmentAtRange(s))), e ? (this.editAttachment(e), !1) : (this.setDocument(this.document.removeTextAtRange(s)), this.setSelection(s[0]), !i && !n && void 0);\n }\n moveTextFromRange(t) {\n const _Array$from9 = Array.from(this.getSelectedRange()),\n _Array$from10 = _slicedToArray(_Array$from9, 1),\n e = _Array$from10[0];\n return this.setDocument(this.document.moveTextFromRangeToPosition(t, e)), this.setSelection(e);\n }\n removeAttachment(t) {\n const e = this.document.getRangeOfAttachment(t);\n if (e) return this.stopEditingAttachment(), this.setDocument(this.document.removeTextAtRange(e)), this.setSelection(e[0]);\n }\n removeLastBlockAttribute() {\n const _Array$from11 = Array.from(this.getSelectedRange()),\n _Array$from12 = _slicedToArray(_Array$from11, 2),\n t = _Array$from12[0],\n e = _Array$from12[1],\n i = this.document.getBlockAtPosition(e);\n return this.removeCurrentAttribute(i.getLastAttribute()), this.setSelection(t);\n }\n insertPlaceholder() {\n return this.placeholderPosition = this.getPosition(), this.insertString(\" \");\n }\n selectPlaceholder() {\n if (null != this.placeholderPosition) return this.setSelectedRange([this.placeholderPosition, this.placeholderPosition + \" \".length]), this.getSelectedRange();\n }\n forgetPlaceholder() {\n this.placeholderPosition = null;\n }\n hasCurrentAttribute(t) {\n const e = this.currentAttributes[t];\n return null != e && !1 !== e;\n }\n toggleCurrentAttribute(t) {\n const e = !this.currentAttributes[t];\n return e ? this.setCurrentAttribute(t, e) : this.removeCurrentAttribute(t);\n }\n canSetCurrentAttribute(t) {\n return ht(t) ? this.canSetCurrentBlockAttribute(t) : this.canSetCurrentTextAttribute(t);\n }\n canSetCurrentTextAttribute(t) {\n const e = this.getSelectedDocument();\n if (e) {\n for (const t of Array.from(e.getAttachments())) if (!t.hasContent()) return !1;\n return !0;\n }\n }\n canSetCurrentBlockAttribute(t) {\n const e = this.getBlock();\n if (e) return !e.isTerminalBlock();\n }\n setCurrentAttribute(t, e) {\n return ht(t) ? this.setBlockAttribute(t, e) : (this.setTextAttribute(t, e), this.currentAttributes[t] = e, this.notifyDelegateOfCurrentAttributesChange());\n }\n setTextAttribute(t, e) {\n const i = this.getSelectedRange();\n if (!i) return;\n const _Array$from13 = Array.from(i),\n _Array$from14 = _slicedToArray(_Array$from13, 2),\n n = _Array$from14[0],\n r = _Array$from14[1];\n if (n !== r) return this.setDocument(this.document.addAttributeAtRange(t, e, i));\n if (\"href\" === t) {\n const t = Le.textForStringWithAttributes(e, {\n href: e\n });\n return this.insertText(t);\n }\n }\n setBlockAttribute(t, e) {\n const i = this.getSelectedRange();\n if (this.canSetCurrentAttribute(t)) return this.setDocument(this.document.applyBlockAttributeAtRange(t, e, i)), this.setSelection(i);\n }\n removeCurrentAttribute(t) {\n return ht(t) ? (this.removeBlockAttribute(t), this.updateCurrentAttributes()) : (this.removeTextAttribute(t), delete this.currentAttributes[t], this.notifyDelegateOfCurrentAttributesChange());\n }\n removeTextAttribute(t) {\n const e = this.getSelectedRange();\n if (e) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }\n removeBlockAttribute(t) {\n const e = this.getSelectedRange();\n if (e) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }\n canDecreaseNestingLevel() {\n var t;\n return (null === (t = this.getBlock()) || void 0 === t ? void 0 : t.getNestingLevel()) > 0;\n }\n canIncreaseNestingLevel() {\n var t;\n const e = this.getBlock();\n if (e) {\n if (null === (t = ht(e.getLastNestableAttribute())) || void 0 === t || !t.listAttribute) return e.getNestingLevel() > 0;\n {\n const t = this.getPreviousBlock();\n if (t) return function () {\n let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];\n return et((arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : []).slice(0, t.length), t);\n }(t.getListItemAttributes(), e.getListItemAttributes());\n }\n }\n }\n decreaseNestingLevel() {\n const t = this.getBlock();\n if (t) return this.setDocument(this.document.replaceBlock(t, t.decreaseNestingLevel()));\n }\n increaseNestingLevel() {\n const t = this.getBlock();\n if (t) return this.setDocument(this.document.replaceBlock(t, t.increaseNestingLevel()));\n }\n canDecreaseBlockAttributeLevel() {\n var t;\n return (null === (t = this.getBlock()) || void 0 === t ? void 0 : t.getAttributeLevel()) > 0;\n }\n decreaseBlockAttributeLevel() {\n var t;\n const e = null === (t = this.getBlock()) || void 0 === t ? void 0 : t.getLastAttribute();\n if (e) return this.removeCurrentAttribute(e);\n }\n decreaseListLevel() {\n let _Array$from15 = Array.from(this.getSelectedRange()),\n _Array$from16 = _slicedToArray(_Array$from15, 1),\n t = _Array$from16[0];\n const _this$document$locati = this.document.locationFromPosition(t),\n e = _this$document$locati.index;\n let i = e;\n const n = this.getBlock().getAttributeLevel();\n let r = this.document.getBlockAtIndex(i + 1);\n for (; r && r.isListItem() && !(r.getAttributeLevel() <= n);) i++, r = this.document.getBlockAtIndex(i + 1);\n t = this.document.positionFromLocation({\n index: e,\n offset: 0\n });\n const o = this.document.positionFromLocation({\n index: i,\n offset: 0\n });\n return this.setDocument(this.document.removeLastListAttributeAtRange([t, o]));\n }\n updateCurrentAttributes() {\n const t = this.getSelectedRange({\n ignoreLock: !0\n });\n if (t) {\n const e = this.document.getCommonAttributesAtRange(t);\n if (Array.from(ct()).forEach(t => {\n e[t] || this.canSetCurrentAttribute(t) || (e[t] = !1);\n }), !Rt(e, this.currentAttributes)) return this.currentAttributes = e, this.notifyDelegateOfCurrentAttributesChange();\n }\n }\n getCurrentAttributes() {\n return c.call({}, this.currentAttributes);\n }\n getCurrentTextAttributes() {\n const t = {};\n for (const e in this.currentAttributes) {\n const i = this.currentAttributes[e];\n !1 !== i && dt(e) && (t[e] = i);\n }\n return t;\n }\n freezeSelection() {\n return this.setCurrentAttribute(\"frozen\", !0);\n }\n thawSelection() {\n return this.removeCurrentAttribute(\"frozen\");\n }\n hasFrozenSelection() {\n return this.hasCurrentAttribute(\"frozen\");\n }\n setSelection(t) {\n var e;\n const i = this.document.locationRangeFromRange(t);\n return null === (e = this.delegate) || void 0 === e ? void 0 : e.compositionDidRequestChangingSelectionToLocationRange(i);\n }\n getSelectedRange() {\n const t = this.getLocationRange();\n if (t) return this.document.rangeFromLocationRange(t);\n }\n setSelectedRange(t) {\n const e = this.document.locationRangeFromRange(t);\n return this.getSelectionManager().setLocationRange(e);\n }\n getPosition() {\n const t = this.getLocationRange();\n if (t) return this.document.positionFromLocation(t[0]);\n }\n getLocationRange(t) {\n return this.targetLocationRange ? this.targetLocationRange : this.getSelectionManager().getLocationRange(t) || St({\n index: 0,\n offset: 0\n });\n }\n withTargetLocationRange(t, e) {\n let i;\n this.targetLocationRange = t;\n try {\n i = e();\n } finally {\n this.targetLocationRange = null;\n }\n return i;\n }\n withTargetRange(t, e) {\n const i = this.document.locationRangeFromRange(t);\n return this.withTargetLocationRange(i, e);\n }\n withTargetDOMRange(t, e) {\n const i = this.createLocationRangeFromDOMRange(t, {\n strict: !1\n });\n return this.withTargetLocationRange(i, e);\n }\n getExpandedRangeInDirection(t) {\n let _ref14 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n e = _ref14.length,\n _Array$from17 = Array.from(this.getSelectedRange()),\n _Array$from18 = _slicedToArray(_Array$from17, 2),\n i = _Array$from18[0],\n n = _Array$from18[1];\n return \"backward\" === t ? e ? i -= e : i = this.translateUTF16PositionFromOffset(i, -1) : e ? n += e : n = this.translateUTF16PositionFromOffset(n, 1), St([i, n]);\n }\n shouldManageMovingCursorInDirection(t) {\n if (this.editingAttachment) return !0;\n const e = this.getExpandedRangeInDirection(t);\n return null != this.getAttachmentAtRange(e);\n }\n moveCursorInDirection(t) {\n let e, i;\n if (this.editingAttachment) i = this.document.getRangeOfAttachment(this.editingAttachment);else {\n const n = this.getSelectedRange();\n i = this.getExpandedRangeInDirection(t), e = !kt(n, i);\n }\n if (\"backward\" === t ? this.setSelectedRange(i[0]) : this.setSelectedRange(i[1]), e) {\n const t = this.getAttachmentAtRange(i);\n if (t) return this.editAttachment(t);\n }\n }\n expandSelectionInDirection(t) {\n let _ref15 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n e = _ref15.length;\n const i = this.getExpandedRangeInDirection(t, {\n length: e\n });\n return this.setSelectedRange(i);\n }\n expandSelectionForEditing() {\n if (this.hasCurrentAttribute(\"href\")) return this.expandSelectionAroundCommonAttribute(\"href\");\n }\n expandSelectionAroundCommonAttribute(t) {\n const e = this.getPosition(),\n i = this.document.getRangeOfCommonAttributeAtPosition(t, e);\n return this.setSelectedRange(i);\n }\n selectionContainsAttachments() {\n var t;\n return (null === (t = this.getSelectedAttachments()) || void 0 === t ? void 0 : t.length) > 0;\n }\n selectionIsInCursorTarget() {\n return this.editingAttachment || this.positionIsCursorTarget(this.getPosition());\n }\n positionIsCursorTarget(t) {\n const e = this.document.locationFromPosition(t);\n if (e) return this.locationIsCursorTarget(e);\n }\n positionIsBlockBreak(t) {\n var e;\n return null === (e = this.document.getPieceAtPosition(t)) || void 0 === e ? void 0 : e.isBlockBreak();\n }\n getSelectedDocument() {\n const t = this.getSelectedRange();\n if (t) return this.document.getDocumentAtRange(t);\n }\n getSelectedAttachments() {\n var t;\n return null === (t = this.getSelectedDocument()) || void 0 === t ? void 0 : t.getAttachments();\n }\n getAttachments() {\n return this.attachments.slice(0);\n }\n refreshAttachments() {\n const t = this.document.getAttachments(),\n _ref16 = function () {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [],\n e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];\n const i = [],\n n = [],\n r = new Set();\n t.forEach(t => {\n r.add(t);\n });\n const o = new Set();\n return e.forEach(t => {\n o.add(t), r.has(t) || i.push(t);\n }), t.forEach(t => {\n o.has(t) || n.push(t);\n }), {\n added: i,\n removed: n\n };\n }(this.attachments, t),\n e = _ref16.added,\n i = _ref16.removed;\n return this.attachments = t, Array.from(i).forEach(t => {\n var e, i;\n t.delegate = null, null === (e = this.delegate) || void 0 === e || null === (i = e.compositionDidRemoveAttachment) || void 0 === i || i.call(e, t);\n }), (() => {\n const t = [];\n return Array.from(e).forEach(e => {\n var i, n;\n e.delegate = this, t.push(null === (i = this.delegate) || void 0 === i || null === (n = i.compositionDidAddAttachment) || void 0 === n ? void 0 : n.call(i, e));\n }), t;\n })();\n }\n attachmentDidChangeAttributes(t) {\n var e, i;\n return this.revision++, null === (e = this.delegate) || void 0 === e || null === (i = e.compositionDidEditAttachment) || void 0 === i ? void 0 : i.call(e, t);\n }\n attachmentDidChangePreviewURL(t) {\n var e, i;\n return this.revision++, null === (e = this.delegate) || void 0 === e || null === (i = e.compositionDidChangeAttachmentPreviewURL) || void 0 === i ? void 0 : i.call(e, t);\n }\n editAttachment(t, e) {\n var i, n;\n if (t !== this.editingAttachment) return this.stopEditingAttachment(), this.editingAttachment = t, null === (i = this.delegate) || void 0 === i || null === (n = i.compositionDidStartEditingAttachment) || void 0 === n ? void 0 : n.call(i, this.editingAttachment, e);\n }\n stopEditingAttachment() {\n var t, e;\n this.editingAttachment && (null === (t = this.delegate) || void 0 === t || null === (e = t.compositionDidStopEditingAttachment) || void 0 === e || e.call(t, this.editingAttachment), this.editingAttachment = null);\n }\n updateAttributesForAttachment(t, e) {\n return this.setDocument(this.document.updateAttributesForAttachment(t, e));\n }\n removeAttributeForAttachment(t, e) {\n return this.setDocument(this.document.removeAttributeForAttachment(t, e));\n }\n breakFormattedBlock(t) {\n let e = t.document;\n const i = t.block;\n let n = t.startPosition,\n r = [n - 1, n];\n i.getBlockBreakPosition() === t.startLocation.offset ? (i.breaksOnReturn() && \"\\n\" === t.nextCharacter ? n += 1 : e = e.removeTextAtRange(r), r = [n, n]) : \"\\n\" === t.nextCharacter ? \"\\n\" === t.previousCharacter ? r = [n - 1, n + 1] : (r = [n, n + 1], n += 1) : t.startLocation.offset - 1 != 0 && (n += 1);\n const o = new je([i.removeLastAttribute().copyWithoutText()]);\n return this.setDocument(e.insertDocumentAtRange(o, r)), this.setSelection(n);\n }\n getPreviousBlock() {\n const t = this.getLocationRange();\n if (t) {\n const e = t[0].index;\n if (e > 0) return this.document.getBlockAtIndex(e - 1);\n }\n }\n getBlock() {\n const t = this.getLocationRange();\n if (t) return this.document.getBlockAtIndex(t[0].index);\n }\n getAttachmentAtRange(t) {\n const e = this.document.getDocumentAtRange(t);\n if (e.toString() === \"\".concat(\"\", \"\\n\")) return e.getAttachments()[0];\n }\n notifyDelegateOfCurrentAttributesChange() {\n var t, e;\n return null === (t = this.delegate) || void 0 === t || null === (e = t.compositionDidChangeCurrentAttributes) || void 0 === e ? void 0 : e.call(t, this.currentAttributes);\n }\n notifyDelegateOfInsertionAtRange(t) {\n var e, i;\n return null === (e = this.delegate) || void 0 === e || null === (i = e.compositionDidPerformInsertionAtRange) || void 0 === i ? void 0 : i.call(e, t);\n }\n translateUTF16PositionFromOffset(t, e) {\n const i = this.document.toUTF16String(),\n n = i.offsetFromUCS2Offset(t);\n return i.offsetToUCS2Offset(n + e);\n }\n}\nci.proxyMethod(\"getSelectionManager().getPointRange\"), ci.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"), ci.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"), ci.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"), ci.proxyMethod(\"getSelectionManager().selectionIsExpanded\"), ci.proxyMethod(\"delegate?.getSelectionManager\");\nclass hi extends U {\n constructor(t) {\n super(...arguments), this.composition = t, this.undoEntries = [], this.redoEntries = [];\n }\n recordUndoEntry(t) {\n let _ref17 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n e = _ref17.context,\n i = _ref17.consolidatable;\n const n = this.undoEntries.slice(-1)[0];\n if (!i || !ui(n, t, e)) {\n const i = this.createEntry({\n description: t,\n context: e\n });\n this.undoEntries.push(i), this.redoEntries = [];\n }\n }\n undo() {\n const t = this.undoEntries.pop();\n if (t) {\n const e = this.createEntry(t);\n return this.redoEntries.push(e), this.composition.loadSnapshot(t.snapshot);\n }\n }\n redo() {\n const t = this.redoEntries.pop();\n if (t) {\n const e = this.createEntry(t);\n return this.undoEntries.push(e), this.composition.loadSnapshot(t.snapshot);\n }\n }\n canUndo() {\n return this.undoEntries.length > 0;\n }\n canRedo() {\n return this.redoEntries.length > 0;\n }\n createEntry() {\n let _ref18 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n t = _ref18.description,\n e = _ref18.context;\n return {\n description: null == t ? void 0 : t.toString(),\n context: JSON.stringify(e),\n snapshot: this.composition.getSnapshot()\n };\n }\n}\nconst ui = (t, e, i) => (null == t ? void 0 : t.description) === (null == e ? void 0 : e.toString()) && (null == t ? void 0 : t.context) === JSON.stringify(i);\nclass di {\n constructor(t) {\n this.document = t.document, this.selectedRange = t.selectedRange;\n }\n perform() {\n return this.removeBlockAttribute(), this.applyBlockAttribute();\n }\n getSnapshot() {\n return {\n document: this.document,\n selectedRange: this.selectedRange\n };\n }\n removeBlockAttribute() {\n return this.findRangesOfBlocks().map(t => this.document = this.document.removeAttributeAtRange(\"attachmentGallery\", t));\n }\n applyBlockAttribute() {\n let t = 0;\n this.findRangesOfPieces().forEach(e => {\n e[1] - e[0] > 1 && (e[0] += t, e[1] += t, \"\\n\" !== this.document.getCharacterAtPosition(e[1]) && (this.document = this.document.insertBlockBreakAtRange(e[1]), e[1] < this.selectedRange[1] && this.moveSelectedRangeForward(), e[1]++, t++), 0 !== e[0] && \"\\n\" !== this.document.getCharacterAtPosition(e[0] - 1) && (this.document = this.document.insertBlockBreakAtRange(e[0]), e[0] < this.selectedRange[0] && this.moveSelectedRangeForward(), e[0]++, t++), this.document = this.document.applyBlockAttributeAtRange(\"attachmentGallery\", !0, e));\n });\n }\n findRangesOfBlocks() {\n return this.document.findRangesForBlockAttribute(\"attachmentGallery\");\n }\n findRangesOfPieces() {\n return this.document.findRangesForTextAttribute(\"presentation\", {\n withValue: \"gallery\"\n });\n }\n moveSelectedRangeForward() {\n this.selectedRange[0] += 1, this.selectedRange[1] += 1;\n }\n}\nconst gi = function (t) {\n const e = new di(t);\n return e.perform(), e.getSnapshot();\n },\n mi = [gi];\nclass pi {\n constructor(t, e, i) {\n this.insertFiles = this.insertFiles.bind(this), this.composition = t, this.selectionManager = e, this.element = i, this.undoManager = new hi(this.composition), this.filters = mi.slice(0);\n }\n loadDocument(t) {\n return this.loadSnapshot({\n document: t,\n selectedRange: [0, 0]\n });\n }\n loadHTML() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : \"\";\n const e = Ke.parse(t, {\n referenceElement: this.element\n }).getDocument();\n return this.loadDocument(e);\n }\n loadJSON(t) {\n let e = t.document,\n i = t.selectedRange;\n return e = je.fromJSON(e), this.loadSnapshot({\n document: e,\n selectedRange: i\n });\n }\n loadSnapshot(t) {\n return this.undoManager = new hi(this.composition), this.composition.loadSnapshot(t);\n }\n getDocument() {\n return this.composition.document;\n }\n getSelectedDocument() {\n return this.composition.getSelectedDocument();\n }\n getSnapshot() {\n return this.composition.getSnapshot();\n }\n toJSON() {\n return this.getSnapshot();\n }\n deleteInDirection(t) {\n return this.composition.deleteInDirection(t);\n }\n insertAttachment(t) {\n return this.composition.insertAttachment(t);\n }\n insertAttachments(t) {\n return this.composition.insertAttachments(t);\n }\n insertDocument(t) {\n return this.composition.insertDocument(t);\n }\n insertFile(t) {\n return this.composition.insertFile(t);\n }\n insertFiles(t) {\n return this.composition.insertFiles(t);\n }\n insertHTML(t) {\n return this.composition.insertHTML(t);\n }\n insertString(t) {\n return this.composition.insertString(t);\n }\n insertText(t) {\n return this.composition.insertText(t);\n }\n insertLineBreak() {\n return this.composition.insertLineBreak();\n }\n getSelectedRange() {\n return this.composition.getSelectedRange();\n }\n getPosition() {\n return this.composition.getPosition();\n }\n getClientRectAtPosition(t) {\n const e = this.getDocument().locationRangeFromRange([t, t + 1]);\n return this.selectionManager.getClientRectAtLocationRange(e);\n }\n expandSelectionInDirection(t) {\n return this.composition.expandSelectionInDirection(t);\n }\n moveCursorInDirection(t) {\n return this.composition.moveCursorInDirection(t);\n }\n setSelectedRange(t) {\n return this.composition.setSelectedRange(t);\n }\n activateAttribute(t) {\n let e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];\n return this.composition.setCurrentAttribute(t, e);\n }\n attributeIsActive(t) {\n return this.composition.hasCurrentAttribute(t);\n }\n canActivateAttribute(t) {\n return this.composition.canSetCurrentAttribute(t);\n }\n deactivateAttribute(t) {\n return this.composition.removeCurrentAttribute(t);\n }\n canDecreaseNestingLevel() {\n return this.composition.canDecreaseNestingLevel();\n }\n canIncreaseNestingLevel() {\n return this.composition.canIncreaseNestingLevel();\n }\n decreaseNestingLevel() {\n if (this.canDecreaseNestingLevel()) return this.composition.decreaseNestingLevel();\n }\n increaseNestingLevel() {\n if (this.canIncreaseNestingLevel()) return this.composition.increaseNestingLevel();\n }\n canRedo() {\n return this.undoManager.canRedo();\n }\n canUndo() {\n return this.undoManager.canUndo();\n }\n recordUndoEntry(t) {\n let _ref19 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n e = _ref19.context,\n i = _ref19.consolidatable;\n return this.undoManager.recordUndoEntry(t, {\n context: e,\n consolidatable: i\n });\n }\n redo() {\n if (this.canRedo()) return this.undoManager.redo();\n }\n undo() {\n if (this.canUndo()) return this.undoManager.undo();\n }\n}\nclass fi {\n constructor(t) {\n this.element = t;\n }\n findLocationFromContainerAndOffset(t, e) {\n let _ref20 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {\n strict: !0\n },\n i = _ref20.strict,\n n = 0,\n r = !1;\n const o = {\n index: 0,\n offset: 0\n },\n s = this.findAttachmentElementParentForNode(t);\n s && (t = s.parentNode, e = v(s));\n const a = x(this.element, {\n usingFilter: xi\n });\n for (; a.nextNode();) {\n const s = a.currentNode;\n if (s === t && I(t)) {\n T(s) || (o.offset += e);\n break;\n }\n if (s.parentNode === t) {\n if (n++ === e) break;\n } else if (!b(t, s) && n > 0) break;\n L(s, {\n strict: i\n }) ? (r && o.index++, o.offset = 0, r = !0) : o.offset += bi(s);\n }\n return o;\n }\n findContainerAndOffsetFromLocation(t) {\n let e, i;\n if (0 === t.index && 0 === t.offset) {\n for (e = this.element, i = 0; e.firstChild;) if (e = e.firstChild, E(e)) {\n i = 1;\n break;\n }\n return [e, i];\n }\n let _this$findNodeAndOffs = this.findNodeAndOffsetFromLocation(t),\n _this$findNodeAndOffs2 = _slicedToArray(_this$findNodeAndOffs, 2),\n n = _this$findNodeAndOffs2[0],\n r = _this$findNodeAndOffs2[1];\n if (n) {\n if (I(n)) 0 === bi(n) ? (e = n.parentNode.parentNode, i = v(n.parentNode), T(n, {\n name: \"right\"\n }) && i++) : (e = n, i = t.offset - r);else {\n if (e = n.parentNode, !L(n.previousSibling) && !E(e)) for (; n === e.lastChild && (n = e, e = e.parentNode, !E(e)););\n i = v(n), 0 !== t.offset && i++;\n }\n return [e, i];\n }\n }\n findNodeAndOffsetFromLocation(t) {\n let e,\n i,\n n = 0;\n for (const r of this.getSignificantNodesForIndex(t.index)) {\n const o = bi(r);\n if (t.offset <= n + o) if (I(r)) {\n if (e = r, i = n, t.offset === i && T(e)) break;\n } else e || (e = r, i = n);\n if (n += o, n > t.offset) break;\n }\n return [e, i];\n }\n findAttachmentElementParentForNode(t) {\n for (; t && t !== this.element;) {\n if (F(t)) return t;\n t = t.parentNode;\n }\n }\n getSignificantNodesForIndex(t) {\n const e = [],\n i = x(this.element, {\n usingFilter: vi\n });\n let n = !1;\n for (; i.nextNode();) {\n const o = i.currentNode;\n var r;\n if (D(o)) {\n if (null != r ? r++ : r = 0, r === t) n = !0;else if (n) break;\n } else n && e.push(o);\n }\n return e;\n }\n}\nconst bi = function (t) {\n if (t.nodeType === Node.TEXT_NODE) {\n if (T(t)) return 0;\n return t.textContent.length;\n }\n return \"br\" === y(t) || F(t) ? 1 : 0;\n },\n vi = function (t) {\n return Ai(t) === NodeFilter.FILTER_ACCEPT ? xi(t) : NodeFilter.FILTER_REJECT;\n },\n Ai = function (t) {\n return B(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n },\n xi = function (t) {\n return F(t.parentNode) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n };\nclass yi {\n createDOMRangeFromPoint(t) {\n let e,\n i = t.x,\n n = t.y;\n if (document.caretPositionFromPoint) {\n const _document$caretPositi = document.caretPositionFromPoint(i, n),\n t = _document$caretPositi.offsetNode,\n r = _document$caretPositi.offset;\n return e = document.createRange(), e.setStart(t, r), e;\n }\n if (document.caretRangeFromPoint) return document.caretRangeFromPoint(i, n);\n if (document.body.createTextRange) {\n const t = It();\n try {\n const t = document.body.createTextRange();\n t.moveToPoint(i, n), t.select();\n } catch (t) {}\n return e = It(), Pt(t), e;\n }\n }\n getClientRectsForDOMRange(t) {\n const e = Array.from(t.getClientRects());\n return [e[0], e[e.length - 1]];\n }\n}\nclass Ci extends U {\n constructor(t) {\n super(...arguments), this.didMouseDown = this.didMouseDown.bind(this), this.selectionDidChange = this.selectionDidChange.bind(this), this.element = t, this.locationMapper = new fi(this.element), this.pointMapper = new yi(), this.lockCount = 0, d(\"mousedown\", {\n onElement: this.element,\n withCallback: this.didMouseDown\n });\n }\n getLocationRange() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n return !1 === t.strict ? this.createLocationRangeFromDOMRange(It()) : t.ignoreLock ? this.currentLocationRange : this.lockedLocationRange ? this.lockedLocationRange : this.currentLocationRange;\n }\n setLocationRange(t) {\n if (this.lockedLocationRange) return;\n t = St(t);\n const e = this.createDOMRangeFromLocationRange(t);\n e && (Pt(e), this.updateCurrentLocationRange(t));\n }\n setLocationRangeFromPointRange(t) {\n t = St(t);\n const e = this.getLocationAtPoint(t[0]),\n i = this.getLocationAtPoint(t[1]);\n this.setLocationRange([e, i]);\n }\n getClientRectAtLocationRange(t) {\n const e = this.createDOMRangeFromLocationRange(t);\n if (e) return this.getClientRectsForDOMRange(e)[1];\n }\n locationIsCursorTarget(t) {\n const e = Array.from(this.findNodeAndOffsetFromLocation(t))[0];\n return T(e);\n }\n lock() {\n 0 == this.lockCount++ && (this.updateCurrentLocationRange(), this.lockedLocationRange = this.getLocationRange());\n }\n unlock() {\n if (0 == --this.lockCount) {\n const t = this.lockedLocationRange;\n if (this.lockedLocationRange = null, null != t) return this.setLocationRange(t);\n }\n }\n clearSelection() {\n var t;\n return null === (t = Bt()) || void 0 === t ? void 0 : t.removeAllRanges();\n }\n selectionIsCollapsed() {\n var t;\n return !0 === (null === (t = It()) || void 0 === t ? void 0 : t.collapsed);\n }\n selectionIsExpanded() {\n return !this.selectionIsCollapsed();\n }\n createLocationRangeFromDOMRange(t, e) {\n if (null == t || !this.domRangeWithinElement(t)) return;\n const i = this.findLocationFromContainerAndOffset(t.startContainer, t.startOffset, e);\n if (!i) return;\n const n = t.collapsed ? void 0 : this.findLocationFromContainerAndOffset(t.endContainer, t.endOffset, e);\n return St([i, n]);\n }\n didMouseDown() {\n return this.pauseTemporarily();\n }\n pauseTemporarily() {\n let t;\n this.paused = !0;\n const e = () => {\n if (this.paused = !1, clearTimeout(i), Array.from(t).forEach(t => {\n t.destroy();\n }), b(document, this.element)) return this.selectionDidChange();\n },\n i = setTimeout(e, 200);\n t = [\"mousemove\", \"keydown\"].map(t => d(t, {\n onElement: document,\n withCallback: e\n }));\n }\n selectionDidChange() {\n if (!this.paused && !f(this.element)) return this.updateCurrentLocationRange();\n }\n updateCurrentLocationRange(t) {\n var e, i;\n if ((null != t ? t : t = this.createLocationRangeFromDOMRange(It())) && !kt(t, this.currentLocationRange)) return this.currentLocationRange = t, null === (e = this.delegate) || void 0 === e || null === (i = e.locationRangeDidChange) || void 0 === i ? void 0 : i.call(e, this.currentLocationRange.slice(0));\n }\n createDOMRangeFromLocationRange(t) {\n const e = this.findContainerAndOffsetFromLocation(t[0]),\n i = Et(t) ? e : this.findContainerAndOffsetFromLocation(t[1]) || e;\n if (null != e && null != i) {\n const t = document.createRange();\n return t.setStart(...Array.from(e || [])), t.setEnd(...Array.from(i || [])), t;\n }\n }\n getLocationAtPoint(t) {\n const e = this.createDOMRangeFromPoint(t);\n var i;\n if (e) return null === (i = this.createLocationRangeFromDOMRange(e)) || void 0 === i ? void 0 : i[0];\n }\n domRangeWithinElement(t) {\n return t.collapsed ? b(this.element, t.startContainer) : b(this.element, t.startContainer) && b(this.element, t.endContainer);\n }\n}\nCi.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"), Ci.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"), Ci.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"), Ci.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"), Ci.proxyMethod(\"pointMapper.getClientRectsForDOMRange\");\nvar Ri = Object.freeze({\n __proto__: null,\n Attachment: xe,\n AttachmentManager: ai,\n AttachmentPiece: ye,\n Block: De,\n Composition: ci,\n Document: je,\n Editor: pi,\n HTMLParser: Ke,\n HTMLSanitizer: ze,\n LineBreakInsertion: li,\n LocationMapper: fi,\n ManagedAttachment: si,\n Piece: ve,\n PointMapper: yi,\n SelectionManager: Ci,\n SplittableList: Re,\n StringPiece: Ce,\n Text: Le,\n UndoManager: hi\n }),\n Si = Object.freeze({\n __proto__: null\n });\nconst Ei = W.lang,\n ki = W.css,\n Li = W.keyNames,\n Di = function (t) {\n return function () {\n const e = t.apply(this, arguments);\n e.do(), this.undos || (this.undos = []), this.undos.push(e.undo);\n };\n };\nclass wi extends U {\n constructor(t, e, i) {\n let n = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {};\n super(...arguments), be(this, \"makeElementMutable\", Di(() => ({\n do: () => {\n this.element.dataset.trixMutable = !0;\n },\n undo: () => delete this.element.dataset.trixMutable\n }))), be(this, \"addToolbar\", Di(() => {\n const t = C({\n tagName: \"div\",\n className: ki.attachmentToolbar,\n data: {\n trixMutable: !0\n },\n childNodes: C({\n tagName: \"div\",\n className: \"trix-button-row\",\n childNodes: C({\n tagName: \"span\",\n className: \"trix-button-group trix-button-group--actions\",\n childNodes: C({\n tagName: \"button\",\n className: \"trix-button trix-button--remove\",\n textContent: Ei.remove,\n attributes: {\n title: Ei.remove\n },\n data: {\n trixAction: \"remove\"\n }\n })\n })\n })\n });\n return this.attachment.isPreviewable() && t.appendChild(C({\n tagName: \"div\",\n className: ki.attachmentMetadataContainer,\n childNodes: C({\n tagName: \"span\",\n className: ki.attachmentMetadata,\n childNodes: [C({\n tagName: \"span\",\n className: ki.attachmentName,\n textContent: this.attachment.getFilename(),\n attributes: {\n title: this.attachment.getFilename()\n }\n }), C({\n tagName: \"span\",\n className: ki.attachmentSize,\n textContent: this.attachment.getFormattedFilesize()\n })]\n })\n })), d(\"click\", {\n onElement: t,\n withCallback: this.didClickToolbar\n }), d(\"click\", {\n onElement: t,\n matchingSelector: \"[data-trix-action]\",\n withCallback: this.didClickActionButton\n }), g(\"trix-attachment-before-toolbar\", {\n onElement: this.element,\n attributes: {\n toolbar: t,\n attachment: this.attachment\n }\n }), {\n do: () => this.element.appendChild(t),\n undo: () => A(t)\n };\n })), be(this, \"installCaptionEditor\", Di(() => {\n const t = C({\n tagName: \"textarea\",\n className: ki.attachmentCaptionEditor,\n attributes: {\n placeholder: Ei.captionPlaceholder\n },\n data: {\n trixMutable: !0\n }\n });\n t.value = this.attachmentPiece.getCaption();\n const e = t.cloneNode();\n e.classList.add(\"trix-autoresize-clone\"), e.tabIndex = -1;\n const i = function () {\n e.value = t.value, t.style.height = e.scrollHeight + \"px\";\n };\n d(\"input\", {\n onElement: t,\n withCallback: i\n }), d(\"input\", {\n onElement: t,\n withCallback: this.didInputCaption\n }), d(\"keydown\", {\n onElement: t,\n withCallback: this.didKeyDownCaption\n }), d(\"change\", {\n onElement: t,\n withCallback: this.didChangeCaption\n }), d(\"blur\", {\n onElement: t,\n withCallback: this.didBlurCaption\n });\n const n = this.element.querySelector(\"figcaption\"),\n r = n.cloneNode();\n return {\n do: () => {\n if (n.style.display = \"none\", r.appendChild(t), r.appendChild(e), r.classList.add(\"\".concat(ki.attachmentCaption, \"--editing\")), n.parentElement.insertBefore(r, n), i(), this.options.editCaption) return yt(() => t.focus());\n },\n undo() {\n A(r), n.style.display = null;\n }\n };\n })), this.didClickToolbar = this.didClickToolbar.bind(this), this.didClickActionButton = this.didClickActionButton.bind(this), this.didKeyDownCaption = this.didKeyDownCaption.bind(this), this.didInputCaption = this.didInputCaption.bind(this), this.didChangeCaption = this.didChangeCaption.bind(this), this.didBlurCaption = this.didBlurCaption.bind(this), this.attachmentPiece = t, this.element = e, this.container = i, this.options = n, this.attachment = this.attachmentPiece.attachment, \"a\" === y(this.element) && (this.element = this.element.firstChild), this.install();\n }\n install() {\n this.makeElementMutable(), this.addToolbar(), this.attachment.isPreviewable() && this.installCaptionEditor();\n }\n uninstall() {\n var t;\n let e = this.undos.pop();\n for (this.savePendingCaption(); e;) e(), e = this.undos.pop();\n null === (t = this.delegate) || void 0 === t || t.didUninstallAttachmentEditor(this);\n }\n savePendingCaption() {\n if (this.pendingCaption) {\n const r = this.pendingCaption;\n var t, e, i, n;\n if (this.pendingCaption = null, r) null === (t = this.delegate) || void 0 === t || null === (e = t.attachmentEditorDidRequestUpdatingAttributesForAttachment) || void 0 === e || e.call(t, {\n caption: r\n }, this.attachment);else null === (i = this.delegate) || void 0 === i || null === (n = i.attachmentEditorDidRequestRemovingAttributeForAttachment) || void 0 === n || n.call(i, \"caption\", this.attachment);\n }\n }\n didClickToolbar(t) {\n return t.preventDefault(), t.stopPropagation();\n }\n didClickActionButton(t) {\n var e;\n if (\"remove\" === t.target.getAttribute(\"data-trix-action\")) return null === (e = this.delegate) || void 0 === e ? void 0 : e.attachmentEditorDidRequestRemovalOfAttachment(this.attachment);\n }\n didKeyDownCaption(t) {\n var e, i;\n if (\"return\" === Li[t.keyCode]) return t.preventDefault(), this.savePendingCaption(), null === (e = this.delegate) || void 0 === e || null === (i = e.attachmentEditorDidRequestDeselectingAttachment) || void 0 === i ? void 0 : i.call(e, this.attachment);\n }\n didInputCaption(t) {\n this.pendingCaption = t.target.value.replace(/\\s/g, \" \").trim();\n }\n didChangeCaption(t) {\n return this.savePendingCaption();\n }\n didBlurCaption(t) {\n return this.savePendingCaption();\n }\n}\nclass Ti extends U {\n constructor(t, e) {\n super(...arguments), this.didFocus = this.didFocus.bind(this), this.didBlur = this.didBlur.bind(this), this.didClickAttachment = this.didClickAttachment.bind(this), this.element = t, this.composition = e, this.documentView = new ue(this.composition.document, {\n element: this.element\n }), d(\"focus\", {\n onElement: this.element,\n withCallback: this.didFocus\n }), d(\"blur\", {\n onElement: this.element,\n withCallback: this.didBlur\n }), d(\"click\", {\n onElement: this.element,\n matchingSelector: \"a[contenteditable=false]\",\n preventDefault: !0\n }), d(\"mousedown\", {\n onElement: this.element,\n matchingSelector: \"[data-trix-attachment]\",\n withCallback: this.didClickAttachment\n }), d(\"click\", {\n onElement: this.element,\n matchingSelector: \"a\".concat(\"[data-trix-attachment]\"),\n preventDefault: !0\n });\n }\n didFocus(t) {\n var e;\n const i = () => {\n var t, e;\n if (!this.focused) return this.focused = !0, null === (t = this.delegate) || void 0 === t || null === (e = t.compositionControllerDidFocus) || void 0 === e ? void 0 : e.call(t);\n };\n return (null === (e = this.blurPromise) || void 0 === e ? void 0 : e.then(i)) || i();\n }\n didBlur(t) {\n this.blurPromise = new Promise(t => yt(() => {\n var e, i;\n f(this.element) || (this.focused = null, null === (e = this.delegate) || void 0 === e || null === (i = e.compositionControllerDidBlur) || void 0 === i || i.call(e));\n return this.blurPromise = null, t();\n }));\n }\n didClickAttachment(t, e) {\n var i, n;\n const r = this.findAttachmentForElement(e),\n o = !!p(t.target, {\n matchingSelector: \"figcaption\"\n });\n return null === (i = this.delegate) || void 0 === i || null === (n = i.compositionControllerDidSelectAttachment) || void 0 === n ? void 0 : n.call(i, r, {\n editCaption: o\n });\n }\n getSerializableElement() {\n return this.isEditingAttachment() ? this.documentView.shadowElement : this.element;\n }\n render() {\n var t, e, i, n, r, o;\n (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 === (i = this.delegate) || void 0 === i || null === (n = i.compositionControllerWillSyncDocumentView) || void 0 === n || n.call(i), this.documentView.sync(), null === (r = this.delegate) || void 0 === r || null === (o = r.compositionControllerDidSyncDocumentView) || void 0 === o || o.call(r));\n return null === (t = this.delegate) || void 0 === t || null === (e = t.compositionControllerDidRender) || void 0 === e ? void 0 : e.call(t);\n }\n rerenderViewForObject(t) {\n return this.invalidateViewForObject(t), this.render();\n }\n invalidateViewForObject(t) {\n return this.documentView.invalidateViewForObject(t);\n }\n isViewCachingEnabled() {\n return this.documentView.isViewCachingEnabled();\n }\n enableViewCaching() {\n return this.documentView.enableViewCaching();\n }\n disableViewCaching() {\n return this.documentView.disableViewCaching();\n }\n refreshViewCache() {\n return this.documentView.garbageCollectCachedViews();\n }\n isEditingAttachment() {\n return !!this.attachmentEditor;\n }\n installAttachmentEditorForAttachment(t, e) {\n var i;\n if ((null === (i = this.attachmentEditor) || void 0 === i ? void 0 : i.attachment) === t) return;\n const n = this.documentView.findElementForObject(t);\n if (!n) return;\n this.uninstallAttachmentEditor();\n const r = this.composition.document.getAttachmentPieceForAttachment(t);\n this.attachmentEditor = new wi(r, n, this.element, e), this.attachmentEditor.delegate = this;\n }\n uninstallAttachmentEditor() {\n var t;\n return null === (t = this.attachmentEditor) || void 0 === t ? void 0 : t.uninstall();\n }\n didUninstallAttachmentEditor() {\n return this.attachmentEditor = null, this.render();\n }\n attachmentEditorDidRequestUpdatingAttributesForAttachment(t, e) {\n var i, n;\n return null === (i = this.delegate) || void 0 === i || null === (n = i.compositionControllerWillUpdateAttachment) || void 0 === n || n.call(i, e), this.composition.updateAttributesForAttachment(t, e);\n }\n attachmentEditorDidRequestRemovingAttributeForAttachment(t, e) {\n var i, n;\n return null === (i = this.delegate) || void 0 === i || null === (n = i.compositionControllerWillUpdateAttachment) || void 0 === n || n.call(i, e), this.composition.removeAttributeForAttachment(t, e);\n }\n attachmentEditorDidRequestRemovalOfAttachment(t) {\n var e, i;\n return null === (e = this.delegate) || void 0 === e || null === (i = e.compositionControllerDidRequestRemovalOfAttachment) || void 0 === i ? void 0 : i.call(e, t);\n }\n attachmentEditorDidRequestDeselectingAttachment(t) {\n var e, i;\n return null === (e = this.delegate) || void 0 === e || null === (i = e.compositionControllerDidRequestDeselectingAttachment) || void 0 === i ? void 0 : i.call(e, t);\n }\n canSyncDocumentView() {\n return !this.isEditingAttachment();\n }\n findAttachmentForElement(t) {\n return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId, 10));\n }\n}\nclass Fi extends U {}\nconst Bi = \"[\".concat(\"data-trix-mutable\", \"]\"),\n Ii = {\n attributes: !0,\n childList: !0,\n characterData: !0,\n characterDataOldValue: !0,\n subtree: !0\n };\nclass Pi extends U {\n constructor(t) {\n super(t), this.didMutate = this.didMutate.bind(this), this.element = t, this.observer = new window.MutationObserver(this.didMutate), this.start();\n }\n start() {\n return this.reset(), this.observer.observe(this.element, Ii);\n }\n stop() {\n return this.observer.disconnect();\n }\n didMutate(t) {\n var e, i;\n if (this.mutations.push(...Array.from(this.findSignificantMutations(t) || [])), this.mutations.length) return null === (e = this.delegate) || void 0 === e || null === (i = e.elementDidMutate) || void 0 === i || i.call(e, this.getMutationSummary()), this.reset();\n }\n reset() {\n this.mutations = [];\n }\n findSignificantMutations(t) {\n return t.filter(t => this.mutationIsSignificant(t));\n }\n mutationIsSignificant(t) {\n if (this.nodeIsMutable(t.target)) return !1;\n for (const e of Array.from(this.nodesModifiedByMutation(t))) if (this.nodeIsSignificant(e)) return !0;\n return !1;\n }\n nodeIsSignificant(t) {\n return t !== this.element && !this.nodeIsMutable(t) && !B(t);\n }\n nodeIsMutable(t) {\n return p(t, {\n matchingSelector: Bi\n });\n }\n nodesModifiedByMutation(t) {\n const e = [];\n switch (t.type) {\n case \"attributes\":\n \"data-trix-mutable\" !== t.attributeName && e.push(t.target);\n break;\n case \"characterData\":\n e.push(t.target.parentNode), e.push(t.target);\n break;\n case \"childList\":\n e.push(...Array.from(t.addedNodes || [])), e.push(...Array.from(t.removedNodes || []));\n }\n return e;\n }\n getMutationSummary() {\n return this.getTextMutationSummary();\n }\n getTextMutationSummary() {\n const _this$getTextChangesF = this.getTextChangesFromCharacterData(),\n t = _this$getTextChangesF.additions,\n e = _this$getTextChangesF.deletions,\n i = this.getTextChangesFromChildList();\n Array.from(i.additions).forEach(e => {\n Array.from(t).includes(e) || t.push(e);\n }), e.push(...Array.from(i.deletions || []));\n const n = {},\n r = t.join(\"\");\n r && (n.textAdded = r);\n const o = e.join(\"\");\n return o && (n.textDeleted = o), n;\n }\n getMutationsByType(t) {\n return Array.from(this.mutations).filter(e => e.type === t);\n }\n getTextChangesFromChildList() {\n let t, e;\n const i = [],\n n = [];\n Array.from(this.getMutationsByType(\"childList\")).forEach(t => {\n i.push(...Array.from(t.addedNodes || [])), n.push(...Array.from(t.removedNodes || []));\n });\n 0 === i.length && 1 === n.length && D(n[0]) ? (t = [], e = [\"\\n\"]) : (t = Ni(i), e = Ni(n));\n return {\n additions: t.filter((t, i) => t !== e[i]).map(Mt),\n deletions: e.filter((e, i) => e !== t[i]).map(Mt)\n };\n }\n getTextChangesFromCharacterData() {\n let t, e;\n const i = this.getMutationsByType(\"characterData\");\n if (i.length) {\n const n = i[0],\n r = i[i.length - 1],\n o = function (t, e) {\n var _Ut, _Ut2, _Ut3, _Ut4;\n let i, n;\n return t = K.box(t), (e = K.box(e)).length < t.length ? (_Ut = Ut(t, e), _Ut2 = _slicedToArray(_Ut, 2), n = _Ut2[0], i = _Ut2[1], _Ut) : (_Ut3 = Ut(e, t), _Ut4 = _slicedToArray(_Ut3, 2), i = _Ut4[0], n = _Ut4[1], _Ut3), {\n added: i,\n removed: n\n };\n }(Mt(n.oldValue), Mt(r.target.data));\n t = o.added, e = o.removed;\n }\n return {\n additions: t ? [t] : [],\n deletions: e ? [e] : []\n };\n }\n}\nconst Ni = function () {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\n const e = [];\n for (const i of Array.from(t)) switch (i.nodeType) {\n case Node.TEXT_NODE:\n e.push(i.data);\n break;\n case Node.ELEMENT_NODE:\n \"br\" === y(i) ? e.push(\"\\n\") : e.push(...Array.from(Ni(i.childNodes) || []));\n }\n return e;\n};\nclass Oi extends Qt {\n constructor(t) {\n super(...arguments), this.file = t;\n }\n perform(t) {\n const e = new FileReader();\n return e.onerror = () => t(!1), e.onload = () => {\n e.onerror = null;\n try {\n e.abort();\n } catch (t) {}\n return t(!0, this.file);\n }, e.readAsArrayBuffer(this.file);\n }\n}\nclass Mi {\n constructor(t) {\n this.element = t;\n }\n shouldIgnore(t) {\n return !!o.samsungAndroid && (this.previousEvent = this.event, this.event = t, this.checkSamsungKeyboardBuggyModeStart(), this.checkSamsungKeyboardBuggyModeEnd(), this.buggyMode);\n }\n checkSamsungKeyboardBuggyModeStart() {\n this.insertingLongTextAfterUnidentifiedChar() && ji(this.element.innerText, this.event.data) && (this.buggyMode = !0, this.event.preventDefault());\n }\n checkSamsungKeyboardBuggyModeEnd() {\n this.buggyMode && \"insertText\" !== this.event.inputType && (this.buggyMode = !1);\n }\n insertingLongTextAfterUnidentifiedChar() {\n var t;\n return this.isBeforeInputInsertText() && this.previousEventWasUnidentifiedKeydown() && (null === (t = this.event.data) || void 0 === t ? void 0 : t.length) > 100;\n }\n isBeforeInputInsertText() {\n return \"beforeinput\" === this.event.type && \"insertText\" === this.event.inputType;\n }\n previousEventWasUnidentifiedKeydown() {\n var t, e;\n return \"keydown\" === (null === (t = this.previousEvent) || void 0 === t ? void 0 : t.type) && \"Unidentified\" === (null === (e = this.previousEvent) || void 0 === e ? void 0 : e.key);\n }\n}\nconst ji = (t, e) => Wi(t) === Wi(e),\n Wi = t => t.replace(/\\s+/g, \" \").trim();\nclass Ui extends U {\n constructor(t) {\n super(...arguments), this.element = t, this.mutationObserver = new Pi(this.element), this.mutationObserver.delegate = this, this.flakyKeyboardDetector = new Mi(this.element);\n for (const t in this.constructor.events) d(t, {\n onElement: this.element,\n withCallback: this.handlerFor(t)\n });\n }\n elementDidMutate(t) {}\n editorWillSyncDocumentView() {\n return this.mutationObserver.stop();\n }\n editorDidSyncDocumentView() {\n return this.mutationObserver.start();\n }\n requestRender() {\n var t, e;\n return null === (t = this.delegate) || void 0 === t || null === (e = t.inputControllerDidRequestRender) || void 0 === e ? void 0 : e.call(t);\n }\n requestReparse() {\n var t, e;\n return null === (t = this.delegate) || void 0 === t || null === (e = t.inputControllerDidRequestReparse) || void 0 === e || e.call(t), this.requestRender();\n }\n attachFiles(t) {\n const e = Array.from(t).map(t => new Oi(t));\n return Promise.all(e).then(t => {\n this.handleInput(function () {\n var e, i;\n return null === (e = this.delegate) || void 0 === e || e.inputControllerWillAttachFiles(), null === (i = this.responder) || void 0 === i || i.insertFiles(t), this.requestRender();\n });\n });\n }\n handlerFor(t) {\n return e => {\n e.defaultPrevented || this.handleInput(() => {\n if (!f(this.element)) {\n if (this.flakyKeyboardDetector.shouldIgnore(e)) return;\n this.eventName = t, this.constructor.events[t].call(this, e);\n }\n });\n };\n }\n handleInput(t) {\n try {\n var e;\n null === (e = this.delegate) || void 0 === e || e.inputControllerWillHandleInput(), t.call(this);\n } finally {\n var i;\n null === (i = this.delegate) || void 0 === i || i.inputControllerDidHandleInput();\n }\n }\n createLinkHTML(t, e) {\n const i = document.createElement(\"a\");\n return i.href = t, i.textContent = e || t, i.outerHTML;\n }\n}\nvar qi;\nbe(Ui, \"events\", {});\nconst Vi = W.browser,\n zi = W.keyNames;\nlet _i = 0;\nclass Hi extends Ui {\n constructor() {\n super(...arguments), this.resetInputSummary();\n }\n setInputSummary() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n this.inputSummary.eventName = this.eventName;\n for (const e in t) {\n const i = t[e];\n this.inputSummary[e] = i;\n }\n return this.inputSummary;\n }\n resetInputSummary() {\n this.inputSummary = {};\n }\n reset() {\n return this.resetInputSummary(), Ft.reset();\n }\n elementDidMutate(t) {\n var e, i;\n return this.isComposing() ? null === (e = this.delegate) || void 0 === e || null === (i = e.inputControllerDidAllowUnhandledInput) || void 0 === i ? void 0 : i.call(e) : this.handleInput(function () {\n return this.mutationIsSignificant(t) && (this.mutationIsExpected(t) ? this.requestRender() : this.requestReparse()), this.reset();\n });\n }\n mutationIsExpected(t) {\n let e = t.textAdded,\n i = t.textDeleted;\n if (this.inputSummary.preferDocument) return !0;\n const n = null != e ? e === this.inputSummary.textAdded : !this.inputSummary.textAdded,\n r = null != i ? this.inputSummary.didDelete : !this.inputSummary.didDelete,\n o = [\"\\n\", \" \\n\"].includes(e) && !n,\n s = \"\\n\" === i && !r;\n if (o && !s || s && !o) {\n const t = this.getSelectedRange();\n if (t) {\n var a;\n const i = o ? e.replace(/\\n$/, \"\").length || -1 : (null == e ? void 0 : e.length) || 1;\n if (null !== (a = this.responder) && void 0 !== a && a.positionIsBlockBreak(t[1] + i)) return !0;\n }\n }\n return n && r;\n }\n mutationIsSignificant(t) {\n var e;\n const i = Object.keys(t).length > 0,\n n = \"\" === (null === (e = this.compositionInput) || void 0 === e ? void 0 : e.getEndData());\n return i || !n;\n }\n getCompositionInput() {\n if (this.isComposing()) return this.compositionInput;\n this.compositionInput = new Xi(this);\n }\n isComposing() {\n return this.compositionInput && !this.compositionInput.isEnded();\n }\n deleteInDirection(t, e) {\n var i;\n return !1 !== (null === (i = this.responder) || void 0 === i ? void 0 : i.deleteInDirection(t)) ? this.setInputSummary({\n didDelete: !0\n }) : e ? (e.preventDefault(), this.requestRender()) : void 0;\n }\n serializeSelectionToDataTransfer(t) {\n var e;\n if (!function (t) {\n if (null == t || !t.setData) return !1;\n for (const e in vt) {\n const i = vt[e];\n try {\n if (t.setData(e, i), !t.getData(e) === i) return !1;\n } catch (t) {\n return !1;\n }\n }\n return !0;\n }(t)) return;\n const i = null === (e = this.responder) || void 0 === e ? void 0 : e.getSelectedDocument().toSerializableDocument();\n return t.setData(\"application/x-trix-document\", JSON.stringify(i)), t.setData(\"text/html\", ue.render(i).innerHTML), t.setData(\"text/plain\", i.toString().replace(/\\n$/, \"\")), !0;\n }\n canAcceptDataTransfer(t) {\n const e = {};\n return Array.from((null == t ? void 0 : t.types) || []).forEach(t => {\n e[t] = !0;\n }), e.Files || e[\"application/x-trix-document\"] || e[\"text/html\"] || e[\"text/plain\"];\n }\n getPastedHTMLUsingHiddenElement(t) {\n const e = this.getSelectedRange(),\n i = {\n position: \"absolute\",\n left: \"\".concat(window.pageXOffset, \"px\"),\n top: \"\".concat(window.pageYOffset, \"px\"),\n opacity: 0\n },\n n = C({\n style: i,\n tagName: \"div\",\n editable: !0\n });\n return document.body.appendChild(n), n.focus(), requestAnimationFrame(() => {\n const i = n.innerHTML;\n return A(n), this.setSelectedRange(e), t(i);\n });\n }\n}\nbe(Hi, \"events\", {\n keydown(t) {\n this.isComposing() || this.resetInputSummary(), this.inputSummary.didInput = !0;\n const e = zi[t.keyCode];\n if (e) {\n var i;\n let n = this.keys;\n [\"ctrl\", \"alt\", \"shift\", \"meta\"].forEach(e => {\n var i;\n t[\"\".concat(e, \"Key\")] && (\"ctrl\" === e && (e = \"control\"), n = null === (i = n) || void 0 === i ? void 0 : i[e]);\n }), null != (null === (i = n) || void 0 === i ? void 0 : i[e]) && (this.setInputSummary({\n keyName: e\n }), Ft.reset(), n[e].call(this, t));\n }\n if (xt(t)) {\n const e = String.fromCharCode(t.keyCode).toLowerCase();\n if (e) {\n var n;\n const i = [\"alt\", \"shift\"].map(e => {\n if (t[\"\".concat(e, \"Key\")]) return e;\n }).filter(t => t);\n i.push(e), null !== (n = this.delegate) && void 0 !== n && n.inputControllerDidReceiveKeyboardCommand(i) && t.preventDefault();\n }\n }\n },\n keypress(t) {\n if (null != this.inputSummary.eventName) return;\n if (t.metaKey) return;\n if (t.ctrlKey && !t.altKey) return;\n const e = Gi(t);\n var i, n;\n return e ? (null === (i = this.delegate) || void 0 === i || i.inputControllerWillPerformTyping(), null === (n = this.responder) || void 0 === n || n.insertString(e), this.setInputSummary({\n textAdded: e,\n didDelete: this.selectionIsExpanded()\n })) : void 0;\n },\n textInput(t) {\n const e = t.data,\n i = this.inputSummary.textAdded;\n if (i && i !== e && i.toUpperCase() === e) {\n var n;\n const t = this.getSelectedRange();\n return this.setSelectedRange([t[0], t[1] + i.length]), null === (n = this.responder) || void 0 === n || n.insertString(e), this.setInputSummary({\n textAdded: e\n }), this.setSelectedRange(t);\n }\n },\n dragenter(t) {\n t.preventDefault();\n },\n dragstart(t) {\n var e, i;\n return this.serializeSelectionToDataTransfer(t.dataTransfer), this.draggedRange = this.getSelectedRange(), null === (e = this.delegate) || void 0 === e || null === (i = e.inputControllerDidStartDrag) || void 0 === i ? void 0 : i.call(e);\n },\n dragover(t) {\n if (this.draggedRange || this.canAcceptDataTransfer(t.dataTransfer)) {\n t.preventDefault();\n const n = {\n x: t.clientX,\n y: t.clientY\n };\n var e, i;\n if (!Rt(n, this.draggingPoint)) return this.draggingPoint = n, null === (e = this.delegate) || void 0 === e || null === (i = e.inputControllerDidReceiveDragOverPoint) || void 0 === i ? void 0 : i.call(e, this.draggingPoint);\n }\n },\n dragend(t) {\n var e, i;\n null === (e = this.delegate) || void 0 === e || null === (i = e.inputControllerDidCancelDrag) || void 0 === i || i.call(e), this.draggedRange = null, this.draggingPoint = null;\n },\n drop(t) {\n var e, i;\n t.preventDefault();\n const n = null === (e = t.dataTransfer) || void 0 === e ? void 0 : e.files,\n r = t.dataTransfer.getData(\"application/x-trix-document\"),\n o = {\n x: t.clientX,\n y: t.clientY\n };\n if (null === (i = this.responder) || void 0 === i || i.setLocationRangeFromPointRange(o), null != n && n.length) this.attachFiles(n);else if (this.draggedRange) {\n var s, a;\n null === (s = this.delegate) || void 0 === s || s.inputControllerWillMoveText(), null === (a = this.responder) || void 0 === a || a.moveTextFromRange(this.draggedRange), this.draggedRange = null, this.requestRender();\n } else if (r) {\n var l;\n const t = je.fromJSONString(r);\n null === (l = this.responder) || void 0 === l || l.insertDocument(t), this.requestRender();\n }\n this.draggedRange = null, this.draggingPoint = null;\n },\n cut(t) {\n var e, i;\n if (null !== (e = this.responder) && void 0 !== e && e.selectionIsExpanded() && (this.serializeSelectionToDataTransfer(t.clipboardData) && t.preventDefault(), null === (i = this.delegate) || void 0 === i || i.inputControllerWillCutText(), this.deleteInDirection(\"backward\"), t.defaultPrevented)) return this.requestRender();\n },\n copy(t) {\n var e;\n null !== (e = this.responder) && void 0 !== e && e.selectionIsExpanded() && this.serializeSelectionToDataTransfer(t.clipboardData) && t.preventDefault();\n },\n paste(t) {\n const e = t.clipboardData || t.testClipboardData,\n i = {\n clipboard: e\n };\n if (!e || $i(t)) return void this.getPastedHTMLUsingHiddenElement(t => {\n var e, n, r;\n return i.type = \"text/html\", i.html = t, null === (e = this.delegate) || void 0 === e || e.inputControllerWillPaste(i), null === (n = this.responder) || void 0 === n || n.insertHTML(i.html), this.requestRender(), null === (r = this.delegate) || void 0 === r ? void 0 : r.inputControllerDidPaste(i);\n });\n const n = e.getData(\"URL\"),\n r = e.getData(\"text/html\"),\n o = e.getData(\"public.url-name\");\n if (n) {\n var s, a, l;\n let t;\n i.type = \"text/html\", t = o ? Wt(o).trim() : n, i.html = this.createLinkHTML(n, t), null === (s = this.delegate) || void 0 === s || s.inputControllerWillPaste(i), this.setInputSummary({\n textAdded: t,\n didDelete: this.selectionIsExpanded()\n }), null === (a = this.responder) || void 0 === a || a.insertHTML(i.html), this.requestRender(), null === (l = this.delegate) || void 0 === l || l.inputControllerDidPaste(i);\n } else if (At(e)) {\n var c, h, u;\n i.type = \"text/plain\", i.string = e.getData(\"text/plain\"), null === (c = this.delegate) || void 0 === c || c.inputControllerWillPaste(i), this.setInputSummary({\n textAdded: i.string,\n didDelete: this.selectionIsExpanded()\n }), null === (h = this.responder) || void 0 === h || h.insertString(i.string), this.requestRender(), null === (u = this.delegate) || void 0 === u || u.inputControllerDidPaste(i);\n } else if (r) {\n var d, g, m;\n i.type = \"text/html\", i.html = r, null === (d = this.delegate) || void 0 === d || d.inputControllerWillPaste(i), null === (g = this.responder) || void 0 === g || g.insertHTML(i.html), this.requestRender(), null === (m = this.delegate) || void 0 === m || m.inputControllerDidPaste(i);\n } else if (Array.from(e.types).includes(\"Files\")) {\n var p, f, b;\n const t = null === (p = e.items) || void 0 === p || null === (f = p[0]) || void 0 === f || null === (b = f.getAsFile) || void 0 === b ? void 0 : b.call(f);\n if (t) {\n var v, A, x;\n const e = Ji(t);\n !t.name && e && (t.name = \"pasted-file-\".concat(++_i, \".\").concat(e)), i.type = \"File\", i.file = t, null === (v = this.delegate) || void 0 === v || v.inputControllerWillAttachFiles(), null === (A = this.responder) || void 0 === A || A.insertFile(i.file), this.requestRender(), null === (x = this.delegate) || void 0 === x || x.inputControllerDidPaste(i);\n }\n }\n t.preventDefault();\n },\n compositionstart(t) {\n return this.getCompositionInput().start(t.data);\n },\n compositionupdate(t) {\n return this.getCompositionInput().update(t.data);\n },\n compositionend(t) {\n return this.getCompositionInput().end(t.data);\n },\n beforeinput(t) {\n this.inputSummary.didInput = !0;\n },\n input(t) {\n return this.inputSummary.didInput = !0, t.stopPropagation();\n }\n}), be(Hi, \"keys\", {\n backspace(t) {\n var e;\n return null === (e = this.delegate) || void 0 === e || e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n delete(t) {\n var e;\n return null === (e = this.delegate) || void 0 === e || e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n return(t) {\n var e, i;\n return this.setInputSummary({\n preferDocument: !0\n }), null === (e = this.delegate) || void 0 === e || e.inputControllerWillPerformTyping(), null === (i = this.responder) || void 0 === i ? void 0 : i.insertLineBreak();\n },\n tab(t) {\n var e, i;\n null !== (e = this.responder) && void 0 !== e && e.canIncreaseNestingLevel() && (null === (i = this.responder) || void 0 === i || i.increaseNestingLevel(), this.requestRender(), t.preventDefault());\n },\n left(t) {\n var e;\n if (this.selectionIsInCursorTarget()) return t.preventDefault(), null === (e = this.responder) || void 0 === e ? void 0 : e.moveCursorInDirection(\"backward\");\n },\n right(t) {\n var e;\n if (this.selectionIsInCursorTarget()) return t.preventDefault(), null === (e = this.responder) || void 0 === e ? void 0 : e.moveCursorInDirection(\"forward\");\n },\n control: {\n d(t) {\n var e;\n return null === (e = this.delegate) || void 0 === e || e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n h(t) {\n var e;\n return null === (e = this.delegate) || void 0 === e || e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n o(t) {\n var e, i;\n return t.preventDefault(), null === (e = this.delegate) || void 0 === e || e.inputControllerWillPerformTyping(), null === (i = this.responder) || void 0 === i || i.insertString(\"\\n\", {\n updatePosition: !1\n }), this.requestRender();\n }\n },\n shift: {\n return(t) {\n var e, i;\n null === (e = this.delegate) || void 0 === e || e.inputControllerWillPerformTyping(), null === (i = this.responder) || void 0 === i || i.insertString(\"\\n\"), this.requestRender(), t.preventDefault();\n },\n tab(t) {\n var e, i;\n null !== (e = this.responder) && void 0 !== e && e.canDecreaseNestingLevel() && (null === (i = this.responder) || void 0 === i || i.decreaseNestingLevel(), this.requestRender(), t.preventDefault());\n },\n left(t) {\n if (this.selectionIsInCursorTarget()) return t.preventDefault(), this.expandSelectionInDirection(\"backward\");\n },\n right(t) {\n if (this.selectionIsInCursorTarget()) return t.preventDefault(), this.expandSelectionInDirection(\"forward\");\n }\n },\n alt: {\n backspace(t) {\n var e;\n return this.setInputSummary({\n preferDocument: !1\n }), null === (e = this.delegate) || void 0 === e ? void 0 : e.inputControllerWillPerformTyping();\n }\n },\n meta: {\n backspace(t) {\n var e;\n return this.setInputSummary({\n preferDocument: !1\n }), null === (e = this.delegate) || void 0 === e ? void 0 : e.inputControllerWillPerformTyping();\n }\n }\n}), Hi.proxyMethod(\"responder?.getSelectedRange\"), Hi.proxyMethod(\"responder?.setSelectedRange\"), Hi.proxyMethod(\"responder?.expandSelectionInDirection\"), Hi.proxyMethod(\"responder?.selectionIsInCursorTarget\"), Hi.proxyMethod(\"responder?.selectionIsExpanded\");\nconst Ji = t => {\n var e, i;\n return null === (e = t.type) || void 0 === e || null === (i = e.match(/\\/(\\w+)$/)) || void 0 === i ? void 0 : i[1];\n },\n Ki = !(null === (qi = \" \".codePointAt) || void 0 === qi || !qi.call(\" \", 0)),\n Gi = function (t) {\n if (t.key && Ki && t.key.codePointAt(0) === t.keyCode) return t.key;\n {\n let e;\n if (null === t.which ? e = t.keyCode : 0 !== t.which && 0 !== t.charCode && (e = t.charCode), null != e && \"escape\" !== zi[e]) return K.fromCodepoints([e]).toString();\n }\n },\n $i = function (t) {\n const e = t.clipboardData;\n if (e) {\n if (e.types.includes(\"text/html\")) {\n for (const t of e.types) {\n const i = /^CorePasteboardFlavorType/.test(t),\n n = /^dyn\\./.test(t) && e.getData(t);\n if (i || n) return !0;\n }\n return !1;\n }\n {\n const t = e.types.includes(\"com.apple.webarchive\"),\n i = e.types.includes(\"com.apple.flat-rtfd\");\n return t || i;\n }\n }\n };\nclass Xi extends U {\n constructor(t) {\n super(...arguments), this.inputController = t, this.responder = this.inputController.responder, this.delegate = this.inputController.delegate, this.inputSummary = this.inputController.inputSummary, this.data = {};\n }\n start(t) {\n if (this.data.start = t, this.isSignificant()) {\n var e, i;\n if (\"keypress\" === this.inputSummary.eventName && this.inputSummary.textAdded) null === (i = this.responder) || void 0 === i || i.deleteInDirection(\"left\");\n this.selectionIsExpanded() || (this.insertPlaceholder(), this.requestRender()), this.range = null === (e = this.responder) || void 0 === e ? void 0 : e.getSelectedRange();\n }\n }\n update(t) {\n if (this.data.update = t, this.isSignificant()) {\n const t = this.selectPlaceholder();\n t && (this.forgetPlaceholder(), this.range = t);\n }\n }\n end(t) {\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) || void 0 === e || e.inputControllerWillPerformTyping(), null === (i = this.responder) || void 0 === i || i.setSelectedRange(this.range), null === (n = this.responder) || void 0 === n || n.insertString(this.data.end), null === (r = this.responder) || void 0 === r ? void 0 : r.setSelectedRange(this.range[0] + this.data.end.length)) : null != this.data.start || null != this.data.update ? (this.requestReparse(), this.inputController.reset()) : void 0) : this.inputController.reset();\n var e, i, n, r;\n }\n getEndData() {\n return this.data.end;\n }\n isEnded() {\n return null != this.getEndData();\n }\n isSignificant() {\n return !Vi.composesExistingText || this.inputSummary.didInput;\n }\n canApplyToDocument() {\n var t, e;\n return 0 === (null === (t = this.data.start) || void 0 === t ? void 0 : t.length) && (null === (e = this.data.end) || void 0 === e ? void 0 : e.length) > 0 && this.range;\n }\n}\nXi.proxyMethod(\"inputController.setInputSummary\"), Xi.proxyMethod(\"inputController.requestRender\"), Xi.proxyMethod(\"inputController.requestReparse\"), Xi.proxyMethod(\"responder?.selectionIsExpanded\"), Xi.proxyMethod(\"responder?.insertPlaceholder\"), Xi.proxyMethod(\"responder?.selectPlaceholder\"), Xi.proxyMethod(\"responder?.forgetPlaceholder\");\nclass Yi extends Ui {\n constructor() {\n super(...arguments), this.render = this.render.bind(this);\n }\n elementDidMutate() {\n return this.scheduledRender ? this.composing ? null === (t = this.delegate) || void 0 === t || null === (e = t.inputControllerDidAllowUnhandledInput) || void 0 === e ? void 0 : e.call(t) : void 0 : this.reparse();\n var t, e;\n }\n scheduleRender() {\n return this.scheduledRender ? this.scheduledRender : this.scheduledRender = requestAnimationFrame(this.render);\n }\n render() {\n var t, e;\n (cancelAnimationFrame(this.scheduledRender), this.scheduledRender = null, this.composing) || null === (e = this.delegate) || void 0 === e || e.render();\n null === (t = this.afterRender) || void 0 === t || t.call(this), this.afterRender = null;\n }\n reparse() {\n var t;\n return null === (t = this.delegate) || void 0 === t ? void 0 : t.reparse();\n }\n insertString() {\n var t;\n let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : \"\",\n i = arguments.length > 1 ? arguments[1] : void 0;\n return null === (t = this.delegate) || void 0 === t || t.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var t;\n return null === (t = this.responder) || void 0 === t ? void 0 : t.insertString(e, i);\n });\n }\n toggleAttributeIfSupported(t) {\n var e;\n if (ct().includes(t)) return null === (e = this.delegate) || void 0 === e || e.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null === (e = this.responder) || void 0 === e ? void 0 : e.toggleCurrentAttribute(t);\n });\n }\n activateAttributeIfSupported(t, e) {\n var i;\n if (ct().includes(t)) return null === (i = this.delegate) || void 0 === i || i.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var i;\n return null === (i = this.responder) || void 0 === i ? void 0 : i.setCurrentAttribute(t, e);\n });\n }\n deleteInDirection(t) {\n let _ref21 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {\n recordUndoEntry: !0\n },\n e = _ref21.recordUndoEntry;\n var i;\n e && (null === (i = this.delegate) || void 0 === i || i.inputControllerWillPerformTyping());\n const n = () => {\n var e;\n return null === (e = this.responder) || void 0 === e ? void 0 : e.deleteInDirection(t);\n },\n r = this.getTargetDOMRange({\n minLength: 2\n });\n return r ? this.withTargetDOMRange(r, n) : n();\n }\n withTargetDOMRange(t, e) {\n var i;\n return \"function\" == typeof t && (e = t, t = this.getTargetDOMRange()), t ? null === (i = this.responder) || void 0 === i ? void 0 : i.withTargetDOMRange(t, e.bind(this)) : (Ft.reset(), e.call(this));\n }\n getTargetDOMRange() {\n var t, e;\n let _ref22 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {\n minLength: 0\n },\n i = _ref22.minLength;\n const n = null === (t = (e = this.event).getTargetRanges) || void 0 === t ? void 0 : t.call(e);\n if (n && n.length) {\n const t = Qi(n[0]);\n if (0 === i || t.toString().length >= i) return t;\n }\n }\n withEvent(t, e) {\n let i;\n this.event = t;\n try {\n i = e.call(this);\n } finally {\n this.event = null;\n }\n return i;\n }\n}\nbe(Yi, \"events\", {\n keydown(t) {\n if (xt(t)) {\n var e;\n const i = nn(t);\n null !== (e = this.delegate) && void 0 !== e && e.inputControllerDidReceiveKeyboardCommand(i) && t.preventDefault();\n } else {\n let e = t.key;\n t.altKey && (e += \"+Alt\"), t.shiftKey && (e += \"+Shift\");\n const i = this.constructor.keys[e];\n if (i) return this.withEvent(t, i);\n }\n },\n paste(t) {\n var e;\n let i;\n const n = null === (e = t.clipboardData) || void 0 === e ? void 0 : e.getData(\"URL\");\n return tn(t) ? (t.preventDefault(), this.attachFiles(t.clipboardData.files)) : en(t) ? (t.preventDefault(), i = {\n type: \"text/plain\",\n string: t.clipboardData.getData(\"text/plain\")\n }, null === (r = this.delegate) || void 0 === r || r.inputControllerWillPaste(i), null === (o = this.responder) || void 0 === o || o.insertString(i.string), this.render(), null === (s = this.delegate) || void 0 === s ? void 0 : s.inputControllerDidPaste(i)) : n ? (t.preventDefault(), i = {\n type: \"text/html\",\n html: this.createLinkHTML(n)\n }, null === (a = this.delegate) || void 0 === a || a.inputControllerWillPaste(i), null === (l = this.responder) || void 0 === l || l.insertHTML(i.html), this.render(), null === (c = this.delegate) || void 0 === c ? void 0 : c.inputControllerDidPaste(i)) : void 0;\n var r, o, s, a, l, c;\n },\n beforeinput(t) {\n const e = this.constructor.inputTypes[t.inputType];\n e && (this.withEvent(t, e), this.scheduleRender());\n },\n input(t) {\n Ft.reset();\n },\n dragstart(t) {\n var e, i;\n null !== (e = this.responder) && void 0 !== e && e.selectionContainsAttachments() && (t.dataTransfer.setData(\"application/x-trix-dragging\", !0), this.dragging = {\n range: null === (i = this.responder) || void 0 === i ? void 0 : i.getSelectedRange(),\n point: rn(t)\n });\n },\n dragenter(t) {\n Zi(t) && t.preventDefault();\n },\n dragover(t) {\n if (this.dragging) {\n t.preventDefault();\n const i = rn(t);\n var e;\n if (!Rt(i, this.dragging.point)) return this.dragging.point = i, null === (e = this.responder) || void 0 === e ? void 0 : e.setLocationRangeFromPointRange(i);\n } else Zi(t) && t.preventDefault();\n },\n drop(t) {\n var e, i;\n if (this.dragging) return t.preventDefault(), null === (e = this.delegate) || void 0 === e || e.inputControllerWillMoveText(), null === (i = this.responder) || void 0 === i || i.moveTextFromRange(this.dragging.range), this.dragging = null, this.scheduleRender();\n if (Zi(t)) {\n var n;\n t.preventDefault();\n const e = rn(t);\n return null === (n = this.responder) || void 0 === n || n.setLocationRangeFromPointRange(e), this.attachFiles(t.dataTransfer.files);\n }\n },\n dragend() {\n var t;\n this.dragging && (null === (t = this.responder) || void 0 === t || t.setSelectedRange(this.dragging.range), this.dragging = null);\n },\n compositionend(t) {\n this.composing && (this.composing = !1, o.recentAndroid || this.scheduleRender());\n }\n}), be(Yi, \"keys\", {\n ArrowLeft() {\n var t, e;\n if (null !== (t = this.responder) && void 0 !== t && t.shouldManageMovingCursorInDirection(\"backward\")) return this.event.preventDefault(), null === (e = this.responder) || void 0 === e ? void 0 : e.moveCursorInDirection(\"backward\");\n },\n ArrowRight() {\n var t, e;\n if (null !== (t = this.responder) && void 0 !== t && t.shouldManageMovingCursorInDirection(\"forward\")) return this.event.preventDefault(), null === (e = this.responder) || void 0 === e ? void 0 : e.moveCursorInDirection(\"forward\");\n },\n Backspace() {\n var t, e, i;\n if (null !== (t = this.responder) && void 0 !== t && t.shouldManageDeletingInDirection(\"backward\")) return this.event.preventDefault(), null === (e = this.delegate) || void 0 === e || e.inputControllerWillPerformTyping(), null === (i = this.responder) || void 0 === i || i.deleteInDirection(\"backward\"), this.render();\n },\n Tab() {\n var t, e;\n if (null !== (t = this.responder) && void 0 !== t && t.canIncreaseNestingLevel()) return this.event.preventDefault(), null === (e = this.responder) || void 0 === e || e.increaseNestingLevel(), this.render();\n },\n \"Tab+Shift\"() {\n var t, e;\n if (null !== (t = this.responder) && void 0 !== t && t.canDecreaseNestingLevel()) return this.event.preventDefault(), null === (e = this.responder) || void 0 === e || e.decreaseNestingLevel(), this.render();\n }\n}), be(Yi, \"inputTypes\", {\n deleteByComposition() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteByCut() {\n return this.deleteInDirection(\"backward\");\n },\n deleteByDrag() {\n return this.event.preventDefault(), this.withTargetDOMRange(function () {\n var t;\n this.deleteByDragRange = null === (t = this.responder) || void 0 === t ? void 0 : t.getSelectedRange();\n });\n },\n deleteCompositionText() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteContent() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteEntireSoftLine() {\n return this.deleteInDirection(\"forward\");\n },\n deleteHardLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteHardLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteSoftLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteSoftLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteWordBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteWordForward() {\n return this.deleteInDirection(\"forward\");\n },\n formatBackColor() {\n return this.activateAttributeIfSupported(\"backgroundColor\", this.event.data);\n },\n formatBold() {\n return this.toggleAttributeIfSupported(\"bold\");\n },\n formatFontColor() {\n return this.activateAttributeIfSupported(\"color\", this.event.data);\n },\n formatFontName() {\n return this.activateAttributeIfSupported(\"font\", this.event.data);\n },\n formatIndent() {\n var t;\n if (null !== (t = this.responder) && void 0 !== t && t.canIncreaseNestingLevel()) return this.withTargetDOMRange(function () {\n var t;\n return null === (t = this.responder) || void 0 === t ? void 0 : t.increaseNestingLevel();\n });\n },\n formatItalic() {\n return this.toggleAttributeIfSupported(\"italic\");\n },\n formatJustifyCenter() {\n return this.toggleAttributeIfSupported(\"justifyCenter\");\n },\n formatJustifyFull() {\n return this.toggleAttributeIfSupported(\"justifyFull\");\n },\n formatJustifyLeft() {\n return this.toggleAttributeIfSupported(\"justifyLeft\");\n },\n formatJustifyRight() {\n return this.toggleAttributeIfSupported(\"justifyRight\");\n },\n formatOutdent() {\n var t;\n if (null !== (t = this.responder) && void 0 !== t && t.canDecreaseNestingLevel()) return this.withTargetDOMRange(function () {\n var t;\n return null === (t = this.responder) || void 0 === t ? void 0 : t.decreaseNestingLevel();\n });\n },\n formatRemove() {\n this.withTargetDOMRange(function () {\n for (const i in null === (t = this.responder) || void 0 === t ? void 0 : t.getCurrentAttributes()) {\n var t, e;\n null === (e = this.responder) || void 0 === e || e.removeCurrentAttribute(i);\n }\n });\n },\n formatSetBlockTextDirection() {\n return this.activateAttributeIfSupported(\"blockDir\", this.event.data);\n },\n formatSetInlineTextDirection() {\n return this.activateAttributeIfSupported(\"textDir\", this.event.data);\n },\n formatStrikeThrough() {\n return this.toggleAttributeIfSupported(\"strike\");\n },\n formatSubscript() {\n return this.toggleAttributeIfSupported(\"sub\");\n },\n formatSuperscript() {\n return this.toggleAttributeIfSupported(\"sup\");\n },\n formatUnderline() {\n return this.toggleAttributeIfSupported(\"underline\");\n },\n historyRedo() {\n var t;\n return null === (t = this.delegate) || void 0 === t ? void 0 : t.inputControllerWillPerformRedo();\n },\n historyUndo() {\n var t;\n return null === (t = this.delegate) || void 0 === t ? void 0 : t.inputControllerWillPerformUndo();\n },\n insertCompositionText() {\n return this.composing = !0, this.insertString(this.event.data);\n },\n insertFromComposition() {\n return this.composing = !1, this.insertString(this.event.data);\n },\n insertFromDrop() {\n const t = this.deleteByDragRange;\n var e;\n if (t) return this.deleteByDragRange = null, null === (e = this.delegate) || void 0 === e || e.inputControllerWillMoveText(), this.withTargetDOMRange(function () {\n var e;\n return null === (e = this.responder) || void 0 === e ? void 0 : e.moveTextFromRange(t);\n });\n },\n insertFromPaste() {\n var t;\n const e = this.event.dataTransfer,\n i = {\n dataTransfer: e\n },\n n = e.getData(\"URL\"),\n r = e.getData(\"text/html\");\n if (n) {\n var o;\n let t;\n this.event.preventDefault(), i.type = \"text/html\";\n const r = e.getData(\"public.url-name\");\n t = r ? Wt(r).trim() : n, i.html = this.createLinkHTML(n, t), null === (o = this.delegate) || void 0 === o || o.inputControllerWillPaste(i), this.withTargetDOMRange(function () {\n var t;\n return null === (t = this.responder) || void 0 === t ? void 0 : t.insertHTML(i.html);\n }), this.afterRender = () => {\n var t;\n return null === (t = this.delegate) || void 0 === t ? void 0 : t.inputControllerDidPaste(i);\n };\n } else if (At(e)) {\n var s;\n i.type = \"text/plain\", i.string = e.getData(\"text/plain\"), null === (s = this.delegate) || void 0 === s || s.inputControllerWillPaste(i), this.withTargetDOMRange(function () {\n var t;\n return null === (t = this.responder) || void 0 === t ? void 0 : t.insertString(i.string);\n }), this.afterRender = () => {\n var t;\n return null === (t = this.delegate) || void 0 === t ? void 0 : t.inputControllerDidPaste(i);\n };\n } else if (r) {\n var a;\n this.event.preventDefault(), i.type = \"text/html\", i.html = r, null === (a = this.delegate) || void 0 === a || a.inputControllerWillPaste(i), this.withTargetDOMRange(function () {\n var t;\n return null === (t = this.responder) || void 0 === t ? void 0 : t.insertHTML(i.html);\n }), this.afterRender = () => {\n var t;\n return null === (t = this.delegate) || void 0 === t ? void 0 : t.inputControllerDidPaste(i);\n };\n } else if (null !== (t = e.files) && void 0 !== t && t.length) {\n var l;\n i.type = \"File\", i.file = e.files[0], null === (l = this.delegate) || void 0 === l || l.inputControllerWillPaste(i), this.withTargetDOMRange(function () {\n var t;\n return null === (t = this.responder) || void 0 === t ? void 0 : t.insertFile(i.file);\n }), this.afterRender = () => {\n var t;\n return null === (t = this.delegate) || void 0 === t ? void 0 : t.inputControllerDidPaste(i);\n };\n }\n },\n insertFromYank() {\n return this.insertString(this.event.data);\n },\n insertLineBreak() {\n return this.insertString(\"\\n\");\n },\n insertLink() {\n return this.activateAttributeIfSupported(\"href\", this.event.data);\n },\n insertOrderedList() {\n return this.toggleAttributeIfSupported(\"number\");\n },\n insertParagraph() {\n var t;\n return null === (t = this.delegate) || void 0 === t || t.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var t;\n return null === (t = this.responder) || void 0 === t ? void 0 : t.insertLineBreak();\n });\n },\n insertReplacementText() {\n return this.insertString(this.event.dataTransfer.getData(\"text/plain\"), {\n updatePosition: !1\n });\n },\n insertText() {\n var t;\n return this.insertString(this.event.data || (null === (t = this.event.dataTransfer) || void 0 === t ? void 0 : t.getData(\"text/plain\")));\n },\n insertTranspose() {\n return this.insertString(this.event.data);\n },\n insertUnorderedList() {\n return this.toggleAttributeIfSupported(\"bullet\");\n }\n});\nconst Qi = function (t) {\n const e = document.createRange();\n return e.setStart(t.startContainer, t.startOffset), e.setEnd(t.endContainer, t.endOffset), e;\n },\n Zi = t => {\n var e;\n return Array.from((null === (e = t.dataTransfer) || void 0 === e ? void 0 : e.types) || []).includes(\"Files\");\n },\n tn = function (t) {\n const e = t.clipboardData;\n if (e) return e.types.includes(\"Files\") && 1 === e.types.length && e.files.length >= 1;\n },\n en = function (t) {\n const e = t.clipboardData;\n if (e) return e.types.includes(\"text/plain\") && 1 === e.types.length;\n },\n nn = function (t) {\n const e = [];\n return t.altKey && e.push(\"alt\"), t.shiftKey && e.push(\"shift\"), e.push(t.key), e;\n },\n rn = t => ({\n x: t.clientX,\n y: t.clientY\n }),\n on = \"\".concat(\"[data-trix-attribute]\", \", \").concat(\"[data-trix-action]\"),\n sn = \"\".concat(\"[data-trix-dialog]\", \"[data-trix-active]\"),\n an = \"\".concat(\"[data-trix-dialog]\", \" [data-trix-method]\"),\n ln = \"\".concat(\"[data-trix-dialog]\", \" [data-trix-input]\"),\n cn = (t, e) => (e || (e = un(t)), t.querySelector(\"[data-trix-input][name='\".concat(e, \"']\"))),\n hn = t => t.getAttribute(\"data-trix-action\"),\n un = t => t.getAttribute(\"data-trix-attribute\") || t.getAttribute(\"data-trix-dialog-attribute\");\nclass dn extends U {\n constructor(t) {\n super(t), this.didClickActionButton = this.didClickActionButton.bind(this), this.didClickAttributeButton = this.didClickAttributeButton.bind(this), this.didClickDialogButton = this.didClickDialogButton.bind(this), this.didKeyDownDialogInput = this.didKeyDownDialogInput.bind(this), this.element = t, this.attributes = {}, this.actions = {}, this.resetDialogInputs(), d(\"mousedown\", {\n onElement: this.element,\n matchingSelector: \"[data-trix-action]\",\n withCallback: this.didClickActionButton\n }), d(\"mousedown\", {\n onElement: this.element,\n matchingSelector: \"[data-trix-attribute]\",\n withCallback: this.didClickAttributeButton\n }), d(\"click\", {\n onElement: this.element,\n matchingSelector: on,\n preventDefault: !0\n }), d(\"click\", {\n onElement: this.element,\n matchingSelector: an,\n withCallback: this.didClickDialogButton\n }), d(\"keydown\", {\n onElement: this.element,\n matchingSelector: ln,\n withCallback: this.didKeyDownDialogInput\n });\n }\n didClickActionButton(t, e) {\n var i;\n null === (i = this.delegate) || void 0 === i || i.toolbarDidClickButton(), t.preventDefault();\n const n = hn(e);\n return this.getDialog(n) ? this.toggleDialog(n) : null === (r = this.delegate) || void 0 === r ? void 0 : r.toolbarDidInvokeAction(n);\n var r;\n }\n didClickAttributeButton(t, e) {\n var i;\n null === (i = this.delegate) || void 0 === i || i.toolbarDidClickButton(), t.preventDefault();\n const n = un(e);\n var r;\n this.getDialog(n) ? this.toggleDialog(n) : null === (r = this.delegate) || void 0 === r || r.toolbarDidToggleAttribute(n);\n return this.refreshAttributeButtons();\n }\n didClickDialogButton(t, e) {\n const i = p(e, {\n matchingSelector: \"[data-trix-dialog]\"\n });\n return this[e.getAttribute(\"data-trix-method\")].call(this, i);\n }\n didKeyDownDialogInput(t, e) {\n if (13 === t.keyCode) {\n t.preventDefault();\n const i = e.getAttribute(\"name\"),\n n = this.getDialog(i);\n this.setAttribute(n);\n }\n if (27 === t.keyCode) return t.preventDefault(), this.hideDialog();\n }\n updateActions(t) {\n return this.actions = t, this.refreshActionButtons();\n }\n refreshActionButtons() {\n return this.eachActionButton((t, e) => {\n t.disabled = !1 === this.actions[e];\n });\n }\n eachActionButton(t) {\n return Array.from(this.element.querySelectorAll(\"[data-trix-action]\")).map(e => t(e, hn(e)));\n }\n updateAttributes(t) {\n return this.attributes = t, this.refreshAttributeButtons();\n }\n refreshAttributeButtons() {\n return this.eachAttributeButton((t, e) => (t.disabled = !1 === this.attributes[e], this.attributes[e] || this.dialogIsVisible(e) ? (t.setAttribute(\"data-trix-active\", \"\"), t.classList.add(\"trix-active\")) : (t.removeAttribute(\"data-trix-active\"), t.classList.remove(\"trix-active\"))));\n }\n eachAttributeButton(t) {\n return Array.from(this.element.querySelectorAll(\"[data-trix-attribute]\")).map(e => t(e, un(e)));\n }\n applyKeyboardCommand(t) {\n const e = JSON.stringify(t.sort());\n for (const t of Array.from(this.element.querySelectorAll(\"[data-trix-key]\"))) {\n const i = t.getAttribute(\"data-trix-key\").split(\"+\");\n if (JSON.stringify(i.sort()) === e) return g(\"mousedown\", {\n onElement: t\n }), !0;\n }\n return !1;\n }\n dialogIsVisible(t) {\n const e = this.getDialog(t);\n if (e) return e.hasAttribute(\"data-trix-active\");\n }\n toggleDialog(t) {\n return this.dialogIsVisible(t) ? this.hideDialog() : this.showDialog(t);\n }\n showDialog(t) {\n var e, i;\n this.hideDialog(), null === (e = this.delegate) || void 0 === e || e.toolbarWillShowDialog();\n const n = this.getDialog(t);\n n.setAttribute(\"data-trix-active\", \"\"), n.classList.add(\"trix-active\"), Array.from(n.querySelectorAll(\"input[disabled]\")).forEach(t => {\n t.removeAttribute(\"disabled\");\n });\n const r = un(n);\n if (r) {\n const e = cn(n, t);\n e && (e.value = this.attributes[r] || \"\", e.select());\n }\n return null === (i = this.delegate) || void 0 === i ? void 0 : i.toolbarDidShowDialog(t);\n }\n setAttribute(t) {\n const e = un(t),\n i = cn(t, e);\n return i.willValidate && !i.checkValidity() ? (i.setAttribute(\"data-trix-validate\", \"\"), i.classList.add(\"trix-validate\"), i.focus()) : (null === (n = this.delegate) || void 0 === n || n.toolbarDidUpdateAttribute(e, i.value), this.hideDialog());\n var n;\n }\n removeAttribute(t) {\n var e;\n const i = un(t);\n return null === (e = this.delegate) || void 0 === e || e.toolbarDidRemoveAttribute(i), this.hideDialog();\n }\n hideDialog() {\n const t = this.element.querySelector(sn);\n var e;\n if (t) return t.removeAttribute(\"data-trix-active\"), t.classList.remove(\"trix-active\"), this.resetDialogInputs(), null === (e = this.delegate) || void 0 === e ? void 0 : e.toolbarDidHideDialog((t => t.getAttribute(\"data-trix-dialog\"))(t));\n }\n resetDialogInputs() {\n Array.from(this.element.querySelectorAll(ln)).forEach(t => {\n t.setAttribute(\"disabled\", \"disabled\"), t.removeAttribute(\"data-trix-validate\"), t.classList.remove(\"trix-validate\");\n });\n }\n getDialog(t) {\n return this.element.querySelector(\"[data-trix-dialog=\".concat(t, \"]\"));\n }\n}\nclass gn extends Fi {\n constructor(t) {\n let e = t.editorElement,\n i = t.document,\n n = t.html;\n super(...arguments), this.editorElement = e, this.selectionManager = new Ci(this.editorElement), this.selectionManager.delegate = this, this.composition = new ci(), this.composition.delegate = this, this.attachmentManager = new ai(this.composition.getAttachments()), this.attachmentManager.delegate = this, this.inputController = 2 === P.getLevel() ? new Yi(this.editorElement) : new Hi(this.editorElement), this.inputController.delegate = this, this.inputController.responder = this.composition, this.compositionController = new Ti(this.editorElement, this.composition), this.compositionController.delegate = this, this.toolbarController = new dn(this.editorElement.toolbarElement), this.toolbarController.delegate = this, this.editor = new pi(this.composition, this.selectionManager, this.editorElement), i ? this.editor.loadDocument(i) : this.editor.loadHTML(n);\n }\n registerSelectionManager() {\n return Ft.registerSelectionManager(this.selectionManager);\n }\n unregisterSelectionManager() {\n return Ft.unregisterSelectionManager(this.selectionManager);\n }\n render() {\n return this.compositionController.render();\n }\n reparse() {\n return this.composition.replaceHTML(this.editorElement.innerHTML);\n }\n compositionDidChangeDocument(t) {\n if (this.notifyEditorElement(\"document-change\"), !this.handlingInput) return this.render();\n }\n compositionDidChangeCurrentAttributes(t) {\n return this.currentAttributes = t, this.toolbarController.updateAttributes(this.currentAttributes), this.updateCurrentActions(), this.notifyEditorElement(\"attributes-change\", {\n attributes: this.currentAttributes\n });\n }\n compositionDidPerformInsertionAtRange(t) {\n this.pasting && (this.pastedRange = t);\n }\n compositionShouldAcceptFile(t) {\n return this.notifyEditorElement(\"file-accept\", {\n file: t\n });\n }\n compositionDidAddAttachment(t) {\n const e = this.attachmentManager.manageAttachment(t);\n return this.notifyEditorElement(\"attachment-add\", {\n attachment: e\n });\n }\n compositionDidEditAttachment(t) {\n this.compositionController.rerenderViewForObject(t);\n const e = this.attachmentManager.manageAttachment(t);\n return this.notifyEditorElement(\"attachment-edit\", {\n attachment: e\n }), this.notifyEditorElement(\"change\");\n }\n compositionDidChangeAttachmentPreviewURL(t) {\n return this.compositionController.invalidateViewForObject(t), this.notifyEditorElement(\"change\");\n }\n compositionDidRemoveAttachment(t) {\n const e = this.attachmentManager.unmanageAttachment(t);\n return this.notifyEditorElement(\"attachment-remove\", {\n attachment: e\n });\n }\n compositionDidStartEditingAttachment(t, e) {\n return this.attachmentLocationRange = this.composition.document.getLocationRangeOfAttachment(t), this.compositionController.installAttachmentEditorForAttachment(t, e), this.selectionManager.setLocationRange(this.attachmentLocationRange);\n }\n compositionDidStopEditingAttachment(t) {\n this.compositionController.uninstallAttachmentEditor(), this.attachmentLocationRange = null;\n }\n compositionDidRequestChangingSelectionToLocationRange(t) {\n if (!this.loadingSnapshot || this.isFocused()) return this.requestedLocationRange = t, this.compositionRevisionWhenLocationRangeRequested = this.composition.revision, this.handlingInput ? void 0 : this.render();\n }\n compositionWillLoadSnapshot() {\n this.loadingSnapshot = !0;\n }\n compositionDidLoadSnapshot() {\n this.compositionController.refreshViewCache(), this.render(), this.loadingSnapshot = !1;\n }\n getSelectionManager() {\n return this.selectionManager;\n }\n attachmentManagerDidRequestRemovalOfAttachment(t) {\n return this.removeAttachment(t);\n }\n compositionControllerWillSyncDocumentView() {\n return this.inputController.editorWillSyncDocumentView(), this.selectionManager.lock(), this.selectionManager.clearSelection();\n }\n compositionControllerDidSyncDocumentView() {\n return this.inputController.editorDidSyncDocumentView(), this.selectionManager.unlock(), this.updateCurrentActions(), this.notifyEditorElement(\"sync\");\n }\n compositionControllerDidRender() {\n 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 }\n compositionControllerDidFocus() {\n return this.isFocusedInvisibly() && this.setLocationRange({\n index: 0,\n offset: 0\n }), this.toolbarController.hideDialog(), this.notifyEditorElement(\"focus\");\n }\n compositionControllerDidBlur() {\n return this.notifyEditorElement(\"blur\");\n }\n compositionControllerDidSelectAttachment(t, e) {\n return this.toolbarController.hideDialog(), this.composition.editAttachment(t, e);\n }\n compositionControllerDidRequestDeselectingAttachment(t) {\n const e = this.attachmentLocationRange || this.composition.document.getLocationRangeOfAttachment(t);\n return this.selectionManager.setLocationRange(e[1]);\n }\n compositionControllerWillUpdateAttachment(t) {\n return this.editor.recordUndoEntry(\"Edit Attachment\", {\n context: t.id,\n consolidatable: !0\n });\n }\n compositionControllerDidRequestRemovalOfAttachment(t) {\n return this.removeAttachment(t);\n }\n inputControllerWillHandleInput() {\n this.handlingInput = !0, this.requestedRender = !1;\n }\n inputControllerDidRequestRender() {\n this.requestedRender = !0;\n }\n inputControllerDidHandleInput() {\n if (this.handlingInput = !1, this.requestedRender) return this.requestedRender = !1, this.render();\n }\n inputControllerDidAllowUnhandledInput() {\n return this.notifyEditorElement(\"change\");\n }\n inputControllerDidRequestReparse() {\n return this.reparse();\n }\n inputControllerWillPerformTyping() {\n return this.recordTypingUndoEntry();\n }\n inputControllerWillPerformFormatting(t) {\n return this.recordFormattingUndoEntry(t);\n }\n inputControllerWillCutText() {\n return this.editor.recordUndoEntry(\"Cut\");\n }\n inputControllerWillPaste(t) {\n return this.editor.recordUndoEntry(\"Paste\"), this.pasting = !0, this.notifyEditorElement(\"before-paste\", {\n paste: t\n });\n }\n inputControllerDidPaste(t) {\n return t.range = this.pastedRange, this.pastedRange = null, this.pasting = null, this.notifyEditorElement(\"paste\", {\n paste: t\n });\n }\n inputControllerWillMoveText() {\n return this.editor.recordUndoEntry(\"Move\");\n }\n inputControllerWillAttachFiles() {\n return this.editor.recordUndoEntry(\"Drop Files\");\n }\n inputControllerWillPerformUndo() {\n return this.editor.undo();\n }\n inputControllerWillPerformRedo() {\n return this.editor.redo();\n }\n inputControllerDidReceiveKeyboardCommand(t) {\n return this.toolbarController.applyKeyboardCommand(t);\n }\n inputControllerDidStartDrag() {\n this.locationRangeBeforeDrag = this.selectionManager.getLocationRange();\n }\n inputControllerDidReceiveDragOverPoint(t) {\n return this.selectionManager.setLocationRangeFromPointRange(t);\n }\n inputControllerDidCancelDrag() {\n this.selectionManager.setLocationRange(this.locationRangeBeforeDrag), this.locationRangeBeforeDrag = null;\n }\n locationRangeDidChange(t) {\n return this.composition.updateCurrentAttributes(), this.updateCurrentActions(), this.attachmentLocationRange && !kt(this.attachmentLocationRange, t) && this.composition.stopEditingAttachment(), this.notifyEditorElement(\"selection-change\");\n }\n toolbarDidClickButton() {\n if (!this.getLocationRange()) return this.setLocationRange({\n index: 0,\n offset: 0\n });\n }\n toolbarDidInvokeAction(t) {\n return this.invokeAction(t);\n }\n toolbarDidToggleAttribute(t) {\n if (this.recordFormattingUndoEntry(t), this.composition.toggleCurrentAttribute(t), this.render(), !this.selectionFrozen) return this.editorElement.focus();\n }\n toolbarDidUpdateAttribute(t, e) {\n if (this.recordFormattingUndoEntry(t), this.composition.setCurrentAttribute(t, e), this.render(), !this.selectionFrozen) return this.editorElement.focus();\n }\n toolbarDidRemoveAttribute(t) {\n if (this.recordFormattingUndoEntry(t), this.composition.removeCurrentAttribute(t), this.render(), !this.selectionFrozen) return this.editorElement.focus();\n }\n toolbarWillShowDialog(t) {\n return this.composition.expandSelectionForEditing(), this.freezeSelection();\n }\n toolbarDidShowDialog(t) {\n return this.notifyEditorElement(\"toolbar-dialog-show\", {\n dialogName: t\n });\n }\n toolbarDidHideDialog(t) {\n return this.thawSelection(), this.editorElement.focus(), this.notifyEditorElement(\"toolbar-dialog-hide\", {\n dialogName: t\n });\n }\n freezeSelection() {\n if (!this.selectionFrozen) return this.selectionManager.lock(), this.composition.freezeSelection(), this.selectionFrozen = !0, this.render();\n }\n thawSelection() {\n if (this.selectionFrozen) return this.composition.thawSelection(), this.selectionManager.unlock(), this.selectionFrozen = !1, this.render();\n }\n canInvokeAction(t) {\n return !!this.actionIsExternal(t) || !(null === (e = this.actions[t]) || void 0 === e || null === (i = e.test) || void 0 === i || !i.call(this));\n var e, i;\n }\n invokeAction(t) {\n return this.actionIsExternal(t) ? this.notifyEditorElement(\"action-invoke\", {\n actionName: t\n }) : null === (e = this.actions[t]) || void 0 === e || null === (i = e.perform) || void 0 === i ? void 0 : i.call(this);\n var e, i;\n }\n actionIsExternal(t) {\n return /^x-./.test(t);\n }\n getCurrentActions() {\n const t = {};\n for (const e in this.actions) t[e] = this.canInvokeAction(e);\n return t;\n }\n updateCurrentActions() {\n const t = this.getCurrentActions();\n if (!Rt(t, this.currentActions)) return this.currentActions = t, this.toolbarController.updateActions(this.currentActions), this.notifyEditorElement(\"actions-change\", {\n actions: this.currentActions\n });\n }\n runEditorFilters() {\n let t = this.composition.getSnapshot();\n if (Array.from(this.editor.filters).forEach(e => {\n const _t18 = t,\n i = _t18.document,\n n = _t18.selectedRange;\n t = e.call(this.editor, t) || {}, t.document || (t.document = i), t.selectedRange || (t.selectedRange = n);\n }), e = t, i = this.composition.getSnapshot(), !kt(e.selectedRange, i.selectedRange) || !e.document.isEqualTo(i.document)) return this.composition.loadSnapshot(t);\n var e, i;\n }\n updateInputElement() {\n const t = function (t, e) {\n const i = ri[e];\n if (i) return i(t);\n throw new Error(\"unknown content type: \".concat(e));\n }(this.compositionController.getSerializableElement(), \"text/html\");\n return this.editorElement.setInputElementValue(t);\n }\n notifyEditorElement(t, e) {\n switch (t) {\n case \"document-change\":\n this.documentChangedSinceLastRender = !0;\n break;\n case \"render\":\n this.documentChangedSinceLastRender && (this.documentChangedSinceLastRender = !1, this.notifyEditorElement(\"change\"));\n break;\n case \"change\":\n case \"attachment-add\":\n case \"attachment-edit\":\n case \"attachment-remove\":\n this.updateInputElement();\n }\n return this.editorElement.notify(t, e);\n }\n removeAttachment(t) {\n return this.editor.recordUndoEntry(\"Delete Attachment\"), this.composition.removeAttachment(t), this.render();\n }\n recordFormattingUndoEntry(t) {\n const e = ht(t),\n i = this.selectionManager.getLocationRange();\n if (e || !Et(i)) return this.editor.recordUndoEntry(\"Formatting\", {\n context: this.getUndoContext(),\n consolidatable: !0\n });\n }\n recordTypingUndoEntry() {\n return this.editor.recordUndoEntry(\"Typing\", {\n context: this.getUndoContext(this.currentAttributes),\n consolidatable: !0\n });\n }\n getUndoContext() {\n for (var t = arguments.length, e = new Array(t), i = 0; i < t; i++) e[i] = arguments[i];\n return [this.getLocationContext(), this.getTimeContext(), ...Array.from(e)];\n }\n getLocationContext() {\n const t = this.selectionManager.getLocationRange();\n return Et(t) ? t[0].index : t;\n }\n getTimeContext() {\n return j.interval > 0 ? Math.floor(new Date().getTime() / j.interval) : 0;\n }\n isFocused() {\n var t;\n return this.editorElement === (null === (t = this.editorElement.ownerDocument) || void 0 === t ? void 0 : t.activeElement);\n }\n isFocusedInvisibly() {\n return this.isFocused() && !this.getLocationRange();\n }\n get actions() {\n return this.constructor.actions;\n }\n}\nbe(gn, \"actions\", {\n undo: {\n test() {\n return this.editor.canUndo();\n },\n perform() {\n return this.editor.undo();\n }\n },\n redo: {\n test() {\n return this.editor.canRedo();\n },\n perform() {\n return this.editor.redo();\n }\n },\n link: {\n test() {\n return this.editor.canActivateAttribute(\"href\");\n }\n },\n increaseNestingLevel: {\n test() {\n return this.editor.canIncreaseNestingLevel();\n },\n perform() {\n return this.editor.increaseNestingLevel() && this.render();\n }\n },\n decreaseNestingLevel: {\n test() {\n return this.editor.canDecreaseNestingLevel();\n },\n perform() {\n return this.editor.decreaseNestingLevel() && this.render();\n }\n },\n attachFiles: {\n test: () => !0,\n perform() {\n return P.pickFiles(this.editor.insertFiles);\n }\n }\n}), gn.proxyMethod(\"getSelectionManager().setLocationRange\"), gn.proxyMethod(\"getSelectionManager().getLocationRange\");\nvar mn = Object.freeze({\n __proto__: null,\n AttachmentEditorController: wi,\n CompositionController: Ti,\n Controller: Fi,\n EditorController: gn,\n InputController: Ui,\n Level0InputController: Hi,\n Level2InputController: Yi,\n ToolbarController: dn\n }),\n pn = Object.freeze({\n __proto__: null,\n MutationObserver: Pi,\n SelectionChangeObserver: wt\n }),\n fn = Object.freeze({\n __proto__: null,\n FileVerificationOperation: Oi,\n ImagePreloadOperation: Ae\n });\nmt(\"trix-toolbar\", \"%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}\");\nclass bn extends HTMLElement {\n connectedCallback() {\n \"\" === this.innerHTML && (this.innerHTML = M.getDefaultHTML());\n }\n}\nlet vn = 0;\nconst An = function (t) {\n if (!t.hasAttribute(\"contenteditable\")) return t.setAttribute(\"contenteditable\", \"\"), function (t) {\n let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n return e.times = 1, d(t, e);\n }(\"focus\", {\n onElement: t,\n withCallback: () => xn(t)\n });\n },\n xn = function (t) {\n return yn(t), Cn(t);\n },\n yn = function (t) {\n var e, i;\n if (null !== (e = (i = document).queryCommandSupported) && void 0 !== e && e.call(i, \"enableObjectResizing\")) return document.execCommand(\"enableObjectResizing\", !1, !1), d(\"mscontrolselect\", {\n onElement: t,\n preventDefault: !0\n });\n },\n Cn = function (t) {\n var i, n;\n if (null !== (i = (n = document).queryCommandSupported) && void 0 !== i && i.call(n, \"DefaultParagraphSeparator\")) {\n const t = e.default.tagName;\n if ([\"div\", \"p\"].includes(t)) return document.execCommand(\"DefaultParagraphSeparator\", !1, t);\n }\n },\n Rn = o.forcesObjectResizing ? {\n display: \"inline\",\n width: \"auto\"\n } : {\n display: \"inline-block\",\n width: \"1px\"\n };\nmt(\"trix-editor\", \"%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 white-space: pre-line;\\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 \".concat(\"[data-trix-attachment]\", \" figcaption textarea {\\n resize: none;\\n}\\n\\n%t \").concat(\"[data-trix-attachment]\", \" figcaption textarea.trix-autoresize-clone {\\n position: absolute;\\n left: -9999px;\\n max-height: 0px;\\n}\\n\\n%t \").concat(\"[data-trix-attachment]\", \" 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: \").concat(Rn.display, \" !important;\\n width: \").concat(Rn.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}\"));\nclass Sn extends HTMLElement {\n get trixId() {\n return this.hasAttribute(\"trix-id\") ? this.getAttribute(\"trix-id\") : (this.setAttribute(\"trix-id\", ++vn), this.trixId);\n }\n get labels() {\n const t = [];\n this.id && this.ownerDocument && t.push(...Array.from(this.ownerDocument.querySelectorAll(\"label[for='\".concat(this.id, \"']\")) || []));\n const e = p(this, {\n matchingSelector: \"label\"\n });\n return e && [this, null].includes(e.control) && t.push(e), t;\n }\n get toolbarElement() {\n var t;\n if (this.hasAttribute(\"toolbar\")) return null === (t = this.ownerDocument) || void 0 === t ? void 0 : t.getElementById(this.getAttribute(\"toolbar\"));\n if (this.parentNode) {\n const t = \"trix-toolbar-\".concat(this.trixId);\n this.setAttribute(\"toolbar\", t);\n const e = C(\"trix-toolbar\", {\n id: t\n });\n return this.parentNode.insertBefore(e, this), e;\n }\n }\n get form() {\n var t;\n return null === (t = this.inputElement) || void 0 === t ? void 0 : t.form;\n }\n get inputElement() {\n var t;\n if (this.hasAttribute(\"input\")) return null === (t = this.ownerDocument) || void 0 === t ? void 0 : t.getElementById(this.getAttribute(\"input\"));\n if (this.parentNode) {\n const t = \"trix-input-\".concat(this.trixId);\n this.setAttribute(\"input\", t);\n const e = C(\"input\", {\n type: \"hidden\",\n id: t\n });\n return this.parentNode.insertBefore(e, this.nextElementSibling), e;\n }\n }\n get editor() {\n var t;\n return null === (t = this.editorController) || void 0 === t ? void 0 : t.editor;\n }\n get name() {\n var t;\n return null === (t = this.inputElement) || void 0 === t ? void 0 : t.name;\n }\n get value() {\n var t;\n return null === (t = this.inputElement) || void 0 === t ? void 0 : t.value;\n }\n set value(t) {\n var e;\n this.defaultValue = t, null === (e = this.editor) || void 0 === e || e.loadHTML(this.defaultValue);\n }\n notify(t, e) {\n if (this.editorController) return g(\"trix-\".concat(t), {\n onElement: this,\n attributes: e\n });\n }\n setInputElementValue(t) {\n this.inputElement && (this.inputElement.value = t);\n }\n connectedCallback() {\n this.hasAttribute(\"data-trix-internal\") || (An(this), function (t) {\n if (!t.hasAttribute(\"role\")) t.setAttribute(\"role\", \"textbox\");\n }(this), function (t) {\n if (t.hasAttribute(\"aria-label\") || t.hasAttribute(\"aria-labelledby\")) return;\n const e = function () {\n const e = Array.from(t.labels).map(e => {\n if (!e.contains(t)) return e.textContent;\n }).filter(t => t),\n i = e.join(\" \");\n return i ? t.setAttribute(\"aria-label\", i) : t.removeAttribute(\"aria-label\");\n };\n e(), d(\"focus\", {\n onElement: t,\n withCallback: e\n });\n }(this), this.editorController || (g(\"trix-before-initialize\", {\n onElement: this\n }), this.editorController = new gn({\n editorElement: this,\n html: this.defaultValue = this.value\n }), requestAnimationFrame(() => g(\"trix-initialize\", {\n onElement: this\n }))), this.editorController.registerSelectionManager(), this.registerResetListener(), this.registerClickListener(), function (t) {\n if (!document.querySelector(\":focus\") && t.hasAttribute(\"autofocus\") && document.querySelector(\"[autofocus]\") === t) t.focus();\n }(this));\n }\n disconnectedCallback() {\n var t;\n return null === (t = this.editorController) || void 0 === t || t.unregisterSelectionManager(), this.unregisterResetListener(), this.unregisterClickListener();\n }\n registerResetListener() {\n return this.resetListener = this.resetBubbled.bind(this), window.addEventListener(\"reset\", this.resetListener, !1);\n }\n unregisterResetListener() {\n return window.removeEventListener(\"reset\", this.resetListener, !1);\n }\n registerClickListener() {\n return this.clickListener = this.clickBubbled.bind(this), window.addEventListener(\"click\", this.clickListener, !1);\n }\n unregisterClickListener() {\n return window.removeEventListener(\"click\", this.clickListener, !1);\n }\n resetBubbled(t) {\n if (!t.defaultPrevented && t.target === this.form) return this.reset();\n }\n clickBubbled(t) {\n if (t.defaultPrevented) return;\n if (this.contains(t.target)) return;\n const e = p(t.target, {\n matchingSelector: \"label\"\n });\n return e && Array.from(this.labels).includes(e) ? this.focus() : void 0;\n }\n reset() {\n this.value = this.defaultValue;\n }\n}\nconst En = {\n VERSION: \"2.0.3\",\n config: W,\n core: oi,\n models: Ri,\n views: Si,\n controllers: mn,\n observers: pn,\n operations: fn,\n elements: Object.freeze({\n __proto__: null,\n TrixEditorElement: Sn,\n TrixToolbarElement: bn\n }),\n filters: Object.freeze({\n __proto__: null,\n Filter: di,\n attachmentGalleryFilter: gi\n })\n};\nObject.assign(En, Ri), window.Trix = En, setTimeout(function () {\n customElements.get(\"trix-toolbar\") || customElements.define(\"trix-toolbar\", bn), customElements.get(\"trix-editor\") || customElements.define(\"trix-editor\", Sn);\n}, 0);\nexport { En as default };","/* eslint no-console:0 */\n// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n//\n// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate\n// layout file, like app/views/layouts/application.html.erb\n\n\n// Uncomment to copy all static images under ../images to the output folder and reference\n// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)\n// or the `imagePath` JavaScript helper below.\n//\n// const images = require.context('../images', true)\n// const imagePath = (name) => images(name, true)\n\nrequire(\"controllers\")\nimport \"trix\"\nrequire(\"@rails/actiontext\")\nimport \"controllers\"\nimport Rails from \"@rails/ujs\"\n\nRails.start();\n"],"sourceRoot":""}