{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:////tmp/build/node_modules/@hotwired/stimulus/dist/stimulus.js","webpack:////tmp/build/node_modules/activestorage/app/assets/javascripts/activestorage.js","webpack:////tmp/build/app/javascript/controllers sync /_controller(/.js|/.js/.erb)$/","webpack:////tmp/build/app/javascript/controllers/campus_details_controller.js","webpack:////tmp/build/app/javascript/controllers/filter_program_controller.js","webpack:////tmp/build/app/javascript/controllers/proposals_controller.js","webpack:////tmp/build/node_modules/trix/dist/trix.esm.min.js","webpack:////tmp/build/node_modules/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:////tmp/build/node_modules/actiontext/app/javascript/actiontext/index.js","webpack:////tmp/build/node_modules/@wizardhealth/stimulus-multiselect/src/multiselect.js","webpack:////tmp/build/app/javascript/controllers/index.js","webpack:////tmp/build/node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.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","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_i","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","push","length","err","return","_iterableToArrayLimit","minLen","_arrayLikeToArray","toString","slice","constructor","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","EventListener","eventTarget","eventName","eventOptions","this","unorderedBindings","Set","connect","addEventListener","disconnect","removeEventListener","bindingConnected","binding","add","bindingDisconnected","delete","handleEvent","event","extendedEvent","stopImmediatePropagation","assign","immediatePropagationStopped","extendEvent","bindings","hasBindings","size","sort","left","right","leftIndex","index","rightIndex","Dispatcher","application","eventListenerMaps","Map","started","start","eventListeners","forEach","eventListener","stop","values","reduce","listeners","map","concat","fetchEventListenerForBinding","clearEventListeners","arguments","undefined","clearEventListenersForBinding","handleError","error","message","detail","removeMappedEventListenerFor","eventListenerMap","fetchEventListenerMapForEventTarget","cacheKey","fetchEventListener","createEventListener","set","parts","keys","join","defaultActionDescriptorFilters","_ref","stopPropagation","prevent","_ref2","preventDefault","self","_ref3","element","target","descriptorPattern","parseEventTarget","eventTargetName","window","document","camelize","replace","_","char","toUpperCase","namespaceCamelize","capitalize","charAt","dasherize","toLowerCase","Action","descriptor","schema","tagName","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","keyFilter","static","token","descriptorString","matches","trim","match","includes","split","options","parseActionDescriptorString","content","eventFilter","isFilterTarget","filteres","modifiers","_modifiers$map2","modifier","meta","ctrl","alt","shift","metaKey","ctrlKey","altKey","shiftKey","standardFilter","filter","keyMappings","params","pattern","RegExp","_ref4","attributes","typecast","a","button","form","details","input","e","getAttribute","select","textarea","Error","JSON","parse","o_O","Binding","context","action","willBeInvokedByEvent","applyEventModifiers","invokeWithEvent","method","controller","actionDescriptorFilters","passes","_ref5","entries","_ref6","currentTarget","actionEvent","logDebugActivity","KeyboardEvent","Element","contains","scope","containsElement","ElementObserver","delegate","mutationObserverInit","childList","subtree","elements","mutationObserver","MutationObserver","mutations","processMutations","observe","refresh","pause","callback","takeRecords","matchElementsInTree","has","removeElement","addElement","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","selector","hasAttribute","querySelectorAll","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","fetch","del","prune","Multimap","valuesByKey","hasKey","hasValue","some","getValuesForKey","getKeysForValue","_ref7","_ref8","_ref9","_ref10","SelectorObserver","matchesByElement","selectorMatchElement","selectorMatched","selectorUnmatched","_attributeName","matchedBefore","StringMapObserver","stringMap","attributeOldValue","knownAttributeNames","refreshAttribute","oldValue","getStringMapKeyForAttribute","stringMapKeyAdded","stringMapValueChanged","stringMapKeyRemoved","currentAttributeNames","recordedAttributeNames","attribute","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","_this$refreshTokensFo2","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","Math","max","zip","findIndex","_ref11","_ref12","previousToken","currentToken","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","WeakMap","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","connectAction","disconnectAction","clear","forToken","ValueObserver","receiver","stringMapObserver","valueDescriptorMap","invokeChangedCallbacksForDefaultValues","invokeChangedCallback","writer","defaultValue","valueDescriptorNameMap","_ref13","valueDescriptors","data","rawValue","rawOldValue","changedMethodName","changedMethod","reader","descriptors","hasMethodName","TargetObserver","targetsByName","disconnectAllTargets","_ref14","connectTarget","_ref15","disconnectTarget","_a","targetConnected","targetDisconnected","readInheritableStaticArrayValues","propertyName","ancestors","getAncestorsForConstructor","definition","getOwnStaticArrayValues","readInheritableStaticObjectPairs","pairs","getOwnStaticObjectPairs","getPrototypeOf","reverse","OutletObserver","outletsByName","outletElementsByName","selectorObserverMap","outletDefinitions","outletName","body","observer","dependentContexts","disconnectAllOutlets","_selector","_ref16","outlet","getOutlet","connectOutlet","_ref17","getOutletFromMap","disconnectOutlet","_ref18","hasOutlet","controllerAttribute","outletConnected","outletDisconnected","outlets","getSelectorForOutletName","outletDependencies","dependencies","router","controllerConstructor","dependentControllerIdentifiers","identifiers","contexts","getControllerForElementAndIdentifier","find","Context","_this","functionName","bindingObserver","dispatcher","valueObserver","targetObserver","outletObserver","initialize","parentElement","invokeControllerMethod","_len","args","_key2","bless","properties","shadowConstructor","extend","shadowProperties","getOwnKeys","shadowingDescriptor","getOwnPropertyDescriptor","getShadowedDescriptor","getShadowProperties","defineProperties","shadow","blessings","blessedProperties","blessing","getBlessedProperties","getOwnPropertySymbols","getOwnPropertyNames","extendWithReflect","extended","Reflect","construct","setPrototypeOf","b","testReflectExtension","Module","blessDefinition","contextsByScope","connectedContexts","connectContextForScope","fetchContextForScope","disconnectContextForScope","ClassMap","getDataKey","getAll","getAttributeName","getAttributeNameForKey","DataMap","setAttribute","removeAttribute","Guide","logger","warnedKeysByObject","warn","warnedKeys","attributeValueContainsToken","TargetSet","targetName","_len2","targetNames","_key3","findTarget","findLegacyTarget","findAll","_len3","_key4","targets","findAllTargets","findAllLegacyTargets","getSelectorForTargetName","findElement","findAllElements","targetAttributeForScope","getLegacySelectorForTargetName","deprecate","targetDescriptor","targetAttribute","revisedAttributeName","guide","OutletSet","controllerElement","_len4","outletNames","_key5","findOutlet","_len5","_key6","findAllOutlets","outletAttributeForScope","queryElements","matchesElement","Scope","classes","closest","controllerSelector","documentScope","isDocumentScope","documentElement","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","createScopeForElementAndIdentifier","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","loadDefinition","unloadIdentifier","connectModule","afterLoad","disconnectModule","getContextForElementAndIdentifier","defaultSchema","enter","tab","esc","space","up","down","home","end","objectFromEntries","array","memo","_ref19","_ref20","k","v","Application","_this2","console","debug","logFormattedMessage","async","Promise","resolve","readyState","register","load","registerActionOption","head","_len6","rest","_key7","shouldLoad","unload","_len7","_key8","controllers","onerror","groupCollapsed","log","groupEnd","parseValueDefinitionPair","_ref21","_ref22","payload","typeFromObject","parseValueTypeConstant","typeObject","defaultValueType","parseValueTypeDefault","default","propertyPath","parseValueTypeObject","typeDefinition","typeFromDefaultValue","typeFromConstant","parseValueTypeDefinition","constant","defaultValuesByType","defaultValueForDefinition","hasCustomDefaultValue","readers","writers","valueDescriptorForTokenAndTypeDefinition","Boolean","Number","String","boolean","number","string","writeJSON","stringify","Controller","_identifier","_application","dispatch","_ref23","_ref23$target","_ref23$detail","_ref23$prefix","prefix","_ref23$bubbles","bubbles","_ref23$cancelable","cancelable","CustomEvent","dispatchEvent","classDefinition","targetDefinition","valueDefinitionPairs","propertyDescriptorMap","result","valueDefinitionPair","valueDescriptor","read","write","propertiesForValueDefinitionPair","outletDefinition","camelizedName","outletController","propertiesForOutletDefinition","createCommonjsModule","fn","sparkMd5","factory","hex_chr","md5cycle","x","md5blk","md5blks","charCodeAt","md5blk_array","md51","tail","tmp","lo","hi","state","substring","parseInt","md51_array","subarray","Uint8Array","rhex","j","hex","toUtf8","str","unescape","encodeURIComponent","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arrayBuffer2Utf8Str","fromCharCode","apply","concatenateArrayBuffers","first","second","byteLength","buffer","hexToBinaryString","bytes","substr","SparkMD5","reset","clamp","val","min","to","num","targetArray","sourceArray","begin","append","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","destroy","hashBinary","classCallCheck","instance","Constructor","createClass","props","configurable","writable","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","ceil","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","getMetaValue","findElements","root","toArray$1","querySelector","eventInit","disabled","createEvent","initEvent","BlobRecord","checksum","url","filename","content_type","byte_size","xhr","XMLHttpRequest","open","responseType","setRequestHeader","requestDidLoad","requestDidError","send","blob","status","response","direct_upload","directUploadData","toJSON","_xhr","BlobUpload","_blob$directUploadDat","headers","id","DirectUpload","notify","upload","messages","_key","DirectUploadController","directUpload","hiddenInput","createElement","insertAdjacentElement","parentNode","removeChild","dispatchError","signed_id","progress","loaded","total","defaultPrevented","alert","uploadRequestDidProgress","inputSelector","DirectUploadsController","inputs","files","createDirectUploadControllers","startNextController","processingAttribute","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","disable","enable","submitForm","focus","click","style","display","appendChild","autostart","ActiveStorage","setTimeout","webpackContext","req","webpackContextResolve","code","dataset","proposalId","localeValue","then","text","bodyTarget","innerHTML","locale","sendEmailTarget","hidden","selectedOptions","sendMail","Accept","programsTarget","programInputTarget","json","campuses","campusInputTarget","campus","_toArray","iter","_iterableToArray","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","link","numbers","outdent","redo","remove","strike","undo","unlink","urlPlaceholder","GB","KB","MB","PB","TB","precision","formatter","floor","pow","toFixed","h","u","onElement","matchingSelector","withCallback","inPhase","times","g","untilNode","f","activeElement","previousSibling","A","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","y","C","editable","contenteditable","className","classList","textContent","childNodes","R","S","E","D","firstChild","L","strict","w","COMMENT_NODE","T","I","trixCursorTarget","F","B","TEXT_NODE","P","level2Enabled","getLevel","pickFiles","multiple","fileInputId","getElementById","N","removeBlankTableCells","tableCellSeparator","tableRowSeparator","O","inheritable","parser","getComputedStyle","fontWeight","fontStyle","href","groupTagName","frozen","backgroundColor","M","getDefaultHTML","interval","W","freeze","__proto__","attachments","blockAttributes","browser","css","attachment","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","fileSize","keyNames","lang","textAttributes","toolbar","U","_q","q","toMethod","toProperty","optional","V","z","Function","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","FormData","ot","st","at","lt","ct","gt","ut","ht","dt","mt","pt","ft","insertBefore","bt","vt","At","getData","DOMParser","parseFromString","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","toArray","isEmpty","toObject","Gt","depth","asTree","canBeGrouped","canBeGroupedWith","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","reject","arg","_invoke","be","asyncIterator","throw","ve","types","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","copy","getAttributesHash","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","Ae","Image","onload","naturalWidth","naturalHeight","xe","attributesForFile","setFile","filesize","contentType","releaseFile","didChangeAttributes","setAttributes","preloadURL","previewablePattern","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","URL","createObjectURL","revokeObjectURL","catch","ye","ensureAttachmentExclusivelyHasAttribute","removeProhibitedAttributes","permittedAttributes","toConsole","registerType","Ce","consolidateWith","splitAtOffset","Re","indexOf","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","allowedAttributes","forbiddenProtocols","forbiddenElements","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","currentNode","elementIsRemovable","sanitizeElement","protocol","previousElementSibling","elementIsForbidden","elementIsntSerializable","implementation","createHTMLDocument","He","Je","Ke","referenceElement","html","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","added","removed","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","undoEntries","redoEntries","recordUndoEntry","consolidatable","ui","createEntry","description","pop","snapshot","canUndo","canRedo","di","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","gi","mi","pi","selectionManager","undoManager","filters","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","fi","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","xi","bi","findContainerAndOffsetFromLocation","_this$findNodeAndOffs2","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","vi","Ai","yi","createDOMRangeFromPoint","caretPositionFromPoint","_document$caretPositi","offsetNode","createRange","setStart","caretRangeFromPoint","createTextRange","moveToPoint","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","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","_this$getTextChangesF","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","Ni","_Ut2","_Ut4","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","setData","canAcceptDataTransfer","Files","getPastedHTMLUsingHiddenElement","pageXOffset","pageYOffset","opacity","keydown","didInput","keyName","inputControllerDidReceiveKeyboardCommand","keypress","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","control","Ki","which","charCode","inputController","isSignificant","canApplyToDocument","Yi","scheduledRender","composing","reparse","scheduleRender","cancelAnimationFrame","afterRender","toggleAttributeIfSupported","inputControllerWillPerformFormatting","activateAttributeIfSupported","getTargetDOMRange","minLength","getTargetRanges","Qi","withEvent","nn","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","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","directUploadUrl","directUploadDidComplete","directUploadWillStoreFileWithXHR","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate","onArrowDownKeydown","item","sibling","navigate","onArrowUpKeydown","onBackspaceKeydown","searchTarget","selectedValue","selected","uncheckItem","onEnterKeydown","focusedItem","onEscapeKeydown","search","toggleDropdown","hiddenTarget","insertAdjacentHTML","template","selectedValueChanged","delay","timeoutId","debounce","enhanceHiddenSelect","preloadUrlValue","searchRemoteValue","searchRemote","searchLocal","searchUrlValue","URLSearchParams","preselects","searchedItems","itemsValue","dropdownTarget","theRestOfTheItems","listTarget","selectedItems","searched","selectedSearched","addableUrlValue","noResultsTemplate","inputContainerTarget","blur","closeOnClickOutside","allItems","checkItem","searchUrlValueChanged","itemsValueChanged","hasListTarget","hasPreviewTarget","previewTarget","pills","paddingTop","option","Event","removeItem","itemToRemove","itemToUncheck","checked","itemToCheck","toggleItem","newSelectedArray","onKeyDown","handler","itemTargets","def","query","addable","ok","addedItem","addAddableItem","previouslySelected","scrollIntoView","behavior","focusSearch","addableEvent","inputTemplate","addablePlaceholder","noResultsMessage","disabledValue","itemsTemplate","itemTemplate","pillTemplate","checkBoxChange","searchUrl","preloadUrl","addableUrl","require","Multiselect","logicalName","identifierForContextKey","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext"],"mappings":"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","file":"js/application-cbcdfd9cd69da5c1c30a.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 = 6);\n","function _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/*\nStimulus 3.2.1\nCopyright © 2022 Basecamp, LLC\n */\nclass EventListener {\n constructor(eventTarget, eventName, eventOptions) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n connect() {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n }\n disconnect() {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n }\n bindingConnected(binding) {\n this.unorderedBindings.add(binding);\n }\n bindingDisconnected(binding) {\n this.unorderedBindings.delete(binding);\n }\n handleEvent(event) {\n const extendedEvent = extendEvent(event);\n for (const binding of this.bindings) {\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n }\n hasBindings() {\n return this.unorderedBindings.size > 0;\n }\n get bindings() {\n return Array.from(this.unorderedBindings).sort((left, right) => {\n const leftIndex = left.index,\n rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n }\n}\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n const stopImmediatePropagation = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation.call(this);\n }\n });\n }\n}\nclass Dispatcher {\n constructor(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(eventListener => eventListener.connect());\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(eventListener => eventListener.disconnect());\n }\n }\n get eventListeners() {\n return Array.from(this.eventListenerMaps.values()).reduce((listeners, map) => listeners.concat(Array.from(map.values())), []);\n }\n bindingConnected(binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n }\n bindingDisconnected(binding) {\n let clearEventListeners = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n if (clearEventListeners) this.clearEventListenersForBinding(binding);\n }\n handleError(error, message) {\n let detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.application.handleError(error, `Error ${message}`, detail);\n }\n clearEventListenersForBinding(binding) {\n const eventListener = this.fetchEventListenerForBinding(binding);\n if (!eventListener.hasBindings()) {\n eventListener.disconnect();\n this.removeMappedEventListenerFor(binding);\n }\n }\n removeMappedEventListenerFor(binding) {\n const eventTarget = binding.eventTarget,\n eventName = binding.eventName,\n eventOptions = binding.eventOptions;\n const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n const cacheKey = this.cacheKey(eventName, eventOptions);\n eventListenerMap.delete(cacheKey);\n if (eventListenerMap.size == 0) this.eventListenerMaps.delete(eventTarget);\n }\n fetchEventListenerForBinding(binding) {\n const eventTarget = binding.eventTarget,\n eventName = binding.eventName,\n eventOptions = binding.eventOptions;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n }\n fetchEventListener(eventTarget, eventName, eventOptions) {\n const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n const cacheKey = this.cacheKey(eventName, eventOptions);\n let 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 createEventListener(eventTarget, eventName, eventOptions) {\n const eventListener = new EventListener(eventTarget, eventName, eventOptions);\n if (this.started) {\n eventListener.connect();\n }\n return eventListener;\n }\n fetchEventListenerMapForEventTarget(eventTarget) {\n let eventListenerMap = this.eventListenerMaps.get(eventTarget);\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n return eventListenerMap;\n }\n cacheKey(eventName, eventOptions) {\n const parts = [eventName];\n Object.keys(eventOptions).sort().forEach(key => {\n parts.push(`${eventOptions[key] ? \"\" : \"!\"}${key}`);\n });\n return parts.join(\":\");\n }\n}\nconst defaultActionDescriptorFilters = {\n stop(_ref) {\n let event = _ref.event,\n value = _ref.value;\n if (value) event.stopPropagation();\n return true;\n },\n prevent(_ref2) {\n let event = _ref2.event,\n value = _ref2.value;\n if (value) event.preventDefault();\n return true;\n },\n self(_ref3) {\n let event = _ref3.event,\n value = _ref3.value,\n element = _ref3.element;\n if (value) {\n return element === event.target;\n } else {\n return true;\n }\n }\n};\nconst descriptorPattern = /^(?:(.+?)(?:\\.(.+?))?(?:@(window|document))?->)?(.+?)(?:#([^:]+?))(?::(.+))?$/;\nfunction parseActionDescriptorString(descriptorString) {\n const source = descriptorString.trim();\n const matches = source.match(descriptorPattern) || [];\n let eventName = matches[1];\n let keyFilter = matches[2];\n if (keyFilter && ![\"keydown\", \"keyup\", \"keypress\"].includes(eventName)) {\n eventName += `.${keyFilter}`;\n keyFilter = \"\";\n }\n return {\n eventTarget: parseEventTarget(matches[3]),\n eventName,\n eventOptions: matches[6] ? parseEventOptions(matches[6]) : {},\n identifier: matches[4],\n methodName: matches[5],\n keyFilter\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((options, token) => Object.assign(options, {\n [token.replace(/^!/, \"\")]: !/^!/.test(token)\n }), {});\n}\nfunction stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}\nfunction camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, (_, char) => char.toUpperCase());\n}\nfunction namespaceCamelize(value) {\n return camelize(value.replace(/--/g, \"-\").replace(/__/g, \"_\"));\n}\nfunction capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, (_, char) => `-${char.toLowerCase()}`);\n}\nfunction tokenize(value) {\n return value.match(/[^\\s]+/g) || [];\n}\nclass Action {\n constructor(element, index, descriptor, schema) {\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 this.keyFilter = descriptor.keyFilter || \"\";\n this.schema = schema;\n }\n static forToken(token, schema) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content), schema);\n }\n toString() {\n const eventFilter = this.keyFilter ? `.${this.keyFilter}` : \"\";\n const eventTarget = this.eventTargetName ? `@${this.eventTargetName}` : \"\";\n return `${this.eventName}${eventFilter}${eventTarget}->${this.identifier}#${this.methodName}`;\n }\n isFilterTarget(event) {\n if (!this.keyFilter) {\n return false;\n }\n const filteres = this.keyFilter.split(\"+\");\n const modifiers = [\"meta\", \"ctrl\", \"alt\", \"shift\"];\n const _modifiers$map = modifiers.map(modifier => filteres.includes(modifier)),\n _modifiers$map2 = _slicedToArray(_modifiers$map, 4),\n meta = _modifiers$map2[0],\n ctrl = _modifiers$map2[1],\n alt = _modifiers$map2[2],\n shift = _modifiers$map2[3];\n if (event.metaKey !== meta || event.ctrlKey !== ctrl || event.altKey !== alt || event.shiftKey !== shift) {\n return true;\n }\n const standardFilter = filteres.filter(key => !modifiers.includes(key))[0];\n if (!standardFilter) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(this.keyMappings, standardFilter)) {\n error(`contains unknown key filter: ${this.keyFilter}`);\n }\n return this.keyMappings[standardFilter].toLowerCase() !== event.key.toLowerCase();\n }\n get params() {\n const params = {};\n const pattern = new RegExp(`^data-${this.identifier}-(.+)-param$`, \"i\");\n for (const _ref4 of Array.from(this.element.attributes)) {\n const name = _ref4.name;\n const value = _ref4.value;\n const match = name.match(pattern);\n const key = match && match[1];\n if (key) {\n params[camelize(key)] = typecast(value);\n }\n }\n return params;\n }\n get eventTargetName() {\n return stringifyEventTarget(this.eventTarget);\n }\n get keyMappings() {\n return this.schema.keyMappings;\n }\n}\nconst defaultEventNames = {\n a: () => \"click\",\n button: () => \"click\",\n form: () => \"submit\",\n details: () => \"toggle\",\n input: e => e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\",\n select: () => \"change\",\n textarea: () => \"input\"\n};\nfunction getDefaultEventNameForElement(element) {\n const 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}\nfunction typecast(value) {\n try {\n return JSON.parse(value);\n } catch (o_O) {\n return value;\n }\n}\nclass Binding {\n constructor(context, action) {\n this.context = context;\n this.action = action;\n }\n get index() {\n return this.action.index;\n }\n get eventTarget() {\n return this.action.eventTarget;\n }\n get eventOptions() {\n return this.action.eventOptions;\n }\n get identifier() {\n return this.context.identifier;\n }\n handleEvent(event) {\n if (this.willBeInvokedByEvent(event) && this.applyEventModifiers(event)) {\n this.invokeWithEvent(event);\n }\n }\n get eventName() {\n return this.action.eventName;\n }\n get method() {\n const 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 applyEventModifiers(event) {\n const element = this.action.element;\n const actionDescriptorFilters = this.context.application.actionDescriptorFilters;\n let passes = true;\n for (const _ref5 of Object.entries(this.eventOptions)) {\n var _ref6 = _slicedToArray(_ref5, 2);\n const name = _ref6[0];\n const value = _ref6[1];\n if (name in actionDescriptorFilters) {\n const filter = actionDescriptorFilters[name];\n passes = passes && filter({\n name,\n value,\n event,\n element\n });\n } else {\n continue;\n }\n }\n return passes;\n }\n invokeWithEvent(event) {\n const target = event.target,\n currentTarget = event.currentTarget;\n try {\n const params = this.action.params;\n const actionEvent = Object.assign(event, {\n params\n });\n this.method.call(this.controller, actionEvent);\n this.context.logDebugActivity(this.methodName, {\n event,\n target,\n currentTarget,\n action: this.methodName\n });\n } catch (error) {\n const identifier = this.identifier,\n controller = this.controller,\n element = this.element,\n index = this.index;\n const detail = {\n identifier,\n controller,\n element,\n index,\n event\n };\n this.context.handleError(error, `invoking action \"${this.action}\"`, detail);\n }\n }\n willBeInvokedByEvent(event) {\n const eventTarget = event.target;\n if (event instanceof KeyboardEvent && this.action.isFilterTarget(event)) {\n return false;\n }\n if (this.element === eventTarget) {\n return true;\n } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n } else {\n return this.scope.containsElement(this.action.element);\n }\n }\n get controller() {\n return this.context.controller;\n }\n get methodName() {\n return this.action.methodName;\n }\n get element() {\n return this.scope.element;\n }\n get scope() {\n return this.context.scope;\n }\n}\nclass ElementObserver {\n constructor(element, delegate) {\n this.mutationObserverInit = {\n attributes: true,\n childList: true,\n subtree: true\n };\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver(mutations => this.processMutations(mutations));\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.refresh();\n }\n }\n pause(callback) {\n if (this.started) {\n this.mutationObserver.disconnect();\n this.started = false;\n }\n callback();\n if (!this.started) {\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n refresh() {\n if (this.started) {\n const matches = new Set(this.matchElementsInTree());\n for (const element of Array.from(this.elements)) {\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n for (const element of Array.from(matches)) {\n this.addElement(element);\n }\n }\n }\n processMutations(mutations) {\n if (this.started) {\n for (const mutation of mutations) {\n this.processMutation(mutation);\n }\n }\n }\n processMutation(mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n } else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n }\n processAttributeChange(node, attributeName) {\n const 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 processRemovedNodes(nodes) {\n for (const node of Array.from(nodes)) {\n const element = this.elementFromNode(node);\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n }\n processAddedNodes(nodes) {\n for (const node of Array.from(nodes)) {\n const element = this.elementFromNode(node);\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }\n matchElement(element) {\n return this.delegate.matchElement(element);\n }\n matchElementsInTree() {\n let tree = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.element;\n return this.delegate.matchElementsInTree(tree);\n }\n processTree(tree, processor) {\n for (const element of this.matchElementsInTree(tree)) {\n processor.call(this, element);\n }\n }\n elementFromNode(node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n }\n elementIsActive(element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n }\n addElement(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 removeElement(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}\nclass AttributeObserver {\n constructor(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n get element() {\n return this.elementObserver.element;\n }\n get selector() {\n return `[${this.attributeName}]`;\n }\n start() {\n this.elementObserver.start();\n }\n pause(callback) {\n this.elementObserver.pause(callback);\n }\n stop() {\n this.elementObserver.stop();\n }\n refresh() {\n this.elementObserver.refresh();\n }\n get started() {\n return this.elementObserver.started;\n }\n matchElement(element) {\n return element.hasAttribute(this.attributeName);\n }\n matchElementsInTree(tree) {\n const match = this.matchElement(tree) ? [tree] : [];\n const matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n }\n elementMatched(element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n }\n elementUnmatched(element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n }\n elementAttributeChanged(element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n }\n}\nfunction add(map, key, value) {\n fetch(map, key).add(value);\n}\nfunction del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\nfunction fetch(map, key) {\n let values = map.get(key);\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n return values;\n}\nfunction prune(map, key) {\n const values = map.get(key);\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}\nclass Multimap {\n constructor() {\n this.valuesByKey = new Map();\n }\n get keys() {\n return Array.from(this.valuesByKey.keys());\n }\n get values() {\n const sets = Array.from(this.valuesByKey.values());\n return sets.reduce((values, set) => values.concat(Array.from(set)), []);\n }\n get size() {\n const sets = Array.from(this.valuesByKey.values());\n return sets.reduce((size, set) => size + set.size, 0);\n }\n add(key, value) {\n add(this.valuesByKey, key, value);\n }\n delete(key, value) {\n del(this.valuesByKey, key, value);\n }\n has(key, value) {\n const values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n }\n hasKey(key) {\n return this.valuesByKey.has(key);\n }\n hasValue(value) {\n const sets = Array.from(this.valuesByKey.values());\n return sets.some(set => set.has(value));\n }\n getValuesForKey(key) {\n const values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n }\n getKeysForValue(value) {\n return Array.from(this.valuesByKey).filter(_ref7 => {\n let _ref8 = _slicedToArray(_ref7, 2),\n _key = _ref8[0],\n values = _ref8[1];\n return values.has(value);\n }).map(_ref9 => {\n let _ref10 = _slicedToArray(_ref9, 2),\n key = _ref10[0],\n _values = _ref10[1];\n return key;\n });\n }\n}\nclass IndexedMultimap extends Multimap {\n constructor() {\n super();\n this.keysByValue = new Map();\n }\n get values() {\n return Array.from(this.keysByValue.keys());\n }\n add(key, value) {\n super.add(key, value);\n add(this.keysByValue, value, key);\n }\n delete(key, value) {\n super.delete(key, value);\n del(this.keysByValue, value, key);\n }\n hasValue(value) {\n return this.keysByValue.has(value);\n }\n getKeysForValue(value) {\n const set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n }\n}\nclass SelectorObserver {\n constructor(element, selector, delegate) {\n let details = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n this.selector = selector;\n this.details = details;\n this.elementObserver = new ElementObserver(element, this);\n this.delegate = delegate;\n this.matchesByElement = new Multimap();\n }\n get started() {\n return this.elementObserver.started;\n }\n start() {\n this.elementObserver.start();\n }\n pause(callback) {\n this.elementObserver.pause(callback);\n }\n stop() {\n this.elementObserver.stop();\n }\n refresh() {\n this.elementObserver.refresh();\n }\n get element() {\n return this.elementObserver.element;\n }\n matchElement(element) {\n const matches = element.matches(this.selector);\n if (this.delegate.selectorMatchElement) {\n return matches && this.delegate.selectorMatchElement(element, this.details);\n }\n return matches;\n }\n matchElementsInTree(tree) {\n const match = this.matchElement(tree) ? [tree] : [];\n const matches = Array.from(tree.querySelectorAll(this.selector)).filter(match => this.matchElement(match));\n return match.concat(matches);\n }\n elementMatched(element) {\n this.selectorMatched(element);\n }\n elementUnmatched(element) {\n this.selectorUnmatched(element);\n }\n elementAttributeChanged(element, _attributeName) {\n const matches = this.matchElement(element);\n const matchedBefore = this.matchesByElement.has(this.selector, element);\n if (!matches && matchedBefore) {\n this.selectorUnmatched(element);\n }\n }\n selectorMatched(element) {\n if (this.delegate.selectorMatched) {\n this.delegate.selectorMatched(element, this.selector, this.details);\n this.matchesByElement.add(this.selector, element);\n }\n }\n selectorUnmatched(element) {\n this.delegate.selectorUnmatched(element, this.selector, this.details);\n this.matchesByElement.delete(this.selector, element);\n }\n}\nclass StringMapObserver {\n constructor(element, delegate) {\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map();\n this.mutationObserver = new MutationObserver(mutations => this.processMutations(mutations));\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n attributeOldValue: true\n });\n this.refresh();\n }\n }\n stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n refresh() {\n if (this.started) {\n for (const attributeName of this.knownAttributeNames) {\n this.refreshAttribute(attributeName, null);\n }\n }\n }\n processMutations(mutations) {\n if (this.started) {\n for (const mutation of mutations) {\n this.processMutation(mutation);\n }\n }\n }\n processMutation(mutation) {\n const attributeName = mutation.attributeName;\n if (attributeName) {\n this.refreshAttribute(attributeName, mutation.oldValue);\n }\n }\n refreshAttribute(attributeName, oldValue) {\n const key = this.delegate.getStringMapKeyForAttribute(attributeName);\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n const value = this.element.getAttribute(attributeName);\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key, oldValue);\n }\n if (value == null) {\n const oldValue = this.stringMap.get(attributeName);\n this.stringMap.delete(attributeName);\n if (oldValue) this.stringMapKeyRemoved(key, attributeName, oldValue);\n } else {\n this.stringMap.set(attributeName, value);\n }\n }\n }\n stringMapKeyAdded(key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n }\n stringMapValueChanged(value, key, oldValue) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key, oldValue);\n }\n }\n stringMapKeyRemoved(key, attributeName, oldValue) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n }\n get knownAttributeNames() {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n }\n get currentAttributeNames() {\n return Array.from(this.element.attributes).map(attribute => attribute.name);\n }\n get recordedAttributeNames() {\n return Array.from(this.stringMap.keys());\n }\n}\nclass TokenListObserver {\n constructor(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n get started() {\n return this.attributeObserver.started;\n }\n start() {\n this.attributeObserver.start();\n }\n pause(callback) {\n this.attributeObserver.pause(callback);\n }\n stop() {\n this.attributeObserver.stop();\n }\n refresh() {\n this.attributeObserver.refresh();\n }\n get element() {\n return this.attributeObserver.element;\n }\n get attributeName() {\n return this.attributeObserver.attributeName;\n }\n elementMatchedAttribute(element) {\n this.tokensMatched(this.readTokensForElement(element));\n }\n elementAttributeValueChanged(element) {\n const _this$refreshTokensFo = this.refreshTokensForElement(element),\n _this$refreshTokensFo2 = _slicedToArray(_this$refreshTokensFo, 2),\n unmatchedTokens = _this$refreshTokensFo2[0],\n matchedTokens = _this$refreshTokensFo2[1];\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n }\n elementUnmatchedAttribute(element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n }\n tokensMatched(tokens) {\n tokens.forEach(token => this.tokenMatched(token));\n }\n tokensUnmatched(tokens) {\n tokens.forEach(token => this.tokenUnmatched(token));\n }\n tokenMatched(token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n }\n tokenUnmatched(token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n }\n refreshTokensForElement(element) {\n const previousTokens = this.tokensByElement.getValuesForKey(element);\n const currentTokens = this.readTokensForElement(element);\n const firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(_ref11 => {\n let _ref12 = _slicedToArray(_ref11, 2),\n previousToken = _ref12[0],\n currentToken = _ref12[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 readTokensForElement(element) {\n const attributeName = this.attributeName;\n const tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n }\n}\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(content => content.length).map((content, index) => ({\n element,\n attributeName,\n content,\n index\n }));\n}\nfunction zip(left, right) {\n const length = Math.max(left.length, right.length);\n return Array.from({\n length\n }, (_, index) => [left[index], right[index]]);\n}\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}\nclass ValueListObserver {\n constructor(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 get started() {\n return this.tokenListObserver.started;\n }\n start() {\n this.tokenListObserver.start();\n }\n stop() {\n this.tokenListObserver.stop();\n }\n refresh() {\n this.tokenListObserver.refresh();\n }\n get element() {\n return this.tokenListObserver.element;\n }\n get attributeName() {\n return this.tokenListObserver.attributeName;\n }\n tokenMatched(token) {\n const element = token.element;\n const _this$fetchParseResul = this.fetchParseResultForToken(token),\n value = _this$fetchParseResul.value;\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n }\n tokenUnmatched(token) {\n const element = token.element;\n const _this$fetchParseResul2 = this.fetchParseResultForToken(token),\n value = _this$fetchParseResul2.value;\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n }\n fetchParseResultForToken(token) {\n let 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 fetchValuesByTokenForElement(element) {\n let valuesByToken = this.valuesByTokenByElement.get(element);\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n return valuesByToken;\n }\n parseToken(token) {\n try {\n const value = this.delegate.parseValueForToken(token);\n return {\n value\n };\n } catch (error) {\n return {\n error\n };\n }\n }\n}\nclass BindingObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n start() {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n }\n stop() {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n }\n get element() {\n return this.context.element;\n }\n get identifier() {\n return this.context.identifier;\n }\n get actionAttribute() {\n return this.schema.actionAttribute;\n }\n get schema() {\n return this.context.schema;\n }\n get bindings() {\n return Array.from(this.bindingsByAction.values());\n }\n connectAction(action) {\n const binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n }\n disconnectAction(action) {\n const binding = this.bindingsByAction.get(action);\n if (binding) {\n this.bindingsByAction.delete(action);\n this.delegate.bindingDisconnected(binding);\n }\n }\n disconnectAllActions() {\n this.bindings.forEach(binding => this.delegate.bindingDisconnected(binding, true));\n this.bindingsByAction.clear();\n }\n parseValueForToken(token) {\n const action = Action.forToken(token, this.schema);\n if (action.identifier == this.identifier) {\n return action;\n }\n }\n elementMatchedValue(element, action) {\n this.connectAction(action);\n }\n elementUnmatchedValue(element, action) {\n this.disconnectAction(action);\n }\n}\nclass ValueObserver {\n constructor(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 }\n start() {\n this.stringMapObserver.start();\n this.invokeChangedCallbacksForDefaultValues();\n }\n stop() {\n this.stringMapObserver.stop();\n }\n get element() {\n return this.context.element;\n }\n get controller() {\n return this.context.controller;\n }\n getStringMapKeyForAttribute(attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n }\n stringMapKeyAdded(key, attributeName) {\n const descriptor = this.valueDescriptorMap[attributeName];\n if (!this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), descriptor.writer(descriptor.defaultValue));\n }\n }\n stringMapValueChanged(value, name, oldValue) {\n const descriptor = this.valueDescriptorNameMap[name];\n if (value === null) return;\n if (oldValue === null) {\n oldValue = descriptor.writer(descriptor.defaultValue);\n }\n this.invokeChangedCallback(name, value, oldValue);\n }\n stringMapKeyRemoved(key, attributeName, oldValue) {\n const descriptor = this.valueDescriptorNameMap[key];\n if (this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), oldValue);\n } else {\n this.invokeChangedCallback(key, descriptor.writer(descriptor.defaultValue), oldValue);\n }\n }\n invokeChangedCallbacksForDefaultValues() {\n for (const _ref13 of this.valueDescriptors) {\n const key = _ref13.key;\n const name = _ref13.name;\n const defaultValue = _ref13.defaultValue;\n const writer = _ref13.writer;\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallback(name, writer(defaultValue), undefined);\n }\n }\n }\n invokeChangedCallback(name, rawValue, rawOldValue) {\n const changedMethodName = `${name}Changed`;\n const changedMethod = this.receiver[changedMethodName];\n if (typeof changedMethod == \"function\") {\n const descriptor = this.valueDescriptorNameMap[name];\n try {\n const value = descriptor.reader(rawValue);\n let oldValue = rawOldValue;\n if (rawOldValue) {\n oldValue = descriptor.reader(rawOldValue);\n }\n changedMethod.call(this.receiver, value, oldValue);\n } catch (error) {\n if (error instanceof TypeError) {\n error.message = `Stimulus Value \"${this.context.identifier}.${descriptor.name}\" - ${error.message}`;\n }\n throw error;\n }\n }\n }\n get valueDescriptors() {\n const valueDescriptorMap = this.valueDescriptorMap;\n return Object.keys(valueDescriptorMap).map(key => valueDescriptorMap[key]);\n }\n get valueDescriptorNameMap() {\n const descriptors = {};\n Object.keys(this.valueDescriptorMap).forEach(key => {\n const descriptor = this.valueDescriptorMap[key];\n descriptors[descriptor.name] = descriptor;\n });\n return descriptors;\n }\n hasValue(attributeName) {\n const descriptor = this.valueDescriptorNameMap[attributeName];\n const hasMethodName = `has${capitalize(descriptor.name)}`;\n return this.receiver[hasMethodName];\n }\n}\nclass TargetObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.targetsByName = new Multimap();\n }\n start() {\n if (!this.tokenListObserver) {\n this.tokenListObserver = new TokenListObserver(this.element, this.attributeName, this);\n this.tokenListObserver.start();\n }\n }\n stop() {\n if (this.tokenListObserver) {\n this.disconnectAllTargets();\n this.tokenListObserver.stop();\n delete this.tokenListObserver;\n }\n }\n tokenMatched(_ref14) {\n let element = _ref14.element,\n name = _ref14.content;\n if (this.scope.containsElement(element)) {\n this.connectTarget(element, name);\n }\n }\n tokenUnmatched(_ref15) {\n let element = _ref15.element,\n name = _ref15.content;\n this.disconnectTarget(element, name);\n }\n connectTarget(element, name) {\n var _a;\n if (!this.targetsByName.has(name, element)) {\n this.targetsByName.add(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetConnected(element, name));\n }\n }\n disconnectTarget(element, name) {\n var _a;\n if (this.targetsByName.has(name, element)) {\n this.targetsByName.delete(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetDisconnected(element, name));\n }\n }\n disconnectAllTargets() {\n for (const name of this.targetsByName.keys) {\n for (const element of this.targetsByName.getValuesForKey(name)) {\n this.disconnectTarget(element, name);\n }\n }\n }\n get attributeName() {\n return `data-${this.context.identifier}-target`;\n }\n get element() {\n return this.context.element;\n }\n get scope() {\n return this.context.scope;\n }\n}\nfunction readInheritableStaticArrayValues(constructor, propertyName) {\n const ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce((values, constructor) => {\n getOwnStaticArrayValues(constructor, propertyName).forEach(name => values.add(name));\n return values;\n }, new Set()));\n}\nfunction readInheritableStaticObjectPairs(constructor, propertyName) {\n const ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce((pairs, constructor) => {\n pairs.push(...getOwnStaticObjectPairs(constructor, propertyName));\n return pairs;\n }, []);\n}\nfunction getAncestorsForConstructor(constructor) {\n const ancestors = [];\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n return ancestors.reverse();\n}\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n const definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n const definition = constructor[propertyName];\n return definition ? Object.keys(definition).map(key => [key, definition[key]]) : [];\n}\nclass OutletObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.outletsByName = new Multimap();\n this.outletElementsByName = new Multimap();\n this.selectorObserverMap = new Map();\n }\n start() {\n if (this.selectorObserverMap.size === 0) {\n this.outletDefinitions.forEach(outletName => {\n const selector = this.selector(outletName);\n const details = {\n outletName\n };\n if (selector) {\n this.selectorObserverMap.set(outletName, new SelectorObserver(document.body, selector, this, details));\n }\n });\n this.selectorObserverMap.forEach(observer => observer.start());\n }\n this.dependentContexts.forEach(context => context.refresh());\n }\n stop() {\n if (this.selectorObserverMap.size > 0) {\n this.disconnectAllOutlets();\n this.selectorObserverMap.forEach(observer => observer.stop());\n this.selectorObserverMap.clear();\n }\n }\n refresh() {\n this.selectorObserverMap.forEach(observer => observer.refresh());\n }\n selectorMatched(element, _selector, _ref16) {\n let outletName = _ref16.outletName;\n const outlet = this.getOutlet(element, outletName);\n if (outlet) {\n this.connectOutlet(outlet, element, outletName);\n }\n }\n selectorUnmatched(element, _selector, _ref17) {\n let outletName = _ref17.outletName;\n const outlet = this.getOutletFromMap(element, outletName);\n if (outlet) {\n this.disconnectOutlet(outlet, element, outletName);\n }\n }\n selectorMatchElement(element, _ref18) {\n let outletName = _ref18.outletName;\n return this.hasOutlet(element, outletName) && element.matches(`[${this.context.application.schema.controllerAttribute}~=${outletName}]`);\n }\n connectOutlet(outlet, element, outletName) {\n var _a;\n if (!this.outletElementsByName.has(outletName, element)) {\n this.outletsByName.add(outletName, outlet);\n this.outletElementsByName.add(outletName, element);\n (_a = this.selectorObserverMap.get(outletName)) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.outletConnected(outlet, element, outletName));\n }\n }\n disconnectOutlet(outlet, element, outletName) {\n var _a;\n if (this.outletElementsByName.has(outletName, element)) {\n this.outletsByName.delete(outletName, outlet);\n this.outletElementsByName.delete(outletName, element);\n (_a = this.selectorObserverMap.get(outletName)) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.outletDisconnected(outlet, element, outletName));\n }\n }\n disconnectAllOutlets() {\n for (const outletName of this.outletElementsByName.keys) {\n for (const element of this.outletElementsByName.getValuesForKey(outletName)) {\n for (const outlet of this.outletsByName.getValuesForKey(outletName)) {\n this.disconnectOutlet(outlet, element, outletName);\n }\n }\n }\n }\n selector(outletName) {\n return this.scope.outlets.getSelectorForOutletName(outletName);\n }\n get outletDependencies() {\n const dependencies = new Multimap();\n this.router.modules.forEach(module => {\n const constructor = module.definition.controllerConstructor;\n const outlets = readInheritableStaticArrayValues(constructor, \"outlets\");\n outlets.forEach(outlet => dependencies.add(outlet, module.identifier));\n });\n return dependencies;\n }\n get outletDefinitions() {\n return this.outletDependencies.getKeysForValue(this.identifier);\n }\n get dependentControllerIdentifiers() {\n return this.outletDependencies.getValuesForKey(this.identifier);\n }\n get dependentContexts() {\n const identifiers = this.dependentControllerIdentifiers;\n return this.router.contexts.filter(context => identifiers.includes(context.identifier));\n }\n hasOutlet(element, outletName) {\n return !!this.getOutlet(element, outletName) || !!this.getOutletFromMap(element, outletName);\n }\n getOutlet(element, outletName) {\n return this.application.getControllerForElementAndIdentifier(element, outletName);\n }\n getOutletFromMap(element, outletName) {\n return this.outletsByName.getValuesForKey(outletName).find(outlet => outlet.element === element);\n }\n get scope() {\n return this.context.scope;\n }\n get identifier() {\n return this.context.identifier;\n }\n get application() {\n return this.context.application;\n }\n get router() {\n return this.application.router;\n }\n}\nclass Context {\n constructor(module, scope) {\n var _this = this;\n this.logDebugActivity = function (functionName) {\n let detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const identifier = _this.identifier,\n controller = _this.controller,\n element = _this.element;\n detail = Object.assign({\n identifier,\n controller,\n element\n }, detail);\n _this.application.logDebugActivity(_this.identifier, functionName, detail);\n };\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n this.valueObserver = new ValueObserver(this, this.controller);\n this.targetObserver = new TargetObserver(this, this);\n this.outletObserver = new OutletObserver(this, this);\n try {\n this.controller.initialize();\n this.logDebugActivity(\"initialize\");\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n connect() {\n this.bindingObserver.start();\n this.valueObserver.start();\n this.targetObserver.start();\n this.outletObserver.start();\n try {\n this.controller.connect();\n this.logDebugActivity(\"connect\");\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n }\n refresh() {\n this.outletObserver.refresh();\n }\n disconnect() {\n try {\n this.controller.disconnect();\n this.logDebugActivity(\"disconnect\");\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n this.outletObserver.stop();\n this.targetObserver.stop();\n this.valueObserver.stop();\n this.bindingObserver.stop();\n }\n get application() {\n return this.module.application;\n }\n get identifier() {\n return this.module.identifier;\n }\n get schema() {\n return this.application.schema;\n }\n get dispatcher() {\n return this.application.dispatcher;\n }\n get element() {\n return this.scope.element;\n }\n get parentElement() {\n return this.element.parentElement;\n }\n handleError(error, message) {\n let detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const identifier = this.identifier,\n controller = this.controller,\n element = this.element;\n detail = Object.assign({\n identifier,\n controller,\n element\n }, detail);\n this.application.handleError(error, `Error ${message}`, detail);\n }\n targetConnected(element, name) {\n this.invokeControllerMethod(`${name}TargetConnected`, element);\n }\n targetDisconnected(element, name) {\n this.invokeControllerMethod(`${name}TargetDisconnected`, element);\n }\n outletConnected(outlet, element, name) {\n this.invokeControllerMethod(`${namespaceCamelize(name)}OutletConnected`, outlet, element);\n }\n outletDisconnected(outlet, element, name) {\n this.invokeControllerMethod(`${namespaceCamelize(name)}OutletDisconnected`, outlet, element);\n }\n invokeControllerMethod(methodName) {\n const controller = this.controller;\n if (typeof controller[methodName] == \"function\") {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key2 = 1; _key2 < _len; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n controller[methodName](...args);\n }\n }\n}\nfunction bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\n}\nfunction shadow(constructor, properties) {\n const shadowConstructor = extend(constructor);\n const shadowProperties = getShadowProperties(constructor.prototype, properties);\n Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n return shadowConstructor;\n}\nfunction getBlessedProperties(constructor) {\n const blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce((blessedProperties, blessing) => {\n const properties = blessing(constructor);\n for (const key in properties) {\n const 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((shadowProperties, key) => {\n const descriptor = getShadowedDescriptor(prototype, properties, key);\n if (descriptor) {\n Object.assign(shadowProperties, {\n [key]: descriptor\n });\n }\n return shadowProperties;\n }, {});\n}\nfunction getShadowedDescriptor(prototype, properties, key) {\n const shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n const shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n if (!shadowedByValue) {\n const 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}\nconst getOwnKeys = (() => {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return object => [...Object.getOwnPropertyNames(object), ...Object.getOwnPropertySymbols(object)];\n } else {\n return Object.getOwnPropertyNames;\n }\n})();\nconst extend = (() => {\n function extendWithReflect(constructor) {\n function extended() {\n return Reflect.construct(constructor, arguments, new.target);\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 const a = function () {\n this.a.call(this);\n };\n const 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 constructor => class extended extends constructor {};\n }\n})();\nfunction blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor)\n };\n}\nclass Module {\n constructor(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n get identifier() {\n return this.definition.identifier;\n }\n get controllerConstructor() {\n return this.definition.controllerConstructor;\n }\n get contexts() {\n return Array.from(this.connectedContexts);\n }\n connectContextForScope(scope) {\n const context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n }\n disconnectContextForScope(scope) {\n const context = this.contextsByScope.get(scope);\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n }\n fetchContextForScope(scope) {\n let 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}\nclass ClassMap {\n constructor(scope) {\n this.scope = scope;\n }\n has(name) {\n return this.data.has(this.getDataKey(name));\n }\n get(name) {\n return this.getAll(name)[0];\n }\n getAll(name) {\n const tokenString = this.data.get(this.getDataKey(name)) || \"\";\n return tokenize(tokenString);\n }\n getAttributeName(name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n }\n getDataKey(name) {\n return `${name}-class`;\n }\n get data() {\n return this.scope.data;\n }\n}\nclass DataMap {\n constructor(scope) {\n this.scope = scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get(key) {\n const name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n }\n set(key, value) {\n const name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n }\n has(key) {\n const name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n }\n delete(key) {\n if (this.has(key)) {\n const name = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name);\n return true;\n } else {\n return false;\n }\n }\n getAttributeNameForKey(key) {\n return `data-${this.identifier}-${dasherize(key)}`;\n }\n}\nclass Guide {\n constructor(logger) {\n this.warnedKeysByObject = new WeakMap();\n this.logger = logger;\n }\n warn(object, key, message) {\n let 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}\nfunction attributeValueContainsToken(attributeName, token) {\n return `[${attributeName}~=\"${token}\"]`;\n}\nclass TargetSet {\n constructor(scope) {\n this.scope = scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get schema() {\n return this.scope.schema;\n }\n has(targetName) {\n return this.find(targetName) != null;\n }\n find() {\n for (var _len2 = arguments.length, targetNames = new Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {\n targetNames[_key3] = arguments[_key3];\n }\n return targetNames.reduce((target, targetName) => target || this.findTarget(targetName) || this.findLegacyTarget(targetName), undefined);\n }\n findAll() {\n for (var _len3 = arguments.length, targetNames = new Array(_len3), _key4 = 0; _key4 < _len3; _key4++) {\n targetNames[_key4] = arguments[_key4];\n }\n return targetNames.reduce((targets, targetName) => [...targets, ...this.findAllTargets(targetName), ...this.findAllLegacyTargets(targetName)], []);\n }\n findTarget(targetName) {\n const selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n }\n findAllTargets(targetName) {\n const selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n }\n getSelectorForTargetName(targetName) {\n const attributeName = this.schema.targetAttributeForScope(this.identifier);\n return attributeValueContainsToken(attributeName, targetName);\n }\n findLegacyTarget(targetName) {\n const selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n }\n findAllLegacyTargets(targetName) {\n const selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map(element => this.deprecate(element, targetName));\n }\n getLegacySelectorForTargetName(targetName) {\n const targetDescriptor = `${this.identifier}.${targetName}`;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n }\n deprecate(element, targetName) {\n if (element) {\n const identifier = this.identifier;\n const attributeName = this.schema.targetAttribute;\n const revisedAttributeName = this.schema.targetAttributeForScope(identifier);\n this.guide.warn(element, `target:${targetName}`, `Please replace ${attributeName}=\"${identifier}.${targetName}\" with ${revisedAttributeName}=\"${targetName}\". ` + `The ${attributeName} attribute is deprecated and will be removed in a future version of Stimulus.`);\n }\n return element;\n }\n get guide() {\n return this.scope.guide;\n }\n}\nclass OutletSet {\n constructor(scope, controllerElement) {\n this.scope = scope;\n this.controllerElement = controllerElement;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get schema() {\n return this.scope.schema;\n }\n has(outletName) {\n return this.find(outletName) != null;\n }\n find() {\n for (var _len4 = arguments.length, outletNames = new Array(_len4), _key5 = 0; _key5 < _len4; _key5++) {\n outletNames[_key5] = arguments[_key5];\n }\n return outletNames.reduce((outlet, outletName) => outlet || this.findOutlet(outletName), undefined);\n }\n findAll() {\n for (var _len5 = arguments.length, outletNames = new Array(_len5), _key6 = 0; _key6 < _len5; _key6++) {\n outletNames[_key6] = arguments[_key6];\n }\n return outletNames.reduce((outlets, outletName) => [...outlets, ...this.findAllOutlets(outletName)], []);\n }\n getSelectorForOutletName(outletName) {\n const attributeName = this.schema.outletAttributeForScope(this.identifier, outletName);\n return this.controllerElement.getAttribute(attributeName);\n }\n findOutlet(outletName) {\n const selector = this.getSelectorForOutletName(outletName);\n if (selector) return this.findElement(selector, outletName);\n }\n findAllOutlets(outletName) {\n const selector = this.getSelectorForOutletName(outletName);\n return selector ? this.findAllElements(selector, outletName) : [];\n }\n findElement(selector, outletName) {\n const elements = this.scope.queryElements(selector);\n return elements.filter(element => this.matchesElement(element, selector, outletName))[0];\n }\n findAllElements(selector, outletName) {\n const elements = this.scope.queryElements(selector);\n return elements.filter(element => this.matchesElement(element, selector, outletName));\n }\n matchesElement(element, selector, outletName) {\n const controllerAttribute = element.getAttribute(this.scope.schema.controllerAttribute) || \"\";\n return element.matches(selector) && controllerAttribute.split(\" \").includes(outletName);\n }\n}\nclass Scope {\n constructor(schema, element, identifier, logger) {\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n this.containsElement = 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 this.outlets = new OutletSet(this.documentScope, element);\n }\n findElement(selector) {\n return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n }\n findAllElements(selector) {\n return [...(this.element.matches(selector) ? [this.element] : []), ...this.queryElements(selector).filter(this.containsElement)];\n }\n queryElements(selector) {\n return Array.from(this.element.querySelectorAll(selector));\n }\n get controllerSelector() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n }\n get isDocumentScope() {\n return this.element === document.documentElement;\n }\n get documentScope() {\n return this.isDocumentScope ? this : new Scope(this.schema, document.documentElement, this.identifier, this.guide.logger);\n }\n}\nclass ScopeObserver {\n constructor(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 start() {\n this.valueListObserver.start();\n }\n stop() {\n this.valueListObserver.stop();\n }\n get controllerAttribute() {\n return this.schema.controllerAttribute;\n }\n parseValueForToken(token) {\n const element = token.element,\n identifier = token.content;\n const scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n let 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 elementMatchedValue(element, value) {\n const 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 elementUnmatchedValue(element, value) {\n const 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 fetchScopesByIdentifierForElement(element) {\n let scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n return scopesByIdentifier;\n }\n}\nclass Router {\n constructor(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 get element() {\n return this.application.element;\n }\n get schema() {\n return this.application.schema;\n }\n get logger() {\n return this.application.logger;\n }\n get controllerAttribute() {\n return this.schema.controllerAttribute;\n }\n get modules() {\n return Array.from(this.modulesByIdentifier.values());\n }\n get contexts() {\n return this.modules.reduce((contexts, module) => contexts.concat(module.contexts), []);\n }\n start() {\n this.scopeObserver.start();\n }\n stop() {\n this.scopeObserver.stop();\n }\n loadDefinition(definition) {\n this.unloadIdentifier(definition.identifier);\n const module = new Module(this.application, definition);\n this.connectModule(module);\n const afterLoad = definition.controllerConstructor.afterLoad;\n if (afterLoad) {\n afterLoad(definition.identifier, this.application);\n }\n }\n unloadIdentifier(identifier) {\n const module = this.modulesByIdentifier.get(identifier);\n if (module) {\n this.disconnectModule(module);\n }\n }\n getContextForElementAndIdentifier(element, identifier) {\n const module = this.modulesByIdentifier.get(identifier);\n if (module) {\n return module.contexts.find(context => context.element == element);\n }\n }\n handleError(error, message, detail) {\n this.application.handleError(error, message, detail);\n }\n createScopeForElementAndIdentifier(element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n }\n scopeConnected(scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n const module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.connectContextForScope(scope);\n }\n }\n scopeDisconnected(scope) {\n this.scopesByIdentifier.delete(scope.identifier, scope);\n const module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }\n connectModule(module) {\n this.modulesByIdentifier.set(module.identifier, module);\n const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(scope => module.connectContextForScope(scope));\n }\n disconnectModule(module) {\n this.modulesByIdentifier.delete(module.identifier);\n const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(scope => module.disconnectContextForScope(scope));\n }\n}\nconst defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\",\n targetAttributeForScope: identifier => `data-${identifier}-target`,\n outletAttributeForScope: (identifier, outlet) => `data-${identifier}-${outlet}-outlet`,\n keyMappings: Object.assign(Object.assign({\n enter: \"Enter\",\n tab: \"Tab\",\n esc: \"Escape\",\n space: \" \",\n up: \"ArrowUp\",\n down: \"ArrowDown\",\n left: \"ArrowLeft\",\n right: \"ArrowRight\",\n home: \"Home\",\n end: \"End\"\n }, objectFromEntries(\"abcdefghijklmnopqrstuvwxyz\".split(\"\").map(c => [c, c]))), objectFromEntries(\"0123456789\".split(\"\").map(n => [n, n])))\n};\nfunction objectFromEntries(array) {\n return array.reduce((memo, _ref19) => {\n let _ref20 = _slicedToArray(_ref19, 2),\n k = _ref20[0],\n v = _ref20[1];\n return Object.assign(Object.assign({}, memo), {\n [k]: v\n });\n }, {});\n}\nclass Application {\n constructor() {\n var _this2 = this;\n let element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.documentElement;\n let schema = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultSchema;\n this.logger = console;\n this.debug = false;\n this.logDebugActivity = function (identifier, functionName) {\n let detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (_this2.debug) {\n _this2.logFormattedMessage(identifier, functionName, detail);\n }\n };\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n this.actionDescriptorFilters = Object.assign({}, defaultActionDescriptorFilters);\n }\n static start(element, schema) {\n const application = new this(element, schema);\n application.start();\n return application;\n }\n async start() {\n await domReady();\n this.logDebugActivity(\"application\", \"starting\");\n this.dispatcher.start();\n this.router.start();\n this.logDebugActivity(\"application\", \"start\");\n }\n stop() {\n this.logDebugActivity(\"application\", \"stopping\");\n this.dispatcher.stop();\n this.router.stop();\n this.logDebugActivity(\"application\", \"stop\");\n }\n register(identifier, controllerConstructor) {\n this.load({\n identifier,\n controllerConstructor\n });\n }\n registerActionOption(name, filter) {\n this.actionDescriptorFilters[name] = filter;\n }\n load(head) {\n for (var _len6 = arguments.length, rest = new Array(_len6 > 1 ? _len6 - 1 : 0), _key7 = 1; _key7 < _len6; _key7++) {\n rest[_key7 - 1] = arguments[_key7];\n }\n const definitions = Array.isArray(head) ? head : [head, ...rest];\n definitions.forEach(definition => {\n if (definition.controllerConstructor.shouldLoad) {\n this.router.loadDefinition(definition);\n }\n });\n }\n unload(head) {\n for (var _len7 = arguments.length, rest = new Array(_len7 > 1 ? _len7 - 1 : 0), _key8 = 1; _key8 < _len7; _key8++) {\n rest[_key8 - 1] = arguments[_key8];\n }\n const identifiers = Array.isArray(head) ? head : [head, ...rest];\n identifiers.forEach(identifier => this.router.unloadIdentifier(identifier));\n }\n get controllers() {\n return this.router.contexts.map(context => context.controller);\n }\n getControllerForElementAndIdentifier(element, identifier) {\n const context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }\n handleError(error, message, detail) {\n var _a;\n this.logger.error(`%s\\n\\n%o\\n\\n%o`, message, error, detail);\n (_a = window.onerror) === null || _a === void 0 ? void 0 : _a.call(window, message, \"\", 0, 0, error);\n }\n logFormattedMessage(identifier, functionName) {\n let detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n detail = Object.assign({\n application: this\n }, detail);\n this.logger.groupCollapsed(`${identifier} #${functionName}`);\n this.logger.log(\"details:\", Object.assign({}, detail));\n this.logger.groupEnd();\n }\n}\nfunction domReady() {\n return new Promise(resolve => {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", () => resolve());\n } else {\n resolve();\n }\n });\n}\nfunction ClassPropertiesBlessing(constructor) {\n const classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce((properties, classDefinition) => {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\nfunction propertiesForClassDefinition(key) {\n return {\n [`${key}Class`]: {\n get() {\n const classes = this.classes;\n if (classes.has(key)) {\n return classes.get(key);\n } else {\n const attribute = classes.getAttributeName(key);\n throw new Error(`Missing attribute \"${attribute}\"`);\n }\n }\n },\n [`${key}Classes`]: {\n get() {\n return this.classes.getAll(key);\n }\n },\n [`has${capitalize(key)}Class`]: {\n get() {\n return this.classes.has(key);\n }\n }\n };\n}\nfunction OutletPropertiesBlessing(constructor) {\n const outlets = readInheritableStaticArrayValues(constructor, \"outlets\");\n return outlets.reduce((properties, outletDefinition) => {\n return Object.assign(properties, propertiesForOutletDefinition(outletDefinition));\n }, {});\n}\nfunction propertiesForOutletDefinition(name) {\n const camelizedName = namespaceCamelize(name);\n return {\n [`${camelizedName}Outlet`]: {\n get() {\n const outlet = this.outlets.find(name);\n if (outlet) {\n const outletController = this.application.getControllerForElementAndIdentifier(outlet, name);\n if (outletController) {\n return outletController;\n } else {\n throw new Error(`Missing \"data-controller=${name}\" attribute on outlet element for \"${this.identifier}\" controller`);\n }\n }\n throw new Error(`Missing outlet element \"${name}\" for \"${this.identifier}\" controller`);\n }\n },\n [`${camelizedName}Outlets`]: {\n get() {\n const outlets = this.outlets.findAll(name);\n if (outlets.length > 0) {\n return outlets.map(outlet => {\n const controller = this.application.getControllerForElementAndIdentifier(outlet, name);\n if (controller) {\n return controller;\n } else {\n console.warn(`The provided outlet element is missing the outlet controller \"${name}\" for \"${this.identifier}\"`, outlet);\n }\n }).filter(controller => controller);\n }\n return [];\n }\n },\n [`${camelizedName}OutletElement`]: {\n get() {\n const outlet = this.outlets.find(name);\n if (outlet) {\n return outlet;\n } else {\n throw new Error(`Missing outlet element \"${name}\" for \"${this.identifier}\" controller`);\n }\n }\n },\n [`${camelizedName}OutletElements`]: {\n get() {\n return this.outlets.findAll(name);\n }\n },\n [`has${capitalize(camelizedName)}Outlet`]: {\n get() {\n return this.outlets.has(name);\n }\n }\n };\n}\nfunction TargetPropertiesBlessing(constructor) {\n const targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce((properties, targetDefinition) => {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\nfunction propertiesForTargetDefinition(name) {\n return {\n [`${name}Target`]: {\n get() {\n const target = this.targets.find(name);\n if (target) {\n return target;\n } else {\n throw new Error(`Missing target element \"${name}\" for \"${this.identifier}\" controller`);\n }\n }\n },\n [`${name}Targets`]: {\n get() {\n return this.targets.findAll(name);\n }\n },\n [`has${capitalize(name)}Target`]: {\n get() {\n return this.targets.has(name);\n }\n }\n };\n}\nfunction ValuePropertiesBlessing(constructor) {\n const valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n const propertyDescriptorMap = {\n valueDescriptorMap: {\n get() {\n return valueDefinitionPairs.reduce((result, valueDefinitionPair) => {\n const valueDescriptor = parseValueDefinitionPair(valueDefinitionPair, this.identifier);\n const attributeName = this.data.getAttributeNameForKey(valueDescriptor.key);\n return Object.assign(result, {\n [attributeName]: valueDescriptor\n });\n }, {});\n }\n }\n };\n return valueDefinitionPairs.reduce((properties, valueDefinitionPair) => {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\nfunction propertiesForValueDefinitionPair(valueDefinitionPair, controller) {\n const definition = parseValueDefinitionPair(valueDefinitionPair, controller);\n const key = definition.key,\n name = definition.name,\n read = definition.reader,\n write = definition.writer;\n return {\n [name]: {\n get() {\n const value = this.data.get(key);\n if (value !== null) {\n return read(value);\n } else {\n return definition.defaultValue;\n }\n },\n set(value) {\n if (value === undefined) {\n this.data.delete(key);\n } else {\n this.data.set(key, write(value));\n }\n }\n },\n [`has${capitalize(name)}`]: {\n get() {\n return this.data.has(key) || definition.hasCustomDefaultValue;\n }\n }\n };\n}\nfunction parseValueDefinitionPair(_ref21, controller) {\n let _ref22 = _slicedToArray(_ref21, 2),\n token = _ref22[0],\n typeDefinition = _ref22[1];\n return valueDescriptorForTokenAndTypeDefinition({\n controller,\n token,\n typeDefinition\n });\n}\nfunction parseValueTypeConstant(constant) {\n switch (constant) {\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}\nfunction parseValueTypeDefault(defaultValue) {\n switch (typeof defaultValue) {\n case \"boolean\":\n return \"boolean\";\n case \"number\":\n return \"number\";\n case \"string\":\n return \"string\";\n }\n if (Array.isArray(defaultValue)) return \"array\";\n if (Object.prototype.toString.call(defaultValue) === \"[object Object]\") return \"object\";\n}\nfunction parseValueTypeObject(payload) {\n const typeFromObject = parseValueTypeConstant(payload.typeObject.type);\n if (!typeFromObject) return;\n const defaultValueType = parseValueTypeDefault(payload.typeObject.default);\n if (typeFromObject !== defaultValueType) {\n const propertyPath = payload.controller ? `${payload.controller}.${payload.token}` : payload.token;\n throw new Error(`The specified default value for the Stimulus Value \"${propertyPath}\" must match the defined type \"${typeFromObject}\". The provided default value of \"${payload.typeObject.default}\" is of type \"${defaultValueType}\".`);\n }\n return typeFromObject;\n}\nfunction parseValueTypeDefinition(payload) {\n const typeFromObject = parseValueTypeObject({\n controller: payload.controller,\n token: payload.token,\n typeObject: payload.typeDefinition\n });\n const typeFromDefaultValue = parseValueTypeDefault(payload.typeDefinition);\n const typeFromConstant = parseValueTypeConstant(payload.typeDefinition);\n const type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n if (type) return type;\n const propertyPath = payload.controller ? `${payload.controller}.${payload.typeDefinition}` : payload.token;\n throw new Error(`Unknown value type \"${propertyPath}\" for \"${payload.token}\" value`);\n}\nfunction defaultValueForDefinition(typeDefinition) {\n const constant = parseValueTypeConstant(typeDefinition);\n if (constant) return defaultValuesByType[constant];\n const defaultValue = typeDefinition.default;\n if (defaultValue !== undefined) return defaultValue;\n return typeDefinition;\n}\nfunction valueDescriptorForTokenAndTypeDefinition(payload) {\n const key = `${dasherize(payload.token)}-value`;\n const type = parseValueTypeDefinition(payload);\n return {\n type,\n key,\n name: camelize(key),\n get defaultValue() {\n return defaultValueForDefinition(payload.typeDefinition);\n },\n get hasCustomDefaultValue() {\n return parseValueTypeDefault(payload.typeDefinition) !== undefined;\n },\n reader: readers[type],\n writer: writers[type] || writers.default\n };\n}\nconst defaultValuesByType = {\n get array() {\n return [];\n },\n boolean: false,\n number: 0,\n get object() {\n return {};\n },\n string: \"\"\n};\nconst readers = {\n array(value) {\n const array = JSON.parse(value);\n if (!Array.isArray(array)) {\n throw new TypeError(`expected value of type \"array\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(array)}\"`);\n }\n return array;\n },\n boolean(value) {\n return !(value == \"0\" || String(value).toLowerCase() == \"false\");\n },\n number(value) {\n return Number(value);\n },\n object(value) {\n const object = JSON.parse(value);\n if (object === null || typeof object != \"object\" || Array.isArray(object)) {\n throw new TypeError(`expected value of type \"object\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(object)}\"`);\n }\n return object;\n },\n string(value) {\n return value;\n }\n};\nconst 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}\nclass Controller {\n constructor(context) {\n this.context = context;\n }\n static get shouldLoad() {\n return true;\n }\n static afterLoad(_identifier, _application) {\n return;\n }\n get application() {\n return this.context.application;\n }\n get scope() {\n return this.context.scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get targets() {\n return this.scope.targets;\n }\n get outlets() {\n return this.scope.outlets;\n }\n get classes() {\n return this.scope.classes;\n }\n get data() {\n return this.scope.data;\n }\n initialize() {}\n connect() {}\n disconnect() {}\n dispatch(eventName) {\n let _ref23 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref23$target = _ref23.target,\n target = _ref23$target === void 0 ? this.element : _ref23$target,\n _ref23$detail = _ref23.detail,\n detail = _ref23$detail === void 0 ? {} : _ref23$detail,\n _ref23$prefix = _ref23.prefix,\n prefix = _ref23$prefix === void 0 ? this.identifier : _ref23$prefix,\n _ref23$bubbles = _ref23.bubbles,\n bubbles = _ref23$bubbles === void 0 ? true : _ref23$bubbles,\n _ref23$cancelable = _ref23.cancelable,\n cancelable = _ref23$cancelable === void 0 ? true : _ref23$cancelable;\n const type = prefix ? `${prefix}:${eventName}` : eventName;\n const event = new CustomEvent(type, {\n detail,\n bubbles,\n cancelable\n });\n target.dispatchEvent(event);\n return event;\n }\n}\nController.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing, OutletPropertiesBlessing];\nController.targets = [];\nController.outlets = [];\nController.values = {};\nexport { Application, AttributeObserver, Context, Controller, ElementObserver, IndexedMultimap, Multimap, SelectorObserver, StringMapObserver, TokenListObserver, ValueListObserver, add, defaultSchema, del, fetch, prune };","(function (global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n 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) {\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\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 });\n var classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n function getMetaValue(name) {\n var 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 var elements = root.querySelectorAll(selector);\n return toArray$1(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 var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n return event;\n }\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type,\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 this.xhr.setRequestHeader(\"X-CSRF-Token\", getMetaValue(\"csrf-token\"));\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n var id = 0;\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n return object[methodName].apply(object, messages);\n }\n }\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n _this.dispatch(\"end\");\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n var controllers = this.createDirectUploadControllers();\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n if (controller) {\n controller.start(function (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 }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n function didClick(event) {\n var 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 var form = event.target;\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n 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.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","var map = {\n\t\"./campus_details_controller.js\": 3,\n\t\"./filter_program_controller.js\": 4,\n\t\"./proposals_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 = 2;","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"body\"]\n\n static values = {\n locale: String\n }\n\n connect() {}\n\n updateModal(e) {\n const url = `/client/proposals/${e.currentTarget.dataset.proposalId}?locale=${this.localeValue}`\n fetch(url, {headers: {\"Accept\": \"text/plain\"}})\n .then(response => response.text())\n .then((data) => {\n this.bodyTarget.innerHTML = data\n })\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"programs\", \"sendEmail\"];\n\n /**\n Updates the programs and email visibility based on the selected option.\n @param {Event} e - The event object triggered by the selection change.\n */\n updatePrograms(e) {\n this.sendEmailTarget.hidden =\n e.target.selectedOptions[0].dataset.sendMail == \"false\";\n\n if (e.target.value) {\n const url = `/program_types/${e.target.value}/form_proposal`;\n fetch(url, { headers: { Accept: \"text/plain\" } })\n .then((response) => response.text())\n .then((data) => {\n this.programsTarget.innerHTML = data;\n });\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n \nexport default class extends Controller {\n static targets = [ \"programInput\", \"campusInput\" ]\n\n /**\n updateCampuses()\n Fetches campuses and updates target select tag with the list of campuses fetched from the given url.\n */\n updateCampuses(){\n const url = `/programs/${this.programInputTarget.value}/campuses` \n fetch(url , {\n method: \"get\",\n headers: { \"Accept\": \"application/json\" },\n })\n .then(response => response.json())\n .then((campuses) => {\n this.campusInputTarget.innerHTML = \"\"\n this.campusInputTarget.innerHTML += \"\"\n campuses.forEach (campus => {\n this.campusInputTarget.innerHTML += \"\"\n })\n })\n }\n}\n","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 };","import { DirectUpload } from \"activestorage\";\nexport class AttachmentUpload {\n constructor(attachment, element) {\n this.attachment = attachment;\n this.element = element;\n this.directUpload = new 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}","import * as Trix from \"trix\";\nimport { AttachmentUpload } from \"./attachment_upload\";\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});","const activeSelector = \"[aria-selected='true']\";\nimport { Controller } from \"@hotwired/stimulus\";\nexport default class Multiselect extends Controller {\n constructor() {\n super(...arguments);\n this.onArrowDownKeydown = event => {\n const item = this.sibling(true);\n if (item) this.navigate(item);\n event.preventDefault();\n };\n this.onArrowUpKeydown = event => {\n const item = this.sibling(false);\n if (item) this.navigate(item);\n event.preventDefault();\n };\n this.onBackspaceKeydown = () => {\n if (this.searchTarget.value !== \"\") return;\n if (!this.selectedValue.length) return;\n const selected = this.selectedValue;\n const value = selected.pop().value;\n this.uncheckItem(value);\n this.selectedValue = selected;\n this.element.dispatchEvent(new CustomEvent(\"multiselect-removed\", {\n detail: {\n id: value\n }\n }));\n };\n this.onEnterKeydown = e => {\n if (this.focusedItem) this.focusedItem.click();\n };\n this.onEscapeKeydown = () => {\n if (this.searchTarget.value !== \"\") {\n this.searchTarget.value = \"\";\n return this.search();\n }\n this.toggleDropdown();\n };\n }\n connect() {\n this.hiddenTarget.insertAdjacentHTML(\"afterend\", this.template);\n if (this.selectedValue.length) this.selectedValueChanged();\n this.search = debounce(this.search.bind(this), 300);\n this.enhanceHiddenSelect();\n if (this.preloadUrlValue) this.preload();\n }\n\n // Allows selecting the hidden select field from html and extracting selected id values:\n // document.getElementById(\"selectId\").values - [2, 4, 23]\n enhanceHiddenSelect() {\n Object.defineProperty(this.hiddenTarget, \"values\", {\n get: () => {\n if (this.selectedValue.length <= 0) return [];\n return this.selectedValue.map(item => item.value);\n }\n });\n }\n search() {\n if (this.searchRemoteValue) return this.searchRemote();\n this.searchLocal();\n }\n async searchRemote() {\n if (this.searchTarget.value === \"\") return;\n const response = await fetch(this.searchUrlValue + \"?\" + new URLSearchParams({\n q: this.searchTarget.value,\n preselects: this.selectedValue.map(x => x.value).join(\",\")\n }));\n const searchedItems = await response.json();\n this.itemsValue = searchedItems;\n this.dropdownTarget.classList.add(\"multiselect__dropdown--open\");\n }\n searchLocal() {\n this.dropdownTarget.classList.add(\"multiselect__dropdown--open\");\n if (this.searchTarget.value === \"\") {\n let theRestOfTheItems = this.itemsValue.filter(x => !this.selectedValue.map(y => y.value).includes(x.value));\n this.listTarget.innerHTML = this.selectedItems;\n this.listTarget.insertAdjacentHTML(\"beforeend\", this.items(theRestOfTheItems));\n }\n let searched = this.itemsValue.filter(item => {\n return item.text.toLowerCase().includes(this.searchTarget.value.toLowerCase());\n });\n let selectedSearched = this.selectedValue.filter(item => {\n return item.text.toLowerCase().includes(this.searchTarget.value.toLowerCase());\n });\n searched = searched.filter(x => !selectedSearched.map(y => y.value).includes(x.value));\n if (searched.length === 0 && this.addableUrlValue) {\n return this.listTarget.innerHTML = this.noResultsTemplate;\n }\n if (searched.length === 0) this.dropdownTarget.classList.remove(\"multiselect__dropdown--open\");\n this.listTarget.innerHTML = this.items(selectedSearched, true);\n this.listTarget.insertAdjacentHTML(\"beforeend\", this.items(searched));\n }\n async preload() {\n const response = await fetch(this.preloadUrlValue);\n const items = await response.json();\n this.itemsValue = items;\n }\n toggleDropdown() {\n if (this.dropdownTarget.classList.contains(\"multiselect__dropdown--open\")) {\n this.dropdownTarget.classList.remove(\"multiselect__dropdown--open\");\n if (this.selectedValue.length > 0) this.inputContainerTarget.style.display = \"none\";\n this.searchTarget.blur();\n } else {\n if (this.itemsValue.length) this.dropdownTarget.classList.add(\"multiselect__dropdown--open\");\n this.searchTarget.focus();\n }\n }\n closeOnClickOutside(_ref) {\n let target = _ref.target;\n if (this.element.contains(target)) return;\n this.dropdownTarget.classList.remove(\"multiselect__dropdown--open\");\n if (this.selectedValue.length > 0) this.inputContainerTarget.style.display = \"none\";\n this.searchTarget.value = \"\";\n if (!this.searchRemoteValue) {\n this.listTarget.innerHTML = this.allItems;\n this.selectedValue.forEach(selected => {\n this.checkItem(selected.value);\n });\n }\n }\n searchUrlValueChanged() {\n if (this.searchUrlValue) this.searchRemoteValue = true;\n }\n itemsValueChanged() {\n if (!this.hasListTarget) return;\n if (this.itemsValue.length) {\n this.listTarget.innerHTML = this.items(this.itemsValue);\n } else {\n this.listTarget.innerHTML = this.noResultsTemplate;\n }\n }\n selectedValueChanged() {\n if (!this.hasPreviewTarget) return;\n while (this.hiddenTarget.options.length) this.hiddenTarget.remove(0);\n if (this.selectedValue.length > 0) {\n this.previewTarget.innerHTML = this.pills;\n this.searchTarget.style.paddingTop = \"0.5rem\";\n this.selectedValue.forEach(selected => {\n const option = document.createElement(\"option\");\n option.text = selected.text;\n option.value = selected.value;\n option.setAttribute(\"selected\", true);\n this.hiddenTarget.add(option);\n });\n if (!this.searchRemoteValue) {\n this.selectedValue.forEach(selected => {\n this.checkItem(selected.value);\n });\n }\n } else {\n this.searchTarget.style.paddingTop = \"0\";\n this.inputContainerTarget.style.display = \"\";\n this.previewTarget.innerHTML = \"\";\n }\n this.element.dispatchEvent(new Event(\"multiselect-change\"));\n }\n removeItem(e) {\n e.stopPropagation();\n const itemToRemove = e.currentTarget.parentNode;\n this.selectedValue = this.selectedValue.filter(x => x.value.toString() !== itemToRemove.dataset.value);\n this.uncheckItem(itemToRemove.dataset.value);\n this.element.dispatchEvent(new CustomEvent(\"multiselect-removed\", {\n detail: {\n id: itemToRemove.dataset.value\n }\n }));\n }\n uncheckItem(value) {\n const itemToUncheck = this.listTarget.querySelector(`input[data-value=\"${value}\"]`);\n if (itemToUncheck) itemToUncheck.checked = false;\n }\n checkItem(value) {\n const itemToCheck = this.listTarget.querySelector(`input[data-value=\"${value}\"]`);\n if (itemToCheck) itemToCheck.checked = true;\n }\n toggleItem(input) {\n const item = {\n text: input.dataset.text,\n value: input.dataset.value\n };\n let newSelectedArray = this.selectedValue;\n if (input.checked) {\n newSelectedArray.push(item);\n if (this.focusedItem) {\n this.focusedItem.closest(\"li\").classList.remove(\"multiselect__focused\");\n this.focusedItem.removeAttribute(\"aria-selected\");\n }\n input.setAttribute(\"aria-selected\", \"true\");\n input.closest(\"li\").classList.add(\"multiselect__focused\");\n this.element.dispatchEvent(new CustomEvent(\"multiselect-added\", {\n detail: {\n item: item\n }\n }));\n } else {\n newSelectedArray = newSelectedArray.filter(selected => selected.value.toString() !== item.value);\n this.element.dispatchEvent(new CustomEvent(\"multiselect-removed\", {\n detail: {\n id: item.value\n }\n }));\n }\n this.selectedValue = newSelectedArray;\n }\n onKeyDown(e) {\n const handler = this[`on${e.key}Keydown`];\n if (handler) handler(e);\n }\n sibling(next) {\n const options = this.itemTargets;\n const selected = this.focusedItem;\n const index = options.indexOf(selected);\n const sibling = next ? options[index + 1] : options[index - 1];\n const def = next ? options[0] : options[options.length - 1];\n return sibling || def;\n }\n async addable(e) {\n e.preventDefault();\n const query = this.searchTarget.value;\n if (query === \"\" || this.itemsValue.some(item => item.text === query)) return;\n const response = await fetch(this.addableUrlValue, {\n method: \"POST\",\n body: JSON.stringify({\n addable: query\n })\n });\n if (response.ok) {\n const addedItem = await response.json();\n this.addAddableItem(addedItem);\n }\n }\n addAddableItem(addedItem) {\n this.itemsValue = this.itemsValue.concat(addedItem);\n this.selectedValue = this.selectedValue.concat(addedItem);\n this.searchTarget.value = \"\";\n this.element.dispatchEvent(new CustomEvent(\"multiselect-added\", {\n detail: {\n item: addedItem\n }\n }));\n }\n navigate(target) {\n const previouslySelected = this.focusedItem;\n if (previouslySelected) {\n previouslySelected.removeAttribute(\"aria-selected\");\n previouslySelected.closest(\"li\").classList.remove(\"multiselect__focused\");\n }\n target.setAttribute(\"aria-selected\", \"true\");\n target.closest(\"li\").classList.add(\"multiselect__focused\");\n target.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\"\n });\n }\n get focusedItem() {\n return this.listTarget.querySelector(activeSelector);\n }\n focusSearch() {\n this.inputContainerTarget.style.display = \"\";\n this.searchTarget.focus();\n }\n addableEvent() {\n document.dispatchEvent(new CustomEvent(\"multiselect-addable\"));\n }\n get template() {\n return `\n
multiselect#toggleDropdown focus->multiselect#focusSearch\" tabindex=\"0\" data-turbo-cache=\"false\">\n
\n
\n
${this.inputTemplate}
\n
\n
multiselect#closeOnClickOutside\">\n
\n \n
\n
\n `;\n }\n get noResultsTemplate() {\n if (!this.addableUrlValue) return `
${this.element.dataset.noResultsMessage}
`;\n return `\n
\n multiselect#addableEvent\">\n ${this.element.dataset.addablePlaceholder}\n \n
\n `;\n }\n get inputTemplate() {\n return `\n multiselect#onKeyDown\">\n `;\n }\n items(items) {\n let selected = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const checked = selected ? \"checked\" : \"\";\n let itemsTemplate = \"\";\n items.forEach(item => itemsTemplate += this.itemTemplate(item, checked));\n return itemsTemplate;\n }\n get pills() {\n let itemsTemplate = \"\";\n this.selectedValue.forEach(item => itemsTemplate += this.pillTemplate(item));\n return itemsTemplate;\n }\n get selectedItems() {\n return this.items(this.selectedValue, true);\n }\n get allItems() {\n return this.items(this.itemsValue);\n }\n itemTemplate(item) {\n let selected = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n return `\n
  • \n \n
  • \n `;\n }\n checkBoxChange(event) {\n event.preventDefault();\n this.searchTarget.focus();\n this.toggleItem(event.currentTarget);\n }\n pillTemplate(item) {\n if (this.disabledValue) {\n return `
    \n ${item.text}\n
    `;\n } else {\n return `
    \n ${item.text}\n multiselect#removeItem\">\n \n \n \n \n \n
    `;\n }\n }\n}\nMultiselect.targets = [\"hidden\", \"list\", \"search\", \"preview\", \"dropdown\", \"item\", \"addable\", \"inputContainer\"];\nMultiselect.values = {\n items: Array,\n selected: Array,\n searchUrl: String,\n searchRemote: {\n type: Boolean,\n default: false\n },\n preloadUrl: String,\n addableUrl: String,\n disabled: {\n type: Boolean,\n default: false\n }\n};\nfunction debounce(fn, delay) {\n var _this = this;\n let timeoutId = null;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n const callback = () => fn.apply(_this, args);\n clearTimeout(timeoutId);\n timeoutId = setTimeout(callback, delay);\n };\n}\nexport { Multiselect };","// Load all the controllers within this directory and all subdirectories.\n// Controller files must be named *_controller.js.\n\nimport { Application } from \"@hotwired/stimulus\";\nimport { definitionsFromContext } from \"@hotwired/stimulus-webpack-helpers\";\nimport { Multiselect } from \"@wizardhealth/stimulus-multiselect\";\n\nconst application = Application.start();\nconst context = require.context(\n \"controllers\",\n true,\n /_controller(\\.js|\\.js\\.erb)$/\n);\napplication.register(\"multiselect\", Multiselect);\napplication.load(definitionsFromContext(context));\n","/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys().map(key => definitionForModuleWithContextAndKey(context, key)).filter(value => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return {\n identifier,\n controllerConstructor\n };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };"],"sourceRoot":""}