{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/choices.js/public/assets/scripts/choices.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/trix/dist/trix.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.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","_typeof","obj","iterator","constructor","g","this","Function","e","window","webpackPolyfill","deprecate","paths","children","factory","__webpack_modules__","__unused_webpack_module","clearChoices","activateChoices","filterChoices","addChoice","constants_1","_a","label","id","groupId","disabled","elementId","customProperties","placeholder","keyCode","type","ACTION_TYPES","ADD_CHOICE","results","FILTER_CHOICES","active","ACTIVATE_CHOICES","CLEAR_CHOICES","addGroup","ADD_GROUP","highlightItem","removeItem","addItem","choiceId","ADD_ITEM","REMOVE_ITEM","highlighted","HIGHLIGHT_ITEM","setIsLoading","resetTo","clearAll","CLEAR_ALL","state","RESET_TO","isLoading","SET_IS_LOADING","__spreadArray","to","from","pack","arguments","length","ar","Array","slice","concat","__importDefault","mod","deepmerge_1","fuse_js_1","choices_1","groups_1","items_1","misc_1","components_1","defaults_1","utils_1","reducers_1","store_1","templates_1","IS_IE11","document","documentElement","style","USER_DEFAULTS","Choices","element","userConfig","_this","config","default","all","DEFAULT_CONFIG","defaults","options","arrayMerge","_","sourceArray","invalidConfigOptions","diff","console","warn","join","passedElement","querySelector","HTMLInputElement","HTMLSelectElement","TypeError","_isTextElement","TEXT_TYPE","_isSelectOneElement","SELECT_ONE_TYPE","_isSelectMultipleElement","SELECT_MULTIPLE_TYPE","_isSelectElement","searchEnabled","includes","renderSelectedChoices","addItemFilter","re","RegExp","test","WrappedInput","classNames","delimiter","WrappedSelect","template","data","_templates","option","initialised","_store","_initialState","defaultState","_currentState","_prevState","_currentValue","_canSearch","_isScrollingOnIe","_highlightPosition","_wasTap","_placeholderValue","_generatePlaceholderValue","_baseId","generateId","_direction","dir","elementDirection","getComputedStyle","direction","_idNames","itemChoice","_presetGroups","optionGroups","_presetOptions","_presetChoices","choices","_presetItems","items","splitValues","split","forEach","push","innerHTML","selected","parentNode","hasAttribute","dataset","_render","_onFocus","_onBlur","_onKeyUp","_onKeyDown","_onClick","_onTouchMove","_onTouchEnd","_onMouseDown","_onMouseOver","_onFormReset","_onSelectKey","_onEnterKey","_onEscapeKey","_onDirectionKey","_onDeleteKey","isActive","silent","init","preventExtensions","configurable","_createTemplates","_createElements","_createStructure","subscribe","_addEventListeners","addItems","disable","callbackOnInit","destroy","_removeEventListeners","reveal","containerOuter","unwrap","clearStore","enable","isDisabled","input","item","runEvent","_b","_c","group","getGroupById","dispatch","triggerEvent","EVENTS","groupValue","unhighlightItem","highlightAll","unhighlightAll","removeActiveItemsByValue","activeItems","filter","_removeItem","removeActiveItems","excludedId","removeHighlightedItems","highlightedActiveItems","_triggerChange","showDropdown","preventInputFocus","dropdown","requestAnimationFrame","show","open","distanceFromTopWindow","focus","hideDropdown","preventInputBlur","hide","close","removeActiveDescendant","blur","getValue","valueOnly","values","reduce","selectedItems","itemValue","setValue","_setChoiceOrItem","setChoiceByValue","isArray","val","_findAndSelectChoiceByValue","setChoices","choicesArrayOrFetcher","replaceChoices","ReferenceError","fetcher_1","Promise","resolve","then","_handleLoadingState","catch","err","error","removeLoadingState","_startLoading","groupOrChoice","_addGroup","parseInt","valueKey","labelKey","choice","_addChoice","isSelected","_stopLoading","clearInput","shouldSetInputWidth","clear","_isSearching","stateChanged","groups","shouldRenderChoices","shouldRenderItems","_renderChoices","_renderItems","activeGroups","activeChoices","choiceListFragment","createDocumentFragment","choiceList","resetScrollPosition","scrollToTop","activePlaceholders","activeChoice","_createChoicesFragment","_createGroupsFragment","childNodes","canAddItem","_canAddItem","response","append","_highlightChoice","notice","_getTemplate","dropdownItem","noResultsText","noChoicesText","itemList","itemListFragment","_createItemsFragment","fragment","shouldSort","sort","sorter","groupChoices","getGroupChoices","dropdownGroup","appendChild","withinGroup","searchResultLimit","renderChoiceLimit","sortByScore","appendChoice","itemSelectText","rendererableChoices","acc","placeholderChoices","normalChoices","choiceLimit","sortedChoices","shouldSortItems","removeItemButton","map","listItem","undefined","change","_selectPlaceholderChoice","placeholderChoice","_addItem","_handleButtonAction","removeItems","itemId","itemToRemove","find","_handleItemAction","hasShiftKey","passedId","_handleChoiceAction","getChoiceById","passedKeyCode","hasActiveDropdown","_handleBackspace","lastItem","hasHighlightedItems","some","editItems","setWidth","setLoading","placeholderItem","getChild","addLoadingState","loadingText","_handleSearch","isFocussed","searchFloor","searchChoices","hasUnactiveChoices","resultCount","_searchChoices","search","addItemText","isDuplicateValue","existsInArray","maxItemCount","maxItemText","duplicateItemsAllowed","uniqueItemText","customAddItemText","newValue","trim","currentValue","haystack","searchableChoices","needle","keys","searchFields","assign","fuseOptions","includeMatches","addEventListener","passive","form","addEventListeners","removeEventListener","removeEventListeners","event","hasFocusedInput","hasItems","hasChildren","keyString","String","fromCharCode","wasAlphaNumericChar","BACK_KEY","KEY_CODES","DELETE_KEY","ENTER_KEY","A_KEY","ESC_KEY","UP_KEY","DOWN_KEY","PAGE_UP_KEY","PAGE_DOWN_KEY","toLowerCase","target","backKey","deleteKey","outerHTML","userHasRemovedValue","canReactivateChoices","canSearch","ctrlKey","metaKey","activeElement","enterKey","targetWasButton","preventDefault","highlightedChoice","highlightedState","downKey","pageUpKey","pageDownKey","directionInt","selectableChoiceIdentifier","nextEl","currentEl","getAdjacentEl","isScrolledIntoView","scrollToChildElement","touches","contains","containerInner","stopPropagation","HTMLElement","firstChoice","firstElementChild","isOnScrollbar","offsetX","offsetWidth","offsetLeft","closest","shiftKey","removeFocusState","addFocusState","hasHighlightedItems_1","el","querySelectorAll","passedEl","classList","remove","setAttribute","indexOf","add","highlightChoice","setActiveDescendant","_d","_e","_f","_g","passedValue","passedLabel","passedOptionId","prependValue","toString","appendValue","_h","choiceLabel","choiceElementId","isType","getElementsByTagName","Math","floor","Date","valueOf","random","isOptDisabled","args","_i","apply","callbackOnCreateTemplates","userTemplates","strToEl","Container","position","Input","preventPaste","paste","List","Dropdown","conceal","wrap","searchPlaceholderValue","insertBefore","firstChild","_addPredefinedGroups","_addPredefinedChoices","_addPredefinedItems","placeholderOption","tagName","hasSelectedChoice","firstEnabledChoiceIndex","findIndex","index","string","getType","foundChoice","valueComparer","text","placeholderValue","isOpen","isFlipped","shouldFlip","dropdownPos","matchMedia","matches","activeDescendantID","removeAttribute","openState","flippedState","focusState","disabledState","removeChild","loadingState","getBoundingClientRect","bottom","selector","activeState","dropdown_1","container_1","input_1","list_1","wrapped_input_1","wrapped_select_1","isEqualNode","_onPaste","_onInput","set","sanitise","minWidth","width","scrollPos","scrollTop","height","offsetHeight","node","hasChildNodes","listHeight","listScrollPosition","elementHeight","elementPos","offsetTop","destination","_animateScroll","_scrollDown","strength","easing","distance","_scrollUp","SCROLLING_SPEED","choiceListScrollTop","continueAnimation","WrappedElement","hidden","tabIndex","origStyle","getAttribute","eventType","dispatchEvent","_extendStatics","__extends","b","setPrototypeOf","__proto__","__","_super","_extendStatics2","optionData","appendDocFragment","DEFAULT_CLASSNAMES","inputCloned","list","listItems","listSingle","listDropdown","itemSelectable","itemDisabled","groupHeading","button","selectedState","noResults","noChoices","sortByAlpha","value1","value2","includeScore","tmpEl","cloneObject","generateChars","getRandomNumber","min","max","prefix","replace","wrapper","createElement","nextSibling","startEl","prop","sibling","parent","str","cleanedInput","firldChild","label2","localeCompare","sensitivity","ignorePunctuation","numeric","a","score","scoreA","customArgs","CustomEvent","detail","bubbles","cancelable","array","JSON","parse","stringify","aKeys","bKeys","action","addChoiceAction","addItemAction_1","removeItemAction_1","filterChoicesAction_1","activateChoicesAction_1","addGroupAction","redux_1","loading_1","loading","appReducer","combineReducers","passedState","addItemAction","highlightItemAction_1","index_1","Store","createStore","__REDUX_DEVTOOLS_EXTENSION__","onChange","getState","selectableChoices","reverse","hasActiveOptions","templates","isSelectElement","isSelectOneElement","passedElementType","div","className","isPlaceholder","deletable","REMOVE_ITEM_TEXT","removeButton","choiceGroup","selectText","choiceDisabled","choiceSelectable","inp","autocomplete","autocapitalize","spellcheck","classes","opt","Option","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","for","cloneUnlessOtherwiseSpecified","clone","deepmerge","defaultArrayMerge","source","getKeys","getOwnPropertySymbols","symbol","propertyIsEnumerable","getEnumerableOwnPropertySymbols","propertyIsOnObject","mergeObject","propertyIsUnsafe","customMerge","getMergeFunction","sourceIsArray","Error","prev","next","writable","location","threshold","h","maxPatternLength","u","f","caseSensitive","v","tokenSeparator","findAllMatches","y","minMatchCharLength","k","S","x","M","L","w","getFn","A","C","sortFn","I","O","tokenize","j","P","matchAllTokens","F","T","z","E","K","$","verbose","J","isCaseSensitive","setCollection","limit","_log","_prepareSearchers","tokenSearchers","fullSearcher","_search","weights","_computeScore","_sort","_format","_analyze","record","resultMap","weight","arrayIndex","pattern","isMatch","output","matchedIndices","nScore","indices","log","patternAlphabet","match","errors","currentLocation","expectedLocation","lastIndexOf","charAt","abs","__webpack_exports__","_defineProperty","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","defineProperties","formatProdErrorMessage","code","$$observable","observable","randomString","substring","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","proto","getPrototypeOf","_createStore","reducer","preloadedState","enhancer","_ref2","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","listener","isSubscribed","splice","listeners","replaceReducer","nextReducer","_ref","outerSubscribe","observer","observeState","unsubscribe","_combineReducers","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","nextState","_key","previousStateForKey","nextStateForKey","bindActionCreator","actionCreator","_bindActionCreators","actionCreators","boundActionCreators","_compose","_len","funcs","arg","_applyMiddleware","middlewares","store","_dispatch","middlewareAPI","chain","middleware","__webpack_module_cache__","cachedModule","definition","sparkMd5","fn","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","charCodeAt","md5blk_array","md51","tail","tmp","lo","hi","md51_array","subarray","Uint8Array","rhex","hex","toUtf8","unescape","encodeURIComponent","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","concatenateArrayBuffers","first","second","result","byteLength","buffer","hexToBinaryString","bytes","substr","SparkMD5","reset","clamp","num","targetArray","begin","end","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","hash","setState","hashBinary","content","classCallCheck","instance","Constructor","createClass","props","descriptor","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","ceil","size","chunkIndex","callback","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","start","readAsArrayBuffer","findElement","root","eventInit","createEvent","initEvent","toArray$1","BlobRecord","checksum","url","attributes","filename","content_type","byte_size","xhr","XMLHttpRequest","responseType","setRequestHeader","csrfToken","head","getMetaValue","requestDidLoad","requestDidError","send","blob","status","direct_upload","directUploadData","toJSON","_xhr","BlobUpload","_blob$directUploadDat","headers","DirectUpload","delegate","notify","upload","methodName","messages","DirectUploadController","directUpload","hiddenInput","insertAdjacentElement","dispatchError","signed_id","progress","loaded","total","defaultPrevented","alert","_this2","uploadRequestDidProgress","DirectUploadsController","inputs","files","controllers","createDirectUploadControllers","startNextController","controller","shift","processingAttribute","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","click","display","delete","submitForm","setTimeout","ActiveStorage","require","ready","Set","has","_state","_handled","_value","_deferreds","onFulfilled","onRejected","promise","setImmediate","reject","race","_setImmediateFn","_setUnhandledRejectionFn","customElements","registerElement","now","uid_","takeRecords","nodes_","removeTransientObservers","callback_","subtree","enqueue","records_","addedNodes","removedNodes","previousSibling","attributeName","attributeNamespace","oldValue","transientObservedNodes","JsMutationObserver","navigator","userAgent","postMessage","observe","ShadowDOMPolyfill","wrapIfNeeded","childList","characterData","attributeOldValue","attributeFilter","characterDataOldValue","SyntaxError","removeListeners","addListeners","disconnect","addListeners_","removeListeners_","addTransientObserver","handleEvent","stopImmediatePropagation","attrName","relatedNode","namespaceURI","attrChange","MutationEvent","ADDITION","prevValue","MutationObserver","_isPolyfilled","self","performance","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","clearTimeout","Event","initCustomEvent","Boolean","WebComponents","CustomElements","flags","addModule","initializeModules","hasNative","isIE","useNative","register","HTMLImports","nodeType","Node","ELEMENT_NODE","nextElementSibling","shadowRoot","olderShadowRoot","import","IMPORT_LINK_TYPE","forDocumentTree","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","dom","host","URL","_URL","localName","pop","DOCUMENT_FRAGMENT_NODE","groupEnd","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","Element","createShadowRoot","watchShadow","__watched","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","attached","is","createdCallback","getOwnPropertyNames","native","HTMLTemplateElement","decorate","getRegisteredDefinition","tag","extends","upgradeWithDefinition","implementPrototype","_polyfilled","attributeChangedCallback","ctor","createElementNS","__name","lifecycle","ancestry","registry","instanceof","reservedTagList","readyTime","elapsed","unwrapIfNeeded","__importsParsingHook","readyState","eager","attachEvent","Trix","VERSION","ZERO_WIDTH_SPACE","NON_BREAKING_SPACE","OBJECT_REPLACEMENT_CHARACTER","browser","composesExistingText","forcesObjectResizing","supportsInputEvents","InputEvent","BasicObject","proxyMethod","toMethod","toProperty","optional","_t","__super__","fromJSONString","fromJSON","hasSameConstructorAs","isEqualTo","inspect","contentsForInspection","toJSONString","toUTF16String","UTF16String","box","getCacheKey","extend","defer","normalizeSpaces","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","summarizeStringChange","added","removed","_n","utf16String","offset","codepoints","fromCodepoints","_t2","copyObject","objectsAreEqual","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","blockAttributes","getTextConfig","textAttributes","getListAttributeNames","listAttribute","matchesSelector","webkitMatchesSelector","msMatchesSelector","mozMatchesSelector","_s","onElement","matchingSelector","withCallback","inPhase","times","findClosestElementFromNode","handleEventOnce","elementMatchesSelector","untilNode","findInnerElement","innerElementIsActive","elementContainsNode","findNodeFromContainerAndOffset","TEXT_NODE","findElementFromContainerAndOffset","findChildIndexOfNode","removeNode","walkTree","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","makeElement","editable","contenteditable","textContent","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","strict","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","rangeIsCollapsed","rangesAreEqual","defaultCSS","_t3","initialize","connect","initialized","connectedCallback","disconnectedCallback","_n2","Reflect","construct","define","getDOMSelection","getSelection","rangeCount","getDOMRange","getRangeAt","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","update","_t4","startContainer","endContainer","dataTransferIsPlainText","getData","DOMParser","parseFromString","body","dataTransferIsWritable","setData","keyEventIsKeyboardCommand","platform","RTL_PATTERN","getDirection","dirName","FormData","Hash","fromCommonAttributesOfObjects","getKeysCommonToHash","merge","toArray","isEmpty","toObject","ObjectGroup","objects","depth","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","_t5","ObjectMap","ElementStore","elements","trixStoreKey","_t6","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","perform","release","cancel","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","offsetFromUCS2Offset","codePointAt","fromCodePoint","lang","attachFiles","bold","bullets","captionPlaceholder","heading1","indent","italic","link","numbers","outdent","quote","redo","strike","undo","unlink","urlPlaceholder","GB","KB","MB","PB","TB","css","attachment","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","attachmentGallery","nestable","terminal","breakOnReturn","plaintext","bulletList","bullet","numberList","number","exclusive","fileSize","precision","formatter","byte","pow","toFixed","inheritable","parser","fontWeight","fontStyle","href","groupTagName","frozen","backgroundColor","serializers","Document","fromHTML","toSerializableDocument","DocumentView","render","cloneNode","deserializers","serializeToContentType","deserializeFromContentType","toolbar","getDefaultHTML","undoInterval","attachments","preview","presentation","caption","keyNames","level2Enabled","getLevel","pickFiles","multiple","fileInputId","getElementById","_t7","ObjectView","childViews","rootView","getNodes","nodes","createNodes","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ObjectGroupView","getAllChildViews","findElementForObject","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","_t8","objectGroup","getChildViews","createContainerElement","_t9","Controller","didMutate","stop","mutations","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","_t10","FileVerificationOperation","onerror","onload","abort","InputController","mutationObserver","events","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","handleInput","inputControllerWillAttachFiles","responder","insertFiles","eventName","inputControllerWillHandleInput","inputControllerDidHandleInput","createLinkHTML","Level0InputController","resetInputSummary","setInputSummary","inputSummary","isComposing","inputControllerDidAllowUnhandledInput","mutationIsExpected","preferDocument","didDelete","getSelectedRange","positionIsBlockBreak","compositionInput","getEndData","keydown","didInput","keyName","inputControllerDidReceiveKeyboardCommand","keypress","altKey","inputControllerWillPerformTyping","insertString","selectionIsExpanded","textInput","toUpperCase","setSelectedRange","dragenter","dragstart","serializeSelectionToDataTransfer","dataTransfer","draggedRange","inputControllerDidStartDrag","dragover","canAcceptDataTransfer","clientX","clientY","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","drop","setLocationRangeFromPointRange","inputControllerWillMoveText","moveTextFromRange","insertDocument","cut","clipboardData","inputControllerWillCutText","deleteInDirection","copy","R","D","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","html","inputControllerWillPaste","insertHTML","inputControllerDidPaste","types","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","beforeinput","backspace","insertLineBreak","tab","canIncreaseNestingLevel","increaseNestingLevel","left","selectionIsInCursorTarget","moveCursorInDirection","right","control","updatePosition","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","alt","meta","isEnded","getSelectedDocument","Files","pageXOffset","top","pageYOffset","opacity","which","charCode","inputController","isSignificant","insertPlaceholder","range","selectPlaceholder","forgetPlaceholder","canApplyToDocument","Level2InputController","scheduledRender","composing","reparse","scheduleRender","afterRender","withEvent","inputTypes","inputType","selectionContainsAttachments","dragging","point","ArrowLeft","shouldManageMovingCursorInDirection","ArrowRight","Backspace","shouldManageDeletingInDirection","Tab","deleteByComposition","recordUndoEntry","deleteByCut","deleteByDrag","withTargetDOMRange","deleteByDragRange","deleteCompositionText","deleteContent","deleteContentBackward","deleteContentForward","deleteEntireSoftLine","deleteHardLineBackward","deleteHardLineForward","deleteSoftLineBackward","deleteSoftLineForward","deleteWordBackward","deleteWordForward","formatBackColor","activateAttributeIfSupported","formatBold","toggleAttributeIfSupported","formatFontColor","formatFontName","formatIndent","formatItalic","formatJustifyCenter","formatJustifyFull","formatJustifyLeft","formatJustifyRight","formatOutdent","formatRemove","getCurrentAttributes","removeCurrentAttribute","formatSetBlockTextDirection","formatSetInlineTextDirection","formatStrikeThrough","formatSubscript","formatSuperscript","formatUnderline","historyRedo","inputControllerWillPerformRedo","historyUndo","inputControllerWillPerformUndo","insertCompositionText","insertFromComposition","insertFromDrop","insertFromPaste","insertFromYank","insertLink","insertOrderedList","insertParagraph","insertReplacementText","insertText","insertTranspose","insertUnorderedList","inputControllerWillPerformFormatting","toggleCurrentAttribute","setCurrentAttribute","getTargetDOMRange","minLength","getTargetRanges","createRange","setStart","startOffset","setEnd","endOffset","AttachmentEditorController","attachmentPiece","container","didBlurCaption","didChangeCaption","didInputCaption","didKeyDownCaption","didClickActionButton","didClickToolbar","install","undos","makeElementMutable","addToolbar","isPreviewable","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","trixMutable","title","trixAction","getFilename","getFormattedFilesize","getCaption","scrollHeight","parentElement","editCaption","attachmentEditorDidRequestRemovalOfAttachment","attachmentEditorDidRequestDeselectingAttachment","uploadProgressDelegate","piece","createContentNodes","getClassName","getHref","tabindex","hasContent","getContent","createCaptionElement","isPending","progressElement","getUploadProgress","getCaptionConfig","createTextNode","getExtension","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","findProgressElement","attachmentDidChangeUploadProgress","PreviewableAttachmentView","previewDelegate","image","src","refresh","updateAttributesForImage","getURL","getPreviewURL","getWidth","getHeight","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","context","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","_t11","TextView","getPieces","BlockView","block","createComment","getLastAttribute","shouldAddExtraNewlineElement","isRTL","getBlockBreakPosition","elementStore","setDocument","sync","shadowElement","getBlocks","isSynced","createDocumentFragmentForSync","lastChild","didSync","replaceChild","CompositionController","composition","didClickAttachment","didBlur","didFocus","documentView","focused","compositionControllerDidFocus","blurPromise","compositionControllerDidBlur","findAttachmentForElement","compositionControllerDidSelectAttachment","getSerializableElement","isEditingAttachment","revision","canSyncDocumentView","compositionControllerWillSyncDocumentView","compositionControllerDidSyncDocumentView","compositionControllerDidRender","rerenderViewForObject","refreshViewCache","attachmentEditor","installAttachmentEditorForAttachment","uninstallAttachmentEditor","getAttachmentPieceForAttachment","compositionControllerWillUpdateAttachment","updateAttributesForAttachment","removeAttributeForAttachment","compositionControllerDidRequestRemovalOfAttachment","compositionControllerDidRequestDeselectingAttachment","getAttachmentById","ToolbarController","didKeyDownDialogInput","didClickDialogButton","didClickAttributeButton","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","select","toolbarDidShowDialog","willValidate","checkValidity","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","_t12","ImagePreloadOperation","Image","naturalWidth","naturalHeight","_t13","Attachment","releaseFile","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filesize","contentType","setAttributes","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","createObjectURL","revokeObjectURL","_t14","Piece","registerType","copyWithAttributes","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","_t15","AttachmentPiece","ensureAttachmentExclusivelyHasAttribute","removeProhibitedAttributes","permittedAttributes","toConsole","StringPiece","consolidateWith","splitAtOffset","SplittableList","eachObject","insertObjectAtIndex","insertSplittableListAtIndex","insertSplittableListAtPosition","splitObjectAtPosition","editObjectAtIndex","replaceObjectAtIndex","removeObjectAtIndex","getObjectAtIndex","getSplittableListInRange","splitObjectsAtRange","selectSplittableList","removeObjectsInRange","transformObjectsInRange","getObjectAtPosition","findIndexAndOffsetAtPosition","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","endPosition","_t16","Text","textForAttachmentWithAttributes","textForStringWithAttributes","copyWithPieceList","copyUsingObjectMap","appendText","insertTextAtPosition","removeTextAtRange","replaceTextAtRange","moveTextFromRangeToPosition","getTextAtRange","addAttributeAtRange","addAttributesAtRange","removeAttributeAtRange","setAttributesAtRange","getAttributesAtPosition","getCommonAttributesAtRange","getExpandedRangeForAttributeAtOffset","getStringAtRange","getStringAtPosition","startsWithString","endsWithString","getAttachmentPieces","getAttachments","getAttachmentAndPositionById","getRangeOfAttachment","getPieceAtPosition","toSerializableText","Block","copyWithText","copyWithoutText","copyWithoutAttributes","addAttribute","removeLastAttribute","getAttributeLevel","getAttributeAtLevel","hasAttributes","getLastNestableAttribute","getNestableAttributes","getNestingLevel","getListItemAttributes","isListItem","isTerminalBlock","breaksOnReturn","findLineBreakInDirectionFromPosition","getTextWithoutBlockBreak","blockBreak","HTMLSanitizer","allowedAttributes","forbiddenProtocols","forbiddenElements","sanitize","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","currentNode","elementIsRemovable","sanitizeElement","protocol","previousElementSibling","elementIsForbidden","elementIsntSerializable","implementation","createHTMLDocument","HTMLParser","referenceElement","blocks","blockElements","processedElements","getDocument","createHiddenContainer","containerElement","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","FILTER_REJECT","FILTER_ACCEPT","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","appendStringWithAttributes","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","unshift","findBlockElementAncestors","whiteSpace","getMarginOfDefaultBlockElement","getMarginOfBlockElementAtIndex","marginTop","marginBottom","blockList","fromString","getBlockAtIndex","consolidateBlocks","copyUsingObjectsFromDocument","copyWithBaseBlockAttributes","replaceBlock","insertDocumentAtRange","locationFromPosition","getBlockAtPosition","mergeDocumentAtRange","getBaseBlockAttributes","getBlockCount","insertTextAtRange","locationRangeFromRange","getDocumentAtRange","eachBlockAtRange","eachBlock","getTextAtIndex","insertBlockBreakAtRange","applyBlockAttributeAtRange","expandRangeToLineBreaksAndSplitBlocks","removeLastListAttributeAtRange","exceptAttributeName","convertLineBreaksToBlockBreaksInRange","removeBlockAttributesAtRange","removeLastTerminalAttributeAtRange","consolidateBlocksAtRange","positionFromLocation","getTextAtPosition","getCharacterAtPosition","getEditCount","editCount","getCommonAttributesAtPosition","getRangeOfCommonAttributeAtPosition","getLocationRangeOfAttachment","findRangesForBlockAttribute","findRangesForTextAttribute","withValue","locationRangeFromPosition","rangeFromLocationRange","getTexts","LineBreakInsertion","startPosition","startLocation","endLocation","previousCharacter","nextCharacter","shouldInsertBlockBreak","shouldBreakFormattedBlock","shouldDecreaseListLevel","shouldPrependListItem","shouldRemoveLastBlockAttribute","Composition","currentAttributes","refreshAttachments","compositionDidChangeDocument","getSnapshot","selectedRange","loadSnapshot","compositionWillLoadSnapshot","setSelection","compositionDidLoadSnapshot","notifyDelegateOfInsertionAtRange","insertBlock","getCurrentTextAttributes","insertBlockBreak","decreaseListLevel","removeLastBlockAttribute","breakFormattedBlock","replaceHTML","getLocationRange","compositionShouldAcceptFile","insertAttachments","insertAttachment","canDecreaseBlockAttributeLevel","getBlock","decreaseBlockAttributeLevel","getExpandedRangeInDirection","getAttachmentAtRange","editAttachment","removeAttachment","stopEditingAttachment","placeholderPosition","getPosition","hasCurrentAttribute","canSetCurrentAttribute","canSetCurrentBlockAttribute","canSetCurrentTextAttribute","setBlockAttribute","setTextAttribute","notifyDelegateOfCurrentAttributesChange","removeBlockAttribute","updateCurrentAttributes","removeTextAttribute","getPreviousBlock","ignoreLock","freezeSelection","thawSelection","hasFrozenSelection","compositionDidRequestChangingSelectionToLocationRange","getSelectionManager","setLocationRange","targetLocationRange","withTargetLocationRange","withTargetRange","createLocationRangeFromDOMRange","translateUTF16PositionFromOffset","editingAttachment","expandSelectionForEditing","expandSelectionAroundCommonAttribute","getSelectedAttachments","positionIsCursorTarget","locationIsCursorTarget","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","_t17","UndoManager","undoEntries","redoEntries","consolidatable","createEntry","description","snapshot","canUndo","canRedo","attachmentGalleryFilter","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","Editor","selectionManager","_t18","undoManager","filters","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","_t19","ManagedAttachment","attachmentManager","requestRemovalOfAttachment","_t20","AttachmentManager","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","LocationMapper","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","findContainerAndOffsetFromLocation","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","PointMapper","createDOMRangeFromPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","createTextRange","moveToPoint","getClientRectsForDOMRange","getClientRects","SelectionChangeObserver","run","selectionManagers","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","domRange","SelectionManager","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","getLocationAtPoint","lock","unlock","clearSelection","selectionIsCollapsed","collapsed","domRangeWithinElement","pauseTemporarily","paused","locationRangeDidChange","EditorController","editorElement","compositionController","toolbarController","toolbarElement","editor","notifyEditorElement","handlingInput","updateCurrentActions","pasting","pastedRange","attachmentLocationRange","loadingSnapshot","isFocused","requestedLocationRange","compositionRevisionWhenLocationRangeRequested","renderedCompositionRevision","runEditorFilters","isFocusedInvisibly","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","getUndoContext","getLocationContext","getTimeContext","getTime","ownerDocument","queryCommandSupported","execCommand","labels","inputElement","editorController","defaultValue","registerResetListener","registerClickListener","unregisterResetListener","unregisterClickListener","resetListener","resetBubbled","clickListener","clickBubbled","Timeout","clearFn","_id","_clearFn","scope","setInterval","clearInterval","timeout","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","global","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","process","handle","nextTick","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","script","onreadystatechange","task","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","len","marker","runClearTimeout","Item","noop","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","_defineProperties","AttachmentUpload","_classCallCheck","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate"],"mappings":"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","file":"js/application-44954564992319a58e1c.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 = 4);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*! choices.js v9.1.0 | © 2021 Josh Johnson | https://github.com/jshjohnson/Choices#readme */\n(function webpackUniversalModuleDefinition(root, factory) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === 'object') module.exports = factory();else if (typeof define === 'function' && define.amd) define([], factory);else if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object') exports[\"Choices\"] = factory();else root[\"Choices\"] = factory();\n})(window, function () {\n return (\n /******/\n function () {\n // webpackBootstrap\n\n /******/\n var __webpack_modules__ = {\n /***/\n 282: function _(__unused_webpack_module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.clearChoices = exports.activateChoices = exports.filterChoices = exports.addChoice = void 0;\n\n var constants_1 = __webpack_require__(883);\n\n var addChoice = function addChoice(_a) {\n var value = _a.value,\n label = _a.label,\n id = _a.id,\n groupId = _a.groupId,\n disabled = _a.disabled,\n elementId = _a.elementId,\n customProperties = _a.customProperties,\n placeholder = _a.placeholder,\n keyCode = _a.keyCode;\n return {\n type: constants_1.ACTION_TYPES.ADD_CHOICE,\n value: value,\n label: label,\n id: id,\n groupId: groupId,\n disabled: disabled,\n elementId: elementId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n };\n };\n\n exports.addChoice = addChoice;\n\n var filterChoices = function filterChoices(results) {\n return {\n type: constants_1.ACTION_TYPES.FILTER_CHOICES,\n results: results\n };\n };\n\n exports.filterChoices = filterChoices;\n\n var activateChoices = function activateChoices(active) {\n if (active === void 0) {\n active = true;\n }\n\n return {\n type: constants_1.ACTION_TYPES.ACTIVATE_CHOICES,\n active: active\n };\n };\n\n exports.activateChoices = activateChoices;\n\n var clearChoices = function clearChoices() {\n return {\n type: constants_1.ACTION_TYPES.CLEAR_CHOICES\n };\n };\n\n exports.clearChoices = clearChoices;\n /***/\n },\n\n /***/\n 783: function _(__unused_webpack_module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.addGroup = void 0;\n\n var constants_1 = __webpack_require__(883);\n\n var addGroup = function addGroup(_a) {\n var value = _a.value,\n id = _a.id,\n active = _a.active,\n disabled = _a.disabled;\n return {\n type: constants_1.ACTION_TYPES.ADD_GROUP,\n value: value,\n id: id,\n active: active,\n disabled: disabled\n };\n };\n\n exports.addGroup = addGroup;\n /***/\n },\n\n /***/\n 464: function _(__unused_webpack_module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.highlightItem = exports.removeItem = exports.addItem = void 0;\n\n var constants_1 = __webpack_require__(883);\n\n var addItem = function addItem(_a) {\n var value = _a.value,\n label = _a.label,\n id = _a.id,\n choiceId = _a.choiceId,\n groupId = _a.groupId,\n customProperties = _a.customProperties,\n placeholder = _a.placeholder,\n keyCode = _a.keyCode;\n return {\n type: constants_1.ACTION_TYPES.ADD_ITEM,\n value: value,\n label: label,\n id: id,\n choiceId: choiceId,\n groupId: groupId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n };\n };\n\n exports.addItem = addItem;\n\n var removeItem = function removeItem(id, choiceId) {\n return {\n type: constants_1.ACTION_TYPES.REMOVE_ITEM,\n id: id,\n choiceId: choiceId\n };\n };\n\n exports.removeItem = removeItem;\n\n var highlightItem = function highlightItem(id, highlighted) {\n return {\n type: constants_1.ACTION_TYPES.HIGHLIGHT_ITEM,\n id: id,\n highlighted: highlighted\n };\n };\n\n exports.highlightItem = highlightItem;\n /***/\n },\n\n /***/\n 137: function _(__unused_webpack_module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.setIsLoading = exports.resetTo = exports.clearAll = void 0;\n\n var constants_1 = __webpack_require__(883);\n\n var clearAll = function clearAll() {\n return {\n type: constants_1.ACTION_TYPES.CLEAR_ALL\n };\n };\n\n exports.clearAll = clearAll;\n\n var resetTo = function resetTo(state) {\n return {\n type: constants_1.ACTION_TYPES.RESET_TO,\n state: state\n };\n };\n\n exports.resetTo = resetTo;\n\n var setIsLoading = function setIsLoading(isLoading) {\n return {\n type: constants_1.ACTION_TYPES.SET_IS_LOADING,\n isLoading: isLoading\n };\n };\n\n exports.setIsLoading = setIsLoading;\n /***/\n },\n\n /***/\n 373: function _(__unused_webpack_module, exports, __webpack_require__) {\n \"use strict\";\n\n var __spreadArray = this && this.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n };\n\n var __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n };\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var deepmerge_1 = __importDefault(__webpack_require__(996));\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n\n var fuse_js_1 = __importDefault(__webpack_require__(70));\n\n var choices_1 = __webpack_require__(282);\n\n var groups_1 = __webpack_require__(783);\n\n var items_1 = __webpack_require__(464);\n\n var misc_1 = __webpack_require__(137);\n\n var components_1 = __webpack_require__(520);\n\n var constants_1 = __webpack_require__(883);\n\n var defaults_1 = __webpack_require__(789);\n\n var utils_1 = __webpack_require__(799);\n\n var reducers_1 = __webpack_require__(655);\n\n var store_1 = __importDefault(__webpack_require__(744));\n\n var templates_1 = __importDefault(__webpack_require__(686));\n /** @see {@link http://browserhacks.com/#hack-acea075d0ac6954f275a70023906050c} */\n\n\n var IS_IE11 = '-ms-scroll-limit' in document.documentElement.style && '-ms-ime-align' in document.documentElement.style;\n var USER_DEFAULTS = {};\n /**\n * Choices\n * @author Josh Johnson\n */\n\n var Choices =\n /** @class */\n function () {\n function Choices(element, userConfig) {\n var _this = this;\n\n if (element === void 0) {\n element = '[data-choice]';\n }\n\n if (userConfig === void 0) {\n userConfig = {};\n }\n\n this.config = deepmerge_1.default.all([defaults_1.DEFAULT_CONFIG, Choices.defaults.options, userConfig], // When merging array configs, replace with a copy of the userConfig array,\n // instead of concatenating with the default array\n {\n arrayMerge: function arrayMerge(_, sourceArray) {\n return __spreadArray([], sourceArray, true);\n }\n });\n var invalidConfigOptions = (0, utils_1.diff)(this.config, defaults_1.DEFAULT_CONFIG);\n\n if (invalidConfigOptions.length) {\n console.warn('Unknown config option(s) passed', invalidConfigOptions.join(', '));\n }\n\n var passedElement = typeof element === 'string' ? document.querySelector(element) : element;\n\n if (!(passedElement instanceof HTMLInputElement || passedElement instanceof HTMLSelectElement)) {\n throw TypeError('Expected one of the following types text|select-one|select-multiple');\n }\n\n this._isTextElement = passedElement.type === constants_1.TEXT_TYPE;\n this._isSelectOneElement = passedElement.type === constants_1.SELECT_ONE_TYPE;\n this._isSelectMultipleElement = passedElement.type === constants_1.SELECT_MULTIPLE_TYPE;\n this._isSelectElement = this._isSelectOneElement || this._isSelectMultipleElement;\n this.config.searchEnabled = this._isSelectMultipleElement || this.config.searchEnabled;\n\n if (!['auto', 'always'].includes(\"\".concat(this.config.renderSelectedChoices))) {\n this.config.renderSelectedChoices = 'auto';\n }\n\n if (userConfig.addItemFilter && typeof userConfig.addItemFilter !== 'function') {\n var re = userConfig.addItemFilter instanceof RegExp ? userConfig.addItemFilter : new RegExp(userConfig.addItemFilter);\n this.config.addItemFilter = re.test.bind(re);\n }\n\n if (this._isTextElement) {\n this.passedElement = new components_1.WrappedInput({\n element: passedElement,\n classNames: this.config.classNames,\n delimiter: this.config.delimiter\n });\n } else {\n this.passedElement = new components_1.WrappedSelect({\n element: passedElement,\n classNames: this.config.classNames,\n template: function template(data) {\n return _this._templates.option(data);\n }\n });\n }\n\n this.initialised = false;\n this._store = new store_1.default();\n this._initialState = reducers_1.defaultState;\n this._currentState = reducers_1.defaultState;\n this._prevState = reducers_1.defaultState;\n this._currentValue = '';\n this._canSearch = !!this.config.searchEnabled;\n this._isScrollingOnIe = false;\n this._highlightPosition = 0;\n this._wasTap = true;\n this._placeholderValue = this._generatePlaceholderValue();\n this._baseId = (0, utils_1.generateId)(this.passedElement.element, 'choices-');\n /**\n * setting direction in cases where it's explicitly set on passedElement\n * or when calculated direction is different from the document\n */\n\n this._direction = this.passedElement.dir;\n\n if (!this._direction) {\n var elementDirection = window.getComputedStyle(this.passedElement.element).direction;\n var documentDirection = window.getComputedStyle(document.documentElement).direction;\n\n if (elementDirection !== documentDirection) {\n this._direction = elementDirection;\n }\n }\n\n this._idNames = {\n itemChoice: 'item-choice'\n };\n\n if (this._isSelectElement) {\n // Assign preset groups from passed element\n this._presetGroups = this.passedElement.optionGroups; // Assign preset options from passed element\n\n this._presetOptions = this.passedElement.options;\n } // Assign preset choices from passed object\n\n\n this._presetChoices = this.config.choices; // Assign preset items from passed object first\n\n this._presetItems = this.config.items; // Add any values passed from attribute\n\n if (this.passedElement.value && this._isTextElement) {\n var splitValues = this.passedElement.value.split(this.config.delimiter);\n this._presetItems = this._presetItems.concat(splitValues);\n } // Create array of choices from option elements\n\n\n if (this.passedElement.options) {\n this.passedElement.options.forEach(function (option) {\n _this._presetChoices.push({\n value: option.value,\n label: option.innerHTML,\n selected: !!option.selected,\n disabled: option.disabled || option.parentNode.disabled,\n placeholder: option.value === '' || option.hasAttribute('placeholder'),\n customProperties: option.dataset['custom-properties']\n });\n });\n }\n\n this._render = this._render.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n this._onKeyUp = this._onKeyUp.bind(this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onTouchMove = this._onTouchMove.bind(this);\n this._onTouchEnd = this._onTouchEnd.bind(this);\n this._onMouseDown = this._onMouseDown.bind(this);\n this._onMouseOver = this._onMouseOver.bind(this);\n this._onFormReset = this._onFormReset.bind(this);\n this._onSelectKey = this._onSelectKey.bind(this);\n this._onEnterKey = this._onEnterKey.bind(this);\n this._onEscapeKey = this._onEscapeKey.bind(this);\n this._onDirectionKey = this._onDirectionKey.bind(this);\n this._onDeleteKey = this._onDeleteKey.bind(this); // If element has already been initialised with Choices, fail silently\n\n if (this.passedElement.isActive) {\n if (!this.config.silent) {\n console.warn('Trying to initialise Choices on element already initialised', {\n element: element\n });\n }\n\n this.initialised = true;\n return;\n } // Let's go\n\n\n this.init();\n }\n\n Object.defineProperty(Choices, \"defaults\", {\n get: function get() {\n return Object.preventExtensions({\n get options() {\n return USER_DEFAULTS;\n },\n\n get templates() {\n return templates_1.default;\n }\n\n });\n },\n enumerable: false,\n configurable: true\n });\n\n Choices.prototype.init = function () {\n if (this.initialised) {\n return;\n }\n\n this._createTemplates();\n\n this._createElements();\n\n this._createStructure();\n\n this._store.subscribe(this._render);\n\n this._render();\n\n this._addEventListeners();\n\n var shouldDisable = !this.config.addItems || this.passedElement.element.hasAttribute('disabled');\n\n if (shouldDisable) {\n this.disable();\n }\n\n this.initialised = true;\n var callbackOnInit = this.config.callbackOnInit; // Run callback if it is a function\n\n if (callbackOnInit && typeof callbackOnInit === 'function') {\n callbackOnInit.call(this);\n }\n };\n\n Choices.prototype.destroy = function () {\n if (!this.initialised) {\n return;\n }\n\n this._removeEventListeners();\n\n this.passedElement.reveal();\n this.containerOuter.unwrap(this.passedElement.element);\n this.clearStore();\n\n if (this._isSelectElement) {\n this.passedElement.options = this._presetOptions;\n }\n\n this._templates = templates_1.default;\n this.initialised = false;\n };\n\n Choices.prototype.enable = function () {\n if (this.passedElement.isDisabled) {\n this.passedElement.enable();\n }\n\n if (this.containerOuter.isDisabled) {\n this._addEventListeners();\n\n this.input.enable();\n this.containerOuter.enable();\n }\n\n return this;\n };\n\n Choices.prototype.disable = function () {\n if (!this.passedElement.isDisabled) {\n this.passedElement.disable();\n }\n\n if (!this.containerOuter.isDisabled) {\n this._removeEventListeners();\n\n this.input.disable();\n this.containerOuter.disable();\n }\n\n return this;\n };\n\n Choices.prototype.highlightItem = function (item, runEvent) {\n if (runEvent === void 0) {\n runEvent = true;\n }\n\n if (!item || !item.id) {\n return this;\n }\n\n var id = item.id,\n _a = item.groupId,\n groupId = _a === void 0 ? -1 : _a,\n _b = item.value,\n value = _b === void 0 ? '' : _b,\n _c = item.label,\n label = _c === void 0 ? '' : _c;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n\n this._store.dispatch((0, items_1.highlightItem)(id, true));\n\n if (runEvent) {\n this.passedElement.triggerEvent(constants_1.EVENTS.highlightItem, {\n id: id,\n value: value,\n label: label,\n groupValue: group && group.value ? group.value : null\n });\n }\n\n return this;\n };\n\n Choices.prototype.unhighlightItem = function (item) {\n if (!item || !item.id) {\n return this;\n }\n\n var id = item.id,\n _a = item.groupId,\n groupId = _a === void 0 ? -1 : _a,\n _b = item.value,\n value = _b === void 0 ? '' : _b,\n _c = item.label,\n label = _c === void 0 ? '' : _c;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n\n this._store.dispatch((0, items_1.highlightItem)(id, false));\n\n this.passedElement.triggerEvent(constants_1.EVENTS.highlightItem, {\n id: id,\n value: value,\n label: label,\n groupValue: group && group.value ? group.value : null\n });\n return this;\n };\n\n Choices.prototype.highlightAll = function () {\n var _this = this;\n\n this._store.items.forEach(function (item) {\n return _this.highlightItem(item);\n });\n\n return this;\n };\n\n Choices.prototype.unhighlightAll = function () {\n var _this = this;\n\n this._store.items.forEach(function (item) {\n return _this.unhighlightItem(item);\n });\n\n return this;\n };\n\n Choices.prototype.removeActiveItemsByValue = function (value) {\n var _this = this;\n\n this._store.activeItems.filter(function (item) {\n return item.value === value;\n }).forEach(function (item) {\n return _this._removeItem(item);\n });\n\n return this;\n };\n\n Choices.prototype.removeActiveItems = function (excludedId) {\n var _this = this;\n\n this._store.activeItems.filter(function (_a) {\n var id = _a.id;\n return id !== excludedId;\n }).forEach(function (item) {\n return _this._removeItem(item);\n });\n\n return this;\n };\n\n Choices.prototype.removeHighlightedItems = function (runEvent) {\n var _this = this;\n\n if (runEvent === void 0) {\n runEvent = false;\n }\n\n this._store.highlightedActiveItems.forEach(function (item) {\n _this._removeItem(item); // If this action was performed by the user\n // trigger the event\n\n\n if (runEvent) {\n _this._triggerChange(item.value);\n }\n });\n\n return this;\n };\n\n Choices.prototype.showDropdown = function (preventInputFocus) {\n var _this = this;\n\n if (this.dropdown.isActive) {\n return this;\n }\n\n requestAnimationFrame(function () {\n _this.dropdown.show();\n\n _this.containerOuter.open(_this.dropdown.distanceFromTopWindow);\n\n if (!preventInputFocus && _this._canSearch) {\n _this.input.focus();\n }\n\n _this.passedElement.triggerEvent(constants_1.EVENTS.showDropdown, {});\n });\n return this;\n };\n\n Choices.prototype.hideDropdown = function (preventInputBlur) {\n var _this = this;\n\n if (!this.dropdown.isActive) {\n return this;\n }\n\n requestAnimationFrame(function () {\n _this.dropdown.hide();\n\n _this.containerOuter.close();\n\n if (!preventInputBlur && _this._canSearch) {\n _this.input.removeActiveDescendant();\n\n _this.input.blur();\n }\n\n _this.passedElement.triggerEvent(constants_1.EVENTS.hideDropdown, {});\n });\n return this;\n };\n\n Choices.prototype.getValue = function (valueOnly) {\n if (valueOnly === void 0) {\n valueOnly = false;\n }\n\n var values = this._store.activeItems.reduce(function (selectedItems, item) {\n var itemValue = valueOnly ? item.value : item;\n selectedItems.push(itemValue);\n return selectedItems;\n }, []);\n\n return this._isSelectOneElement ? values[0] : values;\n };\n\n Choices.prototype.setValue = function (items) {\n var _this = this;\n\n if (!this.initialised) {\n return this;\n }\n\n items.forEach(function (value) {\n return _this._setChoiceOrItem(value);\n });\n return this;\n };\n\n Choices.prototype.setChoiceByValue = function (value) {\n var _this = this;\n\n if (!this.initialised || this._isTextElement) {\n return this;\n } // If only one value has been passed, convert to array\n\n\n var choiceValue = Array.isArray(value) ? value : [value]; // Loop through each value and\n\n choiceValue.forEach(function (val) {\n return _this._findAndSelectChoiceByValue(val);\n });\n return this;\n };\n /**\n * Set choices of select input via an array of objects (or function that returns array of object or promise of it),\n * a value field name and a label field name.\n * This behaves the same as passing items via the choices option but can be called after initialising Choices.\n * This can also be used to add groups of choices (see example 2); Optionally pass a true `replaceChoices` value to remove any existing choices.\n * Optionally pass a `customProperties` object to add additional data to your choices (useful when searching/filtering etc).\n *\n * **Input types affected:** select-one, select-multiple\n *\n * @example\n * ```js\n * const example = new Choices(element);\n *\n * example.setChoices([\n * {value: 'One', label: 'Label One', disabled: true},\n * {value: 'Two', label: 'Label Two', selected: true},\n * {value: 'Three', label: 'Label Three'},\n * ], 'value', 'label', false);\n * ```\n *\n * @example\n * ```js\n * const example = new Choices(element);\n *\n * example.setChoices(async () => {\n * try {\n * const items = await fetch('/items');\n * return items.json()\n * } catch(err) {\n * console.error(err)\n * }\n * });\n * ```\n *\n * @example\n * ```js\n * const example = new Choices(element);\n *\n * example.setChoices([{\n * label: 'Group one',\n * id: 1,\n * disabled: false,\n * choices: [\n * {value: 'Child One', label: 'Child One', selected: true},\n * {value: 'Child Two', label: 'Child Two', disabled: true},\n * {value: 'Child Three', label: 'Child Three'},\n * ]\n * },\n * {\n * label: 'Group two',\n * id: 2,\n * disabled: false,\n * choices: [\n * {value: 'Child Four', label: 'Child Four', disabled: true},\n * {value: 'Child Five', label: 'Child Five'},\n * {value: 'Child Six', label: 'Child Six', customProperties: {\n * description: 'Custom description about child six',\n * random: 'Another random custom property'\n * }},\n * ]\n * }], 'value', 'label', false);\n * ```\n */\n\n\n Choices.prototype.setChoices = function (choicesArrayOrFetcher, value, label, replaceChoices) {\n var _this = this;\n\n if (choicesArrayOrFetcher === void 0) {\n choicesArrayOrFetcher = [];\n }\n\n if (value === void 0) {\n value = 'value';\n }\n\n if (label === void 0) {\n label = 'label';\n }\n\n if (replaceChoices === void 0) {\n replaceChoices = false;\n }\n\n if (!this.initialised) {\n throw new ReferenceError(\"setChoices was called on a non-initialized instance of Choices\");\n }\n\n if (!this._isSelectElement) {\n throw new TypeError(\"setChoices can't be used with INPUT based Choices\");\n }\n\n if (typeof value !== 'string' || !value) {\n throw new TypeError(\"value parameter must be a name of 'value' field in passed objects\");\n } // Clear choices if needed\n\n\n if (replaceChoices) {\n this.clearChoices();\n }\n\n if (typeof choicesArrayOrFetcher === 'function') {\n // it's a choices fetcher function\n var fetcher_1 = choicesArrayOrFetcher(this);\n\n if (typeof Promise === 'function' && fetcher_1 instanceof Promise) {\n // that's a promise\n // eslint-disable-next-line no-promise-executor-return\n return new Promise(function (resolve) {\n return requestAnimationFrame(resolve);\n }).then(function () {\n return _this._handleLoadingState(true);\n }).then(function () {\n return fetcher_1;\n }).then(function (data) {\n return _this.setChoices(data, value, label, replaceChoices);\n }).catch(function (err) {\n if (!_this.config.silent) {\n console.error(err);\n }\n }).then(function () {\n return _this._handleLoadingState(false);\n }).then(function () {\n return _this;\n });\n } // function returned something else than promise, let's check if it's an array of choices\n\n\n if (!Array.isArray(fetcher_1)) {\n throw new TypeError(\".setChoices first argument function must return either array of choices or Promise, got: \".concat(_typeof(fetcher_1)));\n } // recursion with results, it's sync and choices were cleared already\n\n\n return this.setChoices(fetcher_1, value, label, false);\n }\n\n if (!Array.isArray(choicesArrayOrFetcher)) {\n throw new TypeError(\".setChoices must be called either with array of choices with a function resulting into Promise of array of choices\");\n }\n\n this.containerOuter.removeLoadingState();\n\n this._startLoading();\n\n choicesArrayOrFetcher.forEach(function (groupOrChoice) {\n if (groupOrChoice.choices) {\n _this._addGroup({\n id: groupOrChoice.id ? parseInt(\"\".concat(groupOrChoice.id), 10) : null,\n group: groupOrChoice,\n valueKey: value,\n labelKey: label\n });\n } else {\n var choice = groupOrChoice;\n\n _this._addChoice({\n value: choice[value],\n label: choice[label],\n isSelected: !!choice.selected,\n isDisabled: !!choice.disabled,\n placeholder: !!choice.placeholder,\n customProperties: choice.customProperties\n });\n }\n });\n\n this._stopLoading();\n\n return this;\n };\n\n Choices.prototype.clearChoices = function () {\n this._store.dispatch((0, choices_1.clearChoices)());\n\n return this;\n };\n\n Choices.prototype.clearStore = function () {\n this._store.dispatch((0, misc_1.clearAll)());\n\n return this;\n };\n\n Choices.prototype.clearInput = function () {\n var shouldSetInputWidth = !this._isSelectOneElement;\n this.input.clear(shouldSetInputWidth);\n\n if (!this._isTextElement && this._canSearch) {\n this._isSearching = false;\n\n this._store.dispatch((0, choices_1.activateChoices)(true));\n }\n\n return this;\n };\n\n Choices.prototype._render = function () {\n if (this._store.isLoading()) {\n return;\n }\n\n this._currentState = this._store.state;\n var stateChanged = this._currentState.choices !== this._prevState.choices || this._currentState.groups !== this._prevState.groups || this._currentState.items !== this._prevState.items;\n var shouldRenderChoices = this._isSelectElement;\n var shouldRenderItems = this._currentState.items !== this._prevState.items;\n\n if (!stateChanged) {\n return;\n }\n\n if (shouldRenderChoices) {\n this._renderChoices();\n }\n\n if (shouldRenderItems) {\n this._renderItems();\n }\n\n this._prevState = this._currentState;\n };\n\n Choices.prototype._renderChoices = function () {\n var _this = this;\n\n var _a = this._store,\n activeGroups = _a.activeGroups,\n activeChoices = _a.activeChoices;\n var choiceListFragment = document.createDocumentFragment();\n this.choiceList.clear();\n\n if (this.config.resetScrollPosition) {\n requestAnimationFrame(function () {\n return _this.choiceList.scrollToTop();\n });\n } // If we have grouped options\n\n\n if (activeGroups.length >= 1 && !this._isSearching) {\n // If we have a placeholder choice along with groups\n var activePlaceholders = activeChoices.filter(function (activeChoice) {\n return activeChoice.placeholder === true && activeChoice.groupId === -1;\n });\n\n if (activePlaceholders.length >= 1) {\n choiceListFragment = this._createChoicesFragment(activePlaceholders, choiceListFragment);\n }\n\n choiceListFragment = this._createGroupsFragment(activeGroups, activeChoices, choiceListFragment);\n } else if (activeChoices.length >= 1) {\n choiceListFragment = this._createChoicesFragment(activeChoices, choiceListFragment);\n } // If we have choices to show\n\n\n if (choiceListFragment.childNodes && choiceListFragment.childNodes.length > 0) {\n var activeItems = this._store.activeItems;\n\n var canAddItem = this._canAddItem(activeItems, this.input.value); // ...and we can select them\n\n\n if (canAddItem.response) {\n // ...append them and highlight the first choice\n this.choiceList.append(choiceListFragment);\n\n this._highlightChoice();\n } else {\n var notice = this._getTemplate('notice', canAddItem.notice);\n\n this.choiceList.append(notice);\n }\n } else {\n // Otherwise show a notice\n var dropdownItem = void 0;\n var notice = void 0;\n\n if (this._isSearching) {\n notice = typeof this.config.noResultsText === 'function' ? this.config.noResultsText() : this.config.noResultsText;\n dropdownItem = this._getTemplate('notice', notice, 'no-results');\n } else {\n notice = typeof this.config.noChoicesText === 'function' ? this.config.noChoicesText() : this.config.noChoicesText;\n dropdownItem = this._getTemplate('notice', notice, 'no-choices');\n }\n\n this.choiceList.append(dropdownItem);\n }\n };\n\n Choices.prototype._renderItems = function () {\n var activeItems = this._store.activeItems || [];\n this.itemList.clear(); // Create a fragment to store our list items\n // (so we don't have to update the DOM for each item)\n\n var itemListFragment = this._createItemsFragment(activeItems); // If we have items to add, append them\n\n\n if (itemListFragment.childNodes) {\n this.itemList.append(itemListFragment);\n }\n };\n\n Choices.prototype._createGroupsFragment = function (groups, choices, fragment) {\n var _this = this;\n\n if (fragment === void 0) {\n fragment = document.createDocumentFragment();\n }\n\n var getGroupChoices = function getGroupChoices(group) {\n return choices.filter(function (choice) {\n if (_this._isSelectOneElement) {\n return choice.groupId === group.id;\n }\n\n return choice.groupId === group.id && (_this.config.renderSelectedChoices === 'always' || !choice.selected);\n });\n }; // If sorting is enabled, filter groups\n\n\n if (this.config.shouldSort) {\n groups.sort(this.config.sorter);\n }\n\n groups.forEach(function (group) {\n var groupChoices = getGroupChoices(group);\n\n if (groupChoices.length >= 1) {\n var dropdownGroup = _this._getTemplate('choiceGroup', group);\n\n fragment.appendChild(dropdownGroup);\n\n _this._createChoicesFragment(groupChoices, fragment, true);\n }\n });\n return fragment;\n };\n\n Choices.prototype._createChoicesFragment = function (choices, fragment, withinGroup) {\n var _this = this;\n\n if (fragment === void 0) {\n fragment = document.createDocumentFragment();\n }\n\n if (withinGroup === void 0) {\n withinGroup = false;\n } // Create a fragment to store our list items (so we don't have to update the DOM for each item)\n\n\n var _a = this.config,\n renderSelectedChoices = _a.renderSelectedChoices,\n searchResultLimit = _a.searchResultLimit,\n renderChoiceLimit = _a.renderChoiceLimit;\n var filter = this._isSearching ? utils_1.sortByScore : this.config.sorter;\n\n var appendChoice = function appendChoice(choice) {\n var shouldRender = renderSelectedChoices === 'auto' ? _this._isSelectOneElement || !choice.selected : true;\n\n if (shouldRender) {\n var dropdownItem = _this._getTemplate('choice', choice, _this.config.itemSelectText);\n\n fragment.appendChild(dropdownItem);\n }\n };\n\n var rendererableChoices = choices;\n\n if (renderSelectedChoices === 'auto' && !this._isSelectOneElement) {\n rendererableChoices = choices.filter(function (choice) {\n return !choice.selected;\n });\n } // Split array into placeholders and \"normal\" choices\n\n\n var _b = rendererableChoices.reduce(function (acc, choice) {\n if (choice.placeholder) {\n acc.placeholderChoices.push(choice);\n } else {\n acc.normalChoices.push(choice);\n }\n\n return acc;\n }, {\n placeholderChoices: [],\n normalChoices: []\n }),\n placeholderChoices = _b.placeholderChoices,\n normalChoices = _b.normalChoices; // If sorting is enabled or the user is searching, filter choices\n\n\n if (this.config.shouldSort || this._isSearching) {\n normalChoices.sort(filter);\n }\n\n var choiceLimit = rendererableChoices.length; // Prepend placeholeder\n\n var sortedChoices = this._isSelectOneElement ? __spreadArray(__spreadArray([], placeholderChoices, true), normalChoices, true) : normalChoices;\n\n if (this._isSearching) {\n choiceLimit = searchResultLimit;\n } else if (renderChoiceLimit && renderChoiceLimit > 0 && !withinGroup) {\n choiceLimit = renderChoiceLimit;\n } // Add each choice to dropdown within range\n\n\n for (var i = 0; i < choiceLimit; i += 1) {\n if (sortedChoices[i]) {\n appendChoice(sortedChoices[i]);\n }\n }\n\n return fragment;\n };\n\n Choices.prototype._createItemsFragment = function (items, fragment) {\n var _this = this;\n\n if (fragment === void 0) {\n fragment = document.createDocumentFragment();\n } // Create fragment to add elements to\n\n\n var _a = this.config,\n shouldSortItems = _a.shouldSortItems,\n sorter = _a.sorter,\n removeItemButton = _a.removeItemButton; // If sorting is enabled, filter items\n\n if (shouldSortItems && !this._isSelectOneElement) {\n items.sort(sorter);\n }\n\n if (this._isTextElement) {\n // Update the value of the hidden input\n this.passedElement.value = items.map(function (_a) {\n var value = _a.value;\n return value;\n }).join(this.config.delimiter);\n } else {\n // Update the options of the hidden input\n this.passedElement.options = items;\n }\n\n var addItemToFragment = function addItemToFragment(item) {\n // Create new list element\n var listItem = _this._getTemplate('item', item, removeItemButton); // Append it to list\n\n\n fragment.appendChild(listItem);\n }; // Add each list item to list\n\n\n items.forEach(addItemToFragment);\n return fragment;\n };\n\n Choices.prototype._triggerChange = function (value) {\n if (value === undefined || value === null) {\n return;\n }\n\n this.passedElement.triggerEvent(constants_1.EVENTS.change, {\n value: value\n });\n };\n\n Choices.prototype._selectPlaceholderChoice = function (placeholderChoice) {\n this._addItem({\n value: placeholderChoice.value,\n label: placeholderChoice.label,\n choiceId: placeholderChoice.id,\n groupId: placeholderChoice.groupId,\n placeholder: placeholderChoice.placeholder\n });\n\n this._triggerChange(placeholderChoice.value);\n };\n\n Choices.prototype._handleButtonAction = function (activeItems, element) {\n if (!activeItems || !element || !this.config.removeItems || !this.config.removeItemButton) {\n return;\n }\n\n var itemId = element.parentNode && element.parentNode.dataset.id;\n var itemToRemove = itemId && activeItems.find(function (item) {\n return item.id === parseInt(itemId, 10);\n });\n\n if (!itemToRemove) {\n return;\n } // Remove item associated with button\n\n\n this._removeItem(itemToRemove);\n\n this._triggerChange(itemToRemove.value);\n\n if (this._isSelectOneElement && this._store.placeholderChoice) {\n this._selectPlaceholderChoice(this._store.placeholderChoice);\n }\n };\n\n Choices.prototype._handleItemAction = function (activeItems, element, hasShiftKey) {\n var _this = this;\n\n if (hasShiftKey === void 0) {\n hasShiftKey = false;\n }\n\n if (!activeItems || !element || !this.config.removeItems || this._isSelectOneElement) {\n return;\n }\n\n var passedId = element.dataset.id; // We only want to select one item with a click\n // so we deselect any items that aren't the target\n // unless shift is being pressed\n\n activeItems.forEach(function (item) {\n if (item.id === parseInt(\"\".concat(passedId), 10) && !item.highlighted) {\n _this.highlightItem(item);\n } else if (!hasShiftKey && item.highlighted) {\n _this.unhighlightItem(item);\n }\n }); // Focus input as without focus, a user cannot do anything with a\n // highlighted item\n\n this.input.focus();\n };\n\n Choices.prototype._handleChoiceAction = function (activeItems, element) {\n if (!activeItems || !element) {\n return;\n } // If we are clicking on an option\n\n\n var id = element.dataset.id;\n\n var choice = id && this._store.getChoiceById(id);\n\n if (!choice) {\n return;\n }\n\n var passedKeyCode = activeItems[0] && activeItems[0].keyCode ? activeItems[0].keyCode : undefined;\n var hasActiveDropdown = this.dropdown.isActive; // Update choice keyCode\n\n choice.keyCode = passedKeyCode;\n this.passedElement.triggerEvent(constants_1.EVENTS.choice, {\n choice: choice\n });\n\n if (!choice.selected && !choice.disabled) {\n var canAddItem = this._canAddItem(activeItems, choice.value);\n\n if (canAddItem.response) {\n this._addItem({\n value: choice.value,\n label: choice.label,\n choiceId: choice.id,\n groupId: choice.groupId,\n customProperties: choice.customProperties,\n placeholder: choice.placeholder,\n keyCode: choice.keyCode\n });\n\n this._triggerChange(choice.value);\n }\n }\n\n this.clearInput(); // We want to close the dropdown if we are dealing with a single select box\n\n if (hasActiveDropdown && this._isSelectOneElement) {\n this.hideDropdown(true);\n this.containerOuter.focus();\n }\n };\n\n Choices.prototype._handleBackspace = function (activeItems) {\n if (!this.config.removeItems || !activeItems) {\n return;\n }\n\n var lastItem = activeItems[activeItems.length - 1];\n var hasHighlightedItems = activeItems.some(function (item) {\n return item.highlighted;\n }); // If editing the last item is allowed and there are not other selected items,\n // we can edit the item value. Otherwise if we can remove items, remove all selected items\n\n if (this.config.editItems && !hasHighlightedItems && lastItem) {\n this.input.value = lastItem.value;\n this.input.setWidth();\n\n this._removeItem(lastItem);\n\n this._triggerChange(lastItem.value);\n } else {\n if (!hasHighlightedItems) {\n // Highlight last item if none already highlighted\n this.highlightItem(lastItem, false);\n }\n\n this.removeHighlightedItems(true);\n }\n };\n\n Choices.prototype._startLoading = function () {\n this._store.dispatch((0, misc_1.setIsLoading)(true));\n };\n\n Choices.prototype._stopLoading = function () {\n this._store.dispatch((0, misc_1.setIsLoading)(false));\n };\n\n Choices.prototype._handleLoadingState = function (setLoading) {\n if (setLoading === void 0) {\n setLoading = true;\n }\n\n var placeholderItem = this.itemList.getChild(\".\".concat(this.config.classNames.placeholder));\n\n if (setLoading) {\n this.disable();\n this.containerOuter.addLoadingState();\n\n if (this._isSelectOneElement) {\n if (!placeholderItem) {\n placeholderItem = this._getTemplate('placeholder', this.config.loadingText);\n\n if (placeholderItem) {\n this.itemList.append(placeholderItem);\n }\n } else {\n placeholderItem.innerHTML = this.config.loadingText;\n }\n } else {\n this.input.placeholder = this.config.loadingText;\n }\n } else {\n this.enable();\n this.containerOuter.removeLoadingState();\n\n if (this._isSelectOneElement) {\n if (placeholderItem) {\n placeholderItem.innerHTML = this._placeholderValue || '';\n }\n } else {\n this.input.placeholder = this._placeholderValue || '';\n }\n }\n };\n\n Choices.prototype._handleSearch = function (value) {\n if (!value || !this.input.isFocussed) {\n return;\n }\n\n var choices = this._store.choices;\n var _a = this.config,\n searchFloor = _a.searchFloor,\n searchChoices = _a.searchChoices;\n var hasUnactiveChoices = choices.some(function (option) {\n return !option.active;\n }); // Check that we have a value to search and the input was an alphanumeric character\n\n if (value && value.length >= searchFloor) {\n var resultCount = searchChoices ? this._searchChoices(value) : 0; // Trigger search event\n\n this.passedElement.triggerEvent(constants_1.EVENTS.search, {\n value: value,\n resultCount: resultCount\n });\n } else if (hasUnactiveChoices) {\n // Otherwise reset choices to active\n this._isSearching = false;\n\n this._store.dispatch((0, choices_1.activateChoices)(true));\n }\n };\n\n Choices.prototype._canAddItem = function (activeItems, value) {\n var canAddItem = true;\n var notice = typeof this.config.addItemText === 'function' ? this.config.addItemText(value) : this.config.addItemText;\n\n if (!this._isSelectOneElement) {\n var isDuplicateValue = (0, utils_1.existsInArray)(activeItems, value);\n\n if (this.config.maxItemCount > 0 && this.config.maxItemCount <= activeItems.length) {\n // If there is a max entry limit and we have reached that limit\n // don't update\n canAddItem = false;\n notice = typeof this.config.maxItemText === 'function' ? this.config.maxItemText(this.config.maxItemCount) : this.config.maxItemText;\n }\n\n if (!this.config.duplicateItemsAllowed && isDuplicateValue && canAddItem) {\n canAddItem = false;\n notice = typeof this.config.uniqueItemText === 'function' ? this.config.uniqueItemText(value) : this.config.uniqueItemText;\n }\n\n if (this._isTextElement && this.config.addItems && canAddItem && typeof this.config.addItemFilter === 'function' && !this.config.addItemFilter(value)) {\n canAddItem = false;\n notice = typeof this.config.customAddItemText === 'function' ? this.config.customAddItemText(value) : this.config.customAddItemText;\n }\n }\n\n return {\n response: canAddItem,\n notice: notice\n };\n };\n\n Choices.prototype._searchChoices = function (value) {\n var newValue = typeof value === 'string' ? value.trim() : value;\n var currentValue = typeof this._currentValue === 'string' ? this._currentValue.trim() : this._currentValue;\n\n if (newValue.length < 1 && newValue === \"\".concat(currentValue, \" \")) {\n return 0;\n } // If new value matches the desired length and is not the same as the current value with a space\n\n\n var haystack = this._store.searchableChoices;\n var needle = newValue;\n\n var keys = __spreadArray([], this.config.searchFields, true);\n\n var options = Object.assign(this.config.fuseOptions, {\n keys: keys,\n includeMatches: true\n });\n var fuse = new fuse_js_1.default(haystack, options);\n var results = fuse.search(needle); // see https://github.com/krisk/Fuse/issues/303\n\n this._currentValue = newValue;\n this._highlightPosition = 0;\n this._isSearching = true;\n\n this._store.dispatch((0, choices_1.filterChoices)(results));\n\n return results.length;\n };\n\n Choices.prototype._addEventListeners = function () {\n var documentElement = document.documentElement; // capture events - can cancel event processing or propagation\n\n documentElement.addEventListener('touchend', this._onTouchEnd, true);\n this.containerOuter.element.addEventListener('keydown', this._onKeyDown, true);\n this.containerOuter.element.addEventListener('mousedown', this._onMouseDown, true); // passive events - doesn't call `preventDefault` or `stopPropagation`\n\n documentElement.addEventListener('click', this._onClick, {\n passive: true\n });\n documentElement.addEventListener('touchmove', this._onTouchMove, {\n passive: true\n });\n this.dropdown.element.addEventListener('mouseover', this._onMouseOver, {\n passive: true\n });\n\n if (this._isSelectOneElement) {\n this.containerOuter.element.addEventListener('focus', this._onFocus, {\n passive: true\n });\n this.containerOuter.element.addEventListener('blur', this._onBlur, {\n passive: true\n });\n }\n\n this.input.element.addEventListener('keyup', this._onKeyUp, {\n passive: true\n });\n this.input.element.addEventListener('focus', this._onFocus, {\n passive: true\n });\n this.input.element.addEventListener('blur', this._onBlur, {\n passive: true\n });\n\n if (this.input.element.form) {\n this.input.element.form.addEventListener('reset', this._onFormReset, {\n passive: true\n });\n }\n\n this.input.addEventListeners();\n };\n\n Choices.prototype._removeEventListeners = function () {\n var documentElement = document.documentElement;\n documentElement.removeEventListener('touchend', this._onTouchEnd, true);\n this.containerOuter.element.removeEventListener('keydown', this._onKeyDown, true);\n this.containerOuter.element.removeEventListener('mousedown', this._onMouseDown, true);\n documentElement.removeEventListener('click', this._onClick);\n documentElement.removeEventListener('touchmove', this._onTouchMove);\n this.dropdown.element.removeEventListener('mouseover', this._onMouseOver);\n\n if (this._isSelectOneElement) {\n this.containerOuter.element.removeEventListener('focus', this._onFocus);\n this.containerOuter.element.removeEventListener('blur', this._onBlur);\n }\n\n this.input.element.removeEventListener('keyup', this._onKeyUp);\n this.input.element.removeEventListener('focus', this._onFocus);\n this.input.element.removeEventListener('blur', this._onBlur);\n\n if (this.input.element.form) {\n this.input.element.form.removeEventListener('reset', this._onFormReset);\n }\n\n this.input.removeEventListeners();\n };\n\n Choices.prototype._onKeyDown = function (event) {\n var keyCode = event.keyCode;\n var activeItems = this._store.activeItems;\n var hasFocusedInput = this.input.isFocussed;\n var hasActiveDropdown = this.dropdown.isActive;\n var hasItems = this.itemList.hasChildren();\n var keyString = String.fromCharCode(keyCode);\n var wasAlphaNumericChar = /[a-zA-Z0-9-_ ]/.test(keyString);\n var BACK_KEY = constants_1.KEY_CODES.BACK_KEY,\n DELETE_KEY = constants_1.KEY_CODES.DELETE_KEY,\n ENTER_KEY = constants_1.KEY_CODES.ENTER_KEY,\n A_KEY = constants_1.KEY_CODES.A_KEY,\n ESC_KEY = constants_1.KEY_CODES.ESC_KEY,\n UP_KEY = constants_1.KEY_CODES.UP_KEY,\n DOWN_KEY = constants_1.KEY_CODES.DOWN_KEY,\n PAGE_UP_KEY = constants_1.KEY_CODES.PAGE_UP_KEY,\n PAGE_DOWN_KEY = constants_1.KEY_CODES.PAGE_DOWN_KEY;\n\n if (!this._isTextElement && !hasActiveDropdown && wasAlphaNumericChar) {\n this.showDropdown();\n\n if (!this.input.isFocussed) {\n /*\n We update the input value with the pressed key as\n the input was not focussed at the time of key press\n therefore does not have the value of the key.\n */\n this.input.value += keyString.toLowerCase();\n }\n }\n\n switch (keyCode) {\n case A_KEY:\n return this._onSelectKey(event, hasItems);\n\n case ENTER_KEY:\n return this._onEnterKey(event, activeItems, hasActiveDropdown);\n\n case ESC_KEY:\n return this._onEscapeKey(hasActiveDropdown);\n\n case UP_KEY:\n case PAGE_UP_KEY:\n case DOWN_KEY:\n case PAGE_DOWN_KEY:\n return this._onDirectionKey(event, hasActiveDropdown);\n\n case DELETE_KEY:\n case BACK_KEY:\n return this._onDeleteKey(event, activeItems, hasFocusedInput);\n\n default:\n }\n };\n\n Choices.prototype._onKeyUp = function (_a) {\n var target = _a.target,\n keyCode = _a.keyCode;\n var value = this.input.value;\n var activeItems = this._store.activeItems;\n\n var canAddItem = this._canAddItem(activeItems, value);\n\n var backKey = constants_1.KEY_CODES.BACK_KEY,\n deleteKey = constants_1.KEY_CODES.DELETE_KEY; // We are typing into a text input and have a value, we want to show a dropdown\n // notice. Otherwise hide the dropdown\n\n if (this._isTextElement) {\n var canShowDropdownNotice = canAddItem.notice && value;\n\n if (canShowDropdownNotice) {\n var dropdownItem = this._getTemplate('notice', canAddItem.notice);\n\n this.dropdown.element.innerHTML = dropdownItem.outerHTML;\n this.showDropdown(true);\n } else {\n this.hideDropdown(true);\n }\n } else {\n var wasRemovalKeyCode = keyCode === backKey || keyCode === deleteKey;\n var userHasRemovedValue = wasRemovalKeyCode && target && !target.value;\n var canReactivateChoices = !this._isTextElement && this._isSearching;\n var canSearch = this._canSearch && canAddItem.response;\n\n if (userHasRemovedValue && canReactivateChoices) {\n this._isSearching = false;\n\n this._store.dispatch((0, choices_1.activateChoices)(true));\n } else if (canSearch) {\n this._handleSearch(this.input.value);\n }\n }\n\n this._canSearch = this.config.searchEnabled;\n };\n\n Choices.prototype._onSelectKey = function (event, hasItems) {\n var ctrlKey = event.ctrlKey,\n metaKey = event.metaKey;\n var hasCtrlDownKeyPressed = ctrlKey || metaKey; // If CTRL + A or CMD + A have been pressed and there are items to select\n\n if (hasCtrlDownKeyPressed && hasItems) {\n this._canSearch = false;\n var shouldHightlightAll = this.config.removeItems && !this.input.value && this.input.element === document.activeElement;\n\n if (shouldHightlightAll) {\n this.highlightAll();\n }\n }\n };\n\n Choices.prototype._onEnterKey = function (event, activeItems, hasActiveDropdown) {\n var target = event.target;\n var enterKey = constants_1.KEY_CODES.ENTER_KEY;\n var targetWasButton = target && target.hasAttribute('data-button');\n\n if (this._isTextElement && target && target.value) {\n var value = this.input.value;\n\n var canAddItem = this._canAddItem(activeItems, value);\n\n if (canAddItem.response) {\n this.hideDropdown(true);\n\n this._addItem({\n value: value\n });\n\n this._triggerChange(value);\n\n this.clearInput();\n }\n }\n\n if (targetWasButton) {\n this._handleButtonAction(activeItems, target);\n\n event.preventDefault();\n }\n\n if (hasActiveDropdown) {\n var highlightedChoice = this.dropdown.getChild(\".\".concat(this.config.classNames.highlightedState));\n\n if (highlightedChoice) {\n // add enter keyCode value\n if (activeItems[0]) {\n activeItems[0].keyCode = enterKey; // eslint-disable-line no-param-reassign\n }\n\n this._handleChoiceAction(activeItems, highlightedChoice);\n }\n\n event.preventDefault();\n } else if (this._isSelectOneElement) {\n this.showDropdown();\n event.preventDefault();\n }\n };\n\n Choices.prototype._onEscapeKey = function (hasActiveDropdown) {\n if (hasActiveDropdown) {\n this.hideDropdown(true);\n this.containerOuter.focus();\n }\n };\n\n Choices.prototype._onDirectionKey = function (event, hasActiveDropdown) {\n var keyCode = event.keyCode,\n metaKey = event.metaKey;\n var downKey = constants_1.KEY_CODES.DOWN_KEY,\n pageUpKey = constants_1.KEY_CODES.PAGE_UP_KEY,\n pageDownKey = constants_1.KEY_CODES.PAGE_DOWN_KEY; // If up or down key is pressed, traverse through options\n\n if (hasActiveDropdown || this._isSelectOneElement) {\n this.showDropdown();\n this._canSearch = false;\n var directionInt = keyCode === downKey || keyCode === pageDownKey ? 1 : -1;\n var skipKey = metaKey || keyCode === pageDownKey || keyCode === pageUpKey;\n var selectableChoiceIdentifier = '[data-choice-selectable]';\n var nextEl = void 0;\n\n if (skipKey) {\n if (directionInt > 0) {\n nextEl = this.dropdown.element.querySelector(\"\".concat(selectableChoiceIdentifier, \":last-of-type\"));\n } else {\n nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier);\n }\n } else {\n var currentEl = this.dropdown.element.querySelector(\".\".concat(this.config.classNames.highlightedState));\n\n if (currentEl) {\n nextEl = (0, utils_1.getAdjacentEl)(currentEl, selectableChoiceIdentifier, directionInt);\n } else {\n nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier);\n }\n }\n\n if (nextEl) {\n // We prevent default to stop the cursor moving\n // when pressing the arrow\n if (!(0, utils_1.isScrolledIntoView)(nextEl, this.choiceList.element, directionInt)) {\n this.choiceList.scrollToChildElement(nextEl, directionInt);\n }\n\n this._highlightChoice(nextEl);\n } // Prevent default to maintain cursor position whilst\n // traversing dropdown options\n\n\n event.preventDefault();\n }\n };\n\n Choices.prototype._onDeleteKey = function (event, activeItems, hasFocusedInput) {\n var target = event.target; // If backspace or delete key is pressed and the input has no value\n\n if (!this._isSelectOneElement && !target.value && hasFocusedInput) {\n this._handleBackspace(activeItems);\n\n event.preventDefault();\n }\n };\n\n Choices.prototype._onTouchMove = function () {\n if (this._wasTap) {\n this._wasTap = false;\n }\n };\n\n Choices.prototype._onTouchEnd = function (event) {\n var target = (event || event.touches[0]).target;\n var touchWasWithinContainer = this._wasTap && this.containerOuter.element.contains(target);\n\n if (touchWasWithinContainer) {\n var containerWasExactTarget = target === this.containerOuter.element || target === this.containerInner.element;\n\n if (containerWasExactTarget) {\n if (this._isTextElement) {\n this.input.focus();\n } else if (this._isSelectMultipleElement) {\n this.showDropdown();\n }\n } // Prevents focus event firing\n\n\n event.stopPropagation();\n }\n\n this._wasTap = true;\n };\n /**\n * Handles mousedown event in capture mode for containetOuter.element\n */\n\n\n Choices.prototype._onMouseDown = function (event) {\n var target = event.target;\n\n if (!(target instanceof HTMLElement)) {\n return;\n } // If we have our mouse down on the scrollbar and are on IE11...\n\n\n if (IS_IE11 && this.choiceList.element.contains(target)) {\n // check if click was on a scrollbar area\n var firstChoice = this.choiceList.element.firstElementChild;\n var isOnScrollbar = this._direction === 'ltr' ? event.offsetX >= firstChoice.offsetWidth : event.offsetX < firstChoice.offsetLeft;\n this._isScrollingOnIe = isOnScrollbar;\n }\n\n if (target === this.input.element) {\n return;\n }\n\n var item = target.closest('[data-button],[data-item],[data-choice]');\n\n if (item instanceof HTMLElement) {\n var hasShiftKey = event.shiftKey;\n var activeItems = this._store.activeItems;\n var dataset = item.dataset;\n\n if ('button' in dataset) {\n this._handleButtonAction(activeItems, item);\n } else if ('item' in dataset) {\n this._handleItemAction(activeItems, item, hasShiftKey);\n } else if ('choice' in dataset) {\n this._handleChoiceAction(activeItems, item);\n }\n }\n\n event.preventDefault();\n };\n /**\n * Handles mouseover event over this.dropdown\n * @param {MouseEvent} event\n */\n\n\n Choices.prototype._onMouseOver = function (_a) {\n var target = _a.target;\n\n if (target instanceof HTMLElement && 'choice' in target.dataset) {\n this._highlightChoice(target);\n }\n };\n\n Choices.prototype._onClick = function (_a) {\n var target = _a.target;\n var clickWasWithinContainer = this.containerOuter.element.contains(target);\n\n if (clickWasWithinContainer) {\n if (!this.dropdown.isActive && !this.containerOuter.isDisabled) {\n if (this._isTextElement) {\n if (document.activeElement !== this.input.element) {\n this.input.focus();\n }\n } else {\n this.showDropdown();\n this.containerOuter.focus();\n }\n } else if (this._isSelectOneElement && target !== this.input.element && !this.dropdown.element.contains(target)) {\n this.hideDropdown();\n }\n } else {\n var hasHighlightedItems = this._store.highlightedActiveItems.length > 0;\n\n if (hasHighlightedItems) {\n this.unhighlightAll();\n }\n\n this.containerOuter.removeFocusState();\n this.hideDropdown(true);\n }\n };\n\n Choices.prototype._onFocus = function (_a) {\n var _b;\n\n var _this = this;\n\n var target = _a.target;\n var focusWasWithinContainer = target && this.containerOuter.element.contains(target);\n\n if (!focusWasWithinContainer) {\n return;\n }\n\n var focusActions = (_b = {}, _b[constants_1.TEXT_TYPE] = function () {\n if (target === _this.input.element) {\n _this.containerOuter.addFocusState();\n }\n }, _b[constants_1.SELECT_ONE_TYPE] = function () {\n _this.containerOuter.addFocusState();\n\n if (target === _this.input.element) {\n _this.showDropdown(true);\n }\n }, _b[constants_1.SELECT_MULTIPLE_TYPE] = function () {\n if (target === _this.input.element) {\n _this.showDropdown(true); // If element is a select box, the focused element is the container and the dropdown\n // isn't already open, focus and show dropdown\n\n\n _this.containerOuter.addFocusState();\n }\n }, _b);\n focusActions[this.passedElement.element.type]();\n };\n\n Choices.prototype._onBlur = function (_a) {\n var _b;\n\n var _this = this;\n\n var target = _a.target;\n var blurWasWithinContainer = target && this.containerOuter.element.contains(target);\n\n if (blurWasWithinContainer && !this._isScrollingOnIe) {\n var activeItems = this._store.activeItems;\n var hasHighlightedItems_1 = activeItems.some(function (item) {\n return item.highlighted;\n });\n var blurActions = (_b = {}, _b[constants_1.TEXT_TYPE] = function () {\n if (target === _this.input.element) {\n _this.containerOuter.removeFocusState();\n\n if (hasHighlightedItems_1) {\n _this.unhighlightAll();\n }\n\n _this.hideDropdown(true);\n }\n }, _b[constants_1.SELECT_ONE_TYPE] = function () {\n _this.containerOuter.removeFocusState();\n\n if (target === _this.input.element || target === _this.containerOuter.element && !_this._canSearch) {\n _this.hideDropdown(true);\n }\n }, _b[constants_1.SELECT_MULTIPLE_TYPE] = function () {\n if (target === _this.input.element) {\n _this.containerOuter.removeFocusState();\n\n _this.hideDropdown(true);\n\n if (hasHighlightedItems_1) {\n _this.unhighlightAll();\n }\n }\n }, _b);\n blurActions[this.passedElement.element.type]();\n } else {\n // On IE11, clicking the scollbar blurs our input and thus\n // closes the dropdown. To stop this, we refocus our input\n // if we know we are on IE *and* are scrolling.\n this._isScrollingOnIe = false;\n this.input.element.focus();\n }\n };\n\n Choices.prototype._onFormReset = function () {\n this._store.dispatch((0, misc_1.resetTo)(this._initialState));\n };\n\n Choices.prototype._highlightChoice = function (el) {\n var _this = this;\n\n if (el === void 0) {\n el = null;\n }\n\n var choices = Array.from(this.dropdown.element.querySelectorAll('[data-choice-selectable]'));\n\n if (!choices.length) {\n return;\n }\n\n var passedEl = el;\n var highlightedChoices = Array.from(this.dropdown.element.querySelectorAll(\".\".concat(this.config.classNames.highlightedState))); // Remove any highlighted choices\n\n highlightedChoices.forEach(function (choice) {\n choice.classList.remove(_this.config.classNames.highlightedState);\n choice.setAttribute('aria-selected', 'false');\n });\n\n if (passedEl) {\n this._highlightPosition = choices.indexOf(passedEl);\n } else {\n // Highlight choice based on last known highlight location\n if (choices.length > this._highlightPosition) {\n // If we have an option to highlight\n passedEl = choices[this._highlightPosition];\n } else {\n // Otherwise highlight the option before\n passedEl = choices[choices.length - 1];\n }\n\n if (!passedEl) {\n passedEl = choices[0];\n }\n }\n\n passedEl.classList.add(this.config.classNames.highlightedState);\n passedEl.setAttribute('aria-selected', 'true');\n this.passedElement.triggerEvent(constants_1.EVENTS.highlightChoice, {\n el: passedEl\n });\n\n if (this.dropdown.isActive) {\n // IE11 ignores aria-label and blocks virtual keyboard\n // if aria-activedescendant is set without a dropdown\n this.input.setActiveDescendant(passedEl.id);\n this.containerOuter.setActiveDescendant(passedEl.id);\n }\n };\n\n Choices.prototype._addItem = function (_a) {\n var value = _a.value,\n _b = _a.label,\n label = _b === void 0 ? null : _b,\n _c = _a.choiceId,\n choiceId = _c === void 0 ? -1 : _c,\n _d = _a.groupId,\n groupId = _d === void 0 ? -1 : _d,\n _e = _a.customProperties,\n customProperties = _e === void 0 ? {} : _e,\n _f = _a.placeholder,\n placeholder = _f === void 0 ? false : _f,\n _g = _a.keyCode,\n keyCode = _g === void 0 ? -1 : _g;\n var passedValue = typeof value === 'string' ? value.trim() : value;\n var items = this._store.items;\n var passedLabel = label || passedValue;\n var passedOptionId = choiceId || -1;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n var id = items ? items.length + 1 : 1; // If a prepended value has been passed, prepend it\n\n if (this.config.prependValue) {\n passedValue = this.config.prependValue + passedValue.toString();\n } // If an appended value has been passed, append it\n\n\n if (this.config.appendValue) {\n passedValue += this.config.appendValue.toString();\n }\n\n this._store.dispatch((0, items_1.addItem)({\n value: passedValue,\n label: passedLabel,\n id: id,\n choiceId: passedOptionId,\n groupId: groupId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n }));\n\n if (this._isSelectOneElement) {\n this.removeActiveItems(id);\n } // Trigger change event\n\n\n this.passedElement.triggerEvent(constants_1.EVENTS.addItem, {\n id: id,\n value: passedValue,\n label: passedLabel,\n customProperties: customProperties,\n groupValue: group && group.value ? group.value : null,\n keyCode: keyCode\n });\n };\n\n Choices.prototype._removeItem = function (item) {\n var id = item.id,\n value = item.value,\n label = item.label,\n customProperties = item.customProperties,\n choiceId = item.choiceId,\n groupId = item.groupId;\n var group = groupId && groupId >= 0 ? this._store.getGroupById(groupId) : null;\n\n if (!id || !choiceId) {\n return;\n }\n\n this._store.dispatch((0, items_1.removeItem)(id, choiceId));\n\n this.passedElement.triggerEvent(constants_1.EVENTS.removeItem, {\n id: id,\n value: value,\n label: label,\n customProperties: customProperties,\n groupValue: group && group.value ? group.value : null\n });\n };\n\n Choices.prototype._addChoice = function (_a) {\n var value = _a.value,\n _b = _a.label,\n label = _b === void 0 ? null : _b,\n _c = _a.isSelected,\n isSelected = _c === void 0 ? false : _c,\n _d = _a.isDisabled,\n isDisabled = _d === void 0 ? false : _d,\n _e = _a.groupId,\n groupId = _e === void 0 ? -1 : _e,\n _f = _a.customProperties,\n customProperties = _f === void 0 ? {} : _f,\n _g = _a.placeholder,\n placeholder = _g === void 0 ? false : _g,\n _h = _a.keyCode,\n keyCode = _h === void 0 ? -1 : _h;\n\n if (typeof value === 'undefined' || value === null) {\n return;\n } // Generate unique id\n\n\n var choices = this._store.choices;\n var choiceLabel = label || value;\n var choiceId = choices ? choices.length + 1 : 1;\n var choiceElementId = \"\".concat(this._baseId, \"-\").concat(this._idNames.itemChoice, \"-\").concat(choiceId);\n\n this._store.dispatch((0, choices_1.addChoice)({\n id: choiceId,\n groupId: groupId,\n elementId: choiceElementId,\n value: value,\n label: choiceLabel,\n disabled: isDisabled,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n }));\n\n if (isSelected) {\n this._addItem({\n value: value,\n label: choiceLabel,\n choiceId: choiceId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n });\n }\n };\n\n Choices.prototype._addGroup = function (_a) {\n var _this = this;\n\n var group = _a.group,\n id = _a.id,\n _b = _a.valueKey,\n valueKey = _b === void 0 ? 'value' : _b,\n _c = _a.labelKey,\n labelKey = _c === void 0 ? 'label' : _c;\n var groupChoices = (0, utils_1.isType)('Object', group) ? group.choices : Array.from(group.getElementsByTagName('OPTION'));\n var groupId = id || Math.floor(new Date().valueOf() * Math.random());\n var isDisabled = group.disabled ? group.disabled : false;\n\n if (groupChoices) {\n this._store.dispatch((0, groups_1.addGroup)({\n value: group.label,\n id: groupId,\n active: true,\n disabled: isDisabled\n }));\n\n var addGroupChoices = function addGroupChoices(choice) {\n var isOptDisabled = choice.disabled || choice.parentNode && choice.parentNode.disabled;\n\n _this._addChoice({\n value: choice[valueKey],\n label: (0, utils_1.isType)('Object', choice) ? choice[labelKey] : choice.innerHTML,\n isSelected: choice.selected,\n isDisabled: isOptDisabled,\n groupId: groupId,\n customProperties: choice.customProperties,\n placeholder: choice.placeholder\n });\n };\n\n groupChoices.forEach(addGroupChoices);\n } else {\n this._store.dispatch((0, groups_1.addGroup)({\n value: group.label,\n id: group.id,\n active: false,\n disabled: group.disabled\n }));\n }\n };\n\n Choices.prototype._getTemplate = function (template) {\n var _a;\n\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n var classNames = this.config.classNames;\n return (_a = this._templates[template]).call.apply(_a, __spreadArray([this, classNames], args, false));\n };\n\n Choices.prototype._createTemplates = function () {\n var callbackOnCreateTemplates = this.config.callbackOnCreateTemplates;\n var userTemplates = {};\n\n if (callbackOnCreateTemplates && typeof callbackOnCreateTemplates === 'function') {\n userTemplates = callbackOnCreateTemplates.call(this, utils_1.strToEl);\n }\n\n this._templates = (0, deepmerge_1.default)(templates_1.default, userTemplates);\n };\n\n Choices.prototype._createElements = function () {\n this.containerOuter = new components_1.Container({\n element: this._getTemplate('containerOuter', this._direction, this._isSelectElement, this._isSelectOneElement, this.config.searchEnabled, this.passedElement.element.type),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n position: this.config.position\n });\n this.containerInner = new components_1.Container({\n element: this._getTemplate('containerInner'),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n position: this.config.position\n });\n this.input = new components_1.Input({\n element: this._getTemplate('input', this._placeholderValue),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n preventPaste: !this.config.paste\n });\n this.choiceList = new components_1.List({\n element: this._getTemplate('choiceList', this._isSelectOneElement)\n });\n this.itemList = new components_1.List({\n element: this._getTemplate('itemList', this._isSelectOneElement)\n });\n this.dropdown = new components_1.Dropdown({\n element: this._getTemplate('dropdown'),\n classNames: this.config.classNames,\n type: this.passedElement.element.type\n });\n };\n\n Choices.prototype._createStructure = function () {\n // Hide original element\n this.passedElement.conceal(); // Wrap input in container preserving DOM ordering\n\n this.containerInner.wrap(this.passedElement.element); // Wrapper inner container with outer container\n\n this.containerOuter.wrap(this.containerInner.element);\n\n if (this._isSelectOneElement) {\n this.input.placeholder = this.config.searchPlaceholderValue || '';\n } else if (this._placeholderValue) {\n this.input.placeholder = this._placeholderValue;\n this.input.setWidth();\n }\n\n this.containerOuter.element.appendChild(this.containerInner.element);\n this.containerOuter.element.appendChild(this.dropdown.element);\n this.containerInner.element.appendChild(this.itemList.element);\n\n if (!this._isTextElement) {\n this.dropdown.element.appendChild(this.choiceList.element);\n }\n\n if (!this._isSelectOneElement) {\n this.containerInner.element.appendChild(this.input.element);\n } else if (this.config.searchEnabled) {\n this.dropdown.element.insertBefore(this.input.element, this.dropdown.element.firstChild);\n }\n\n if (this._isSelectElement) {\n this._highlightPosition = 0;\n this._isSearching = false;\n\n this._startLoading();\n\n if (this._presetGroups.length) {\n this._addPredefinedGroups(this._presetGroups);\n } else {\n this._addPredefinedChoices(this._presetChoices);\n }\n\n this._stopLoading();\n }\n\n if (this._isTextElement) {\n this._addPredefinedItems(this._presetItems);\n }\n };\n\n Choices.prototype._addPredefinedGroups = function (groups) {\n var _this = this; // If we have a placeholder option\n\n\n var placeholderChoice = this.passedElement.placeholderOption;\n\n if (placeholderChoice && placeholderChoice.parentNode && placeholderChoice.parentNode.tagName === 'SELECT') {\n this._addChoice({\n value: placeholderChoice.value,\n label: placeholderChoice.innerHTML,\n isSelected: placeholderChoice.selected,\n isDisabled: placeholderChoice.disabled,\n placeholder: true\n });\n }\n\n groups.forEach(function (group) {\n return _this._addGroup({\n group: group,\n id: group.id || null\n });\n });\n };\n\n Choices.prototype._addPredefinedChoices = function (choices) {\n var _this = this; // If sorting is enabled or the user is searching, filter choices\n\n\n if (this.config.shouldSort) {\n choices.sort(this.config.sorter);\n }\n\n var hasSelectedChoice = choices.some(function (choice) {\n return choice.selected;\n });\n var firstEnabledChoiceIndex = choices.findIndex(function (choice) {\n return choice.disabled === undefined || !choice.disabled;\n });\n choices.forEach(function (choice, index) {\n var _a = choice.value,\n value = _a === void 0 ? '' : _a,\n label = choice.label,\n customProperties = choice.customProperties,\n placeholder = choice.placeholder;\n\n if (_this._isSelectElement) {\n // If the choice is actually a group\n if (choice.choices) {\n _this._addGroup({\n group: choice,\n id: choice.id || null\n });\n } else {\n /**\n * If there is a selected choice already or the choice is not the first in\n * the array, add each choice normally.\n *\n * Otherwise we pre-select the first enabled choice in the array (\"select-one\" only)\n */\n var shouldPreselect = _this._isSelectOneElement && !hasSelectedChoice && index === firstEnabledChoiceIndex;\n var isSelected = shouldPreselect ? true : choice.selected;\n var isDisabled = choice.disabled;\n\n _this._addChoice({\n value: value,\n label: label,\n isSelected: !!isSelected,\n isDisabled: !!isDisabled,\n placeholder: !!placeholder,\n customProperties: customProperties\n });\n }\n } else {\n _this._addChoice({\n value: value,\n label: label,\n isSelected: !!choice.selected,\n isDisabled: !!choice.disabled,\n placeholder: !!choice.placeholder,\n customProperties: customProperties\n });\n }\n });\n };\n\n Choices.prototype._addPredefinedItems = function (items) {\n var _this = this;\n\n items.forEach(function (item) {\n if (_typeof(item) === 'object' && item.value) {\n _this._addItem({\n value: item.value,\n label: item.label,\n choiceId: item.id,\n customProperties: item.customProperties,\n placeholder: item.placeholder\n });\n }\n\n if (typeof item === 'string') {\n _this._addItem({\n value: item\n });\n }\n });\n };\n\n Choices.prototype._setChoiceOrItem = function (item) {\n var _this = this;\n\n var itemType = (0, utils_1.getType)(item).toLowerCase();\n var handleType = {\n object: function object() {\n if (!item.value) {\n return;\n } // If we are dealing with a select input, we need to create an option first\n // that is then selected. For text inputs we can just add items normally.\n\n\n if (!_this._isTextElement) {\n _this._addChoice({\n value: item.value,\n label: item.label,\n isSelected: true,\n isDisabled: false,\n customProperties: item.customProperties,\n placeholder: item.placeholder\n });\n } else {\n _this._addItem({\n value: item.value,\n label: item.label,\n choiceId: item.id,\n customProperties: item.customProperties,\n placeholder: item.placeholder\n });\n }\n },\n string: function string() {\n if (!_this._isTextElement) {\n _this._addChoice({\n value: item,\n label: item,\n isSelected: true,\n isDisabled: false\n });\n } else {\n _this._addItem({\n value: item\n });\n }\n }\n };\n handleType[itemType]();\n };\n\n Choices.prototype._findAndSelectChoiceByValue = function (value) {\n var _this = this;\n\n var choices = this._store.choices; // Check 'value' property exists and the choice isn't already selected\n\n var foundChoice = choices.find(function (choice) {\n return _this.config.valueComparer(choice.value, value);\n });\n\n if (foundChoice && !foundChoice.selected) {\n this._addItem({\n value: foundChoice.value,\n label: foundChoice.label,\n choiceId: foundChoice.id,\n groupId: foundChoice.groupId,\n customProperties: foundChoice.customProperties,\n placeholder: foundChoice.placeholder,\n keyCode: foundChoice.keyCode\n });\n }\n };\n\n Choices.prototype._generatePlaceholderValue = function () {\n if (this._isSelectElement && this.passedElement.placeholderOption) {\n var placeholderOption = this.passedElement.placeholderOption;\n return placeholderOption ? placeholderOption.text : null;\n }\n\n var _a = this.config,\n placeholder = _a.placeholder,\n placeholderValue = _a.placeholderValue;\n var dataset = this.passedElement.element.dataset;\n\n if (placeholder) {\n if (placeholderValue) {\n return placeholderValue;\n }\n\n if (dataset.placeholder) {\n return dataset.placeholder;\n }\n }\n\n return null;\n };\n\n return Choices;\n }();\n\n exports[\"default\"] = Choices;\n /***/\n },\n\n /***/\n 613: function _(__unused_webpack_module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var utils_1 = __webpack_require__(799);\n\n var constants_1 = __webpack_require__(883);\n\n var Container =\n /** @class */\n function () {\n function Container(_a) {\n var element = _a.element,\n type = _a.type,\n classNames = _a.classNames,\n position = _a.position;\n this.element = element;\n this.classNames = classNames;\n this.type = type;\n this.position = position;\n this.isOpen = false;\n this.isFlipped = false;\n this.isFocussed = false;\n this.isDisabled = false;\n this.isLoading = false;\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n }\n\n Container.prototype.addEventListeners = function () {\n this.element.addEventListener('focus', this._onFocus);\n this.element.addEventListener('blur', this._onBlur);\n };\n\n Container.prototype.removeEventListeners = function () {\n this.element.removeEventListener('focus', this._onFocus);\n this.element.removeEventListener('blur', this._onBlur);\n };\n /**\n * Determine whether container should be flipped based on passed\n * dropdown position\n */\n\n\n Container.prototype.shouldFlip = function (dropdownPos) {\n if (typeof dropdownPos !== 'number') {\n return false;\n } // If flip is enabled and the dropdown bottom position is\n // greater than the window height flip the dropdown.\n\n\n var shouldFlip = false;\n\n if (this.position === 'auto') {\n shouldFlip = !window.matchMedia(\"(min-height: \".concat(dropdownPos + 1, \"px)\")).matches;\n } else if (this.position === 'top') {\n shouldFlip = true;\n }\n\n return shouldFlip;\n };\n\n Container.prototype.setActiveDescendant = function (activeDescendantID) {\n this.element.setAttribute('aria-activedescendant', activeDescendantID);\n };\n\n Container.prototype.removeActiveDescendant = function () {\n this.element.removeAttribute('aria-activedescendant');\n };\n\n Container.prototype.open = function (dropdownPos) {\n this.element.classList.add(this.classNames.openState);\n this.element.setAttribute('aria-expanded', 'true');\n this.isOpen = true;\n\n if (this.shouldFlip(dropdownPos)) {\n this.element.classList.add(this.classNames.flippedState);\n this.isFlipped = true;\n }\n };\n\n Container.prototype.close = function () {\n this.element.classList.remove(this.classNames.openState);\n this.element.setAttribute('aria-expanded', 'false');\n this.removeActiveDescendant();\n this.isOpen = false; // A dropdown flips if it does not have space within the page\n\n if (this.isFlipped) {\n this.element.classList.remove(this.classNames.flippedState);\n this.isFlipped = false;\n }\n };\n\n Container.prototype.focus = function () {\n if (!this.isFocussed) {\n this.element.focus();\n }\n };\n\n Container.prototype.addFocusState = function () {\n this.element.classList.add(this.classNames.focusState);\n };\n\n Container.prototype.removeFocusState = function () {\n this.element.classList.remove(this.classNames.focusState);\n };\n\n Container.prototype.enable = function () {\n this.element.classList.remove(this.classNames.disabledState);\n this.element.removeAttribute('aria-disabled');\n\n if (this.type === constants_1.SELECT_ONE_TYPE) {\n this.element.setAttribute('tabindex', '0');\n }\n\n this.isDisabled = false;\n };\n\n Container.prototype.disable = function () {\n this.element.classList.add(this.classNames.disabledState);\n this.element.setAttribute('aria-disabled', 'true');\n\n if (this.type === constants_1.SELECT_ONE_TYPE) {\n this.element.setAttribute('tabindex', '-1');\n }\n\n this.isDisabled = true;\n };\n\n Container.prototype.wrap = function (element) {\n (0, utils_1.wrap)(element, this.element);\n };\n\n Container.prototype.unwrap = function (element) {\n if (this.element.parentNode) {\n // Move passed element outside this element\n this.element.parentNode.insertBefore(element, this.element); // Remove this element\n\n this.element.parentNode.removeChild(this.element);\n }\n };\n\n Container.prototype.addLoadingState = function () {\n this.element.classList.add(this.classNames.loadingState);\n this.element.setAttribute('aria-busy', 'true');\n this.isLoading = true;\n };\n\n Container.prototype.removeLoadingState = function () {\n this.element.classList.remove(this.classNames.loadingState);\n this.element.removeAttribute('aria-busy');\n this.isLoading = false;\n };\n\n Container.prototype._onFocus = function () {\n this.isFocussed = true;\n };\n\n Container.prototype._onBlur = function () {\n this.isFocussed = false;\n };\n\n return Container;\n }();\n\n exports[\"default\"] = Container;\n /***/\n },\n\n /***/\n 217: function _(__unused_webpack_module, exports) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var Dropdown =\n /** @class */\n function () {\n function Dropdown(_a) {\n var element = _a.element,\n type = _a.type,\n classNames = _a.classNames;\n this.element = element;\n this.classNames = classNames;\n this.type = type;\n this.isActive = false;\n }\n\n Object.defineProperty(Dropdown.prototype, \"distanceFromTopWindow\", {\n /**\n * Bottom position of dropdown in viewport coordinates\n */\n get: function get() {\n return this.element.getBoundingClientRect().bottom;\n },\n enumerable: false,\n configurable: true\n });\n\n Dropdown.prototype.getChild = function (selector) {\n return this.element.querySelector(selector);\n };\n /**\n * Show dropdown to user by adding active state class\n */\n\n\n Dropdown.prototype.show = function () {\n this.element.classList.add(this.classNames.activeState);\n this.element.setAttribute('aria-expanded', 'true');\n this.isActive = true;\n return this;\n };\n /**\n * Hide dropdown from user\n */\n\n\n Dropdown.prototype.hide = function () {\n this.element.classList.remove(this.classNames.activeState);\n this.element.setAttribute('aria-expanded', 'false');\n this.isActive = false;\n return this;\n };\n\n return Dropdown;\n }();\n\n exports[\"default\"] = Dropdown;\n /***/\n },\n\n /***/\n 520: function _(__unused_webpack_module, exports, __webpack_require__) {\n \"use strict\";\n\n var __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n };\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.WrappedSelect = exports.WrappedInput = exports.List = exports.Input = exports.Container = exports.Dropdown = void 0;\n\n var dropdown_1 = __importDefault(__webpack_require__(217));\n\n exports.Dropdown = dropdown_1.default;\n\n var container_1 = __importDefault(__webpack_require__(613));\n\n exports.Container = container_1.default;\n\n var input_1 = __importDefault(__webpack_require__(11));\n\n exports.Input = input_1.default;\n\n var list_1 = __importDefault(__webpack_require__(624));\n\n exports.List = list_1.default;\n\n var wrapped_input_1 = __importDefault(__webpack_require__(541));\n\n exports.WrappedInput = wrapped_input_1.default;\n\n var wrapped_select_1 = __importDefault(__webpack_require__(982));\n\n exports.WrappedSelect = wrapped_select_1.default;\n /***/\n },\n\n /***/\n 11: function _(__unused_webpack_module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var utils_1 = __webpack_require__(799);\n\n var constants_1 = __webpack_require__(883);\n\n var Input =\n /** @class */\n function () {\n function Input(_a) {\n var element = _a.element,\n type = _a.type,\n classNames = _a.classNames,\n preventPaste = _a.preventPaste;\n this.element = element;\n this.type = type;\n this.classNames = classNames;\n this.preventPaste = preventPaste;\n this.isFocussed = this.element.isEqualNode(document.activeElement);\n this.isDisabled = element.disabled;\n this._onPaste = this._onPaste.bind(this);\n this._onInput = this._onInput.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n }\n\n Object.defineProperty(Input.prototype, \"placeholder\", {\n set: function set(placeholder) {\n this.element.placeholder = placeholder;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Input.prototype, \"value\", {\n get: function get() {\n return (0, utils_1.sanitise)(this.element.value);\n },\n set: function set(value) {\n this.element.value = value;\n },\n enumerable: false,\n configurable: true\n });\n\n Input.prototype.addEventListeners = function () {\n this.element.addEventListener('paste', this._onPaste);\n this.element.addEventListener('input', this._onInput, {\n passive: true\n });\n this.element.addEventListener('focus', this._onFocus, {\n passive: true\n });\n this.element.addEventListener('blur', this._onBlur, {\n passive: true\n });\n };\n\n Input.prototype.removeEventListeners = function () {\n this.element.removeEventListener('input', this._onInput);\n this.element.removeEventListener('paste', this._onPaste);\n this.element.removeEventListener('focus', this._onFocus);\n this.element.removeEventListener('blur', this._onBlur);\n };\n\n Input.prototype.enable = function () {\n this.element.removeAttribute('disabled');\n this.isDisabled = false;\n };\n\n Input.prototype.disable = function () {\n this.element.setAttribute('disabled', '');\n this.isDisabled = true;\n };\n\n Input.prototype.focus = function () {\n if (!this.isFocussed) {\n this.element.focus();\n }\n };\n\n Input.prototype.blur = function () {\n if (this.isFocussed) {\n this.element.blur();\n }\n };\n\n Input.prototype.clear = function (setWidth) {\n if (setWidth === void 0) {\n setWidth = true;\n }\n\n if (this.element.value) {\n this.element.value = '';\n }\n\n if (setWidth) {\n this.setWidth();\n }\n\n return this;\n };\n /**\n * Set the correct input width based on placeholder\n * value or input value\n */\n\n\n Input.prototype.setWidth = function () {\n // Resize input to contents or placeholder\n var _a = this.element,\n style = _a.style,\n value = _a.value,\n placeholder = _a.placeholder;\n style.minWidth = \"\".concat(placeholder.length + 1, \"ch\");\n style.width = \"\".concat(value.length + 1, \"ch\");\n };\n\n Input.prototype.setActiveDescendant = function (activeDescendantID) {\n this.element.setAttribute('aria-activedescendant', activeDescendantID);\n };\n\n Input.prototype.removeActiveDescendant = function () {\n this.element.removeAttribute('aria-activedescendant');\n };\n\n Input.prototype._onInput = function () {\n if (this.type !== constants_1.SELECT_ONE_TYPE) {\n this.setWidth();\n }\n };\n\n Input.prototype._onPaste = function (event) {\n if (this.preventPaste) {\n event.preventDefault();\n }\n };\n\n Input.prototype._onFocus = function () {\n this.isFocussed = true;\n };\n\n Input.prototype._onBlur = function () {\n this.isFocussed = false;\n };\n\n return Input;\n }();\n\n exports[\"default\"] = Input;\n /***/\n },\n\n /***/\n 624: function _(__unused_webpack_module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var constants_1 = __webpack_require__(883);\n\n var List =\n /** @class */\n function () {\n function List(_a) {\n var element = _a.element;\n this.element = element;\n this.scrollPos = this.element.scrollTop;\n this.height = this.element.offsetHeight;\n }\n\n List.prototype.clear = function () {\n this.element.innerHTML = '';\n };\n\n List.prototype.append = function (node) {\n this.element.appendChild(node);\n };\n\n List.prototype.getChild = function (selector) {\n return this.element.querySelector(selector);\n };\n\n List.prototype.hasChildren = function () {\n return this.element.hasChildNodes();\n };\n\n List.prototype.scrollToTop = function () {\n this.element.scrollTop = 0;\n };\n\n List.prototype.scrollToChildElement = function (element, direction) {\n var _this = this;\n\n if (!element) {\n return;\n }\n\n var listHeight = this.element.offsetHeight; // Scroll position of dropdown\n\n var listScrollPosition = this.element.scrollTop + listHeight;\n var elementHeight = element.offsetHeight; // Distance from bottom of element to top of parent\n\n var elementPos = element.offsetTop + elementHeight; // Difference between the element and scroll position\n\n var destination = direction > 0 ? this.element.scrollTop + elementPos - listScrollPosition : element.offsetTop;\n requestAnimationFrame(function () {\n _this._animateScroll(destination, direction);\n });\n };\n\n List.prototype._scrollDown = function (scrollPos, strength, destination) {\n var easing = (destination - scrollPos) / strength;\n var distance = easing > 1 ? easing : 1;\n this.element.scrollTop = scrollPos + distance;\n };\n\n List.prototype._scrollUp = function (scrollPos, strength, destination) {\n var easing = (scrollPos - destination) / strength;\n var distance = easing > 1 ? easing : 1;\n this.element.scrollTop = scrollPos - distance;\n };\n\n List.prototype._animateScroll = function (destination, direction) {\n var _this = this;\n\n var strength = constants_1.SCROLLING_SPEED;\n var choiceListScrollTop = this.element.scrollTop;\n var continueAnimation = false;\n\n if (direction > 0) {\n this._scrollDown(choiceListScrollTop, strength, destination);\n\n if (choiceListScrollTop < destination) {\n continueAnimation = true;\n }\n } else {\n this._scrollUp(choiceListScrollTop, strength, destination);\n\n if (choiceListScrollTop > destination) {\n continueAnimation = true;\n }\n }\n\n if (continueAnimation) {\n requestAnimationFrame(function () {\n _this._animateScroll(destination, direction);\n });\n }\n };\n\n return List;\n }();\n\n exports[\"default\"] = List;\n /***/\n },\n\n /***/\n 730: function _(__unused_webpack_module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var utils_1 = __webpack_require__(799);\n\n var WrappedElement =\n /** @class */\n function () {\n function WrappedElement(_a) {\n var element = _a.element,\n classNames = _a.classNames;\n this.element = element;\n this.classNames = classNames;\n\n if (!(element instanceof HTMLInputElement) && !(element instanceof HTMLSelectElement)) {\n throw new TypeError('Invalid element passed');\n }\n\n this.isDisabled = false;\n }\n\n Object.defineProperty(WrappedElement.prototype, \"isActive\", {\n get: function get() {\n return this.element.dataset.choice === 'active';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WrappedElement.prototype, \"dir\", {\n get: function get() {\n return this.element.dir;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WrappedElement.prototype, \"value\", {\n get: function get() {\n return this.element.value;\n },\n set: function set(value) {\n // you must define setter here otherwise it will be readonly property\n this.element.value = value;\n },\n enumerable: false,\n configurable: true\n });\n\n WrappedElement.prototype.conceal = function () {\n // Hide passed input\n this.element.classList.add(this.classNames.input);\n this.element.hidden = true; // Remove element from tab index\n\n this.element.tabIndex = -1; // Backup original styles if any\n\n var origStyle = this.element.getAttribute('style');\n\n if (origStyle) {\n this.element.setAttribute('data-choice-orig-style', origStyle);\n }\n\n this.element.setAttribute('data-choice', 'active');\n };\n\n WrappedElement.prototype.reveal = function () {\n // Reinstate passed element\n this.element.classList.remove(this.classNames.input);\n this.element.hidden = false;\n this.element.removeAttribute('tabindex'); // Recover original styles if any\n\n var origStyle = this.element.getAttribute('data-choice-orig-style');\n\n if (origStyle) {\n this.element.removeAttribute('data-choice-orig-style');\n this.element.setAttribute('style', origStyle);\n } else {\n this.element.removeAttribute('style');\n }\n\n this.element.removeAttribute('data-choice'); // Re-assign values - this is weird, I know\n // @todo Figure out why we need to do this\n\n this.element.value = this.element.value; // eslint-disable-line no-self-assign\n };\n\n WrappedElement.prototype.enable = function () {\n this.element.removeAttribute('disabled');\n this.element.disabled = false;\n this.isDisabled = false;\n };\n\n WrappedElement.prototype.disable = function () {\n this.element.setAttribute('disabled', '');\n this.element.disabled = true;\n this.isDisabled = true;\n };\n\n WrappedElement.prototype.triggerEvent = function (eventType, data) {\n (0, utils_1.dispatchEvent)(this.element, eventType, data);\n };\n\n return WrappedElement;\n }();\n\n exports[\"default\"] = WrappedElement;\n /***/\n },\n\n /***/\n 541: function _(__unused_webpack_module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n\n var __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n };\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var wrapped_element_1 = __importDefault(__webpack_require__(730));\n\n var WrappedInput =\n /** @class */\n function (_super) {\n __extends(WrappedInput, _super);\n\n function WrappedInput(_a) {\n var element = _a.element,\n classNames = _a.classNames,\n delimiter = _a.delimiter;\n\n var _this = _super.call(this, {\n element: element,\n classNames: classNames\n }) || this;\n\n _this.delimiter = delimiter;\n return _this;\n }\n\n Object.defineProperty(WrappedInput.prototype, \"value\", {\n get: function get() {\n return this.element.value;\n },\n set: function set(value) {\n this.element.setAttribute('value', value);\n this.element.value = value;\n },\n enumerable: false,\n configurable: true\n });\n return WrappedInput;\n }(wrapped_element_1.default);\n\n exports[\"default\"] = WrappedInput;\n /***/\n },\n\n /***/\n 982: function _(__unused_webpack_module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var _extendStatics2 = function extendStatics(d, b) {\n _extendStatics2 = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics2(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics2(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n\n var __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n };\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var wrapped_element_1 = __importDefault(__webpack_require__(730));\n\n var WrappedSelect =\n /** @class */\n function (_super) {\n __extends(WrappedSelect, _super);\n\n function WrappedSelect(_a) {\n var element = _a.element,\n classNames = _a.classNames,\n template = _a.template;\n\n var _this = _super.call(this, {\n element: element,\n classNames: classNames\n }) || this;\n\n _this.template = template;\n return _this;\n }\n\n Object.defineProperty(WrappedSelect.prototype, \"placeholderOption\", {\n get: function get() {\n return this.element.querySelector('option[value=\"\"]') || // Backward compatibility layer for the non-standard placeholder attribute supported in older versions.\n this.element.querySelector('option[placeholder]');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WrappedSelect.prototype, \"optionGroups\", {\n get: function get() {\n return Array.from(this.element.getElementsByTagName('OPTGROUP'));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WrappedSelect.prototype, \"options\", {\n get: function get() {\n return Array.from(this.element.options);\n },\n set: function set(options) {\n var _this = this;\n\n var fragment = document.createDocumentFragment();\n\n var addOptionToFragment = function addOptionToFragment(data) {\n // Create a standard select option\n var option = _this.template(data); // Append it to fragment\n\n\n fragment.appendChild(option);\n }; // Add each list item to list\n\n\n options.forEach(function (optionData) {\n return addOptionToFragment(optionData);\n });\n this.appendDocFragment(fragment);\n },\n enumerable: false,\n configurable: true\n });\n\n WrappedSelect.prototype.appendDocFragment = function (fragment) {\n this.element.innerHTML = '';\n this.element.appendChild(fragment);\n };\n\n return WrappedSelect;\n }(wrapped_element_1.default);\n\n exports[\"default\"] = WrappedSelect;\n /***/\n },\n\n /***/\n 883: function _(__unused_webpack_module, exports) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.SCROLLING_SPEED = exports.SELECT_MULTIPLE_TYPE = exports.SELECT_ONE_TYPE = exports.TEXT_TYPE = exports.KEY_CODES = exports.ACTION_TYPES = exports.EVENTS = void 0;\n exports.EVENTS = {\n showDropdown: 'showDropdown',\n hideDropdown: 'hideDropdown',\n change: 'change',\n choice: 'choice',\n search: 'search',\n addItem: 'addItem',\n removeItem: 'removeItem',\n highlightItem: 'highlightItem',\n highlightChoice: 'highlightChoice',\n unhighlightItem: 'unhighlightItem'\n };\n exports.ACTION_TYPES = {\n ADD_CHOICE: 'ADD_CHOICE',\n FILTER_CHOICES: 'FILTER_CHOICES',\n ACTIVATE_CHOICES: 'ACTIVATE_CHOICES',\n CLEAR_CHOICES: 'CLEAR_CHOICES',\n ADD_GROUP: 'ADD_GROUP',\n ADD_ITEM: 'ADD_ITEM',\n REMOVE_ITEM: 'REMOVE_ITEM',\n HIGHLIGHT_ITEM: 'HIGHLIGHT_ITEM',\n CLEAR_ALL: 'CLEAR_ALL',\n RESET_TO: 'RESET_TO',\n SET_IS_LOADING: 'SET_IS_LOADING'\n };\n exports.KEY_CODES = {\n BACK_KEY: 46,\n DELETE_KEY: 8,\n ENTER_KEY: 13,\n A_KEY: 65,\n ESC_KEY: 27,\n UP_KEY: 38,\n DOWN_KEY: 40,\n PAGE_UP_KEY: 33,\n PAGE_DOWN_KEY: 34\n };\n exports.TEXT_TYPE = 'text';\n exports.SELECT_ONE_TYPE = 'select-one';\n exports.SELECT_MULTIPLE_TYPE = 'select-multiple';\n exports.SCROLLING_SPEED = 4;\n /***/\n },\n\n /***/\n 789: function _(__unused_webpack_module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.DEFAULT_CONFIG = exports.DEFAULT_CLASSNAMES = void 0;\n\n var utils_1 = __webpack_require__(799);\n\n exports.DEFAULT_CLASSNAMES = {\n containerOuter: 'choices',\n containerInner: 'choices__inner',\n input: 'choices__input',\n inputCloned: 'choices__input--cloned',\n list: 'choices__list',\n listItems: 'choices__list--multiple',\n listSingle: 'choices__list--single',\n listDropdown: 'choices__list--dropdown',\n item: 'choices__item',\n itemSelectable: 'choices__item--selectable',\n itemDisabled: 'choices__item--disabled',\n itemChoice: 'choices__item--choice',\n placeholder: 'choices__placeholder',\n group: 'choices__group',\n groupHeading: 'choices__heading',\n button: 'choices__button',\n activeState: 'is-active',\n focusState: 'is-focused',\n openState: 'is-open',\n disabledState: 'is-disabled',\n highlightedState: 'is-highlighted',\n selectedState: 'is-selected',\n flippedState: 'is-flipped',\n loadingState: 'is-loading',\n noResults: 'has-no-results',\n noChoices: 'has-no-choices'\n };\n exports.DEFAULT_CONFIG = {\n items: [],\n choices: [],\n silent: false,\n renderChoiceLimit: -1,\n maxItemCount: -1,\n addItems: true,\n addItemFilter: null,\n removeItems: true,\n removeItemButton: false,\n editItems: false,\n duplicateItemsAllowed: true,\n delimiter: ',',\n paste: true,\n searchEnabled: true,\n searchChoices: true,\n searchFloor: 1,\n searchResultLimit: 4,\n searchFields: ['label', 'value'],\n position: 'auto',\n resetScrollPosition: true,\n shouldSort: true,\n shouldSortItems: false,\n sorter: utils_1.sortByAlpha,\n placeholder: true,\n placeholderValue: null,\n searchPlaceholderValue: null,\n prependValue: null,\n appendValue: null,\n renderSelectedChoices: 'auto',\n loadingText: 'Loading...',\n noResultsText: 'No results found',\n noChoicesText: 'No choices to choose from',\n itemSelectText: 'Press to select',\n uniqueItemText: 'Only unique values can be added',\n customAddItemText: 'Only values matching specific conditions can be added',\n addItemText: function addItemText(value) {\n return \"Press Enter to add \\\"\".concat((0, utils_1.sanitise)(value), \"\\\"\");\n },\n maxItemText: function maxItemText(maxItemCount) {\n return \"Only \".concat(maxItemCount, \" values can be added\");\n },\n valueComparer: function valueComparer(value1, value2) {\n return value1 === value2;\n },\n fuseOptions: {\n includeScore: true\n },\n callbackOnInit: null,\n callbackOnCreateTemplates: null,\n classNames: exports.DEFAULT_CLASSNAMES\n };\n /***/\n },\n\n /***/\n 799: function _(__unused_webpack_module, exports) {\n \"use strict\";\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.diff = exports.cloneObject = exports.existsInArray = exports.dispatchEvent = exports.sortByScore = exports.sortByAlpha = exports.strToEl = exports.sanitise = exports.isScrolledIntoView = exports.getAdjacentEl = exports.wrap = exports.isType = exports.getType = exports.generateId = exports.generateChars = exports.getRandomNumber = void 0;\n\n var getRandomNumber = function getRandomNumber(min, max) {\n return Math.floor(Math.random() * (max - min) + min);\n };\n\n exports.getRandomNumber = getRandomNumber;\n\n var generateChars = function generateChars(length) {\n return Array.from({\n length: length\n }, function () {\n return (0, exports.getRandomNumber)(0, 36).toString(36);\n }).join('');\n };\n\n exports.generateChars = generateChars;\n\n var generateId = function generateId(element, prefix) {\n var id = element.id || element.name && \"\".concat(element.name, \"-\").concat((0, exports.generateChars)(2)) || (0, exports.generateChars)(4);\n id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n id = \"\".concat(prefix, \"-\").concat(id);\n return id;\n };\n\n exports.generateId = generateId;\n\n var getType = function getType(obj) {\n return Object.prototype.toString.call(obj).slice(8, -1);\n };\n\n exports.getType = getType;\n\n var isType = function isType(type, obj) {\n return obj !== undefined && obj !== null && (0, exports.getType)(obj) === type;\n };\n\n exports.isType = isType;\n\n var wrap = function wrap(element, wrapper) {\n if (wrapper === void 0) {\n wrapper = document.createElement('div');\n }\n\n if (element.parentNode) {\n if (element.nextSibling) {\n element.parentNode.insertBefore(wrapper, element.nextSibling);\n } else {\n element.parentNode.appendChild(wrapper);\n }\n }\n\n return wrapper.appendChild(element);\n };\n\n exports.wrap = wrap;\n\n var getAdjacentEl = function getAdjacentEl(startEl, selector, direction) {\n if (direction === void 0) {\n direction = 1;\n }\n\n var prop = \"\".concat(direction > 0 ? 'next' : 'previous', \"ElementSibling\");\n var sibling = startEl[prop];\n\n while (sibling) {\n if (sibling.matches(selector)) {\n return sibling;\n }\n\n sibling = sibling[prop];\n }\n\n return sibling;\n };\n\n exports.getAdjacentEl = getAdjacentEl;\n\n var isScrolledIntoView = function isScrolledIntoView(element, parent, direction) {\n if (direction === void 0) {\n direction = 1;\n }\n\n if (!element) {\n return false;\n }\n\n var isVisible;\n\n if (direction > 0) {\n // In view from bottom\n isVisible = parent.scrollTop + parent.offsetHeight >= element.offsetTop + element.offsetHeight;\n } else {\n // In view from top\n isVisible = element.offsetTop >= parent.scrollTop;\n }\n\n return isVisible;\n };\n\n exports.isScrolledIntoView = isScrolledIntoView;\n\n var sanitise = function sanitise(value) {\n if (typeof value !== 'string') {\n return value;\n }\n\n return value.replace(/&/g, '&').replace(/>/g, '&rt;').replace(/ -1) {\n return state.map(function (obj) {\n var choice = obj;\n\n if (choice.id === parseInt(\"\".concat(addItemAction_1.choiceId), 10)) {\n choice.selected = true;\n }\n\n return choice;\n });\n }\n\n return state;\n }\n\n case 'REMOVE_ITEM':\n {\n var removeItemAction_1 = action; // When an item is removed and it has an associated choice,\n // we want to re-enable it so it can be chosen again\n\n if (removeItemAction_1.choiceId && removeItemAction_1.choiceId > -1) {\n return state.map(function (obj) {\n var choice = obj;\n\n if (choice.id === parseInt(\"\".concat(removeItemAction_1.choiceId), 10)) {\n choice.selected = false;\n }\n\n return choice;\n });\n }\n\n return state;\n }\n\n case 'FILTER_CHOICES':\n {\n var filterChoicesAction_1 = action;\n return state.map(function (obj) {\n var choice = obj; // Set active state based on whether choice is\n // within filtered results\n\n choice.active = filterChoicesAction_1.results.some(function (_a) {\n var item = _a.item,\n score = _a.score;\n\n if (item.id === choice.id) {\n choice.score = score;\n return true;\n }\n\n return false;\n });\n return choice;\n });\n }\n\n case 'ACTIVATE_CHOICES':\n {\n var activateChoicesAction_1 = action;\n return state.map(function (obj) {\n var choice = obj;\n choice.active = activateChoicesAction_1.active;\n return choice;\n });\n }\n\n case 'CLEAR_CHOICES':\n {\n return exports.defaultState;\n }\n\n default:\n {\n return state;\n }\n }\n }\n\n exports[\"default\"] = choices;\n /***/\n },\n\n /***/\n 871: function _(__unused_webpack_module, exports) {\n \"use strict\";\n\n var __spreadArray = this && this.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n };\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.defaultState = void 0;\n exports.defaultState = [];\n\n function groups(state, action) {\n if (state === void 0) {\n state = exports.defaultState;\n }\n\n if (action === void 0) {\n action = {};\n }\n\n switch (action.type) {\n case 'ADD_GROUP':\n {\n var addGroupAction = action;\n return __spreadArray(__spreadArray([], state, true), [{\n id: addGroupAction.id,\n value: addGroupAction.value,\n active: addGroupAction.active,\n disabled: addGroupAction.disabled\n }], false);\n }\n\n case 'CLEAR_CHOICES':\n {\n return [];\n }\n\n default:\n {\n return state;\n }\n }\n }\n\n exports[\"default\"] = groups;\n /***/\n },\n\n /***/\n 655: function _(__unused_webpack_module, exports, __webpack_require__) {\n \"use strict\";\n\n var __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n };\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.defaultState = void 0;\n\n var redux_1 = __webpack_require__(857);\n\n var items_1 = __importDefault(__webpack_require__(52));\n\n var groups_1 = __importDefault(__webpack_require__(871));\n\n var choices_1 = __importDefault(__webpack_require__(273));\n\n var loading_1 = __importDefault(__webpack_require__(502));\n\n var utils_1 = __webpack_require__(799);\n\n exports.defaultState = {\n groups: [],\n items: [],\n choices: [],\n loading: false\n };\n var appReducer = (0, redux_1.combineReducers)({\n items: items_1.default,\n groups: groups_1.default,\n choices: choices_1.default,\n loading: loading_1.default\n });\n\n var rootReducer = function rootReducer(passedState, action) {\n var state = passedState; // If we are clearing all items, groups and options we reassign\n // state and then pass that state to our proper reducer. This isn't\n // mutating our actual state\n // See: http://stackoverflow.com/a/35641992\n\n if (action.type === 'CLEAR_ALL') {\n state = exports.defaultState;\n } else if (action.type === 'RESET_TO') {\n return (0, utils_1.cloneObject)(action.state);\n }\n\n return appReducer(state, action);\n };\n\n exports[\"default\"] = rootReducer;\n /***/\n },\n\n /***/\n 52: function _(__unused_webpack_module, exports) {\n \"use strict\";\n\n var __spreadArray = this && this.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n };\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.defaultState = void 0;\n exports.defaultState = [];\n\n function items(state, action) {\n if (state === void 0) {\n state = exports.defaultState;\n }\n\n if (action === void 0) {\n action = {};\n }\n\n switch (action.type) {\n case 'ADD_ITEM':\n {\n var addItemAction = action; // Add object to items array\n\n var newState = __spreadArray(__spreadArray([], state, true), [{\n id: addItemAction.id,\n choiceId: addItemAction.choiceId,\n groupId: addItemAction.groupId,\n value: addItemAction.value,\n label: addItemAction.label,\n active: true,\n highlighted: false,\n customProperties: addItemAction.customProperties,\n placeholder: addItemAction.placeholder || false,\n keyCode: null\n }], false);\n\n return newState.map(function (obj) {\n var item = obj;\n item.highlighted = false;\n return item;\n });\n }\n\n case 'REMOVE_ITEM':\n {\n // Set item to inactive\n return state.map(function (obj) {\n var item = obj;\n\n if (item.id === action.id) {\n item.active = false;\n }\n\n return item;\n });\n }\n\n case 'HIGHLIGHT_ITEM':\n {\n var highlightItemAction_1 = action;\n return state.map(function (obj) {\n var item = obj;\n\n if (item.id === highlightItemAction_1.id) {\n item.highlighted = highlightItemAction_1.highlighted;\n }\n\n return item;\n });\n }\n\n default:\n {\n return state;\n }\n }\n }\n\n exports[\"default\"] = items;\n /***/\n },\n\n /***/\n 502: function _(__unused_webpack_module, exports) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.defaultState = void 0;\n exports.defaultState = false;\n\n var general = function general(state, action) {\n if (state === void 0) {\n state = exports.defaultState;\n }\n\n if (action === void 0) {\n action = {};\n }\n\n switch (action.type) {\n case 'SET_IS_LOADING':\n {\n return action.isLoading;\n }\n\n default:\n {\n return state;\n }\n }\n };\n\n exports[\"default\"] = general;\n /***/\n },\n\n /***/\n 744: function _(__unused_webpack_module, exports, __webpack_require__) {\n \"use strict\";\n\n var __spreadArray = this && this.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n };\n\n var __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n };\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n var redux_1 = __webpack_require__(857);\n\n var index_1 = __importDefault(__webpack_require__(655));\n\n var Store =\n /** @class */\n function () {\n function Store() {\n this._store = (0, redux_1.createStore)(index_1.default, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());\n }\n /**\n * Subscribe store to function call (wrapped Redux method)\n */\n\n\n Store.prototype.subscribe = function (onChange) {\n this._store.subscribe(onChange);\n };\n /**\n * Dispatch event to store (wrapped Redux method)\n */\n\n\n Store.prototype.dispatch = function (action) {\n this._store.dispatch(action);\n };\n\n Object.defineProperty(Store.prototype, \"state\", {\n /**\n * Get store object (wrapping Redux method)\n */\n get: function get() {\n return this._store.getState();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"items\", {\n /**\n * Get items from store\n */\n get: function get() {\n return this.state.items;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"activeItems\", {\n /**\n * Get active items from store\n */\n get: function get() {\n return this.items.filter(function (item) {\n return item.active === true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"highlightedActiveItems\", {\n /**\n * Get highlighted items from store\n */\n get: function get() {\n return this.items.filter(function (item) {\n return item.active && item.highlighted;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"choices\", {\n /**\n * Get choices from store\n */\n get: function get() {\n return this.state.choices;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"activeChoices\", {\n /**\n * Get active choices from store\n */\n get: function get() {\n return this.choices.filter(function (choice) {\n return choice.active === true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"selectableChoices\", {\n /**\n * Get selectable choices from store\n */\n get: function get() {\n return this.choices.filter(function (choice) {\n return choice.disabled !== true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"searchableChoices\", {\n /**\n * Get choices that can be searched (excluding placeholders)\n */\n get: function get() {\n return this.selectableChoices.filter(function (choice) {\n return choice.placeholder !== true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"placeholderChoice\", {\n /**\n * Get placeholder choice from store\n */\n get: function get() {\n return __spreadArray([], this.choices, true).reverse().find(function (choice) {\n return choice.placeholder === true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"groups\", {\n /**\n * Get groups from store\n */\n get: function get() {\n return this.state.groups;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"activeGroups\", {\n /**\n * Get active groups from store\n */\n get: function get() {\n var _a = this,\n groups = _a.groups,\n choices = _a.choices;\n\n return groups.filter(function (group) {\n var isActive = group.active === true && group.disabled === false;\n var hasActiveOptions = choices.some(function (choice) {\n return choice.active === true && choice.disabled === false;\n });\n return isActive && hasActiveOptions;\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Get loading state from store\n */\n\n Store.prototype.isLoading = function () {\n return this.state.loading;\n };\n /**\n * Get single choice by it's ID\n */\n\n\n Store.prototype.getChoiceById = function (id) {\n return this.activeChoices.find(function (choice) {\n return choice.id === parseInt(id, 10);\n });\n };\n /**\n * Get group by group id\n */\n\n\n Store.prototype.getGroupById = function (id) {\n return this.groups.find(function (group) {\n return group.id === id;\n });\n };\n\n return Store;\n }();\n\n exports[\"default\"] = Store;\n /***/\n },\n\n /***/\n 686: function _(__unused_webpack_module, exports) {\n \"use strict\";\n /**\n * Helpers to create HTML elements used by Choices\n * Can be overridden by providing `callbackOnCreateTemplates` option\n */\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var templates = {\n containerOuter: function containerOuter(_a, dir, isSelectElement, isSelectOneElement, searchEnabled, passedElementType) {\n var containerOuter = _a.containerOuter;\n var div = Object.assign(document.createElement('div'), {\n className: containerOuter\n });\n div.dataset.type = passedElementType;\n\n if (dir) {\n div.dir = dir;\n }\n\n if (isSelectOneElement) {\n div.tabIndex = 0;\n }\n\n if (isSelectElement) {\n div.setAttribute('role', searchEnabled ? 'combobox' : 'listbox');\n\n if (searchEnabled) {\n div.setAttribute('aria-autocomplete', 'list');\n }\n }\n\n div.setAttribute('aria-haspopup', 'true');\n div.setAttribute('aria-expanded', 'false');\n return div;\n },\n containerInner: function containerInner(_a) {\n var containerInner = _a.containerInner;\n return Object.assign(document.createElement('div'), {\n className: containerInner\n });\n },\n itemList: function itemList(_a, isSelectOneElement) {\n var list = _a.list,\n listSingle = _a.listSingle,\n listItems = _a.listItems;\n return Object.assign(document.createElement('div'), {\n className: \"\".concat(list, \" \").concat(isSelectOneElement ? listSingle : listItems)\n });\n },\n placeholder: function placeholder(_a, value) {\n var placeholder = _a.placeholder;\n return Object.assign(document.createElement('div'), {\n className: placeholder,\n innerHTML: value\n });\n },\n item: function item(_a, _b, removeItemButton) {\n var item = _a.item,\n button = _a.button,\n highlightedState = _a.highlightedState,\n itemSelectable = _a.itemSelectable,\n placeholder = _a.placeholder;\n var id = _b.id,\n value = _b.value,\n label = _b.label,\n customProperties = _b.customProperties,\n active = _b.active,\n disabled = _b.disabled,\n highlighted = _b.highlighted,\n isPlaceholder = _b.placeholder;\n var div = Object.assign(document.createElement('div'), {\n className: item,\n innerHTML: label\n });\n Object.assign(div.dataset, {\n item: '',\n id: id,\n value: value,\n customProperties: customProperties\n });\n\n if (active) {\n div.setAttribute('aria-selected', 'true');\n }\n\n if (disabled) {\n div.setAttribute('aria-disabled', 'true');\n }\n\n if (isPlaceholder) {\n div.classList.add(placeholder);\n }\n\n div.classList.add(highlighted ? highlightedState : itemSelectable);\n\n if (removeItemButton) {\n if (disabled) {\n div.classList.remove(itemSelectable);\n }\n\n div.dataset.deletable = '';\n /** @todo This MUST be localizable, not hardcoded! */\n\n var REMOVE_ITEM_TEXT = 'Remove item';\n var removeButton = Object.assign(document.createElement('button'), {\n type: 'button',\n className: button,\n innerHTML: REMOVE_ITEM_TEXT\n });\n removeButton.setAttribute('aria-label', \"\".concat(REMOVE_ITEM_TEXT, \": '\").concat(value, \"'\"));\n removeButton.dataset.button = '';\n div.appendChild(removeButton);\n }\n\n return div;\n },\n choiceList: function choiceList(_a, isSelectOneElement) {\n var list = _a.list;\n var div = Object.assign(document.createElement('div'), {\n className: list\n });\n\n if (!isSelectOneElement) {\n div.setAttribute('aria-multiselectable', 'true');\n }\n\n div.setAttribute('role', 'listbox');\n return div;\n },\n choiceGroup: function choiceGroup(_a, _b) {\n var group = _a.group,\n groupHeading = _a.groupHeading,\n itemDisabled = _a.itemDisabled;\n var id = _b.id,\n value = _b.value,\n disabled = _b.disabled;\n var div = Object.assign(document.createElement('div'), {\n className: \"\".concat(group, \" \").concat(disabled ? itemDisabled : '')\n });\n div.setAttribute('role', 'group');\n Object.assign(div.dataset, {\n group: '',\n id: id,\n value: value\n });\n\n if (disabled) {\n div.setAttribute('aria-disabled', 'true');\n }\n\n div.appendChild(Object.assign(document.createElement('div'), {\n className: groupHeading,\n innerHTML: value\n }));\n return div;\n },\n choice: function choice(_a, _b, selectText) {\n var item = _a.item,\n itemChoice = _a.itemChoice,\n itemSelectable = _a.itemSelectable,\n selectedState = _a.selectedState,\n itemDisabled = _a.itemDisabled,\n placeholder = _a.placeholder;\n var id = _b.id,\n value = _b.value,\n label = _b.label,\n groupId = _b.groupId,\n elementId = _b.elementId,\n isDisabled = _b.disabled,\n isSelected = _b.selected,\n isPlaceholder = _b.placeholder;\n var div = Object.assign(document.createElement('div'), {\n id: elementId,\n innerHTML: label,\n className: \"\".concat(item, \" \").concat(itemChoice)\n });\n\n if (isSelected) {\n div.classList.add(selectedState);\n }\n\n if (isPlaceholder) {\n div.classList.add(placeholder);\n }\n\n div.setAttribute('role', groupId && groupId > 0 ? 'treeitem' : 'option');\n Object.assign(div.dataset, {\n choice: '',\n id: id,\n value: value,\n selectText: selectText\n });\n\n if (isDisabled) {\n div.classList.add(itemDisabled);\n div.dataset.choiceDisabled = '';\n div.setAttribute('aria-disabled', 'true');\n } else {\n div.classList.add(itemSelectable);\n div.dataset.choiceSelectable = '';\n }\n\n return div;\n },\n input: function input(_a, placeholderValue) {\n var input = _a.input,\n inputCloned = _a.inputCloned;\n var inp = Object.assign(document.createElement('input'), {\n type: 'text',\n className: \"\".concat(input, \" \").concat(inputCloned),\n autocomplete: 'off',\n autocapitalize: 'off',\n spellcheck: false\n });\n inp.setAttribute('role', 'textbox');\n inp.setAttribute('aria-autocomplete', 'list');\n inp.setAttribute('aria-label', placeholderValue);\n return inp;\n },\n dropdown: function dropdown(_a) {\n var list = _a.list,\n listDropdown = _a.listDropdown;\n var div = document.createElement('div');\n div.classList.add(list, listDropdown);\n div.setAttribute('aria-expanded', 'false');\n return div;\n },\n notice: function notice(_a, innerHTML, type) {\n var item = _a.item,\n itemChoice = _a.itemChoice,\n noResults = _a.noResults,\n noChoices = _a.noChoices;\n\n if (type === void 0) {\n type = '';\n }\n\n var classes = [item, itemChoice];\n\n if (type === 'no-choices') {\n classes.push(noChoices);\n } else if (type === 'no-results') {\n classes.push(noResults);\n }\n\n return Object.assign(document.createElement('div'), {\n innerHTML: innerHTML,\n className: classes.join(' ')\n });\n },\n option: function option(_a) {\n var label = _a.label,\n value = _a.value,\n customProperties = _a.customProperties,\n active = _a.active,\n disabled = _a.disabled;\n var opt = new Option(label, value, false, active);\n\n if (customProperties) {\n opt.dataset.customProperties = \"\".concat(customProperties);\n }\n\n opt.disabled = !!disabled;\n return opt;\n }\n };\n exports[\"default\"] = templates;\n /***/\n },\n\n /***/\n 996: function _(module) {\n \"use strict\";\n\n var isMergeableObject = function isMergeableObject(value) {\n return isNonNullObject(value) && !isSpecial(value);\n };\n\n function isNonNullObject(value) {\n return !!value && _typeof(value) === 'object';\n }\n\n function isSpecial(value) {\n var stringValue = Object.prototype.toString.call(value);\n return stringValue === '[object RegExp]' || stringValue === '[object Date]' || isReactElement(value);\n } // see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\n\n\n var canUseSymbol = typeof Symbol === 'function' && Symbol.for;\n var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\n function isReactElement(value) {\n return value.$$typeof === REACT_ELEMENT_TYPE;\n }\n\n function emptyTarget(val) {\n return Array.isArray(val) ? [] : {};\n }\n\n function cloneUnlessOtherwiseSpecified(value, options) {\n return options.clone !== false && options.isMergeableObject(value) ? deepmerge(emptyTarget(value), value, options) : value;\n }\n\n function defaultArrayMerge(target, source, options) {\n return target.concat(source).map(function (element) {\n return cloneUnlessOtherwiseSpecified(element, options);\n });\n }\n\n function getMergeFunction(key, options) {\n if (!options.customMerge) {\n return deepmerge;\n }\n\n var customMerge = options.customMerge(key);\n return typeof customMerge === 'function' ? customMerge : deepmerge;\n }\n\n function getEnumerableOwnPropertySymbols(target) {\n return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(target).filter(function (symbol) {\n return target.propertyIsEnumerable(symbol);\n }) : [];\n }\n\n function getKeys(target) {\n return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target));\n }\n\n function propertyIsOnObject(object, property) {\n try {\n return property in object;\n } catch (_) {\n return false;\n }\n } // Protects from prototype poisoning and unexpected merging up the prototype chain.\n\n\n function propertyIsUnsafe(target, key) {\n return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n && Object.propertyIsEnumerable.call(target, key)); // and also unsafe if they're nonenumerable.\n }\n\n function mergeObject(target, source, options) {\n var destination = {};\n\n if (options.isMergeableObject(target)) {\n getKeys(target).forEach(function (key) {\n destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n });\n }\n\n getKeys(source).forEach(function (key) {\n if (propertyIsUnsafe(target, key)) {\n return;\n }\n\n if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n destination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n } else {\n destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n }\n });\n return destination;\n }\n\n function deepmerge(target, source, options) {\n options = options || {};\n options.arrayMerge = options.arrayMerge || defaultArrayMerge;\n options.isMergeableObject = options.isMergeableObject || isMergeableObject; // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n // implementations can use it. The caller may not replace it.\n\n options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n var sourceIsArray = Array.isArray(source);\n var targetIsArray = Array.isArray(target);\n var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n if (!sourceAndTargetTypesMatch) {\n return cloneUnlessOtherwiseSpecified(source, options);\n } else if (sourceIsArray) {\n return options.arrayMerge(target, source, options);\n } else {\n return mergeObject(target, source, options);\n }\n }\n\n deepmerge.all = function deepmergeAll(array, options) {\n if (!Array.isArray(array)) {\n throw new Error('first argument should be an array');\n }\n\n return array.reduce(function (prev, next) {\n return deepmerge(prev, next, options);\n }, {});\n };\n\n var deepmerge_1 = deepmerge;\n module.exports = deepmerge_1;\n /***/\n },\n\n /***/\n 70: function _(module) {\n /*!\n * Fuse.js v3.4.6 - Lightweight fuzzy-search (http://fusejs.io)\n * \n * Copyright (c) 2012-2017 Kirollos Risk (http://kiro.me)\n * All Rights Reserved. Apache Software License 2.0\n * \n * http://www.apache.org/licenses/LICENSE-2.0\n */\n !function (e, t) {\n true ? module.exports = t() : 0;\n }(this, function () {\n return function (e) {\n var t = {};\n\n function n(r) {\n if (t[r]) return t[r].exports;\n var o = t[r] = {\n i: r,\n l: !1,\n exports: {}\n };\n return e[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports;\n }\n\n return n.m = e, n.c = t, n.d = function (e, t, r) {\n n.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: r\n });\n }, n.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, n.t = function (e, t) {\n if (1 & t && (e = n(e)), 8 & t) return e;\n if (4 & t && \"object\" == _typeof(e) && e && e.__esModule) return e;\n var r = Object.create(null);\n if (n.r(r), Object.defineProperty(r, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var o in e) {\n n.d(r, o, function (t) {\n return e[t];\n }.bind(null, o));\n }\n return r;\n }, n.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return n.d(t, \"a\", t), t;\n }, n.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, n.p = \"\", n(n.s = 1);\n }([function (e, t) {\n e.exports = function (e) {\n return Array.isArray ? Array.isArray(e) : \"[object Array]\" === Object.prototype.toString.call(e);\n };\n }, function (e, t, n) {\n function r(e) {\n return (r = \"function\" == typeof Symbol && \"symbol\" == _typeof(Symbol.iterator) ? function (e) {\n return _typeof(e);\n } : function (e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : _typeof(e);\n })(e);\n }\n\n function o(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || !1, r.configurable = !0, \"value\" in r && (r.writable = !0), Object.defineProperty(e, r.key, r);\n }\n }\n\n var i = n(2),\n a = n(8),\n s = n(0),\n c = function () {\n function e(t, n) {\n var r = n.location,\n o = void 0 === r ? 0 : r,\n i = n.distance,\n s = void 0 === i ? 100 : i,\n c = n.threshold,\n h = void 0 === c ? .6 : c,\n l = n.maxPatternLength,\n u = void 0 === l ? 32 : l,\n f = n.caseSensitive,\n d = void 0 !== f && f,\n v = n.tokenSeparator,\n p = void 0 === v ? / +/g : v,\n g = n.findAllMatches,\n y = void 0 !== g && g,\n m = n.minMatchCharLength,\n k = void 0 === m ? 1 : m,\n S = n.id,\n x = void 0 === S ? null : S,\n b = n.keys,\n M = void 0 === b ? [] : b,\n _ = n.shouldSort,\n L = void 0 === _ || _,\n w = n.getFn,\n A = void 0 === w ? a : w,\n C = n.sortFn,\n I = void 0 === C ? function (e, t) {\n return e.score - t.score;\n } : C,\n O = n.tokenize,\n j = void 0 !== O && O,\n P = n.matchAllTokens,\n F = void 0 !== P && P,\n T = n.includeMatches,\n z = void 0 !== T && T,\n E = n.includeScore,\n K = void 0 !== E && E,\n $ = n.verbose,\n J = void 0 !== $ && $;\n !function (e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.options = {\n location: o,\n distance: s,\n threshold: h,\n maxPatternLength: u,\n isCaseSensitive: d,\n tokenSeparator: p,\n findAllMatches: y,\n minMatchCharLength: k,\n id: x,\n keys: M,\n includeMatches: z,\n includeScore: K,\n shouldSort: L,\n getFn: A,\n sortFn: I,\n verbose: J,\n tokenize: j,\n matchAllTokens: F\n }, this.setCollection(t);\n }\n\n var t, n, c;\n return t = e, (n = [{\n key: \"setCollection\",\n value: function value(e) {\n return this.list = e, e;\n }\n }, {\n key: \"search\",\n value: function value(e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {\n limit: !1\n };\n\n this._log('---------\\nSearch pattern: \"'.concat(e, '\"'));\n\n var n = this._prepareSearchers(e),\n r = n.tokenSearchers,\n o = n.fullSearcher,\n i = this._search(r, o),\n a = i.weights,\n s = i.results;\n\n return this._computeScore(a, s), this.options.shouldSort && this._sort(s), t.limit && \"number\" == typeof t.limit && (s = s.slice(0, t.limit)), this._format(s);\n }\n }, {\n key: \"_prepareSearchers\",\n value: function value() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : \"\",\n t = [];\n if (this.options.tokenize) for (var n = e.split(this.options.tokenSeparator), r = 0, o = n.length; r < o; r += 1) {\n t.push(new i(n[r], this.options));\n }\n return {\n tokenSearchers: t,\n fullSearcher: new i(e, this.options)\n };\n }\n }, {\n key: \"_search\",\n value: function value() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [],\n t = arguments.length > 1 ? arguments[1] : void 0,\n n = this.list,\n r = {},\n o = [];\n\n if (\"string\" == typeof n[0]) {\n for (var i = 0, a = n.length; i < a; i += 1) {\n this._analyze({\n key: \"\",\n value: n[i],\n record: i,\n index: i\n }, {\n resultMap: r,\n results: o,\n tokenSearchers: e,\n fullSearcher: t\n });\n }\n\n return {\n weights: null,\n results: o\n };\n }\n\n for (var s = {}, c = 0, h = n.length; c < h; c += 1) {\n for (var l = n[c], u = 0, f = this.options.keys.length; u < f; u += 1) {\n var d = this.options.keys[u];\n\n if (\"string\" != typeof d) {\n if (s[d.name] = {\n weight: 1 - d.weight || 1\n }, d.weight <= 0 || d.weight > 1) throw new Error(\"Key weight has to be > 0 and <= 1\");\n d = d.name;\n } else s[d] = {\n weight: 1\n };\n\n this._analyze({\n key: d,\n value: this.options.getFn(l, d),\n record: l,\n index: c\n }, {\n resultMap: r,\n results: o,\n tokenSearchers: e,\n fullSearcher: t\n });\n }\n }\n\n return {\n weights: s,\n results: o\n };\n }\n }, {\n key: \"_analyze\",\n value: function value(e, t) {\n var n = e.key,\n r = e.arrayIndex,\n o = void 0 === r ? -1 : r,\n i = e.value,\n a = e.record,\n c = e.index,\n h = t.tokenSearchers,\n l = void 0 === h ? [] : h,\n u = t.fullSearcher,\n f = void 0 === u ? [] : u,\n d = t.resultMap,\n v = void 0 === d ? {} : d,\n p = t.results,\n g = void 0 === p ? [] : p;\n\n if (null != i) {\n var y = !1,\n m = -1,\n k = 0;\n\n if (\"string\" == typeof i) {\n this._log(\"\\nKey: \".concat(\"\" === n ? \"-\" : n));\n\n var S = f.search(i);\n\n if (this._log('Full text: \"'.concat(i, '\", score: ').concat(S.score)), this.options.tokenize) {\n for (var x = i.split(this.options.tokenSeparator), b = [], M = 0; M < l.length; M += 1) {\n var _ = l[M];\n\n this._log('\\nPattern: \"'.concat(_.pattern, '\"'));\n\n for (var L = !1, w = 0; w < x.length; w += 1) {\n var A = x[w],\n C = _.search(A),\n I = {};\n\n C.isMatch ? (I[A] = C.score, y = !0, L = !0, b.push(C.score)) : (I[A] = 1, this.options.matchAllTokens || b.push(1)), this._log('Token: \"'.concat(A, '\", score: ').concat(I[A]));\n }\n\n L && (k += 1);\n }\n\n m = b[0];\n\n for (var O = b.length, j = 1; j < O; j += 1) {\n m += b[j];\n }\n\n m /= O, this._log(\"Token score average:\", m);\n }\n\n var P = S.score;\n m > -1 && (P = (P + m) / 2), this._log(\"Score average:\", P);\n var F = !this.options.tokenize || !this.options.matchAllTokens || k >= l.length;\n\n if (this._log(\"\\nCheck Matches: \".concat(F)), (y || S.isMatch) && F) {\n var T = v[c];\n T ? T.output.push({\n key: n,\n arrayIndex: o,\n value: i,\n score: P,\n matchedIndices: S.matchedIndices\n }) : (v[c] = {\n item: a,\n output: [{\n key: n,\n arrayIndex: o,\n value: i,\n score: P,\n matchedIndices: S.matchedIndices\n }]\n }, g.push(v[c]));\n }\n } else if (s(i)) for (var z = 0, E = i.length; z < E; z += 1) {\n this._analyze({\n key: n,\n arrayIndex: z,\n value: i[z],\n record: a,\n index: c\n }, {\n resultMap: v,\n results: g,\n tokenSearchers: l,\n fullSearcher: f\n });\n }\n }\n }\n }, {\n key: \"_computeScore\",\n value: function value(e, t) {\n this._log(\"\\n\\nComputing score:\\n\");\n\n for (var n = 0, r = t.length; n < r; n += 1) {\n for (var o = t[n].output, i = o.length, a = 1, s = 1, c = 0; c < i; c += 1) {\n var h = e ? e[o[c].key].weight : 1,\n l = (1 === h ? o[c].score : o[c].score || .001) * h;\n 1 !== h ? s = Math.min(s, l) : (o[c].nScore = l, a *= l);\n }\n\n t[n].score = 1 === s ? a : s, this._log(t[n]);\n }\n }\n }, {\n key: \"_sort\",\n value: function value(e) {\n this._log(\"\\n\\nSorting....\"), e.sort(this.options.sortFn);\n }\n }, {\n key: \"_format\",\n value: function value(e) {\n var t = [];\n\n if (this.options.verbose) {\n var n = [];\n this._log(\"\\n\\nOutput:\\n\\n\", JSON.stringify(e, function (e, t) {\n if (\"object\" === r(t) && null !== t) {\n if (-1 !== n.indexOf(t)) return;\n n.push(t);\n }\n\n return t;\n })), n = null;\n }\n\n var o = [];\n this.options.includeMatches && o.push(function (e, t) {\n var n = e.output;\n t.matches = [];\n\n for (var r = 0, o = n.length; r < o; r += 1) {\n var i = n[r];\n\n if (0 !== i.matchedIndices.length) {\n var a = {\n indices: i.matchedIndices,\n value: i.value\n };\n i.key && (a.key = i.key), i.hasOwnProperty(\"arrayIndex\") && i.arrayIndex > -1 && (a.arrayIndex = i.arrayIndex), t.matches.push(a);\n }\n }\n }), this.options.includeScore && o.push(function (e, t) {\n t.score = e.score;\n });\n\n for (var i = 0, a = e.length; i < a; i += 1) {\n var s = e[i];\n\n if (this.options.id && (s.item = this.options.getFn(s.item, this.options.id)[0]), o.length) {\n for (var c = {\n item: s.item\n }, h = 0, l = o.length; h < l; h += 1) {\n o[h](s, c);\n }\n\n t.push(c);\n } else t.push(s.item);\n }\n\n return t;\n }\n }, {\n key: \"_log\",\n value: function value() {\n var e;\n this.options.verbose && (e = console).log.apply(e, arguments);\n }\n }]) && o(t.prototype, n), c && o(t, c), e;\n }();\n\n e.exports = c;\n }, function (e, t, n) {\n function r(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || !1, r.configurable = !0, \"value\" in r && (r.writable = !0), Object.defineProperty(e, r.key, r);\n }\n }\n\n var o = n(3),\n i = n(4),\n a = n(7),\n s = function () {\n function e(t, n) {\n var r = n.location,\n o = void 0 === r ? 0 : r,\n i = n.distance,\n s = void 0 === i ? 100 : i,\n c = n.threshold,\n h = void 0 === c ? .6 : c,\n l = n.maxPatternLength,\n u = void 0 === l ? 32 : l,\n f = n.isCaseSensitive,\n d = void 0 !== f && f,\n v = n.tokenSeparator,\n p = void 0 === v ? / +/g : v,\n g = n.findAllMatches,\n y = void 0 !== g && g,\n m = n.minMatchCharLength,\n k = void 0 === m ? 1 : m;\n !function (e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.options = {\n location: o,\n distance: s,\n threshold: h,\n maxPatternLength: u,\n isCaseSensitive: d,\n tokenSeparator: p,\n findAllMatches: y,\n minMatchCharLength: k\n }, this.pattern = this.options.isCaseSensitive ? t : t.toLowerCase(), this.pattern.length <= u && (this.patternAlphabet = a(this.pattern));\n }\n\n var t, n, s;\n return t = e, (n = [{\n key: \"search\",\n value: function value(e) {\n if (this.options.isCaseSensitive || (e = e.toLowerCase()), this.pattern === e) return {\n isMatch: !0,\n score: 0,\n matchedIndices: [[0, e.length - 1]]\n };\n var t = this.options,\n n = t.maxPatternLength,\n r = t.tokenSeparator;\n if (this.pattern.length > n) return o(e, this.pattern, r);\n var a = this.options,\n s = a.location,\n c = a.distance,\n h = a.threshold,\n l = a.findAllMatches,\n u = a.minMatchCharLength;\n return i(e, this.pattern, this.patternAlphabet, {\n location: s,\n distance: c,\n threshold: h,\n findAllMatches: l,\n minMatchCharLength: u\n });\n }\n }]) && r(t.prototype, n), s && r(t, s), e;\n }();\n\n e.exports = s;\n }, function (e, t) {\n var n = /[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g;\n\n e.exports = function (e, t) {\n var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : / +/g,\n o = new RegExp(t.replace(n, \"\\\\$&\").replace(r, \"|\")),\n i = e.match(o),\n a = !!i,\n s = [];\n if (a) for (var c = 0, h = i.length; c < h; c += 1) {\n var l = i[c];\n s.push([e.indexOf(l), l.length - 1]);\n }\n return {\n score: a ? .5 : 1,\n isMatch: a,\n matchedIndices: s\n };\n };\n }, function (e, t, n) {\n var r = n(5),\n o = n(6);\n\n e.exports = function (e, t, n, i) {\n for (var a = i.location, s = void 0 === a ? 0 : a, c = i.distance, h = void 0 === c ? 100 : c, l = i.threshold, u = void 0 === l ? .6 : l, f = i.findAllMatches, d = void 0 !== f && f, v = i.minMatchCharLength, p = void 0 === v ? 1 : v, g = s, y = e.length, m = u, k = e.indexOf(t, g), S = t.length, x = [], b = 0; b < y; b += 1) {\n x[b] = 0;\n }\n\n if (-1 !== k) {\n var M = r(t, {\n errors: 0,\n currentLocation: k,\n expectedLocation: g,\n distance: h\n });\n\n if (m = Math.min(M, m), -1 !== (k = e.lastIndexOf(t, g + S))) {\n var _ = r(t, {\n errors: 0,\n currentLocation: k,\n expectedLocation: g,\n distance: h\n });\n\n m = Math.min(_, m);\n }\n }\n\n k = -1;\n\n for (var L = [], w = 1, A = S + y, C = 1 << (S <= 31 ? S - 1 : 30), I = 0; I < S; I += 1) {\n for (var O = 0, j = A; O < j;) {\n r(t, {\n errors: I,\n currentLocation: g + j,\n expectedLocation: g,\n distance: h\n }) <= m ? O = j : A = j, j = Math.floor((A - O) / 2 + O);\n }\n\n A = j;\n var P = Math.max(1, g - j + 1),\n F = d ? y : Math.min(g + j, y) + S,\n T = Array(F + 2);\n T[F + 1] = (1 << I) - 1;\n\n for (var z = F; z >= P; z -= 1) {\n var E = z - 1,\n K = n[e.charAt(E)];\n\n if (K && (x[E] = 1), T[z] = (T[z + 1] << 1 | 1) & K, 0 !== I && (T[z] |= (L[z + 1] | L[z]) << 1 | 1 | L[z + 1]), T[z] & C && (w = r(t, {\n errors: I,\n currentLocation: E,\n expectedLocation: g,\n distance: h\n })) <= m) {\n if (m = w, (k = E) <= g) break;\n P = Math.max(1, 2 * g - k);\n }\n }\n\n if (r(t, {\n errors: I + 1,\n currentLocation: g,\n expectedLocation: g,\n distance: h\n }) > m) break;\n L = T;\n }\n\n return {\n isMatch: k >= 0,\n score: 0 === w ? .001 : w,\n matchedIndices: o(x, p)\n };\n };\n }, function (e, t) {\n e.exports = function (e, t) {\n var n = t.errors,\n r = void 0 === n ? 0 : n,\n o = t.currentLocation,\n i = void 0 === o ? 0 : o,\n a = t.expectedLocation,\n s = void 0 === a ? 0 : a,\n c = t.distance,\n h = void 0 === c ? 100 : c,\n l = r / e.length,\n u = Math.abs(s - i);\n return h ? l + u / h : u ? 1 : l;\n };\n }, function (e, t) {\n e.exports = function () {\n for (var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, n = [], r = -1, o = -1, i = 0, a = e.length; i < a; i += 1) {\n var s = e[i];\n s && -1 === r ? r = i : s || -1 === r || ((o = i - 1) - r + 1 >= t && n.push([r, o]), r = -1);\n }\n\n return e[i - 1] && i - r >= t && n.push([r, i - 1]), n;\n };\n }, function (e, t) {\n e.exports = function (e) {\n for (var t = {}, n = e.length, r = 0; r < n; r += 1) {\n t[e.charAt(r)] = 0;\n }\n\n for (var o = 0; o < n; o += 1) {\n t[e.charAt(o)] |= 1 << n - o - 1;\n }\n\n return t;\n };\n }, function (e, t, n) {\n var r = n(0);\n\n e.exports = function (e, t) {\n return function e(t, n, o) {\n if (n) {\n var i = n.indexOf(\".\"),\n a = n,\n s = null;\n -1 !== i && (a = n.slice(0, i), s = n.slice(i + 1));\n var c = t[a];\n if (null != c) if (s || \"string\" != typeof c && \"number\" != typeof c) {\n if (r(c)) for (var h = 0, l = c.length; h < l; h += 1) {\n e(c[h], s, o);\n } else s && e(c, s, o);\n } else o.push(c.toString());\n } else o.push(t);\n\n return o;\n }(e, t, []);\n };\n }]);\n });\n /***/\n },\n\n /***/\n 857: function _(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n \"use strict\"; // ESM COMPAT FLAG\n\n __webpack_require__.r(__webpack_exports__); // EXPORTS\n\n\n __webpack_require__.d(__webpack_exports__, {\n \"__DO_NOT_USE__ActionTypes\": function __DO_NOT_USE__ActionTypes() {\n return (\n /* binding */\n ActionTypes\n );\n },\n \"applyMiddleware\": function applyMiddleware() {\n return (\n /* binding */\n _applyMiddleware\n );\n },\n \"bindActionCreators\": function bindActionCreators() {\n return (\n /* binding */\n _bindActionCreators\n );\n },\n \"combineReducers\": function combineReducers() {\n return (\n /* binding */\n _combineReducers\n );\n },\n \"compose\": function compose() {\n return (\n /* binding */\n _compose\n );\n },\n \"createStore\": function createStore() {\n return (\n /* binding */\n _createStore\n );\n }\n });\n\n ; // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n ; // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n }\n\n ; // CONCATENATED MODULE: ./node_modules/redux/es/redux.js\n\n /**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\n\n function formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n } // Inlined version of the `symbol-observable` polyfill\n\n\n var $$observable = function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n }();\n /**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\n\n\n var randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n };\n\n var ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n };\n /**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\n\n function isPlainObject(obj) {\n if (_typeof(obj) !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n } // Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\n\n\n function miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n\n var type = _typeof(val);\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n }\n\n function ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n }\n\n function isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n }\n\n function isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n }\n\n function kindOf(val) {\n var typeOfVal = _typeof(val);\n\n if (false) {}\n\n return typeOfVal;\n }\n /**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\n\n function _createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(true ? formatProdErrorMessage(0) : 0);\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(true ? formatProdErrorMessage(1) : 0);\n }\n\n return enhancer(_createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(true ? formatProdErrorMessage(2) : 0);\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(true ? formatProdErrorMessage(3) : 0);\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(true ? formatProdErrorMessage(4) : 0);\n }\n\n if (isDispatching) {\n throw new Error(true ? formatProdErrorMessage(5) : 0);\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(true ? formatProdErrorMessage(6) : 0);\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(true ? formatProdErrorMessage(7) : 0);\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(true ? formatProdErrorMessage(8) : 0);\n }\n\n if (isDispatching) {\n throw new Error(true ? formatProdErrorMessage(9) : 0);\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(true ? formatProdErrorMessage(10) : 0);\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (_typeof(observer) !== 'object' || observer === null) {\n throw new Error(true ? formatProdErrorMessage(11) : 0);\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n }\n /**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\n\n\n function warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n }\n\n function getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n }\n\n function assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(true ? formatProdErrorMessage(12) : 0);\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(true ? formatProdErrorMessage(13) : 0);\n }\n });\n }\n /**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\n function _combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (false) {}\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (false) {}\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (false) {\n var warningMessage;\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(true ? formatProdErrorMessage(14) : 0);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n }\n\n function bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n }\n /**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\n function _bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (_typeof(actionCreators) !== 'object' || actionCreators === null) {\n throw new Error(true ? formatProdErrorMessage(16) : 0);\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n }\n /**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\n\n function _compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n }\n /**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\n\n function _applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(true ? formatProdErrorMessage(15) : 0);\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = _compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread2(_objectSpread2({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n }\n /*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\n\n function isCrushed() {}\n\n if (false) {}\n /***/\n\n }\n /******/\n\n };\n /************************************************************************/\n\n /******/\n // The module cache\n\n /******/\n\n var __webpack_module_cache__ = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n // Check if module is in cache\n\n /******/\n var cachedModule = __webpack_module_cache__[moduleId];\n /******/\n\n if (cachedModule !== undefined) {\n /******/\n return cachedModule.exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = __webpack_module_cache__[moduleId] = {\n /******/\n // no module.id needed\n\n /******/\n // no module.loaded needed\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n\n return module.exports;\n /******/\n }\n /******/\n\n /************************************************************************/\n\n /******/\n\n /* webpack/runtime/define property getters */\n\n /******/\n\n\n !function () {\n /******/\n // define getter functions for harmony exports\n\n /******/\n __webpack_require__.d = function (exports, definition) {\n /******/\n for (var key in definition) {\n /******/\n if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n /******/\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: definition[key]\n });\n /******/\n }\n /******/\n\n }\n /******/\n\n };\n /******/\n\n }();\n /******/\n\n /******/\n\n /* webpack/runtime/hasOwnProperty shorthand */\n\n /******/\n\n !function () {\n /******/\n __webpack_require__.o = function (obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n };\n /******/\n\n }();\n /******/\n\n /******/\n\n /* webpack/runtime/make namespace object */\n\n /******/\n\n !function () {\n /******/\n // define __esModule on exports\n\n /******/\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n }();\n /******/\n\n /************************************************************************/\n\n /******/\n\n /******/\n // startup\n\n /******/\n // Load entry module and return exports\n\n /******/\n // This entry module is referenced by other modules so it can't be inlined\n\n /******/\n\n var __webpack_exports__ = __webpack_require__(373);\n /******/\n\n\n __webpack_exports__ = __webpack_exports__[\"default\"];\n /******/\n\n /******/\n\n return __webpack_exports__;\n /******/\n }()\n );\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function rhex(n) {\n var s = \"\",\n j;\n\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n });\n });\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\n\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\n\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n\n var id = 0;\n\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n\n return object[methodName].apply(object, messages);\n }\n }\n\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\n };\n\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n\n submitButtonsByForm.delete(form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","/* 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\nrequire(\"trix\")\nrequire(\"@rails/actiontext\")\nrequire(\"choices.js\")\n\nconst Choices = require('choices.js')\n\n$(document).ready(function() {\n const elements = document.querySelectorAll('.js-choice');\n [...elements].map(element => (\n new Choices(element, {\n placeholder: true,\n itemSelectText: 'Select'\n })\n ))\n})\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nTrix 1.3.1\nCopyright © 2020 Basecamp, LLC\nhttp://trix-editor.org/\n */\n(function () {}).call(this), function () {\n var t;\n null == window.Set && (window.Set = t = function () {\n function t() {\n this.clear();\n }\n\n return t.prototype.clear = function () {\n return this.values = [];\n }, t.prototype.has = function (t) {\n return -1 !== this.values.indexOf(t);\n }, t.prototype.add = function (t) {\n return this.has(t) || this.values.push(t), this;\n }, t.prototype[\"delete\"] = function (t) {\n var e;\n return -1 === (e = this.values.indexOf(t)) ? !1 : (this.values.splice(e, 1), !0);\n }, t.prototype.forEach = function () {\n var t;\n return (t = this.values).forEach.apply(t, arguments);\n }, t;\n }());\n}.call(this), function (t) {\n function e() {}\n\n function n(t, e) {\n return function () {\n t.apply(e, arguments);\n };\n }\n\n function i(t) {\n if (\"object\" != _typeof(this)) throw new TypeError(\"Promises must be constructed via new\");\n if (\"function\" != typeof t) throw new TypeError(\"not a function\");\n this._state = 0, this._handled = !1, this._value = void 0, this._deferreds = [], c(t, this);\n }\n\n function o(t, e) {\n for (; 3 === t._state;) {\n t = t._value;\n }\n\n return 0 === t._state ? void t._deferreds.push(e) : (t._handled = !0, void h(function () {\n var n = 1 === t._state ? e.onFulfilled : e.onRejected;\n if (null === n) return void (1 === t._state ? r : s)(e.promise, t._value);\n var i;\n\n try {\n i = n(t._value);\n } catch (o) {\n return void s(e.promise, o);\n }\n\n r(e.promise, i);\n }));\n }\n\n function r(t, e) {\n try {\n if (e === t) throw new TypeError(\"A promise cannot be resolved with itself.\");\n\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) {\n var o = e.then;\n if (e instanceof i) return t._state = 3, t._value = e, void a(t);\n if (\"function\" == typeof o) return void c(n(o, e), t);\n }\n\n t._state = 1, t._value = e, a(t);\n } catch (r) {\n s(t, r);\n }\n }\n\n function s(t, e) {\n t._state = 2, t._value = e, a(t);\n }\n\n function a(t) {\n 2 === t._state && 0 === t._deferreds.length && setTimeout(function () {\n t._handled || p(t._value);\n }, 1);\n\n for (var e = 0, n = t._deferreds.length; n > e; e++) {\n o(t, t._deferreds[e]);\n }\n\n t._deferreds = null;\n }\n\n function u(t, e, n) {\n this.onFulfilled = \"function\" == typeof t ? t : null, this.onRejected = \"function\" == typeof e ? e : null, this.promise = n;\n }\n\n function c(t, e) {\n var n = !1;\n\n try {\n t(function (t) {\n n || (n = !0, r(e, t));\n }, function (t) {\n n || (n = !0, s(e, t));\n });\n } catch (i) {\n if (n) return;\n n = !0, s(e, i);\n }\n }\n\n var l = setTimeout,\n h = \"function\" == typeof setImmediate && setImmediate || function (t) {\n l(t, 1);\n },\n p = function p(t) {\n \"undefined\" != typeof console && console && console.warn(\"Possible Unhandled Promise Rejection:\", t);\n };\n\n i.prototype[\"catch\"] = function (t) {\n return this.then(null, t);\n }, i.prototype.then = function (t, n) {\n var r = new i(e);\n return o(this, new u(t, n, r)), r;\n }, i.all = function (t) {\n var e = Array.prototype.slice.call(t);\n return new i(function (t, n) {\n function i(r, s) {\n try {\n if (s && (\"object\" == _typeof(s) || \"function\" == typeof s)) {\n var a = s.then;\n if (\"function\" == typeof a) return void a.call(s, function (t) {\n i(r, t);\n }, n);\n }\n\n e[r] = s, 0 === --o && t(e);\n } catch (u) {\n n(u);\n }\n }\n\n if (0 === e.length) return t([]);\n\n for (var o = e.length, r = 0; r < e.length; r++) {\n i(r, e[r]);\n }\n });\n }, i.resolve = function (t) {\n return t && \"object\" == _typeof(t) && t.constructor === i ? t : new i(function (e) {\n e(t);\n });\n }, i.reject = function (t) {\n return new i(function (e, n) {\n n(t);\n });\n }, i.race = function (t) {\n return new i(function (e, n) {\n for (var i = 0, o = t.length; o > i; i++) {\n t[i].then(e, n);\n }\n });\n }, i._setImmediateFn = function (t) {\n h = t;\n }, i._setUnhandledRejectionFn = function (t) {\n p = t;\n }, \"undefined\" != typeof module && module.exports ? module.exports = i : t.Promise || (t.Promise = i);\n}(this), function () {\n var t = \"object\" == _typeof(window.customElements),\n e = \"function\" == typeof document.registerElement,\n n = t || e;\n\n n || (\n /**\n * @license\n * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n \"undefined\" == typeof WeakMap && !function () {\n var t = Object.defineProperty,\n e = Date.now() % 1e9,\n n = function n() {\n this.name = \"__st\" + (1e9 * Math.random() >>> 0) + (e++ + \"__\");\n };\n\n n.prototype = {\n set: function set(e, n) {\n var i = e[this.name];\n return i && i[0] === e ? i[1] = n : t(e, this.name, {\n value: [e, n],\n writable: !0\n }), this;\n },\n get: function get(t) {\n var e;\n return (e = t[this.name]) && e[0] === t ? e[1] : void 0;\n },\n \"delete\": function _delete(t) {\n var e = t[this.name];\n return e && e[0] === t ? (e[0] = e[1] = void 0, !0) : !1;\n },\n has: function has(t) {\n var e = t[this.name];\n return e ? e[0] === t : !1;\n }\n }, window.WeakMap = n;\n }(), function (t) {\n function e(t) {\n A.push(t), b || (b = !0, g(i));\n }\n\n function n(t) {\n return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(t) || t;\n }\n\n function i() {\n b = !1;\n var t = A;\n A = [], t.sort(function (t, e) {\n return t.uid_ - e.uid_;\n });\n var e = !1;\n t.forEach(function (t) {\n var n = t.takeRecords();\n o(t), n.length && (t.callback_(n, t), e = !0);\n }), e && i();\n }\n\n function o(t) {\n t.nodes_.forEach(function (e) {\n var n = m.get(e);\n n && n.forEach(function (e) {\n e.observer === t && e.removeTransientObservers();\n });\n });\n }\n\n function r(t, e) {\n for (var n = t; n; n = n.parentNode) {\n var i = m.get(n);\n if (i) for (var o = 0; o < i.length; o++) {\n var r = i[o],\n s = r.options;\n\n if (n === t || s.subtree) {\n var a = e(s);\n a && r.enqueue(a);\n }\n }\n }\n }\n\n function s(t) {\n this.callback_ = t, this.nodes_ = [], this.records_ = [], this.uid_ = ++C;\n }\n\n function a(t, e) {\n this.type = t, this.target = e, this.addedNodes = [], this.removedNodes = [], this.previousSibling = null, this.nextSibling = null, this.attributeName = null, this.attributeNamespace = null, this.oldValue = null;\n }\n\n function u(t) {\n var e = new a(t.type, t.target);\n return e.addedNodes = t.addedNodes.slice(), e.removedNodes = t.removedNodes.slice(), e.previousSibling = t.previousSibling, e.nextSibling = t.nextSibling, e.attributeName = t.attributeName, e.attributeNamespace = t.attributeNamespace, e.oldValue = t.oldValue, e;\n }\n\n function c(t, e) {\n return x = new a(t, e);\n }\n\n function l(t) {\n return w ? w : (w = u(x), w.oldValue = t, w);\n }\n\n function h() {\n x = w = void 0;\n }\n\n function p(t) {\n return t === w || t === x;\n }\n\n function d(t, e) {\n return t === e ? t : w && p(t) ? w : null;\n }\n\n function f(t, e, n) {\n this.observer = t, this.target = e, this.options = n, this.transientObservedNodes = [];\n }\n\n if (!t.JsMutationObserver) {\n var g,\n m = new WeakMap();\n if (/Trident|Edge/.test(navigator.userAgent)) g = setTimeout;else if (window.setImmediate) g = window.setImmediate;else {\n var v = [],\n y = String(Math.random());\n window.addEventListener(\"message\", function (t) {\n if (t.data === y) {\n var e = v;\n v = [], e.forEach(function (t) {\n t();\n });\n }\n }), g = function g(t) {\n v.push(t), window.postMessage(y, \"*\");\n };\n }\n var b = !1,\n A = [],\n C = 0;\n s.prototype = {\n observe: function observe(t, e) {\n if (t = n(t), !e.childList && !e.attributes && !e.characterData || e.attributeOldValue && !e.attributes || e.attributeFilter && e.attributeFilter.length && !e.attributes || e.characterDataOldValue && !e.characterData) throw new SyntaxError();\n var i = m.get(t);\n i || m.set(t, i = []);\n\n for (var o, r = 0; r < i.length; r++) {\n if (i[r].observer === this) {\n o = i[r], o.removeListeners(), o.options = e;\n break;\n }\n }\n\n o || (o = new f(this, t, e), i.push(o), this.nodes_.push(t)), o.addListeners();\n },\n disconnect: function disconnect() {\n this.nodes_.forEach(function (t) {\n for (var e = m.get(t), n = 0; n < e.length; n++) {\n var i = e[n];\n\n if (i.observer === this) {\n i.removeListeners(), e.splice(n, 1);\n break;\n }\n }\n }, this), this.records_ = [];\n },\n takeRecords: function takeRecords() {\n var t = this.records_;\n return this.records_ = [], t;\n }\n };\n var x, w;\n f.prototype = {\n enqueue: function enqueue(t) {\n var n = this.observer.records_,\n i = n.length;\n\n if (n.length > 0) {\n var o = n[i - 1],\n r = d(o, t);\n if (r) return void (n[i - 1] = r);\n } else e(this.observer);\n\n n[i] = t;\n },\n addListeners: function addListeners() {\n this.addListeners_(this.target);\n },\n addListeners_: function addListeners_(t) {\n var e = this.options;\n e.attributes && t.addEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.addEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.addEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.addEventListener(\"DOMNodeRemoved\", this, !0);\n },\n removeListeners: function removeListeners() {\n this.removeListeners_(this.target);\n },\n removeListeners_: function removeListeners_(t) {\n var e = this.options;\n e.attributes && t.removeEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.removeEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.removeEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.removeEventListener(\"DOMNodeRemoved\", this, !0);\n },\n addTransientObserver: function addTransientObserver(t) {\n if (t !== this.target) {\n this.addListeners_(t), this.transientObservedNodes.push(t);\n var e = m.get(t);\n e || m.set(t, e = []), e.push(this);\n }\n },\n removeTransientObservers: function removeTransientObservers() {\n var t = this.transientObservedNodes;\n this.transientObservedNodes = [], t.forEach(function (t) {\n this.removeListeners_(t);\n\n for (var e = m.get(t), n = 0; n < e.length; n++) {\n if (e[n] === this) {\n e.splice(n, 1);\n break;\n }\n }\n }, this);\n },\n handleEvent: function handleEvent(t) {\n switch (t.stopImmediatePropagation(), t.type) {\n case \"DOMAttrModified\":\n var e = t.attrName,\n n = t.relatedNode.namespaceURI,\n i = t.target,\n o = new c(\"attributes\", i);\n o.attributeName = e, o.attributeNamespace = n;\n var s = t.attrChange === MutationEvent.ADDITION ? null : t.prevValue;\n r(i, function (t) {\n return !t.attributes || t.attributeFilter && t.attributeFilter.length && -1 === t.attributeFilter.indexOf(e) && -1 === t.attributeFilter.indexOf(n) ? void 0 : t.attributeOldValue ? l(s) : o;\n });\n break;\n\n case \"DOMCharacterDataModified\":\n var i = t.target,\n o = c(\"characterData\", i),\n s = t.prevValue;\n r(i, function (t) {\n return t.characterData ? t.characterDataOldValue ? l(s) : o : void 0;\n });\n break;\n\n case \"DOMNodeRemoved\":\n this.addTransientObserver(t.target);\n\n case \"DOMNodeInserted\":\n var a,\n u,\n p = t.target;\n \"DOMNodeInserted\" === t.type ? (a = [p], u = []) : (a = [], u = [p]);\n var d = p.previousSibling,\n f = p.nextSibling,\n o = c(\"childList\", t.target.parentNode);\n o.addedNodes = a, o.removedNodes = u, o.previousSibling = d, o.nextSibling = f, r(t.relatedNode, function (t) {\n return t.childList ? o : void 0;\n });\n }\n\n h();\n }\n }, t.JsMutationObserver = s, t.MutationObserver || (t.MutationObserver = s, s._isPolyfilled = !0);\n }\n }(self), function () {\n \"use strict\";\n\n if (!window.performance || !window.performance.now) {\n var t = Date.now();\n window.performance = {\n now: function now() {\n return Date.now() - t;\n }\n };\n }\n\n window.requestAnimationFrame || (window.requestAnimationFrame = function () {\n var t = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n return t ? function (e) {\n return t(function () {\n e(performance.now());\n });\n } : function (t) {\n return window.setTimeout(t, 1e3 / 60);\n };\n }()), window.cancelAnimationFrame || (window.cancelAnimationFrame = function () {\n return window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function (t) {\n clearTimeout(t);\n };\n }());\n\n var e = function () {\n var t = document.createEvent(\"Event\");\n return t.initEvent(\"foo\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }();\n\n if (!e) {\n var n = Event.prototype.preventDefault;\n\n Event.prototype.preventDefault = function () {\n this.cancelable && (n.call(this), Object.defineProperty(this, \"defaultPrevented\", {\n get: function get() {\n return !0;\n },\n configurable: !0\n }));\n };\n }\n\n var i = /Trident/.test(navigator.userAgent);\n\n if ((!window.CustomEvent || i && \"function\" != typeof window.CustomEvent) && (window.CustomEvent = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"CustomEvent\");\n return n.initCustomEvent(t, Boolean(e.bubbles), Boolean(e.cancelable), e.detail), n;\n }, window.CustomEvent.prototype = window.Event.prototype), !window.Event || i && \"function\" != typeof window.Event) {\n var o = window.Event;\n window.Event = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"Event\");\n return n.initEvent(t, Boolean(e.bubbles), Boolean(e.cancelable)), n;\n }, window.Event.prototype = o.prototype;\n }\n }(window.WebComponents), window.CustomElements = window.CustomElements || {\n flags: {}\n }, function (t) {\n var e = t.flags,\n n = [],\n i = function i(t) {\n n.push(t);\n },\n o = function o() {\n n.forEach(function (e) {\n e(t);\n });\n };\n\n t.addModule = i, t.initializeModules = o, t.hasNative = Boolean(document.registerElement), t.isIE = /Trident/.test(navigator.userAgent), t.useNative = !e.register && t.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || window.HTMLImports.useNative);\n }(window.CustomElements), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n n(t, function (t) {\n return e(t) ? !0 : void i(t, e);\n }), i(t, e);\n }\n\n function n(t, e, i) {\n var o = t.firstElementChild;\n if (!o) for (o = t.firstChild; o && o.nodeType !== Node.ELEMENT_NODE;) {\n o = o.nextSibling;\n }\n\n for (; o;) {\n e(o, i) !== !0 && n(o, e, i), o = o.nextElementSibling;\n }\n\n return null;\n }\n\n function i(t, n) {\n for (var i = t.shadowRoot; i;) {\n e(i, n), i = i.olderShadowRoot;\n }\n }\n\n function o(t, e) {\n r(t, e, []);\n }\n\n function r(t, e, n) {\n if (t = window.wrap(t), !(n.indexOf(t) >= 0)) {\n n.push(t);\n\n for (var i, o = t.querySelectorAll(\"link[rel=\" + s + \"]\"), a = 0, u = o.length; u > a && (i = o[a]); a++) {\n i.import && r(i.import, e, n);\n }\n\n e(t);\n }\n }\n\n var s = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : \"none\";\n t.forDocumentTree = o, t.forSubtree = e;\n }), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n return n(t, e) || i(t, e);\n }\n\n function n(e, n) {\n return t.upgrade(e, n) ? !0 : void (n && s(e));\n }\n\n function i(t, e) {\n b(t, function (t) {\n return n(t, e) ? !0 : void 0;\n });\n }\n\n function o(t) {\n w.push(t), x || (x = !0, setTimeout(r));\n }\n\n function r() {\n x = !1;\n\n for (var t, e = w, n = 0, i = e.length; i > n && (t = e[n]); n++) {\n t();\n }\n\n w = [];\n }\n\n function s(t) {\n C ? o(function () {\n a(t);\n }) : a(t);\n }\n\n function a(t) {\n t.__upgraded__ && !t.__attached && (t.__attached = !0, t.attachedCallback && t.attachedCallback());\n }\n\n function u(t) {\n c(t), b(t, function (t) {\n c(t);\n });\n }\n\n function c(t) {\n C ? o(function () {\n l(t);\n }) : l(t);\n }\n\n function l(t) {\n t.__upgraded__ && t.__attached && (t.__attached = !1, t.detachedCallback && t.detachedCallback());\n }\n\n function h(t) {\n for (var e = t, n = window.wrap(document); e;) {\n if (e == n) return !0;\n e = e.parentNode || e.nodeType === Node.DOCUMENT_FRAGMENT_NODE && e.host;\n }\n }\n\n function p(t) {\n if (t.shadowRoot && !t.shadowRoot.__watched) {\n y.dom && console.log(\"watching shadow-root for: \", t.localName);\n\n for (var e = t.shadowRoot; e;) {\n g(e), e = e.olderShadowRoot;\n }\n }\n }\n\n function d(t, n) {\n if (y.dom) {\n var i = n[0];\n\n if (i && \"childList\" === i.type && i.addedNodes && i.addedNodes) {\n for (var o = i.addedNodes[0]; o && o !== document && !o.host;) {\n o = o.parentNode;\n }\n\n var r = o && (o.URL || o._URL || o.host && o.host.localName) || \"\";\n r = r.split(\"/?\").shift().split(\"/\").pop();\n }\n\n console.group(\"mutations (%d) [%s]\", n.length, r || \"\");\n }\n\n var s = h(t);\n n.forEach(function (t) {\n \"childList\" === t.type && (E(t.addedNodes, function (t) {\n t.localName && e(t, s);\n }), E(t.removedNodes, function (t) {\n t.localName && u(t);\n }));\n }), y.dom && console.groupEnd();\n }\n\n function f(t) {\n for (t = window.wrap(t), t || (t = window.wrap(document)); t.parentNode;) {\n t = t.parentNode;\n }\n\n var e = t.__observer;\n e && (d(t, e.takeRecords()), r());\n }\n\n function g(t) {\n if (!t.__observer) {\n var e = new MutationObserver(d.bind(this, t));\n e.observe(t, {\n childList: !0,\n subtree: !0\n }), t.__observer = e;\n }\n }\n\n function m(t) {\n t = window.wrap(t), y.dom && console.group(\"upgradeDocument: \", t.baseURI.split(\"/\").pop());\n var n = t === window.wrap(document);\n e(t, n), g(t), y.dom && console.groupEnd();\n }\n\n function v(t) {\n A(t, m);\n }\n\n var y = t.flags,\n b = t.forSubtree,\n A = t.forDocumentTree,\n C = window.MutationObserver._isPolyfilled && y[\"throttle-attached\"];\n t.hasPolyfillMutations = C, t.hasThrottledAttached = C;\n var x = !1,\n w = [],\n E = Array.prototype.forEach.call.bind(Array.prototype.forEach),\n S = Element.prototype.createShadowRoot;\n S && (Element.prototype.createShadowRoot = function () {\n var t = S.call(this);\n return window.CustomElements.watchShadow(this), t;\n }), t.watchShadow = p, t.upgradeDocumentTree = v, t.upgradeDocument = m, t.upgradeSubtree = i, t.upgradeAll = e, t.attached = s, t.takeRecords = f;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n if (\"template\" === e.localName && window.HTMLTemplateElement && HTMLTemplateElement.decorate && HTMLTemplateElement.decorate(e), !e.__upgraded__ && e.nodeType === Node.ELEMENT_NODE) {\n var o = e.getAttribute(\"is\"),\n r = t.getRegisteredDefinition(e.localName) || t.getRegisteredDefinition(o);\n if (r && (o && r.tag == e.localName || !o && !r.extends)) return n(e, r, i);\n }\n }\n\n function n(e, n, o) {\n return s.upgrade && console.group(\"upgrade:\", e.localName), n.is && e.setAttribute(\"is\", n.is), i(e, n), e.__upgraded__ = !0, r(e), o && t.attached(e), t.upgradeSubtree(e, o), s.upgrade && console.groupEnd(), e;\n }\n\n function i(t, e) {\n Object.__proto__ ? t.__proto__ = e.prototype : (o(t, e.prototype, e.native), t.__proto__ = e.prototype);\n }\n\n function o(t, e, n) {\n for (var i = {}, o = e; o !== n && o !== HTMLElement.prototype;) {\n for (var r, s = Object.getOwnPropertyNames(o), a = 0; r = s[a]; a++) {\n i[r] || (Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(o, r)), i[r] = 1);\n }\n\n o = Object.getPrototypeOf(o);\n }\n }\n\n function r(t) {\n t.createdCallback && t.createdCallback();\n }\n\n var s = t.flags;\n t.upgrade = e, t.upgradeWithDefinition = n, t.implementPrototype = i;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n var u = i || {};\n if (!e) throw new Error(\"document.registerElement: first argument `name` must not be empty\");\n if (e.indexOf(\"-\") < 0) throw new Error(\"document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '\" + String(e) + \"'.\");\n if (o(e)) throw new Error(\"Failed to execute 'registerElement' on 'Document': Registration failed for type '\" + String(e) + \"'. The type name is invalid.\");\n if (c(e)) throw new Error(\"DuplicateDefinitionError: a type with name '\" + String(e) + \"' is already registered\");\n return u.prototype || (u.prototype = Object.create(HTMLElement.prototype)), u.__name = e.toLowerCase(), u.extends && (u.extends = u.extends.toLowerCase()), u.lifecycle = u.lifecycle || {}, u.ancestry = r(u.extends), s(u), a(u), n(u.prototype), l(u.__name, u), u.ctor = h(u), u.ctor.prototype = u.prototype, u.prototype.constructor = u.ctor, t.ready && m(document), u.ctor;\n }\n\n function n(t) {\n if (!t.setAttribute._polyfilled) {\n var e = t.setAttribute;\n\n t.setAttribute = function (t, n) {\n i.call(this, t, n, e);\n };\n\n var n = t.removeAttribute;\n t.removeAttribute = function (t) {\n i.call(this, t, null, n);\n }, t.setAttribute._polyfilled = !0;\n }\n }\n\n function i(t, e, n) {\n t = t.toLowerCase();\n var i = this.getAttribute(t);\n n.apply(this, arguments);\n var o = this.getAttribute(t);\n this.attributeChangedCallback && o !== i && this.attributeChangedCallback(t, i, o);\n }\n\n function o(t) {\n for (var e = 0; e < C.length; e++) {\n if (t === C[e]) return !0;\n }\n }\n\n function r(t) {\n var e = c(t);\n return e ? r(e.extends).concat([e]) : [];\n }\n\n function s(t) {\n for (var e, n = t.extends, i = 0; e = t.ancestry[i]; i++) {\n n = e.is && e.tag;\n }\n\n t.tag = n || t.__name, n && (t.is = t.__name);\n }\n\n function a(t) {\n if (!Object.__proto__) {\n var e = HTMLElement.prototype;\n\n if (t.is) {\n var n = document.createElement(t.tag);\n e = Object.getPrototypeOf(n);\n }\n\n for (var i, o = t.prototype, r = !1; o;) {\n o == e && (r = !0), i = Object.getPrototypeOf(o), i && (o.__proto__ = i), o = i;\n }\n\n r || console.warn(t.tag + \" prototype not found in prototype chain for \" + t.is), t.native = e;\n }\n }\n\n function u(t) {\n return y(E(t.tag), t);\n }\n\n function c(t) {\n return t ? x[t.toLowerCase()] : void 0;\n }\n\n function l(t, e) {\n x[t] = e;\n }\n\n function h(t) {\n return function () {\n return u(t);\n };\n }\n\n function p(t, e, n) {\n return t === w ? d(e, n) : S(t, e);\n }\n\n function d(t, e) {\n t && (t = t.toLowerCase()), e && (e = e.toLowerCase());\n var n = c(e || t);\n\n if (n) {\n if (t == n.tag && e == n.is) return new n.ctor();\n if (!e && !n.is) return new n.ctor();\n }\n\n var i;\n return e ? (i = d(t), i.setAttribute(\"is\", e), i) : (i = E(t), t.indexOf(\"-\") >= 0 && b(i, HTMLElement), i);\n }\n\n function f(t, e) {\n var n = t[e];\n\n t[e] = function () {\n var t = n.apply(this, arguments);\n return v(t), t;\n };\n }\n\n var g,\n m = (t.isIE, t.upgradeDocumentTree),\n v = t.upgradeAll,\n y = t.upgradeWithDefinition,\n b = t.implementPrototype,\n A = t.useNative,\n C = [\"annotation-xml\", \"color-profile\", \"font-face\", \"font-face-src\", \"font-face-uri\", \"font-face-format\", \"font-face-name\", \"missing-glyph\"],\n x = {},\n w = \"http://www.w3.org/1999/xhtml\",\n E = document.createElement.bind(document),\n S = document.createElementNS.bind(document);\n g = Object.__proto__ || A ? function (t, e) {\n return t instanceof e;\n } : function (t, e) {\n if (t instanceof e) return !0;\n\n for (var n = t; n;) {\n if (n === e.prototype) return !0;\n n = n.__proto__;\n }\n\n return !1;\n }, f(Node.prototype, \"cloneNode\"), f(document, \"importNode\"), document.registerElement = e, document.createElement = d, document.createElementNS = p, t.registry = x, t.instanceof = g, t.reservedTagList = C, t.getRegisteredDefinition = c, document.register = document.registerElement;\n }), function (t) {\n function e() {\n r(window.wrap(document)), window.CustomElements.ready = !0;\n\n var t = window.requestAnimationFrame || function (t) {\n setTimeout(t, 16);\n };\n\n t(function () {\n setTimeout(function () {\n window.CustomElements.readyTime = Date.now(), window.HTMLImports && (window.CustomElements.elapsed = window.CustomElements.readyTime - window.HTMLImports.readyTime), document.dispatchEvent(new CustomEvent(\"WebComponentsReady\", {\n bubbles: !0\n }));\n });\n });\n }\n\n var n = t.useNative,\n i = t.initializeModules;\n\n if (t.isIE, n) {\n var o = function o() {};\n\n t.watchShadow = o, t.upgrade = o, t.upgradeAll = o, t.upgradeDocumentTree = o, t.upgradeSubtree = o, t.takeRecords = o, t.instanceof = function (t, e) {\n return t instanceof e;\n };\n } else i();\n\n var r = t.upgradeDocumentTree,\n s = t.upgradeDocument;\n if (window.wrap || (window.ShadowDOMPolyfill ? (window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded, window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded) : window.wrap = window.unwrap = function (t) {\n return t;\n }), window.HTMLImports && (window.HTMLImports.__importsParsingHook = function (t) {\n t.import && s(wrap(t.import));\n }), \"complete\" === document.readyState || t.flags.eager) e();else if (\"interactive\" !== document.readyState || window.attachEvent || window.HTMLImports && !window.HTMLImports.ready) {\n var a = window.HTMLImports && !window.HTMLImports.ready ? \"HTMLImportsLoaded\" : \"DOMContentLoaded\";\n window.addEventListener(a, e);\n } else e();\n }(window.CustomElements));\n}.call(this), function () {}.call(this), function () {\n var t = this;\n (function () {\n (function () {\n this.Trix = {\n VERSION: \"1.3.1\",\n ZERO_WIDTH_SPACE: \"\\uFEFF\",\n NON_BREAKING_SPACE: \"\\xa0\",\n OBJECT_REPLACEMENT_CHARACTER: \"\\uFFFC\",\n browser: {\n composesExistingText: /Android.*Chrome/.test(navigator.userAgent),\n forcesObjectResizing: /Trident.*rv:11/.test(navigator.userAgent),\n supportsInputEvents: function () {\n var t, e, n, i;\n if (\"undefined\" == typeof InputEvent) return !1;\n\n for (i = [\"data\", \"getTargetRanges\", \"inputType\"], t = 0, e = i.length; e > t; t++) {\n if (n = i[t], !(n in InputEvent.prototype)) return !1;\n }\n\n return !0;\n }()\n },\n config: {}\n };\n }).call(this);\n }).call(t);\n var e = t.Trix;\n (function () {\n (function () {\n e.BasicObject = function () {\n function t() {}\n\n var e, n, i;\n return t.proxyMethod = function (t) {\n var i, o, r, s, a;\n return r = n(t), i = r.name, s = r.toMethod, a = r.toProperty, o = r.optional, this.prototype[i] = function () {\n var t, n;\n return t = null != s ? o ? \"function\" == typeof this[s] ? this[s]() : void 0 : this[s]() : null != a ? this[a] : void 0, o ? (n = null != t ? t[i] : void 0, null != n ? e.call(n, t, arguments) : void 0) : (n = t[i], e.call(n, t, arguments));\n };\n }, n = function n(t) {\n var e, n;\n if (!(n = t.match(i))) throw new Error(\"can't parse @proxyMethod expression: \" + t);\n return e = {\n name: n[4]\n }, null != n[2] ? e.toMethod = n[1] : e.toProperty = n[1], null != n[3] && (e.optional = !0), e;\n }, e = Function.prototype.apply, i = /^(.+?)(\\(\\))?(\\?)?\\.(.+?)$/, t;\n }();\n }).call(this), function () {\n var t = function t(_t, e) {\n function i() {\n this.constructor = _t;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t.prototype = new i(), _t.__super__ = e.prototype, _t;\n },\n n = {}.hasOwnProperty;\n\n e.Object = function (n) {\n function i() {\n this.id = ++o;\n }\n\n var o;\n return t(i, n), o = 0, i.fromJSONString = function (t) {\n return this.fromJSON(JSON.parse(t));\n }, i.prototype.hasSameConstructorAs = function (t) {\n return this.constructor === (null != t ? t.constructor : void 0);\n }, i.prototype.isEqualTo = function (t) {\n return this === t;\n }, i.prototype.inspect = function () {\n var t, e, n;\n return t = function () {\n var t, i, o;\n i = null != (t = this.contentsForInspection()) ? t : {}, o = [];\n\n for (e in i) {\n n = i[e], o.push(e + \"=\" + n);\n }\n\n return o;\n }.call(this), \"#<\" + this.constructor.name + \":\" + this.id + (t.length ? \" \" + t.join(\", \") : \"\") + \">\";\n }, i.prototype.contentsForInspection = function () {}, i.prototype.toJSONString = function () {\n return JSON.stringify(this);\n }, i.prototype.toUTF16String = function () {\n return e.UTF16String.box(this);\n }, i.prototype.getCacheKey = function () {\n return this.id.toString();\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n e.extend = function (t) {\n var e, n;\n\n for (e in t) {\n n = t[e], this[e] = n;\n }\n\n return this;\n };\n }.call(this), function () {\n e.extend({\n defer: function defer(t) {\n return setTimeout(t, 1);\n }\n });\n }.call(this), function () {\n var t, n;\n e.extend({\n normalizeSpaces: function normalizeSpaces(t) {\n return t.replace(RegExp(\"\" + e.ZERO_WIDTH_SPACE, \"g\"), \"\").replace(RegExp(\"\" + e.NON_BREAKING_SPACE, \"g\"), \" \");\n },\n normalizeNewlines: function normalizeNewlines(t) {\n return t.replace(/\\r\\n/g, \"\\n\");\n },\n breakableWhitespacePattern: RegExp(\"[^\\\\S\" + e.NON_BREAKING_SPACE + \"]\"),\n squishBreakableWhitespace: function squishBreakableWhitespace(t) {\n return t.replace(RegExp(\"\" + e.breakableWhitespacePattern.source, \"g\"), \" \").replace(/\\ {2,}/g, \" \");\n },\n summarizeStringChange: function summarizeStringChange(t, i) {\n var o, r, s, a;\n return t = e.UTF16String.box(t), i = e.UTF16String.box(i), i.length < t.length ? (r = n(t, i), a = r[0], o = r[1]) : (s = n(i, t), o = s[0], a = s[1]), {\n added: o,\n removed: a\n };\n }\n }), n = function n(_n, i) {\n var o, r, s, a, u;\n return _n.isEqualTo(i) ? [\"\", \"\"] : (r = t(_n, i), a = r.utf16String.length, s = a ? (u = r.offset, r, o = _n.codepoints.slice(0, u).concat(_n.codepoints.slice(u + a)), t(i, e.UTF16String.fromCodepoints(o))) : t(i, _n), [r.utf16String.toString(), s.utf16String.toString()]);\n }, t = function t(_t2, e) {\n var n, i, o;\n\n for (n = 0, i = _t2.length, o = e.length; i > n && _t2.charAt(n).isEqualTo(e.charAt(n));) {\n n++;\n }\n\n for (; i > n + 1 && _t2.charAt(i - 1).isEqualTo(e.charAt(o - 1));) {\n i--, o--;\n }\n\n return {\n utf16String: _t2.slice(n, i),\n offset: n\n };\n };\n }.call(this), function () {\n e.extend({\n copyObject: function copyObject(t) {\n var e, n, i;\n null == t && (t = {}), n = {};\n\n for (e in t) {\n i = t[e], n[e] = i;\n }\n\n return n;\n },\n objectsAreEqual: function objectsAreEqual(t, e) {\n var n, i;\n if (null == t && (t = {}), null == e && (e = {}), Object.keys(t).length !== Object.keys(e).length) return !1;\n\n for (n in t) {\n if (i = t[n], i !== e[n]) return !1;\n }\n\n return !0;\n }\n });\n }.call(this), function () {\n var t = [].slice;\n e.extend({\n arraysAreEqual: function arraysAreEqual(t, e) {\n var n, i, o, r;\n if (null == t && (t = []), null == e && (e = []), t.length !== e.length) return !1;\n\n for (i = n = 0, o = t.length; o > n; i = ++n) {\n if (r = t[i], r !== e[i]) return !1;\n }\n\n return !0;\n },\n arrayStartsWith: function arrayStartsWith(t, n) {\n return null == t && (t = []), null == n && (n = []), e.arraysAreEqual(t.slice(0, n.length), n);\n },\n spliceArray: function spliceArray() {\n var e, n, i;\n return n = arguments[0], e = 2 <= arguments.length ? t.call(arguments, 1) : [], i = n.slice(0), i.splice.apply(i, e), i;\n },\n summarizeArrayChange: function summarizeArrayChange(t, e) {\n var n, i, o, r, s, a, u, c, l, h, p;\n\n for (null == t && (t = []), null == e && (e = []), n = [], h = [], o = new Set(), r = 0, u = t.length; u > r; r++) {\n p = t[r], o.add(p);\n }\n\n for (i = new Set(), s = 0, c = e.length; c > s; s++) {\n p = e[s], i.add(p), o.has(p) || n.push(p);\n }\n\n for (a = 0, l = t.length; l > a; a++) {\n p = t[a], i.has(p) || h.push(p);\n }\n\n return {\n added: n,\n removed: h\n };\n }\n });\n }.call(this), function () {\n var t, n, i, o;\n t = null, n = null, o = null, i = null, e.extend({\n getAllAttributeNames: function getAllAttributeNames() {\n return null != t ? t : t = e.getTextAttributeNames().concat(e.getBlockAttributeNames());\n },\n getBlockConfig: function getBlockConfig(t) {\n return e.config.blockAttributes[t];\n },\n getBlockAttributeNames: function getBlockAttributeNames() {\n return null != n ? n : n = Object.keys(e.config.blockAttributes);\n },\n getTextConfig: function getTextConfig(t) {\n return e.config.textAttributes[t];\n },\n getTextAttributeNames: function getTextAttributeNames() {\n return null != o ? o : o = Object.keys(e.config.textAttributes);\n },\n getListAttributeNames: function getListAttributeNames() {\n var t, n;\n return null != i ? i : i = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n\n for (t in i) {\n n = i[t].listAttribute, null != n && o.push(n);\n }\n\n return o;\n }();\n }\n });\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = document.documentElement, n = null != (i = null != (o = null != (r = t.matchesSelector) ? r : t.webkitMatchesSelector) ? o : t.msMatchesSelector) ? i : t.mozMatchesSelector, e.extend({\n handleEvent: function handleEvent(n, i) {\n var o, r, _s, a, u, c, l, h, p, d, f, g;\n\n return h = null != i ? i : {}, c = h.onElement, u = h.matchingSelector, g = h.withCallback, a = h.inPhase, l = h.preventDefault, d = h.times, r = null != c ? c : t, p = u, o = g, f = \"capturing\" === a, _s = function s(t) {\n var n;\n return null != d && 0 === --d && _s.destroy(), n = e.findClosestElementFromNode(t.target, {\n matchingSelector: p\n }), null != n && (null != g && g.call(n, t, n), l) ? t.preventDefault() : void 0;\n }, _s.destroy = function () {\n return r.removeEventListener(n, _s, f);\n }, r.addEventListener(n, _s, f), _s;\n },\n handleEventOnce: function handleEventOnce(t, n) {\n return null == n && (n = {}), n.times = 1, e.handleEvent(t, n);\n },\n triggerEvent: function triggerEvent(n, i) {\n var o, r, s, a, u, c, l;\n return l = null != i ? i : {}, c = l.onElement, r = l.bubbles, s = l.cancelable, o = l.attributes, a = null != c ? c : t, r = r !== !1, s = s !== !1, u = document.createEvent(\"Events\"), u.initEvent(n, r, s), null != o && e.extend.call(u, o), a.dispatchEvent(u);\n },\n elementMatchesSelector: function elementMatchesSelector(t, e) {\n return 1 === (null != t ? t.nodeType : void 0) ? n.call(t, e) : void 0;\n },\n findClosestElementFromNode: function findClosestElementFromNode(t, n) {\n var i, o, r;\n\n for (o = null != n ? n : {}, i = o.matchingSelector, r = o.untilNode; null != t && t.nodeType !== Node.ELEMENT_NODE;) {\n t = t.parentNode;\n }\n\n if (null != t) {\n if (null == i) return t;\n if (t.closest && null == r) return t.closest(i);\n\n for (; t && t !== r;) {\n if (e.elementMatchesSelector(t, i)) return t;\n t = t.parentNode;\n }\n }\n },\n findInnerElement: function findInnerElement(t) {\n for (; null != t ? t.firstElementChild : void 0;) {\n t = t.firstElementChild;\n }\n\n return t;\n },\n innerElementIsActive: function innerElementIsActive(t) {\n return document.activeElement !== t && e.elementContainsNode(t, document.activeElement);\n },\n elementContainsNode: function elementContainsNode(t, e) {\n if (t && e) for (; e;) {\n if (e === t) return !0;\n e = e.parentNode;\n }\n },\n findNodeFromContainerAndOffset: function findNodeFromContainerAndOffset(t, e) {\n var n;\n if (t) return t.nodeType === Node.TEXT_NODE ? t : 0 === e ? null != (n = t.firstChild) ? n : t : t.childNodes.item(e - 1);\n },\n findElementFromContainerAndOffset: function findElementFromContainerAndOffset(t, n) {\n var i;\n return i = e.findNodeFromContainerAndOffset(t, n), e.findClosestElementFromNode(i);\n },\n findChildIndexOfNode: function findChildIndexOfNode(t) {\n var e;\n\n if (null != t ? t.parentNode : void 0) {\n for (e = 0; t = t.previousSibling;) {\n e++;\n }\n\n return e;\n }\n },\n removeNode: function removeNode(t) {\n var e;\n return null != t && null != (e = t.parentNode) ? e.removeChild(t) : void 0;\n },\n walkTree: function walkTree(t, e) {\n var n, i, o, r, s;\n return o = null != e ? e : {}, i = o.onlyNodesOfType, r = o.usingFilter, n = o.expandEntityReferences, s = function () {\n switch (i) {\n case \"element\":\n return NodeFilter.SHOW_ELEMENT;\n\n case \"text\":\n return NodeFilter.SHOW_TEXT;\n\n case \"comment\":\n return NodeFilter.SHOW_COMMENT;\n\n default:\n return NodeFilter.SHOW_ALL;\n }\n }(), document.createTreeWalker(t, s, null != r ? r : null, n === !0);\n },\n tagName: function tagName(t) {\n var e;\n return null != t && null != (e = t.tagName) ? e.toLowerCase() : void 0;\n },\n makeElement: function makeElement(t, e) {\n var n, i, o, r, s, a, u, c, l, h, p, d, f, g;\n\n if (null == e && (e = {}), \"object\" == _typeof(t) ? (e = t, t = e.tagName) : e = {\n attributes: e\n }, o = document.createElement(t), null != e.editable && (null == e.attributes && (e.attributes = {}), e.attributes.contenteditable = e.editable), e.attributes) {\n l = e.attributes;\n\n for (a in l) {\n g = l[a], o.setAttribute(a, g);\n }\n }\n\n if (e.style) {\n h = e.style;\n\n for (a in h) {\n g = h[a], o.style[a] = g;\n }\n }\n\n if (e.data) {\n p = e.data;\n\n for (a in p) {\n g = p[a], o.dataset[a] = g;\n }\n }\n\n if (e.className) for (d = e.className.split(\" \"), r = 0, u = d.length; u > r; r++) {\n i = d[r], o.classList.add(i);\n }\n if (e.textContent && (o.textContent = e.textContent), e.childNodes) for (f = [].concat(e.childNodes), s = 0, c = f.length; c > s; s++) {\n n = f[s], o.appendChild(n);\n }\n return o;\n },\n getBlockTagNames: function getBlockTagNames() {\n var t, n;\n return null != e.blockTagNames ? e.blockTagNames : e.blockTagNames = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n\n for (t in i) {\n n = i[t].tagName, n && o.push(n);\n }\n\n return o;\n }();\n },\n nodeIsBlockContainer: function nodeIsBlockContainer(t) {\n return e.nodeIsBlockStartComment(null != t ? t.firstChild : void 0);\n },\n nodeProbablyIsBlockContainer: function nodeProbablyIsBlockContainer(t) {\n var n, i;\n return n = e.tagName(t), s.call(e.getBlockTagNames(), n) >= 0 && (i = e.tagName(t.firstChild), s.call(e.getBlockTagNames(), i) < 0);\n },\n nodeIsBlockStart: function nodeIsBlockStart(t, n) {\n var i;\n return i = (null != n ? n : {\n strict: !0\n }).strict, i ? e.nodeIsBlockStartComment(t) : e.nodeIsBlockStartComment(t) || !e.nodeIsBlockStartComment(t.firstChild) && e.nodeProbablyIsBlockContainer(t);\n },\n nodeIsBlockStartComment: function nodeIsBlockStartComment(t) {\n return e.nodeIsCommentNode(t) && \"block\" === (null != t ? t.data : void 0);\n },\n nodeIsCommentNode: function nodeIsCommentNode(t) {\n return (null != t ? t.nodeType : void 0) === Node.COMMENT_NODE;\n },\n nodeIsCursorTarget: function nodeIsCursorTarget(t, n) {\n var i;\n return i = (null != n ? n : {}).name, t ? e.nodeIsTextNode(t) ? t.data === e.ZERO_WIDTH_SPACE ? i ? t.parentNode.dataset.trixCursorTarget === i : !0 : void 0 : e.nodeIsCursorTarget(t.firstChild) : void 0;\n },\n nodeIsAttachmentElement: function nodeIsAttachmentElement(t) {\n return e.elementMatchesSelector(t, e.AttachmentView.attachmentSelector);\n },\n nodeIsEmptyTextNode: function nodeIsEmptyTextNode(t) {\n return e.nodeIsTextNode(t) && \"\" === (null != t ? t.data : void 0);\n },\n nodeIsTextNode: function nodeIsTextNode(t) {\n return (null != t ? t.nodeType : void 0) === Node.TEXT_NODE;\n }\n });\n }.call(this), function () {\n var t, n, i, o, r;\n t = e.copyObject, o = e.objectsAreEqual, e.extend({\n normalizeRange: i = function i(t) {\n var e;\n if (null != t) return Array.isArray(t) || (t = [t, t]), [n(t[0]), n(null != (e = t[1]) ? e : t[0])];\n },\n rangeIsCollapsed: function rangeIsCollapsed(t) {\n var e, n, o;\n if (null != t) return n = i(t), o = n[0], e = n[1], r(o, e);\n },\n rangesAreEqual: function rangesAreEqual(t, e) {\n var n, o, s, a, u, c;\n if (null != t && null != e) return s = i(t), o = s[0], n = s[1], a = i(e), c = a[0], u = a[1], r(o, c) && r(n, u);\n }\n }), n = function n(e) {\n return \"number\" == typeof e ? e : t(e);\n }, r = function r(t, e) {\n return \"number\" == typeof t ? t === e : o(t, e);\n };\n }.call(this), function () {\n var t, n, i, o, r, s, a;\n e.registerElement = function (t, e) {\n var n, i;\n return null == e && (e = {}), t = t.toLowerCase(), e = a(e), i = s(e), (n = i.defaultCSS) && (delete i.defaultCSS, o(n, t)), r(t, i);\n }, o = function o(t, e) {\n var n;\n return n = i(e), n.textContent = t.replace(/%t/g, e);\n }, i = function i(e) {\n var n, i;\n return n = document.createElement(\"style\"), n.setAttribute(\"type\", \"text/css\"), n.setAttribute(\"data-tag-name\", e.toLowerCase()), (i = t()) && n.setAttribute(\"nonce\", i), document.head.insertBefore(n, document.head.firstChild), n;\n }, t = function t() {\n var t;\n return (t = n(\"trix-csp-nonce\") || n(\"csp-nonce\")) ? t.getAttribute(\"content\") : void 0;\n }, n = function n(t) {\n return document.head.querySelector(\"meta[name=\" + t + \"]\");\n }, s = function s(t) {\n var e, n, i;\n n = {};\n\n for (e in t) {\n i = t[e], n[e] = \"function\" == typeof i ? {\n value: i\n } : i;\n }\n\n return n;\n }, a = function () {\n var t;\n return t = function t(_t3) {\n var e, n, i, o, r;\n\n for (e = {}, r = [\"initialize\", \"connect\", \"disconnect\"], n = 0, o = r.length; o > n; n++) {\n i = r[n], e[i] = _t3[i], delete _t3[i];\n }\n\n return e;\n }, window.customElements ? function (e) {\n var n, i, o, r, s;\n return s = t(e), o = s.initialize, n = s.connect, i = s.disconnect, o && (r = n, n = function n() {\n return this.initialized || (this.initialized = !0, o.call(this)), null != r ? r.call(this) : void 0;\n }), n && (e.connectedCallback = n), i && (e.disconnectedCallback = i), e;\n } : function (e) {\n var n, i, o, r;\n return r = t(e), o = r.initialize, n = r.connect, i = r.disconnect, o && (e.createdCallback = o), n && (e.attachedCallback = n), i && (e.detachedCallback = i), e;\n };\n }(), r = function () {\n return window.customElements ? function (t, e) {\n var _n2;\n\n return _n2 = function n() {\n return \"object\" == (typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) ? Reflect.construct(HTMLElement, [], _n2) : HTMLElement.apply(this);\n }, Object.setPrototypeOf(_n2.prototype, HTMLElement.prototype), Object.setPrototypeOf(_n2, HTMLElement), Object.defineProperties(_n2.prototype, e), window.customElements.define(t, _n2), _n2;\n } : function (t, e) {\n var n, i;\n return i = Object.create(HTMLElement.prototype, e), n = document.registerElement(t, {\n prototype: i\n }), Object.defineProperty(i, \"constructor\", {\n value: n\n }), n;\n };\n }();\n }.call(this), function () {\n var t, n;\n e.extend({\n getDOMSelection: function getDOMSelection() {\n var t;\n return t = window.getSelection(), t.rangeCount > 0 ? t : void 0;\n },\n getDOMRange: function getDOMRange() {\n var n, i;\n return (n = null != (i = e.getDOMSelection()) ? i.getRangeAt(0) : void 0) && !t(n) ? n : void 0;\n },\n setDOMRange: function setDOMRange(t) {\n var n;\n return n = window.getSelection(), n.removeAllRanges(), n.addRange(t), e.selectionChangeObserver.update();\n }\n }), t = function t(_t4) {\n return n(_t4.startContainer) || n(_t4.endContainer);\n }, n = function n(t) {\n return !Object.getPrototypeOf(t);\n };\n }.call(this), function () {\n var t;\n t = {\n \"application/x-trix-feature-detection\": \"test\"\n }, e.extend({\n dataTransferIsPlainText: function dataTransferIsPlainText(t) {\n var e, n, i;\n return i = t.getData(\"text/plain\"), n = t.getData(\"text/html\"), i && n ? (e = new DOMParser().parseFromString(n, \"text/html\").body, e.textContent === i ? !e.querySelector(\"*\") : void 0) : null != i ? i.length : void 0;\n },\n dataTransferIsWritable: function dataTransferIsWritable(e) {\n var n, i;\n\n if (null != (null != e ? e.setData : void 0)) {\n for (n in t) {\n if (i = t[n], !function () {\n try {\n return e.setData(n, i), e.getData(n) === i;\n } catch (t) {}\n }()) return;\n }\n\n return !0;\n }\n },\n keyEventIsKeyboardCommand: function () {\n return /Mac|^iP/.test(navigator.platform) ? function (t) {\n return t.metaKey;\n } : function (t) {\n return t.ctrlKey;\n };\n }()\n });\n }.call(this), function () {\n e.extend({\n RTL_PATTERN: /[\\u05BE\\u05C0\\u05C3\\u05D0-\\u05EA\\u05F0-\\u05F4\\u061B\\u061F\\u0621-\\u063A\\u0640-\\u064A\\u066D\\u0671-\\u06B7\\u06BA-\\u06BE\\u06C0-\\u06CE\\u06D0-\\u06D5\\u06E5\\u06E6\\u200F\\u202B\\u202E\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE72\\uFE74\\uFE76-\\uFEFC]/,\n getDirection: function () {\n var t, n, i, o;\n return n = e.makeElement(\"input\", {\n dir: \"auto\",\n name: \"x\",\n dirName: \"x.dir\"\n }), t = e.makeElement(\"form\"), t.appendChild(n), i = function () {\n try {\n return new FormData(t).has(n.dirName);\n } catch (e) {}\n }(), o = function () {\n try {\n return n.matches(\":dir(ltr),:dir(rtl)\");\n } catch (t) {}\n }(), i ? function (e) {\n return n.value = e, new FormData(t).get(n.dirName);\n } : o ? function (t) {\n return n.value = t, n.matches(\":dir(rtl)\") ? \"rtl\" : \"ltr\";\n } : function (t) {\n var n;\n return n = t.trim().charAt(0), e.RTL_PATTERN.test(n) ? \"rtl\" : \"ltr\";\n };\n }()\n });\n }.call(this), function () {}.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.arraysAreEqual, e.Hash = function (i) {\n function o(t) {\n null == t && (t = {}), this.values = s(t), o.__super__.constructor.apply(this, arguments);\n }\n\n var r, s, a, u, c;\n return n(o, i), o.fromCommonAttributesOfObjects = function (t) {\n var e, n, i, o, s, a;\n if (null == t && (t = []), !t.length) return new this();\n\n for (e = r(t[0]), i = e.getKeys(), a = t.slice(1), n = 0, o = a.length; o > n; n++) {\n s = a[n], i = e.getKeysCommonToHash(r(s)), e = e.slice(i);\n }\n\n return e;\n }, o.box = function (t) {\n return r(t);\n }, o.prototype.add = function (t, e) {\n return this.merge(u(t, e));\n }, o.prototype.remove = function (t) {\n return new e.Hash(s(this.values, t));\n }, o.prototype.get = function (t) {\n return this.values[t];\n }, o.prototype.has = function (t) {\n return t in this.values;\n }, o.prototype.merge = function (t) {\n return new e.Hash(a(this.values, c(t)));\n }, o.prototype.slice = function (t) {\n var n, i, o, r;\n\n for (r = {}, n = 0, o = t.length; o > n; n++) {\n i = t[n], this.has(i) && (r[i] = this.values[i]);\n }\n\n return new e.Hash(r);\n }, o.prototype.getKeys = function () {\n return Object.keys(this.values);\n }, o.prototype.getKeysCommonToHash = function (t) {\n var e, n, i, o, s;\n\n for (t = r(t), o = this.getKeys(), s = [], e = 0, i = o.length; i > e; e++) {\n n = o[e], this.values[n] === t.values[n] && s.push(n);\n }\n\n return s;\n }, o.prototype.isEqualTo = function (e) {\n return t(this.toArray(), r(e).toArray());\n }, o.prototype.isEmpty = function () {\n return 0 === this.getKeys().length;\n }, o.prototype.toArray = function () {\n var t, e, n;\n return (null != this.array ? this.array : this.array = function () {\n var i;\n e = [], i = this.values;\n\n for (t in i) {\n n = i[t], e.push(t, n);\n }\n\n return e;\n }.call(this)).slice(0);\n }, o.prototype.toObject = function () {\n return s(this.values);\n }, o.prototype.toJSON = function () {\n return this.toObject();\n }, o.prototype.contentsForInspection = function () {\n return {\n values: JSON.stringify(this.values)\n };\n }, u = function u(t, e) {\n var n;\n return n = {}, n[t] = e, n;\n }, a = function a(t, e) {\n var n, i, o;\n i = s(t);\n\n for (n in e) {\n o = e[n], i[n] = o;\n }\n\n return i;\n }, s = function s(t, e) {\n var n, i, o, r, s;\n\n for (r = {}, s = Object.keys(t).sort(), n = 0, o = s.length; o > n; n++) {\n i = s[n], i !== e && (r[i] = t[i]);\n }\n\n return r;\n }, r = function r(t) {\n return t instanceof e.Hash ? t : new e.Hash(t);\n }, c = function c(t) {\n return t instanceof e.Hash ? t.values : t;\n }, o;\n }(e.Object);\n }.call(this), function () {\n e.ObjectGroup = function () {\n function t(t, e) {\n var n, i;\n this.objects = null != t ? t : [], i = e.depth, n = e.asTree, n && (this.depth = i, this.objects = this.constructor.groupObjects(this.objects, {\n asTree: n,\n depth: this.depth + 1\n }));\n }\n\n return t.groupObjects = function (t, e) {\n var n, i, o, r, s, a, u, c, l;\n\n for (null == t && (t = []), l = null != e ? e : {}, o = l.depth, n = l.asTree, n && null == o && (o = 0), c = [], s = 0, a = t.length; a > s; s++) {\n if (u = t[s], r) {\n if ((\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) && (\"function\" == typeof (i = r[r.length - 1]).canBeGroupedWith ? i.canBeGroupedWith(u, o) : void 0)) {\n r.push(u);\n continue;\n }\n\n c.push(new this(r, {\n depth: o,\n asTree: n\n })), r = null;\n }\n\n (\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) ? r = [u] : c.push(u);\n }\n\n return r && c.push(new this(r, {\n depth: o,\n asTree: n\n })), c;\n }, t.prototype.getObjects = function () {\n return this.objects;\n }, t.prototype.getDepth = function () {\n return this.depth;\n }, t.prototype.getCacheKey = function () {\n var t, e, n, i, o;\n\n for (e = [\"objectGroup\"], o = this.getObjects(), t = 0, n = o.length; n > t; t++) {\n i = o[t], e.push(i.getCacheKey());\n }\n\n return e.join(\"/\");\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t5, e) {\n function i() {\n this.constructor = _t5;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t5[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t5.prototype = new i(), _t5.__super__ = e.prototype, _t5;\n },\n n = {}.hasOwnProperty;\n\n e.ObjectMap = function (e) {\n function n(t) {\n var e, n, i, o, r;\n\n for (null == t && (t = []), this.objects = {}, i = 0, o = t.length; o > i; i++) {\n r = t[i], n = JSON.stringify(r), null == (e = this.objects)[n] && (e[n] = r);\n }\n }\n\n return t(n, e), n.prototype.find = function (t) {\n var e;\n return e = JSON.stringify(t), this.objects[e];\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n e.ElementStore = function () {\n function t(t) {\n this.reset(t);\n }\n\n var e;\n return t.prototype.add = function (t) {\n var n;\n return n = e(t), this.elements[n] = t;\n }, t.prototype.remove = function (t) {\n var n, i;\n return n = e(t), (i = this.elements[n]) ? (delete this.elements[n], i) : void 0;\n }, t.prototype.reset = function (t) {\n var e, n, i;\n\n for (null == t && (t = []), this.elements = {}, n = 0, i = t.length; i > n; n++) {\n e = t[n], this.add(e);\n }\n\n return t;\n }, e = function e(t) {\n return t.dataset.trixStoreKey;\n }, t;\n }();\n }.call(this), function () {}.call(this), function () {\n var t = function t(_t6, e) {\n function i() {\n this.constructor = _t6;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t6[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t6.prototype = new i(), _t6.__super__ = e.prototype, _t6;\n },\n n = {}.hasOwnProperty;\n\n e.Operation = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n\n return t(n, e), n.prototype.isPerforming = function () {\n return this.performing === !0;\n }, n.prototype.hasPerformed = function () {\n return this.performed === !0;\n }, n.prototype.hasSucceeded = function () {\n return this.performed && this.succeeded;\n }, n.prototype.hasFailed = function () {\n return this.performed && !this.succeeded;\n }, n.prototype.getPromise = function () {\n return null != this.promise ? this.promise : this.promise = new Promise(function (t) {\n return function (e, n) {\n return t.performing = !0, t.perform(function (i, o) {\n return t.succeeded = i, t.performing = !1, t.performed = !0, t.succeeded ? e(o) : n(o);\n });\n };\n }(this));\n }, n.prototype.perform = function (t) {\n return t(!1);\n }, n.prototype.release = function () {\n var t;\n return null != (t = this.promise) && \"function\" == typeof t.cancel && t.cancel(), this.promise = null, this.performing = null, this.performed = null, this.succeeded = null;\n }, n.proxyMethod(\"getPromise().then\"), n.proxyMethod(\"getPromise().catch\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function s(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n a.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty;\n\n e.UTF16String = function (t) {\n function e(t, e) {\n this.ucs2String = t, this.codepoints = e, this.length = this.codepoints.length, this.ucs2Length = this.ucs2String.length;\n }\n\n return s(e, t), e.box = function (t) {\n return null == t && (t = \"\"), t instanceof this ? t : this.fromUCS2String(null != t ? t.toString() : void 0);\n }, e.fromUCS2String = function (t) {\n return new this(t, o(t));\n }, e.fromCodepoints = function (t) {\n return new this(r(t), t);\n }, e.prototype.offsetToUCS2Offset = function (t) {\n return r(this.codepoints.slice(0, Math.max(0, t))).length;\n }, e.prototype.offsetFromUCS2Offset = function (t) {\n return o(this.ucs2String.slice(0, Math.max(0, t))).length;\n }, e.prototype.slice = function () {\n var t;\n return this.constructor.fromCodepoints((t = this.codepoints).slice.apply(t, arguments));\n }, e.prototype.charAt = function (t) {\n return this.slice(t, t + 1);\n }, e.prototype.isEqualTo = function (t) {\n return this.constructor.box(t).ucs2String === this.ucs2String;\n }, e.prototype.toJSON = function () {\n return this.ucs2String;\n }, e.prototype.getCacheKey = function () {\n return this.ucs2String;\n }, e.prototype.toString = function () {\n return this.ucs2String;\n }, e;\n }(e.BasicObject), t = 1 === (\"function\" == typeof Array.from ? Array.from(\"\\uD83D\\uDC7C\").length : void 0), n = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), i = \" \\uD83D\\uDC7C\" === (\"function\" == typeof String.fromCodePoint ? String.fromCodePoint(32, 128124) : void 0), o = t && n ? function (t) {\n return Array.from(t).map(function (t) {\n return t.codePointAt(0);\n });\n } : function (t) {\n var e, n, i, o, r;\n\n for (o = [], e = 0, i = t.length; i > e;) {\n r = t.charCodeAt(e++), r >= 55296 && 56319 >= r && i > e && (n = t.charCodeAt(e++), 56320 === (64512 & n) ? r = ((1023 & r) << 10) + (1023 & n) + 65536 : e--), o.push(r);\n }\n\n return o;\n }, r = i ? function (t) {\n return String.fromCodePoint.apply(String, t);\n } : function (t) {\n var e, n, i;\n return e = function () {\n var e, o, r;\n\n for (r = [], e = 0, o = t.length; o > e; e++) {\n i = t[e], n = \"\", i > 65535 && (i -= 65536, n += String.fromCharCode(i >>> 10 & 1023 | 55296), i = 56320 | 1023 & i), r.push(n + String.fromCharCode(i));\n }\n\n return r;\n }(), e.join(\"\");\n };\n }.call(this), function () {}.call(this), function () {}.call(this), function () {\n e.config.lang = {\n attachFiles: \"Attach Files\",\n bold: \"Bold\",\n bullets: \"Bullets\",\n \"byte\": \"Byte\",\n bytes: \"Bytes\",\n captionPlaceholder: \"Add a caption\\u2026\",\n code: \"Code\",\n heading1: \"Heading\",\n indent: \"Increase Level\",\n italic: \"Italic\",\n link: \"Link\",\n numbers: \"Numbers\",\n outdent: \"Decrease Level\",\n quote: \"Quote\",\n redo: \"Redo\",\n remove: \"Remove\",\n strike: \"Strikethrough\",\n undo: \"Undo\",\n unlink: \"Unlink\",\n url: \"URL\",\n urlPlaceholder: \"Enter a URL\\u2026\",\n GB: \"GB\",\n KB: \"KB\",\n MB: \"MB\",\n PB: \"PB\",\n TB: \"TB\"\n };\n }.call(this), function () {\n e.config.css = {\n attachment: \"attachment\",\n attachmentCaption: \"attachment__caption\",\n attachmentCaptionEditor: \"attachment__caption-editor\",\n attachmentMetadata: \"attachment__metadata\",\n attachmentMetadataContainer: \"attachment__metadata-container\",\n attachmentName: \"attachment__name\",\n attachmentProgress: \"attachment__progress\",\n attachmentSize: \"attachment__size\",\n attachmentToolbar: \"attachment__toolbar\",\n attachmentGallery: \"attachment-gallery\"\n };\n }.call(this), function () {\n var t;\n e.config.blockAttributes = t = {\n \"default\": {\n tagName: \"div\",\n parse: !1\n },\n quote: {\n tagName: \"blockquote\",\n nestable: !0\n },\n heading1: {\n tagName: \"h1\",\n terminal: !0,\n breakOnReturn: !0,\n group: !1\n },\n code: {\n tagName: \"pre\",\n terminal: !0,\n text: {\n plaintext: !0\n }\n },\n bulletList: {\n tagName: \"ul\",\n parse: !1\n },\n bullet: {\n tagName: \"li\",\n listAttribute: \"bulletList\",\n group: !1,\n nestable: !0,\n test: function test(n) {\n return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n }\n },\n numberList: {\n tagName: \"ol\",\n parse: !1\n },\n number: {\n tagName: \"li\",\n listAttribute: \"numberList\",\n group: !1,\n nestable: !0,\n test: function test(n) {\n return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n }\n },\n attachmentGallery: {\n tagName: \"div\",\n exclusive: !0,\n terminal: !0,\n parse: !1,\n group: !1\n }\n };\n }.call(this), function () {\n var t, n;\n t = e.config.lang, n = [t.bytes, t.KB, t.MB, t.GB, t.TB, t.PB], e.config.fileSize = {\n prefix: \"IEC\",\n precision: 2,\n formatter: function formatter(e) {\n var i, o, r, s, a;\n\n switch (e) {\n case 0:\n return \"0 \" + t.bytes;\n\n case 1:\n return \"1 \" + t.byte;\n\n default:\n return i = function () {\n switch (this.prefix) {\n case \"SI\":\n return 1e3;\n\n case \"IEC\":\n return 1024;\n }\n }.call(this), o = Math.floor(Math.log(e) / Math.log(i)), r = e / Math.pow(i, o), s = r.toFixed(this.precision), a = s.replace(/0*$/, \"\").replace(/\\.$/, \"\"), a + \" \" + n[o];\n }\n }\n };\n }.call(this), function () {\n e.config.textAttributes = {\n bold: {\n tagName: \"strong\",\n inheritable: !0,\n parser: function parser(t) {\n var e;\n return e = window.getComputedStyle(t), \"bold\" === e.fontWeight || e.fontWeight >= 600;\n }\n },\n italic: {\n tagName: \"em\",\n inheritable: !0,\n parser: function parser(t) {\n var e;\n return e = window.getComputedStyle(t), \"italic\" === e.fontStyle;\n }\n },\n href: {\n groupTagName: \"a\",\n parser: function parser(t) {\n var n, i, o;\n return n = e.AttachmentView.attachmentSelector, o = \"a:not(\" + n + \")\", (i = e.findClosestElementFromNode(t, {\n matchingSelector: o\n })) ? i.getAttribute(\"href\") : void 0;\n }\n },\n strike: {\n tagName: \"del\",\n inheritable: !0\n },\n frozen: {\n style: {\n backgroundColor: \"highlight\"\n }\n }\n };\n }.call(this), function () {\n var t, n, i, o, r;\n r = \"[data-trix-serialize=false]\", o = [\"contenteditable\", \"data-trix-id\", \"data-trix-store-key\", \"data-trix-mutable\", \"data-trix-placeholder\", \"tabindex\"], n = \"data-trix-serialized-attributes\", i = \"[\" + n + \"]\", t = new RegExp(\"\", \"g\"), e.extend({\n serializers: {\n \"application/json\": function applicationJson(t) {\n var n;\n if (t instanceof e.Document) n = t;else {\n if (!(t instanceof HTMLElement)) throw new Error(\"unserializable object\");\n n = e.Document.fromHTML(t.innerHTML);\n }\n return n.toSerializableDocument().toJSONString();\n },\n \"text/html\": function textHtml(s) {\n var a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n if (s instanceof e.Document) l = e.DocumentView.render(s);else {\n if (!(s instanceof HTMLElement)) throw new Error(\"unserializable object\");\n l = s.cloneNode(!0);\n }\n\n for (A = l.querySelectorAll(r), h = 0, g = A.length; g > h; h++) {\n c = A[h], e.removeNode(c);\n }\n\n for (p = 0, m = o.length; m > p; p++) {\n for (a = o[p], C = l.querySelectorAll(\"[\" + a + \"]\"), d = 0, v = C.length; v > d; d++) {\n c = C[d], c.removeAttribute(a);\n }\n }\n\n for (x = l.querySelectorAll(i), f = 0, y = x.length; y > f; f++) {\n c = x[f];\n\n try {\n u = JSON.parse(c.getAttribute(n)), c.removeAttribute(n);\n\n for (b in u) {\n w = u[b], c.setAttribute(b, w);\n }\n } catch (E) {}\n }\n\n return l.innerHTML.replace(t, \"\");\n }\n },\n deserializers: {\n \"application/json\": function applicationJson(t) {\n return e.Document.fromJSONString(t);\n },\n \"text/html\": function textHtml(t) {\n return e.Document.fromHTML(t);\n }\n },\n serializeToContentType: function serializeToContentType(t, n) {\n var i;\n if (i = e.serializers[n]) return i(t);\n throw new Error(\"unknown content type: \" + n);\n },\n deserializeFromContentType: function deserializeFromContentType(t, n) {\n var i;\n if (i = e.deserializers[n]) return i(t);\n throw new Error(\"unknown content type: \" + n);\n }\n });\n }.call(this), function () {\n var t;\n t = e.config.lang, e.config.toolbar = {\n getDefaultHTML: function getDefaultHTML() {\n return '
\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n\\n \\n\\n \\n \\n \\n \\n
\\n\\n
\\n
\\n \\n
\\n
';\n }\n };\n }.call(this), function () {\n e.config.undoInterval = 5e3;\n }.call(this), function () {\n e.config.attachments = {\n preview: {\n presentation: \"gallery\",\n caption: {\n name: !0,\n size: !0\n }\n },\n file: {\n caption: {\n size: !0\n }\n }\n };\n }.call(this), function () {\n e.config.keyNames = {\n 8: \"backspace\",\n 9: \"tab\",\n 13: \"return\",\n 27: \"escape\",\n 37: \"left\",\n 39: \"right\",\n 46: \"delete\",\n 68: \"d\",\n 72: \"h\",\n 79: \"o\"\n };\n }.call(this), function () {\n e.config.input = {\n level2Enabled: !0,\n getLevel: function getLevel() {\n return this.level2Enabled && e.browser.supportsInputEvents ? 2 : 0;\n },\n pickFiles: function pickFiles(t) {\n var n;\n return n = e.makeElement(\"input\", {\n type: \"file\",\n multiple: !0,\n hidden: !0,\n id: this.fileInputId\n }), n.addEventListener(\"change\", function () {\n return t(n.files), e.removeNode(n);\n }), e.removeNode(document.getElementById(this.fileInputId)), document.body.appendChild(n), n.click();\n },\n fileInputId: \"trix-file-input-\" + Date.now().toString(16)\n };\n }.call(this), function () {}.call(this), function () {\n e.registerElement(\"trix-toolbar\", {\n defaultCSS: \"%t {\\n display: block;\\n}\\n\\n%t {\\n white-space: nowrap;\\n}\\n\\n%t [data-trix-dialog] {\\n display: none;\\n}\\n\\n%t [data-trix-dialog][data-trix-active] {\\n display: block;\\n}\\n\\n%t [data-trix-dialog] [data-trix-validate]:invalid {\\n background-color: #ffdddd;\\n}\",\n initialize: function initialize() {\n return \"\" === this.innerHTML ? this.innerHTML = e.config.toolbar.getDefaultHTML() : void 0;\n }\n });\n }.call(this), function () {\n var t = function t(_t7, e) {\n function i() {\n this.constructor = _t7;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t7[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t7.prototype = new i(), _t7.__super__ = e.prototype, _t7;\n },\n n = {}.hasOwnProperty,\n i = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n e.ObjectView = function (n) {\n function o(t, e) {\n this.object = t, this.options = null != e ? e : {}, this.childViews = [], this.rootView = this;\n }\n\n return t(o, n), o.prototype.getNodes = function () {\n var t, e, n, i, o;\n\n for (null == this.nodes && (this.nodes = this.createNodes()), i = this.nodes, o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.cloneNode(!0));\n }\n\n return o;\n }, o.prototype.invalidate = function () {\n var t;\n return this.nodes = null, this.childViews = [], null != (t = this.parentView) ? t.invalidate() : void 0;\n }, o.prototype.invalidateViewForObject = function (t) {\n var e;\n return null != (e = this.findViewForObject(t)) ? e.invalidate() : void 0;\n }, o.prototype.findOrCreateCachedChildView = function (t, e) {\n var n;\n return (n = this.getCachedViewForObject(e)) ? this.recordChildView(n) : (n = this.createChildView.apply(this, arguments), this.cacheViewForObject(n, e)), n;\n }, o.prototype.createChildView = function (t, n, i) {\n var o;\n return null == i && (i = {}), n instanceof e.ObjectGroup && (i.viewClass = t, t = e.ObjectGroupView), o = new t(n, i), this.recordChildView(o);\n }, o.prototype.recordChildView = function (t) {\n return t.parentView = this, t.rootView = this.rootView, this.childViews.push(t), t;\n }, o.prototype.getAllChildViews = function () {\n var t, e, n, i, o;\n\n for (o = [], i = this.childViews, e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t), o = o.concat(t.getAllChildViews());\n }\n\n return o;\n }, o.prototype.findElement = function () {\n return this.findElementForObject(this.object);\n }, o.prototype.findElementForObject = function (t) {\n var e;\n return (e = null != t ? t.id : void 0) ? this.rootView.element.querySelector(\"[data-trix-id='\" + e + \"']\") : void 0;\n }, o.prototype.findViewForObject = function (t) {\n var e, n, i, o;\n\n for (i = this.getAllChildViews(), e = 0, n = i.length; n > e; e++) {\n if (o = i[e], o.object === t) return o;\n }\n }, o.prototype.getViewCache = function () {\n return this.rootView !== this ? this.rootView.getViewCache() : this.isViewCachingEnabled() ? null != this.viewCache ? this.viewCache : this.viewCache = {} : void 0;\n }, o.prototype.isViewCachingEnabled = function () {\n return this.shouldCacheViews !== !1;\n }, o.prototype.enableViewCaching = function () {\n return this.shouldCacheViews = !0;\n }, o.prototype.disableViewCaching = function () {\n return this.shouldCacheViews = !1;\n }, o.prototype.getCachedViewForObject = function (t) {\n var e;\n return null != (e = this.getViewCache()) ? e[t.getCacheKey()] : void 0;\n }, o.prototype.cacheViewForObject = function (t, e) {\n var n;\n return null != (n = this.getViewCache()) ? n[e.getCacheKey()] = t : void 0;\n }, o.prototype.garbageCollectCachedViews = function () {\n var t, e, n, o, r, s;\n\n if (t = this.getViewCache()) {\n s = this.getAllChildViews().concat(this), n = function () {\n var t, e, n;\n\n for (n = [], t = 0, e = s.length; e > t; t++) {\n r = s[t], n.push(r.object.getCacheKey());\n }\n\n return n;\n }(), o = [];\n\n for (e in t) {\n i.call(n, e) < 0 && o.push(delete t[e]);\n }\n\n return o;\n }\n }, o;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t8, e) {\n function i() {\n this.constructor = _t8;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t8[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t8.prototype = new i(), _t8.__super__ = e.prototype, _t8;\n },\n n = {}.hasOwnProperty;\n\n e.ObjectGroupView = function (e) {\n function n() {\n n.__super__.constructor.apply(this, arguments), this.objectGroup = this.object, this.viewClass = this.options.viewClass, delete this.options.viewClass;\n }\n\n return t(n, e), n.prototype.getChildViews = function () {\n var t, e, n, i;\n if (!this.childViews.length) for (i = this.objectGroup.getObjects(), t = 0, e = i.length; e > t; t++) {\n n = i[t], this.findOrCreateCachedChildView(this.viewClass, n, this.options);\n }\n return this.childViews;\n }, n.prototype.createNodes = function () {\n var t, e, n, i, o, r, s, a, u;\n\n for (t = this.createContainerElement(), s = this.getChildViews(), e = 0, i = s.length; i > e; e++) {\n for (u = s[e], a = u.getNodes(), n = 0, o = a.length; o > n; n++) {\n r = a[n], t.appendChild(r);\n }\n }\n\n return [t];\n }, n.prototype.createContainerElement = function (t) {\n return null == t && (t = this.objectGroup.getDepth()), this.getChildViews()[0].createContainerElement(t);\n }, n;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function t(_t9, e) {\n function i() {\n this.constructor = _t9;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t9[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t9.prototype = new i(), _t9.__super__ = e.prototype, _t9;\n },\n n = {}.hasOwnProperty;\n\n e.Controller = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n\n return t(n, e), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a = function a(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n u = function u(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n c.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n c = {}.hasOwnProperty,\n l = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.findClosestElementFromNode, i = e.nodeIsEmptyTextNode, n = e.nodeIsBlockStartComment, o = e.normalizeSpaces, r = e.summarizeStringChange, s = e.tagName, e.MutationObserver = function (e) {\n function c(t) {\n this.element = t, this.didMutate = a(this.didMutate, this), this.observer = new window.MutationObserver(this.didMutate), this.start();\n }\n\n var _h, p, d, f;\n\n return u(c, e), p = \"data-trix-mutable\", d = \"[\" + p + \"]\", f = {\n attributes: !0,\n childList: !0,\n characterData: !0,\n characterDataOldValue: !0,\n subtree: !0\n }, c.prototype.start = function () {\n return this.reset(), this.observer.observe(this.element, f);\n }, c.prototype.stop = function () {\n return this.observer.disconnect();\n }, c.prototype.didMutate = function (t) {\n var e, n;\n return (e = this.mutations).push.apply(e, this.findSignificantMutations(t)), this.mutations.length ? (null != (n = this.delegate) && \"function\" == typeof n.elementDidMutate && n.elementDidMutate(this.getMutationSummary()), this.reset()) : void 0;\n }, c.prototype.reset = function () {\n return this.mutations = [];\n }, c.prototype.findSignificantMutations = function (t) {\n var e, n, i, o;\n\n for (o = [], e = 0, n = t.length; n > e; e++) {\n i = t[e], this.mutationIsSignificant(i) && o.push(i);\n }\n\n return o;\n }, c.prototype.mutationIsSignificant = function (t) {\n var e, n, i, o;\n if (this.nodeIsMutable(t.target)) return !1;\n\n for (o = this.nodesModifiedByMutation(t), e = 0, n = o.length; n > e; e++) {\n if (i = o[e], this.nodeIsSignificant(i)) return !0;\n }\n\n return !1;\n }, c.prototype.nodeIsSignificant = function (t) {\n return t !== this.element && !this.nodeIsMutable(t) && !i(t);\n }, c.prototype.nodeIsMutable = function (e) {\n return t(e, {\n matchingSelector: d\n });\n }, c.prototype.nodesModifiedByMutation = function (t) {\n var e;\n\n switch (e = [], t.type) {\n case \"attributes\":\n t.attributeName !== p && e.push(t.target);\n break;\n\n case \"characterData\":\n e.push(t.target.parentNode), e.push(t.target);\n break;\n\n case \"childList\":\n e.push.apply(e, t.addedNodes), e.push.apply(e, t.removedNodes);\n }\n\n return e;\n }, c.prototype.getMutationSummary = function () {\n return this.getTextMutationSummary();\n }, c.prototype.getTextMutationSummary = function () {\n var t, e, n, i, o, r, s, a, u, c, h;\n\n for (a = this.getTextChangesFromCharacterData(), n = a.additions, o = a.deletions, h = this.getTextChangesFromChildList(), u = h.additions, r = 0, s = u.length; s > r; r++) {\n e = u[r], l.call(n, e) < 0 && n.push(e);\n }\n\n return o.push.apply(o, h.deletions), c = {}, (t = n.join(\"\")) && (c.textAdded = t), (i = o.join(\"\")) && (c.textDeleted = i), c;\n }, c.prototype.getMutationsByType = function (t) {\n var e, n, i, o, r;\n\n for (o = this.mutations, r = [], e = 0, n = o.length; n > e; e++) {\n i = o[e], i.type === t && r.push(i);\n }\n\n return r;\n }, c.prototype.getTextChangesFromChildList = function () {\n var t, e, i, r, s, a, u, c, l, p, d;\n\n for (t = [], u = [], a = this.getMutationsByType(\"childList\"), e = 0, r = a.length; r > e; e++) {\n s = a[e], t.push.apply(t, s.addedNodes), u.push.apply(u, s.removedNodes);\n }\n\n return c = 0 === t.length && 1 === u.length && n(u[0]), c ? (p = [], d = [\"\\n\"]) : (p = _h(t), d = _h(u)), {\n additions: function () {\n var t, e, n;\n\n for (n = [], i = t = 0, e = p.length; e > t; i = ++t) {\n l = p[i], l !== d[i] && n.push(o(l));\n }\n\n return n;\n }(),\n deletions: function () {\n var t, e, n;\n\n for (n = [], i = t = 0, e = d.length; e > t; i = ++t) {\n l = d[i], l !== p[i] && n.push(o(l));\n }\n\n return n;\n }()\n };\n }, c.prototype.getTextChangesFromCharacterData = function () {\n var t, e, n, i, s, a, u, c;\n return e = this.getMutationsByType(\"characterData\"), e.length && (c = e[0], n = e[e.length - 1], s = o(c.oldValue), i = o(n.target.data), a = r(s, i), t = a.added, u = a.removed), {\n additions: t ? [t] : [],\n deletions: u ? [u] : []\n };\n }, _h = function h(t) {\n var e, n, i, o;\n\n for (null == t && (t = []), o = [], e = 0, n = t.length; n > e; e++) {\n switch (i = t[e], i.nodeType) {\n case Node.TEXT_NODE:\n o.push(i.data);\n break;\n\n case Node.ELEMENT_NODE:\n \"br\" === s(i) ? o.push(\"\\n\") : o.push.apply(o, _h(i.childNodes));\n }\n }\n\n return o;\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t10, e) {\n function i() {\n this.constructor = _t10;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t10[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t10.prototype = new i(), _t10.__super__ = e.prototype, _t10;\n },\n n = {}.hasOwnProperty;\n\n e.FileVerificationOperation = function (e) {\n function n(t) {\n this.file = t;\n }\n\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new FileReader(), e.onerror = function () {\n return t(!1);\n }, e.onload = function (n) {\n return function () {\n e.onerror = null;\n\n try {\n e.abort();\n } catch (i) {}\n\n return t(!0, n.file);\n };\n }(this), e.readAsArrayBuffer(this.file);\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t,\n n,\n i = function i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n t = e.handleEvent, n = e.innerElementIsActive, e.InputController = function (o) {\n function r(n) {\n var i;\n this.element = n, this.mutationObserver = new e.MutationObserver(this.element), this.mutationObserver.delegate = this;\n\n for (i in this.events) {\n t(i, {\n onElement: this.element,\n withCallback: this.handlerFor(i)\n });\n }\n }\n\n return i(r, o), r.prototype.events = {}, r.prototype.elementDidMutate = function () {}, r.prototype.editorWillSyncDocumentView = function () {\n return this.mutationObserver.stop();\n }, r.prototype.editorDidSyncDocumentView = function () {\n return this.mutationObserver.start();\n }, r.prototype.requestRender = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestRender ? t.inputControllerDidRequestRender() : void 0;\n }, r.prototype.requestReparse = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestReparse && t.inputControllerDidRequestReparse(), this.requestRender();\n }, r.prototype.attachFiles = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(new e.FileVerificationOperation(n));\n }\n\n return r;\n }(), Promise.all(i).then(function (t) {\n return function (e) {\n return t.handleInput(function () {\n var t, n;\n return null != (t = this.delegate) && t.inputControllerWillAttachFiles(), null != (n = this.responder) && n.insertFiles(e), this.requestRender();\n });\n };\n }(this));\n }, r.prototype.handlerFor = function (t) {\n return function (e) {\n return function (i) {\n return i.defaultPrevented ? void 0 : e.handleInput(function () {\n return n(this.element) ? void 0 : (this.eventName = t, this.events[t].call(this, i));\n });\n };\n }(this);\n }, r.prototype.handleInput = function (t) {\n var e, n;\n\n try {\n return null != (e = this.delegate) && e.inputControllerWillHandleInput(), t.call(this);\n } finally {\n null != (n = this.delegate) && n.inputControllerDidHandleInput();\n }\n }, r.prototype.createLinkHTML = function (t, e) {\n var n;\n return n = document.createElement(\"a\"), n.href = t, n.textContent = null != e ? e : t, n.outerHTML;\n }, r;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p,\n d,\n f = function f(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n g.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n g = {}.hasOwnProperty,\n m = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n c = e.makeElement, l = e.objectsAreEqual, d = e.tagName, n = e.browser, a = e.keyEventIsKeyboardCommand, o = e.dataTransferIsWritable, i = e.dataTransferIsPlainText, u = e.config.keyNames, e.Level0InputController = function (n) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.resetInputSummary();\n }\n\n var d;\n return f(s, n), d = 0, s.prototype.setInputSummary = function (t) {\n var e, n;\n null == t && (t = {}), this.inputSummary.eventName = this.eventName;\n\n for (e in t) {\n n = t[e], this.inputSummary[e] = n;\n }\n\n return this.inputSummary;\n }, s.prototype.resetInputSummary = function () {\n return this.inputSummary = {};\n }, s.prototype.reset = function () {\n return this.resetInputSummary(), e.selectionChangeObserver.reset();\n }, s.prototype.elementDidMutate = function (t) {\n var e;\n return this.isComposing() ? null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidAllowUnhandledInput ? e.inputControllerDidAllowUnhandledInput() : void 0 : this.handleInput(function () {\n return this.mutationIsSignificant(t) && (this.mutationIsExpected(t) ? this.requestRender() : this.requestReparse()), this.reset();\n });\n }, s.prototype.mutationIsExpected = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return a = t.textAdded, u = t.textDeleted, this.inputSummary.preferDocument ? !0 : (e = null != a ? a === this.inputSummary.textAdded : !this.inputSummary.textAdded, n = null != u ? this.inputSummary.didDelete : !this.inputSummary.didDelete, c = (\"\\n\" === a || \" \\n\" === a) && !e, l = \"\\n\" === u && !n, s = c && !l || l && !c, s && (o = this.getSelectedRange()) && (i = c ? a.replace(/\\n$/, \"\").length || -1 : (null != a ? a.length : void 0) || 1, null != (r = this.responder) ? r.positionIsBlockBreak(o[1] + i) : void 0) ? !0 : e && n);\n }, s.prototype.mutationIsSignificant = function (t) {\n var e, n, i;\n return i = Object.keys(t).length > 0, e = \"\" === (null != (n = this.compositionInput) ? n.getEndData() : void 0), i || !e;\n }, s.prototype.events = {\n keydown: function keydown(t) {\n var n, i, o, r, s, c, l, h, p;\n\n if (this.isComposing() || this.resetInputSummary(), this.inputSummary.didInput = !0, r = u[t.keyCode]) {\n for (i = this.keys, h = [\"ctrl\", \"alt\", \"shift\", \"meta\"], o = 0, c = h.length; c > o; o++) {\n l = h[o], t[l + \"Key\"] && (\"ctrl\" === l && (l = \"control\"), i = null != i ? i[l] : void 0);\n }\n\n null != (null != i ? i[r] : void 0) && (this.setInputSummary({\n keyName: r\n }), e.selectionChangeObserver.reset(), i[r].call(this, t));\n }\n\n return a(t) && (n = String.fromCharCode(t.keyCode).toLowerCase()) && (s = function () {\n var e, n, i, o;\n\n for (i = [\"alt\", \"shift\"], o = [], e = 0, n = i.length; n > e; e++) {\n l = i[e], t[l + \"Key\"] && o.push(l);\n }\n\n return o;\n }(), s.push(n), null != (p = this.delegate) ? p.inputControllerDidReceiveKeyboardCommand(s) : void 0) ? t.preventDefault() : void 0;\n },\n keypress: function keypress(t) {\n var e, n, i;\n if (null == this.inputSummary.eventName && !t.metaKey && (!t.ctrlKey || t.altKey)) return (i = p(t)) ? (null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(i), this.setInputSummary({\n textAdded: i,\n didDelete: this.selectionIsExpanded()\n })) : void 0;\n },\n textInput: function textInput(t) {\n var e, n, i, o;\n return e = t.data, o = this.inputSummary.textAdded, o && o !== e && o.toUpperCase() === e ? (n = this.getSelectedRange(), this.setSelectedRange([n[0], n[1] + o.length]), null != (i = this.responder) && i.insertString(e), this.setInputSummary({\n textAdded: e\n }), this.setSelectedRange(n)) : void 0;\n },\n dragenter: function dragenter(t) {\n return t.preventDefault();\n },\n dragstart: function dragstart(t) {\n var e, n;\n return n = t.target, this.serializeSelectionToDataTransfer(t.dataTransfer), this.draggedRange = this.getSelectedRange(), null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidStartDrag ? e.inputControllerDidStartDrag() : void 0;\n },\n dragover: function dragover(t) {\n var e, n;\n return !this.draggedRange && !this.canAcceptDataTransfer(t.dataTransfer) || (t.preventDefault(), e = {\n x: t.clientX,\n y: t.clientY\n }, l(e, this.draggingPoint)) ? void 0 : (this.draggingPoint = e, null != (n = this.delegate) && \"function\" == typeof n.inputControllerDidReceiveDragOverPoint ? n.inputControllerDidReceiveDragOverPoint(this.draggingPoint) : void 0);\n },\n dragend: function dragend() {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidCancelDrag && t.inputControllerDidCancelDrag(), this.draggedRange = null, this.draggingPoint = null;\n },\n drop: function drop(t) {\n var n, i, o, r, s, a, u, c, l;\n return t.preventDefault(), o = null != (s = t.dataTransfer) ? s.files : void 0, r = {\n x: t.clientX,\n y: t.clientY\n }, null != (a = this.responder) && a.setLocationRangeFromPointRange(r), (null != o ? o.length : void 0) ? this.attachFiles(o) : this.draggedRange ? (null != (u = this.delegate) && u.inputControllerWillMoveText(), null != (c = this.responder) && c.moveTextFromRange(this.draggedRange), this.draggedRange = null, this.requestRender()) : (i = t.dataTransfer.getData(\"application/x-trix-document\")) && (n = e.Document.fromJSONString(i), null != (l = this.responder) && l.insertDocument(n), this.requestRender()), this.draggedRange = null, this.draggingPoint = null;\n },\n cut: function cut(t) {\n var e, n;\n return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && (this.serializeSelectionToDataTransfer(t.clipboardData) && t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillCutText(), this.deleteInDirection(\"backward\"), t.defaultPrevented) ? this.requestRender() : void 0;\n },\n copy: function copy(t) {\n var e;\n return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && this.serializeSelectionToDataTransfer(t.clipboardData) ? t.preventDefault() : void 0;\n },\n paste: function paste(t) {\n var n, o, s, a, u, c, l, p, f, g, v, y, b, A, C, x, w, E, S, R, k, D, L;\n return n = null != (p = t.clipboardData) ? p : t.testClipboardData, l = {\n clipboard: n\n }, null == n || h(t) ? void this.getPastedHTMLUsingHiddenElement(function (t) {\n return function (e) {\n var n, i, o;\n return l.type = \"text/html\", l.html = e, null != (n = t.delegate) && n.inputControllerWillPaste(l), null != (i = t.responder) && i.insertHTML(l.html), t.requestRender(), null != (o = t.delegate) ? o.inputControllerDidPaste(l) : void 0;\n };\n }(this)) : ((a = n.getData(\"URL\")) ? (l.type = \"text/html\", L = (c = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(c).trim() : a, l.html = this.createLinkHTML(a, L), null != (f = this.delegate) && f.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: L,\n didDelete: this.selectionIsExpanded()\n }), null != (C = this.responder) && C.insertHTML(l.html), this.requestRender(), null != (x = this.delegate) && x.inputControllerDidPaste(l)) : i(n) ? (l.type = \"text/plain\", l.string = n.getData(\"text/plain\"), null != (w = this.delegate) && w.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: l.string,\n didDelete: this.selectionIsExpanded()\n }), null != (E = this.responder) && E.insertString(l.string), this.requestRender(), null != (S = this.delegate) && S.inputControllerDidPaste(l)) : (u = n.getData(\"text/html\")) ? (l.type = \"text/html\", l.html = u, null != (R = this.delegate) && R.inputControllerWillPaste(l), null != (k = this.responder) && k.insertHTML(l.html), this.requestRender(), null != (D = this.delegate) && D.inputControllerDidPaste(l)) : m.call(n.types, \"Files\") >= 0 && (s = null != (g = n.items) && null != (v = g[0]) && \"function\" == typeof v.getAsFile ? v.getAsFile() : void 0) && (!s.name && (o = r(s)) && (s.name = \"pasted-file-\" + ++d + \".\" + o), l.type = \"File\", l.file = s, null != (y = this.delegate) && y.inputControllerWillAttachFiles(), null != (b = this.responder) && b.insertFile(l.file), this.requestRender(), null != (A = this.delegate) && A.inputControllerDidPaste(l)), t.preventDefault());\n },\n compositionstart: function compositionstart(t) {\n return this.getCompositionInput().start(t.data);\n },\n compositionupdate: function compositionupdate(t) {\n return this.getCompositionInput().update(t.data);\n },\n compositionend: function compositionend(t) {\n return this.getCompositionInput().end(t.data);\n },\n beforeinput: function beforeinput() {\n return this.inputSummary.didInput = !0;\n },\n input: function input(t) {\n return this.inputSummary.didInput = !0, t.stopPropagation();\n }\n }, s.prototype.keys = {\n backspace: function backspace(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n \"delete\": function _delete(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n \"return\": function _return() {\n var t, e;\n return this.setInputSummary({\n preferDocument: !0\n }), null != (t = this.delegate) && t.inputControllerWillPerformTyping(), null != (e = this.responder) ? e.insertLineBreak() : void 0;\n },\n tab: function tab(t) {\n var e, n;\n return (null != (e = this.responder) ? e.canIncreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.increaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n },\n left: function left(t) {\n var e;\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n },\n right: function right(t) {\n var e;\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n },\n control: {\n d: function d(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n h: function h(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n o: function o(t) {\n var e, n;\n return t.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\", {\n updatePosition: !1\n }), this.requestRender();\n }\n },\n shift: {\n \"return\": function _return(t) {\n var e, n;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\"), this.requestRender(), t.preventDefault();\n },\n tab: function tab(t) {\n var e, n;\n return (null != (e = this.responder) ? e.canDecreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.decreaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n },\n left: function left(t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"backward\")) : void 0;\n },\n right: function right(t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"forward\")) : void 0;\n }\n },\n alt: {\n backspace: function backspace() {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n },\n meta: {\n backspace: function backspace() {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n }\n }, s.prototype.getCompositionInput = function () {\n return this.isComposing() ? this.compositionInput : this.compositionInput = new t(this);\n }, s.prototype.isComposing = function () {\n return null != this.compositionInput && !this.compositionInput.isEnded();\n }, s.prototype.deleteInDirection = function (t, e) {\n var n;\n return (null != (n = this.responder) ? n.deleteInDirection(t) : void 0) !== !1 ? this.setInputSummary({\n didDelete: !0\n }) : e ? (e.preventDefault(), this.requestRender()) : void 0;\n }, s.prototype.serializeSelectionToDataTransfer = function (t) {\n var n, i;\n if (o(t)) return n = null != (i = this.responder) ? i.getSelectedDocument().toSerializableDocument() : void 0, t.setData(\"application/x-trix-document\", JSON.stringify(n)), t.setData(\"text/html\", e.DocumentView.render(n).innerHTML), t.setData(\"text/plain\", n.toString().replace(/\\n$/, \"\")), !0;\n }, s.prototype.canAcceptDataTransfer = function (t) {\n var e, n, i, o, r, s;\n\n for (s = {}, o = null != (i = null != t ? t.types : void 0) ? i : [], e = 0, n = o.length; n > e; e++) {\n r = o[e], s[r] = !0;\n }\n\n return s.Files || s[\"application/x-trix-document\"] || s[\"text/html\"] || s[\"text/plain\"];\n }, s.prototype.getPastedHTMLUsingHiddenElement = function (t) {\n var n, i, o;\n return i = this.getSelectedRange(), o = {\n position: \"absolute\",\n left: window.pageXOffset + \"px\",\n top: window.pageYOffset + \"px\",\n opacity: 0\n }, n = c({\n style: o,\n tagName: \"div\",\n editable: !0\n }), document.body.appendChild(n), n.focus(), requestAnimationFrame(function (o) {\n return function () {\n var r;\n return r = n.innerHTML, e.removeNode(n), o.setSelectedRange(i), t(r);\n };\n }(this));\n }, s.proxyMethod(\"responder?.getSelectedRange\"), s.proxyMethod(\"responder?.setSelectedRange\"), s.proxyMethod(\"responder?.expandSelectionInDirection\"), s.proxyMethod(\"responder?.selectionIsInCursorTarget\"), s.proxyMethod(\"responder?.selectionIsExpanded\"), s;\n }(e.InputController), r = function r(t) {\n var e, n;\n return null != (e = t.type) && null != (n = e.match(/\\/(\\w+)$/)) ? n[1] : void 0;\n }, s = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), p = function p(t) {\n var n;\n return t.key && s && t.key.codePointAt(0) === t.keyCode ? t.key : (null === t.which ? n = t.keyCode : 0 !== t.which && 0 !== t.charCode && (n = t.charCode), null != n && \"escape\" !== u[n] ? e.UTF16String.fromCodepoints([n]).toString() : void 0);\n }, h = function h(t) {\n var e, n, i, o, r, s, a, u, c, l;\n\n if (u = t.clipboardData) {\n if (m.call(u.types, \"text/html\") >= 0) {\n for (c = u.types, i = 0, s = c.length; s > i; i++) {\n if (l = c[i], e = /^CorePasteboardFlavorType/.test(l), n = /^dyn\\./.test(l) && u.getData(l), a = e || n) return !0;\n }\n\n return !1;\n }\n\n return o = m.call(u.types, \"com.apple.webarchive\") >= 0, r = m.call(u.types, \"com.apple.flat-rtfd\") >= 0, o || r;\n }\n }, t = function (t) {\n function e(t) {\n var e;\n this.inputController = t, e = this.inputController, this.responder = e.responder, this.delegate = e.delegate, this.inputSummary = e.inputSummary, this.data = {};\n }\n\n return f(e, t), e.prototype.start = function (t) {\n var e, n;\n return this.data.start = t, this.isSignificant() ? (\"keypress\" === this.inputSummary.eventName && this.inputSummary.textAdded && null != (e = this.responder) && e.deleteInDirection(\"left\"), this.selectionIsExpanded() || (this.insertPlaceholder(), this.requestRender()), this.range = null != (n = this.responder) ? n.getSelectedRange() : void 0) : void 0;\n }, e.prototype.update = function (t) {\n var e;\n return this.data.update = t, this.isSignificant() && (e = this.selectPlaceholder()) ? (this.forgetPlaceholder(), this.range = e) : void 0;\n }, e.prototype.end = function (t) {\n var e, n, i, o;\n return this.data.end = t, this.isSignificant() ? (this.forgetPlaceholder(), this.canApplyToDocument() ? (this.setInputSummary({\n preferDocument: !0,\n didInput: !1\n }), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.setSelectedRange(this.range), null != (i = this.responder) && i.insertString(this.data.end), null != (o = this.responder) ? o.setSelectedRange(this.range[0] + this.data.end.length) : void 0) : null != this.data.start || null != this.data.update ? (this.requestReparse(), this.inputController.reset()) : void 0) : this.inputController.reset();\n }, e.prototype.getEndData = function () {\n return this.data.end;\n }, e.prototype.isEnded = function () {\n return null != this.getEndData();\n }, e.prototype.isSignificant = function () {\n return n.composesExistingText ? this.inputSummary.didInput : !0;\n }, e.prototype.canApplyToDocument = function () {\n var t, e;\n return 0 === (null != (t = this.data.start) ? t.length : void 0) && (null != (e = this.data.end) ? e.length : void 0) > 0 && null != this.range;\n }, e.proxyMethod(\"inputController.setInputSummary\"), e.proxyMethod(\"inputController.requestRender\"), e.proxyMethod(\"inputController.requestReparse\"), e.proxyMethod(\"responder?.selectionIsExpanded\"), e.proxyMethod(\"responder?.insertPlaceholder\"), e.proxyMethod(\"responder?.selectPlaceholder\"), e.proxyMethod(\"responder?.forgetPlaceholder\"), e;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.dataTransferIsPlainText, n = e.keyEventIsKeyboardCommand, i = e.objectsAreEqual, e.Level2InputController = function (s) {\n function u() {\n return this.render = o(this.render, this), u.__super__.constructor.apply(this, arguments);\n }\n\n var c, l, h, p, d, f;\n return r(u, s), u.prototype.elementDidMutate = function () {\n var t;\n return this.scheduledRender ? this.composing && null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidAllowUnhandledInput ? t.inputControllerDidAllowUnhandledInput() : void 0 : this.reparse();\n }, u.prototype.scheduleRender = function () {\n return null != this.scheduledRender ? this.scheduledRender : this.scheduledRender = requestAnimationFrame(this.render);\n }, u.prototype.render = function () {\n var t;\n return cancelAnimationFrame(this.scheduledRender), this.scheduledRender = null, this.composing || null != (t = this.delegate) && t.render(), \"function\" == typeof this.afterRender && this.afterRender(), this.afterRender = null;\n }, u.prototype.reparse = function () {\n var t;\n return null != (t = this.delegate) ? t.reparse() : void 0;\n }, u.prototype.events = {\n keydown: function keydown(t) {\n var e, i, o, r;\n\n if (n(t)) {\n if (e = l(t), null != (r = this.delegate) ? r.inputControllerDidReceiveKeyboardCommand(e) : void 0) return t.preventDefault();\n } else if (o = t.key, t.altKey && (o += \"+Alt\"), t.shiftKey && (o += \"+Shift\"), i = this.keys[o]) return this.withEvent(t, i);\n },\n paste: function paste(t) {\n var e, n, i, o, r, s, a, u, c;\n return h(t) ? (t.preventDefault(), this.attachFiles(t.clipboardData.files)) : p(t) ? (t.preventDefault(), n = {\n type: \"text/plain\",\n string: t.clipboardData.getData(\"text/plain\")\n }, null != (i = this.delegate) && i.inputControllerWillPaste(n), null != (o = this.responder) && o.insertString(n.string), this.render(), null != (r = this.delegate) ? r.inputControllerDidPaste(n) : void 0) : (e = null != (s = t.clipboardData) ? s.getData(\"URL\") : void 0) ? (t.preventDefault(), n = {\n type: \"text/html\",\n html: this.createLinkHTML(e)\n }, null != (a = this.delegate) && a.inputControllerWillPaste(n), null != (u = this.responder) && u.insertHTML(n.html), this.render(), null != (c = this.delegate) ? c.inputControllerDidPaste(n) : void 0) : void 0;\n },\n beforeinput: function beforeinput(t) {\n var e;\n return (e = this.inputTypes[t.inputType]) ? (this.withEvent(t, e), this.scheduleRender()) : void 0;\n },\n input: function input() {\n return e.selectionChangeObserver.reset();\n },\n dragstart: function dragstart(t) {\n var e, n;\n return (null != (e = this.responder) ? e.selectionContainsAttachments() : void 0) ? (t.dataTransfer.setData(\"application/x-trix-dragging\", !0), this.dragging = {\n range: null != (n = this.responder) ? n.getSelectedRange() : void 0,\n point: d(t)\n }) : void 0;\n },\n dragenter: function dragenter(t) {\n return c(t) ? t.preventDefault() : void 0;\n },\n dragover: function dragover(t) {\n var e, n;\n\n if (this.dragging) {\n if (t.preventDefault(), e = d(t), !i(e, this.dragging.point)) return this.dragging.point = e, null != (n = this.responder) ? n.setLocationRangeFromPointRange(e) : void 0;\n } else if (c(t)) return t.preventDefault();\n },\n drop: function drop(t) {\n var e, n, i, o;\n return this.dragging ? (t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillMoveText(), null != (i = this.responder) && i.moveTextFromRange(this.dragging.range), this.dragging = null, this.scheduleRender()) : c(t) ? (t.preventDefault(), e = d(t), null != (o = this.responder) && o.setLocationRangeFromPointRange(e), this.attachFiles(t.dataTransfer.files)) : void 0;\n },\n dragend: function dragend() {\n var t;\n return this.dragging ? (null != (t = this.responder) && t.setSelectedRange(this.dragging.range), this.dragging = null) : void 0;\n },\n compositionend: function compositionend() {\n return this.composing ? (this.composing = !1, this.scheduleRender()) : void 0;\n }\n }, u.prototype.keys = {\n ArrowLeft: function ArrowLeft() {\n var t, e;\n return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n },\n ArrowRight: function ArrowRight() {\n var t, e;\n return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"forward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n },\n Backspace: function Backspace() {\n var t, e, n;\n return (null != (t = this.responder) ? t.shouldManageDeletingInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.deleteInDirection(\"backward\"), this.render()) : void 0;\n },\n Tab: function Tab() {\n var t, e;\n return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.increaseNestingLevel(), this.render()) : void 0;\n },\n \"Tab+Shift\": function TabShift() {\n var t, e;\n return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.decreaseNestingLevel(), this.render()) : void 0;\n }\n }, u.prototype.inputTypes = {\n deleteByComposition: function deleteByComposition() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteByCut: function deleteByCut() {\n return this.deleteInDirection(\"backward\");\n },\n deleteByDrag: function deleteByDrag() {\n return this.event.preventDefault(), this.withTargetDOMRange(function () {\n var t;\n return this.deleteByDragRange = null != (t = this.responder) ? t.getSelectedRange() : void 0;\n });\n },\n deleteCompositionText: function deleteCompositionText() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteContent: function deleteContent() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentBackward: function deleteContentBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentForward: function deleteContentForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteEntireSoftLine: function deleteEntireSoftLine() {\n return this.deleteInDirection(\"forward\");\n },\n deleteHardLineBackward: function deleteHardLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteHardLineForward: function deleteHardLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteSoftLineBackward: function deleteSoftLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteSoftLineForward: function deleteSoftLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteWordBackward: function deleteWordBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteWordForward: function deleteWordForward() {\n return this.deleteInDirection(\"forward\");\n },\n formatBackColor: function formatBackColor() {\n return this.activateAttributeIfSupported(\"backgroundColor\", this.event.data);\n },\n formatBold: function formatBold() {\n return this.toggleAttributeIfSupported(\"bold\");\n },\n formatFontColor: function formatFontColor() {\n return this.activateAttributeIfSupported(\"color\", this.event.data);\n },\n formatFontName: function formatFontName() {\n return this.activateAttributeIfSupported(\"font\", this.event.data);\n },\n formatIndent: function formatIndent() {\n var t;\n return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.increaseNestingLevel() : void 0;\n }) : void 0;\n },\n formatItalic: function formatItalic() {\n return this.toggleAttributeIfSupported(\"italic\");\n },\n formatJustifyCenter: function formatJustifyCenter() {\n return this.toggleAttributeIfSupported(\"justifyCenter\");\n },\n formatJustifyFull: function formatJustifyFull() {\n return this.toggleAttributeIfSupported(\"justifyFull\");\n },\n formatJustifyLeft: function formatJustifyLeft() {\n return this.toggleAttributeIfSupported(\"justifyLeft\");\n },\n formatJustifyRight: function formatJustifyRight() {\n return this.toggleAttributeIfSupported(\"justifyRight\");\n },\n formatOutdent: function formatOutdent() {\n var t;\n return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.decreaseNestingLevel() : void 0;\n }) : void 0;\n },\n formatRemove: function formatRemove() {\n return this.withTargetDOMRange(function () {\n var t, e, n, i;\n i = [];\n\n for (t in null != (e = this.responder) ? e.getCurrentAttributes() : void 0) {\n i.push(null != (n = this.responder) ? n.removeCurrentAttribute(t) : void 0);\n }\n\n return i;\n });\n },\n formatSetBlockTextDirection: function formatSetBlockTextDirection() {\n return this.activateAttributeIfSupported(\"blockDir\", this.event.data);\n },\n formatSetInlineTextDirection: function formatSetInlineTextDirection() {\n return this.activateAttributeIfSupported(\"textDir\", this.event.data);\n },\n formatStrikeThrough: function formatStrikeThrough() {\n return this.toggleAttributeIfSupported(\"strike\");\n },\n formatSubscript: function formatSubscript() {\n return this.toggleAttributeIfSupported(\"sub\");\n },\n formatSuperscript: function formatSuperscript() {\n return this.toggleAttributeIfSupported(\"sup\");\n },\n formatUnderline: function formatUnderline() {\n return this.toggleAttributeIfSupported(\"underline\");\n },\n historyRedo: function historyRedo() {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformRedo() : void 0;\n },\n historyUndo: function historyUndo() {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformUndo() : void 0;\n },\n insertCompositionText: function insertCompositionText() {\n return this.composing = !0, this.insertString(this.event.data);\n },\n insertFromComposition: function insertFromComposition() {\n return this.composing = !1, this.insertString(this.event.data);\n },\n insertFromDrop: function insertFromDrop() {\n var t, e;\n return (t = this.deleteByDragRange) ? (this.deleteByDragRange = null, null != (e = this.delegate) && e.inputControllerWillMoveText(), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.moveTextFromRange(t) : void 0;\n })) : void 0;\n },\n insertFromPaste: function insertFromPaste() {\n var n, i, o, r, s, a, u, c, l, h, p;\n return n = this.event.dataTransfer, s = {\n dataTransfer: n\n }, (i = n.getData(\"URL\")) ? (this.event.preventDefault(), s.type = \"text/html\", p = (r = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(r).trim() : i, s.html = this.createLinkHTML(i, p), null != (a = this.delegate) && a.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertHTML(s.html) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : t(n) ? (s.type = \"text/plain\", s.string = n.getData(\"text/plain\"), null != (u = this.delegate) && u.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertString(s.string) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : (o = n.getData(\"text/html\")) ? (this.event.preventDefault(), s.type = \"text/html\", s.html = o, null != (c = this.delegate) && c.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertHTML(s.html) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : (null != (l = n.files) ? l.length : void 0) ? (s.type = \"File\", s.file = n.files[0], null != (h = this.delegate) && h.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertFile(s.file) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : void 0;\n },\n insertFromYank: function insertFromYank() {\n return this.insertString(this.event.data);\n },\n insertLineBreak: function insertLineBreak() {\n return this.insertString(\"\\n\");\n },\n insertLink: function insertLink() {\n return this.activateAttributeIfSupported(\"href\", this.event.data);\n },\n insertOrderedList: function insertOrderedList() {\n return this.toggleAttributeIfSupported(\"number\");\n },\n insertParagraph: function insertParagraph() {\n var t;\n return null != (t = this.delegate) && t.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertLineBreak() : void 0;\n });\n },\n insertReplacementText: function insertReplacementText() {\n return this.insertString(this.event.dataTransfer.getData(\"text/plain\"), {\n updatePosition: !1\n });\n },\n insertText: function insertText() {\n var t, e;\n return this.insertString(null != (t = this.event.data) ? t : null != (e = this.event.dataTransfer) ? e.getData(\"text/plain\") : void 0);\n },\n insertTranspose: function insertTranspose() {\n return this.insertString(this.event.data);\n },\n insertUnorderedList: function insertUnorderedList() {\n return this.toggleAttributeIfSupported(\"bullet\");\n }\n }, u.prototype.insertString = function (t, e) {\n var n;\n return null == t && (t = \"\"), null != (n = this.delegate) && n.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var n;\n return null != (n = this.responder) ? n.insertString(t, e) : void 0;\n });\n }, u.prototype.toggleAttributeIfSupported = function (t) {\n var n;\n return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (n = this.delegate) && n.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.toggleCurrentAttribute(t) : void 0;\n })) : void 0;\n }, u.prototype.activateAttributeIfSupported = function (t, n) {\n var i;\n return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (i = this.delegate) && i.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.setCurrentAttribute(t, n) : void 0;\n })) : void 0;\n }, u.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r;\n return o = (null != e ? e : {\n recordUndoEntry: !0\n }).recordUndoEntry, o && null != (r = this.delegate) && r.inputControllerWillPerformTyping(), i = function (e) {\n return function () {\n var n;\n return null != (n = e.responder) ? n.deleteInDirection(t) : void 0;\n };\n }(this), (n = this.getTargetDOMRange({\n minLength: 2\n })) ? this.withTargetDOMRange(n, i) : i();\n }, u.prototype.withTargetDOMRange = function (t, n) {\n var i;\n return \"function\" == typeof t && (n = t, t = this.getTargetDOMRange()), t ? null != (i = this.responder) ? i.withTargetDOMRange(t, n.bind(this)) : void 0 : (e.selectionChangeObserver.reset(), n.call(this));\n }, u.prototype.getTargetDOMRange = function (t) {\n var e, n, i, o;\n return i = (null != t ? t : {\n minLength: 0\n }).minLength, (o = \"function\" == typeof (e = this.event).getTargetRanges ? e.getTargetRanges() : void 0) && o.length && (n = f(o[0]), 0 === i || n.toString().length >= i) ? n : void 0;\n }, f = function f(t) {\n var e;\n return e = document.createRange(), e.setStart(t.startContainer, t.startOffset), e.setEnd(t.endContainer, t.endOffset), e;\n }, u.prototype.withEvent = function (t, e) {\n var n;\n this.event = t;\n\n try {\n n = e.call(this);\n } finally {\n this.event = null;\n }\n\n return n;\n }, c = function c(t) {\n var e, n;\n return a.call(null != (e = null != (n = t.dataTransfer) ? n.types : void 0) ? e : [], \"Files\") >= 0;\n }, h = function h(t) {\n var e;\n return (e = t.clipboardData) ? a.call(e.types, \"Files\") >= 0 && 1 === e.types.length && e.files.length >= 1 : void 0;\n }, p = function p(t) {\n var e;\n return (e = t.clipboardData) ? a.call(e.types, \"text/plain\") >= 0 && 1 === e.types.length : void 0;\n }, l = function l(t) {\n var e;\n return e = [], t.altKey && e.push(\"alt\"), t.shiftKey && e.push(\"shift\"), e.push(t.key), e;\n }, d = function d(t) {\n return {\n x: t.clientX,\n y: t.clientY\n };\n }, u;\n }(e.InputController);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c = function c(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n l = function l(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n h.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n h = {}.hasOwnProperty;\n\n n = e.defer, i = e.handleEvent, s = e.makeElement, u = e.tagName, a = e.config, r = a.lang, t = a.css, o = a.keyNames, e.AttachmentEditorController = function (a) {\n function h(t, e, n, i) {\n this.attachmentPiece = t, this.element = e, this.container = n, this.options = null != i ? i : {}, this.didBlurCaption = c(this.didBlurCaption, this), this.didChangeCaption = c(this.didChangeCaption, this), this.didInputCaption = c(this.didInputCaption, this), this.didKeyDownCaption = c(this.didKeyDownCaption, this), this.didClickActionButton = c(this.didClickActionButton, this), this.didClickToolbar = c(this.didClickToolbar, this), this.attachment = this.attachmentPiece.attachment, \"a\" === u(this.element) && (this.element = this.element.firstChild), this.install();\n }\n\n var p;\n return l(h, a), p = function p(t) {\n return function () {\n var e;\n return e = t.apply(this, arguments), e[\"do\"](), null == this.undos && (this.undos = []), this.undos.push(e.undo);\n };\n }, h.prototype.install = function () {\n return this.makeElementMutable(), this.addToolbar(), this.attachment.isPreviewable() ? this.installCaptionEditor() : void 0;\n }, h.prototype.uninstall = function () {\n var t, e;\n\n for (this.savePendingCaption(); e = this.undos.pop();) {\n e();\n }\n\n return null != (t = this.delegate) ? t.didUninstallAttachmentEditor(this) : void 0;\n }, h.prototype.savePendingCaption = function () {\n var t, e, n;\n return null != this.pendingCaption ? (t = this.pendingCaption, this.pendingCaption = null, t ? null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestUpdatingAttributesForAttachment ? e.attachmentEditorDidRequestUpdatingAttributesForAttachment({\n caption: t\n }, this.attachment) : void 0 : null != (n = this.delegate) && \"function\" == typeof n.attachmentEditorDidRequestRemovingAttributeForAttachment ? n.attachmentEditorDidRequestRemovingAttributeForAttachment(\"caption\", this.attachment) : void 0) : void 0;\n }, h.prototype.makeElementMutable = p(function () {\n return {\n \"do\": function (t) {\n return function () {\n return t.element.dataset.trixMutable = !0;\n };\n }(this),\n undo: function (t) {\n return function () {\n return delete t.element.dataset.trixMutable;\n };\n }(this)\n };\n }), h.prototype.addToolbar = p(function () {\n var n;\n return n = s({\n tagName: \"div\",\n className: t.attachmentToolbar,\n data: {\n trixMutable: !0\n },\n childNodes: s({\n tagName: \"div\",\n className: \"trix-button-row\",\n childNodes: s({\n tagName: \"span\",\n className: \"trix-button-group trix-button-group--actions\",\n childNodes: s({\n tagName: \"button\",\n className: \"trix-button trix-button--remove\",\n textContent: r.remove,\n attributes: {\n title: r.remove\n },\n data: {\n trixAction: \"remove\"\n }\n })\n })\n })\n }), this.attachment.isPreviewable() && n.appendChild(s({\n tagName: \"div\",\n className: t.attachmentMetadataContainer,\n childNodes: s({\n tagName: \"span\",\n className: t.attachmentMetadata,\n childNodes: [s({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: this.attachment.getFilename(),\n attributes: {\n title: this.attachment.getFilename()\n }\n }), s({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: this.attachment.getFormattedFilesize()\n })]\n })\n })), i(\"click\", {\n onElement: n,\n withCallback: this.didClickToolbar\n }), i(\"click\", {\n onElement: n,\n matchingSelector: \"[data-trix-action]\",\n withCallback: this.didClickActionButton\n }), {\n \"do\": function (t) {\n return function () {\n return t.element.appendChild(n);\n };\n }(this),\n undo: function () {\n return function () {\n return e.removeNode(n);\n };\n }(this)\n };\n }), h.prototype.installCaptionEditor = p(function () {\n var o, a, u, c, l;\n return c = s({\n tagName: \"textarea\",\n className: t.attachmentCaptionEditor,\n attributes: {\n placeholder: r.captionPlaceholder\n },\n data: {\n trixMutable: !0\n }\n }), c.value = this.attachmentPiece.getCaption(), l = c.cloneNode(), l.classList.add(\"trix-autoresize-clone\"), l.tabIndex = -1, o = function o() {\n return l.value = c.value, c.style.height = l.scrollHeight + \"px\";\n }, i(\"input\", {\n onElement: c,\n withCallback: o\n }), i(\"input\", {\n onElement: c,\n withCallback: this.didInputCaption\n }), i(\"keydown\", {\n onElement: c,\n withCallback: this.didKeyDownCaption\n }), i(\"change\", {\n onElement: c,\n withCallback: this.didChangeCaption\n }), i(\"blur\", {\n onElement: c,\n withCallback: this.didBlurCaption\n }), u = this.element.querySelector(\"figcaption\"), a = u.cloneNode(), {\n \"do\": function (e) {\n return function () {\n return u.style.display = \"none\", a.appendChild(c), a.appendChild(l), a.classList.add(t.attachmentCaption + \"--editing\"), u.parentElement.insertBefore(a, u), o(), e.options.editCaption ? n(function () {\n return c.focus();\n }) : void 0;\n };\n }(this),\n undo: function undo() {\n return e.removeNode(a), u.style.display = null;\n }\n };\n }), h.prototype.didClickToolbar = function (t) {\n return t.preventDefault(), t.stopPropagation();\n }, h.prototype.didClickActionButton = function (t) {\n var e, n;\n\n switch (e = t.target.getAttribute(\"data-trix-action\")) {\n case \"remove\":\n return null != (n = this.delegate) ? n.attachmentEditorDidRequestRemovalOfAttachment(this.attachment) : void 0;\n }\n }, h.prototype.didKeyDownCaption = function (t) {\n var e;\n return \"return\" === o[t.keyCode] ? (t.preventDefault(), this.savePendingCaption(), null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestDeselectingAttachment ? e.attachmentEditorDidRequestDeselectingAttachment(this.attachment) : void 0) : void 0;\n }, h.prototype.didInputCaption = function (t) {\n return this.pendingCaption = t.target.value.replace(/\\s/g, \" \").trim();\n }, h.prototype.didChangeCaption = function () {\n return this.savePendingCaption();\n }, h.prototype.didBlurCaption = function () {\n return this.savePendingCaption();\n }, h;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, t = e.config.css, e.AttachmentView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.attachment = this.object, this.attachment.uploadProgressDelegate = this, this.attachmentPiece = this.options.piece;\n }\n\n var a;\n return o(s, r), s.attachmentSelector = \"[data-trix-attachment]\", s.prototype.createContentNodes = function () {\n return [];\n }, s.prototype.createNodes = function () {\n var e, n, o, r, s, u, c;\n if (e = r = i({\n tagName: \"figure\",\n className: this.getClassName(),\n data: this.getData(),\n editable: !1\n }), (n = this.getHref()) && (r = i({\n tagName: \"a\",\n editable: !1,\n attributes: {\n href: n,\n tabindex: -1\n }\n }), e.appendChild(r)), this.attachment.hasContent()) r.innerHTML = this.attachment.getContent();else for (c = this.createContentNodes(), o = 0, s = c.length; s > o; o++) {\n u = c[o], r.appendChild(u);\n }\n return r.appendChild(this.createCaptionElement()), this.attachment.isPending() && (this.progressElement = i({\n tagName: \"progress\",\n attributes: {\n \"class\": t.attachmentProgress,\n value: this.attachment.getUploadProgress(),\n max: 100\n },\n data: {\n trixMutable: !0,\n trixStoreKey: [\"progressElement\", this.attachment.id].join(\"/\")\n }\n }), e.appendChild(this.progressElement)), [a(\"left\"), e, a(\"right\")];\n }, s.prototype.createCaptionElement = function () {\n var e, n, o, r, s, a, u;\n return o = i({\n tagName: \"figcaption\",\n className: t.attachmentCaption\n }), (e = this.attachmentPiece.getCaption()) ? (o.classList.add(t.attachmentCaption + \"--edited\"), o.textContent = e) : (n = this.getCaptionConfig(), n.name && (r = this.attachment.getFilename()), n.size && (a = this.attachment.getFormattedFilesize()), r && (s = i({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: r\n }), o.appendChild(s)), a && (r && o.appendChild(document.createTextNode(\" \")), u = i({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: a\n }), o.appendChild(u))), o;\n }, s.prototype.getClassName = function () {\n var e, n;\n return n = [t.attachment, t.attachment + \"--\" + this.attachment.getType()], (e = this.attachment.getExtension()) && n.push(t.attachment + \"--\" + e), n.join(\" \");\n }, s.prototype.getData = function () {\n var t, e;\n return e = {\n trixAttachment: JSON.stringify(this.attachment),\n trixContentType: this.attachment.getContentType(),\n trixId: this.attachment.id\n }, t = this.attachmentPiece.attributes, t.isEmpty() || (e.trixAttributes = JSON.stringify(t)), this.attachment.isPending() && (e.trixSerialize = !1), e;\n }, s.prototype.getHref = function () {\n return n(this.attachment.getContent(), \"a\") ? void 0 : this.attachment.getHref();\n }, s.prototype.getCaptionConfig = function () {\n var t, n, i;\n return i = this.attachment.getType(), t = e.copyObject(null != (n = e.config.attachments[i]) ? n.caption : void 0), \"file\" === i && (t.name = !0), t;\n }, s.prototype.findProgressElement = function () {\n var t;\n return null != (t = this.findElement()) ? t.querySelector(\"progress\") : void 0;\n }, a = function a(t) {\n return i({\n tagName: \"span\",\n textContent: e.ZERO_WIDTH_SPACE,\n data: {\n trixCursorTarget: t,\n trixSerialize: !1\n }\n });\n }, s.prototype.attachmentDidChangeUploadProgress = function () {\n var t, e;\n return e = this.attachment.getUploadProgress(), null != (t = this.findProgressElement()) ? t.value = e : void 0;\n }, s;\n }(e.ObjectView), n = function n(t, e) {\n var n;\n return n = i(\"div\"), n.innerHTML = null != t ? t : \"\", n.querySelector(e);\n };\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.makeElement, e.PreviewableAttachmentView = function (i) {\n function o() {\n o.__super__.constructor.apply(this, arguments), this.attachment.previewDelegate = this;\n }\n\n return n(o, i), o.prototype.createContentNodes = function () {\n return this.image = t({\n tagName: \"img\",\n attributes: {\n src: \"\"\n },\n data: {\n trixMutable: !0\n }\n }), this.refresh(this.image), [this.image];\n }, o.prototype.createCaptionElement = function () {\n var t;\n return t = o.__super__.createCaptionElement.apply(this, arguments), t.textContent || t.setAttribute(\"data-trix-placeholder\", e.config.lang.captionPlaceholder), t;\n }, o.prototype.refresh = function (t) {\n var e;\n return null == t && (t = null != (e = this.findElement()) ? e.querySelector(\"img\") : void 0), t ? this.updateAttributesForImage(t) : void 0;\n }, o.prototype.updateAttributesForImage = function (t) {\n var e, n, i, o, r, s;\n return r = this.attachment.getURL(), n = this.attachment.getPreviewURL(), t.src = n || r, n === r ? t.removeAttribute(\"data-trix-serialized-attributes\") : (i = JSON.stringify({\n src: r\n }), t.setAttribute(\"data-trix-serialized-attributes\", i)), s = this.attachment.getWidth(), e = this.attachment.getHeight(), null != s && (t.width = s), null != e && (t.height = e), o = [\"imageElement\", this.attachment.id, t.src, t.width, t.height].join(\"/\"), t.dataset.trixStoreKey = o;\n }, o.prototype.attachmentDidChangeAttributes = function () {\n return this.refresh(this.image), this.refresh();\n }, o;\n }(e.AttachmentView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, t = e.findInnerElement, n = e.getTextConfig, e.PieceView = function (r) {\n function s() {\n var t;\n s.__super__.constructor.apply(this, arguments), this.piece = this.object, this.attributes = this.piece.getAttributes(), t = this.options, this.textConfig = t.textConfig, this.context = t.context, this.piece.attachment ? this.attachment = this.piece.attachment : this.string = this.piece.toString();\n }\n\n var a;\n return o(s, r), s.prototype.createNodes = function () {\n var e, n, i, o, r, s;\n\n if (s = this.attachment ? this.createAttachmentNodes() : this.createStringNodes(), e = this.createElement()) {\n for (i = t(e), n = 0, o = s.length; o > n; n++) {\n r = s[n], i.appendChild(r);\n }\n\n s = [e];\n }\n\n return s;\n }, s.prototype.createAttachmentNodes = function () {\n var t, n;\n return t = this.attachment.isPreviewable() ? e.PreviewableAttachmentView : e.AttachmentView, n = this.createChildView(t, this.piece.attachment, {\n piece: this.piece\n }), n.getNodes();\n }, s.prototype.createStringNodes = function () {\n var t, e, n, o, r, s, a, u, c, l;\n if (null != (u = this.textConfig) ? u.plaintext : void 0) return [document.createTextNode(this.string)];\n\n for (a = [], c = this.string.split(\"\\n\"), n = e = 0, o = c.length; o > e; n = ++e) {\n l = c[n], n > 0 && (t = i(\"br\"), a.push(t)), (r = l.length) && (s = document.createTextNode(this.preserveSpaces(l)), a.push(s));\n }\n\n return a;\n }, s.prototype.createElement = function () {\n var t, e, o, r, s, a, u, c, l;\n c = {}, a = this.attributes;\n\n for (r in a) {\n if (l = a[r], (t = n(r)) && (t.tagName && (s = i(t.tagName), o ? (o.appendChild(s), o = s) : e = o = s), t.styleProperty && (c[t.styleProperty] = l), t.style)) {\n u = t.style;\n\n for (r in u) {\n l = u[r], c[r] = l;\n }\n }\n }\n\n if (Object.keys(c).length) {\n null == e && (e = i(\"span\"));\n\n for (r in c) {\n l = c[r], e.style[r] = l;\n }\n }\n\n return e;\n }, s.prototype.createContainerElement = function () {\n var t, e, o, r, s;\n r = this.attributes;\n\n for (o in r) {\n if (s = r[o], (e = n(o)) && e.groupTagName) return t = {}, t[o] = s, i(e.groupTagName, t);\n }\n }, a = e.NON_BREAKING_SPACE, s.prototype.preserveSpaces = function (t) {\n return this.context.isLast && (t = t.replace(/\\ $/, a)), t = t.replace(/(\\S)\\ {3}(\\S)/g, \"$1 \" + a + \" $2\").replace(/\\ {2}/g, a + \" \").replace(/\\ {2}/g, \" \" + a), (this.context.isFirst || this.context.followsWhitespace) && (t = t.replace(/^\\ /, a)), t;\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function t(_t11, e) {\n function i() {\n this.constructor = _t11;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t11[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t11.prototype = new i(), _t11.__super__ = e.prototype, _t11;\n },\n n = {}.hasOwnProperty;\n\n e.TextView = function (n) {\n function i() {\n i.__super__.constructor.apply(this, arguments), this.text = this.object, this.textConfig = this.options.textConfig;\n }\n\n var o;\n return t(i, n), i.prototype.createNodes = function () {\n var t, n, i, r, s, a, u, c, l, h;\n\n for (a = [], c = e.ObjectGroup.groupObjects(this.getPieces()), r = c.length - 1, i = n = 0, s = c.length; s > n; i = ++n) {\n u = c[i], t = {}, 0 === i && (t.isFirst = !0), i === r && (t.isLast = !0), o(l) && (t.followsWhitespace = !0), h = this.findOrCreateCachedChildView(e.PieceView, u, {\n textConfig: this.textConfig,\n context: t\n }), a.push.apply(a, h.getNodes()), l = u;\n }\n\n return a;\n }, i.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (i = this.text.getPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], n.hasAttribute(\"blockBreak\") || o.push(n);\n }\n\n return o;\n }, o = function o(t) {\n return /\\s$/.test(null != t ? t.toString() : void 0);\n }, i;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, n = e.getBlockConfig, t = e.config.css, e.BlockView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.block = this.object, this.attributes = this.block.getAttributes();\n }\n\n return o(s, r), s.prototype.createNodes = function () {\n var t, o, r, s, a, u, c, l, h, p, d;\n if (o = document.createComment(\"block\"), c = [o], this.block.isEmpty() ? c.push(i(\"br\")) : (p = null != (l = n(this.block.getLastAttribute())) ? l.text : void 0, d = this.findOrCreateCachedChildView(e.TextView, this.block.text, {\n textConfig: p\n }), c.push.apply(c, d.getNodes()), this.shouldAddExtraNewlineElement() && c.push(i(\"br\"))), this.attributes.length) return c;\n\n for (h = e.config.blockAttributes[\"default\"].tagName, this.block.isRTL() && (t = {\n dir: \"rtl\"\n }), r = i({\n tagName: h,\n attributes: t\n }), s = 0, a = c.length; a > s; s++) {\n u = c[s], r.appendChild(u);\n }\n\n return [r];\n }, s.prototype.createContainerElement = function (e) {\n var o, r, s, a, u;\n return o = this.attributes[e], u = n(o).tagName, 0 === e && this.block.isRTL() && (r = {\n dir: \"rtl\"\n }), \"attachmentGallery\" === o && (a = this.block.getBlockBreakPosition(), s = t.attachmentGallery + \" \" + t.attachmentGallery + \"--\" + a), i({\n tagName: u,\n className: s,\n attributes: r\n });\n }, s.prototype.shouldAddExtraNewlineElement = function () {\n return /\\n\\n$/.test(this.block.toString());\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i = function i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n t = e.defer, n = e.makeElement, e.DocumentView = function (o) {\n function r() {\n r.__super__.constructor.apply(this, arguments), this.element = this.options.element, this.elementStore = new e.ElementStore(), this.setDocument(this.object);\n }\n\n var s, a, u;\n return i(r, o), r.render = function (t) {\n var e, i;\n return e = n(\"div\"), i = new this(t, {\n element: e\n }), i.render(), i.sync(), e;\n }, r.prototype.setDocument = function (t) {\n return t.isEqualTo(this.document) ? void 0 : this.document = this.object = t;\n }, r.prototype.render = function () {\n var t, i, o, r, s, a, u;\n\n if (this.childViews = [], this.shadowElement = n(\"div\"), !this.document.isEmpty()) {\n for (s = e.ObjectGroup.groupObjects(this.document.getBlocks(), {\n asTree: !0\n }), a = [], t = 0, i = s.length; i > t; t++) {\n r = s[t], u = this.findOrCreateCachedChildView(e.BlockView, r), a.push(function () {\n var t, e, n, i;\n\n for (n = u.getNodes(), i = [], t = 0, e = n.length; e > t; t++) {\n o = n[t], i.push(this.shadowElement.appendChild(o));\n }\n\n return i;\n }.call(this));\n }\n\n return a;\n }\n }, r.prototype.isSynced = function () {\n return s(this.shadowElement, this.element);\n }, r.prototype.sync = function () {\n var t;\n\n for (t = this.createDocumentFragmentForSync(); this.element.lastChild;) {\n this.element.removeChild(this.element.lastChild);\n }\n\n return this.element.appendChild(t), this.didSync();\n }, r.prototype.didSync = function () {\n return this.elementStore.reset(a(this.element)), t(function (t) {\n return function () {\n return t.garbageCollectCachedViews();\n };\n }(this));\n }, r.prototype.createDocumentFragmentForSync = function () {\n var t, e, n, i, o, r, s, u, c, l;\n\n for (e = document.createDocumentFragment(), u = this.shadowElement.childNodes, n = 0, o = u.length; o > n; n++) {\n s = u[n], e.appendChild(s.cloneNode(!0));\n }\n\n for (c = a(e), i = 0, r = c.length; r > i; i++) {\n t = c[i], (l = this.elementStore.remove(t)) && t.parentNode.replaceChild(l, t);\n }\n\n return e;\n }, a = function a(t) {\n return t.querySelectorAll(\"[data-trix-store-key]\");\n }, s = function s(t, e) {\n return u(t.innerHTML) === u(e.innerHTML);\n }, u = function u(t) {\n return t.replace(/ /g, \" \");\n }, r;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function s(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n a = function a(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n u.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n u = {}.hasOwnProperty;\n\n i = e.findClosestElementFromNode, o = e.handleEvent, r = e.innerElementIsActive, n = e.defer, t = e.AttachmentView.attachmentSelector, e.CompositionController = function (u) {\n function c(n, i) {\n this.element = n, this.composition = i, this.didClickAttachment = s(this.didClickAttachment, this), this.didBlur = s(this.didBlur, this), this.didFocus = s(this.didFocus, this), this.documentView = new e.DocumentView(this.composition.document, {\n element: this.element\n }), o(\"focus\", {\n onElement: this.element,\n withCallback: this.didFocus\n }), o(\"blur\", {\n onElement: this.element,\n withCallback: this.didBlur\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a[contenteditable=false]\",\n preventDefault: !0\n }), o(\"mousedown\", {\n onElement: this.element,\n matchingSelector: t,\n withCallback: this.didClickAttachment\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a\" + t,\n preventDefault: !0\n });\n }\n\n return a(c, u), c.prototype.didFocus = function () {\n var t, e, n;\n return t = function (t) {\n return function () {\n var e;\n return t.focused ? void 0 : (t.focused = !0, null != (e = t.delegate) && \"function\" == typeof e.compositionControllerDidFocus ? e.compositionControllerDidFocus() : void 0);\n };\n }(this), null != (e = null != (n = this.blurPromise) ? n.then(t) : void 0) ? e : t();\n }, c.prototype.didBlur = function () {\n return this.blurPromise = new Promise(function (t) {\n return function (e) {\n return n(function () {\n var n;\n return r(t.element) || (t.focused = null, null != (n = t.delegate) && \"function\" == typeof n.compositionControllerDidBlur && n.compositionControllerDidBlur()), t.blurPromise = null, e();\n });\n };\n }(this));\n }, c.prototype.didClickAttachment = function (t, e) {\n var n, o, r;\n return n = this.findAttachmentForElement(e), o = null != i(t.target, {\n matchingSelector: \"figcaption\"\n }), null != (r = this.delegate) && \"function\" == typeof r.compositionControllerDidSelectAttachment ? r.compositionControllerDidSelectAttachment(n, {\n editCaption: o\n }) : void 0;\n }, c.prototype.getSerializableElement = function () {\n return this.isEditingAttachment() ? this.documentView.shadowElement : this.element;\n }, c.prototype.render = function () {\n var t, e, n;\n return this.revision !== this.composition.revision && (this.documentView.setDocument(this.composition.document), this.documentView.render(), this.revision = this.composition.revision), this.canSyncDocumentView() && !this.documentView.isSynced() && (null != (t = this.delegate) && \"function\" == typeof t.compositionControllerWillSyncDocumentView && t.compositionControllerWillSyncDocumentView(), this.documentView.sync(), null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidSyncDocumentView && e.compositionControllerDidSyncDocumentView()), null != (n = this.delegate) && \"function\" == typeof n.compositionControllerDidRender ? n.compositionControllerDidRender() : void 0;\n }, c.prototype.rerenderViewForObject = function (t) {\n return this.invalidateViewForObject(t), this.render();\n }, c.prototype.invalidateViewForObject = function (t) {\n return this.documentView.invalidateViewForObject(t);\n }, c.prototype.isViewCachingEnabled = function () {\n return this.documentView.isViewCachingEnabled();\n }, c.prototype.enableViewCaching = function () {\n return this.documentView.enableViewCaching();\n }, c.prototype.disableViewCaching = function () {\n return this.documentView.disableViewCaching();\n }, c.prototype.refreshViewCache = function () {\n return this.documentView.garbageCollectCachedViews();\n }, c.prototype.isEditingAttachment = function () {\n return null != this.attachmentEditor;\n }, c.prototype.installAttachmentEditorForAttachment = function (t, n) {\n var i, o, r;\n if ((null != (r = this.attachmentEditor) ? r.attachment : void 0) !== t && (o = this.documentView.findElementForObject(t))) return this.uninstallAttachmentEditor(), i = this.composition.document.getAttachmentPieceForAttachment(t), this.attachmentEditor = new e.AttachmentEditorController(i, o, this.element, n), this.attachmentEditor.delegate = this;\n }, c.prototype.uninstallAttachmentEditor = function () {\n var t;\n return null != (t = this.attachmentEditor) ? t.uninstall() : void 0;\n }, c.prototype.didUninstallAttachmentEditor = function () {\n return this.attachmentEditor = null, this.render();\n }, c.prototype.attachmentEditorDidRequestUpdatingAttributesForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.updateAttributesForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovingAttributeForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.removeAttributeForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovalOfAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestRemovalOfAttachment ? e.compositionControllerDidRequestRemovalOfAttachment(t) : void 0;\n }, c.prototype.attachmentEditorDidRequestDeselectingAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestDeselectingAttachment ? e.compositionControllerDidRequestDeselectingAttachment(t) : void 0;\n }, c.prototype.canSyncDocumentView = function () {\n return !this.isEditingAttachment();\n }, c.prototype.findAttachmentForElement = function (t) {\n return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId, 10));\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty;\n\n n = e.handleEvent, i = e.triggerEvent, t = e.findClosestElementFromNode, e.ToolbarController = function (e) {\n function s(t) {\n this.element = t, this.didKeyDownDialogInput = o(this.didKeyDownDialogInput, this), this.didClickDialogButton = o(this.didClickDialogButton, this), this.didClickAttributeButton = o(this.didClickAttributeButton, this), this.didClickActionButton = o(this.didClickActionButton, this), this.attributes = {}, this.actions = {}, this.resetDialogInputs(), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: a,\n withCallback: this.didClickActionButton\n }), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: c,\n withCallback: this.didClickAttributeButton\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: v,\n preventDefault: !0\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: l,\n withCallback: this.didClickDialogButton\n }), n(\"keydown\", {\n onElement: this.element,\n matchingSelector: h,\n withCallback: this.didKeyDownDialogInput\n });\n }\n\n var a, u, c, l, h, p, d, f, g, m, v;\n return r(s, e), c = \"[data-trix-attribute]\", a = \"[data-trix-action]\", v = c + \", \" + a, p = \"[data-trix-dialog]\", u = p + \"[data-trix-active]\", l = p + \" [data-trix-method]\", h = p + \" [data-trix-input]\", s.prototype.didClickActionButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = d(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) ? o.toolbarDidInvokeAction(n) : void 0;\n }, s.prototype.didClickAttributeButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = f(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) && o.toolbarDidToggleAttribute(n), this.refreshAttributeButtons();\n }, s.prototype.didClickDialogButton = function (e, n) {\n var i, o;\n return i = t(n, {\n matchingSelector: p\n }), o = n.getAttribute(\"data-trix-method\"), this[o].call(this, i);\n }, s.prototype.didKeyDownDialogInput = function (t, e) {\n var n, i;\n return 13 === t.keyCode && (t.preventDefault(), n = e.getAttribute(\"name\"), i = this.getDialog(n), this.setAttribute(i)), 27 === t.keyCode ? (t.preventDefault(), this.hideDialog()) : void 0;\n }, s.prototype.updateActions = function (t) {\n return this.actions = t, this.refreshActionButtons();\n }, s.prototype.refreshActionButtons = function () {\n return this.eachActionButton(function (t) {\n return function (e, n) {\n return e.disabled = t.actions[n] === !1;\n };\n }(this));\n }, s.prototype.eachActionButton = function (t) {\n var e, n, i, o, r;\n\n for (o = this.element.querySelectorAll(a), r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], r.push(t(e, d(e)));\n }\n\n return r;\n }, s.prototype.updateAttributes = function (t) {\n return this.attributes = t, this.refreshAttributeButtons();\n }, s.prototype.refreshAttributeButtons = function () {\n return this.eachAttributeButton(function (t) {\n return function (e, n) {\n return e.disabled = t.attributes[n] === !1, t.attributes[n] || t.dialogIsVisible(n) ? (e.setAttribute(\"data-trix-active\", \"\"), e.classList.add(\"trix-active\")) : (e.removeAttribute(\"data-trix-active\"), e.classList.remove(\"trix-active\"));\n };\n }(this));\n }, s.prototype.eachAttributeButton = function (t) {\n var e, n, i, o, r;\n\n for (o = this.element.querySelectorAll(c), r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], r.push(t(e, f(e)));\n }\n\n return r;\n }, s.prototype.applyKeyboardCommand = function (t) {\n var e, n, o, r, s, a, u;\n\n for (s = JSON.stringify(t.sort()), u = this.element.querySelectorAll(\"[data-trix-key]\"), r = 0, a = u.length; a > r; r++) {\n if (e = u[r], o = e.getAttribute(\"data-trix-key\").split(\"+\"), n = JSON.stringify(o.sort()), n === s) return i(\"mousedown\", {\n onElement: e\n }), !0;\n }\n\n return !1;\n }, s.prototype.dialogIsVisible = function (t) {\n var e;\n return (e = this.getDialog(t)) ? e.hasAttribute(\"data-trix-active\") : void 0;\n }, s.prototype.toggleDialog = function (t) {\n return this.dialogIsVisible(t) ? this.hideDialog() : this.showDialog(t);\n }, s.prototype.showDialog = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n\n for (this.hideDialog(), null != (a = this.delegate) && a.toolbarWillShowDialog(), i = this.getDialog(t), i.setAttribute(\"data-trix-active\", \"\"), i.classList.add(\"trix-active\"), u = i.querySelectorAll(\"input[disabled]\"), o = 0, s = u.length; s > o; o++) {\n n = u[o], n.removeAttribute(\"disabled\");\n }\n\n return (e = f(i)) && (r = m(i, t)) && (r.value = null != (c = this.attributes[e]) ? c : \"\", r.select()), null != (l = this.delegate) ? l.toolbarDidShowDialog(t) : void 0;\n }, s.prototype.setAttribute = function (t) {\n var e, n, i;\n return e = f(t), n = m(t, e), n.willValidate && !n.checkValidity() ? (n.setAttribute(\"data-trix-validate\", \"\"), n.classList.add(\"trix-validate\"), n.focus()) : (null != (i = this.delegate) && i.toolbarDidUpdateAttribute(e, n.value), this.hideDialog());\n }, s.prototype.removeAttribute = function (t) {\n var e, n;\n return e = f(t), null != (n = this.delegate) && n.toolbarDidRemoveAttribute(e), this.hideDialog();\n }, s.prototype.hideDialog = function () {\n var t, e;\n return (t = this.element.querySelector(u)) ? (t.removeAttribute(\"data-trix-active\"), t.classList.remove(\"trix-active\"), this.resetDialogInputs(), null != (e = this.delegate) ? e.toolbarDidHideDialog(g(t)) : void 0) : void 0;\n }, s.prototype.resetDialogInputs = function () {\n var t, e, n, i, o;\n\n for (i = this.element.querySelectorAll(h), o = [], t = 0, n = i.length; n > t; t++) {\n e = i[t], e.setAttribute(\"disabled\", \"disabled\"), e.removeAttribute(\"data-trix-validate\"), o.push(e.classList.remove(\"trix-validate\"));\n }\n\n return o;\n }, s.prototype.getDialog = function (t) {\n return this.element.querySelector(\"[data-trix-dialog=\" + t + \"]\");\n }, m = function m(t, e) {\n return null == e && (e = f(t)), t.querySelector(\"[data-trix-input][name='\" + e + \"']\");\n }, d = function d(t) {\n return t.getAttribute(\"data-trix-action\");\n }, f = function f(t) {\n var e;\n return null != (e = t.getAttribute(\"data-trix-attribute\")) ? e : t.getAttribute(\"data-trix-dialog-attribute\");\n }, g = function g(t) {\n return t.getAttribute(\"data-trix-dialog\");\n }, s;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t12, e) {\n function i() {\n this.constructor = _t12;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t12[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t12.prototype = new i(), _t12.__super__ = e.prototype, _t12;\n },\n n = {}.hasOwnProperty;\n\n e.ImagePreloadOperation = function (e) {\n function n(t) {\n this.url = t;\n }\n\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new Image(), e.onload = function (n) {\n return function () {\n return e.width = n.width = e.naturalWidth, e.height = n.height = e.naturalHeight, t(!0, e);\n };\n }(this), e.onerror = function () {\n return t(!1);\n }, e.src = this.url;\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t = function t(_t13, e) {\n return function () {\n return _t13.apply(e, arguments);\n };\n },\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n e.Attachment = function (i) {\n function o(n) {\n null == n && (n = {}), this.releaseFile = t(this.releaseFile, this), o.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n), this.didChangeAttributes();\n }\n\n return n(o, i), o.previewablePattern = /^image(\\/(gif|png|jpe?g)|$)/, o.attachmentForFile = function (t) {\n var e, n;\n return n = this.attributesForFile(t), e = new this(n), e.setFile(t), e;\n }, o.attributesForFile = function (t) {\n return new e.Hash({\n filename: t.name,\n filesize: t.size,\n contentType: t.type\n });\n }, o.fromJSON = function (t) {\n return new this(t);\n }, o.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, o.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, o.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, o.prototype.setAttributes = function (t) {\n var e, n, i;\n return null == t && (t = {}), e = this.attributes.merge(t), this.attributes.isEqualTo(e) ? void 0 : (this.attributes = e, this.didChangeAttributes(), null != (n = this.previewDelegate) && \"function\" == typeof n.attachmentDidChangeAttributes && n.attachmentDidChangeAttributes(this), null != (i = this.delegate) && \"function\" == typeof i.attachmentDidChangeAttributes ? i.attachmentDidChangeAttributes(this) : void 0);\n }, o.prototype.didChangeAttributes = function () {\n return this.isPreviewable() ? this.preloadURL() : void 0;\n }, o.prototype.isPending = function () {\n return null != this.file && !(this.getURL() || this.getHref());\n }, o.prototype.isPreviewable = function () {\n return this.attributes.has(\"previewable\") ? this.attributes.get(\"previewable\") : this.constructor.previewablePattern.test(this.getContentType());\n }, o.prototype.getType = function () {\n return this.hasContent() ? \"content\" : this.isPreviewable() ? \"preview\" : \"file\";\n }, o.prototype.getURL = function () {\n return this.attributes.get(\"url\");\n }, o.prototype.getHref = function () {\n return this.attributes.get(\"href\");\n }, o.prototype.getFilename = function () {\n var t;\n return null != (t = this.attributes.get(\"filename\")) ? t : \"\";\n }, o.prototype.getFilesize = function () {\n return this.attributes.get(\"filesize\");\n }, o.prototype.getFormattedFilesize = function () {\n var t;\n return t = this.attributes.get(\"filesize\"), \"number\" == typeof t ? e.config.fileSize.formatter(t) : \"\";\n }, o.prototype.getExtension = function () {\n var t;\n return null != (t = this.getFilename().match(/\\.(\\w+)$/)) ? t[1].toLowerCase() : void 0;\n }, o.prototype.getContentType = function () {\n return this.attributes.get(\"contentType\");\n }, o.prototype.hasContent = function () {\n return this.attributes.has(\"content\");\n }, o.prototype.getContent = function () {\n return this.attributes.get(\"content\");\n }, o.prototype.getWidth = function () {\n return this.attributes.get(\"width\");\n }, o.prototype.getHeight = function () {\n return this.attributes.get(\"height\");\n }, o.prototype.getFile = function () {\n return this.file;\n }, o.prototype.setFile = function (t) {\n return this.file = t, this.isPreviewable() ? this.preloadFile() : void 0;\n }, o.prototype.releaseFile = function () {\n return this.releasePreloadedFile(), this.file = null;\n }, o.prototype.getUploadProgress = function () {\n var t;\n return null != (t = this.uploadProgress) ? t : 0;\n }, o.prototype.setUploadProgress = function (t) {\n var e;\n return this.uploadProgress !== t ? (this.uploadProgress = t, null != (e = this.uploadProgressDelegate) && \"function\" == typeof e.attachmentDidChangeUploadProgress ? e.attachmentDidChangeUploadProgress(this) : void 0) : void 0;\n }, o.prototype.toJSON = function () {\n return this.getAttributes();\n }, o.prototype.getCacheKey = function () {\n return [o.__super__.getCacheKey.apply(this, arguments), this.attributes.getCacheKey(), this.getPreviewURL()].join(\"/\");\n }, o.prototype.getPreviewURL = function () {\n return this.previewURL || this.preloadingURL;\n }, o.prototype.setPreviewURL = function (t) {\n var e, n;\n return t !== this.getPreviewURL() ? (this.previewURL = t, null != (e = this.previewDelegate) && \"function\" == typeof e.attachmentDidChangeAttributes && e.attachmentDidChangeAttributes(this), null != (n = this.delegate) && \"function\" == typeof n.attachmentDidChangePreviewURL ? n.attachmentDidChangePreviewURL(this) : void 0) : void 0;\n }, o.prototype.preloadURL = function () {\n return this.preload(this.getURL(), this.releaseFile);\n }, o.prototype.preloadFile = function () {\n return this.file ? (this.fileObjectURL = URL.createObjectURL(this.file), this.preload(this.fileObjectURL)) : void 0;\n }, o.prototype.releasePreloadedFile = function () {\n return this.fileObjectURL ? (URL.revokeObjectURL(this.fileObjectURL), this.fileObjectURL = null) : void 0;\n }, o.prototype.preload = function (t, n) {\n var i;\n return t && t !== this.getPreviewURL() ? (this.preloadingURL = t, i = new e.ImagePreloadOperation(t), i.then(function (e) {\n return function (i) {\n var o, r;\n return r = i.width, o = i.height, e.getWidth() && e.getHeight() || e.setAttributes({\n width: r,\n height: o\n }), e.preloadingURL = null, e.setPreviewURL(t), \"function\" == typeof n ? n() : void 0;\n };\n }(this))[\"catch\"](function (t) {\n return function () {\n return t.preloadingURL = null, \"function\" == typeof n ? n() : void 0;\n };\n }(this))) : void 0;\n }, o;\n }(e.Object);\n }.call(this), function () {\n var t = function t(_t14, e) {\n function i() {\n this.constructor = _t14;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t14[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t14.prototype = new i(), _t14.__super__ = e.prototype, _t14;\n },\n n = {}.hasOwnProperty;\n\n e.Piece = function (n) {\n function i(t, n) {\n null == n && (n = {}), i.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n);\n }\n\n return t(i, n), i.types = {}, i.registerType = function (t, e) {\n return e.type = t, this.types[t] = e;\n }, i.fromJSON = function (t) {\n var e;\n return (e = this.types[t.type]) ? e.fromJSON(t) : void 0;\n }, i.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.getValue(), t);\n }, i.prototype.copyWithAdditionalAttributes = function (t) {\n return this.copyWithAttributes(this.attributes.merge(t));\n }, i.prototype.copyWithoutAttribute = function (t) {\n return this.copyWithAttributes(this.attributes.remove(t));\n }, i.prototype.copy = function () {\n return this.copyWithAttributes(this.attributes);\n }, i.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, i.prototype.getAttributesHash = function () {\n return this.attributes;\n }, i.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, i.prototype.getCommonAttributes = function () {\n var t, e, n;\n return (n = pieceList.getPieceAtIndex(0)) ? (t = n.attributes, e = t.getKeys(), pieceList.eachPiece(function (n) {\n return e = t.getKeysCommonToHash(n.attributes), t = t.slice(e);\n }), t.toObject()) : {};\n }, i.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, i.prototype.hasSameStringValueAsPiece = function (t) {\n return null != t && this.toString() === t.toString();\n }, i.prototype.hasSameAttributesAsPiece = function (t) {\n return null != t && (this.attributes === t.attributes || this.attributes.isEqualTo(t.attributes));\n }, i.prototype.isBlockBreak = function () {\n return !1;\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || this.hasSameConstructorAs(t) && this.hasSameStringValueAsPiece(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.isEmpty = function () {\n return 0 === this.length;\n }, i.prototype.isSerializable = function () {\n return !0;\n }, i.prototype.toJSON = function () {\n return {\n type: this.constructor.type,\n attributes: this.getAttributes()\n };\n }, i.prototype.contentsForInspection = function () {\n return {\n type: this.constructor.type,\n attributes: this.attributes.inspect()\n };\n }, i.prototype.canBeGrouped = function () {\n return this.hasAttribute(\"href\");\n }, i.prototype.canBeGroupedWith = function (t) {\n return this.getAttribute(\"href\") === t.getAttribute(\"href\");\n }, i.prototype.getLength = function () {\n return this.length;\n }, i.prototype.canBeConsolidatedWith = function () {\n return !1;\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function t(_t15, e) {\n function i() {\n this.constructor = _t15;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t15[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t15.prototype = new i(), _t15.__super__ = e.prototype, _t15;\n },\n n = {}.hasOwnProperty;\n\n e.Piece.registerType(\"attachment\", e.AttachmentPiece = function (n) {\n function i(t) {\n this.attachment = t, i.__super__.constructor.apply(this, arguments), this.length = 1, this.ensureAttachmentExclusivelyHasAttribute(\"href\"), this.attachment.hasContent() || this.removeProhibitedAttributes();\n }\n\n return t(i, n), i.fromJSON = function (t) {\n return new this(e.Attachment.fromJSON(t.attachment), t.attributes);\n }, i.permittedAttributes = [\"caption\", \"presentation\"], i.prototype.ensureAttachmentExclusivelyHasAttribute = function (t) {\n return this.hasAttribute(t) ? (this.attachment.hasAttribute(t) || this.attachment.setAttributes(this.attributes.slice(t)), this.attributes = this.attributes.remove(t)) : void 0;\n }, i.prototype.removeProhibitedAttributes = function () {\n var t;\n return t = this.attributes.slice(this.constructor.permittedAttributes), t.isEqualTo(this.attributes) ? void 0 : this.attributes = t;\n }, i.prototype.getValue = function () {\n return this.attachment;\n }, i.prototype.isSerializable = function () {\n return !this.attachment.isPending();\n }, i.prototype.getCaption = function () {\n var t;\n return null != (t = this.attributes.get(\"caption\")) ? t : \"\";\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) && this.attachment.id === (null != t && null != (e = t.attachment) ? e.id : void 0);\n }, i.prototype.toString = function () {\n return e.OBJECT_REPLACEMENT_CHARACTER;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.attachment = this.attachment, t;\n }, i.prototype.getCacheKey = function () {\n return [i.__super__.getCacheKey.apply(this, arguments), this.attachment.getCacheKey()].join(\"/\");\n }, i.prototype.toConsole = function () {\n return JSON.stringify(this.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.normalizeNewlines, e.Piece.registerType(\"string\", e.StringPiece = function (e) {\n function i(e) {\n i.__super__.constructor.apply(this, arguments), this.string = t(e), this.length = this.string.length;\n }\n\n return n(i, e), i.fromJSON = function (t) {\n return new this(t.string, t.attributes);\n }, i.prototype.getValue = function () {\n return this.string;\n }, i.prototype.toString = function () {\n return this.string.toString();\n }, i.prototype.isBlockBreak = function () {\n return \"\\n\" === this.toString() && this.getAttribute(\"blockBreak\") === !0;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.string = this.string, t;\n }, i.prototype.canBeConsolidatedWith = function (t) {\n return null != t && this.hasSameConstructorAs(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.consolidateWith = function (t) {\n return new this.constructor(this.toString() + t.toString(), this.attributes);\n }, i.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.length ? (e = this, n = null) : (e = new this.constructor(this.string.slice(0, t), this.attributes), n = new this.constructor(this.string.slice(t), this.attributes)), [e, n];\n }, i.prototype.toConsole = function () {\n var t;\n return t = this.string, t.length > 15 && (t = t.slice(0, 14) + \"\\u2026\"), JSON.stringify(t.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty,\n o = [].slice;\n\n t = e.spliceArray, e.SplittableList = function (e) {\n function i(t) {\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.objects = t.slice(0), this.length = this.objects.length;\n }\n\n var r, s, a;\n return n(i, e), i.box = function (t) {\n return t instanceof this ? t : new this(t);\n }, i.prototype.indexOf = function (t) {\n return this.objects.indexOf(t);\n }, i.prototype.splice = function () {\n var e;\n return e = 1 <= arguments.length ? o.call(arguments, 0) : [], new this.constructor(t.apply(null, [this.objects].concat(o.call(e))));\n }, i.prototype.eachObject = function (t) {\n var e, n, i, o, r, s;\n\n for (r = this.objects, s = [], n = e = 0, i = r.length; i > e; n = ++e) {\n o = r[n], s.push(t(o, n));\n }\n\n return s;\n }, i.prototype.insertObjectAtIndex = function (t, e) {\n return this.splice(e, 0, t);\n }, i.prototype.insertSplittableListAtIndex = function (t, e) {\n return this.splice.apply(this, [e, 0].concat(o.call(t.objects)));\n }, i.prototype.insertSplittableListAtPosition = function (t, e) {\n var n, i, o;\n return o = this.splitObjectAtPosition(e), i = o[0], n = o[1], new this.constructor(i).insertSplittableListAtIndex(t, n);\n }, i.prototype.editObjectAtIndex = function (t, e) {\n return this.replaceObjectAtIndex(e(this.objects[t]), t);\n }, i.prototype.replaceObjectAtIndex = function (t, e) {\n return this.splice(e, 1, t);\n }, i.prototype.removeObjectAtIndex = function (t) {\n return this.splice(t, 1);\n }, i.prototype.getObjectAtIndex = function (t) {\n return this.objects[t];\n }, i.prototype.getSplittableListInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n.slice(e, o + 1));\n }, i.prototype.selectSplittableList = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r;\n\n for (o = this.objects, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], t(e) && r.push(e);\n }\n\n return r;\n }.call(this), new this.constructor(n);\n }, i.prototype.removeObjectsInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n).splice(e, o - e + 1);\n }, i.prototype.transformObjectsInRange = function (t, e) {\n var n, i, o, r, s, a, u;\n return s = this.splitObjectsAtRange(t), r = s[0], i = s[1], a = s[2], u = function () {\n var t, s, u;\n\n for (u = [], n = t = 0, s = r.length; s > t; n = ++t) {\n o = r[n], u.push(n >= i && a >= n ? e(o) : o);\n }\n\n return u;\n }(), new this.constructor(u);\n }, i.prototype.splitObjectsAtRange = function (t) {\n var e, n, i, o, s, u;\n return o = this.splitObjectAtPosition(a(t)), n = o[0], e = o[1], i = o[2], s = new this.constructor(n).splitObjectAtPosition(r(t) + i), n = s[0], u = s[1], [n, e, u - 1];\n }, i.prototype.getObjectAtPosition = function (t) {\n var e, n, i;\n return i = this.findIndexAndOffsetAtPosition(t), e = i.index, n = i.offset, this.objects[e];\n }, i.prototype.splitObjectAtPosition = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return s = this.findIndexAndOffsetAtPosition(t), e = s.index, r = s.offset, o = this.objects.slice(0), null != e ? 0 === r ? (c = e, l = 0) : (i = this.getObjectAtIndex(e), a = i.splitAtOffset(r), n = a[0], u = a[1], o.splice(e, 1, n, u), c = e + 1, l = n.getLength() - r) : (c = o.length, l = 0), [o, c, l];\n }, i.prototype.consolidate = function () {\n var t, e, n, i, o, r;\n\n for (i = [], o = this.objects[0], r = this.objects.slice(1), t = 0, e = r.length; e > t; t++) {\n n = r[t], (\"function\" == typeof o.canBeConsolidatedWith ? o.canBeConsolidatedWith(n) : void 0) ? o = o.consolidateWith(n) : (i.push(o), o = n);\n }\n\n return null != o && i.push(o), new this.constructor(i);\n }, i.prototype.consolidateFromIndexToIndex = function (t, e) {\n var n, i, r;\n return i = this.objects.slice(0), r = i.slice(t, e + 1), n = new this.constructor(r).consolidate().toArray(), this.splice.apply(this, [t, r.length].concat(o.call(n)));\n }, i.prototype.findIndexAndOffsetAtPosition = function (t) {\n var e, n, i, o, r, s, a;\n\n for (e = 0, a = this.objects, i = n = 0, o = a.length; o > n; i = ++n) {\n if (s = a[i], r = e + s.getLength(), t >= e && r > t) return {\n index: i,\n offset: t - e\n };\n e = r;\n }\n\n return {\n index: null,\n offset: null\n };\n }, i.prototype.findPositionAtIndexAndOffset = function (t, e) {\n var n, i, o, r, s, a;\n\n for (s = 0, a = this.objects, n = i = 0, o = a.length; o > i; n = ++i) {\n if (r = a[n], t > n) s += r.getLength();else if (n === t) {\n s += e;\n break;\n }\n }\n\n return s;\n }, i.prototype.getEndPosition = function () {\n var t, e;\n return null != this.endPosition ? this.endPosition : this.endPosition = function () {\n var n, i, o;\n\n for (e = 0, o = this.objects, n = 0, i = o.length; i > n; n++) {\n t = o[n], e += t.getLength();\n }\n\n return e;\n }.call(this);\n }, i.prototype.toString = function () {\n return this.objects.join(\"\");\n }, i.prototype.toArray = function () {\n return this.objects.slice(0);\n }, i.prototype.toJSON = function () {\n return this.toArray();\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || s(this.objects, null != t ? t.objects : void 0);\n }, s = function s(t, e) {\n var n, i, o, r, s;\n if (null == e && (e = []), t.length !== e.length) return !1;\n\n for (s = !0, i = n = 0, o = t.length; o > n; i = ++n) {\n r = t[i], s && !r.isEqualTo(e[i]) && (s = !1);\n }\n\n return s;\n }, i.prototype.contentsForInspection = function () {\n var t;\n return {\n objects: \"[\" + function () {\n var e, n, i, o;\n\n for (i = this.objects, o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t.inspect());\n }\n\n return o;\n }.call(this).join(\", \") + \"]\"\n };\n }, a = function a(t) {\n return t[0];\n }, r = function r(t) {\n return t[1];\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function t(_t16, e) {\n function i() {\n this.constructor = _t16;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t16[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t16.prototype = new i(), _t16.__super__ = e.prototype, _t16;\n },\n n = {}.hasOwnProperty;\n\n e.Text = function (n) {\n function i(t) {\n var n;\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.pieceList = new e.SplittableList(function () {\n var e, i, o;\n\n for (o = [], e = 0, i = t.length; i > e; e++) {\n n = t[e], n.isEmpty() || o.push(n);\n }\n\n return o;\n }());\n }\n\n return t(i, n), i.textForAttachmentWithAttributes = function (t, n) {\n var i;\n return i = new e.AttachmentPiece(t, n), new this([i]);\n }, i.textForStringWithAttributes = function (t, n) {\n var i;\n return i = new e.StringPiece(t, n), new this([i]);\n }, i.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(e.Piece.fromJSON(n));\n }\n\n return r;\n }(), new this(i);\n }, i.prototype.copy = function () {\n return this.copyWithPieceList(this.pieceList);\n }, i.prototype.copyWithPieceList = function (t) {\n return new this.constructor(t.consolidate().toArray());\n }, i.prototype.copyUsingObjectMap = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r, s;\n\n for (o = this.getPieces(), s = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], s.push(null != (r = t.find(e)) ? r : e);\n }\n\n return s;\n }.call(this), new this.constructor(n);\n }, i.prototype.appendText = function (t) {\n return this.insertTextAtPosition(t, this.getLength());\n }, i.prototype.insertTextAtPosition = function (t, e) {\n return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList, e));\n }, i.prototype.removeTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t));\n }, i.prototype.replaceTextAtRange = function (t, e) {\n return this.removeTextAtRange(e).insertTextAtPosition(t, e[0]);\n }, i.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, i;\n if (!(t[0] <= e && e <= t[1])) return i = this.getTextAtRange(t), n = i.getLength(), t[0] < e && (e -= n), this.removeTextAtRange(t).insertTextAtPosition(i, e);\n }, i.prototype.addAttributeAtRange = function (t, e, n) {\n var i;\n return i = {}, i[t] = e, this.addAttributesAtRange(i, n);\n }, i.prototype.addAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAdditionalAttributes(t);\n }));\n }, i.prototype.removeAttributeAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithoutAttribute(t);\n }));\n }, i.prototype.setAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAttributes(t);\n }));\n }, i.prototype.getAttributesAtPosition = function (t) {\n var e, n;\n return null != (e = null != (n = this.pieceList.getObjectAtPosition(t)) ? n.getAttributes() : void 0) ? e : {};\n }, i.prototype.getCommonAttributes = function () {\n var t, n;\n return t = function () {\n var t, e, i, o;\n\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.getAttributes());\n }\n\n return o;\n }.call(this), e.Hash.fromCommonAttributesOfObjects(t).toObject();\n }, i.prototype.getCommonAttributesAtRange = function (t) {\n var e;\n return null != (e = this.getTextAtRange(t).getCommonAttributes()) ? e : {};\n }, i.prototype.getExpandedRangeForAttributeAtOffset = function (t, e) {\n var n, i, o;\n\n for (n = o = e, i = this.getLength(); n > 0 && this.getCommonAttributesAtRange([n - 1, o])[t];) {\n n--;\n }\n\n for (; i > o && this.getCommonAttributesAtRange([e, o + 1])[t];) {\n o++;\n }\n\n return [n, o];\n }, i.prototype.getTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.getSplittableListInRange(t));\n }, i.prototype.getStringAtRange = function (t) {\n return this.pieceList.getSplittableListInRange(t).toString();\n }, i.prototype.getStringAtPosition = function (t) {\n return this.getStringAtRange([t, t + 1]);\n }, i.prototype.startsWithString = function (t) {\n return this.getStringAtRange([0, t.length]) === t;\n }, i.prototype.endsWithString = function (t) {\n var e;\n return e = this.getLength(), this.getStringAtRange([e - t.length, e]) === t;\n }, i.prototype.getAttachmentPieces = function () {\n var t, e, n, i, o;\n\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], null != n.attachment && o.push(n);\n }\n\n return o;\n }, i.prototype.getAttachments = function () {\n var t, e, n, i, o;\n\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.attachment);\n }\n\n return o;\n }, i.prototype.getAttachmentAndPositionById = function (t) {\n var e, n, i, o, r, s;\n\n for (o = 0, r = this.pieceList.toArray(), e = 0, n = r.length; n > e; e++) {\n if (i = r[e], (null != (s = i.attachment) ? s.id : void 0) === t) return {\n attachment: i.attachment,\n position: o\n };\n o += i.length;\n }\n\n return {\n attachment: null,\n position: null\n };\n }, i.prototype.getAttachmentById = function (t) {\n var e, n, i;\n return i = this.getAttachmentAndPositionById(t), e = i.attachment, n = i.position, e;\n }, i.prototype.getRangeOfAttachment = function (t) {\n var e, n;\n return n = this.getAttachmentAndPositionById(t.id), t = n.attachment, e = n.position, null != t ? [e, e + 1] : void 0;\n }, i.prototype.updateAttributesForAttachment = function (t, e) {\n var n;\n return (n = this.getRangeOfAttachment(e)) ? this.addAttributesAtRange(t, n) : this;\n }, i.prototype.getLength = function () {\n return this.pieceList.getEndPosition();\n }, i.prototype.isEmpty = function () {\n return 0 === this.getLength();\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) || (null != t && null != (e = t.pieceList) ? e.isEqualTo(this.pieceList) : void 0);\n }, i.prototype.isBlockBreak = function () {\n return 1 === this.getLength() && this.pieceList.getObjectAtIndex(0).isBlockBreak();\n }, i.prototype.eachPiece = function (t) {\n return this.pieceList.eachObject(t);\n }, i.prototype.getPieces = function () {\n return this.pieceList.toArray();\n }, i.prototype.getPieceAtPosition = function (t) {\n return this.pieceList.getObjectAtPosition(t);\n }, i.prototype.contentsForInspection = function () {\n return {\n pieceList: this.pieceList.inspect()\n };\n }, i.prototype.toSerializableText = function () {\n var t;\n return t = this.pieceList.selectSplittableList(function (t) {\n return t.isSerializable();\n }), this.copyWithPieceList(t);\n }, i.prototype.toString = function () {\n return this.pieceList.toString();\n }, i.prototype.toJSON = function () {\n return this.pieceList.toJSON();\n }, i.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n\n for (i = this.pieceList.toArray(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(JSON.parse(t.toConsole()));\n }\n\n return o;\n }.call(this));\n }, i.prototype.getDirection = function () {\n return e.getDirection(this.toString());\n }, i.prototype.isRTL = function () {\n return \"rtl\" === this.getDirection();\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function s(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n a.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n },\n c = [].slice;\n\n t = e.arraysAreEqual, r = e.spliceArray, i = e.getBlockConfig, n = e.getBlockAttributeNames, o = e.getListAttributeNames, e.Block = function (n) {\n function a(t, n) {\n null == t && (t = new e.Text()), null == n && (n = []), a.__super__.constructor.apply(this, arguments), this.text = h(t), this.attributes = n;\n }\n\n var l, h, p, d, f, g, m, v, y;\n return s(a, n), a.fromJSON = function (t) {\n var n;\n return n = e.Text.fromJSON(t.text), new this(n, t.attributes);\n }, a.prototype.isEmpty = function () {\n return this.text.isBlockBreak();\n }, a.prototype.isEqualTo = function (e) {\n return a.__super__.isEqualTo.apply(this, arguments) || this.text.isEqualTo(null != e ? e.text : void 0) && t(this.attributes, null != e ? e.attributes : void 0);\n }, a.prototype.copyWithText = function (t) {\n return new this.constructor(t, this.attributes);\n }, a.prototype.copyWithoutText = function () {\n return this.copyWithText(null);\n }, a.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.text, t);\n }, a.prototype.copyWithoutAttributes = function () {\n return this.copyWithAttributes(null);\n }, a.prototype.copyUsingObjectMap = function (t) {\n var e;\n return this.copyWithText((e = t.find(this.text)) ? e : this.text.copyUsingObjectMap(t));\n }, a.prototype.addAttribute = function (t) {\n var e;\n return e = this.attributes.concat(d(t)), this.copyWithAttributes(e);\n }, a.prototype.removeAttribute = function (t) {\n var e, n;\n return n = i(t).listAttribute, e = g(g(this.attributes, t), n), this.copyWithAttributes(e);\n }, a.prototype.removeLastAttribute = function () {\n return this.removeAttribute(this.getLastAttribute());\n }, a.prototype.getLastAttribute = function () {\n return f(this.attributes);\n }, a.prototype.getAttributes = function () {\n return this.attributes.slice(0);\n }, a.prototype.getAttributeLevel = function () {\n return this.attributes.length;\n }, a.prototype.getAttributeAtLevel = function (t) {\n return this.attributes[t - 1];\n }, a.prototype.hasAttribute = function (t) {\n return u.call(this.attributes, t) >= 0;\n }, a.prototype.hasAttributes = function () {\n return this.getAttributeLevel() > 0;\n }, a.prototype.getLastNestableAttribute = function () {\n return f(this.getNestableAttributes());\n }, a.prototype.getNestableAttributes = function () {\n var t, e, n, o, r;\n\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) {\n t = o[e], i(t).nestable && r.push(t);\n }\n\n return r;\n }, a.prototype.getNestingLevel = function () {\n return this.getNestableAttributes().length;\n }, a.prototype.decreaseNestingLevel = function () {\n var t;\n return (t = this.getLastNestableAttribute()) ? this.removeAttribute(t) : this;\n }, a.prototype.increaseNestingLevel = function () {\n var t, e, n;\n return (t = this.getLastNestableAttribute()) ? (n = this.attributes.lastIndexOf(t), e = r.apply(null, [this.attributes, n + 1, 0].concat(c.call(d(t)))), this.copyWithAttributes(e)) : this;\n }, a.prototype.getListItemAttributes = function () {\n var t, e, n, o, r;\n\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) {\n t = o[e], i(t).listAttribute && r.push(t);\n }\n\n return r;\n }, a.prototype.isListItem = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.listAttribute : void 0;\n }, a.prototype.isTerminalBlock = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.terminal : void 0;\n }, a.prototype.breaksOnReturn = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.breakOnReturn : void 0;\n }, a.prototype.findLineBreakInDirectionFromPosition = function (t, e) {\n var n, i;\n return i = this.toString(), n = function () {\n switch (t) {\n case \"forward\":\n return i.indexOf(\"\\n\", e);\n\n case \"backward\":\n return i.slice(0, e).lastIndexOf(\"\\n\");\n }\n }(), -1 !== n ? n : void 0;\n }, a.prototype.contentsForInspection = function () {\n return {\n text: this.text.inspect(),\n attributes: this.attributes\n };\n }, a.prototype.toString = function () {\n return this.text.toString();\n }, a.prototype.toJSON = function () {\n return {\n text: this.text,\n attributes: this.attributes\n };\n }, a.prototype.getDirection = function () {\n return this.text.getDirection();\n }, a.prototype.isRTL = function () {\n return this.text.isRTL();\n }, a.prototype.getLength = function () {\n return this.text.getLength();\n }, a.prototype.canBeConsolidatedWith = function (t) {\n return !this.hasAttributes() && !t.hasAttributes() && this.getDirection() === t.getDirection();\n }, a.prototype.consolidateWith = function (t) {\n var n, i;\n return n = e.Text.textForStringWithAttributes(\"\\n\"), i = this.getTextWithoutBlockBreak().appendText(n), this.copyWithText(i.appendText(t.text));\n }, a.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.getLength() ? (e = this, n = null) : (e = this.copyWithText(this.text.getTextAtRange([0, t])), n = this.copyWithText(this.text.getTextAtRange([t, this.getLength()]))), [e, n];\n }, a.prototype.getBlockBreakPosition = function () {\n return this.text.getLength() - 1;\n }, a.prototype.getTextWithoutBlockBreak = function () {\n return m(this.text) ? this.text.getTextAtRange([0, this.getBlockBreakPosition()]) : this.text.copy();\n }, a.prototype.canBeGrouped = function (t) {\n return this.attributes[t];\n }, a.prototype.canBeGroupedWith = function (t, e) {\n var n, r, s, a;\n return s = t.getAttributes(), r = s[e], n = this.attributes[e], !(n !== r || i(n).group === !1 && (a = s[e + 1], u.call(o(), a) < 0) || this.getDirection() !== t.getDirection() && !t.isEmpty());\n }, h = function h(t) {\n return t = y(t), t = l(t);\n }, y = function y(t) {\n var n, i, o, r, s, a;\n return r = !1, a = t.getPieces(), i = 2 <= a.length ? c.call(a, 0, n = a.length - 1) : (n = 0, []), o = a[n++], null == o ? t : (i = function () {\n var t, e, n;\n\n for (n = [], t = 0, e = i.length; e > t; t++) {\n s = i[t], s.isBlockBreak() ? (r = !0, n.push(v(s))) : n.push(s);\n }\n\n return n;\n }(), r ? new e.Text(c.call(i).concat([o])) : t);\n }, p = e.Text.textForStringWithAttributes(\"\\n\", {\n blockBreak: !0\n }), l = function l(t) {\n return m(t) ? t : t.appendText(p);\n }, m = function m(t) {\n var e, n;\n return n = t.getLength(), 0 === n ? !1 : (e = t.getTextAtRange([n - 1, n]), e.isBlockBreak());\n }, v = function v(t) {\n return t.copyWithoutAttribute(\"blockBreak\");\n }, d = function d(t) {\n var e;\n return e = i(t).listAttribute, null != e ? [e, t] : [t];\n }, f = function f(t) {\n return t.slice(-1)[0];\n }, g = function g(t, e) {\n var n;\n return n = t.lastIndexOf(e), -1 === n ? t : r(t, n, 1);\n }, a;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n },\n a = [].slice;\n\n n = e.tagName, i = e.walkTree, t = e.nodeIsAttachmentElement, e.HTMLSanitizer = function (r) {\n function u(t, e) {\n var n;\n n = null != e ? e : {}, this.allowedAttributes = n.allowedAttributes, this.forbiddenProtocols = n.forbiddenProtocols, this.forbiddenElements = n.forbiddenElements, null == this.allowedAttributes && (this.allowedAttributes = c), null == this.forbiddenProtocols && (this.forbiddenProtocols = h), null == this.forbiddenElements && (this.forbiddenElements = l), this.body = p(t);\n }\n\n var c, l, h, p;\n return o(u, r), c = \"style href src width height class\".split(\" \"), h = \"javascript:\".split(\" \"), l = \"script iframe\".split(\" \"), u.sanitize = function (t, e) {\n var n;\n return n = new this(t, e), n.sanitize(), n;\n }, u.prototype.sanitize = function () {\n return this.sanitizeElements(), this.normalizeListElementNesting();\n }, u.prototype.getHTML = function () {\n return this.body.innerHTML;\n }, u.prototype.getBody = function () {\n return this.body;\n }, u.prototype.sanitizeElements = function () {\n var t, n, o, r, s;\n\n for (s = i(this.body), r = []; s.nextNode();) {\n switch (o = s.currentNode, o.nodeType) {\n case Node.ELEMENT_NODE:\n this.elementIsRemovable(o) ? r.push(o) : this.sanitizeElement(o);\n break;\n\n case Node.COMMENT_NODE:\n r.push(o);\n }\n }\n\n for (t = 0, n = r.length; n > t; t++) {\n o = r[t], e.removeNode(o);\n }\n\n return this.body;\n }, u.prototype.sanitizeElement = function (t) {\n var e, n, i, o, r;\n\n for (t.hasAttribute(\"href\") && (o = t.protocol, s.call(this.forbiddenProtocols, o) >= 0 && t.removeAttribute(\"href\")), r = a.call(t.attributes), e = 0, n = r.length; n > e; e++) {\n i = r[e].name, s.call(this.allowedAttributes, i) >= 0 || 0 === i.indexOf(\"data-trix\") || t.removeAttribute(i);\n }\n\n return t;\n }, u.prototype.normalizeListElementNesting = function () {\n var t, e, i, o, r;\n\n for (r = a.call(this.body.querySelectorAll(\"ul,ol\")), t = 0, e = r.length; e > t; t++) {\n i = r[t], (o = i.previousElementSibling) && \"li\" === n(o) && o.appendChild(i);\n }\n\n return this.body;\n }, u.prototype.elementIsRemovable = function (t) {\n return (null != t ? t.nodeType : void 0) === Node.ELEMENT_NODE ? this.elementIsForbidden(t) || this.elementIsntSerializable(t) : void 0;\n }, u.prototype.elementIsForbidden = function (t) {\n var e;\n return e = n(t), s.call(this.forbiddenElements, e) >= 0;\n }, u.prototype.elementIsntSerializable = function (e) {\n return \"false\" === e.getAttribute(\"data-trix-serialize\") && !t(e);\n }, p = function p(t) {\n var e, n, i, o, r;\n\n for (null == t && (t = \"\"), t = t.replace(/<\\/html[^>]*>[^]*$/i, \"\"), e = document.implementation.createHTMLDocument(\"\"), e.documentElement.innerHTML = t, r = e.head.querySelectorAll(\"style\"), i = 0, o = r.length; o > i; i++) {\n n = r[i], e.body.appendChild(n);\n }\n\n return e.body;\n }, u;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p = function p(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n d.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty,\n f = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.arraysAreEqual, s = e.makeElement, l = e.tagName, r = e.getBlockTagNames, h = e.walkTree, o = e.findClosestElementFromNode, i = e.elementContainsNode, a = e.nodeIsAttachmentElement, u = e.normalizeSpaces, n = e.breakableWhitespacePattern, c = e.squishBreakableWhitespace, e.HTMLParser = function (d) {\n function g(t, e) {\n this.html = t, this.referenceElement = (null != e ? e : {}).referenceElement, this.blocks = [], this.blockElements = [], this.processedElements = [];\n }\n\n var m, v, y, b, A, C, x, w, E, S, R, k;\n return p(g, d), g.parse = function (t, e) {\n var n;\n return n = new this(t, e), n.parse(), n;\n }, g.prototype.getDocument = function () {\n return e.Document.fromJSON(this.blocks);\n }, g.prototype.parse = function () {\n var t, n;\n\n try {\n for (this.createHiddenContainer(), t = e.HTMLSanitizer.sanitize(this.html).getHTML(), this.containerElement.innerHTML = t, n = h(this.containerElement, {\n usingFilter: x\n }); n.nextNode();) {\n this.processNode(n.currentNode);\n }\n\n return this.translateBlockElementMarginsToNewlines();\n } finally {\n this.removeHiddenContainer();\n }\n }, g.prototype.createHiddenContainer = function () {\n return this.referenceElement ? (this.containerElement = this.referenceElement.cloneNode(!1), this.containerElement.removeAttribute(\"id\"), this.containerElement.setAttribute(\"data-trix-internal\", \"\"), this.containerElement.style.display = \"none\", this.referenceElement.parentNode.insertBefore(this.containerElement, this.referenceElement.nextSibling)) : (this.containerElement = s({\n tagName: \"div\",\n style: {\n display: \"none\"\n }\n }), document.body.appendChild(this.containerElement));\n }, g.prototype.removeHiddenContainer = function () {\n return e.removeNode(this.containerElement);\n }, x = function x(t) {\n return \"style\" === l(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, g.prototype.processNode = function (t) {\n switch (t.nodeType) {\n case Node.TEXT_NODE:\n if (!this.isInsignificantTextNode(t)) return this.appendBlockForTextNode(t), this.processTextNode(t);\n break;\n\n case Node.ELEMENT_NODE:\n return this.appendBlockForElement(t), this.processElement(t);\n }\n }, g.prototype.appendBlockForTextNode = function (e) {\n var n, i, o;\n return i = e.parentNode, i === this.currentBlockElement && this.isBlockElement(e.previousSibling) ? this.appendStringWithAttributes(\"\\n\") : i !== this.containerElement && !this.isBlockElement(i) || (n = this.getBlockAttributes(i), t(n, null != (o = this.currentBlock) ? o.attributes : void 0)) ? void 0 : (this.currentBlock = this.appendBlockForAttributesWithElement(n, i), this.currentBlockElement = i);\n }, g.prototype.appendBlockForElement = function (e) {\n var n, o, r, s;\n\n if (r = this.isBlockElement(e), o = i(this.currentBlockElement, e), r && !this.isBlockElement(e.firstChild)) {\n if ((!this.isInsignificantTextNode(e.firstChild) || !this.isBlockElement(e.firstElementChild)) && (n = this.getBlockAttributes(e), e.firstChild)) return o && t(n, this.currentBlock.attributes) ? this.appendStringWithAttributes(\"\\n\") : (this.currentBlock = this.appendBlockForAttributesWithElement(n, e), this.currentBlockElement = e);\n } else if (this.currentBlockElement && !o && !r) return (s = this.findParentBlockElement(e)) ? this.appendBlockForElement(s) : (this.currentBlock = this.appendEmptyBlock(), this.currentBlockElement = null);\n }, g.prototype.findParentBlockElement = function (t) {\n var e;\n\n for (e = t.parentElement; e && e !== this.containerElement;) {\n if (this.isBlockElement(e) && f.call(this.blockElements, e) >= 0) return e;\n e = e.parentElement;\n }\n\n return null;\n }, g.prototype.processTextNode = function (t) {\n var e, n;\n return n = t.data, v(t.parentNode) || (n = c(n), R(null != (e = t.previousSibling) ? e.textContent : void 0) && (n = A(n))), this.appendStringWithAttributes(n, this.getTextAttributes(t.parentNode));\n }, g.prototype.processElement = function (t) {\n var e, n, i, o, r;\n if (a(t)) return e = w(t, \"attachment\"), Object.keys(e).length && (o = this.getTextAttributes(t), this.appendAttachmentWithAttributes(e, o), t.innerHTML = \"\"), this.processedElements.push(t);\n\n switch (l(t)) {\n case \"br\":\n return this.isExtraBR(t) || this.isBlockElement(t.nextSibling) || this.appendStringWithAttributes(\"\\n\", this.getTextAttributes(t)), this.processedElements.push(t);\n\n case \"img\":\n e = {\n url: t.getAttribute(\"src\"),\n contentType: \"image\"\n }, i = b(t);\n\n for (n in i) {\n r = i[n], e[n] = r;\n }\n\n return this.appendAttachmentWithAttributes(e, this.getTextAttributes(t)), this.processedElements.push(t);\n\n case \"tr\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\"\\n\");\n break;\n\n case \"td\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\" | \");\n }\n }, g.prototype.appendBlockForAttributesWithElement = function (t, e) {\n var n;\n return this.blockElements.push(e), n = m(t), this.blocks.push(n), n;\n }, g.prototype.appendEmptyBlock = function () {\n return this.appendBlockForAttributesWithElement([], null);\n }, g.prototype.appendStringWithAttributes = function (t, e) {\n return this.appendPiece(S(t, e));\n }, g.prototype.appendAttachmentWithAttributes = function (t, e) {\n return this.appendPiece(E(t, e));\n }, g.prototype.appendPiece = function (t) {\n return 0 === this.blocks.length && this.appendEmptyBlock(), this.blocks[this.blocks.length - 1].text.push(t);\n }, g.prototype.appendStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[i.length - 1], \"string\" === (null != n ? n.type : void 0) ? n.string += t : i.push(S(t));\n }, g.prototype.prependStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[0], \"string\" === (null != n ? n.type : void 0) ? n.string = t + n.string : i.unshift(S(t));\n }, S = function S(t, e) {\n var n;\n return null == e && (e = {}), n = \"string\", t = u(t), {\n string: t,\n attributes: e,\n type: n\n };\n }, E = function E(t, e) {\n var n;\n return null == e && (e = {}), n = \"attachment\", {\n attachment: t,\n attributes: e,\n type: n\n };\n }, m = function m(t) {\n var e;\n return null == t && (t = {}), e = [], {\n text: e,\n attributes: t\n };\n }, g.prototype.getTextAttributes = function (t) {\n var n, i, r, s, u, c, l, h, p, d, f, g;\n r = {}, p = e.config.textAttributes;\n\n for (n in p) {\n if (u = p[n], u.tagName && o(t, {\n matchingSelector: u.tagName,\n untilNode: this.containerElement\n })) r[n] = !0;else if (u.parser) {\n if (g = u.parser(t)) {\n for (i = !1, d = this.findBlockElementAncestors(t), c = 0, h = d.length; h > c; c++) {\n if (s = d[c], u.parser(s) === g) {\n i = !0;\n break;\n }\n }\n\n i || (r[n] = g);\n }\n } else u.styleProperty && (g = t.style[u.styleProperty]) && (r[n] = g);\n }\n\n if (a(t)) {\n f = w(t, \"attributes\");\n\n for (l in f) {\n g = f[l], r[l] = g;\n }\n }\n\n return r;\n }, g.prototype.getBlockAttributes = function (t) {\n var n, i, o, r;\n\n for (i = []; t && t !== this.containerElement;) {\n r = e.config.blockAttributes;\n\n for (n in r) {\n o = r[n], o.parse !== !1 && l(t) === o.tagName && ((\"function\" == typeof o.test ? o.test(t) : void 0) || !o.test) && (i.push(n), o.listAttribute && i.push(o.listAttribute));\n }\n\n t = t.parentNode;\n }\n\n return i.reverse();\n }, g.prototype.findBlockElementAncestors = function (t) {\n var e, n;\n\n for (e = []; t && t !== this.containerElement;) {\n n = l(t), f.call(r(), n) >= 0 && e.push(t), t = t.parentNode;\n }\n\n return e;\n }, w = function w(t, e) {\n try {\n return JSON.parse(t.getAttribute(\"data-trix-\" + e));\n } catch (n) {\n return {};\n }\n }, b = function b(t) {\n var e, n, i;\n return i = t.getAttribute(\"width\"), n = t.getAttribute(\"height\"), e = {}, i && (e.width = parseInt(i, 10)), n && (e.height = parseInt(n, 10)), e;\n }, g.prototype.isBlockElement = function (t) {\n var e;\n if ((null != t ? t.nodeType : void 0) === Node.ELEMENT_NODE && !a(t) && !o(t, {\n matchingSelector: \"td\",\n untilNode: this.containerElement\n })) return e = l(t), f.call(r(), e) >= 0 || \"block\" === window.getComputedStyle(t).display;\n }, g.prototype.isInsignificantTextNode = function (t) {\n var e, n, i;\n if ((null != t ? t.nodeType : void 0) === Node.TEXT_NODE && k(t.data) && (n = t.parentNode, i = t.previousSibling, e = t.nextSibling, (!C(n.previousSibling) || this.isBlockElement(n.previousSibling)) && !v(n))) return !i || this.isBlockElement(i) || !e || this.isBlockElement(e);\n }, g.prototype.isExtraBR = function (t) {\n return \"br\" === l(t) && this.isBlockElement(t.parentNode) && t.parentNode.lastChild === t;\n }, v = function v(t) {\n var e;\n return e = window.getComputedStyle(t).whiteSpace, \"pre\" === e || \"pre-wrap\" === e || \"pre-line\" === e;\n }, C = function C(t) {\n return t && !R(t.textContent);\n }, g.prototype.translateBlockElementMarginsToNewlines = function () {\n var t, e, n, i, o, r, s, a;\n\n for (e = this.getMarginOfDefaultBlockElement(), s = this.blocks, a = [], i = n = 0, o = s.length; o > n; i = ++n) {\n t = s[i], (r = this.getMarginOfBlockElementAtIndex(i)) && (r.top > 2 * e.top && this.prependStringToTextAtIndex(\"\\n\", i), a.push(r.bottom > 2 * e.bottom ? this.appendStringToTextAtIndex(\"\\n\", i) : void 0));\n }\n\n return a;\n }, g.prototype.getMarginOfBlockElementAtIndex = function (t) {\n var e, n;\n return !(e = this.blockElements[t]) || !e.textContent || (n = l(e), f.call(r(), n) >= 0 || f.call(this.processedElements, e) >= 0) ? void 0 : y(e);\n }, g.prototype.getMarginOfDefaultBlockElement = function () {\n var t;\n return t = s(e.config.blockAttributes[\"default\"].tagName), this.containerElement.appendChild(t), y(t);\n }, y = function y(t) {\n var e;\n return e = window.getComputedStyle(t), \"block\" === e.display ? {\n top: parseInt(e.marginTop),\n bottom: parseInt(e.marginBottom)\n } : void 0;\n }, A = function A(t) {\n return t.replace(RegExp(\"^\" + n.source + \"+\"), \"\");\n }, k = function k(t) {\n return RegExp(\"^\" + n.source + \"*$\").test(t);\n }, R = function R(t) {\n return /\\s$/.test(t);\n }, g;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.arraysAreEqual, i = e.normalizeRange, o = e.rangeIsCollapsed, n = e.getBlockConfig, e.Document = function (s) {\n function c(t) {\n null == t && (t = []), c.__super__.constructor.apply(this, arguments), 0 === t.length && (t = [new e.Block()]), this.blockList = e.SplittableList.box(t);\n }\n\n var l;\n return r(c, s), c.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(e.Block.fromJSON(n));\n }\n\n return r;\n }(), new this(i);\n }, c.fromHTML = function (t, n) {\n return e.HTMLParser.parse(t, n).getDocument();\n }, c.fromString = function (t, n) {\n var i;\n return i = e.Text.textForStringWithAttributes(t, n), new this([new e.Block(i)]);\n }, c.prototype.isEmpty = function () {\n var t;\n return 1 === this.blockList.length && (t = this.getBlockAtIndex(0), t.isEmpty() && !t.hasAttributes());\n }, c.prototype.copy = function (t) {\n var e;\n return null == t && (t = {}), e = t.consolidateBlocks ? this.blockList.consolidate().toArray() : this.blockList.toArray(), new this.constructor(e);\n }, c.prototype.copyUsingObjectsFromDocument = function (t) {\n var n;\n return n = new e.ObjectMap(t.getObjects()), this.copyUsingObjectMap(n);\n }, c.prototype.copyUsingObjectMap = function (t) {\n var e, n, i;\n return n = function () {\n var n, o, r, s;\n\n for (r = this.getBlocks(), s = [], n = 0, o = r.length; o > n; n++) {\n e = r[n], s.push((i = t.find(e)) ? i : e.copyUsingObjectMap(t));\n }\n\n return s;\n }.call(this), new this.constructor(n);\n }, c.prototype.copyWithBaseBlockAttributes = function (t) {\n var e, n, i;\n return null == t && (t = []), i = function () {\n var i, o, r, s;\n\n for (r = this.getBlocks(), s = [], i = 0, o = r.length; o > i; i++) {\n n = r[i], e = t.concat(n.getAttributes()), s.push(n.copyWithAttributes(e));\n }\n\n return s;\n }.call(this), new this.constructor(i);\n }, c.prototype.replaceBlock = function (t, e) {\n var n;\n return n = this.blockList.indexOf(t), -1 === n ? this : new this.constructor(this.blockList.replaceObjectAtIndex(e, n));\n }, c.prototype.insertDocumentAtRange = function (t, e) {\n var n, r, s, a, u, c, l;\n return r = t.blockList, u = (e = i(e))[0], c = this.locationFromPosition(u), s = c.index, a = c.offset, l = this, n = this.getBlockAtPosition(u), o(e) && n.isEmpty() && !n.hasAttributes() ? l = new this.constructor(l.blockList.removeObjectAtIndex(s)) : n.getBlockBreakPosition() === a && u++, l = l.removeTextAtRange(e), new this.constructor(l.blockList.insertSplittableListAtPosition(r, u));\n }, c.prototype.mergeDocumentAtRange = function (e, n) {\n var o, r, s, a, u, c, l, h, p, d, f, g;\n return f = (n = i(n))[0], d = this.locationFromPosition(f), r = this.getBlockAtIndex(d.index).getAttributes(), o = e.getBaseBlockAttributes(), g = r.slice(-o.length), t(o, g) ? (l = r.slice(0, -o.length), c = e.copyWithBaseBlockAttributes(l)) : c = e.copy({\n consolidateBlocks: !0\n }).copyWithBaseBlockAttributes(r), s = c.getBlockCount(), a = c.getBlockAtIndex(0), t(r, a.getAttributes()) ? (u = a.getTextWithoutBlockBreak(), p = this.insertTextAtRange(u, n), s > 1 && (c = new this.constructor(c.getBlocks().slice(1)), h = f + u.getLength(), p = p.insertDocumentAtRange(c, h))) : p = this.insertDocumentAtRange(c, n), p;\n }, c.prototype.insertTextAtRange = function (t, e) {\n var n, o, r, s, a;\n return a = (e = i(e))[0], s = this.locationFromPosition(a), o = s.index, r = s.offset, n = this.removeTextAtRange(e), new this.constructor(n.blockList.editObjectAtIndex(o, function (e) {\n return e.copyWithText(e.text.insertTextAtPosition(t, r));\n }));\n }, c.prototype.removeTextAtRange = function (t) {\n var e, n, r, s, a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n return p = t = i(t), l = p[0], A = p[1], o(t) ? this : (d = this.locationRangeFromRange(t), u = d[0], y = d[1], a = u.index, c = u.offset, s = this.getBlockAtIndex(a), v = y.index, b = y.offset, m = this.getBlockAtIndex(v), f = A - l === 1 && s.getBlockBreakPosition() === c && m.getBlockBreakPosition() !== b && \"\\n\" === m.text.getStringAtPosition(b), f ? r = this.blockList.editObjectAtIndex(v, function (t) {\n return t.copyWithText(t.text.removeTextAtRange([b, b + 1]));\n }) : (h = s.text.getTextAtRange([0, c]), C = m.text.getTextAtRange([b, m.getLength()]), x = h.appendText(C), g = a !== v && 0 === c, w = g && s.getAttributeLevel() >= m.getAttributeLevel(), n = w ? m.copyWithText(x) : s.copyWithText(x), e = v + 1 - a, r = this.blockList.splice(a, e, n)), new this.constructor(r));\n }, c.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, o, r, s, u, c, l, h, p, d;\n return c = t = i(t), p = c[0], r = c[1], e >= p && r >= e ? this : (o = this.getDocumentAtRange(t), h = this.removeTextAtRange(t), u = e > p, u && (e -= o.getLength()), l = o.getBlocks(), s = l[0], n = 2 <= l.length ? a.call(l, 1) : [], 0 === n.length ? (d = s.getTextWithoutBlockBreak(), u && (e += 1)) : d = s.text, h = h.insertTextAtRange(d, e), 0 === n.length ? h : (o = new this.constructor(n), e += d.getLength(), h.insertDocumentAtRange(o, e)));\n }, c.prototype.addAttributeAtRange = function (t, e, i) {\n var o;\n return o = this.blockList, this.eachBlockAtRange(i, function (i, r, s) {\n return o = o.editObjectAtIndex(s, function () {\n return n(t) ? i.addAttribute(t, e) : r[0] === r[1] ? i : i.copyWithText(i.text.addAttributeAtRange(t, e, r));\n });\n }), new this.constructor(o);\n }, c.prototype.addAttribute = function (t, e) {\n var n;\n return n = this.blockList, this.eachBlock(function (i, o) {\n return n = n.editObjectAtIndex(o, function () {\n return i.addAttribute(t, e);\n });\n }), new this.constructor(n);\n }, c.prototype.removeAttributeAtRange = function (t, e) {\n var i;\n return i = this.blockList, this.eachBlockAtRange(e, function (e, o, r) {\n return n(t) ? i = i.editObjectAtIndex(r, function () {\n return e.removeAttribute(t);\n }) : o[0] !== o[1] ? i = i.editObjectAtIndex(r, function () {\n return e.copyWithText(e.text.removeAttributeAtRange(t, o));\n }) : void 0;\n }), new this.constructor(i);\n }, c.prototype.updateAttributesForAttachment = function (t, e) {\n var n, i, o, r;\n return o = (i = this.getRangeOfAttachment(e))[0], n = this.locationFromPosition(o).index, r = this.getTextAtIndex(n), new this.constructor(this.blockList.editObjectAtIndex(n, function (n) {\n return n.copyWithText(r.updateAttributesForAttachment(t, e));\n }));\n }, c.prototype.removeAttributeForAttachment = function (t, e) {\n var n;\n return n = this.getRangeOfAttachment(e), this.removeAttributeAtRange(t, n);\n }, c.prototype.insertBlockBreakAtRange = function (t) {\n var n, o, r, s;\n return s = (t = i(t))[0], r = this.locationFromPosition(s).offset, o = this.removeTextAtRange(t), 0 === r && (n = [new e.Block()]), new this.constructor(o.blockList.insertSplittableListAtPosition(new e.SplittableList(n), s));\n }, c.prototype.applyBlockAttributeAtRange = function (t, e, i) {\n var o, r, s, a;\n return s = this.expandRangeToLineBreaksAndSplitBlocks(i), r = s.document, i = s.range, o = n(t), o.listAttribute ? (r = r.removeLastListAttributeAtRange(i, {\n exceptAttributeName: t\n }), a = r.convertLineBreaksToBlockBreaksInRange(i), r = a.document, i = a.range) : r = o.exclusive ? r.removeBlockAttributesAtRange(i) : o.terminal ? r.removeLastTerminalAttributeAtRange(i) : r.consolidateBlocksAtRange(i), r.addAttributeAtRange(t, e, i);\n }, c.prototype.removeLastListAttributeAtRange = function (t, e) {\n var i;\n return null == e && (e = {}), i = this.blockList, this.eachBlockAtRange(t, function (t, o, r) {\n var s;\n if ((s = t.getLastAttribute()) && n(s).listAttribute && s !== e.exceptAttributeName) return i = i.editObjectAtIndex(r, function () {\n return t.removeAttribute(s);\n });\n }), new this.constructor(i);\n }, c.prototype.removeLastTerminalAttributeAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, i, o) {\n var r;\n if ((r = t.getLastAttribute()) && n(r).terminal) return e = e.editObjectAtIndex(o, function () {\n return t.removeAttribute(r);\n });\n }), new this.constructor(e);\n }, c.prototype.removeBlockAttributesAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, n, i) {\n return t.hasAttributes() ? e = e.editObjectAtIndex(i, function () {\n return t.copyWithoutAttributes();\n }) : void 0;\n }), new this.constructor(e);\n }, c.prototype.expandRangeToLineBreaksAndSplitBlocks = function (t) {\n var e, n, o, r, s, a, u, c, l;\n return a = t = i(t), l = a[0], r = a[1], c = this.locationFromPosition(l), o = this.locationFromPosition(r), e = this, u = e.getBlockAtIndex(c.index), null != (c.offset = u.findLineBreakInDirectionFromPosition(\"backward\", c.offset)) && (s = e.positionFromLocation(c), e = e.insertBlockBreakAtRange([s, s + 1]), o.index += 1, o.offset -= e.getBlockAtIndex(c.index).getLength(), c.index += 1), c.offset = 0, 0 === o.offset && o.index > c.index ? (o.index -= 1, o.offset = e.getBlockAtIndex(o.index).getBlockBreakPosition()) : (n = e.getBlockAtIndex(o.index), \"\\n\" === n.text.getStringAtRange([o.offset - 1, o.offset]) ? o.offset -= 1 : o.offset = n.findLineBreakInDirectionFromPosition(\"forward\", o.offset), o.offset !== n.getBlockBreakPosition() && (s = e.positionFromLocation(o), e = e.insertBlockBreakAtRange([s, s + 1]))), l = e.positionFromLocation(c), r = e.positionFromLocation(o), t = i([l, r]), {\n document: e,\n range: t\n };\n }, c.prototype.convertLineBreaksToBlockBreaksInRange = function (t) {\n var e, n, o;\n return n = (t = i(t))[0], o = this.getStringAtRange(t).slice(0, -1), e = this, o.replace(/.*?\\n/g, function (t) {\n return n += t.length, e = e.insertBlockBreakAtRange([n - 1, n]);\n }), {\n document: e,\n range: t\n };\n }, c.prototype.consolidateBlocksAtRange = function (t) {\n var e, n, o, r, s;\n return o = t = i(t), s = o[0], n = o[1], r = this.locationFromPosition(s).index, e = this.locationFromPosition(n).index, new this.constructor(this.blockList.consolidateFromIndexToIndex(r, e));\n }, c.prototype.getDocumentAtRange = function (t) {\n var e;\n return t = i(t), e = this.blockList.getSplittableListInRange(t).toArray(), new this.constructor(e);\n }, c.prototype.getStringAtRange = function (t) {\n var e, n, o;\n return o = t = i(t), n = o[o.length - 1], n !== this.getLength() && (e = -1), this.getDocumentAtRange(t).toString().slice(0, e);\n }, c.prototype.getBlockAtIndex = function (t) {\n return this.blockList.getObjectAtIndex(t);\n }, c.prototype.getBlockAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getBlockAtIndex(e);\n }, c.prototype.getTextAtIndex = function (t) {\n var e;\n return null != (e = this.getBlockAtIndex(t)) ? e.text : void 0;\n }, c.prototype.getTextAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getTextAtIndex(e);\n }, c.prototype.getPieceAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getPieceAtPosition(n);\n }, c.prototype.getCharacterAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getStringAtRange([n, n + 1]);\n }, c.prototype.getLength = function () {\n return this.blockList.getEndPosition();\n }, c.prototype.getBlocks = function () {\n return this.blockList.toArray();\n }, c.prototype.getBlockCount = function () {\n return this.blockList.length;\n }, c.prototype.getEditCount = function () {\n return this.editCount;\n }, c.prototype.eachBlock = function (t) {\n return this.blockList.eachObject(t);\n }, c.prototype.eachBlockAtRange = function (t, e) {\n var n, o, r, s, a, u, c, l, h, p, d, f;\n if (u = t = i(t), d = u[0], r = u[1], p = this.locationFromPosition(d), o = this.locationFromPosition(r), p.index === o.index) return n = this.getBlockAtIndex(p.index), f = [p.offset, o.offset], e(n, f, p.index);\n\n for (h = [], a = s = c = p.index, l = o.index; l >= c ? l >= s : s >= l; a = l >= c ? ++s : --s) {\n (n = this.getBlockAtIndex(a)) ? (f = function () {\n switch (a) {\n case p.index:\n return [p.offset, n.text.getLength()];\n\n case o.index:\n return [0, o.offset];\n\n default:\n return [0, n.text.getLength()];\n }\n }(), h.push(e(n, f, a))) : h.push(void 0);\n }\n\n return h;\n }, c.prototype.getCommonAttributesAtRange = function (t) {\n var n, r, s;\n return r = (t = i(t))[0], o(t) ? this.getCommonAttributesAtPosition(r) : (s = [], n = [], this.eachBlockAtRange(t, function (t, e) {\n return e[0] !== e[1] ? (s.push(t.text.getCommonAttributesAtRange(e)), n.push(l(t))) : void 0;\n }), e.Hash.fromCommonAttributesOfObjects(s).merge(e.Hash.fromCommonAttributesOfObjects(n)).toObject());\n }, c.prototype.getCommonAttributesAtPosition = function (t) {\n var n, i, o, r, s, a, c, h, p, d;\n if (p = this.locationFromPosition(t), s = p.index, h = p.offset, o = this.getBlockAtIndex(s), !o) return {};\n r = l(o), n = o.text.getAttributesAtPosition(h), i = o.text.getAttributesAtPosition(h - 1), a = function () {\n var t, n;\n t = e.config.textAttributes, n = [];\n\n for (c in t) {\n d = t[c], d.inheritable && n.push(c);\n }\n\n return n;\n }();\n\n for (c in i) {\n d = i[c], (d === n[c] || u.call(a, c) >= 0) && (r[c] = d);\n }\n\n return r;\n }, c.prototype.getRangeOfCommonAttributeAtPosition = function (t, e) {\n var n, o, r, s, a, u, c, l, h;\n return a = this.locationFromPosition(e), r = a.index, s = a.offset, h = this.getTextAtIndex(r), u = h.getExpandedRangeForAttributeAtOffset(t, s), l = u[0], o = u[1], c = this.positionFromLocation({\n index: r,\n offset: l\n }), n = this.positionFromLocation({\n index: r,\n offset: o\n }), i([c, n]);\n }, c.prototype.getBaseBlockAttributes = function () {\n var t, e, n, i, o, r, s;\n\n for (t = this.getBlockAtIndex(0).getAttributes(), n = i = 1, s = this.getBlockCount(); s >= 1 ? s > i : i > s; n = s >= 1 ? ++i : --i) {\n e = this.getBlockAtIndex(n).getAttributes(), r = Math.min(t.length, e.length), t = function () {\n var n, i, s;\n\n for (s = [], o = n = 0, i = r; (i >= 0 ? i > n : n > i) && e[o] === t[o]; o = i >= 0 ? ++n : --n) {\n s.push(e[o]);\n }\n\n return s;\n }();\n }\n\n return t;\n }, l = function l(t) {\n var e, n;\n return n = {}, (e = t.getLastAttribute()) && (n[e] = !0), n;\n }, c.prototype.getAttachmentById = function (t) {\n var e, n, i, o;\n\n for (o = this.getAttachments(), n = 0, i = o.length; i > n; n++) {\n if (e = o[n], e.id === t) return e;\n }\n }, c.prototype.getAttachmentPieces = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n var n;\n return n = e.text, t = t.concat(n.getAttachmentPieces());\n }), t;\n }, c.prototype.getAttachments = function () {\n var t, e, n, i, o;\n\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.attachment);\n }\n\n return o;\n }, c.prototype.getRangeOfAttachment = function (t) {\n var e, n, o, r, s, a, u;\n\n for (r = 0, s = this.blockList.toArray(), n = e = 0, o = s.length; o > e; n = ++e) {\n if (a = s[n].text, u = a.getRangeOfAttachment(t)) return i([r + u[0], r + u[1]]);\n r += a.getLength();\n }\n }, c.prototype.getLocationRangeOfAttachment = function (t) {\n var e;\n return e = this.getRangeOfAttachment(t), this.locationRangeFromRange(e);\n }, c.prototype.getAttachmentPieceForAttachment = function (t) {\n var e, n, i, o;\n\n for (o = this.getAttachmentPieces(), e = 0, n = o.length; n > e; e++) {\n if (i = o[e], i.attachment === t) return i;\n }\n }, c.prototype.findRangesForBlockAttribute = function (t) {\n var e, n, i, o, r, s, a;\n\n for (r = 0, s = [], a = this.getBlocks(), n = 0, i = a.length; i > n; n++) {\n e = a[n], o = e.getLength(), e.hasAttribute(t) && s.push([r, r + o]), r += o;\n }\n\n return s;\n }, c.prototype.findRangesForTextAttribute = function (t, e) {\n var n, i, o, r, s, a, u, c, l, h;\n\n for (h = (null != e ? e : {}).withValue, a = 0, u = [], c = [], r = function r(e) {\n return null != h ? e.getAttribute(t) === h : e.hasAttribute(t);\n }, l = this.getPieces(), n = 0, i = l.length; i > n; n++) {\n s = l[n], o = s.getLength(), r(s) && (u[1] === a ? u[1] = a + o : c.push(u = [a, a + o])), a += o;\n }\n\n return c;\n }, c.prototype.locationFromPosition = function (t) {\n var e, n;\n return n = this.blockList.findIndexAndOffsetAtPosition(Math.max(0, t)), null != n.index ? n : (e = this.getBlocks(), {\n index: e.length - 1,\n offset: e[e.length - 1].getLength()\n });\n }, c.prototype.positionFromLocation = function (t) {\n return this.blockList.findPositionAtIndexAndOffset(t.index, t.offset);\n }, c.prototype.locationRangeFromPosition = function (t) {\n return i(this.locationFromPosition(t));\n }, c.prototype.locationRangeFromRange = function (t) {\n var e, n, o, r;\n if (t = i(t)) return r = t[0], n = t[1], o = this.locationFromPosition(r), e = this.locationFromPosition(n), i([o, e]);\n }, c.prototype.rangeFromLocationRange = function (t) {\n var e, n;\n return t = i(t), e = this.positionFromLocation(t[0]), o(t) || (n = this.positionFromLocation(t[1])), i([e, n]);\n }, c.prototype.isEqualTo = function (t) {\n return this.blockList.isEqualTo(null != t ? t.blockList : void 0);\n }, c.prototype.getTexts = function () {\n var t, e, n, i, o;\n\n for (i = this.getBlocks(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t.text);\n }\n\n return o;\n }, c.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (n = [], i = this.getTexts(), t = 0, e = i.length; e > t; t++) {\n o = i[t], n.push.apply(n, o.getPieces());\n }\n\n return n;\n }, c.prototype.getObjects = function () {\n return this.getBlocks().concat(this.getTexts()).concat(this.getPieces());\n }, c.prototype.toSerializableDocument = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n return t.push(e.copyWithText(e.text.toSerializableText()));\n }), new this.constructor(t);\n }, c.prototype.toString = function () {\n return this.blockList.toString();\n }, c.prototype.toJSON = function () {\n return this.blockList.toJSON();\n }, c.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n\n for (i = this.blockList.toArray(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(JSON.parse(t.text.toConsole()));\n }\n\n return o;\n }.call(this));\n }, c;\n }(e.Object);\n }.call(this), function () {\n e.LineBreakInsertion = function () {\n function t(t) {\n var e;\n this.composition = t, this.document = this.composition.document, e = this.composition.getSelectedRange(), this.startPosition = e[0], this.endPosition = e[1], this.startLocation = this.document.locationFromPosition(this.startPosition), this.endLocation = this.document.locationFromPosition(this.endPosition), this.block = this.document.getBlockAtIndex(this.endLocation.index), this.breaksOnReturn = this.block.breaksOnReturn(), this.previousCharacter = this.block.text.getStringAtPosition(this.endLocation.offset - 1), this.nextCharacter = this.block.text.getStringAtPosition(this.endLocation.offset);\n }\n\n return t.prototype.shouldInsertBlockBreak = function () {\n return this.block.hasAttributes() && this.block.isListItem() && !this.block.isEmpty() ? 0 !== this.startLocation.offset : this.breaksOnReturn && \"\\n\" !== this.nextCharacter;\n }, t.prototype.shouldBreakFormattedBlock = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && (this.breaksOnReturn && \"\\n\" === this.nextCharacter || \"\\n\" === this.previousCharacter);\n }, t.prototype.shouldDecreaseListLevel = function () {\n return this.block.hasAttributes() && this.block.isListItem() && this.block.isEmpty();\n }, t.prototype.shouldPrependListItem = function () {\n return this.block.isListItem() && 0 === this.startLocation.offset && !this.block.isEmpty();\n }, t.prototype.shouldRemoveLastBlockAttribute = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && this.block.isEmpty();\n }, t;\n }();\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function h(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n p.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n p = {}.hasOwnProperty;\n\n s = e.normalizeRange, c = e.rangesAreEqual, u = e.rangeIsCollapsed, a = e.objectsAreEqual, t = e.arrayStartsWith, l = e.summarizeArrayChange, i = e.getAllAttributeNames, o = e.getBlockConfig, r = e.getTextConfig, n = e.extend, e.Composition = function (p) {\n function d() {\n this.document = new e.Document(), this.attachments = [], this.currentAttributes = {}, this.revision = 0;\n }\n\n var f;\n return h(d, p), d.prototype.setDocument = function (t) {\n var e;\n return t.isEqualTo(this.document) ? void 0 : (this.document = t, this.refreshAttachments(), this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeDocument ? e.compositionDidChangeDocument(t) : void 0);\n }, d.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.getSelectedRange()\n };\n }, d.prototype.loadSnapshot = function (t) {\n var n, i, o, r;\n return n = t.document, r = t.selectedRange, null != (i = this.delegate) && \"function\" == typeof i.compositionWillLoadSnapshot && i.compositionWillLoadSnapshot(), this.setDocument(null != n ? n : new e.Document()), this.setSelection(null != r ? r : [0, 0]), null != (o = this.delegate) && \"function\" == typeof o.compositionDidLoadSnapshot ? o.compositionDidLoadSnapshot() : void 0;\n }, d.prototype.insertText = function (t, e) {\n var n, i, o, r;\n return r = (null != e ? e : {\n updatePosition: !0\n }).updatePosition, i = this.getSelectedRange(), this.setDocument(this.document.insertTextAtRange(t, i)), o = i[0], n = o + t.getLength(), r && this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertBlock = function (t) {\n var n;\n return null == t && (t = new e.Block()), n = new e.Document([t]), this.insertDocument(n);\n }, d.prototype.insertDocument = function (t) {\n var n, i, o;\n return null == t && (t = new e.Document()), i = this.getSelectedRange(), this.setDocument(this.document.insertDocumentAtRange(t, i)), o = i[0], n = o + t.getLength(), this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertString = function (t, n) {\n var i, o;\n return i = this.getCurrentTextAttributes(), o = e.Text.textForStringWithAttributes(t, i), this.insertText(o, n);\n }, d.prototype.insertBlockBreak = function () {\n var t, e, n;\n return e = this.getSelectedRange(), this.setDocument(this.document.insertBlockBreakAtRange(e)), n = e[0], t = n + 1, this.setSelection(t), this.notifyDelegateOfInsertionAtRange([n, t]);\n }, d.prototype.insertLineBreak = function () {\n var t, n;\n return n = new e.LineBreakInsertion(this), n.shouldDecreaseListLevel() ? (this.decreaseListLevel(), this.setSelection(n.startPosition)) : n.shouldPrependListItem() ? (t = new e.Document([n.block.copyWithoutText()]), this.insertDocument(t)) : n.shouldInsertBlockBreak() ? this.insertBlockBreak() : n.shouldRemoveLastBlockAttribute() ? this.removeLastBlockAttribute() : n.shouldBreakFormattedBlock() ? this.breakFormattedBlock(n) : this.insertString(\"\\n\");\n }, d.prototype.insertHTML = function (t) {\n var n, i, o, r;\n return n = e.Document.fromHTML(t), o = this.getSelectedRange(), this.setDocument(this.document.mergeDocumentAtRange(n, o)), r = o[0], i = r + n.getLength() - 1, this.setSelection(i), this.notifyDelegateOfInsertionAtRange([r, i]);\n }, d.prototype.replaceHTML = function (t) {\n var n, i, o;\n return n = e.Document.fromHTML(t).copyUsingObjectsFromDocument(this.document), i = this.getLocationRange({\n strict: !1\n }), o = this.document.rangeFromLocationRange(i), this.setDocument(n), this.setSelection(o);\n }, d.prototype.insertFile = function (t) {\n return this.insertFiles([t]);\n }, d.prototype.insertFiles = function (t) {\n var n, i, o, r, s, a;\n\n for (i = [], r = 0, s = t.length; s > r; r++) {\n o = t[r], (null != (a = this.delegate) ? a.compositionShouldAcceptFile(o) : void 0) && (n = e.Attachment.attachmentForFile(o), i.push(n));\n }\n\n return this.insertAttachments(i);\n }, d.prototype.insertAttachment = function (t) {\n return this.insertAttachments([t]);\n }, d.prototype.insertAttachments = function (t) {\n var n, i, o, r, s, a, u, c, l;\n\n for (c = new e.Text(), r = 0, s = t.length; s > r; r++) {\n n = t[r], l = n.getType(), a = null != (u = e.config.attachments[l]) ? u.presentation : void 0, o = this.getCurrentTextAttributes(), a && (o.presentation = a), i = e.Text.textForAttachmentWithAttributes(n, o), c = c.appendText(i);\n }\n\n return this.insertText(c);\n }, d.prototype.shouldManageDeletingInDirection = function (t) {\n var e;\n\n if (e = this.getLocationRange(), u(e)) {\n if (\"backward\" === t && 0 === e[0].offset) return !0;\n if (this.shouldManageMovingCursorInDirection(t)) return !0;\n } else if (e[0].index !== e[1].index) return !0;\n\n return !1;\n }, d.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r, s, a, c, l;\n return r = (null != e ? e : {}).length, s = this.getLocationRange(), a = this.getSelectedRange(), c = u(a), c ? o = \"backward\" === t && 0 === s[0].offset : l = s[0].index !== s[1].index, o && this.canDecreaseBlockAttributeLevel() && (i = this.getBlock(), i.isListItem() ? this.decreaseListLevel() : this.decreaseBlockAttributeLevel(), this.setSelection(a[0]), i.isEmpty()) ? !1 : (c && (a = this.getExpandedRangeInDirection(t, {\n length: r\n }), \"backward\" === t && (n = this.getAttachmentAtRange(a))), n ? (this.editAttachment(n), !1) : (this.setDocument(this.document.removeTextAtRange(a)), this.setSelection(a[0]), o || l ? !1 : void 0));\n }, d.prototype.moveTextFromRange = function (t) {\n var e;\n return e = this.getSelectedRange()[0], this.setDocument(this.document.moveTextFromRangeToPosition(t, e)), this.setSelection(e);\n }, d.prototype.removeAttachment = function (t) {\n var e;\n return (e = this.document.getRangeOfAttachment(t)) ? (this.stopEditingAttachment(), this.setDocument(this.document.removeTextAtRange(e)), this.setSelection(e[0])) : void 0;\n }, d.prototype.removeLastBlockAttribute = function () {\n var t, e, n, i;\n return n = this.getSelectedRange(), i = n[0], e = n[1], t = this.document.getBlockAtPosition(e), this.removeCurrentAttribute(t.getLastAttribute()), this.setSelection(i);\n }, f = \" \", d.prototype.insertPlaceholder = function () {\n return this.placeholderPosition = this.getPosition(), this.insertString(f);\n }, d.prototype.selectPlaceholder = function () {\n return null != this.placeholderPosition ? (this.setSelectedRange([this.placeholderPosition, this.placeholderPosition + f.length]), this.getSelectedRange()) : void 0;\n }, d.prototype.forgetPlaceholder = function () {\n return this.placeholderPosition = null;\n }, d.prototype.hasCurrentAttribute = function (t) {\n var e;\n return e = this.currentAttributes[t], null != e && e !== !1;\n }, d.prototype.toggleCurrentAttribute = function (t) {\n var e;\n return (e = !this.currentAttributes[t]) ? this.setCurrentAttribute(t, e) : this.removeCurrentAttribute(t);\n }, d.prototype.canSetCurrentAttribute = function (t) {\n return o(t) ? this.canSetCurrentBlockAttribute(t) : this.canSetCurrentTextAttribute(t);\n }, d.prototype.canSetCurrentTextAttribute = function () {\n var t, e, n, i, o;\n\n if (e = this.getSelectedDocument()) {\n for (o = e.getAttachments(), n = 0, i = o.length; i > n; n++) {\n if (t = o[n], !t.hasContent()) return !1;\n }\n\n return !0;\n }\n }, d.prototype.canSetCurrentBlockAttribute = function () {\n var t;\n if (t = this.getBlock()) return !t.isTerminalBlock();\n }, d.prototype.setCurrentAttribute = function (t, e) {\n return o(t) ? this.setBlockAttribute(t, e) : (this.setTextAttribute(t, e), this.currentAttributes[t] = e, this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.setTextAttribute = function (t, n) {\n var i, o, r, s;\n if (o = this.getSelectedRange()) return r = o[0], i = o[1], r !== i ? this.setDocument(this.document.addAttributeAtRange(t, n, o)) : \"href\" === t ? (s = e.Text.textForStringWithAttributes(n, {\n href: n\n }), this.insertText(s)) : void 0;\n }, d.prototype.setBlockAttribute = function (t, e) {\n var n, i;\n if (i = this.getSelectedRange()) return this.canSetCurrentAttribute(t) ? (n = this.getBlock(), this.setDocument(this.document.applyBlockAttributeAtRange(t, e, i)), this.setSelection(i)) : void 0;\n }, d.prototype.removeCurrentAttribute = function (t) {\n return o(t) ? (this.removeBlockAttribute(t), this.updateCurrentAttributes()) : (this.removeTextAttribute(t), delete this.currentAttributes[t], this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.removeTextAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.removeBlockAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.canDecreaseNestingLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getNestingLevel() : void 0) > 0;\n }, d.prototype.canIncreaseNestingLevel = function () {\n var e, n, i;\n if (e = this.getBlock()) return (null != (i = o(e.getLastNestableAttribute())) ? i.listAttribute : 0) ? (n = this.getPreviousBlock()) ? t(n.getListItemAttributes(), e.getListItemAttributes()) : void 0 : e.getNestingLevel() > 0;\n }, d.prototype.decreaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.decreaseNestingLevel()));\n }, d.prototype.increaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.increaseNestingLevel()));\n }, d.prototype.canDecreaseBlockAttributeLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getAttributeLevel() : void 0) > 0;\n }, d.prototype.decreaseBlockAttributeLevel = function () {\n var t, e;\n return (t = null != (e = this.getBlock()) ? e.getLastAttribute() : void 0) ? this.removeCurrentAttribute(t) : void 0;\n }, d.prototype.decreaseListLevel = function () {\n var t, e, n, i, o, r;\n\n for (r = this.getSelectedRange()[0], o = this.document.locationFromPosition(r).index, n = o, t = this.getBlock().getAttributeLevel(); (e = this.document.getBlockAtIndex(n + 1)) && e.isListItem() && e.getAttributeLevel() > t;) {\n n++;\n }\n\n return r = this.document.positionFromLocation({\n index: o,\n offset: 0\n }), i = this.document.positionFromLocation({\n index: n,\n offset: 0\n }), this.setDocument(this.document.removeLastListAttributeAtRange([r, i]));\n }, d.prototype.updateCurrentAttributes = function () {\n var t, e, n, o, r, s;\n\n if (s = this.getSelectedRange({\n ignoreLock: !0\n })) {\n for (e = this.document.getCommonAttributesAtRange(s), r = i(), n = 0, o = r.length; o > n; n++) {\n t = r[n], e[t] || this.canSetCurrentAttribute(t) || (e[t] = !1);\n }\n\n if (!a(e, this.currentAttributes)) return this.currentAttributes = e, this.notifyDelegateOfCurrentAttributesChange();\n }\n }, d.prototype.getCurrentAttributes = function () {\n return n.call({}, this.currentAttributes);\n }, d.prototype.getCurrentTextAttributes = function () {\n var t, e, n, i;\n t = {}, n = this.currentAttributes;\n\n for (e in n) {\n i = n[e], i !== !1 && r(e) && (t[e] = i);\n }\n\n return t;\n }, d.prototype.freezeSelection = function () {\n return this.setCurrentAttribute(\"frozen\", !0);\n }, d.prototype.thawSelection = function () {\n return this.removeCurrentAttribute(\"frozen\");\n }, d.prototype.hasFrozenSelection = function () {\n return this.hasCurrentAttribute(\"frozen\");\n }, d.proxyMethod(\"getSelectionManager().getPointRange\"), d.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"), d.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"), d.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"), d.proxyMethod(\"getSelectionManager().selectionIsExpanded\"), d.proxyMethod(\"delegate?.getSelectionManager\"), d.prototype.setSelection = function (t) {\n var e, n;\n return e = this.document.locationRangeFromRange(t), null != (n = this.delegate) ? n.compositionDidRequestChangingSelectionToLocationRange(e) : void 0;\n }, d.prototype.getSelectedRange = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.rangeFromLocationRange(t) : void 0;\n }, d.prototype.setSelectedRange = function (t) {\n var e;\n return e = this.document.locationRangeFromRange(t), this.getSelectionManager().setLocationRange(e);\n }, d.prototype.getPosition = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.positionFromLocation(t[0]) : void 0;\n }, d.prototype.getLocationRange = function (t) {\n var e, n;\n return null != (e = null != (n = this.targetLocationRange) ? n : this.getSelectionManager().getLocationRange(t)) ? e : s({\n index: 0,\n offset: 0\n });\n }, d.prototype.withTargetLocationRange = function (t, e) {\n var n;\n this.targetLocationRange = t;\n\n try {\n n = e();\n } finally {\n this.targetLocationRange = null;\n }\n\n return n;\n }, d.prototype.withTargetRange = function (t, e) {\n var n;\n return n = this.document.locationRangeFromRange(t), this.withTargetLocationRange(n, e);\n }, d.prototype.withTargetDOMRange = function (t, e) {\n var n;\n return n = this.createLocationRangeFromDOMRange(t, {\n strict: !1\n }), this.withTargetLocationRange(n, e);\n }, d.prototype.getExpandedRangeInDirection = function (t, e) {\n var n, i, o, r;\n return i = (null != e ? e : {}).length, o = this.getSelectedRange(), r = o[0], n = o[1], \"backward\" === t ? i ? r -= i : r = this.translateUTF16PositionFromOffset(r, -1) : i ? n += i : n = this.translateUTF16PositionFromOffset(n, 1), s([r, n]);\n }, d.prototype.shouldManageMovingCursorInDirection = function (t) {\n var e;\n return this.editingAttachment ? !0 : (e = this.getExpandedRangeInDirection(t), null != this.getAttachmentAtRange(e));\n }, d.prototype.moveCursorInDirection = function (t) {\n var e, n, i, o;\n return this.editingAttachment ? i = this.document.getRangeOfAttachment(this.editingAttachment) : (o = this.getSelectedRange(), i = this.getExpandedRangeInDirection(t), n = !c(o, i)), this.setSelectedRange(\"backward\" === t ? i[0] : i[1]), n && (e = this.getAttachmentAtRange(i)) ? this.editAttachment(e) : void 0;\n }, d.prototype.expandSelectionInDirection = function (t, e) {\n var n, i;\n return n = (null != e ? e : {}).length, i = this.getExpandedRangeInDirection(t, {\n length: n\n }), this.setSelectedRange(i);\n }, d.prototype.expandSelectionForEditing = function () {\n return this.hasCurrentAttribute(\"href\") ? this.expandSelectionAroundCommonAttribute(\"href\") : void 0;\n }, d.prototype.expandSelectionAroundCommonAttribute = function (t) {\n var e, n;\n return e = this.getPosition(), n = this.document.getRangeOfCommonAttributeAtPosition(t, e), this.setSelectedRange(n);\n }, d.prototype.selectionContainsAttachments = function () {\n var t;\n return (null != (t = this.getSelectedAttachments()) ? t.length : void 0) > 0;\n }, d.prototype.selectionIsInCursorTarget = function () {\n return this.editingAttachment || this.positionIsCursorTarget(this.getPosition());\n }, d.prototype.positionIsCursorTarget = function (t) {\n var e;\n return (e = this.document.locationFromPosition(t)) ? this.locationIsCursorTarget(e) : void 0;\n }, d.prototype.positionIsBlockBreak = function (t) {\n var e;\n return null != (e = this.document.getPieceAtPosition(t)) ? e.isBlockBreak() : void 0;\n }, d.prototype.getSelectedDocument = function () {\n var t;\n return (t = this.getSelectedRange()) ? this.document.getDocumentAtRange(t) : void 0;\n }, d.prototype.getSelectedAttachments = function () {\n var t;\n return null != (t = this.getSelectedDocument()) ? t.getAttachments() : void 0;\n }, d.prototype.getAttachments = function () {\n return this.attachments.slice(0);\n }, d.prototype.refreshAttachments = function () {\n var t, e, n, i, o, r, s, a, u, c, h, p;\n\n for (n = this.document.getAttachments(), a = l(this.attachments, n), t = a.added, h = a.removed, this.attachments = n, i = 0, r = h.length; r > i; i++) {\n e = h[i], e.delegate = null, null != (u = this.delegate) && \"function\" == typeof u.compositionDidRemoveAttachment && u.compositionDidRemoveAttachment(e);\n }\n\n for (p = [], o = 0, s = t.length; s > o; o++) {\n e = t[o], e.delegate = this, p.push(null != (c = this.delegate) && \"function\" == typeof c.compositionDidAddAttachment ? c.compositionDidAddAttachment(e) : void 0);\n }\n\n return p;\n }, d.prototype.attachmentDidChangeAttributes = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidEditAttachment ? e.compositionDidEditAttachment(t) : void 0;\n }, d.prototype.attachmentDidChangePreviewURL = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeAttachmentPreviewURL ? e.compositionDidChangeAttachmentPreviewURL(t) : void 0;\n }, d.prototype.editAttachment = function (t, e) {\n var n;\n if (t !== this.editingAttachment) return this.stopEditingAttachment(), this.editingAttachment = t, null != (n = this.delegate) && \"function\" == typeof n.compositionDidStartEditingAttachment ? n.compositionDidStartEditingAttachment(this.editingAttachment, e) : void 0;\n }, d.prototype.stopEditingAttachment = function () {\n var t;\n if (this.editingAttachment) return null != (t = this.delegate) && \"function\" == typeof t.compositionDidStopEditingAttachment && t.compositionDidStopEditingAttachment(this.editingAttachment), this.editingAttachment = null;\n }, d.prototype.updateAttributesForAttachment = function (t, e) {\n return this.setDocument(this.document.updateAttributesForAttachment(t, e));\n }, d.prototype.removeAttributeForAttachment = function (t, e) {\n return this.setDocument(this.document.removeAttributeForAttachment(t, e));\n }, d.prototype.breakFormattedBlock = function (t) {\n var n, i, o, r, s;\n return i = t.document, n = t.block, r = t.startPosition, s = [r - 1, r], n.getBlockBreakPosition() === t.startLocation.offset ? (n.breaksOnReturn() && \"\\n\" === t.nextCharacter ? r += 1 : i = i.removeTextAtRange(s), s = [r, r]) : \"\\n\" === t.nextCharacter ? \"\\n\" === t.previousCharacter ? s = [r - 1, r + 1] : (s = [r, r + 1], r += 1) : t.startLocation.offset - 1 !== 0 && (r += 1), o = new e.Document([n.removeLastAttribute().copyWithoutText()]), this.setDocument(i.insertDocumentAtRange(o, s)), this.setSelection(r);\n }, d.prototype.getPreviousBlock = function () {\n var t, e;\n return (e = this.getLocationRange()) && (t = e[0].index, t > 0) ? this.document.getBlockAtIndex(t - 1) : void 0;\n }, d.prototype.getBlock = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.getBlockAtIndex(t[0].index) : void 0;\n }, d.prototype.getAttachmentAtRange = function (t) {\n var n;\n return n = this.document.getDocumentAtRange(t), n.toString() === e.OBJECT_REPLACEMENT_CHARACTER + \"\\n\" ? n.getAttachments()[0] : void 0;\n }, d.prototype.notifyDelegateOfCurrentAttributesChange = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.compositionDidChangeCurrentAttributes ? t.compositionDidChangeCurrentAttributes(this.currentAttributes) : void 0;\n }, d.prototype.notifyDelegateOfInsertionAtRange = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionDidPerformInsertionAtRange ? e.compositionDidPerformInsertionAtRange(t) : void 0;\n }, d.prototype.translateUTF16PositionFromOffset = function (t, e) {\n var n, i;\n return i = this.document.toUTF16String(), n = i.offsetFromUCS2Offset(t), i.offsetToUCS2Offset(n + e);\n }, d;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t17, e) {\n function i() {\n this.constructor = _t17;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t17[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t17.prototype = new i(), _t17.__super__ = e.prototype, _t17;\n },\n n = {}.hasOwnProperty;\n\n e.UndoManager = function (e) {\n function n(t) {\n this.composition = t, this.undoEntries = [], this.redoEntries = [];\n }\n\n var i;\n return t(n, e), n.prototype.recordUndoEntry = function (t, e) {\n var n, o, r, s, a;\n return s = null != e ? e : {}, o = s.context, n = s.consolidatable, r = this.undoEntries.slice(-1)[0], n && i(r, t, o) ? void 0 : (a = this.createEntry({\n description: t,\n context: o\n }), this.undoEntries.push(a), this.redoEntries = []);\n }, n.prototype.undo = function () {\n var t, e;\n return (e = this.undoEntries.pop()) ? (t = this.createEntry(e), this.redoEntries.push(t), this.composition.loadSnapshot(e.snapshot)) : void 0;\n }, n.prototype.redo = function () {\n var t, e;\n return (t = this.redoEntries.pop()) ? (e = this.createEntry(t), this.undoEntries.push(e), this.composition.loadSnapshot(t.snapshot)) : void 0;\n }, n.prototype.canUndo = function () {\n return this.undoEntries.length > 0;\n }, n.prototype.canRedo = function () {\n return this.redoEntries.length > 0;\n }, n.prototype.createEntry = function (t) {\n var e, n, i;\n return i = null != t ? t : {}, n = i.description, e = i.context, {\n description: null != n ? n.toString() : void 0,\n context: JSON.stringify(e),\n snapshot: this.composition.getSnapshot()\n };\n }, i = function i(t, e, n) {\n return (null != t ? t.description : void 0) === (null != e ? e.toString() : void 0) && (null != t ? t.context : void 0) === JSON.stringify(n);\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n var t;\n e.attachmentGalleryFilter = function (e) {\n var n;\n return n = new t(e), n.perform(), n.getSnapshot();\n }, t = function () {\n function t(t) {\n this.document = t.document, this.selectedRange = t.selectedRange;\n }\n\n var e, n, i;\n return e = \"attachmentGallery\", n = \"presentation\", i = \"gallery\", t.prototype.perform = function () {\n return this.removeBlockAttribute(), this.applyBlockAttribute();\n }, t.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.selectedRange\n };\n }, t.prototype.removeBlockAttribute = function () {\n var t, n, i, o, r;\n\n for (o = this.findRangesOfBlocks(), r = [], t = 0, n = o.length; n > t; t++) {\n i = o[t], r.push(this.document = this.document.removeAttributeAtRange(e, i));\n }\n\n return r;\n }, t.prototype.applyBlockAttribute = function () {\n var t, n, i, o, r, s;\n\n for (i = 0, r = this.findRangesOfPieces(), s = [], t = 0, n = r.length; n > t; t++) {\n o = r[t], o[1] - o[0] > 1 && (o[0] += i, o[1] += i, \"\\n\" !== this.document.getCharacterAtPosition(o[1]) && (this.document = this.document.insertBlockBreakAtRange(o[1]), o[1] < this.selectedRange[1] && this.moveSelectedRangeForward(), o[1]++, i++), 0 !== o[0] && \"\\n\" !== this.document.getCharacterAtPosition(o[0] - 1) && (this.document = this.document.insertBlockBreakAtRange(o[0]), o[0] < this.selectedRange[0] && this.moveSelectedRangeForward(), o[0]++, i++), s.push(this.document = this.document.applyBlockAttributeAtRange(e, !0, o)));\n }\n\n return s;\n }, t.prototype.findRangesOfBlocks = function () {\n return this.document.findRangesForBlockAttribute(e);\n }, t.prototype.findRangesOfPieces = function () {\n return this.document.findRangesForTextAttribute(n, {\n withValue: i\n });\n }, t.prototype.moveSelectedRangeForward = function () {\n return this.selectedRange[0] += 1, this.selectedRange[1] += 1;\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t18, e) {\n return function () {\n return _t18.apply(e, arguments);\n };\n };\n\n e.Editor = function () {\n function n(n, o, r) {\n this.composition = n, this.selectionManager = o, this.element = r, this.insertFiles = t(this.insertFiles, this), this.undoManager = new e.UndoManager(this.composition), this.filters = i.slice(0);\n }\n\n var i;\n return i = [e.attachmentGalleryFilter], n.prototype.loadDocument = function (t) {\n return this.loadSnapshot({\n document: t,\n selectedRange: [0, 0]\n });\n }, n.prototype.loadHTML = function (t) {\n return null == t && (t = \"\"), this.loadDocument(e.Document.fromHTML(t, {\n referenceElement: this.element\n }));\n }, n.prototype.loadJSON = function (t) {\n var n, i;\n return n = t.document, i = t.selectedRange, n = e.Document.fromJSON(n), this.loadSnapshot({\n document: n,\n selectedRange: i\n });\n }, n.prototype.loadSnapshot = function (t) {\n return this.undoManager = new e.UndoManager(this.composition), this.composition.loadSnapshot(t);\n }, n.prototype.getDocument = function () {\n return this.composition.document;\n }, n.prototype.getSelectedDocument = function () {\n return this.composition.getSelectedDocument();\n }, n.prototype.getSnapshot = function () {\n return this.composition.getSnapshot();\n }, n.prototype.toJSON = function () {\n return this.getSnapshot();\n }, n.prototype.deleteInDirection = function (t) {\n return this.composition.deleteInDirection(t);\n }, n.prototype.insertAttachment = function (t) {\n return this.composition.insertAttachment(t);\n }, n.prototype.insertAttachments = function (t) {\n return this.composition.insertAttachments(t);\n }, n.prototype.insertDocument = function (t) {\n return this.composition.insertDocument(t);\n }, n.prototype.insertFile = function (t) {\n return this.composition.insertFile(t);\n }, n.prototype.insertFiles = function (t) {\n return this.composition.insertFiles(t);\n }, n.prototype.insertHTML = function (t) {\n return this.composition.insertHTML(t);\n }, n.prototype.insertString = function (t) {\n return this.composition.insertString(t);\n }, n.prototype.insertText = function (t) {\n return this.composition.insertText(t);\n }, n.prototype.insertLineBreak = function () {\n return this.composition.insertLineBreak();\n }, n.prototype.getSelectedRange = function () {\n return this.composition.getSelectedRange();\n }, n.prototype.getPosition = function () {\n return this.composition.getPosition();\n }, n.prototype.getClientRectAtPosition = function (t) {\n var e;\n return e = this.getDocument().locationRangeFromRange([t, t + 1]), this.selectionManager.getClientRectAtLocationRange(e);\n }, n.prototype.expandSelectionInDirection = function (t) {\n return this.composition.expandSelectionInDirection(t);\n }, n.prototype.moveCursorInDirection = function (t) {\n return this.composition.moveCursorInDirection(t);\n }, n.prototype.setSelectedRange = function (t) {\n return this.composition.setSelectedRange(t);\n }, n.prototype.activateAttribute = function (t, e) {\n return null == e && (e = !0), this.composition.setCurrentAttribute(t, e);\n }, n.prototype.attributeIsActive = function (t) {\n return this.composition.hasCurrentAttribute(t);\n }, n.prototype.canActivateAttribute = function (t) {\n return this.composition.canSetCurrentAttribute(t);\n }, n.prototype.deactivateAttribute = function (t) {\n return this.composition.removeCurrentAttribute(t);\n }, n.prototype.canDecreaseNestingLevel = function () {\n return this.composition.canDecreaseNestingLevel();\n }, n.prototype.canIncreaseNestingLevel = function () {\n return this.composition.canIncreaseNestingLevel();\n }, n.prototype.decreaseNestingLevel = function () {\n return this.canDecreaseNestingLevel() ? this.composition.decreaseNestingLevel() : void 0;\n }, n.prototype.increaseNestingLevel = function () {\n return this.canIncreaseNestingLevel() ? this.composition.increaseNestingLevel() : void 0;\n }, n.prototype.canRedo = function () {\n return this.undoManager.canRedo();\n }, n.prototype.canUndo = function () {\n return this.undoManager.canUndo();\n }, n.prototype.recordUndoEntry = function (t, e) {\n var n, i, o;\n return o = null != e ? e : {}, i = o.context, n = o.consolidatable, this.undoManager.recordUndoEntry(t, {\n context: i,\n consolidatable: n\n });\n }, n.prototype.redo = function () {\n return this.canRedo() ? this.undoManager.redo() : void 0;\n }, n.prototype.undo = function () {\n return this.canUndo() ? this.undoManager.undo() : void 0;\n }, n;\n }();\n }.call(this), function () {\n var t = function t(_t19, e) {\n function i() {\n this.constructor = _t19;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t19[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t19.prototype = new i(), _t19.__super__ = e.prototype, _t19;\n },\n n = {}.hasOwnProperty;\n\n e.ManagedAttachment = function (e) {\n function n(t, e) {\n var n;\n this.attachmentManager = t, this.attachment = e, n = this.attachment, this.id = n.id, this.file = n.file;\n }\n\n return t(n, e), n.prototype.remove = function () {\n return this.attachmentManager.requestRemovalOfAttachment(this.attachment);\n }, n.proxyMethod(\"attachment.getAttribute\"), n.proxyMethod(\"attachment.hasAttribute\"), n.proxyMethod(\"attachment.setAttribute\"), n.proxyMethod(\"attachment.getAttributes\"), n.proxyMethod(\"attachment.setAttributes\"), n.proxyMethod(\"attachment.isPending\"), n.proxyMethod(\"attachment.isPreviewable\"), n.proxyMethod(\"attachment.getURL\"), n.proxyMethod(\"attachment.getHref\"), n.proxyMethod(\"attachment.getFilename\"), n.proxyMethod(\"attachment.getFilesize\"), n.proxyMethod(\"attachment.getFormattedFilesize\"), n.proxyMethod(\"attachment.getExtension\"), n.proxyMethod(\"attachment.getContentType\"), n.proxyMethod(\"attachment.getFile\"), n.proxyMethod(\"attachment.setFile\"), n.proxyMethod(\"attachment.releaseFile\"), n.proxyMethod(\"attachment.getUploadProgress\"), n.proxyMethod(\"attachment.setUploadProgress\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t20, e) {\n function i() {\n this.constructor = _t20;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t20[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t20.prototype = new i(), _t20.__super__ = e.prototype, _t20;\n },\n n = {}.hasOwnProperty;\n\n e.AttachmentManager = function (n) {\n function i(t) {\n var e, n, i;\n\n for (null == t && (t = []), this.managedAttachments = {}, n = 0, i = t.length; i > n; n++) {\n e = t[n], this.manageAttachment(e);\n }\n }\n\n return t(i, n), i.prototype.getAttachments = function () {\n var t, e, n, i;\n n = this.managedAttachments, i = [];\n\n for (e in n) {\n t = n[e], i.push(t);\n }\n\n return i;\n }, i.prototype.manageAttachment = function (t) {\n var n, i;\n return null != (n = this.managedAttachments)[i = t.id] ? n[i] : n[i] = new e.ManagedAttachment(this, t);\n }, i.prototype.attachmentIsManaged = function (t) {\n return t.id in this.managedAttachments;\n }, i.prototype.requestRemovalOfAttachment = function (t) {\n var e;\n return this.attachmentIsManaged(t) && null != (e = this.delegate) && \"function\" == typeof e.attachmentManagerDidRequestRemovalOfAttachment ? e.attachmentManagerDidRequestRemovalOfAttachment(t) : void 0;\n }, i.prototype.unmanageAttachment = function (t) {\n var e;\n return e = this.managedAttachments[t.id], delete this.managedAttachments[t.id], e;\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n var t, n, i, o, r, s, a, u, c, l, h;\n t = e.elementContainsNode, n = e.findChildIndexOfNode, r = e.nodeIsBlockStart, s = e.nodeIsBlockStartComment, o = e.nodeIsBlockContainer, a = e.nodeIsCursorTarget, u = e.nodeIsEmptyTextNode, c = e.nodeIsTextNode, i = e.nodeIsAttachmentElement, l = e.tagName, h = e.walkTree, e.LocationMapper = function () {\n function e(t) {\n this.element = t;\n }\n\n var p, d, f, g;\n return e.prototype.findLocationFromContainerAndOffset = function (e, i, o) {\n var s, u, l, p, g, m, v;\n\n for (m = (null != o ? o : {\n strict: !0\n }).strict, u = 0, l = !1, p = {\n index: 0,\n offset: 0\n }, (s = this.findAttachmentElementParentForNode(e)) && (e = s.parentNode, i = n(s)), v = h(this.element, {\n usingFilter: f\n }); v.nextNode();) {\n if (g = v.currentNode, g === e && c(e)) {\n a(g) || (p.offset += i);\n break;\n }\n\n if (g.parentNode === e) {\n if (u++ === i) break;\n } else if (!t(e, g) && u > 0) break;\n\n r(g, {\n strict: m\n }) ? (l && p.index++, p.offset = 0, l = !0) : p.offset += d(g);\n }\n\n return p;\n }, e.prototype.findContainerAndOffsetFromLocation = function (t) {\n var e, i, s, u, l;\n\n if (0 === t.index && 0 === t.offset) {\n for (e = this.element, u = 0; e.firstChild;) {\n if (e = e.firstChild, o(e)) {\n u = 1;\n break;\n }\n }\n\n return [e, u];\n }\n\n if (l = this.findNodeAndOffsetFromLocation(t), i = l[0], s = l[1], i) {\n if (c(i)) 0 === d(i) ? (e = i.parentNode.parentNode, u = n(i.parentNode), a(i, {\n name: \"right\"\n }) && u++) : (e = i, u = t.offset - s);else {\n if (e = i.parentNode, !r(i.previousSibling) && !o(e)) for (; i === e.lastChild && (i = e, e = e.parentNode, !o(e));) {\n ;\n }\n u = n(i), 0 !== t.offset && u++;\n }\n return [e, u];\n }\n }, e.prototype.findNodeAndOffsetFromLocation = function (t) {\n var e, n, i, o, r, s, u, l;\n\n for (u = 0, l = this.getSignificantNodesForIndex(t.index), n = 0, i = l.length; i > n; n++) {\n if (e = l[n], o = d(e), t.offset <= u + o) if (c(e)) {\n if (r = e, s = u, t.offset === s && a(r)) break;\n } else r || (r = e, s = u);\n if (u += o, u > t.offset) break;\n }\n\n return [r, s];\n }, e.prototype.findAttachmentElementParentForNode = function (t) {\n for (; t && t !== this.element;) {\n if (i(t)) return t;\n t = t.parentNode;\n }\n }, e.prototype.getSignificantNodesForIndex = function (t) {\n var e, n, i, o, r;\n\n for (i = [], r = h(this.element, {\n usingFilter: p\n }), o = !1; r.nextNode();) {\n if (n = r.currentNode, s(n)) {\n if (\"undefined\" != typeof e && null !== e ? e++ : e = 0, e === t) o = !0;else if (o) break;\n } else o && i.push(n);\n }\n\n return i;\n }, d = function d(t) {\n var e;\n return t.nodeType === Node.TEXT_NODE ? a(t) ? 0 : (e = t.textContent, e.length) : \"br\" === l(t) || i(t) ? 1 : 0;\n }, p = function p(t) {\n return g(t) === NodeFilter.FILTER_ACCEPT ? f(t) : NodeFilter.FILTER_REJECT;\n }, g = function g(t) {\n return u(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, f = function f(t) {\n return i(t.parentNode) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, e;\n }();\n }.call(this), function () {\n var t,\n n,\n i = [].slice;\n t = e.getDOMRange, n = e.setDOMRange, e.PointMapper = function () {\n function e() {}\n\n return e.prototype.createDOMRangeFromPoint = function (e) {\n var i, o, r, s, a, u, c, l;\n if (c = e.x, l = e.y, document.caretPositionFromPoint) return a = document.caretPositionFromPoint(c, l), r = a.offsetNode, o = a.offset, i = document.createRange(), i.setStart(r, o), i;\n if (document.caretRangeFromPoint) return document.caretRangeFromPoint(c, l);\n\n if (document.body.createTextRange) {\n s = t();\n\n try {\n u = document.body.createTextRange(), u.moveToPoint(c, l), u.select();\n } catch (h) {}\n\n return i = t(), n(s), i;\n }\n }, e.prototype.getClientRectsForDOMRange = function (t) {\n var e, n, o;\n return n = i.call(t.getClientRects()), o = n[0], e = n[n.length - 1], [o, e];\n }, e;\n }();\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n i = function i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty,\n r = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.getDOMRange, e.SelectionChangeObserver = function (e) {\n function o() {\n this.run = n(this.run, this), this.update = n(this.update, this), this.selectionManagers = [];\n }\n\n var s;\n return i(o, e), o.prototype.start = function () {\n return this.started ? void 0 : (this.started = !0, \"onselectionchange\" in document ? document.addEventListener(\"selectionchange\", this.update, !0) : this.run());\n }, o.prototype.stop = function () {\n return this.started ? (this.started = !1, document.removeEventListener(\"selectionchange\", this.update, !0)) : void 0;\n }, o.prototype.registerSelectionManager = function (t) {\n return r.call(this.selectionManagers, t) < 0 ? (this.selectionManagers.push(t), this.start()) : void 0;\n }, o.prototype.unregisterSelectionManager = function (t) {\n var e;\n return this.selectionManagers = function () {\n var n, i, o, r;\n\n for (o = this.selectionManagers, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], e !== t && r.push(e);\n }\n\n return r;\n }.call(this), 0 === this.selectionManagers.length ? this.stop() : void 0;\n }, o.prototype.notifySelectionManagersOfSelectionChange = function () {\n var t, e, n, i, o;\n\n for (n = this.selectionManagers, i = [], t = 0, e = n.length; e > t; t++) {\n o = n[t], i.push(o.selectionDidChange());\n }\n\n return i;\n }, o.prototype.update = function () {\n var e;\n return e = t(), s(e, this.domRange) ? void 0 : (this.domRange = e, this.notifySelectionManagersOfSelectionChange());\n }, o.prototype.reset = function () {\n return this.domRange = null, this.update();\n }, o.prototype.run = function () {\n return this.started ? (this.update(), requestAnimationFrame(this.run)) : void 0;\n }, s = function s(t, e) {\n return (null != t ? t.startContainer : void 0) === (null != e ? e.startContainer : void 0) && (null != t ? t.startOffset : void 0) === (null != e ? e.startOffset : void 0) && (null != t ? t.endContainer : void 0) === (null != e ? e.endContainer : void 0) && (null != t ? t.endOffset : void 0) === (null != e ? e.endOffset : void 0);\n }, o;\n }(e.BasicObject), null == e.selectionChangeObserver && (e.selectionChangeObserver = new e.SelectionChangeObserver());\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function h(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n p = function p(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n d.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty;\n\n i = e.getDOMSelection, n = e.getDOMRange, l = e.setDOMRange, t = e.elementContainsNode, s = e.nodeIsCursorTarget, r = e.innerElementIsActive, o = e.handleEvent, a = e.normalizeRange, u = e.rangeIsCollapsed, c = e.rangesAreEqual, e.SelectionManager = function (d) {\n function f(t) {\n this.element = t, this.selectionDidChange = h(this.selectionDidChange, this), this.didMouseDown = h(this.didMouseDown, this), this.locationMapper = new e.LocationMapper(this.element), this.pointMapper = new e.PointMapper(), this.lockCount = 0, o(\"mousedown\", {\n onElement: this.element,\n withCallback: this.didMouseDown\n });\n }\n\n return p(f, d), f.prototype.getLocationRange = function (t) {\n var e, i;\n return null == t && (t = {}), e = t.strict === !1 ? this.createLocationRangeFromDOMRange(n(), {\n strict: !1\n }) : t.ignoreLock ? this.currentLocationRange : null != (i = this.lockedLocationRange) ? i : this.currentLocationRange;\n }, f.prototype.setLocationRange = function (t) {\n var e;\n if (!this.lockedLocationRange) return t = a(t), (e = this.createDOMRangeFromLocationRange(t)) ? (l(e), this.updateCurrentLocationRange(t)) : void 0;\n }, f.prototype.setLocationRangeFromPointRange = function (t) {\n var e, n;\n return t = a(t), n = this.getLocationAtPoint(t[0]), e = this.getLocationAtPoint(t[1]), this.setLocationRange([n, e]);\n }, f.prototype.getClientRectAtLocationRange = function (t) {\n var e;\n return (e = this.createDOMRangeFromLocationRange(t)) ? this.getClientRectsForDOMRange(e)[1] : void 0;\n }, f.prototype.locationIsCursorTarget = function (t) {\n var e, n, i;\n return i = this.findNodeAndOffsetFromLocation(t), e = i[0], n = i[1], s(e);\n }, f.prototype.lock = function () {\n return 0 === this.lockCount++ ? (this.updateCurrentLocationRange(), this.lockedLocationRange = this.getLocationRange()) : void 0;\n }, f.prototype.unlock = function () {\n var t;\n return 0 === --this.lockCount && (t = this.lockedLocationRange, this.lockedLocationRange = null, null != t) ? this.setLocationRange(t) : void 0;\n }, f.prototype.clearSelection = function () {\n var t;\n return null != (t = i()) ? t.removeAllRanges() : void 0;\n }, f.prototype.selectionIsCollapsed = function () {\n var t;\n return (null != (t = n()) ? t.collapsed : void 0) === !0;\n }, f.prototype.selectionIsExpanded = function () {\n return !this.selectionIsCollapsed();\n }, f.prototype.createLocationRangeFromDOMRange = function (t, e) {\n var n, i;\n if (null != t && this.domRangeWithinElement(t) && (i = this.findLocationFromContainerAndOffset(t.startContainer, t.startOffset, e))) return t.collapsed || (n = this.findLocationFromContainerAndOffset(t.endContainer, t.endOffset, e)), a([i, n]);\n }, f.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"), f.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"), f.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"), f.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"), f.proxyMethod(\"pointMapper.getClientRectsForDOMRange\"), f.prototype.didMouseDown = function () {\n return this.pauseTemporarily();\n }, f.prototype.pauseTemporarily = function () {\n var e, n, i, r;\n return this.paused = !0, n = function (e) {\n return function () {\n var n, o, s;\n\n for (e.paused = !1, clearTimeout(r), o = 0, s = i.length; s > o; o++) {\n n = i[o], n.destroy();\n }\n\n return t(document, e.element) ? e.selectionDidChange() : void 0;\n };\n }(this), r = setTimeout(n, 200), i = function () {\n var t, i, r, s;\n\n for (r = [\"mousemove\", \"keydown\"], s = [], t = 0, i = r.length; i > t; t++) {\n e = r[t], s.push(o(e, {\n onElement: document,\n withCallback: n\n }));\n }\n\n return s;\n }();\n }, f.prototype.selectionDidChange = function () {\n return this.paused || r(this.element) ? void 0 : this.updateCurrentLocationRange();\n }, f.prototype.updateCurrentLocationRange = function (t) {\n var e;\n return (null != t ? t : t = this.createLocationRangeFromDOMRange(n())) && !c(t, this.currentLocationRange) ? (this.currentLocationRange = t, null != (e = this.delegate) && \"function\" == typeof e.locationRangeDidChange ? e.locationRangeDidChange(this.currentLocationRange.slice(0)) : void 0) : void 0;\n }, f.prototype.createDOMRangeFromLocationRange = function (t) {\n var e, n, i, o;\n return i = this.findContainerAndOffsetFromLocation(t[0]), n = u(t) ? i : null != (o = this.findContainerAndOffsetFromLocation(t[1])) ? o : i, null != i && null != n ? (e = document.createRange(), e.setStart.apply(e, i), e.setEnd.apply(e, n), e) : void 0;\n }, f.prototype.getLocationAtPoint = function (t) {\n var e, n;\n return (e = this.createDOMRangeFromPoint(t)) && null != (n = this.createLocationRangeFromDOMRange(e)) ? n[0] : void 0;\n }, f.prototype.domRangeWithinElement = function (e) {\n return e.collapsed ? t(this.element, e.startContainer) : t(this.element, e.startContainer) && t(this.element, e.endContainer);\n }, f;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice;\n\n i = e.rangeIsCollapsed, o = e.rangesAreEqual, n = e.objectsAreEqual, t = e.getBlockConfig, e.EditorController = function (s) {\n function u(t) {\n var n, i;\n this.editorElement = t.editorElement, n = t.document, i = t.html, this.selectionManager = new e.SelectionManager(this.editorElement), this.selectionManager.delegate = this, this.composition = new e.Composition(), this.composition.delegate = this, this.attachmentManager = new e.AttachmentManager(this.composition.getAttachments()), this.attachmentManager.delegate = this, this.inputController = new e[\"Level\" + e.config.input.getLevel() + \"InputController\"](this.editorElement), this.inputController.delegate = this, this.inputController.responder = this.composition, this.compositionController = new e.CompositionController(this.editorElement, this.composition), this.compositionController.delegate = this, this.toolbarController = new e.ToolbarController(this.editorElement.toolbarElement), this.toolbarController.delegate = this, this.editor = new e.Editor(this.composition, this.selectionManager, this.editorElement), null != n ? this.editor.loadDocument(n) : this.editor.loadHTML(i);\n }\n\n var c;\n return r(u, s), u.prototype.registerSelectionManager = function () {\n return e.selectionChangeObserver.registerSelectionManager(this.selectionManager);\n }, u.prototype.unregisterSelectionManager = function () {\n return e.selectionChangeObserver.unregisterSelectionManager(this.selectionManager);\n }, u.prototype.render = function () {\n return this.compositionController.render();\n }, u.prototype.reparse = function () {\n return this.composition.replaceHTML(this.editorElement.innerHTML);\n }, u.prototype.compositionDidChangeDocument = function () {\n return this.notifyEditorElement(\"document-change\"), this.handlingInput ? void 0 : this.render();\n }, u.prototype.compositionDidChangeCurrentAttributes = function (t) {\n return this.currentAttributes = t, this.toolbarController.updateAttributes(this.currentAttributes), this.updateCurrentActions(), this.notifyEditorElement(\"attributes-change\", {\n attributes: this.currentAttributes\n });\n }, u.prototype.compositionDidPerformInsertionAtRange = function (t) {\n return this.pasting ? this.pastedRange = t : void 0;\n }, u.prototype.compositionShouldAcceptFile = function (t) {\n return this.notifyEditorElement(\"file-accept\", {\n file: t\n });\n }, u.prototype.compositionDidAddAttachment = function (t) {\n var e;\n return e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-add\", {\n attachment: e\n });\n }, u.prototype.compositionDidEditAttachment = function (t) {\n var e;\n return this.compositionController.rerenderViewForObject(t), e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-edit\", {\n attachment: e\n }), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidChangeAttachmentPreviewURL = function (t) {\n return this.compositionController.invalidateViewForObject(t), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidRemoveAttachment = function (t) {\n var e;\n return e = this.attachmentManager.unmanageAttachment(t), this.notifyEditorElement(\"attachment-remove\", {\n attachment: e\n });\n }, u.prototype.compositionDidStartEditingAttachment = function (t, e) {\n return this.attachmentLocationRange = this.composition.document.getLocationRangeOfAttachment(t), this.compositionController.installAttachmentEditorForAttachment(t, e), this.selectionManager.setLocationRange(this.attachmentLocationRange);\n }, u.prototype.compositionDidStopEditingAttachment = function () {\n return this.compositionController.uninstallAttachmentEditor(), this.attachmentLocationRange = null;\n }, u.prototype.compositionDidRequestChangingSelectionToLocationRange = function (t) {\n return !this.loadingSnapshot || this.isFocused() ? (this.requestedLocationRange = t, this.compositionRevisionWhenLocationRangeRequested = this.composition.revision, this.handlingInput ? void 0 : this.render()) : void 0;\n }, u.prototype.compositionWillLoadSnapshot = function () {\n return this.loadingSnapshot = !0;\n }, u.prototype.compositionDidLoadSnapshot = function () {\n return this.compositionController.refreshViewCache(), this.render(), this.loadingSnapshot = !1;\n }, u.prototype.getSelectionManager = function () {\n return this.selectionManager;\n }, u.proxyMethod(\"getSelectionManager().setLocationRange\"), u.proxyMethod(\"getSelectionManager().getLocationRange\"), u.prototype.attachmentManagerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.compositionControllerWillSyncDocumentView = function () {\n return this.inputController.editorWillSyncDocumentView(), this.selectionManager.lock(), this.selectionManager.clearSelection();\n }, u.prototype.compositionControllerDidSyncDocumentView = function () {\n return this.inputController.editorDidSyncDocumentView(), this.selectionManager.unlock(), this.updateCurrentActions(), this.notifyEditorElement(\"sync\");\n }, u.prototype.compositionControllerDidRender = function () {\n return null != this.requestedLocationRange && (this.compositionRevisionWhenLocationRangeRequested === this.composition.revision && this.selectionManager.setLocationRange(this.requestedLocationRange), this.requestedLocationRange = null, this.compositionRevisionWhenLocationRangeRequested = null), this.renderedCompositionRevision !== this.composition.revision && (this.runEditorFilters(), this.composition.updateCurrentAttributes(), this.notifyEditorElement(\"render\")), this.renderedCompositionRevision = this.composition.revision;\n }, u.prototype.compositionControllerDidFocus = function () {\n return this.isFocusedInvisibly() && this.setLocationRange({\n index: 0,\n offset: 0\n }), this.toolbarController.hideDialog(), this.notifyEditorElement(\"focus\");\n }, u.prototype.compositionControllerDidBlur = function () {\n return this.notifyEditorElement(\"blur\");\n }, u.prototype.compositionControllerDidSelectAttachment = function (t, e) {\n return this.toolbarController.hideDialog(), this.composition.editAttachment(t, e);\n }, u.prototype.compositionControllerDidRequestDeselectingAttachment = function (t) {\n var e, n;\n return e = null != (n = this.attachmentLocationRange) ? n : this.composition.document.getLocationRangeOfAttachment(t), this.selectionManager.setLocationRange(e[1]);\n }, u.prototype.compositionControllerWillUpdateAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Edit Attachment\", {\n context: t.id,\n consolidatable: !0\n });\n }, u.prototype.compositionControllerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.inputControllerWillHandleInput = function () {\n return this.handlingInput = !0, this.requestedRender = !1;\n }, u.prototype.inputControllerDidRequestRender = function () {\n return this.requestedRender = !0;\n }, u.prototype.inputControllerDidHandleInput = function () {\n return this.handlingInput = !1, this.requestedRender ? (this.requestedRender = !1, this.render()) : void 0;\n }, u.prototype.inputControllerDidAllowUnhandledInput = function () {\n return this.notifyEditorElement(\"change\");\n }, u.prototype.inputControllerDidRequestReparse = function () {\n return this.reparse();\n }, u.prototype.inputControllerWillPerformTyping = function () {\n return this.recordTypingUndoEntry();\n }, u.prototype.inputControllerWillPerformFormatting = function (t) {\n return this.recordFormattingUndoEntry(t);\n }, u.prototype.inputControllerWillCutText = function () {\n return this.editor.recordUndoEntry(\"Cut\");\n }, u.prototype.inputControllerWillPaste = function (t) {\n return this.editor.recordUndoEntry(\"Paste\"), this.pasting = !0, this.notifyEditorElement(\"before-paste\", {\n paste: t\n });\n }, u.prototype.inputControllerDidPaste = function (t) {\n return t.range = this.pastedRange, this.pastedRange = null, this.pasting = null, this.notifyEditorElement(\"paste\", {\n paste: t\n });\n }, u.prototype.inputControllerWillMoveText = function () {\n return this.editor.recordUndoEntry(\"Move\");\n }, u.prototype.inputControllerWillAttachFiles = function () {\n return this.editor.recordUndoEntry(\"Drop Files\");\n }, u.prototype.inputControllerWillPerformUndo = function () {\n return this.editor.undo();\n }, u.prototype.inputControllerWillPerformRedo = function () {\n return this.editor.redo();\n }, u.prototype.inputControllerDidReceiveKeyboardCommand = function (t) {\n return this.toolbarController.applyKeyboardCommand(t);\n }, u.prototype.inputControllerDidStartDrag = function () {\n return this.locationRangeBeforeDrag = this.selectionManager.getLocationRange();\n }, u.prototype.inputControllerDidReceiveDragOverPoint = function (t) {\n return this.selectionManager.setLocationRangeFromPointRange(t);\n }, u.prototype.inputControllerDidCancelDrag = function () {\n return this.selectionManager.setLocationRange(this.locationRangeBeforeDrag), this.locationRangeBeforeDrag = null;\n }, u.prototype.locationRangeDidChange = function (t) {\n return this.composition.updateCurrentAttributes(), this.updateCurrentActions(), this.attachmentLocationRange && !o(this.attachmentLocationRange, t) && this.composition.stopEditingAttachment(), this.notifyEditorElement(\"selection-change\");\n }, u.prototype.toolbarDidClickButton = function () {\n return this.getLocationRange() ? void 0 : this.setLocationRange({\n index: 0,\n offset: 0\n });\n }, u.prototype.toolbarDidInvokeAction = function (t) {\n return this.invokeAction(t);\n }, u.prototype.toolbarDidToggleAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.toggleCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidUpdateAttribute = function (t, e) {\n return this.recordFormattingUndoEntry(t), this.composition.setCurrentAttribute(t, e), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidRemoveAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.removeCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarWillShowDialog = function () {\n return this.composition.expandSelectionForEditing(), this.freezeSelection();\n }, u.prototype.toolbarDidShowDialog = function (t) {\n return this.notifyEditorElement(\"toolbar-dialog-show\", {\n dialogName: t\n });\n }, u.prototype.toolbarDidHideDialog = function (t) {\n return this.thawSelection(), this.editorElement.focus(), this.notifyEditorElement(\"toolbar-dialog-hide\", {\n dialogName: t\n });\n }, u.prototype.freezeSelection = function () {\n return this.selectionFrozen ? void 0 : (this.selectionManager.lock(), this.composition.freezeSelection(), this.selectionFrozen = !0, this.render());\n }, u.prototype.thawSelection = function () {\n return this.selectionFrozen ? (this.composition.thawSelection(), this.selectionManager.unlock(), this.selectionFrozen = !1, this.render()) : void 0;\n }, u.prototype.actions = {\n undo: {\n test: function test() {\n return this.editor.canUndo();\n },\n perform: function perform() {\n return this.editor.undo();\n }\n },\n redo: {\n test: function test() {\n return this.editor.canRedo();\n },\n perform: function perform() {\n return this.editor.redo();\n }\n },\n link: {\n test: function test() {\n return this.editor.canActivateAttribute(\"href\");\n }\n },\n increaseNestingLevel: {\n test: function test() {\n return this.editor.canIncreaseNestingLevel();\n },\n perform: function perform() {\n return this.editor.increaseNestingLevel() && this.render();\n }\n },\n decreaseNestingLevel: {\n test: function test() {\n return this.editor.canDecreaseNestingLevel();\n },\n perform: function perform() {\n return this.editor.decreaseNestingLevel() && this.render();\n }\n },\n attachFiles: {\n test: function test() {\n return !0;\n },\n perform: function perform() {\n return e.config.input.pickFiles(this.editor.insertFiles);\n }\n }\n }, u.prototype.canInvokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? !0 : !!(null != (e = this.actions[t]) && null != (n = e.test) ? n.call(this) : void 0);\n }, u.prototype.invokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? this.notifyEditorElement(\"action-invoke\", {\n actionName: t\n }) : null != (e = this.actions[t]) && null != (n = e.perform) ? n.call(this) : void 0;\n }, u.prototype.actionIsExternal = function (t) {\n return /^x-./.test(t);\n }, u.prototype.getCurrentActions = function () {\n var t, e;\n e = {};\n\n for (t in this.actions) {\n e[t] = this.canInvokeAction(t);\n }\n\n return e;\n }, u.prototype.updateCurrentActions = function () {\n var t;\n return t = this.getCurrentActions(), n(t, this.currentActions) ? void 0 : (this.currentActions = t, this.toolbarController.updateActions(this.currentActions), this.notifyEditorElement(\"actions-change\", {\n actions: this.currentActions\n }));\n }, u.prototype.runEditorFilters = function () {\n var t, e, n, i, o, r, s, a;\n\n for (a = this.composition.getSnapshot(), o = this.editor.filters, n = 0, i = o.length; i > n; n++) {\n e = o[n], t = a.document, s = a.selectedRange, a = null != (r = e.call(this.editor, a)) ? r : {}, null == a.document && (a.document = t), null == a.selectedRange && (a.selectedRange = s);\n }\n\n return c(a, this.composition.getSnapshot()) ? void 0 : this.composition.loadSnapshot(a);\n }, c = function c(t, e) {\n return o(t.selectedRange, e.selectedRange) && t.document.isEqualTo(e.document);\n }, u.prototype.updateInputElement = function () {\n var t, n;\n return t = this.compositionController.getSerializableElement(), n = e.serializeToContentType(t, \"text/html\"), this.editorElement.setInputElementValue(n);\n }, u.prototype.notifyEditorElement = function (t, e) {\n switch (t) {\n case \"document-change\":\n this.documentChangedSinceLastRender = !0;\n break;\n\n case \"render\":\n this.documentChangedSinceLastRender && (this.documentChangedSinceLastRender = !1, this.notifyEditorElement(\"change\"));\n break;\n\n case \"change\":\n case \"attachment-add\":\n case \"attachment-edit\":\n case \"attachment-remove\":\n this.updateInputElement();\n }\n\n return this.editorElement.notify(t, e);\n }, u.prototype.removeAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Delete Attachment\"), this.composition.removeAttachment(t), this.render();\n }, u.prototype.recordFormattingUndoEntry = function (e) {\n var n, o;\n return n = t(e), o = this.selectionManager.getLocationRange(), n || !i(o) ? this.editor.recordUndoEntry(\"Formatting\", {\n context: this.getUndoContext(),\n consolidatable: !0\n }) : void 0;\n }, u.prototype.recordTypingUndoEntry = function () {\n return this.editor.recordUndoEntry(\"Typing\", {\n context: this.getUndoContext(this.currentAttributes),\n consolidatable: !0\n });\n }, u.prototype.getUndoContext = function () {\n var t;\n return t = 1 <= arguments.length ? a.call(arguments, 0) : [], [this.getLocationContext(), this.getTimeContext()].concat(a.call(t));\n }, u.prototype.getLocationContext = function () {\n var t;\n return t = this.selectionManager.getLocationRange(), i(t) ? t[0].index : t;\n }, u.prototype.getTimeContext = function () {\n return e.config.undoInterval > 0 ? Math.floor(new Date().getTime() / e.config.undoInterval) : 0;\n }, u.prototype.isFocused = function () {\n var t;\n return this.editorElement === (null != (t = this.editorElement.ownerDocument) ? t.activeElement : void 0);\n }, u.prototype.isFocusedInvisibly = function () {\n return this.isFocused() && !this.getLocationRange();\n }, u;\n }(e.Controller);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n n = e.browser, s = e.makeElement, a = e.triggerEvent, o = e.handleEvent, r = e.handleEventOnce, i = e.findClosestElementFromNode, t = e.AttachmentView.attachmentSelector, e.registerElement(\"trix-editor\", function () {\n var c, l, h, p, d, f, g, m, v;\n return g = 0, l = function l(t) {\n return !document.querySelector(\":focus\") && t.hasAttribute(\"autofocus\") && document.querySelector(\"[autofocus]\") === t ? t.focus() : void 0;\n }, m = function m(t) {\n return t.hasAttribute(\"contenteditable\") ? void 0 : (t.setAttribute(\"contenteditable\", \"\"), r(\"focus\", {\n onElement: t,\n withCallback: function withCallback() {\n return h(t);\n }\n }));\n }, h = function h(t) {\n return d(t), v(t);\n }, d = function d(t) {\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"enableObjectResizing\") : void 0) ? (document.execCommand(\"enableObjectResizing\", !1, !1), o(\"mscontrolselect\", {\n onElement: t,\n preventDefault: !0\n })) : void 0;\n }, v = function v() {\n var t;\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"DefaultParagraphSeparator\") : void 0) && (t = e.config.blockAttributes[\"default\"].tagName, \"div\" === t || \"p\" === t) ? document.execCommand(\"DefaultParagraphSeparator\", !1, t) : void 0;\n }, c = function c(t) {\n return t.hasAttribute(\"role\") ? void 0 : t.setAttribute(\"role\", \"textbox\");\n }, f = function f(t) {\n var e;\n if (!t.hasAttribute(\"aria-label\") && !t.hasAttribute(\"aria-labelledby\")) return (e = function e() {\n var e, n, i;\n return i = function () {\n var n, i, o, r;\n\n for (o = t.labels, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], e.contains(t) || r.push(e.textContent);\n }\n\n return r;\n }(), (n = i.join(\" \")) ? t.setAttribute(\"aria-label\", n) : t.removeAttribute(\"aria-label\");\n })(), o(\"focus\", {\n onElement: t,\n withCallback: e\n });\n }, p = function () {\n return n.forcesObjectResizing ? {\n display: \"inline\",\n width: \"auto\"\n } : {\n display: \"inline-block\",\n width: \"1px\"\n };\n }(), {\n defaultCSS: \"%t {\\n display: block;\\n}\\n\\n%t:empty:not(:focus)::before {\\n content: attr(placeholder);\\n color: graytext;\\n cursor: text;\\n pointer-events: none;\\n}\\n\\n%t a[contenteditable=false] {\\n cursor: text;\\n}\\n\\n%t img {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n%t \" + t + \" figcaption textarea {\\n resize: none;\\n}\\n\\n%t \" + t + \" figcaption textarea.trix-autoresize-clone {\\n position: absolute;\\n left: -9999px;\\n max-height: 0px;\\n}\\n\\n%t \" + t + \" figcaption[data-trix-placeholder]:empty::before {\\n content: attr(data-trix-placeholder);\\n color: graytext;\\n}\\n\\n%t [data-trix-cursor-target] {\\n display: \" + p.display + \" !important;\\n width: \" + p.width + \" !important;\\n padding: 0 !important;\\n margin: 0 !important;\\n border: none !important;\\n}\\n\\n%t [data-trix-cursor-target=left] {\\n vertical-align: top !important;\\n margin-left: -1px !important;\\n}\\n\\n%t [data-trix-cursor-target=right] {\\n vertical-align: bottom !important;\\n margin-right: -1px !important;\\n}\",\n trixId: {\n get: function get() {\n return this.hasAttribute(\"trix-id\") ? this.getAttribute(\"trix-id\") : (this.setAttribute(\"trix-id\", ++g), this.trixId);\n }\n },\n labels: {\n get: function get() {\n var t, e, n;\n return e = [], this.id && this.ownerDocument && e.push.apply(e, this.ownerDocument.querySelectorAll(\"label[for='\" + this.id + \"']\")), (t = i(this, {\n matchingSelector: \"label\"\n })) && ((n = t.control) === this || null === n) && e.push(t), e;\n }\n },\n toolbarElement: {\n get: function get() {\n var t, e, n;\n return this.hasAttribute(\"toolbar\") ? null != (e = this.ownerDocument) ? e.getElementById(this.getAttribute(\"toolbar\")) : void 0 : this.parentNode ? (n = \"trix-toolbar-\" + this.trixId, this.setAttribute(\"toolbar\", n), t = s(\"trix-toolbar\", {\n id: n\n }), this.parentNode.insertBefore(t, this), t) : void 0;\n }\n },\n inputElement: {\n get: function get() {\n var t, e, n;\n return this.hasAttribute(\"input\") ? null != (n = this.ownerDocument) ? n.getElementById(this.getAttribute(\"input\")) : void 0 : this.parentNode ? (e = \"trix-input-\" + this.trixId, this.setAttribute(\"input\", e), t = s(\"input\", {\n type: \"hidden\",\n id: e\n }), this.parentNode.insertBefore(t, this.nextElementSibling), t) : void 0;\n }\n },\n editor: {\n get: function get() {\n var t;\n return null != (t = this.editorController) ? t.editor : void 0;\n }\n },\n name: {\n get: function get() {\n var t;\n return null != (t = this.inputElement) ? t.name : void 0;\n }\n },\n value: {\n get: function get() {\n var t;\n return null != (t = this.inputElement) ? t.value : void 0;\n },\n set: function set(t) {\n var e;\n return this.defaultValue = t, null != (e = this.editor) ? e.loadHTML(this.defaultValue) : void 0;\n }\n },\n notify: function notify(t, e) {\n return this.editorController ? a(\"trix-\" + t, {\n onElement: this,\n attributes: e\n }) : void 0;\n },\n setInputElementValue: function setInputElementValue(t) {\n var e;\n return null != (e = this.inputElement) ? e.value = t : void 0;\n },\n initialize: function initialize() {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (m(this), c(this), f(this));\n },\n connect: function connect() {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (this.editorController || (a(\"trix-before-initialize\", {\n onElement: this\n }), this.editorController = new e.EditorController({\n editorElement: this,\n html: this.defaultValue = this.value\n }), requestAnimationFrame(function (t) {\n return function () {\n return a(\"trix-initialize\", {\n onElement: t\n });\n };\n }(this))), this.editorController.registerSelectionManager(), this.registerResetListener(), this.registerClickListener(), l(this));\n },\n disconnect: function disconnect() {\n var t;\n return null != (t = this.editorController) && t.unregisterSelectionManager(), this.unregisterResetListener(), this.unregisterClickListener();\n },\n registerResetListener: function registerResetListener() {\n return this.resetListener = this.resetBubbled.bind(this), window.addEventListener(\"reset\", this.resetListener, !1);\n },\n unregisterResetListener: function unregisterResetListener() {\n return window.removeEventListener(\"reset\", this.resetListener, !1);\n },\n registerClickListener: function registerClickListener() {\n return this.clickListener = this.clickBubbled.bind(this), window.addEventListener(\"click\", this.clickListener, !1);\n },\n unregisterClickListener: function unregisterClickListener() {\n return window.removeEventListener(\"click\", this.clickListener, !1);\n },\n resetBubbled: function resetBubbled(t) {\n var e;\n if (!t.defaultPrevented && t.target === (null != (e = this.inputElement) ? e.form : void 0)) return this.reset();\n },\n clickBubbled: function clickBubbled(t) {\n var e;\n if (!(t.defaultPrevented || this.contains(t.target) || !(e = i(t.target, {\n matchingSelector: \"label\"\n })) || u.call(this.labels, e) < 0)) return this.focus();\n },\n reset: function reset() {\n return this.value = this.defaultValue;\n }\n };\n }());\n }.call(this), function () {}.call(this);\n }).call(this), \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) && module.exports ? module.exports = e : \"function\" == typeof define && define.amd && define(e);\n}.call(this);","var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply; // DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\n\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\n\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\n\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\n\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n}; // Does not start the time, just sets up the members needed.\n\n\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n}; // setimmediate attaches itself to the global object\n\n\nrequire(\"setimmediate\"); // On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\n\n\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n } // Copy function arguments\n\n\n var args = new Array(arguments.length - 1);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n } // Store and register the task\n\n\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n\n switch (args.length) {\n case 0:\n callback();\n break;\n\n case 1:\n callback(args[0]);\n break;\n\n case 2:\n callback(args[0], args[1]);\n break;\n\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n\n if (task) {\n currentlyRunningATask = true;\n\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n\n var onGlobalMessage = function onGlobalMessage(event) {\n if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n\n registerImmediate = function registerImmediate(handle) {\n // Create a