{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/trix/dist/trix.esm.min.js","webpack:///./node_modules/@rails/actiontext/app/assets/javascripts/actiontext.esm.js","webpack:///./app/javascript/trix_oembed.js","webpack:///./app/javascript/packs/application.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_toArray","arr","_arrayWithHoles","iter","iterator","Array","from","_iterableToArray","_unsupportedIterableToArray","_nonIterableRest","_slicedToArray","_i","_s","_e","_arr","_n","_d","next","done","push","length","err","_iterableToArrayLimit","TypeError","minLen","_arrayLikeToArray","toString","slice","constructor","test","len","arr2","isArray","e","preview","presentation","caption","size","file","default","tagName","parse","quote","nestable","heading1","terminal","breakOnReturn","group","code","htmlAttributes","text","plaintext","bulletList","bullet","listAttribute","parentNode","this","numberList","number","attachmentGallery","exclusive","toLowerCase","navigator","userAgent","match","parseInt","a","composesExistingText","recentAndroid","samsungAndroid","forcesObjectResizing","supportsInputEvents","InputEvent","every","ADD_ATTR","SAFE_FOR_XML","RETURN_DOM","attachFiles","bold","bullets","byte","bytes","captionPlaceholder","indent","italic","link","numbers","outdent","redo","remove","strike","undo","unlink","url","urlPlaceholder","GB","KB","MB","PB","TB","u","h","prefix","precision","formatter","concat","Math","floor","log","pow","toFixed","replace","g","document","documentElement","f","matches","b","_ref","arguments","onElement","matchingSelector","withCallback","inPhase","preventDefault","times","destroy","y","target","removeEventListener","addEventListener","v","_ref2","bubbles","cancelable","attributes","createEvent","initEvent","dispatchEvent","A","nodeType","_ref3","untilNode","Node","ELEMENT_NODE","closest","x","activeElement","C","E","previousSibling","S","removeChild","R","_ref4","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","k","T","createElement","editable","contenteditable","setAttribute","style","data","dataset","className","split","forEach","classList","add","textContent","childNodes","appendChild","w","L","D","I","firstChild","N","_ref5","strict","includes","O","COMMENT_NODE","F","_ref6","B","trixCursorTarget","P","M","TEXT_NODE","_","level2Enabled","getLevel","pickFiles","type","multiple","hidden","id","fileInputId","files","getElementById","body","click","j","removeBlankTableCells","tableCellSeparator","tableRowSeparator","W","inheritable","parser","window","getComputedStyle","fontWeight","fontStyle","href","groupTagName","getAttribute","frozen","backgroundColor","U","getDefaultHTML","V","interval","z","freeze","__proto__","attachments","blockAttributes","browser","css","attachment","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","dompurify","fileSize","input","keyNames","lang","textAttributes","toolbar","q","static","_H","H","toMethod","toProperty","optional","J","K","Error","Function","apply","RegExp","G","Y","$","X","fromUCS2String","et","it","super","ucs2String","codepoints","ucs2Length","offsetToUCS2Offset","max","offsetFromUCS2Offset","fromCodepoints","charAt","isEqualTo","box","toJSON","getCacheKey","Z","Q","codePointAt","tt","String","fromCodePoint","map","charCodeAt","fromCharCode","join","nt","rt","fromJSON","JSON","hasSameConstructorAs","inspect","contentsForInspection","toJSONString","stringify","toUTF16String","ot","st","splice","at","lt","dir","dirName","FormData","has","trim","ct","ut","ht","dt","gt","bt","pt","mt","keys","ft","vt","At","yt","head","insertBefore","xt","nonce","content","querySelector","Ct","Et","getData","DOMParser","parseFromString","St","platform","metaKey","ctrlKey","Rt","setTimeout","kt","Tt","wt","Nt","Lt","_wt2","It","Dt","_wt4","_wt6","Ot","update","selectionManagers","start","started","stop","registerSelectionManager","unregisterSelectionManager","filter","notifySelectionManagersOfSelectionChange","selectionDidChange","reset","Ft","Pt","getSelection","rangeCount","Mt","getRangeAt","_t","Bt","removeAllRanges","addRange","jt","startContainer","endContainer","getPrototypeOf","Wt","Ut","Vt","source","zt","qt","utf16String","offset","Ht","Yt","getKeys","getKeysCommonToHash","values","Gt","merge","Jt","Kt","$t","toArray","isEmpty","array","toObject","sort","Xt","_ref7","depth","asTree","canBeGrouped","canBeGroupedWith","_ref8","objects","groupObjects","getObjects","getDepth","Zt","find","Qt","te","elements","trixStoreKey","ee","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","promise","Promise","perform","release","cancel","proxyMethod","ie","options","childViews","rootView","getNodes","nodes","createNodes","cloneNode","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ne","getAllChildViews","findElement","findElementForObject","element","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","objectGroup","getChildViews","createContainerElement","re","entries","oe","setPrototypeOf","se","isFrozen","ae","le","getOwnPropertyDescriptor","ce","ue","seal","he","_ref9","Reflect","de","ge","construct","me","Te","pe","pop","fe","be","ve","Ae","ye","xe","indexOf","Ce","Ee","Se","Re","ke","we","Le","De","_ref10","_ref11","Ne","Ie","Oe","Fe","Pe","Me","Be","je","We","Ue","Ve","ze","qe","He","Je","Ke","Ge","Ye","$e","Xe","Ze","Qe","ARIA_ATTR","ATTR_WHITESPACE","CUSTOM_ELEMENT","DATA_ATTR","DOCTYPE_NAME","ERB_EXPR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","MUSTACHE_EXPR","TMPLIT_EXPR","oi","si","version","removed","isSupported","currentScript","DocumentFragment","HTMLTemplateElement","Element","_e$NamedNodeMap","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","trustedTypes","ownerDocument","_n2","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","afterSanitizeAttributes","afterSanitizeElements","afterSanitizeShadowDOM","beforeSanitizeAttributes","beforeSanitizeElements","beforeSanitizeShadowDOM","uponSanitizeAttribute","uponSanitizeElement","uponSanitizeShadowNode","createHTMLDocument","tagNameCheck","writable","configurable","attributeNameCheck","allowCustomizedBuiltInElements","PARSER_MEDIA_TYPE","ALLOWED_TAGS","ALLOWED_ATTR","ALLOWED_NAMESPACES","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","FORBID_CONTENTS","FORBID_TAGS","FORBID_ATTR","USE_PROFILES","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","FORCE_BODY","SANITIZE_DOM","SANITIZE_NAMED_PROPS","KEEP_CONTENT","IN_PLACE","ALLOWED_URI_REGEXP","NAMESPACE","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","CUSTOM_ELEMENT_HANDLING","html","svg","svgFilters","mathMl","ADD_TAGS","table","tbody","TRUSTED_TYPES_POLICY","createHTML","createScriptURL","createPolicy","hasAttribute","console","warn","attribute","getAttributeNode","removeAttribute","createDocument","innerHTML","createTextNode","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","nodeName","namespaceURI","hasChildNodes","allowedTags","firstElementChild","__removalCount","Boolean","attrName","attrValue","keepAttr","allowedAttributes","forceKeepAttr","getAttributeType","setAttributeNS","nextNode","sanitize","shadowroot","shadowrootmode","outerHTML","doctype","setConfig","clearConfig","isValidAttribute","addHook","removeHook","removeHooks","removeAllHooks","ai","li","ci","ui","getHTML","_ref12","forbiddenProtocols","forbiddenElements","hi","sanitizeElements","normalizeListElementNesting","getBody","currentNode","elementIsRemovable","sanitizeElement","protocol","querySelectorAll","previousElementSibling","elementIsForbidden","elementIsntSerializable","di","gi","uploadProgressDelegate","attachmentPiece","piece","createContentNodes","getClassName","getHref","tabindex","hasContent","setHTML","getContent","createCaptionElement","isPending","progressElement","class","getUploadProgress","trixMutable","mi","getCaption","getCaptionConfig","getFilename","getFormattedFilesize","getType","getExtension","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","pi","findProgressElement","attachmentDidChangeUploadProgress","fi","previewDelegate","image","src","refresh","updateAttributesForImage","getURL","getPreviewURL","getWidth","getHeight","width","height","attachmentDidChangeAttributes","bi","getAttributes","textConfig","context","string","createAttachmentNodes","createStringNodes","isPreviewable","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","vi","getPieces","Ai","yi","xi","block","createComment","getLastAttribute","shouldAddExtraNewlineElement","isRTL","_mt","_mt$htmlAttributes","assign","getBlockBreakPosition","_t2","Ci","render","sync","elementStore","setDocument","shadowElement","getBlocks","isSynced","Si","createDocumentFragmentForSync","lastChild","didSync","Ei","replaceChild","Ri","ki","Ti","resolve","then","reject","arg","_invoke","return","wi","toPrimitive","Number","Li","Di","Oi","Ii","Ni","set","Fi","Pi","Mi","Bi","asyncIterator","throw","types","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","copy","getAttributesHash","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","ji","Image","onload","naturalWidth","naturalHeight","onerror","Wi","attributesForFile","setFile","filename","filesize","contentType","releaseFile","didChangeAttributes","setAttributes","delegate","preloadURL","previewablePattern","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","URL","createObjectURL","revokeObjectURL","catch","Ui","ensureAttachmentExclusivelyHasAttribute","removeProhibitedAttributes","permittedAttributes","toConsole","registerType","Vi","consolidateWith","splitAtOffset","zi","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","Hi","Ji","getObjectAtPosition","findIndexAndOffsetAtPosition","index","_this$findIndexAndOff2","_t$splitAtOffset2","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","endPosition","qi","Ki","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","Gi","Yi","copyWithText","copyWithoutText","copyWithoutAttributes","addAttribute","en","addHTMLAttribute","rn","removeLastAttribute","nn","getAttributeLevel","getAttributeAtLevel","hasAttributes","getLastNestableAttribute","getNestableAttributes","getNestingLevel","decreaseNestingLevel","increaseNestingLevel","lastIndexOf","getListItemAttributes","isListItem","isTerminalBlock","breaksOnReturn","findLineBreakInDirectionFromPosition","textForStringWithAttributes","getTextWithoutBlockBreak","Qi","$i","Zi","tn","Xi","blockBreak","on","blockList","getBlockAtIndex","consolidateBlocks","copyUsingObjectsFromDocument","copyWithBaseBlockAttributes","replaceBlock","insertDocumentAtRange","_this$locationFromPos","locationFromPosition","getBlockAtPosition","mergeDocumentAtRange","getBaseBlockAttributes","getBlockCount","insertTextAtRange","_this$locationFromPos2","_t4","_Array$from2","locationRangeFromRange","_t6","getDocumentAtRange","_o$getBlocks2","eachBlockAtRange","eachBlock","getTextAtIndex","removeAttributeForAttachment","setHTMLAttributeAtPosition","insertBlockBreakAtRange","applyBlockAttributeAtRange","expandRangeToLineBreaksAndSplitBlocks","range","removeLastListAttributeAtRange","exceptAttributeName","convertLineBreaksToBlockBreaksInRange","removeBlockAttributesAtRange","removeLastTerminalAttributeAtRange","consolidateBlocksAtRange","_t10","positionFromLocation","_t14","getTextAtPosition","_this$locationFromPos7","getCharacterAtPosition","_this$locationFromPos8","getEditCount","editCount","_t16","getCommonAttributesAtPosition","sn","_this$locationFromPos9","getRangeOfCommonAttributeAtPosition","_this$locationFromPos10","_Array$from6","min","getLocationRangeOfAttachment","getAttachmentPieceForAttachment","findRangesForBlockAttribute","findRangesForTextAttribute","withValue","locationRangeFromPosition","_Array$from8","rangeFromLocationRange","getTexts","toSerializableDocument","an","ln","cn","referenceElement","blocks","blockElements","processedElements","getDocument","createHiddenContainer","containerElement","gn","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","display","nextSibling","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","appendStringWithAttributes","getBlockAttributes","getBlockHTMLAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","parentElement","un","fn","mn","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","needsTableSeparator","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","unshift","findBlockElementAncestors","reverse","pn","hn","getMarginOfDefaultBlockElement","getMarginOfBlockElementAtIndex","top","bottom","dn","whiteSpace","marginTop","marginBottom","FILTER_REJECT","FILTER_ACCEPT","bn","vn","An","yn","xn","HTMLElement","Cn","En","attachmentManager","requestRemovalOfAttachment","Sn","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","Rn","composition","getSelectedRange","startPosition","startLocation","endLocation","previousCharacter","nextCharacter","shouldInsertBlockBreak","shouldBreakFormattedBlock","shouldDecreaseListLevel","shouldPrependListItem","shouldRemoveLastBlockAttribute","kn","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","setHTMLAtributeAtPosition","_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","_ref19","Set","added","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","Tn","undoEntries","redoEntries","recordUndoEntry","_ref20","consolidatable","wn","createEntry","description","snapshot","canUndo","canRedo","_ref21","Ln","Dn","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","Nn","In","On","selectionManager","undoManager","filters","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","_ref22","Fn","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","Pn","findContainerAndOffsetFromLocation","_this$findNodeAndOffs2","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","Mn","Bn","jn","createDOMRangeFromPoint","caretPositionFromPoint","_document$caretPositi","offsetNode","createRange","setStart","caretRangeFromPoint","createTextRange","moveToPoint","select","getClientRectsForDOMRange","getClientRects","Wn","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","setLocationRangeFromPointRange","getLocationAtPoint","lock","unlock","clearSelection","selectionIsCollapsed","collapsed","selectionIsExpanded","domRangeWithinElement","startOffset","endOffset","pauseTemporarily","paused","clearTimeout","locationRangeDidChange","setEnd","Un","Attachment","AttachmentManager","AttachmentPiece","Block","Composition","Document","Editor","HTMLParser","HTMLSanitizer","LineBreakInsertion","LocationMapper","ManagedAttachment","Piece","PointMapper","SelectionManager","SplittableList","StringPiece","Text","UndoManager","Vn","ObjectView","AttachmentView","BlockView","DocumentView","PieceView","PreviewableAttachmentView","TextView","zn","qn","Hn","Jn","do","undos","Kn","title","trixAction","didClickToolbar","didClickActionButton","placeholder","tabIndex","scrollHeight","didInputCaption","didKeyDownCaption","didChangeCaption","didBlurCaption","editCaption","focus","container","install","makeElementMutable","addToolbar","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","stopPropagation","attachmentEditorDidRequestRemovalOfAttachment","keyCode","attachmentEditorDidRequestDeselectingAttachment","Gn","didFocus","didBlur","didClickAttachment","documentView","focused","compositionControllerDidFocus","blurPromise","compositionControllerDidBlur","findAttachmentForElement","compositionControllerDidSelectAttachment","getSerializableElement","isEditingAttachment","canSyncDocumentView","compositionControllerWillSyncDocumentView","compositionControllerDidSyncDocumentView","compositionControllerDidRender","rerenderViewForObject","refreshViewCache","attachmentEditor","installAttachmentEditorForAttachment","uninstallAttachmentEditor","compositionControllerWillUpdateAttachment","compositionControllerDidRequestRemovalOfAttachment","compositionControllerDidRequestDeselectingAttachment","Yn","$n","Xn","Zn","childList","characterData","characterDataOldValue","subtree","Qn","didMutate","observer","MutationObserver","observe","disconnect","mutations","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","attributeName","addedNodes","removedNodes","getTextMutationSummary","_this$getTextChangesF","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","tr","_zt2","_zt4","oldValue","er","FileReader","abort","readAsArrayBuffer","ir","shouldIgnore","previousEvent","event","checkSamsungKeyboardBuggyModeStart","checkSamsungKeyboardBuggyModeEnd","buggyMode","insertingLongTextAfterUnidentifiedChar","nr","innerText","inputType","isBeforeInputInsertText","previousEventWasUnidentifiedKeydown","or","rr","sr","mutationObserver","flakyKeyboardDetector","events","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","all","handleInput","inputControllerWillAttachFiles","responder","defaultPrevented","eventName","inputControllerWillHandleInput","inputControllerDidHandleInput","createLinkHTML","ar","lr","cr","ur","hr","resetInputSummary","setInputSummary","inputSummary","isComposing","inputControllerDidAllowUnhandledInput","mutationIsExpected","preferDocument","didDelete","compositionInput","getEndData","getCompositionInput","fr","isEnded","serializeSelectionToDataTransfer","setData","canAcceptDataTransfer","Files","getPastedHTMLUsingHiddenElement","left","pageXOffset","pageYOffset","opacity","requestAnimationFrame","keydown","didInput","keyName","inputControllerDidReceiveKeyboardCommand","keypress","altKey","mr","inputControllerWillPerformTyping","textInput","toUpperCase","dragenter","dragstart","dataTransfer","draggedRange","inputControllerDidStartDrag","dragover","clientX","clientY","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","drop","inputControllerWillMoveText","fromJSONString","cut","clipboardData","inputControllerWillCutText","paste","testClipboardData","clipboard","pr","inputControllerWillPaste","inputControllerDidPaste","items","getAsFile","dr","compositionstart","compositionupdate","compositionend","end","beforeinput","backspace","delete","tab","right","control","shift","alt","meta","gr","which","charCode","inputController","isSignificant","canApplyToDocument","br","scheduledRender","composing","reparse","scheduleRender","cancelAnimationFrame","afterRender","toggleAttributeIfSupported","inputControllerWillPerformFormatting","activateAttributeIfSupported","getTargetDOMRange","minLength","getTargetRanges","vr","withEvent","Er","shiftKey","xr","Cr","inputTypes","dragging","point","Sr","Ar","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","yr","insertFromYank","insertLink","insertOrderedList","insertParagraph","insertReplacementText","insertTranspose","insertUnorderedList","Rr","kr","Tr","wr","Lr","Dr","Nr","Ir","Fr","Or","Pr","didClickAttributeButton","didClickDialogButton","didKeyDownDialogInput","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","disabled","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","toolbarDidShowDialog","willValidate","setCustomValidity","checkValidity","isSafeAttribute","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","Mr","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","invokingElement","getCurrentActions","currentActions","_t19","updateInputElement","setFormValue","documentChangedSinceLastRender","notify","getUndoContext","getLocationContext","getTimeContext","Date","getTime","Br","AttachmentEditorController","CompositionController","Controller","EditorController","InputController","Level0InputController","Level2InputController","ToolbarController","_r","SelectionChangeObserver","jr","FileVerificationOperation","ImagePreloadOperation","Wr","connectedCallback","Ur","zr","qr","Hr","queryCommandSupported","execCommand","Jr","Kr","WeakMap","Gr","WeakSet","Yr","attachInternals","$r","disconnectedCallback","labels","inputElement","toggleAttribute","required","validity","validationMessage","reportValidity","_this$element","setValidity","valueMissing","customError","Xr","Zr","Qr","to","form","contains","eo","io","formAssociated","localName","nextElementSibling","editorController","defaultValue","Vr","formDisabledCallback","formResetCallback","no","VERSION","config","core","models","views","controllers","observers","operations","TrixEditorElement","TrixToolbarElement","Filter","attachmentGalleryFilter","Trix","customElements","define","sparkMd5","undefined$1","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","tmp","lo","state","substring","md51_array","subarray","Uint8Array","rhex","hex","toUtf8","str","unescape","encodeURIComponent","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arrayBuffer2Utf8Str","concatenateArrayBuffers","first","second","result","byteLength","buffer","hexToBinaryString","substr","SparkMD5","clamp","val","num","targetArray","sourceArray","begin","append","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","hashBinary","factory","fileSlice","File","mozSlice","webkitSlice","FileChecksum","callback","chunkSize","chunkCount","ceil","chunkIndex","md5Buffer","fileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","root","selector","eventInit","undefined","detail","BlobRecord","checksum","customHeaders","content_type","byte_size","xhr","XMLHttpRequest","open","responseType","setRequestHeader","headerKey","csrfToken","getMetaValue","requestDidLoad","requestDidError","status","response","_this$xhr","send","blob","direct_upload","directUploadData","BlobUpload","_blob$directUploadDat","headers","_this$xhr2","DirectUpload","error","upload","methodName","_len","messages","_key","DirectUploadController","directUpload","dispatch","hiddenInput","insertAdjacentElement","dispatchError","signed_id","uploadRequestDidProgress","progress","loaded","total","alert","directUploadWillCreateBlobWithXHR","directUploadWillStoreFileWithXHR","DirectUploadsController","inputs","createDirectUploadControllers","startNextController","controller","processingAttribute","submitButtonsByForm","didClick","button","didSubmitForm","handleFormSubmissionEvent","didSubmitRemoteElement","disable","enable","submitForm","ActiveStorage","AttachmentUpload","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate","EmbedController","patterns","hrefElement","embedContainerElement","embedElement","installEventHandlers","embed","pattern","fetch","ajax","success","showEmbed","currentEmbed","require"],"mappings":"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","file":"js/application-3442270c2057e7854446.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 = 2);\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 = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/*\nTrix 2.1.12\nCopyright © 2024 37signals, LLC\n */\nvar t = \"2.1.12\";\nconst e = \"[data-trix-attachment]\",\n i = {\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 n = {\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 htmlAttributes: [\"language\"],\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 r(t.parentNode) === n[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 r(t.parentNode) === n[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 r = t => {\n var e;\n return null == t || null === (e = t.tagName) || void 0 === e ? void 0 : e.toLowerCase();\n },\n o = navigator.userAgent.match(/android\\s([0-9]+.*Chrome)/i),\n s = o && parseInt(o[1]);\nvar a = {\n composesExistingText: /Android.*Chrome/.test(navigator.userAgent),\n recentAndroid: s && s > 12,\n samsungAndroid: s && 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 l = {\n ADD_ATTR: [\"language\"],\n SAFE_FOR_XML: !1,\n RETURN_DOM: !0\n },\n c = {\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 u = [c.bytes, c.KB, c.MB, c.GB, c.TB, c.PB];\nvar h = {\n prefix: \"IEC\",\n precision: 2,\n formatter(t) {\n switch (t) {\n case 0:\n return \"0 \".concat(c.bytes);\n case 1:\n return \"1 \".concat(c.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(u[i]);\n }\n }\n};\nconst d = \"\\ufeff\",\n g = \" \",\n m = function (t) {\n for (const e in t) {\n const i = t[e];\n this[e] = i;\n }\n return this;\n },\n p = document.documentElement,\n f = p.matches,\n b = 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 || p,\n l = i,\n c = \"capturing\" === r,\n u = function (t) {\n null != s && 0 == --s && u.destroy();\n const e = y(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 v = 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 : p;\n i = !1 !== i, n = !1 !== n;\n const s = document.createEvent(\"Events\");\n return s.initEvent(t, i, n), null != r && m.call(s, r), o.dispatchEvent(s);\n },\n A = function (t, e) {\n if (1 === (null == t ? void 0 : t.nodeType)) return f.call(t, e);\n },\n y = 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 (A(t, e)) return t;\n t = t.parentNode;\n }\n }\n },\n x = t => document.activeElement !== t && C(t, document.activeElement),\n C = function (t, e) {\n if (t && e) for (; e;) {\n if (e === t) return !0;\n e = e.parentNode;\n }\n },\n E = 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 S = t => {\n var e;\n return null == t || null === (e = t.parentNode) || void 0 === e ? void 0 : e.removeChild(t);\n },\n R = 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 k = t => {\n var e;\n return null == t || null === (e = t.tagName) || void 0 === e ? void 0 : e.toLowerCase();\n },\n T = 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 w;\nconst L = function () {\n if (null != w) return w;\n w = [];\n for (const t in n) {\n const e = n[t];\n e.tagName && w.push(e.tagName);\n }\n return w;\n },\n D = t => I(null == t ? void 0 : t.firstChild),\n N = 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 ? I(t) : I(t) || !I(t.firstChild) && function (t) {\n return L().includes(k(t)) && !L().includes(k(t.firstChild));\n }(t);\n },\n I = t => O(t) && \"block\" === (null == t ? void 0 : t.data),\n O = t => (null == t ? void 0 : t.nodeType) === Node.COMMENT_NODE,\n F = function (t) {\n let _ref6 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n e = _ref6.name;\n if (t) return B(t) ? t.data === d ? !e || t.parentNode.dataset.trixCursorTarget === e : void 0 : F(t.firstChild);\n },\n P = t => A(t, e),\n M = t => B(t) && \"\" === (null == t ? void 0 : t.data),\n B = t => (null == t ? void 0 : t.nodeType) === Node.TEXT_NODE,\n _ = {\n level2Enabled: !0,\n getLevel() {\n return this.level2Enabled && a.supportsInputEvents ? 2 : 0;\n },\n pickFiles(t) {\n const e = T(\"input\", {\n type: \"file\",\n multiple: !0,\n hidden: !0,\n id: this.fileInputId\n });\n e.addEventListener(\"change\", () => {\n t(e.files), S(e);\n }), S(document.getElementById(this.fileInputId)), document.body.appendChild(e), e.click();\n }\n };\nvar j = {\n removeBlankTableCells: !1,\n tableCellSeparator: \" | \",\n tableRowSeparator: \"\\n\"\n },\n W = {\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 i = \"a:not(\".concat(e, \")\"),\n n = t.closest(i);\n if (n) return n.getAttribute(\"href\");\n }\n },\n strike: {\n tagName: \"del\",\n inheritable: !0\n },\n frozen: {\n style: {\n backgroundColor: \"highlight\"\n }\n }\n },\n U = {\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 V = {\n interval: 5e3\n};\nvar z = Object.freeze({\n __proto__: null,\n attachments: i,\n blockAttributes: n,\n browser: a,\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 dompurify: l,\n fileSize: h,\n input: _,\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: c,\n parser: j,\n textAttributes: W,\n toolbar: U,\n undo: V\n});\nclass q {\n static proxyMethod(t) {\n const _H = H(t),\n e = _H.name,\n i = _H.toMethod,\n n = _H.toProperty,\n r = _H.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 ? J.call(t, o, arguments) : void 0) : (t = o[e], J.call(t, o, arguments));\n };\n }\n}\nconst H = function (t) {\n const e = t.match(K);\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 J = Function.prototype.apply,\n K = new RegExp(\"^(.+?)(\\\\(\\\\))?(\\\\?)?\\\\.(.+?)$\");\nvar G, Y, $;\nclass X extends q {\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, et(t));\n }\n static fromCodepoints(t) {\n return new this(it(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 it(this.codepoints.slice(0, Math.max(0, t))).length;\n }\n offsetFromUCS2Offset(t) {\n return et(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 Z = 1 === (null === (G = Array.from) || void 0 === G ? void 0 : G.call(Array, \"👼\").length),\n Q = null != (null === (Y = \" \".codePointAt) || void 0 === Y ? void 0 : Y.call(\" \", 0)),\n tt = \" 👼\" === (null === ($ = String.fromCodePoint) || void 0 === $ ? void 0 : $.call(String, 32, 128124));\nlet et, it;\net = Z && Q ? 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}, it = tt ? 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 nt = 0;\nclass rt extends q {\n static fromJSONString(t) {\n return this.fromJSON(JSON.parse(t));\n }\n constructor() {\n super(...arguments), this.id = ++nt;\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 X.box(this);\n }\n getCacheKey() {\n return this.id.toString();\n }\n}\nconst ot = 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 st = 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 at = /[\\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 lt = function () {\n const t = T(\"input\", {\n dir: \"auto\",\n name: \"x\",\n dirName: \"x.dir\"\n }),\n e = T(\"textarea\", {\n dir: \"auto\",\n name: \"y\",\n dirName: \"y.dir\"\n }),\n i = T(\"form\");\n i.appendChild(t), i.appendChild(e);\n const n = function () {\n try {\n return new FormData(i).has(e.dirName);\n } catch (t) {\n return !1;\n }\n }(),\n r = function () {\n try {\n return t.matches(\":dir(ltr),:dir(rtl)\");\n } catch (t) {\n return !1;\n }\n }();\n return n ? function (t) {\n return e.value = t, new FormData(i).get(e.dirName);\n } : r ? 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 at.test(e) ? \"rtl\" : \"ltr\";\n };\n }();\nlet ct = null,\n ut = null,\n ht = null,\n dt = null;\nconst gt = () => (ct || (ct = bt().concat(pt())), ct),\n mt = t => n[t],\n pt = () => (ut || (ut = Object.keys(n)), ut),\n ft = t => W[t],\n bt = () => (ht || (ht = Object.keys(W)), ht),\n vt = function (t, e) {\n At(t).textContent = e.replace(/%t/g, t);\n },\n At = function (t) {\n const e = document.createElement(\"style\");\n e.setAttribute(\"type\", \"text/css\"), e.setAttribute(\"data-tag-name\", t.toLowerCase());\n const i = yt();\n return i && e.setAttribute(\"nonce\", i), document.head.insertBefore(e, document.head.firstChild), e;\n },\n yt = function () {\n const t = xt(\"trix-csp-nonce\") || xt(\"csp-nonce\");\n if (t) {\n const e = t.nonce,\n i = t.content;\n return \"\" == e ? i : e;\n }\n },\n xt = t => document.head.querySelector(\"meta[name=\".concat(t, \"]\")),\n Ct = {\n \"application/x-trix-feature-detection\": \"test\"\n },\n Et = 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 St = /Mac|^iP/.test(navigator.platform) ? t => t.metaKey : t => t.ctrlKey;\nconst Rt = t => setTimeout(t, 1),\n kt = 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 Tt = 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 wt = function (t) {\n if (null != t) return Array.isArray(t) || (t = [t, t]), [Nt(t[0]), Nt(null != t[1] ? t[1] : t[0])];\n },\n Lt = function (t) {\n if (null == t) return;\n const _wt = wt(t),\n _wt2 = _slicedToArray(_wt, 2),\n e = _wt2[0],\n i = _wt2[1];\n return It(e, i);\n },\n Dt = function (t, e) {\n if (null == t || null == e) return;\n const _wt3 = wt(t),\n _wt4 = _slicedToArray(_wt3, 2),\n i = _wt4[0],\n n = _wt4[1],\n _wt5 = wt(e),\n _wt6 = _slicedToArray(_wt5, 2),\n r = _wt6[0],\n o = _wt6[1];\n return It(i, r) && It(n, o);\n },\n Nt = function (t) {\n return \"number\" == typeof t ? t : kt(t);\n },\n It = function (t, e) {\n return \"number\" == typeof t ? t === e : Tt(t, e);\n };\nclass Ot extends q {\n constructor() {\n super(...arguments), this.update = this.update.bind(this), this.selectionManagers = [];\n }\n start() {\n this.started || (this.started = !0, document.addEventListener(\"selectionchange\", this.update, !0));\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 this.notifySelectionManagersOfSelectionChange();\n }\n reset() {\n this.update();\n }\n}\nconst Ft = new Ot(),\n Pt = function () {\n const t = window.getSelection();\n if (t.rangeCount > 0) return t;\n },\n Mt = function () {\n var t;\n const e = null === (t = Pt()) || void 0 === t ? void 0 : t.getRangeAt(0);\n if (e && !_t(e)) return e;\n },\n Bt = function (t) {\n const e = window.getSelection();\n return e.removeAllRanges(), e.addRange(t), Ft.update();\n },\n _t = t => jt(t.startContainer) || jt(t.endContainer),\n jt = t => !Object.getPrototypeOf(t),\n Wt = t => t.replace(new RegExp(\"\".concat(d), \"g\"), \"\").replace(new RegExp(\"\".concat(g), \"g\"), \" \"),\n Ut = new RegExp(\"[^\\\\S\".concat(g, \"]\")),\n Vt = t => t.replace(new RegExp(\"\".concat(Ut.source), \"g\"), \" \").replace(/\\ {2,}/g, \" \"),\n zt = 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, X.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 Ht extends rt {\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 = Yt(t[0]),\n i = e.getKeys();\n return t.slice(1).forEach(t => {\n i = e.getKeysCommonToHash(Yt(t)), e = e.slice(i);\n }), e;\n }\n static box(t) {\n return Yt(t);\n }\n constructor() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n super(...arguments), this.values = Gt(t);\n }\n add(t, e) {\n return this.merge(Jt(t, e));\n }\n remove(t) {\n return new Ht(Gt(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 Ht(Kt(this.values, $t(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 Ht(e);\n }\n getKeys() {\n return Object.keys(this.values);\n }\n getKeysCommonToHash(t) {\n return t = Yt(t), this.getKeys().filter(e => this.values[e] === t.values[e]);\n }\n isEqualTo(t) {\n return ot(this.toArray(), Yt(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 Gt(this.values);\n }\n toJSON() {\n return this.toObject();\n }\n contentsForInspection() {\n return {\n values: JSON.stringify(this.values)\n };\n }\n}\nconst Jt = function (t, e) {\n const i = {};\n return i[t] = e, i;\n },\n Kt = function (t, e) {\n const i = Gt(t);\n for (const t in e) {\n const n = e[t];\n i[t] = n;\n }\n return i;\n },\n Gt = 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 Yt = function (t) {\n return t instanceof Ht ? t : new Ht(t);\n },\n $t = function (t) {\n return t instanceof Ht ? t.values : t;\n };\nclass Xt {\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 Zt extends q {\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 Qt {\n constructor(t) {\n this.reset(t);\n }\n add(t) {\n const e = te(t);\n this.elements[e] = t;\n }\n remove(t) {\n const e = te(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 te = t => t.dataset.trixStoreKey;\nclass ee extends q {\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}\nee.proxyMethod(\"getPromise().then\"), ee.proxyMethod(\"getPromise().catch\");\nclass ie extends q {\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 Xt && (i.viewClass = t, t = ne);\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 ne extends ie {\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}\n/*! @license DOMPurify 3.2.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.3/LICENSE */\nconst re = Object.entries,\n oe = Object.setPrototypeOf,\n se = Object.isFrozen,\n ae = Object.getPrototypeOf,\n le = Object.getOwnPropertyDescriptor;\nlet ce = Object.freeze,\n ue = Object.seal,\n he = Object.create,\n _ref9 = \"undefined\" != typeof Reflect && Reflect,\n de = _ref9.apply,\n ge = _ref9.construct;\nce || (ce = function (t) {\n return t;\n}), ue || (ue = function (t) {\n return t;\n}), de || (de = function (t, e, i) {\n return t.apply(e, i);\n}), ge || (ge = function (t, e) {\n return new t(...e);\n});\nconst me = Te(Array.prototype.forEach),\n pe = Te(Array.prototype.pop),\n fe = Te(Array.prototype.push),\n be = Te(String.prototype.toLowerCase),\n ve = Te(String.prototype.toString),\n Ae = Te(String.prototype.match),\n ye = Te(String.prototype.replace),\n xe = Te(String.prototype.indexOf),\n Ce = Te(String.prototype.trim),\n Ee = Te(Object.prototype.hasOwnProperty),\n Se = Te(RegExp.prototype.test),\n Re = (ke = TypeError, function () {\n for (var t = arguments.length, e = new Array(t), i = 0; i < t; i++) e[i] = arguments[i];\n return ge(ke, e);\n });\nvar ke;\nfunction Te(t) {\n return function (e) {\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 de(t, e, n);\n };\n}\nfunction we(t, e) {\n let i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : be;\n oe && oe(t, null);\n let n = e.length;\n for (; n--;) {\n let r = e[n];\n if (\"string\" == typeof r) {\n const t = i(r);\n t !== r && (se(e) || (e[n] = t), r = t);\n }\n t[r] = !0;\n }\n return t;\n}\nfunction Le(t) {\n for (let e = 0; e < t.length; e++) {\n Ee(t, e) || (t[e] = null);\n }\n return t;\n}\nfunction De(t) {\n const e = he(null);\n for (const _ref10 of re(t)) {\n var _ref11 = _slicedToArray(_ref10, 2);\n const i = _ref11[0];\n const n = _ref11[1];\n Ee(t, i) && (Array.isArray(n) ? e[i] = Le(n) : n && \"object\" == typeof n && n.constructor === Object ? e[i] = De(n) : e[i] = n);\n }\n return e;\n}\nfunction Ne(t, e) {\n for (; null !== t;) {\n const i = le(t, e);\n if (i) {\n if (i.get) return Te(i.get);\n if (\"function\" == typeof i.value) return Te(i.value);\n }\n t = ae(t);\n }\n return function () {\n return null;\n };\n}\nconst Ie = ce([\"a\", \"abbr\", \"acronym\", \"address\", \"area\", \"article\", \"aside\", \"audio\", \"b\", \"bdi\", \"bdo\", \"big\", \"blink\", \"blockquote\", \"body\", \"br\", \"button\", \"canvas\", \"caption\", \"center\", \"cite\", \"code\", \"col\", \"colgroup\", \"content\", \"data\", \"datalist\", \"dd\", \"decorator\", \"del\", \"details\", \"dfn\", \"dialog\", \"dir\", \"div\", \"dl\", \"dt\", \"element\", \"em\", \"fieldset\", \"figcaption\", \"figure\", \"font\", \"footer\", \"form\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"head\", \"header\", \"hgroup\", \"hr\", \"html\", \"i\", \"img\", \"input\", \"ins\", \"kbd\", \"label\", \"legend\", \"li\", \"main\", \"map\", \"mark\", \"marquee\", \"menu\", \"menuitem\", \"meter\", \"nav\", \"nobr\", \"ol\", \"optgroup\", \"option\", \"output\", \"p\", \"picture\", \"pre\", \"progress\", \"q\", \"rp\", \"rt\", \"ruby\", \"s\", \"samp\", \"section\", \"select\", \"shadow\", \"small\", \"source\", \"spacer\", \"span\", \"strike\", \"strong\", \"style\", \"sub\", \"summary\", \"sup\", \"table\", \"tbody\", \"td\", \"template\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"time\", \"tr\", \"track\", \"tt\", \"u\", \"ul\", \"var\", \"video\", \"wbr\"]),\n Oe = ce([\"svg\", \"a\", \"altglyph\", \"altglyphdef\", \"altglyphitem\", \"animatecolor\", \"animatemotion\", \"animatetransform\", \"circle\", \"clippath\", \"defs\", \"desc\", \"ellipse\", \"filter\", \"font\", \"g\", \"glyph\", \"glyphref\", \"hkern\", \"image\", \"line\", \"lineargradient\", \"marker\", \"mask\", \"metadata\", \"mpath\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialgradient\", \"rect\", \"stop\", \"style\", \"switch\", \"symbol\", \"text\", \"textpath\", \"title\", \"tref\", \"tspan\", \"view\", \"vkern\"]),\n Fe = ce([\"feBlend\", \"feColorMatrix\", \"feComponentTransfer\", \"feComposite\", \"feConvolveMatrix\", \"feDiffuseLighting\", \"feDisplacementMap\", \"feDistantLight\", \"feDropShadow\", \"feFlood\", \"feFuncA\", \"feFuncB\", \"feFuncG\", \"feFuncR\", \"feGaussianBlur\", \"feImage\", \"feMerge\", \"feMergeNode\", \"feMorphology\", \"feOffset\", \"fePointLight\", \"feSpecularLighting\", \"feSpotLight\", \"feTile\", \"feTurbulence\"]),\n Pe = ce([\"animate\", \"color-profile\", \"cursor\", \"discard\", \"font-face\", \"font-face-format\", \"font-face-name\", \"font-face-src\", \"font-face-uri\", \"foreignobject\", \"hatch\", \"hatchpath\", \"mesh\", \"meshgradient\", \"meshpatch\", \"meshrow\", \"missing-glyph\", \"script\", \"set\", \"solidcolor\", \"unknown\", \"use\"]),\n Me = ce([\"math\", \"menclose\", \"merror\", \"mfenced\", \"mfrac\", \"mglyph\", \"mi\", \"mlabeledtr\", \"mmultiscripts\", \"mn\", \"mo\", \"mover\", \"mpadded\", \"mphantom\", \"mroot\", \"mrow\", \"ms\", \"mspace\", \"msqrt\", \"mstyle\", \"msub\", \"msup\", \"msubsup\", \"mtable\", \"mtd\", \"mtext\", \"mtr\", \"munder\", \"munderover\", \"mprescripts\"]),\n Be = ce([\"maction\", \"maligngroup\", \"malignmark\", \"mlongdiv\", \"mscarries\", \"mscarry\", \"msgroup\", \"mstack\", \"msline\", \"msrow\", \"semantics\", \"annotation\", \"annotation-xml\", \"mprescripts\", \"none\"]),\n _e = ce([\"#text\"]),\n je = ce([\"accept\", \"action\", \"align\", \"alt\", \"autocapitalize\", \"autocomplete\", \"autopictureinpicture\", \"autoplay\", \"background\", \"bgcolor\", \"border\", \"capture\", \"cellpadding\", \"cellspacing\", \"checked\", \"cite\", \"class\", \"clear\", \"color\", \"cols\", \"colspan\", \"controls\", \"controlslist\", \"coords\", \"crossorigin\", \"datetime\", \"decoding\", \"default\", \"dir\", \"disabled\", \"disablepictureinpicture\", \"disableremoteplayback\", \"download\", \"draggable\", \"enctype\", \"enterkeyhint\", \"face\", \"for\", \"headers\", \"height\", \"hidden\", \"high\", \"href\", \"hreflang\", \"id\", \"inputmode\", \"integrity\", \"ismap\", \"kind\", \"label\", \"lang\", \"list\", \"loading\", \"loop\", \"low\", \"max\", \"maxlength\", \"media\", \"method\", \"min\", \"minlength\", \"multiple\", \"muted\", \"name\", \"nonce\", \"noshade\", \"novalidate\", \"nowrap\", \"open\", \"optimum\", \"pattern\", \"placeholder\", \"playsinline\", \"popover\", \"popovertarget\", \"popovertargetaction\", \"poster\", \"preload\", \"pubdate\", \"radiogroup\", \"readonly\", \"rel\", \"required\", \"rev\", \"reversed\", \"role\", \"rows\", \"rowspan\", \"spellcheck\", \"scope\", \"selected\", \"shape\", \"size\", \"sizes\", \"span\", \"srclang\", \"start\", \"src\", \"srcset\", \"step\", \"style\", \"summary\", \"tabindex\", \"title\", \"translate\", \"type\", \"usemap\", \"valign\", \"value\", \"width\", \"wrap\", \"xmlns\", \"slot\"]),\n We = ce([\"accent-height\", \"accumulate\", \"additive\", \"alignment-baseline\", \"amplitude\", \"ascent\", \"attributename\", \"attributetype\", \"azimuth\", \"basefrequency\", \"baseline-shift\", \"begin\", \"bias\", \"by\", \"class\", \"clip\", \"clippathunits\", \"clip-path\", \"clip-rule\", \"color\", \"color-interpolation\", \"color-interpolation-filters\", \"color-profile\", \"color-rendering\", \"cx\", \"cy\", \"d\", \"dx\", \"dy\", \"diffuseconstant\", \"direction\", \"display\", \"divisor\", \"dur\", \"edgemode\", \"elevation\", \"end\", \"exponent\", \"fill\", \"fill-opacity\", \"fill-rule\", \"filter\", \"filterunits\", \"flood-color\", \"flood-opacity\", \"font-family\", \"font-size\", \"font-size-adjust\", \"font-stretch\", \"font-style\", \"font-variant\", \"font-weight\", \"fx\", \"fy\", \"g1\", \"g2\", \"glyph-name\", \"glyphref\", \"gradientunits\", \"gradienttransform\", \"height\", \"href\", \"id\", \"image-rendering\", \"in\", \"in2\", \"intercept\", \"k\", \"k1\", \"k2\", \"k3\", \"k4\", \"kerning\", \"keypoints\", \"keysplines\", \"keytimes\", \"lang\", \"lengthadjust\", \"letter-spacing\", \"kernelmatrix\", \"kernelunitlength\", \"lighting-color\", \"local\", \"marker-end\", \"marker-mid\", \"marker-start\", \"markerheight\", \"markerunits\", \"markerwidth\", \"maskcontentunits\", \"maskunits\", \"max\", \"mask\", \"media\", \"method\", \"mode\", \"min\", \"name\", \"numoctaves\", \"offset\", \"operator\", \"opacity\", \"order\", \"orient\", \"orientation\", \"origin\", \"overflow\", \"paint-order\", \"path\", \"pathlength\", \"patterncontentunits\", \"patterntransform\", \"patternunits\", \"points\", \"preservealpha\", \"preserveaspectratio\", \"primitiveunits\", \"r\", \"rx\", \"ry\", \"radius\", \"refx\", \"refy\", \"repeatcount\", \"repeatdur\", \"restart\", \"result\", \"rotate\", \"scale\", \"seed\", \"shape-rendering\", \"slope\", \"specularconstant\", \"specularexponent\", \"spreadmethod\", \"startoffset\", \"stddeviation\", \"stitchtiles\", \"stop-color\", \"stop-opacity\", \"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-linecap\", \"stroke-linejoin\", \"stroke-miterlimit\", \"stroke-opacity\", \"stroke\", \"stroke-width\", \"style\", \"surfacescale\", \"systemlanguage\", \"tabindex\", \"tablevalues\", \"targetx\", \"targety\", \"transform\", \"transform-origin\", \"text-anchor\", \"text-decoration\", \"text-rendering\", \"textlength\", \"type\", \"u1\", \"u2\", \"unicode\", \"values\", \"viewbox\", \"visibility\", \"version\", \"vert-adv-y\", \"vert-origin-x\", \"vert-origin-y\", \"width\", \"word-spacing\", \"wrap\", \"writing-mode\", \"xchannelselector\", \"ychannelselector\", \"x\", \"x1\", \"x2\", \"xmlns\", \"y\", \"y1\", \"y2\", \"z\", \"zoomandpan\"]),\n Ue = ce([\"accent\", \"accentunder\", \"align\", \"bevelled\", \"close\", \"columnsalign\", \"columnlines\", \"columnspan\", \"denomalign\", \"depth\", \"dir\", \"display\", \"displaystyle\", \"encoding\", \"fence\", \"frame\", \"height\", \"href\", \"id\", \"largeop\", \"length\", \"linethickness\", \"lspace\", \"lquote\", \"mathbackground\", \"mathcolor\", \"mathsize\", \"mathvariant\", \"maxsize\", \"minsize\", \"movablelimits\", \"notation\", \"numalign\", \"open\", \"rowalign\", \"rowlines\", \"rowspacing\", \"rowspan\", \"rspace\", \"rquote\", \"scriptlevel\", \"scriptminsize\", \"scriptsizemultiplier\", \"selection\", \"separator\", \"separators\", \"stretchy\", \"subscriptshift\", \"supscriptshift\", \"symmetric\", \"voffset\", \"width\", \"xmlns\"]),\n Ve = ce([\"xlink:href\", \"xml:id\", \"xlink:title\", \"xml:space\", \"xmlns:xlink\"]),\n ze = ue(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm),\n qe = ue(/<%[\\w\\W]*|[\\w\\W]*%>/gm),\n He = ue(/\\$\\{[\\w\\W]*}/gm),\n Je = ue(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/),\n Ke = ue(/^aria-[\\-\\w]+$/),\n Ge = ue(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i),\n Ye = ue(/^(?:\\w+script|data):/i),\n $e = ue(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g),\n Xe = ue(/^html$/i),\n Ze = ue(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\nvar Qe = Object.freeze({\n __proto__: null,\n ARIA_ATTR: Ke,\n ATTR_WHITESPACE: $e,\n CUSTOM_ELEMENT: Ze,\n DATA_ATTR: Je,\n DOCTYPE_NAME: Xe,\n ERB_EXPR: qe,\n IS_ALLOWED_URI: Ge,\n IS_SCRIPT_OR_DATA: Ye,\n MUSTACHE_EXPR: ze,\n TMPLIT_EXPR: He\n});\nconst ti = 1,\n ei = 3,\n ii = 7,\n ni = 8,\n ri = 9,\n oi = function () {\n return \"undefined\" == typeof window ? null : window;\n };\nvar si = function t() {\n let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : oi();\n const i = e => t(e);\n if (i.version = \"3.2.3\", i.removed = [], !e || !e.document || e.document.nodeType !== ri) return i.isSupported = !1, i;\n let n = e.document;\n const r = n,\n o = r.currentScript,\n s = e.DocumentFragment,\n a = e.HTMLTemplateElement,\n l = e.Node,\n c = e.Element,\n u = e.NodeFilter,\n _e$NamedNodeMap = e.NamedNodeMap,\n h = _e$NamedNodeMap === void 0 ? e.NamedNodeMap || e.MozNamedAttrMap : _e$NamedNodeMap,\n d = e.HTMLFormElement,\n g = e.DOMParser,\n m = e.trustedTypes,\n p = c.prototype,\n f = Ne(p, \"cloneNode\"),\n b = Ne(p, \"remove\"),\n v = Ne(p, \"nextSibling\"),\n A = Ne(p, \"childNodes\"),\n y = Ne(p, \"parentNode\");\n if (\"function\" == typeof a) {\n const t = n.createElement(\"template\");\n t.content && t.content.ownerDocument && (n = t.content.ownerDocument);\n }\n let x,\n C = \"\";\n const _n2 = n,\n E = _n2.implementation,\n S = _n2.createNodeIterator,\n R = _n2.createDocumentFragment,\n k = _n2.getElementsByTagName,\n T = r.importNode;\n let w = {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n i.isSupported = \"function\" == typeof re && \"function\" == typeof y && E && void 0 !== E.createHTMLDocument;\n const L = Qe.MUSTACHE_EXPR,\n D = Qe.ERB_EXPR,\n N = Qe.TMPLIT_EXPR,\n I = Qe.DATA_ATTR,\n O = Qe.ARIA_ATTR,\n F = Qe.IS_SCRIPT_OR_DATA,\n P = Qe.ATTR_WHITESPACE,\n M = Qe.CUSTOM_ELEMENT;\n let B = Qe.IS_ALLOWED_URI,\n _ = null;\n const j = we({}, [...Ie, ...Oe, ...Fe, ...Me, ..._e]);\n let W = null;\n const U = we({}, [...je, ...We, ...Ue, ...Ve]);\n let V = Object.seal(he(null, {\n tagNameCheck: {\n writable: !0,\n configurable: !1,\n enumerable: !0,\n value: null\n },\n attributeNameCheck: {\n writable: !0,\n configurable: !1,\n enumerable: !0,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: !0,\n configurable: !1,\n enumerable: !0,\n value: !1\n }\n })),\n z = null,\n q = null,\n H = !0,\n J = !0,\n K = !1,\n G = !0,\n Y = !1,\n $ = !0,\n X = !1,\n Z = !1,\n Q = !1,\n tt = !1,\n et = !1,\n it = !1,\n nt = !0,\n rt = !1,\n ot = !0,\n st = !1,\n at = {},\n lt = null;\n const ct = we({}, [\"annotation-xml\", \"audio\", \"colgroup\", \"desc\", \"foreignobject\", \"head\", \"iframe\", \"math\", \"mi\", \"mn\", \"mo\", \"ms\", \"mtext\", \"noembed\", \"noframes\", \"noscript\", \"plaintext\", \"script\", \"style\", \"svg\", \"template\", \"thead\", \"title\", \"video\", \"xmp\"]);\n let ut = null;\n const ht = we({}, [\"audio\", \"video\", \"img\", \"source\", \"image\", \"track\"]);\n let dt = null;\n const gt = we({}, [\"alt\", \"class\", \"for\", \"id\", \"label\", \"name\", \"pattern\", \"placeholder\", \"role\", \"summary\", \"title\", \"value\", \"style\", \"xmlns\"]),\n mt = \"http://www.w3.org/1998/Math/MathML\",\n pt = \"http://www.w3.org/2000/svg\",\n ft = \"http://www.w3.org/1999/xhtml\";\n let bt = ft,\n vt = !1,\n At = null;\n const yt = we({}, [mt, pt, ft], ve);\n let xt = we({}, [\"mi\", \"mo\", \"mn\", \"ms\", \"mtext\"]),\n Ct = we({}, [\"annotation-xml\"]);\n const Et = we({}, [\"title\", \"style\", \"font\", \"a\", \"script\"]);\n let St = null;\n const Rt = [\"application/xhtml+xml\", \"text/html\"];\n let kt = null,\n Tt = null;\n const wt = n.createElement(\"form\"),\n Lt = function (t) {\n return t instanceof RegExp || t instanceof Function;\n },\n Dt = function () {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n if (!Tt || Tt !== t) {\n if (t && \"object\" == typeof t || (t = {}), t = De(t), St = -1 === Rt.indexOf(t.PARSER_MEDIA_TYPE) ? \"text/html\" : t.PARSER_MEDIA_TYPE, kt = \"application/xhtml+xml\" === St ? ve : be, _ = Ee(t, \"ALLOWED_TAGS\") ? we({}, t.ALLOWED_TAGS, kt) : j, W = Ee(t, \"ALLOWED_ATTR\") ? we({}, t.ALLOWED_ATTR, kt) : U, At = Ee(t, \"ALLOWED_NAMESPACES\") ? we({}, t.ALLOWED_NAMESPACES, ve) : yt, dt = Ee(t, \"ADD_URI_SAFE_ATTR\") ? we(De(gt), t.ADD_URI_SAFE_ATTR, kt) : gt, ut = Ee(t, \"ADD_DATA_URI_TAGS\") ? we(De(ht), t.ADD_DATA_URI_TAGS, kt) : ht, lt = Ee(t, \"FORBID_CONTENTS\") ? we({}, t.FORBID_CONTENTS, kt) : ct, z = Ee(t, \"FORBID_TAGS\") ? we({}, t.FORBID_TAGS, kt) : {}, q = Ee(t, \"FORBID_ATTR\") ? we({}, t.FORBID_ATTR, kt) : {}, at = !!Ee(t, \"USE_PROFILES\") && t.USE_PROFILES, H = !1 !== t.ALLOW_ARIA_ATTR, J = !1 !== t.ALLOW_DATA_ATTR, K = t.ALLOW_UNKNOWN_PROTOCOLS || !1, G = !1 !== t.ALLOW_SELF_CLOSE_IN_ATTR, Y = t.SAFE_FOR_TEMPLATES || !1, $ = !1 !== t.SAFE_FOR_XML, X = t.WHOLE_DOCUMENT || !1, tt = t.RETURN_DOM || !1, et = t.RETURN_DOM_FRAGMENT || !1, it = t.RETURN_TRUSTED_TYPE || !1, Q = t.FORCE_BODY || !1, nt = !1 !== t.SANITIZE_DOM, rt = t.SANITIZE_NAMED_PROPS || !1, ot = !1 !== t.KEEP_CONTENT, st = t.IN_PLACE || !1, B = t.ALLOWED_URI_REGEXP || Ge, bt = t.NAMESPACE || ft, xt = t.MATHML_TEXT_INTEGRATION_POINTS || xt, Ct = t.HTML_INTEGRATION_POINTS || Ct, V = t.CUSTOM_ELEMENT_HANDLING || {}, t.CUSTOM_ELEMENT_HANDLING && Lt(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (V.tagNameCheck = t.CUSTOM_ELEMENT_HANDLING.tagNameCheck), t.CUSTOM_ELEMENT_HANDLING && Lt(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (V.attributeNameCheck = t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), t.CUSTOM_ELEMENT_HANDLING && \"boolean\" == typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (V.allowCustomizedBuiltInElements = t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), Y && (J = !1), et && (tt = !0), at && (_ = we({}, _e), W = [], !0 === at.html && (we(_, Ie), we(W, je)), !0 === at.svg && (we(_, Oe), we(W, We), we(W, Ve)), !0 === at.svgFilters && (we(_, Fe), we(W, We), we(W, Ve)), !0 === at.mathMl && (we(_, Me), we(W, Ue), we(W, Ve))), t.ADD_TAGS && (_ === j && (_ = De(_)), we(_, t.ADD_TAGS, kt)), t.ADD_ATTR && (W === U && (W = De(W)), we(W, t.ADD_ATTR, kt)), t.ADD_URI_SAFE_ATTR && we(dt, t.ADD_URI_SAFE_ATTR, kt), t.FORBID_CONTENTS && (lt === ct && (lt = De(lt)), we(lt, t.FORBID_CONTENTS, kt)), ot && (_[\"#text\"] = !0), X && we(_, [\"html\", \"head\", \"body\"]), _.table && (we(_, [\"tbody\"]), delete z.tbody), t.TRUSTED_TYPES_POLICY) {\n if (\"function\" != typeof t.TRUSTED_TYPES_POLICY.createHTML) throw Re('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n if (\"function\" != typeof t.TRUSTED_TYPES_POLICY.createScriptURL) throw Re('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n x = t.TRUSTED_TYPES_POLICY, C = x.createHTML(\"\");\n } else void 0 === x && (x = function (t, e) {\n if (\"object\" != typeof t || \"function\" != typeof t.createPolicy) return null;\n let i = null;\n const n = \"data-tt-policy-suffix\";\n e && e.hasAttribute(n) && (i = e.getAttribute(n));\n const r = \"dompurify\" + (i ? \"#\" + i : \"\");\n try {\n return t.createPolicy(r, {\n createHTML: t => t,\n createScriptURL: t => t\n });\n } catch (t) {\n return console.warn(\"TrustedTypes policy \" + r + \" could not be created.\"), null;\n }\n }(m, o)), null !== x && \"string\" == typeof C && (C = x.createHTML(\"\"));\n ce && ce(t), Tt = t;\n }\n },\n Nt = we({}, [...Oe, ...Fe, ...Pe]),\n It = we({}, [...Me, ...Be]),\n Ot = function (t) {\n fe(i.removed, {\n element: t\n });\n try {\n y(t).removeChild(t);\n } catch (e) {\n b(t);\n }\n },\n Ft = function (t, e) {\n try {\n fe(i.removed, {\n attribute: e.getAttributeNode(t),\n from: e\n });\n } catch (t) {\n fe(i.removed, {\n attribute: null,\n from: e\n });\n }\n if (e.removeAttribute(t), \"is\" === t) if (tt || et) try {\n Ot(e);\n } catch (t) {} else try {\n e.setAttribute(t, \"\");\n } catch (t) {}\n },\n Pt = function (t) {\n let e = null,\n i = null;\n if (Q) t = \"\" + t;else {\n const e = Ae(t, /^[\\r\\n\\t ]+/);\n i = e && e[0];\n }\n \"application/xhtml+xml\" === St && bt === ft && (t = '' + t + \"\");\n const r = x ? x.createHTML(t) : t;\n if (bt === ft) try {\n e = new g().parseFromString(r, St);\n } catch (t) {}\n if (!e || !e.documentElement) {\n e = E.createDocument(bt, \"template\", null);\n try {\n e.documentElement.innerHTML = vt ? C : r;\n } catch (t) {}\n }\n const o = e.body || e.documentElement;\n return t && i && o.insertBefore(n.createTextNode(i), o.childNodes[0] || null), bt === ft ? k.call(e, X ? \"html\" : \"body\")[0] : X ? e.documentElement : o;\n },\n Mt = function (t) {\n return S.call(t.ownerDocument || t, t, u.SHOW_ELEMENT | u.SHOW_COMMENT | u.SHOW_TEXT | u.SHOW_PROCESSING_INSTRUCTION | u.SHOW_CDATA_SECTION, null);\n },\n Bt = function (t) {\n return t instanceof d && (\"string\" != typeof t.nodeName || \"string\" != typeof t.textContent || \"function\" != typeof t.removeChild || !(t.attributes instanceof h) || \"function\" != typeof t.removeAttribute || \"function\" != typeof t.setAttribute || \"string\" != typeof t.namespaceURI || \"function\" != typeof t.insertBefore || \"function\" != typeof t.hasChildNodes);\n },\n _t = function (t) {\n return \"function\" == typeof l && t instanceof l;\n };\n function jt(t, e, n) {\n me(t, t => {\n t.call(i, e, n, Tt);\n });\n }\n const Wt = function (t) {\n let e = null;\n if (jt(w.beforeSanitizeElements, t, null), Bt(t)) return Ot(t), !0;\n const n = kt(t.nodeName);\n if (jt(w.uponSanitizeElement, t, {\n tagName: n,\n allowedTags: _\n }), t.hasChildNodes() && !_t(t.firstElementChild) && Se(/<[/\\w]/g, t.innerHTML) && Se(/<[/\\w]/g, t.textContent)) return Ot(t), !0;\n if (t.nodeType === ii) return Ot(t), !0;\n if ($ && t.nodeType === ni && Se(/<[/\\w]/g, t.data)) return Ot(t), !0;\n if (!_[n] || z[n]) {\n if (!z[n] && Vt(n)) {\n if (V.tagNameCheck instanceof RegExp && Se(V.tagNameCheck, n)) return !1;\n if (V.tagNameCheck instanceof Function && V.tagNameCheck(n)) return !1;\n }\n if (ot && !lt[n]) {\n const e = y(t) || t.parentNode,\n i = A(t) || t.childNodes;\n if (i && e) {\n for (let n = i.length - 1; n >= 0; --n) {\n const r = f(i[n], !0);\n r.__removalCount = (t.__removalCount || 0) + 1, e.insertBefore(r, v(t));\n }\n }\n }\n return Ot(t), !0;\n }\n return t instanceof c && !function (t) {\n let e = y(t);\n e && e.tagName || (e = {\n namespaceURI: bt,\n tagName: \"template\"\n });\n const i = be(t.tagName),\n n = be(e.tagName);\n return !!At[t.namespaceURI] && (t.namespaceURI === pt ? e.namespaceURI === ft ? \"svg\" === i : e.namespaceURI === mt ? \"svg\" === i && (\"annotation-xml\" === n || xt[n]) : Boolean(Nt[i]) : t.namespaceURI === mt ? e.namespaceURI === ft ? \"math\" === i : e.namespaceURI === pt ? \"math\" === i && Ct[n] : Boolean(It[i]) : t.namespaceURI === ft ? !(e.namespaceURI === pt && !Ct[n]) && !(e.namespaceURI === mt && !xt[n]) && !It[i] && (Et[i] || !Nt[i]) : !(\"application/xhtml+xml\" !== St || !At[t.namespaceURI]));\n }(t) ? (Ot(t), !0) : \"noscript\" !== n && \"noembed\" !== n && \"noframes\" !== n || !Se(/<\\/no(script|embed|frames)/i, t.innerHTML) ? (Y && t.nodeType === ei && (e = t.textContent, me([L, D, N], t => {\n e = ye(e, t, \" \");\n }), t.textContent !== e && (fe(i.removed, {\n element: t.cloneNode()\n }), t.textContent = e)), jt(w.afterSanitizeElements, t, null), !1) : (Ot(t), !0);\n },\n Ut = function (t, e, i) {\n if (nt && (\"id\" === e || \"name\" === e) && (i in n || i in wt)) return !1;\n if (J && !q[e] && Se(I, e)) ;else if (H && Se(O, e)) ;else if (!W[e] || q[e]) {\n if (!(Vt(t) && (V.tagNameCheck instanceof RegExp && Se(V.tagNameCheck, t) || V.tagNameCheck instanceof Function && V.tagNameCheck(t)) && (V.attributeNameCheck instanceof RegExp && Se(V.attributeNameCheck, e) || V.attributeNameCheck instanceof Function && V.attributeNameCheck(e)) || \"is\" === e && V.allowCustomizedBuiltInElements && (V.tagNameCheck instanceof RegExp && Se(V.tagNameCheck, i) || V.tagNameCheck instanceof Function && V.tagNameCheck(i)))) return !1;\n } else if (dt[e]) ;else if (Se(B, ye(i, P, \"\"))) ;else if (\"src\" !== e && \"xlink:href\" !== e && \"href\" !== e || \"script\" === t || 0 !== xe(i, \"data:\") || !ut[t]) {\n if (K && !Se(F, ye(i, P, \"\"))) ;else if (i) return !1;\n } else ;\n return !0;\n },\n Vt = function (t) {\n return \"annotation-xml\" !== t && Ae(t, M);\n },\n zt = function (t) {\n jt(w.beforeSanitizeAttributes, t, null);\n const e = t.attributes;\n if (!e || Bt(t)) return;\n const n = {\n attrName: \"\",\n attrValue: \"\",\n keepAttr: !0,\n allowedAttributes: W,\n forceKeepAttr: void 0\n };\n let r = e.length;\n for (; r--;) {\n const o = e[r],\n s = o.name,\n a = o.namespaceURI,\n l = o.value,\n c = kt(s);\n let u = \"value\" === s ? l : Ce(l);\n if (n.attrName = c, n.attrValue = u, n.keepAttr = !0, n.forceKeepAttr = void 0, jt(w.uponSanitizeAttribute, t, n), u = n.attrValue, !rt || \"id\" !== c && \"name\" !== c || (Ft(s, t), u = \"user-content-\" + u), $ && Se(/((--!?|])>)|<\\/(style|title)/i, u)) {\n Ft(s, t);\n continue;\n }\n if (n.forceKeepAttr) continue;\n if (Ft(s, t), !n.keepAttr) continue;\n if (!G && Se(/\\/>/i, u)) {\n Ft(s, t);\n continue;\n }\n Y && me([L, D, N], t => {\n u = ye(u, t, \" \");\n });\n const h = kt(t.nodeName);\n if (Ut(h, c, u)) {\n if (x && \"object\" == typeof m && \"function\" == typeof m.getAttributeType) if (a) ;else switch (m.getAttributeType(h, c)) {\n case \"TrustedHTML\":\n u = x.createHTML(u);\n break;\n case \"TrustedScriptURL\":\n u = x.createScriptURL(u);\n }\n try {\n a ? t.setAttributeNS(a, s, u) : t.setAttribute(s, u), Bt(t) ? Ot(t) : pe(i.removed);\n } catch (t) {}\n }\n }\n jt(w.afterSanitizeAttributes, t, null);\n },\n qt = function t(e) {\n let i = null;\n const n = Mt(e);\n for (jt(w.beforeSanitizeShadowDOM, e, null); i = n.nextNode();) jt(w.uponSanitizeShadowNode, i, null), Wt(i), zt(i), i.content instanceof s && t(i.content);\n jt(w.afterSanitizeShadowDOM, e, null);\n };\n return i.sanitize = function (t) {\n let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n n = null,\n o = null,\n a = null,\n c = null;\n if (vt = !t, vt && (t = \"\\x3c!--\\x3e\"), \"string\" != typeof t && !_t(t)) {\n if (\"function\" != typeof t.toString) throw Re(\"toString is not a function\");\n if (\"string\" != typeof (t = t.toString())) throw Re(\"dirty is not a string, aborting\");\n }\n if (!i.isSupported) return t;\n if (Z || Dt(e), i.removed = [], \"string\" == typeof t && (st = !1), st) {\n if (t.nodeName) {\n const e = kt(t.nodeName);\n if (!_[e] || z[e]) throw Re(\"root node is forbidden and cannot be sanitized in-place\");\n }\n } else if (t instanceof l) n = Pt(\"\\x3c!----\\x3e\"), o = n.ownerDocument.importNode(t, !0), o.nodeType === ti && \"BODY\" === o.nodeName || \"HTML\" === o.nodeName ? n = o : n.appendChild(o);else {\n if (!tt && !Y && !X && -1 === t.indexOf(\"<\")) return x && it ? x.createHTML(t) : t;\n if (n = Pt(t), !n) return tt ? null : it ? C : \"\";\n }\n n && Q && Ot(n.firstChild);\n const u = Mt(st ? t : n);\n for (; a = u.nextNode();) Wt(a), zt(a), a.content instanceof s && qt(a.content);\n if (st) return t;\n if (tt) {\n if (et) for (c = R.call(n.ownerDocument); n.firstChild;) c.appendChild(n.firstChild);else c = n;\n return (W.shadowroot || W.shadowrootmode) && (c = T.call(r, c, !0)), c;\n }\n let h = X ? n.outerHTML : n.innerHTML;\n return X && _[\"!doctype\"] && n.ownerDocument && n.ownerDocument.doctype && n.ownerDocument.doctype.name && Se(Xe, n.ownerDocument.doctype.name) && (h = \"\\n\" + h), Y && me([L, D, N], t => {\n h = ye(h, t, \" \");\n }), x && it ? x.createHTML(h) : h;\n }, i.setConfig = function () {\n Dt(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}), Z = !0;\n }, i.clearConfig = function () {\n Tt = null, Z = !1;\n }, i.isValidAttribute = function (t, e, i) {\n Tt || Dt({});\n const n = kt(t),\n r = kt(e);\n return Ut(n, r, i);\n }, i.addHook = function (t, e) {\n \"function\" == typeof e && fe(w[t], e);\n }, i.removeHook = function (t) {\n return pe(w[t]);\n }, i.removeHooks = function (t) {\n w[t] = [];\n }, i.removeAllHooks = function () {\n w = {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n }, i;\n}();\nsi.addHook(\"uponSanitizeAttribute\", function (t, e) {\n /^data-trix-/.test(e.attrName) && (e.forceKeepAttr = !0);\n});\nconst ai = \"style href src width height language class\".split(\" \"),\n li = \"javascript:\".split(\" \"),\n ci = \"script iframe form noscript\".split(\" \");\nclass ui extends q {\n static setHTML(t, e) {\n const i = new this(e).sanitize(),\n n = i.getHTML ? i.getHTML() : i.outerHTML;\n t.innerHTML = n;\n }\n static sanitize(t, e) {\n const i = new this(t, e);\n return i.sanitize(), i;\n }\n constructor(t) {\n let _ref12 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n e = _ref12.allowedAttributes,\n i = _ref12.forbiddenProtocols,\n n = _ref12.forbiddenElements;\n super(...arguments), this.allowedAttributes = e || ai, this.forbiddenProtocols = i || li, this.forbiddenElements = n || ci, this.body = hi(t);\n }\n sanitize() {\n return this.sanitizeElements(), this.normalizeListElementNesting(), si.setConfig(l), this.body = si.sanitize(this.body), this.body;\n }\n getHTML() {\n return this.body.innerHTML;\n }\n getBody() {\n return this.body;\n }\n sanitizeElements() {\n const t = R(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 => S(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\" === k(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(k(t));\n }\n elementIsntSerializable(t) {\n return \"false\" === t.getAttribute(\"data-trix-serialize\") && !P(t);\n }\n}\nconst hi = 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 di = z.css;\nclass gi extends ie {\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 = T({\n tagName: \"figure\",\n className: this.getClassName(),\n data: this.getData(),\n editable: !1\n }),\n i = this.getHref();\n return i && (t = T({\n tagName: \"a\",\n editable: !1,\n attributes: {\n href: i,\n tabindex: -1\n }\n }), e.appendChild(t)), this.attachment.hasContent() ? ui.setHTML(t, this.attachment.getContent()) : this.createContentNodes().forEach(e => {\n t.appendChild(e);\n }), t.appendChild(this.createCaptionElement()), this.attachment.isPending() && (this.progressElement = T({\n tagName: \"progress\",\n attributes: {\n class: di.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)), [mi(\"left\"), e, mi(\"right\")];\n }\n createCaptionElement() {\n const t = T({\n tagName: \"figcaption\",\n className: di.attachmentCaption\n }),\n e = this.attachmentPiece.getCaption();\n if (e) t.classList.add(\"\".concat(di.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 = T({\n tagName: \"span\",\n className: di.attachmentName,\n textContent: e\n });\n t.appendChild(i);\n }\n if (i) {\n e && t.appendChild(document.createTextNode(\" \"));\n const n = T({\n tagName: \"span\",\n className: di.attachmentSize,\n textContent: i\n });\n t.appendChild(n);\n }\n }\n return t;\n }\n getClassName() {\n const t = [di.attachment, \"\".concat(di.attachment, \"--\").concat(this.attachment.getType())],\n e = this.attachment.getExtension();\n return e && t.push(\"\".concat(di.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 (!pi(this.attachment.getContent(), \"a\")) return this.attachment.getHref();\n }\n getCaptionConfig() {\n var t;\n const e = this.attachment.getType(),\n n = kt(null === (t = i[e]) || void 0 === t ? void 0 : t.caption);\n return \"file\" === e && (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 mi = t => T({\n tagName: \"span\",\n textContent: d,\n data: {\n trixCursorTarget: t,\n trixSerialize: !1\n }\n }),\n pi = function (t, e) {\n const i = T(\"div\");\n return ui.setHTML(i, t || \"\"), i.querySelector(e);\n };\nclass fi extends gi {\n constructor() {\n super(...arguments), this.attachment.previewDelegate = this;\n }\n createContentNodes() {\n return this.image = T({\n tagName: \"img\",\n attributes: {\n src: \"\"\n },\n data: {\n trixMutable: !0\n }\n }), this.refresh(this.image), [this.image];\n }\n createCaptionElement() {\n const t = super.createCaptionElement(...arguments);\n return t.textContent || t.setAttribute(\"data-trix-placeholder\", c.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 bi extends ie {\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() ? fi : gi;\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 = T(\"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 = ft(e);\n if (o) {\n if (o.tagName) {\n var r;\n const e = T(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 = T(\"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 = ft(t);\n if (i && i.groupTagName) {\n const n = {};\n return n[t] = e, T(i.groupTagName, n);\n }\n }\n }\n preserveSpaces(t) {\n return this.context.isLast && (t = t.replace(/\\ $/, g)), t = t.replace(/(\\S)\\ {3}(\\S)/g, \"$1 \".concat(g, \" $2\")).replace(/\\ {2}/g, \"\".concat(g, \" \")).replace(/\\ {2}/g, \" \".concat(g)), (this.context.isFirst || this.context.followsWhitespace) && (t = t.replace(/^\\ /, g)), t;\n }\n}\nclass vi extends ie {\n constructor() {\n super(...arguments), this.text = this.object, this.textConfig = this.options.textConfig;\n }\n createNodes() {\n const t = [],\n e = Xt.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), Ai(n) && (s.followsWhitespace = !0);\n const a = this.findOrCreateCachedChildView(bi, 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 Ai = t => /\\s$/.test(null == t ? void 0 : t.toString()),\n yi = z.css;\nclass xi extends ie {\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(T(\"br\"));else {\n var e;\n const i = null === (e = mt(this.block.getLastAttribute())) || void 0 === e ? void 0 : e.text,\n n = this.findOrCreateCachedChildView(vi, this.block.text, {\n textConfig: i\n });\n t.push(...Array.from(n.getNodes() || [])), this.shouldAddExtraNewlineElement() && t.push(T(\"br\"));\n }\n if (this.attributes.length) return t;\n {\n let e;\n const i = n.default.tagName;\n this.block.isRTL() && (e = {\n dir: \"rtl\"\n });\n const r = T({\n tagName: i,\n attributes: e\n });\n return t.forEach(t => r.appendChild(t)), [r];\n }\n }\n createContainerElement(t) {\n const e = {};\n let i;\n const n = this.attributes[t],\n _mt = mt(n),\n r = _mt.tagName,\n _mt$htmlAttributes = _mt.htmlAttributes,\n o = _mt$htmlAttributes === void 0 ? [] : _mt$htmlAttributes;\n if (0 === t && this.block.isRTL() && Object.assign(e, {\n dir: \"rtl\"\n }), \"attachmentGallery\" === n) {\n const t = this.block.getBlockBreakPosition();\n i = \"\".concat(yi.attachmentGallery, \" \").concat(yi.attachmentGallery, \"--\").concat(t);\n }\n return Object.entries(this.block.htmlAttributes).forEach(t => {\n let _t2 = _slicedToArray(t, 2),\n i = _t2[0],\n n = _t2[1];\n o.includes(i) && (e[i] = n);\n }), T({\n tagName: r,\n className: i,\n attributes: e\n });\n }\n shouldAddExtraNewlineElement() {\n return /\\n\\n$/.test(this.block.toString());\n }\n}\nclass Ci extends ie {\n static render(t) {\n const e = T(\"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 Qt(), 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 = T(\"div\"), !this.document.isEmpty()) {\n const t = Xt.groupObjects(this.document.getBlocks(), {\n asTree: !0\n });\n Array.from(t).forEach(t => {\n const e = this.findOrCreateCachedChildView(xi, t);\n Array.from(e.getNodes()).map(t => this.shadowElement.appendChild(t));\n });\n }\n }\n isSynced() {\n return Si(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(Ei(this.element)), Rt(() => 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(Ei(t)).forEach(t => {\n const e = this.elementStore.remove(t);\n e && t.parentNode.replaceChild(e, t);\n }), t;\n }\n}\nconst Ei = t => t.querySelectorAll(\"[data-trix-store-key]\"),\n Si = (t, e) => Ri(t.innerHTML) === Ri(e.innerHTML),\n Ri = t => t.replace(/ /g, \" \");\nfunction ki(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 Ti;\n Promise.resolve(a ? s.v : s).then(function (i) {\n if (a) {\n var l = \"return\" === e ? \"return\" : \"next\";\n if (!s.k || i.done) return n(l, i);\n i = t[l](i).value;\n }\n r(o.done ? \"return\" : \"normal\", i);\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 Ti(t, e) {\n this.v = t, this.k = e;\n}\nfunction wi(t, e, i) {\n return (e = Li(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}\nfunction Li(t) {\n var e = function (t, e) {\n if (\"object\" != typeof t || null === t) return t;\n var i = t[Symbol.toPrimitive];\n if (void 0 !== i) {\n var n = i.call(t, e || \"default\");\n if (\"object\" != typeof n) return n;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === e ? String : Number)(t);\n }(t, \"string\");\n return \"symbol\" == typeof e ? e : String(e);\n}\nki.prototype[\"function\" == typeof Symbol && Symbol.asyncIterator || \"@@asyncIterator\"] = function () {\n return this;\n}, ki.prototype.next = function (t) {\n return this._invoke(\"next\", t);\n}, ki.prototype.throw = function (t) {\n return this._invoke(\"throw\", t);\n}, ki.prototype.return = function (t) {\n return this._invoke(\"return\", t);\n};\nfunction Di(t, e) {\n return Oi(t, Ii(t, e, \"get\"));\n}\nfunction Ni(t, e, i) {\n return Fi(t, Ii(t, e, \"set\"), i), i;\n}\nfunction Ii(t, e, i) {\n if (!e.has(t)) throw new TypeError(\"attempted to \" + i + \" private field on non-instance\");\n return e.get(t);\n}\nfunction Oi(t, e) {\n return e.get ? e.get.call(t) : e.value;\n}\nfunction Fi(t, e, i) {\n if (e.set) e.set.call(t, i);else {\n if (!e.writable) throw new TypeError(\"attempted to set read only private field\");\n e.value = i;\n }\n}\nfunction Pi(t, e, i) {\n if (!e.has(t)) throw new TypeError(\"attempted to get private field on non-instance\");\n return i;\n}\nfunction Mi(t, e) {\n if (e.has(t)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n}\nfunction Bi(t, e, i) {\n Mi(t, e), e.set(t, i);\n}\nclass _i extends rt {\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 = Ht.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}\nwi(_i, \"types\", {});\nclass ji extends ee {\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 Wi extends rt {\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 Ht({\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 = Ht.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\") : Wi.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 ? h.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 ji(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}\nwi(Wi, \"previewablePattern\", /^image(\\/(gif|png|webp|jpe?g)|$)/);\nclass Ui extends _i {\n static fromJSON(t) {\n return new this(Wi.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(Ui.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}\nwi(Ui, \"permittedAttributes\", [\"caption\", \"presentation\"]), _i.registerType(\"attachment\", Ui);\nclass Vi extends _i {\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}\n_i.registerType(\"string\", Vi);\nclass zi extends rt {\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(st(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(Hi(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(Ji(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) || qi(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 qi = 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 Hi = t => t[0],\n Ji = t => t[1];\nclass Ki extends rt {\n static textForAttachmentWithAttributes(t, e) {\n return new this([new Ui(t, e)]);\n }\n static textForStringWithAttributes(t, e) {\n return new this([new Vi(t, e)]);\n }\n static fromJSON(t) {\n return new this(Array.from(t).map(t => _i.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 zi(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 Ht.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 lt(this.toString());\n }\n isRTL() {\n return \"rtl\" === this.getDirection();\n }\n}\nclass Gi extends rt {\n static fromJSON(t) {\n return new this(Ki.fromJSON(t.text), t.attributes, t.htmlAttributes);\n }\n constructor(t, e, i) {\n super(...arguments), this.text = Yi(t || new Ki()), this.attributes = e || [], this.htmlAttributes = i || {};\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) && ot(this.attributes, null == t ? void 0 : t.attributes) && Tt(this.htmlAttributes, null == t ? void 0 : t.htmlAttributes);\n }\n copyWithText(t) {\n return new Gi(t, this.attributes, this.htmlAttributes);\n }\n copyWithoutText() {\n return this.copyWithText(null);\n }\n copyWithAttributes(t) {\n return new Gi(this.text, t, this.htmlAttributes);\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(en(t));\n return this.copyWithAttributes(e);\n }\n addHTMLAttribute(t, e) {\n const i = Object.assign({}, this.htmlAttributes, {\n [t]: e\n });\n return new Gi(this.text, this.attributes, i);\n }\n removeAttribute(t) {\n const _mt2 = mt(t),\n e = _mt2.listAttribute,\n i = rn(rn(this.attributes, t), e);\n return this.copyWithAttributes(i);\n }\n removeLastAttribute() {\n return this.removeAttribute(this.getLastAttribute());\n }\n getLastAttribute() {\n return nn(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 nn(this.getNestableAttributes());\n }\n getNestableAttributes() {\n return this.attributes.filter(t => mt(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 = st(this.attributes, e + 1, 0, ...en(t));\n return this.copyWithAttributes(i);\n }\n return this;\n }\n getListItemAttributes() {\n return this.attributes.filter(t => mt(t).listAttribute);\n }\n isListItem() {\n var t;\n return null === (t = mt(this.getLastAttribute())) || void 0 === t ? void 0 : t.listAttribute;\n }\n isTerminalBlock() {\n var t;\n return null === (t = mt(this.getLastAttribute())) || void 0 === t ? void 0 : t.terminal;\n }\n breaksOnReturn() {\n var t;\n return null === (t = mt(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 htmlAttributes: this.htmlAttributes\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 = Ki.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 Qi(this.text) ? this.text.getTextAtRange([0, this.getBlockBreakPosition()]) : this.text.copy();\n }\n canBeGrouped(t) {\n return this.attributes[t];\n }\n canBeGroupedWith(t, e) {\n const i = t.getAttributes(),\n r = i[e],\n o = this.attributes[e];\n return o === r && !(!1 === mt(o).group && !(() => {\n if (!dt) {\n dt = [];\n for (const t in n) {\n const e = n[t].listAttribute;\n null != e && dt.push(e);\n }\n }\n return dt;\n })().includes(i[e + 1])) && (this.getDirection() === t.getDirection() || t.isEmpty());\n }\n}\nconst Yi = function (t) {\n return t = $i(t), t = Zi(t);\n },\n $i = 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, tn(t)) : t), e ? new Ki([...n, r]) : t) : t;\n },\n Xi = Ki.textForStringWithAttributes(\"\\n\", {\n blockBreak: !0\n }),\n Zi = function (t) {\n return Qi(t) ? t : t.appendText(Xi);\n },\n Qi = function (t) {\n const e = t.getLength();\n if (0 === e) return !1;\n return t.getTextAtRange([e - 1, e]).isBlockBreak();\n },\n tn = t => t.copyWithoutAttribute(\"blockBreak\"),\n en = function (t) {\n const _mt3 = mt(t),\n e = _mt3.listAttribute;\n return e ? [e, t] : [t];\n },\n nn = t => t.slice(-1)[0],\n rn = function (t, e) {\n const i = t.lastIndexOf(e);\n return -1 === i ? t : st(t, i, 1);\n };\nclass on extends rt {\n static fromJSON(t) {\n return new this(Array.from(t).map(t => Gi.fromJSON(t)));\n }\n static fromString(t, e) {\n const i = Ki.textForStringWithAttributes(t, e);\n return new this([new Gi(i)]);\n }\n constructor() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\n super(...arguments), 0 === t.length && (t = [new Gi()]), this.blockList = zi.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 Zt(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 = wt(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 Lt(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 = wt(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 (ot(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 u = i.getBlockAtIndex(0);\n if (ot(s, u.getAttributes())) {\n const t = u.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 = wt(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 = wt(t);\n const _t3 = t,\n _t4 = _slicedToArray(_t3, 2),\n i = _t4[0],\n n = _t4[1];\n if (Lt(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 u = o.offset,\n h = this.getBlockAtIndex(c);\n if (n - i == 1 && l.getBlockBreakPosition() === a && h.getBlockBreakPosition() !== u && \"\\n\" === h.text.getStringAtPosition(u)) e = this.blockList.editObjectAtIndex(c, t => t.copyWithText(t.text.removeTextAtRange([u, u + 1])));else {\n let t;\n const i = l.text.getTextAtRange([0, a]),\n n = h.text.getTextAtRange([u, h.getLength()]),\n r = i.appendText(n);\n t = s !== c && 0 === a && l.getAttributeLevel() >= h.getAttributeLevel() ? h.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 = wt(t);\n const _t5 = t,\n _t6 = _slicedToArray(_t5, 2),\n n = _t6[0],\n r = _t6[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 mt(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 mt(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 setHTMLAttributeAtPosition(t, e, i) {\n const n = this.getBlockAtPosition(t),\n r = n.addHTMLAttribute(e, i);\n return this.replaceBlock(n, r);\n }\n insertBlockBreakAtRange(t) {\n let e;\n t = wt(t);\n const _t7 = t,\n _t8 = _slicedToArray(_t7, 1),\n i = _t8[0],\n _this$locationFromPos4 = this.locationFromPosition(i),\n n = _this$locationFromPos4.offset,\n r = this.removeTextAtRange(t);\n return 0 === n && (e = [new Gi()]), new this.constructor(r.blockList.insertSplittableListAtPosition(new zi(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 = mt(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 && mt(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 && mt(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 = wt(t);\n let _t9 = t,\n _t10 = _slicedToArray(_t9, 2),\n i = _t10[0],\n n = _t10[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 = wt([i, n])\n };\n }\n convertLineBreaksToBlockBreaksInRange(t) {\n t = wt(t);\n let _t11 = t,\n _t12 = _slicedToArray(_t11, 1),\n e = _t12[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 = wt(t);\n const _t13 = t,\n _t14 = _slicedToArray(_t13, 2),\n e = _t14[0],\n i = _t14[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 = wt(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 = wt(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 = wt(t);\n const _t15 = t,\n _t16 = _slicedToArray(_t15, 2),\n r = _t16[0],\n o = _t16[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 = wt(t);\n const _t17 = t,\n _t18 = _slicedToArray(_t17, 1),\n e = _t18[0];\n if (Lt(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(sn(t));\n }), Ht.fromCommonAttributesOfObjects(e).merge(Ht.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 = sn(o),\n a = o.text.getAttributesAtPosition(r),\n l = o.text.getAttributesAtPosition(r - 1),\n c = Object.keys(W).filter(t => W[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 wt([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 wt([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 _ref13 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n e = _ref13.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 wt(this.locationFromPosition(t));\n }\n locationRangeFromRange(t) {\n if (!(t = wt(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 wt([n, r]);\n }\n rangeFromLocationRange(t) {\n let e;\n t = wt(t);\n const i = this.positionFromLocation(t[0]);\n return Lt(t) || (e = this.positionFromLocation(t[1])), wt([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 sn = function (t) {\n const e = {},\n i = t.getLastAttribute();\n return i && (e[i] = !0), e;\n },\n an = function (t) {\n let e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n return {\n string: t = Wt(t),\n attributes: e,\n type: \"string\"\n };\n },\n ln = (t, e) => {\n try {\n return JSON.parse(t.getAttribute(\"data-trix-\".concat(e)));\n } catch (t) {\n return {};\n }\n };\nclass cn extends q {\n static parse(t, e) {\n const i = new this(t, e);\n return i.parse(), i;\n }\n constructor(t) {\n let _ref14 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n e = _ref14.referenceElement;\n super(...arguments), this.html = t, this.referenceElement = e, this.blocks = [], this.blockElements = [], this.processedElements = [];\n }\n getDocument() {\n return on.fromJSON(this.blocks);\n }\n parse() {\n try {\n this.createHiddenContainer(), ui.setHTML(this.containerElement, this.html);\n const t = R(this.containerElement, {\n usingFilter: gn\n });\n for (; t.nextNode();) this.processNode(t.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 = T({\n tagName: \"div\",\n style: {\n display: \"none\"\n }\n }), document.body.appendChild(this.containerElement));\n }\n removeHiddenContainer() {\n return S(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 n = this.getBlockHTMLAttributes(e);\n ot(t, null === (i = this.currentBlock) || void 0 === i ? void 0 : i.attributes) || (this.currentBlock = this.appendBlockForAttributesWithElement(t, e, n), this.currentBlockElement = e);\n }\n }\n appendBlockForElement(t) {\n const e = this.isBlockElement(t),\n i = C(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 n = this.getBlockHTMLAttributes(t);\n if (t.firstChild) {\n if (i && ot(e, this.currentBlock.attributes)) return this.appendStringWithAttributes(\"\\n\");\n this.currentBlock = this.appendBlockForAttributesWithElement(e, t, n), 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 un(t.parentNode) || (e = Vt(e), fn(null === (i = t.previousSibling) || void 0 === i ? void 0 : i.textContent) && (e = mn(e)));\n return this.appendStringWithAttributes(e, this.getTextAttributes(t.parentNode));\n }\n processElement(t) {\n let e;\n if (P(t)) {\n if (e = ln(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 (k(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(j.tableRowSeparator);\n break;\n case \"td\":\n if (this.needsTableSeparator(t)) return this.appendStringWithAttributes(j.tableCellSeparator);\n }\n }\n appendBlockForAttributesWithElement(t, e) {\n let i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\n this.blockElements.push(e);\n const n = function () {\n return {\n text: [],\n attributes: arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n htmlAttributes: arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}\n };\n }(t, i);\n return this.blocks.push(n), n;\n }\n appendEmptyBlock() {\n return this.appendBlockForAttributesWithElement([], null);\n }\n appendStringWithAttributes(t, e) {\n return this.appendPiece(an(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(an(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(an(t));\n n.string = t + n.string;\n }\n getTextAttributes(t) {\n let e;\n const i = {};\n for (const n in W) {\n const r = W[n];\n if (r.tagName && y(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 (P(t)) {\n const n = ln(t, \"attributes\");\n for (const t in n) e = n[t], i[t] = e;\n }\n return i;\n }\n getBlockAttributes(t) {\n const e = [];\n for (; t && t !== this.containerElement;) {\n for (const r in n) {\n const o = n[r];\n var i;\n if (!1 !== o.parse) if (k(t) === o.tagName) (null !== (i = o.test) && void 0 !== i && i.call(o, t) || !o.test) && (e.push(r), o.listAttribute && e.push(o.listAttribute));\n }\n t = t.parentNode;\n }\n return e.reverse();\n }\n getBlockHTMLAttributes(t) {\n const e = {},\n i = Object.values(n).find(e => e.tagName === k(t));\n return ((null == i ? void 0 : i.htmlAttributes) || []).forEach(i => {\n t.hasAttribute(i) && (e[i] = t.getAttribute(i));\n }), e;\n }\n findBlockElementAncestors(t) {\n const e = [];\n for (; t && t !== this.containerElement;) {\n const i = k(t);\n L().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 && !P(t) && !y(t, {\n matchingSelector: \"td\",\n untilNode: this.containerElement\n })) return L().includes(k(t)) || \"block\" === window.getComputedStyle(t).display;\n }\n isInsignificantTextNode(t) {\n if ((null == t ? void 0 : t.nodeType) !== Node.TEXT_NODE) return;\n if (!pn(t.data)) return;\n const e = t.parentNode,\n i = t.previousSibling,\n n = t.nextSibling;\n return hn(e.previousSibling) && !this.isBlockElement(e.previousSibling) || un(e) ? void 0 : !i || this.isBlockElement(i) || !n || this.isBlockElement(n);\n }\n isExtraBR(t) {\n return \"br\" === k(t) && this.isBlockElement(t.parentNode) && t.parentNode.lastChild === t;\n }\n needsTableSeparator(t) {\n if (j.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 && !L().includes(k(e)) && !this.processedElements.includes(e)) return dn(e);\n }\n getMarginOfDefaultBlockElement() {\n const t = T(n.default.tagName);\n return this.containerElement.appendChild(t), dn(t);\n }\n}\nconst un = 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 hn = t => t && !fn(t.textContent),\n dn = 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 gn = function (t) {\n return \"style\" === k(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n },\n mn = t => t.replace(new RegExp(\"^\".concat(Ut.source, \"+\")), \"\"),\n pn = t => new RegExp(\"^\".concat(Ut.source, \"*$\")).test(t),\n fn = t => /\\s$/.test(t),\n bn = [\"contenteditable\", \"data-trix-id\", \"data-trix-store-key\", \"data-trix-mutable\", \"data-trix-placeholder\", \"tabindex\"],\n vn = \"data-trix-serialized-attributes\",\n An = \"[\".concat(vn, \"]\"),\n yn = new RegExp(\"\\x3c!--block--\\x3e\", \"g\"),\n xn = {\n \"application/json\": function (t) {\n let e;\n if (t instanceof on) e = t;else {\n if (!(t instanceof HTMLElement)) throw new Error(\"unserializable object\");\n e = cn.parse(t.innerHTML).getDocument();\n }\n return e.toSerializableDocument().toJSONString();\n },\n \"text/html\": function (t) {\n let e;\n if (t instanceof on) e = Ci.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 S(t);\n }), bn.forEach(t => {\n Array.from(e.querySelectorAll(\"[\".concat(t, \"]\"))).forEach(e => {\n e.removeAttribute(t);\n });\n }), Array.from(e.querySelectorAll(An)).forEach(t => {\n try {\n const e = JSON.parse(t.getAttribute(vn));\n t.removeAttribute(vn);\n for (const i in e) {\n const n = e[i];\n t.setAttribute(i, n);\n }\n } catch (t) {}\n }), e.innerHTML.replace(yn, \"\");\n }\n };\nvar Cn = Object.freeze({\n __proto__: null\n});\nclass En extends q {\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}\nEn.proxyMethod(\"attachment.getAttribute\"), En.proxyMethod(\"attachment.hasAttribute\"), En.proxyMethod(\"attachment.setAttribute\"), En.proxyMethod(\"attachment.getAttributes\"), En.proxyMethod(\"attachment.setAttributes\"), En.proxyMethod(\"attachment.isPending\"), En.proxyMethod(\"attachment.isPreviewable\"), En.proxyMethod(\"attachment.getURL\"), En.proxyMethod(\"attachment.getHref\"), En.proxyMethod(\"attachment.getFilename\"), En.proxyMethod(\"attachment.getFilesize\"), En.proxyMethod(\"attachment.getFormattedFilesize\"), En.proxyMethod(\"attachment.getExtension\"), En.proxyMethod(\"attachment.getContentType\"), En.proxyMethod(\"attachment.getFile\"), En.proxyMethod(\"attachment.setFile\"), En.proxyMethod(\"attachment.releaseFile\"), En.proxyMethod(\"attachment.getUploadProgress\"), En.proxyMethod(\"attachment.setUploadProgress\");\nclass Sn extends q {\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 En(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 Rn {\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 kn extends q {\n constructor() {\n super(...arguments), this.document = new on(), 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 on()), 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 _ref15 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {\n updatePosition: !0\n },\n e = _ref15.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 Gi();\n const e = new on([t]);\n return this.insertDocument(e);\n }\n insertDocument() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new on();\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 = Ki.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 Rn(this);\n if (t.shouldDecreaseListLevel()) return this.decreaseListLevel(), this.setSelection(t.startPosition);\n if (t.shouldPrependListItem()) {\n const e = new on([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 = cn.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 = cn.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 = Wi.attachmentForFile(t);\n e.push(i);\n }\n }), this.insertAttachments(e);\n }\n insertAttachment(t) {\n return this.insertAttachments([t]);\n }\n insertAttachments(t) {\n let e = new Ki();\n return Array.from(t).forEach(t => {\n var n;\n const r = t.getType(),\n o = null === (n = i[r]) || void 0 === n ? void 0 : n.presentation,\n s = this.getCurrentTextAttributes();\n o && (s.presentation = o);\n const a = Ki.textForAttachmentWithAttributes(t, s);\n e = e.appendText(a);\n }), this.insertText(e);\n }\n shouldManageDeletingInDirection(t) {\n const e = this.getLocationRange();\n if (Lt(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 _ref16 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n r = _ref16.length;\n const o = this.getLocationRange();\n let s = this.getSelectedRange();\n const a = Lt(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 + 1]), 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 mt(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 mt(t) ? this.setBlockAttribute(t, e) : (this.setTextAttribute(t, e), this.currentAttributes[t] = e, this.notifyDelegateOfCurrentAttributesChange());\n }\n setHTMLAtributeAtPosition(t, e, i) {\n var n;\n const r = this.document.getBlockAtPosition(t),\n o = null === (n = mt(r.getLastAttribute())) || void 0 === n ? void 0 : n.htmlAttributes;\n if (r && null != o && o.includes(e)) {\n const n = this.document.setHTMLAttributeAtPosition(t, e, i);\n this.setDocument(n);\n }\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 = Ki.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 mt(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 = mt(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 ot((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(gt()).forEach(t => {\n e[t] || this.canSetCurrentAttribute(t) || (e[t] = !1);\n }), !Tt(e, this.currentAttributes)) return this.currentAttributes = e, this.notifyDelegateOfCurrentAttributesChange();\n }\n }\n getCurrentAttributes() {\n return m.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 && ft(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) || wt({\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 _ref17 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n e = _ref17.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), wt([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 = !Dt(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 _ref18 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n e = _ref18.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 _ref19 = 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 = _ref19.added,\n i = _ref19.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 on([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}\nkn.proxyMethod(\"getSelectionManager().getPointRange\"), kn.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"), kn.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"), kn.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"), kn.proxyMethod(\"getSelectionManager().selectionIsExpanded\"), kn.proxyMethod(\"delegate?.getSelectionManager\");\nclass Tn extends q {\n constructor(t) {\n super(...arguments), this.composition = t, this.undoEntries = [], this.redoEntries = [];\n }\n recordUndoEntry(t) {\n let _ref20 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n e = _ref20.context,\n i = _ref20.consolidatable;\n const n = this.undoEntries.slice(-1)[0];\n if (!i || !wn(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 _ref21 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n t = _ref21.description,\n e = _ref21.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 wn = (t, e, i) => (null == t ? void 0 : t.description) === (null == e ? void 0 : e.toString()) && (null == t ? void 0 : t.context) === JSON.stringify(i),\n Ln = \"attachmentGallery\";\nclass Dn {\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(Ln, 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(Ln, !0, e));\n });\n }\n findRangesOfBlocks() {\n return this.document.findRangesForBlockAttribute(Ln);\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 Nn = function (t) {\n const e = new Dn(t);\n return e.perform(), e.getSnapshot();\n },\n In = [Nn];\nclass On {\n constructor(t, e, i) {\n this.insertFiles = this.insertFiles.bind(this), this.composition = t, this.selectionManager = e, this.element = i, this.undoManager = new Tn(this.composition), this.filters = In.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 = cn.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 = on.fromJSON(e), this.loadSnapshot({\n document: e,\n selectedRange: i\n });\n }\n loadSnapshot(t) {\n return this.undoManager = new Tn(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 setHTMLAtributeAtPosition(t, e, i) {\n this.composition.setHTMLAtributeAtPosition(t, e, i);\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 _ref22 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n e = _ref22.context,\n i = _ref22.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 Fn {\n constructor(t) {\n this.element = t;\n }\n findLocationFromContainerAndOffset(t, e) {\n let _ref23 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {\n strict: !0\n },\n i = _ref23.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 = E(s));\n const a = R(this.element, {\n usingFilter: _n\n });\n for (; a.nextNode();) {\n const s = a.currentNode;\n if (s === t && B(t)) {\n F(s) || (o.offset += e);\n break;\n }\n if (s.parentNode === t) {\n if (n++ === e) break;\n } else if (!C(t, s) && n > 0) break;\n N(s, {\n strict: i\n }) ? (r && o.index++, o.offset = 0, r = !0) : o.offset += Pn(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, D(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 (B(n)) 0 === Pn(n) ? (e = n.parentNode.parentNode, i = E(n.parentNode), F(n, {\n name: \"right\"\n }) && i++) : (e = n, i = t.offset - r);else {\n if (e = n.parentNode, !N(n.previousSibling) && !D(e)) for (; n === e.lastChild && (n = e, e = e.parentNode, !D(e)););\n i = E(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 = Pn(r);\n if (t.offset <= n + o) if (B(r)) {\n if (e = r, i = n, t.offset === i && F(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 (P(t)) return t;\n t = t.parentNode;\n }\n }\n getSignificantNodesForIndex(t) {\n const e = [],\n i = R(this.element, {\n usingFilter: Mn\n });\n let n = !1;\n for (; i.nextNode();) {\n const o = i.currentNode;\n var r;\n if (I(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 Pn = function (t) {\n if (t.nodeType === Node.TEXT_NODE) {\n if (F(t)) return 0;\n return t.textContent.length;\n }\n return \"br\" === k(t) || P(t) ? 1 : 0;\n },\n Mn = function (t) {\n return Bn(t) === NodeFilter.FILTER_ACCEPT ? _n(t) : NodeFilter.FILTER_REJECT;\n },\n Bn = function (t) {\n return M(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n },\n _n = function (t) {\n return P(t.parentNode) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n };\nclass jn {\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 = Mt();\n try {\n const t = document.body.createTextRange();\n t.moveToPoint(i, n), t.select();\n } catch (t) {}\n return e = Mt(), Bt(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 Wn extends q {\n constructor(t) {\n super(...arguments), this.didMouseDown = this.didMouseDown.bind(this), this.selectionDidChange = this.selectionDidChange.bind(this), this.element = t, this.locationMapper = new Fn(this.element), this.pointMapper = new jn(), this.lockCount = 0, b(\"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(Mt()) : t.ignoreLock ? this.currentLocationRange : this.lockedLocationRange ? this.lockedLocationRange : this.currentLocationRange;\n }\n setLocationRange(t) {\n if (this.lockedLocationRange) return;\n t = wt(t);\n const e = this.createDOMRangeFromLocationRange(t);\n e && (Bt(e), this.updateCurrentLocationRange(t));\n }\n setLocationRangeFromPointRange(t) {\n t = wt(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 F(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 = Pt()) || void 0 === t ? void 0 : t.removeAllRanges();\n }\n selectionIsCollapsed() {\n var t;\n return !0 === (null === (t = Mt()) || 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 wt([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 }), C(document, this.element)) return this.selectionDidChange();\n },\n i = setTimeout(e, 200);\n t = [\"mousemove\", \"keydown\"].map(t => b(t, {\n onElement: document,\n withCallback: e\n }));\n }\n selectionDidChange() {\n if (!this.paused && !x(this.element)) return this.updateCurrentLocationRange();\n }\n updateCurrentLocationRange(t) {\n var e, i;\n if ((null != t ? t : t = this.createLocationRangeFromDOMRange(Mt())) && !Dt(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 = Lt(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 ? C(this.element, t.startContainer) : C(this.element, t.startContainer) && C(this.element, t.endContainer);\n }\n}\nWn.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"), Wn.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"), Wn.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"), Wn.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"), Wn.proxyMethod(\"pointMapper.getClientRectsForDOMRange\");\nvar Un = Object.freeze({\n __proto__: null,\n Attachment: Wi,\n AttachmentManager: Sn,\n AttachmentPiece: Ui,\n Block: Gi,\n Composition: kn,\n Document: on,\n Editor: On,\n HTMLParser: cn,\n HTMLSanitizer: ui,\n LineBreakInsertion: Rn,\n LocationMapper: Fn,\n ManagedAttachment: En,\n Piece: _i,\n PointMapper: jn,\n SelectionManager: Wn,\n SplittableList: zi,\n StringPiece: Vi,\n Text: Ki,\n UndoManager: Tn\n }),\n Vn = Object.freeze({\n __proto__: null,\n ObjectView: ie,\n AttachmentView: gi,\n BlockView: xi,\n DocumentView: Ci,\n PieceView: bi,\n PreviewableAttachmentView: fi,\n TextView: vi\n });\nconst zn = z.lang,\n qn = z.css,\n Hn = z.keyNames,\n Jn = 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 Kn extends q {\n constructor(t, e, i) {\n let n = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {};\n super(...arguments), wi(this, \"makeElementMutable\", Jn(() => ({\n do: () => {\n this.element.dataset.trixMutable = !0;\n },\n undo: () => delete this.element.dataset.trixMutable\n }))), wi(this, \"addToolbar\", Jn(() => {\n const t = T({\n tagName: \"div\",\n className: qn.attachmentToolbar,\n data: {\n trixMutable: !0\n },\n childNodes: T({\n tagName: \"div\",\n className: \"trix-button-row\",\n childNodes: T({\n tagName: \"span\",\n className: \"trix-button-group trix-button-group--actions\",\n childNodes: T({\n tagName: \"button\",\n className: \"trix-button trix-button--remove\",\n textContent: zn.remove,\n attributes: {\n title: zn.remove\n },\n data: {\n trixAction: \"remove\"\n }\n })\n })\n })\n });\n return this.attachment.isPreviewable() && t.appendChild(T({\n tagName: \"div\",\n className: qn.attachmentMetadataContainer,\n childNodes: T({\n tagName: \"span\",\n className: qn.attachmentMetadata,\n childNodes: [T({\n tagName: \"span\",\n className: qn.attachmentName,\n textContent: this.attachment.getFilename(),\n attributes: {\n title: this.attachment.getFilename()\n }\n }), T({\n tagName: \"span\",\n className: qn.attachmentSize,\n textContent: this.attachment.getFormattedFilesize()\n })]\n })\n })), b(\"click\", {\n onElement: t,\n withCallback: this.didClickToolbar\n }), b(\"click\", {\n onElement: t,\n matchingSelector: \"[data-trix-action]\",\n withCallback: this.didClickActionButton\n }), v(\"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: () => S(t)\n };\n })), wi(this, \"installCaptionEditor\", Jn(() => {\n const t = T({\n tagName: \"textarea\",\n className: qn.attachmentCaptionEditor,\n attributes: {\n placeholder: zn.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 b(\"input\", {\n onElement: t,\n withCallback: i\n }), b(\"input\", {\n onElement: t,\n withCallback: this.didInputCaption\n }), b(\"keydown\", {\n onElement: t,\n withCallback: this.didKeyDownCaption\n }), b(\"change\", {\n onElement: t,\n withCallback: this.didChangeCaption\n }), b(\"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(qn.attachmentCaption, \"--editing\")), n.parentElement.insertBefore(r, n), i(), this.options.editCaption) return Rt(() => t.focus());\n },\n undo() {\n S(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\" === k(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 (null != 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\" === Hn[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 Gn extends q {\n constructor(t, i) {\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 = i, this.documentView = new Ci(this.composition.document, {\n element: this.element\n }), b(\"focus\", {\n onElement: this.element,\n withCallback: this.didFocus\n }), b(\"blur\", {\n onElement: this.element,\n withCallback: this.didBlur\n }), b(\"click\", {\n onElement: this.element,\n matchingSelector: \"a[contenteditable=false]\",\n preventDefault: !0\n }), b(\"mousedown\", {\n onElement: this.element,\n matchingSelector: e,\n withCallback: this.didClickAttachment\n }), b(\"click\", {\n onElement: this.element,\n matchingSelector: \"a\".concat(e),\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 => Rt(() => {\n var e, i;\n x(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 = !!y(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 Kn(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 Yn extends q {}\nconst $n = \"data-trix-mutable\",\n Xn = \"[\".concat($n, \"]\"),\n Zn = {\n attributes: !0,\n childList: !0,\n characterData: !0,\n characterDataOldValue: !0,\n subtree: !0\n };\nclass Qn extends q {\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, Zn);\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) && !M(t);\n }\n nodeIsMutable(t) {\n return y(t, {\n matchingSelector: Xn\n });\n }\n nodesModifiedByMutation(t) {\n const e = [];\n switch (t.type) {\n case \"attributes\":\n t.attributeName !== $n && 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 && I(n[0]) ? (t = [], e = [\"\\n\"]) : (t = tr(i), e = tr(n));\n const r = t.filter((t, i) => t !== e[i]).map(Wt),\n o = e.filter((e, i) => e !== t[i]).map(Wt);\n return {\n additions: r,\n deletions: o\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 _zt, _zt2, _zt3, _zt4;\n let i, n;\n return t = X.box(t), (e = X.box(e)).length < t.length ? (_zt = zt(t, e), _zt2 = _slicedToArray(_zt, 2), n = _zt2[0], i = _zt2[1], _zt) : (_zt3 = zt(e, t), _zt4 = _slicedToArray(_zt3, 2), i = _zt4[0], n = _zt4[1], _zt3), {\n added: i,\n removed: n\n };\n }(Wt(n.oldValue), Wt(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 tr = 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\" === k(i) ? e.push(\"\\n\") : e.push(...Array.from(tr(i.childNodes) || []));\n }\n return e;\n};\nclass er extends ee {\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 ir {\n constructor(t) {\n this.element = t;\n }\n shouldIgnore(t) {\n return !!a.samsungAndroid && (this.previousEvent = this.event, this.event = t, this.checkSamsungKeyboardBuggyModeStart(), this.checkSamsungKeyboardBuggyModeEnd(), this.buggyMode);\n }\n checkSamsungKeyboardBuggyModeStart() {\n this.insertingLongTextAfterUnidentifiedChar() && nr(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) > 50;\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 nr = (t, e) => or(t) === or(e),\n rr = new RegExp(\"(\".concat(\"\", \"|\").concat(d, \"|\").concat(g, \"|\\\\s)+\"), \"g\"),\n or = t => t.replace(rr, \" \").trim();\nclass sr extends q {\n constructor(t) {\n super(...arguments), this.element = t, this.mutationObserver = new Qn(this.element), this.mutationObserver.delegate = this, this.flakyKeyboardDetector = new ir(this.element);\n for (const t in this.constructor.events) b(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 er(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 (!x(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 ar;\nwi(sr, \"events\", {});\nconst lr = z.browser,\n cr = z.keyNames;\nlet ur = 0;\nclass hr extends sr {\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 fr(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 Ct) {\n const i = Ct[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\", Ci.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 = T({\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 S(n), this.setSelectedRange(e), t(i);\n });\n }\n}\nwi(hr, \"events\", {\n keydown(t) {\n this.isComposing() || this.resetInputSummary(), this.inputSummary.didInput = !0;\n const e = cr[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 (St(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 = mr(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 (!Tt(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 = on.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 || pr(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 ? Vt(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 (Et(e)) {\n var c, u, h;\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 === (u = this.responder) || void 0 === u || u.insertString(i.string), this.requestRender(), null === (h = this.delegate) || void 0 === h || h.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;\n const t = null === (p = e.items) || void 0 === p || null === (p = p[0]) || void 0 === p || null === (f = p.getAsFile) || void 0 === f ? void 0 : f.call(p);\n if (t) {\n var b, v, A;\n const e = dr(t);\n !t.name && e && (t.name = \"pasted-file-\".concat(++ur, \".\").concat(e)), i.type = \"File\", i.file = t, null === (b = this.delegate) || void 0 === b || b.inputControllerWillAttachFiles(), null === (v = this.responder) || void 0 === v || v.insertFile(i.file), this.requestRender(), null === (A = this.delegate) || void 0 === A || A.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}), wi(hr, \"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}), hr.proxyMethod(\"responder?.getSelectedRange\"), hr.proxyMethod(\"responder?.setSelectedRange\"), hr.proxyMethod(\"responder?.expandSelectionInDirection\"), hr.proxyMethod(\"responder?.selectionIsInCursorTarget\"), hr.proxyMethod(\"responder?.selectionIsExpanded\");\nconst dr = t => {\n var e;\n return null === (e = t.type) || void 0 === e || null === (e = e.match(/\\/(\\w+)$/)) || void 0 === e ? void 0 : e[1];\n },\n gr = !(null === (ar = \" \".codePointAt) || void 0 === ar || !ar.call(\" \", 0)),\n mr = function (t) {\n if (t.key && gr && 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\" !== cr[e]) return X.fromCodepoints([e]).toString();\n }\n },\n pr = 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 fr extends q {\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 !lr.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}\nfr.proxyMethod(\"inputController.setInputSummary\"), fr.proxyMethod(\"inputController.requestRender\"), fr.proxyMethod(\"inputController.requestReparse\"), fr.proxyMethod(\"responder?.selectionIsExpanded\"), fr.proxyMethod(\"responder?.insertPlaceholder\"), fr.proxyMethod(\"responder?.selectPlaceholder\"), fr.proxyMethod(\"responder?.forgetPlaceholder\");\nclass br extends sr {\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 (gt().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 (gt().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 _ref24 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {\n recordUndoEntry: !0\n },\n e = _ref24.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: this.composing ? 1 : 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 _ref25 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {\n minLength: 0\n },\n i = _ref25.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 = vr(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}\nwi(br, \"events\", {\n keydown(t) {\n if (St(t)) {\n var e;\n const i = Er(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 xr(t) ? (t.preventDefault(), this.attachFiles(t.clipboardData.files)) : Cr(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 i = (n = t, !(!/iPhone|iPad/.test(navigator.userAgent) || n.inputType && \"insertParagraph\" !== n.inputType));\n var n;\n e && (this.withEvent(t, e), i || this.scheduleRender()), i && this.render();\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: Sr(t)\n });\n },\n dragenter(t) {\n Ar(t) && t.preventDefault();\n },\n dragover(t) {\n if (this.dragging) {\n t.preventDefault();\n const i = Sr(t);\n var e;\n if (!Tt(i, this.dragging.point)) return this.dragging.point = i, null === (e = this.responder) || void 0 === e ? void 0 : e.setLocationRangeFromPointRange(i);\n } else Ar(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 (Ar(t)) {\n var n;\n t.preventDefault();\n const e = Sr(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, a.recentAndroid || this.scheduleRender());\n }\n}), wi(br, \"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}), wi(br, \"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 const t = this.event.dataTransfer,\n e = {\n dataTransfer: t\n },\n i = t.getData(\"URL\"),\n n = t.getData(\"text/html\");\n if (i) {\n var r;\n let n;\n this.event.preventDefault(), e.type = \"text/html\";\n const o = t.getData(\"public.url-name\");\n n = o ? Vt(o).trim() : i, e.html = this.createLinkHTML(i, n), null === (r = this.delegate) || void 0 === r || r.inputControllerWillPaste(e), this.withTargetDOMRange(function () {\n var t;\n return null === (t = this.responder) || void 0 === t ? void 0 : t.insertHTML(e.html);\n }), this.afterRender = () => {\n var t;\n return null === (t = this.delegate) || void 0 === t ? void 0 : t.inputControllerDidPaste(e);\n };\n } else if (Et(t)) {\n var o;\n e.type = \"text/plain\", e.string = t.getData(\"text/plain\"), null === (o = this.delegate) || void 0 === o || o.inputControllerWillPaste(e), this.withTargetDOMRange(function () {\n var t;\n return null === (t = this.responder) || void 0 === t ? void 0 : t.insertString(e.string);\n }), this.afterRender = () => {\n var t;\n return null === (t = this.delegate) || void 0 === t ? void 0 : t.inputControllerDidPaste(e);\n };\n } else if (yr(this.event)) {\n var s;\n e.type = \"File\", e.file = t.files[0], null === (s = this.delegate) || void 0 === s || s.inputControllerWillPaste(e), this.withTargetDOMRange(function () {\n var t;\n return null === (t = this.responder) || void 0 === t ? void 0 : t.insertFile(e.file);\n }), this.afterRender = () => {\n var t;\n return null === (t = this.delegate) || void 0 === t ? void 0 : t.inputControllerDidPaste(e);\n };\n } else if (n) {\n var a;\n this.event.preventDefault(), e.type = \"text/html\", e.html = n, null === (a = this.delegate) || void 0 === a || a.inputControllerWillPaste(e), this.withTargetDOMRange(function () {\n var t;\n return null === (t = this.responder) || void 0 === t ? void 0 : t.insertHTML(e.html);\n }), this.afterRender = () => {\n var t;\n return null === (t = this.delegate) || void 0 === t ? void 0 : t.inputControllerDidPaste(e);\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 const t = this.event.dataTransfer.getData(\"text/plain\"),\n e = this.event.getTargetRanges()[0];\n this.withTargetDOMRange(e, () => {\n this.insertString(t, {\n updatePosition: !1\n });\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 vr = function (t) {\n const e = document.createRange();\n return e.setStart(t.startContainer, t.startOffset), e.setEnd(t.endContainer, t.endOffset), e;\n },\n Ar = t => {\n var e;\n return Array.from((null === (e = t.dataTransfer) || void 0 === e ? void 0 : e.types) || []).includes(\"Files\");\n },\n yr = t => {\n var e;\n return (null === (e = t.dataTransfer.files) || void 0 === e ? void 0 : e[0]) && !xr(t) && !(t => {\n let e = t.dataTransfer;\n return e.types.includes(\"Files\") && e.types.includes(\"text/html\") && e.getData(\"text/html\").includes(\"urn:schemas-microsoft-com:office:office\");\n })(t);\n },\n xr = function (t) {\n const e = t.clipboardData;\n if (e) {\n return Array.from(e.types).filter(t => t.match(/file/i)).length === e.types.length && e.files.length >= 1;\n }\n },\n Cr = function (t) {\n const e = t.clipboardData;\n if (e) return e.types.includes(\"text/plain\") && 1 === e.types.length;\n },\n Er = function (t) {\n const e = [];\n return t.altKey && e.push(\"alt\"), t.shiftKey && e.push(\"shift\"), e.push(t.key), e;\n },\n Sr = t => ({\n x: t.clientX,\n y: t.clientY\n }),\n Rr = \"[data-trix-attribute]\",\n kr = \"[data-trix-action]\",\n Tr = \"\".concat(Rr, \", \").concat(kr),\n wr = \"[data-trix-dialog]\",\n Lr = \"\".concat(wr, \"[data-trix-active]\"),\n Dr = \"\".concat(wr, \" [data-trix-method]\"),\n Nr = \"\".concat(wr, \" [data-trix-input]\"),\n Ir = (t, e) => (e || (e = Fr(t)), t.querySelector(\"[data-trix-input][name='\".concat(e, \"']\"))),\n Or = t => t.getAttribute(\"data-trix-action\"),\n Fr = t => t.getAttribute(\"data-trix-attribute\") || t.getAttribute(\"data-trix-dialog-attribute\");\nclass Pr extends q {\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(), b(\"mousedown\", {\n onElement: this.element,\n matchingSelector: kr,\n withCallback: this.didClickActionButton\n }), b(\"mousedown\", {\n onElement: this.element,\n matchingSelector: Rr,\n withCallback: this.didClickAttributeButton\n }), b(\"click\", {\n onElement: this.element,\n matchingSelector: Tr,\n preventDefault: !0\n }), b(\"click\", {\n onElement: this.element,\n matchingSelector: Dr,\n withCallback: this.didClickDialogButton\n }), b(\"keydown\", {\n onElement: this.element,\n matchingSelector: Nr,\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 = Or(e);\n return this.getDialog(n) ? this.toggleDialog(n) : null === (r = this.delegate) || void 0 === r ? void 0 : r.toolbarDidInvokeAction(n, e);\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 = Fr(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 = y(e, {\n matchingSelector: wr\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(kr)).map(e => t(e, Or(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(Rr)).map(e => t(e, Fr(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 v(\"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 = Fr(n);\n if (r) {\n const e = Ir(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 var e;\n const i = Fr(t),\n n = Ir(t, i);\n return !n.willValidate || (n.setCustomValidity(\"\"), n.checkValidity() && this.isSafeAttribute(n)) ? (null === (e = this.delegate) || void 0 === e || e.toolbarDidUpdateAttribute(i, n.value), this.hideDialog()) : (n.setCustomValidity(\"Invalid value\"), n.setAttribute(\"data-trix-validate\", \"\"), n.classList.add(\"trix-validate\"), n.focus());\n }\n isSafeAttribute(t) {\n return !t.hasAttribute(\"data-trix-validate-href\") || si.isValidAttribute(\"a\", \"href\", t.value);\n }\n removeAttribute(t) {\n var e;\n const i = Fr(t);\n return null === (e = this.delegate) || void 0 === e || e.toolbarDidRemoveAttribute(i), this.hideDialog();\n }\n hideDialog() {\n const t = this.element.querySelector(Lr);\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(Nr)).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 Mr extends Yn {\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 Wn(this.editorElement), this.selectionManager.delegate = this, this.composition = new kn(), this.composition.delegate = this, this.attachmentManager = new Sn(this.composition.getAttachments()), this.attachmentManager.delegate = this, this.inputController = 2 === _.getLevel() ? new br(this.editorElement) : new hr(this.editorElement), this.inputController.delegate = this, this.inputController.responder = this.composition, this.compositionController = new Gn(this.editorElement, this.composition), this.compositionController.delegate = this, this.toolbarController = new Pr(this.editorElement.toolbarElement), this.toolbarController.delegate = this, this.editor = new On(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 && !Dt(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, e) {\n return this.invokeAction(t, e);\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 === (e = e.test) || void 0 === e || !e.call(this));\n var e;\n }\n invokeAction(t, e) {\n return this.actionIsExternal(t) ? this.notifyEditorElement(\"action-invoke\", {\n actionName: t,\n invokingElement: e\n }) : null === (i = this.actions[t]) || void 0 === i || null === (i = i.perform) || void 0 === i ? void 0 : i.call(this);\n var 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 (!Tt(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 _t19 = t,\n i = _t19.document,\n n = _t19.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(), !Dt(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 = xn[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.setFormValue(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 = mt(t),\n i = this.selectionManager.getLocationRange();\n if (e || !Lt(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 Lt(t) ? t[0].index : t;\n }\n getTimeContext() {\n return V.interval > 0 ? Math.floor(new Date().getTime() / V.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}\nwi(Mr, \"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 _.pickFiles(this.editor.insertFiles);\n }\n }\n}), Mr.proxyMethod(\"getSelectionManager().setLocationRange\"), Mr.proxyMethod(\"getSelectionManager().getLocationRange\");\nvar Br = Object.freeze({\n __proto__: null,\n AttachmentEditorController: Kn,\n CompositionController: Gn,\n Controller: Yn,\n EditorController: Mr,\n InputController: sr,\n Level0InputController: hr,\n Level2InputController: br,\n ToolbarController: Pr\n }),\n _r = Object.freeze({\n __proto__: null,\n MutationObserver: Qn,\n SelectionChangeObserver: Ot\n }),\n jr = Object.freeze({\n __proto__: null,\n FileVerificationOperation: er,\n ImagePreloadOperation: ji\n });\nvt(\"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 Wr extends HTMLElement {\n connectedCallback() {\n \"\" === this.innerHTML && (this.innerHTML = U.getDefaultHTML());\n }\n}\nlet Ur = 0;\nconst Vr = 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, b(t, e);\n }(\"focus\", {\n onElement: t,\n withCallback: () => zr(t)\n });\n },\n zr = function (t) {\n return qr(t), Hr(t);\n },\n qr = 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), b(\"mscontrolselect\", {\n onElement: t,\n preventDefault: !0\n });\n },\n Hr = function (t) {\n var e, i;\n if (null !== (e = (i = document).queryCommandSupported) && void 0 !== e && e.call(i, \"DefaultParagraphSeparator\")) {\n const t = n.default.tagName;\n if ([\"div\", \"p\"].includes(t)) return document.execCommand(\"DefaultParagraphSeparator\", !1, t);\n }\n },\n Jr = a.forcesObjectResizing ? {\n display: \"inline\",\n width: \"auto\"\n } : {\n display: \"inline-block\",\n width: \"1px\"\n };\nvt(\"trix-editor\", \"%t {\\n display: block;\\n}\\n\\n%t:empty::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(e, \" figcaption textarea {\\n resize: none;\\n}\\n\\n%t \").concat(e, \" figcaption textarea.trix-autoresize-clone {\\n position: absolute;\\n left: -9999px;\\n max-height: 0px;\\n}\\n\\n%t \").concat(e, \" 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(Jr.display, \" !important;\\n width: \").concat(Jr.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}\"));\nvar Kr = new WeakMap(),\n Gr = new WeakSet();\nclass Yr {\n constructor(t) {\n var e, i;\n Mi(e = this, i = Gr), i.add(e), Bi(this, Kr, {\n writable: !0,\n value: void 0\n }), this.element = t, Ni(this, Kr, t.attachInternals());\n }\n connectedCallback() {\n Pi(this, Gr, $r).call(this);\n }\n disconnectedCallback() {}\n get labels() {\n return Di(this, Kr).labels;\n }\n get disabled() {\n var t;\n return null === (t = this.element.inputElement) || void 0 === t ? void 0 : t.disabled;\n }\n set disabled(t) {\n this.element.toggleAttribute(\"disabled\", t);\n }\n get required() {\n return this.element.hasAttribute(\"required\");\n }\n set required(t) {\n this.element.toggleAttribute(\"required\", t), Pi(this, Gr, $r).call(this);\n }\n get validity() {\n return Di(this, Kr).validity;\n }\n get validationMessage() {\n return Di(this, Kr).validationMessage;\n }\n get willValidate() {\n return Di(this, Kr).willValidate;\n }\n setFormValue(t) {\n Pi(this, Gr, $r).call(this);\n }\n checkValidity() {\n return Di(this, Kr).checkValidity();\n }\n reportValidity() {\n return Di(this, Kr).reportValidity();\n }\n setCustomValidity(t) {\n Pi(this, Gr, $r).call(this, t);\n }\n}\nfunction $r() {\n let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : \"\";\n const _this$element = this.element,\n e = _this$element.required,\n i = _this$element.value,\n n = e && !i,\n r = !!t,\n o = T(\"input\", {\n required: e\n }),\n s = t || o.validationMessage;\n Di(this, Kr).setValidity({\n valueMissing: n,\n customError: r\n }, s);\n}\nvar Xr = new WeakMap(),\n Zr = new WeakMap(),\n Qr = new WeakMap();\nclass to {\n constructor(t) {\n Bi(this, Xr, {\n writable: !0,\n value: void 0\n }), Bi(this, Zr, {\n writable: !0,\n value: t => {\n t.defaultPrevented || t.target === this.element.form && this.element.reset();\n }\n }), Bi(this, Qr, {\n writable: !0,\n value: t => {\n if (t.defaultPrevented) return;\n if (this.element.contains(t.target)) return;\n const e = y(t.target, {\n matchingSelector: \"label\"\n });\n e && Array.from(this.labels).includes(e) && this.element.focus();\n }\n }), this.element = t;\n }\n connectedCallback() {\n Ni(this, Xr, 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 return e(), b(\"focus\", {\n onElement: t,\n withCallback: e\n });\n }(this.element)), window.addEventListener(\"reset\", Di(this, Zr), !1), window.addEventListener(\"click\", Di(this, Qr), !1);\n }\n disconnectedCallback() {\n var t;\n null === (t = Di(this, Xr)) || void 0 === t || t.destroy(), window.removeEventListener(\"reset\", Di(this, Zr), !1), window.removeEventListener(\"click\", Di(this, Qr), !1);\n }\n get labels() {\n const t = [];\n this.element.id && this.element.ownerDocument && t.push(...Array.from(this.element.ownerDocument.querySelectorAll(\"label[for='\".concat(this.element.id, \"']\")) || []));\n const e = y(this.element, {\n matchingSelector: \"label\"\n });\n return e && [this.element, null].includes(e.control) && t.push(e), t;\n }\n get disabled() {\n return console.warn(\"This browser does not support the [disabled] attribute for trix-editor elements.\"), !1;\n }\n set disabled(t) {\n console.warn(\"This browser does not support the [disabled] attribute for trix-editor elements.\");\n }\n get required() {\n return console.warn(\"This browser does not support the [required] attribute for trix-editor elements.\"), !1;\n }\n set required(t) {\n console.warn(\"This browser does not support the [required] attribute for trix-editor elements.\");\n }\n get validity() {\n return console.warn(\"This browser does not support the validity property for trix-editor elements.\"), null;\n }\n get validationMessage() {\n return console.warn(\"This browser does not support the validationMessage property for trix-editor elements.\"), \"\";\n }\n get willValidate() {\n return console.warn(\"This browser does not support the willValidate property for trix-editor elements.\"), !1;\n }\n setFormValue(t) {}\n checkValidity() {\n return console.warn(\"This browser does not support checkValidity() for trix-editor elements.\"), !0;\n }\n reportValidity() {\n return console.warn(\"This browser does not support reportValidity() for trix-editor elements.\"), !0;\n }\n setCustomValidity(t) {\n console.warn(\"This browser does not support setCustomValidity(validationMessage) for trix-editor elements.\");\n }\n}\nvar eo = new WeakMap();\nclass io extends HTMLElement {\n constructor() {\n super(), Bi(this, eo, {\n writable: !0,\n value: void 0\n }), Ni(this, eo, this.constructor.formAssociated ? new Yr(this) : new to(this));\n }\n get trixId() {\n return this.hasAttribute(\"trix-id\") ? this.getAttribute(\"trix-id\") : (this.setAttribute(\"trix-id\", ++Ur), this.trixId);\n }\n get labels() {\n return Di(this, eo).labels;\n }\n get disabled() {\n return Di(this, eo).disabled;\n }\n set disabled(t) {\n Di(this, eo).disabled = t;\n }\n get required() {\n return Di(this, eo).required;\n }\n set required(t) {\n Di(this, eo).required = t;\n }\n get validity() {\n return Di(this, eo).validity;\n }\n get validationMessage() {\n return Di(this, eo).validationMessage;\n }\n get willValidate() {\n return Di(this, eo).willValidate;\n }\n get type() {\n return this.localName;\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 = T(\"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 = T(\"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 v(\"trix-\".concat(t), {\n onElement: this,\n attributes: e\n });\n }\n setFormValue(t) {\n this.inputElement && (this.inputElement.value = t, Di(this, eo).setFormValue(t));\n }\n connectedCallback() {\n this.hasAttribute(\"data-trix-internal\") || (Vr(this), function (t) {\n if (!t.hasAttribute(\"role\")) t.setAttribute(\"role\", \"textbox\");\n }(this), this.editorController || (v(\"trix-before-initialize\", {\n onElement: this\n }), this.editorController = new Mr({\n editorElement: this,\n html: this.defaultValue = this.value\n }), requestAnimationFrame(() => v(\"trix-initialize\", {\n onElement: this\n }))), this.editorController.registerSelectionManager(), Di(this, eo).connectedCallback(), 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 null === (t = this.editorController) || void 0 === t || t.unregisterSelectionManager(), Di(this, eo).disconnectedCallback();\n }\n checkValidity() {\n return Di(this, eo).checkValidity();\n }\n reportValidity() {\n return Di(this, eo).reportValidity();\n }\n setCustomValidity(t) {\n Di(this, eo).setCustomValidity(t);\n }\n formDisabledCallback(t) {\n this.inputElement && (this.inputElement.disabled = t), this.toggleAttribute(\"contenteditable\", !t);\n }\n formResetCallback() {\n this.reset();\n }\n reset() {\n this.value = this.defaultValue;\n }\n}\nwi(io, \"formAssociated\", \"ElementInternals\" in window);\nconst no = {\n VERSION: t,\n config: z,\n core: Cn,\n models: Un,\n views: Vn,\n controllers: Br,\n observers: _r,\n operations: jr,\n elements: Object.freeze({\n __proto__: null,\n TrixEditorElement: io,\n TrixToolbarElement: Wr\n }),\n filters: Object.freeze({\n __proto__: null,\n Filter: Dn,\n attachmentGalleryFilter: Nn\n })\n};\nObject.assign(no, Un), window.Trix = no, setTimeout(function () {\n customElements.get(\"trix-toolbar\") || customElements.define(\"trix-toolbar\", Wr), customElements.get(\"trix-editor\") || customElements.define(\"trix-editor\", io);\n}, 0);\nexport { no as default };","var sparkMd5 = {\n exports: {}\n};\n(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined$1) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n function md5blk(s) {\n var md5blks = [],\n i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n function md5blk_array(a) {\n var md5blks = [],\n i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function rhex(n) {\n var s = \"\",\n j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n return s;\n }\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join(\"\");\n }\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n return Math.min(val, length);\n }\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n if (to !== undefined$1) {\n end = clamp(to, length);\n }\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n return str;\n }\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n return returnUInt8Array ? arr : buff;\n }\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n return String.fromCharCode.apply(String, bytes);\n }\n function SparkMD5() {\n this.reset();\n }\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash.slice()\n };\n };\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n return SparkMD5;\n });\n})(sparkMd5);\nvar SparkMD5 = sparkMd5.exports;\nconst fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\nclass FileChecksum {\n static create(file, callback) {\n const instance = new FileChecksum(file);\n instance.create(callback);\n }\n constructor(file) {\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n create(callback) {\n this.callback = callback;\n this.md5Buffer = new SparkMD5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", event => this.fileReaderDidLoad(event));\n this.fileReader.addEventListener(\"error\", event => this.fileReaderDidError(event));\n this.readNextChunk();\n }\n fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n if (!this.readNextChunk()) {\n const binaryDigest = this.md5Buffer.end(true);\n const base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n fileReaderDidError(event) {\n this.callback(`Error reading ${this.file.name}`);\n }\n readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n const start = this.chunkIndex * this.chunkSize;\n const end = Math.min(start + this.chunkSize, this.file.size);\n const bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n}\nfunction getMetaValue(name) {\n const element = findElement(document.head, `meta[name=\"${name}\"]`);\n if (element) {\n return element.getAttribute(\"content\");\n }\n}\nfunction findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n const elements = root.querySelectorAll(selector);\n return toArray(elements);\n}\nfunction findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n return root.querySelector(selector);\n}\nfunction dispatchEvent(element, type) {\n let eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const disabled = element.disabled;\n const bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n const event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n return event;\n}\nfunction toArray(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n}\nclass BlobRecord {\n constructor(file, checksum, url) {\n let customHeaders = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n Object.keys(customHeaders).forEach(headerKey => {\n this.xhr.setRequestHeader(headerKey, customHeaders[headerKey]);\n });\n const csrfToken = getMetaValue(\"csrf-token\");\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n this.xhr.addEventListener(\"load\", event => this.requestDidLoad(event));\n this.xhr.addEventListener(\"error\", event => this.requestDidError(event));\n }\n get status() {\n return this.xhr.status;\n }\n get response() {\n const _this$xhr = this.xhr,\n responseType = _this$xhr.responseType,\n response = _this$xhr.response;\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n const response = this.response;\n const direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n requestDidError(event) {\n this.callback(`Error creating Blob for \"${this.file.name}\". Status: ${this.status}`);\n }\n toJSON() {\n const result = {};\n for (const key in this.attributes) {\n result[key] = this.attributes[key];\n }\n return result;\n }\n}\nclass BlobUpload {\n constructor(blob) {\n this.blob = blob;\n this.file = blob.file;\n const _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n for (const key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n this.xhr.addEventListener(\"load\", event => this.requestDidLoad(event));\n this.xhr.addEventListener(\"error\", event => this.requestDidError(event));\n }\n create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n requestDidLoad(event) {\n const _this$xhr2 = this.xhr,\n status = _this$xhr2.status,\n response = _this$xhr2.response;\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n requestDidError(event) {\n this.callback(`Error storing \"${this.file.name}\". Status: ${this.xhr.status}`);\n }\n}\nlet id = 0;\nclass DirectUpload {\n constructor(file, url, delegate) {\n let customHeaders = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n this.customHeaders = customHeaders;\n }\n create(callback) {\n FileChecksum.create(this.file, (error, checksum) => {\n if (error) {\n callback(error);\n return;\n }\n const blob = new BlobRecord(this.file, checksum, this.url, this.customHeaders);\n notify(this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(error => {\n if (error) {\n callback(error);\n } else {\n const upload = new BlobUpload(blob);\n notify(this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(error => {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n}\nfunction notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n return object[methodName](...messages);\n }\n}\nclass DirectUploadController {\n constructor(input, file) {\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n start(callback) {\n const hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create((error, attributes) => {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n this.dispatch(\"end\");\n callback(error);\n });\n }\n uploadRequestDidProgress(event) {\n const progress = event.loaded / event.total * 100;\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n get url() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n dispatch(name) {\n let detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, `direct-upload:${name}`, {\n detail: detail\n });\n }\n dispatchError(error) {\n const event = this.dispatch(\"error\", {\n error: error\n });\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n directUploadWillStoreFileWithXHR(xhr) {\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", event => this.uploadRequestDidProgress(event));\n }\n}\nconst inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\nclass DirectUploadsController {\n constructor(form) {\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(input => input.files.length);\n }\n start(callback) {\n const controllers = this.createDirectUploadControllers();\n const startNextController = () => {\n const controller = controllers.shift();\n if (controller) {\n controller.start(error => {\n if (error) {\n callback(error);\n this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n this.dispatch(\"end\");\n }\n };\n this.dispatch(\"start\");\n startNextController();\n }\n createDirectUploadControllers() {\n const controllers = [];\n this.inputs.forEach(input => {\n toArray(input.files).forEach(file => {\n const controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n dispatch(name) {\n let detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, `direct-uploads:${name}`, {\n detail: detail\n });\n }\n}\nconst processingAttribute = \"data-direct-uploads-processing\";\nconst submitButtonsByForm = new WeakMap();\nlet started = false;\nfunction start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm, true);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n}\nfunction didClick(event) {\n const button = event.target.closest(\"button, input\");\n if (button && button.type === \"submit\" && button.form) {\n submitButtonsByForm.set(button.form, button);\n }\n}\nfunction didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n}\nfunction didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n}\nfunction handleFormSubmissionEvent(event) {\n const form = event.target;\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n const controller = new DirectUploadsController(form);\n const inputs = controller.inputs;\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(error => {\n form.removeAttribute(processingAttribute);\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n}\nfunction submitForm(form) {\n let button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n if (button) {\n const _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n submitButtonsByForm.delete(form);\n}\nfunction disable(input) {\n input.disabled = true;\n}\nfunction enable(input) {\n input.disabled = false;\n}\nfunction autostart() {\n if (window.ActiveStorage) {\n start();\n }\n}\nsetTimeout(autostart, 1);\nclass 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}\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});","import Trix from \"trix\"\n\nlet lang = Trix.config.lang;\nTrix.config.toolbar = {\n getDefaultHTML: function() {\n return `\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n
\n \n
\n
\n
\n `\n }\n}\n\nclass EmbedController {\n constructor(element) {\n this.patterns = [\n /^(https:\\/\\/(?:[^\\.]+\\.)?youtube\\.com\\/watch\\?v=[^&?/]+)/,\n /^(https:\\/\\/(?:[^\\.]+\\.)?youtu\\.be\\/[^&?/]+)/,\n /^(https:\\/\\/(?:[^\\.]+\\.)?vimeo\\.com\\/\\d+)/\n ]\n this.element = element\n this.editor = element.editor\n this.toolbar = element.toolbarElement\n this.hrefElement = this.toolbar.querySelector(\"[data-trix-input][name='href']\")\n this.embedContainerElement = this.toolbar.querySelector(\"[data-behavior='embed_container']\")\n this.embedElement = this.toolbar.querySelector(\"[data-behavior='embed_url']\")\n\n this.reset()\n this.installEventHandlers()\n }\n\n installEventHandlers() {\n this.hrefElement.addEventListener(\"input\", this.didInput.bind(this))\n this.hrefElement.addEventListener(\"focusin\", this.didInput.bind(this))\n this.embedElement.addEventListener(\"click\", this.embed.bind(this))\n }\n\n didInput(event) {\n let value = event.target.value.trim()\n\n for (let pattern of this.patterns) {\n let matches = value.match(pattern)\n if (value.match(pattern) != null) {\n this.fetch(matches[1])\n return\n }\n }\n // No embed code, just reset the form\n this.reset()\n }\n\n fetch(value) {\n $.ajax({\n url: `/trix/oembed/${encodeURIComponent(btoa(value))}`,\n type: 'get',\n error: this.reset.bind(this),\n success: this.showEmbed.bind(this)\n })\n }\n\n embed(event) {\n if (this.currentEmbed == null) { return }\n\n let attachment = new Trix.Attachment(this.currentEmbed)\n this.editor.insertAttachment(attachment)\n this.element.focus()\n }\n\n showEmbed(embed) {\n this.currentEmbed = embed\n this.embedContainerElement.style.display = \"block\"\n }\n\n reset() {\n this.embedContainerElement.style.display = \"none\"\n this.currentEmbed = null\n }\n}\n\ndocument.addEventListener(\"trix-initialize\", function(event) {\n new EmbedController(event.target)\n})\n","/* eslint no-console:0 */\n// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n//\n// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate\n// layout file, like app/views/layouts/application.html.erb\n\n\n// Uncomment to copy all static images under ../images to the output folder and reference\n// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)\n// or the `imagePath` JavaScript helper below.\n//\n// const images = require.context('../images', true)\n// const imagePath = (name) => images(name, true)\n\nrequire(\"trix\")\nrequire(\"@rails/actiontext\")\nimport \"trix_oembed\"\n"],"sourceRoot":""}