{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@stimulus/core/dist/src/event_listener.js","webpack:///./node_modules/@stimulus/core/dist/src/dispatcher.js","webpack:///./node_modules/@stimulus/core/dist/src/action_descriptor.js","webpack:///./node_modules/@stimulus/core/dist/src/action.js","webpack:///./node_modules/@stimulus/core/dist/src/binding.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/element_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/attribute_observer.js","webpack:///./node_modules/@stimulus/multimap/dist/src/set_operations.js","webpack:///./node_modules/@stimulus/multimap/dist/src/multimap.js","webpack:///./node_modules/@stimulus/multimap/dist/src/indexed_multimap.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/token_list_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/value_list_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/binding_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/context.js","webpack:///./node_modules/@stimulus/core/dist/src/definition.js","webpack:///./node_modules/@stimulus/core/dist/src/module.js","webpack:///./node_modules/@stimulus/core/dist/src/data_map.js","webpack:///./node_modules/@stimulus/core/dist/src/selectors.js","webpack:///./node_modules/@stimulus/core/dist/src/target_set.js","webpack:///./node_modules/@stimulus/core/dist/src/scope.js","webpack:///./node_modules/@stimulus/core/dist/src/scope_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/router.js","webpack:///./node_modules/@stimulus/core/dist/src/schema.js","webpack:///./node_modules/@stimulus/core/dist/src/application.js","webpack:///./node_modules/@stimulus/core/dist/src/target_properties.js","webpack:///./node_modules/@stimulus/core/dist/src/controller.js","webpack:///./node_modules/dragula/dragula.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/progressbar.js/src/utils.js","webpack:///./node_modules/trix/dist/trix.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack:///./node_modules/@popperjs/core/lib/utils/math.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack:///./node_modules/@popperjs/core/lib/enums.js","webpack:///./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack:///./node_modules/@popperjs/core/lib/createPopper.js","webpack:///./node_modules/@popperjs/core/lib/utils/debounce.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack:///./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack:///./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack:///./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack:///./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack:///./node_modules/@popperjs/core/lib/utils/within.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack:///./node_modules/@popperjs/core/lib/popper.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack:///./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack:///./node_modules/progressbar.js/src/shape.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./node_modules/@appsignal/core/dist/esm/utils/environment.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/unfetch/dist/unfetch.module.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/progressbar.js/src/path.js","webpack:///./node_modules/progressbar.js/src/circle.js","webpack:///./node_modules/@rails/actioncable/app/assets/javascripts/action_cable.js","webpack:///./node_modules/isomorphic-unfetch/browser.js","webpack:///./node_modules/tributejs/dist/tribute.min.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./app/javascript/custom/subscriptions.js","webpack:///./app/javascript/custom/trix-autolinks.js","webpack:///./app/javascript/custom/trix-editor-overrides.js","webpack:///./node_modules/flatpickr/dist/esm/utils/polyfills.js","webpack:///./app/javascript/controllers sync _controller\\.js$","webpack:///./app/javascript/controllers/block_controller.js","webpack:///./app/javascript/controllers/board_fields/drag_and_drop_controller.js","webpack:///./node_modules/contra/emitter.js","webpack:///./node_modules/atoa/atoa.js","webpack:///./node_modules/contra/debounce.js","webpack:///./node_modules/ticky/ticky-browser.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/crossvent/src/crossvent.js","webpack:///./node_modules/custom-event/index.js","webpack:///./node_modules/crossvent/src/eventmap.js","webpack:///./node_modules/dragula/classes.js","webpack:///./app/javascript/controllers/boards/icon_controller.js","webpack:///./app/javascript/controllers/boards/last_visited_controller.js","webpack:///./app/javascript/controllers/boards/preloaded_fields_drag_and_drop_controller.js","webpack:///./app/javascript/controllers/boards/preloaded_processes_drag_and_drop_controller.js","webpack:///./app/javascript/controllers/boards/tour_controller.js","webpack:///./app/javascript/controllers/builder/builder_controller.js","webpack:///./app/javascript/controllers/builder/modal_controller.js","webpack:///./app/javascript/controllers/cancellable_controller.js","webpack:///./app/javascript/controllers/client/attr_drag_and_drop_controller.js","webpack:///./app/javascript/controllers/client_attributes/drag_and_drop_controller.js","webpack:///./app/javascript/controllers/comment_controller.js","webpack:///./app/javascript/controllers/copy_link_controller.js","webpack:///./app/javascript/controllers/copy_rich_text_controller.js","webpack:///./app/javascript/controllers/date_rule_controller.js","webpack:///./app/javascript/controllers/delete_controller.js","webpack:///./app/javascript/controllers/devise/signup_controller.js","webpack:///./app/javascript/controllers/drag_and_drop_controller.js","webpack:///./app/javascript/controllers/dropdown_controller.js","webpack:///./app/javascript/controllers/field_options_controller.js","webpack:///./app/javascript/controllers/filter_list_controller.js","webpack:///./app/javascript/controllers/flatpickr_controller.js","webpack:///./app/javascript/controllers/focuseable_form_controller.js","webpack:///./app/javascript/controllers/form_change_controller.js","webpack:///./app/javascript/controllers/highlight_controller.js","webpack:///./app/javascript/controllers/home_link_controller.js","webpack:///./app/javascript/controllers/inline_edit_controller.js","webpack:///./app/javascript/controllers/item_form_controller.js","webpack:///./app/javascript/controllers/kanban/cancellable_controller.js","webpack:///./app/javascript/controllers/kanban/layout_controller.js","webpack:///./app/javascript/controllers/kanban_controller.js","webpack:///./app/javascript/controllers/last_visited_controller.js","webpack:///./app/javascript/controllers/loading_controller.js","webpack:///./app/javascript/controllers/modal_controller.js","webpack:///./app/javascript/controllers/orderby_controller.js","webpack:///./app/javascript/controllers/pricing_controller.js","webpack:///./app/javascript/controllers/process_templates/tour_controller.js","webpack:///./app/javascript/controllers/process_templates/view_controller.js","webpack:///./app/javascript/controllers/progressbar_controller.js","webpack:///./node_modules/progressbar.js/src/main.js","webpack:///./node_modules/progressbar.js/src/line.js","webpack:///./node_modules/shifty/dist/shifty.js","webpack:///./node_modules/progressbar.js/src/semicircle.js","webpack:///./node_modules/progressbar.js/src/square.js","webpack:///./app/javascript/controllers/project/add_process_dropdown_controller.js","webpack:///./app/javascript/controllers/project/last_visited_controller.js","webpack:///./app/javascript/controllers/project/new_project_modal_controller.js","webpack:///./app/javascript/controllers/project/project_access_settings_controller.js","webpack:///./app/javascript/controllers/project/project_schedule_controller.js","webpack:///./app/javascript/controllers/project/tour_controller.js","webpack:///./app/javascript/controllers/radio_selection_controller.js","webpack:///./app/javascript/controllers/radios_toggle_controller.js","webpack:///./app/javascript/controllers/remember_sorting_controller.js","webpack:///./app/javascript/controllers/required_fields_controller.js","webpack:///./app/javascript/controllers/search_controller.js","webpack:///./app/javascript/controllers/select_field_options_controller.js","webpack:///./app/javascript/controllers/selection_array_controller.js","webpack:///./app/javascript/controllers/selections_list_controller.js","webpack:///./app/javascript/controllers/show_hide_controller.js","webpack:///./app/javascript/controllers/sortable_controller.js","webpack:///./app/javascript/controllers/step/automation_rule_controller.js","webpack:///./app/javascript/controllers/step/drag_and_drop_controller.js","webpack:///./app/javascript/controllers/step/expander_controller.js","webpack:///./app/javascript/controllers/step/new_step_controller.js","webpack:///./app/javascript/controllers/step/socket_controller.js","webpack:///./app/javascript/controllers/step/step_configurations_controller.js","webpack:///./app/javascript/controllers/step/step_controller.js","webpack:///./app/javascript/controllers/step_block/drag_and_drop_controller.js","webpack:///./app/javascript/controllers/step_block_option/drag_and_drop_controller.js","webpack:///./app/javascript/controllers/step_propagate_controller.js","webpack:///./app/javascript/controllers/tabs_controller.js","webpack:///./app/javascript/controllers/task/automation_rule_controller.js","webpack:///./app/javascript/controllers/task/checkbox_controller.js","webpack:///./app/javascript/controllers/task/date_rule_controller.js","webpack:///./app/javascript/controllers/task/drag_and_drop_controller.js","webpack:///./app/javascript/controllers/task/setting_controller.js","webpack:///./app/javascript/controllers/task/socket_controller.js","webpack:///./app/javascript/controllers/task/tabs_controller.js","webpack:///./app/javascript/controllers/task_block/drag_and_drop_controller.js","webpack:///./app/javascript/controllers/task_block_option/drag_and_drop_controller.js","webpack:///./app/javascript/controllers/task_list/task_list_setting_controller.js","webpack:///./app/javascript/controllers/task_listings/sort_tasks_controller.js","webpack:///./app/javascript/controllers/toggle_controller.js","webpack:///./app/javascript/controllers/trix_scripts_controller.js","webpack:///./app/javascript/controllers/truncate_controller.js","webpack:///./node_modules/flatpickr/dist/esm/types/options.js","webpack:///./node_modules/flatpickr/dist/esm/l10n/default.js","webpack:///./node_modules/flatpickr/dist/esm/utils/index.js","webpack:///./node_modules/flatpickr/dist/esm/utils/dom.js","webpack:///./node_modules/flatpickr/dist/esm/utils/formatting.js","webpack:///./node_modules/flatpickr/dist/esm/utils/dates.js","webpack:///./node_modules/flatpickr/dist/esm/index.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/@appsignal/core/dist/esm/utils/functional.js","webpack:///./node_modules/@appsignal/core/dist/esm/utils/hashmap.js","webpack:///./node_modules/@appsignal/core/dist/esm/utils/error.js","webpack:///./node_modules/@appsignal/core/dist/esm/utils/async.js","webpack:///./node_modules/@appsignal/core/dist/esm/serializable.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/environment.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/transports/xdomain.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/transports/xhr.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/transports/fetch.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/transports/node.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/api.js","webpack:///./node_modules/@appsignal/core/dist/esm/utils/url.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/span.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/queue.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/dispatcher.js","webpack:///./app/javascript/controllers/index.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/index.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/version.js","webpack:///./node_modules/@appsignal/stimulus/dist/esm/index.js","webpack:///./node_modules/@stimulus/webpack-helpers/dist/index.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.js","webpack:///./app/javascript/channels/consumer.js","webpack:///./app/javascript/channels/dependent_task_channel.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","EventListener","eventTarget","eventName","this","unorderedBindings","Set","connect","addEventListener","disconnect","removeEventListener","bindingConnected","binding","add","bindingDisconnected","delete","handleEvent","event","extendedEvent","stopImmediatePropagation_1","stopImmediatePropagation","assign","immediatePropagationStopped","extendEvent","_i","_a","bindings","length","Array","from","sort","left","right","leftIndex","index","rightIndex","configurable","Dispatcher","application","eventListenerMaps","Map","started","start","eventListeners","forEach","eventListener","stop","values","reduce","listeners","map","concat","fetchEventListenerForBinding","handleError","error","message","detail","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","createEventListener","set","descriptorPattern","parseEventTarget","eventTargetName","window","document","Action","element","descriptor","tagName","toLowerCase","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","forToken","token","descriptorString","content","matches","trim","match","toString","eventNameSuffix","e","getAttribute","Error","Binding","context","action","willBeInvokedByEvent","invokeWithEvent","method","controller","target","Element","contains","scope","containsElement","ElementObserver","delegate","_this","elements","mutationObserver","MutationObserver","mutations","processMutations","observe","attributes","childList","subtree","refresh","takeRecords","matchElementsInTree","has","removeElement","_b","_c","addElement","mutations_1","mutation","processMutation","type","processAttributeChange","attributeName","processRemovedNodes","removedNodes","processAddedNodes","addedNodes","node","elementAttributeChanged","matchElement","nodes","elementFromNode","processTree","elementIsActive","tree","processor","nodeType","Node","ELEMENT_NODE","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","hasAttribute","querySelectorAll","selector","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","fetch","del","size","prune","extendStatics","Multimap","valuesByKey","hasKey","hasValue","some","getValuesForKey","getKeysForValue","filter","__extends","setPrototypeOf","__proto__","b","__","constructor","_super","IndexedMultimap","keysByValue","keys","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","Math","max","_","findIndex","tokensAreEqual","slice","tokenString","split","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","WeakMap","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","connectAction","disconnectAction","clear","Context","controllerConstructor","bindingObserver","dispatcher","initialize","parentElement","blessControllerConstructor","extend","bless","extendWithReflect","Controller","_newTarget","Reflect","construct","arguments","a","apply","Module","definition","blessDefinition","contextsByScope","connectedContexts","connectContextForScope","fetchContextForScope","disconnectContextForScope","DataMap","getFormattedKey","setAttribute","removeAttribute","replace","char","attributeValueContainsToken","TargetSet","targetName","find","targetNames","getSelectorForTargetNames","findElement","findAll","findAllElements","getSelectorForTargetName","join","targetDescriptor","targetAttribute","Scope","targets","data","head","tail","filterElements","closest","controllerSelector","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","contexts","loadDefinition","unloadIdentifier","connectModule","disconnectModule","getContextForElementAndIdentifier","defaultSchema","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","__generator","body","f","y","g","label","sent","trys","ops","verb","iterator","v","op","TypeError","pop","push","Application","documentElement","router","readyState","register","load","rest","definitions","isArray","unload","identifiers","getControllerForElementAndIdentifier","console","defineTargetProperties","ancestors","getPrototypeOf","getAncestorsForConstructor","getOwnTargetNamesForConstructor","getTargetNamesForConstructor","properties","charAt","toUpperCase","capitalize","emitter","crossvent","classes","doc","touchy","el","fn","global","navigator","pointerEnabled","mouseup","mousedown","mousemove","msPointerEnabled","whichMouseButton","touches","which","buttons","button","getOffset","rect","getBoundingClientRect","getScroll","top","scrollProp","offsetProp","clientHeight","getElementBehindPoint","point","x","state","className","elementFromPoint","never","always","getRectWidth","width","getRectHeight","height","bottom","getParent","parentNode","isInput","isEditable","contentEditable","nextEl","nextElementSibling","sibling","nextSibling","manually","getCoord","coord","host","targetTouches","changedTouches","getEventHost","missMap","pageX","pageY","initialContainers","options","_mirror","_source","_item","_offsetX","_offsetY","_moveX","_moveY","_initialSibling","_currentSibling","_copy","_renderTimer","len","_grabbed","_lastDropTarget","moves","accepts","invalid","invalidTarget","containers","isContainer","copy","copySortSource","revertOnSpill","removeOnSpill","direction","ignoreInputTextSelection","mirrorContainer","drake","manualStart","end","cancel","remove","destroy","canMove","dragging","on","spillOver","spillOut","events","indexOf","grab","release","eventualMovements","startBecauseMouseMoved","movements","preventGrabbed","preventDefault","clientX","clientY","metaKey","ctrlKey","item","canStart","focus","abs","slideFactorX","slideFactorY","grabbed","offset","renderMirrorImage","drag","handle","source","isCopy","cloneNode","emit","drop","ungrab","dropTarget","findDropTarget","parent","removeChild","isInitialPlacement","cleanup","revert","reverts","initial","insertBefore","removeMirrorImage","rm","clearTimeout","elementBehindCursor","accepted","immediate","getImmediateChild","reference","getReference","style","changed","moved","appendChild","horizontal","inside","children","outside","after","container","_typeof","obj","Function","PREFIXES","setStyle","elStyle","text","isObject","forEachObject","callback","destination","recursive","attrName","destVal","sourceVal","render","template","vars","rendered","val","regExp","RegExp","setStyles","styles","styleValue","styleName","undefined","prefix","isString","String","isFunction","floatEquals","removeChildren","firstChild","splice","_state","_handled","_value","_deferreds","h","onFulfilled","onRejected","promise","setTimeout","u","setImmediate","warn","all","race","_setImmediateFn","_setUnhandledRejectionFn","customElements","registerElement","Date","now","random","writable","A","uid_","nodes_","observer","removeTransientObservers","callback_","enqueue","records_","C","previousSibling","attributeNamespace","oldValue","w","transientObservedNodes","JsMutationObserver","test","userAgent","postMessage","ShadowDOMPolyfill","wrapIfNeeded","characterData","attributeOldValue","attributeFilter","characterDataOldValue","SyntaxError","removeListeners","addListeners","addListeners_","removeListeners_","addTransientObserver","relatedNode","namespaceURI","attrChange","MutationEvent","ADDITION","prevValue","_isPolyfilled","self","performance","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","createEvent","initEvent","defaultPrevented","Event","cancelable","CustomEvent","initCustomEvent","Boolean","bubbles","WebComponents","CustomElements","flags","addModule","initializeModules","hasNative","isIE","useNative","HTMLImports","firstElementChild","shadowRoot","olderShadowRoot","wrap","import","IMPORT_LINK_TYPE","forDocumentTree","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","dom","URL","_URL","localName","shift","group","DOCUMENT_FRAGMENT_NODE","E","groupEnd","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","S","createShadowRoot","watchShadow","__watched","log","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","attached","is","createdCallback","HTMLElement","getOwnPropertyNames","getOwnPropertyDescriptor","native","HTMLTemplateElement","decorate","getRegisteredDefinition","tag","extends","upgradeWithDefinition","implementPrototype","_polyfilled","attributeChangedCallback","ctor","createElement","createElementNS","__name","lifecycle","ancestry","ready","registry","instanceof","reservedTagList","readyTime","elapsed","dispatchEvent","unwrap","unwrapIfNeeded","__importsParsingHook","eager","attachEvent","Trix","VERSION","ZERO_WIDTH_SPACE","NON_BREAKING_SPACE","OBJECT_REPLACEMENT_CHARACTER","browser","composesExistingText","forcesObjectResizing","supportsInputEvents","InputEvent","config","BasicObject","proxyMethod","toMethod","toProperty","optional","_t","__super__","id","fromJSONString","fromJSON","JSON","parse","hasSameConstructorAs","isEqualTo","inspect","contentsForInspection","toJSONString","stringify","toUTF16String","UTF16String","box","getCacheKey","defer","normalizeSpaces","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","summarizeStringChange","added","removed","_n","utf16String","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","triggerEvent","elementMatchesSelector","untilNode","findInnerElement","innerElementIsActive","activeElement","elementContainsNode","findNodeFromContainerAndOffset","TEXT_NODE","childNodes","findElementFromContainerAndOffset","findChildIndexOfNode","removeNode","walkTree","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","makeElement","editable","contenteditable","dataset","classList","textContent","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","strict","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","rangeIsCollapsed","rangesAreEqual","defaultCSS","querySelector","_t3","initialized","connectedCallback","disconnectedCallback","_n2","defineProperties","define","getDOMSelection","getSelection","rangeCount","getDOMRange","getRangeAt","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","update","_t4","startContainer","endContainer","dataTransferIsPlainText","getData","DOMParser","parseFromString","dataTransferIsWritable","setData","keyEventIsKeyboardCommand","platform","RTL_PATTERN","getDirection","dir","dirName","FormData","Hash","fromCommonAttributesOfObjects","getKeys","getKeysCommonToHash","merge","toArray","isEmpty","array","toObject","toJSON","ObjectGroup","objects","depth","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","_t5","ObjectMap","ElementStore","reset","trixStoreKey","_t6","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","perform","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","offsetFromUCS2Offset","codePointAt","fromCodePoint","charCodeAt","fromCharCode","lang","attachFiles","bold","bullets","bytes","captionPlaceholder","code","heading1","indent","italic","link","numbers","outdent","quote","redo","strike","undo","unlink","url","urlPlaceholder","GB","KB","MB","PB","TB","css","attachment","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","attachmentGallery","nestable","terminal","breakOnReturn","plaintext","bulletList","bullet","numberList","number","exclusive","fileSize","precision","formatter","byte","floor","pow","toFixed","inheritable","parser","getComputedStyle","fontWeight","fontStyle","href","groupTagName","frozen","backgroundColor","serializers","Document","fromHTML","innerHTML","toSerializableDocument","DocumentView","deserializers","serializeToContentType","deserializeFromContentType","toolbar","getDefaultHTML","undoInterval","attachments","preview","presentation","caption","file","keyNames","input","level2Enabled","getLevel","pickFiles","multiple","hidden","fileInputId","files","getElementById","click","_t7","ObjectView","childViews","rootView","getNodes","createNodes","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ObjectGroupView","getAllChildViews","findElementForObject","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","_t8","objectGroup","getChildViews","createContainerElement","_t9","didMutate","_h","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","_t10","FileVerificationOperation","FileReader","onerror","onload","abort","readAsArrayBuffer","InputController","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","handleInput","inputControllerWillAttachFiles","responder","insertFiles","inputControllerWillHandleInput","inputControllerDidHandleInput","createLinkHTML","outerHTML","Level0InputController","resetInputSummary","setInputSummary","inputSummary","isComposing","inputControllerDidAllowUnhandledInput","mutationIsExpected","preferDocument","didDelete","getSelectedRange","positionIsBlockBreak","compositionInput","getEndData","keydown","didInput","keyCode","keyName","inputControllerDidReceiveKeyboardCommand","keypress","altKey","inputControllerWillPerformTyping","insertString","selectionIsExpanded","textInput","setSelectedRange","dragenter","dragstart","serializeSelectionToDataTransfer","dataTransfer","draggedRange","inputControllerDidStartDrag","dragover","canAcceptDataTransfer","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","setLocationRangeFromPointRange","inputControllerWillMoveText","moveTextFromRange","insertDocument","cut","clipboardData","inputControllerWillCutText","deleteInDirection","paste","R","k","D","L","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","html","inputControllerWillPaste","insertHTML","inputControllerDidPaste","string","types","items","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","beforeinput","stopPropagation","backspace","insertLineBreak","tab","canIncreaseNestingLevel","increaseNestingLevel","selectionIsInCursorTarget","moveCursorInDirection","control","updatePosition","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","alt","meta","isEnded","getSelectedDocument","Files","position","pageXOffset","pageYOffset","opacity","charCode","inputController","isSignificant","insertPlaceholder","range","selectPlaceholder","forgetPlaceholder","canApplyToDocument","Level2InputController","scheduledRender","composing","reparse","scheduleRender","afterRender","shiftKey","withEvent","inputTypes","inputType","selectionContainsAttachments","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","didBlurCaption","didChangeCaption","didInputCaption","didKeyDownCaption","didClickActionButton","didClickToolbar","install","undos","makeElementMutable","addToolbar","isPreviewable","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","trixMutable","title","trixAction","getFilename","getFormattedFilesize","placeholder","getCaption","tabIndex","scrollHeight","display","editCaption","attachmentEditorDidRequestRemovalOfAttachment","attachmentEditorDidRequestDeselectingAttachment","uploadProgressDelegate","piece","createContentNodes","getClassName","getHref","tabindex","hasContent","getContent","createCaptionElement","isPending","progressElement","getUploadProgress","getCaptionConfig","createTextNode","getType","getExtension","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","findProgressElement","attachmentDidChangeUploadProgress","PreviewableAttachmentView","previewDelegate","image","src","updateAttributesForImage","getURL","getPreviewURL","getWidth","getHeight","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","_t11","TextView","getPieces","BlockView","block","createComment","getLastAttribute","shouldAddExtraNewlineElement","isRTL","getBlockBreakPosition","elementStore","setDocument","sync","shadowElement","getBlocks","isSynced","createDocumentFragmentForSync","lastChild","didSync","createDocumentFragment","replaceChild","CompositionController","composition","didClickAttachment","didBlur","didFocus","documentView","focused","compositionControllerDidFocus","blurPromise","compositionControllerDidBlur","findAttachmentForElement","compositionControllerDidSelectAttachment","getSerializableElement","isEditingAttachment","revision","canSyncDocumentView","compositionControllerWillSyncDocumentView","compositionControllerDidSyncDocumentView","compositionControllerDidRender","rerenderViewForObject","refreshViewCache","attachmentEditor","installAttachmentEditorForAttachment","uninstallAttachmentEditor","getAttachmentPieceForAttachment","compositionControllerWillUpdateAttachment","updateAttributesForAttachment","removeAttributeForAttachment","compositionControllerDidRequestRemovalOfAttachment","compositionControllerDidRequestDeselectingAttachment","getAttachmentById","parseInt","ToolbarController","didKeyDownDialogInput","didClickDialogButton","didClickAttributeButton","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","disabled","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","select","toolbarDidShowDialog","willValidate","checkValidity","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","_t12","ImagePreloadOperation","Image","naturalWidth","naturalHeight","_t13","Attachment","releaseFile","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filename","filesize","contentType","setAttributes","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","createObjectURL","revokeObjectURL","_t14","Piece","registerType","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","_t15","AttachmentPiece","ensureAttachmentExclusivelyHasAttribute","removeProhibitedAttributes","permittedAttributes","toConsole","StringPiece","consolidateWith","splitAtOffset","SplittableList","eachObject","insertObjectAtIndex","insertSplittableListAtIndex","insertSplittableListAtPosition","splitObjectAtPosition","editObjectAtIndex","replaceObjectAtIndex","removeObjectAtIndex","getObjectAtIndex","getSplittableListInRange","splitObjectsAtRange","selectSplittableList","removeObjectsInRange","transformObjectsInRange","getObjectAtPosition","findIndexAndOffsetAtPosition","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","endPosition","_t16","Text","textForAttachmentWithAttributes","textForStringWithAttributes","copyWithPieceList","copyUsingObjectMap","appendText","insertTextAtPosition","removeTextAtRange","replaceTextAtRange","moveTextFromRangeToPosition","getTextAtRange","addAttributeAtRange","addAttributesAtRange","removeAttributeAtRange","setAttributesAtRange","getAttributesAtPosition","getCommonAttributesAtRange","getExpandedRangeForAttributeAtOffset","getStringAtRange","getStringAtPosition","startsWithString","endsWithString","getAttachmentPieces","getAttachments","getAttachmentAndPositionById","getRangeOfAttachment","getPieceAtPosition","toSerializableText","Block","copyWithText","copyWithoutText","copyWithoutAttributes","addAttribute","removeLastAttribute","getAttributeLevel","getAttributeAtLevel","hasAttributes","getLastNestableAttribute","getNestableAttributes","getNestingLevel","lastIndexOf","getListItemAttributes","isListItem","isTerminalBlock","breaksOnReturn","findLineBreakInDirectionFromPosition","getTextWithoutBlockBreak","blockBreak","HTMLSanitizer","allowedAttributes","forbiddenProtocols","forbiddenElements","sanitize","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","currentNode","elementIsRemovable","sanitizeElement","protocol","previousElementSibling","elementIsForbidden","elementIsntSerializable","implementation","createHTMLDocument","HTMLParser","referenceElement","blocks","blockElements","processedElements","getDocument","createHiddenContainer","containerElement","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","FILTER_REJECT","FILTER_ACCEPT","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","appendStringWithAttributes","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","unshift","findBlockElementAncestors","reverse","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","min","getLocationRangeOfAttachment","findRangesForBlockAttribute","findRangesForTextAttribute","withValue","locationRangeFromPosition","rangeFromLocationRange","getTexts","LineBreakInsertion","startPosition","startLocation","endLocation","previousCharacter","nextCharacter","shouldInsertBlockBreak","shouldBreakFormattedBlock","shouldDecreaseListLevel","shouldPrependListItem","shouldRemoveLastBlockAttribute","Composition","currentAttributes","refreshAttachments","compositionDidChangeDocument","getSnapshot","selectedRange","loadSnapshot","compositionWillLoadSnapshot","setSelection","compositionDidLoadSnapshot","notifyDelegateOfInsertionAtRange","insertBlock","getCurrentTextAttributes","insertBlockBreak","decreaseListLevel","removeLastBlockAttribute","breakFormattedBlock","replaceHTML","getLocationRange","compositionShouldAcceptFile","insertAttachments","insertAttachment","canDecreaseBlockAttributeLevel","getBlock","decreaseBlockAttributeLevel","getExpandedRangeInDirection","getAttachmentAtRange","editAttachment","removeAttachment","stopEditingAttachment","placeholderPosition","getPosition","hasCurrentAttribute","canSetCurrentAttribute","canSetCurrentBlockAttribute","canSetCurrentTextAttribute","setBlockAttribute","setTextAttribute","notifyDelegateOfCurrentAttributesChange","removeBlockAttribute","updateCurrentAttributes","removeTextAttribute","getPreviousBlock","ignoreLock","freezeSelection","thawSelection","hasFrozenSelection","compositionDidRequestChangingSelectionToLocationRange","getSelectionManager","setLocationRange","targetLocationRange","withTargetLocationRange","withTargetRange","createLocationRangeFromDOMRange","translateUTF16PositionFromOffset","editingAttachment","expandSelectionForEditing","expandSelectionAroundCommonAttribute","getSelectedAttachments","positionIsCursorTarget","locationIsCursorTarget","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","_t17","UndoManager","undoEntries","redoEntries","consolidatable","createEntry","description","snapshot","canUndo","canRedo","attachmentGalleryFilter","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","Editor","selectionManager","_t18","undoManager","filters","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","_t19","ManagedAttachment","attachmentManager","requestRemovalOfAttachment","_t20","AttachmentManager","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","LocationMapper","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","findContainerAndOffsetFromLocation","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","PointMapper","createDOMRangeFromPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","createTextRange","moveToPoint","getClientRectsForDOMRange","getClientRects","SelectionChangeObserver","run","selectionManagers","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","domRange","SelectionManager","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","getLocationAtPoint","lock","unlock","clearSelection","selectionIsCollapsed","collapsed","domRangeWithinElement","pauseTemporarily","paused","locationRangeDidChange","EditorController","editorElement","compositionController","toolbarController","toolbarElement","editor","notifyEditorElement","handlingInput","updateCurrentActions","pasting","pastedRange","attachmentLocationRange","loadingSnapshot","isFocused","requestedLocationRange","compositionRevisionWhenLocationRangeRequested","renderedCompositionRevision","runEditorFilters","isFocusedInvisibly","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","notify","getUndoContext","getLocationContext","getTimeContext","getTime","ownerDocument","queryCommandSupported","execCommand","labels","inputElement","editorController","defaultValue","registerResetListener","registerClickListener","unregisterResetListener","unregisterClickListener","resetListener","resetBubbled","clickListener","clickBubbled","form","getWindow","defaultView","isElement","isHTMLElement","isShadowRoot","ShadowRoot","round","includeScale","scaleX","scaleY","offsetHeight","offsetWidth","getWindowScroll","win","scrollLeft","scrollTop","getNodeName","nodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","offsets","clientLeft","clientTop","getLayoutRect","clientRect","offsetLeft","offsetTop","getParentNode","assignedSlot","getScrollParent","listScrollParents","list","_element$ownerDocumen","scrollParent","isBody","visualViewport","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","isFirefox","transform","perspective","contain","willChange","getContainingBlock","auto","basePlacements","viewport","variationPlacements","acc","placement","modifierPhases","order","modifiers","visited","modifier","requires","requiresIfExists","dep","depModifier","DEFAULT_OPTIONS","strategy","areValidElements","_len","args","_key","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","popper","pending","orderedModifiers","modifiersData","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","phase","orderModifiers","merged","current","existing","mergeByName","enabled","_ref3","_ref3$options","effect","cleanupFn","noopFn","forceUpdate","_state$elements","rects","_state$orderedModifie","_state$orderedModifie2","_options","onFirstUpdate","passive","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","_ref","basePlacement","variation","commonX","commonY","mainAxis","unsetSides","mapToStyles","_ref2","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","dpr","devicePixelRatio","roundOffsetsByDPR","hash","getOppositePlacement","matched","getOppositeVariationPlacement","child","rootNode","getRootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","clientWidth","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","padding","altContext","clippingClientRect","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","axis","within","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","_options$scroll","_options$resize","resize","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","arrow","initialStyles","margin","attribute","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","placements","_options$allowedAutoP","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","_loop","fittingPlacement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","_state$modifiersData$","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","Path","utils","DESTROYED_ERROR","Shape","opts","_opts","color","strokeWidth","trailColor","trailWidth","fill","autoStyleContainer","alignToBottom","svgStyle","warnings","svgView","_createSvgView","_container","svg","_warnContainerAspectRatio","path","trail","newOpts","shape","_progressPath","setText","animate","progress","cb","pause","_tweenable","resume","newText","_createTextContainer","_initializeSvg","trailPath","_createTrail","_createPath","pathString","_pathString","_createPathElement","_trailString","textContainer","textStyle","_initializeTextContainer","containerAspectRatio","computedStyle","parseFloat","getPropertyValue","webpackPolyfill","deprecate","paths","factory","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tmp","lo","hi","substring","md51_array","subarray","Uint8Array","rhex","j","hex","toUtf8","str","unescape","encodeURIComponent","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","concatenateArrayBuffers","first","second","byteLength","buffer","hexToBinaryString","substr","SparkMD5","clamp","to","num","targetArray","sourceArray","begin","append","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","setState","hashBinary","classCallCheck","Constructor","createClass","props","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","ceil","chunkIndex","md5Buffer","fileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","root","eventInit","toArray$1","BlobRecord","checksum","content_type","byte_size","xhr","XMLHttpRequest","open","responseType","setRequestHeader","csrfToken","getMetaValue","requestDidLoad","requestDidError","send","blob","status","response","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","headers","DirectUpload","upload","messages","DirectUploadController","directUpload","dispatch","hiddenInput","insertAdjacentElement","dispatchError","signed_id","loaded","total","alert","_this2","uploadRequestDidProgress","DirectUploadsController","inputs","controllers","createDirectUploadControllers","startNextController","processingAttribute","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","disable","enable","submitForm","ActiveStorage","isNodeEnv","process","getGlobalObject","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","marker","runClearTimeout","Item","noop","nextTick","env","argv","version","versions","addListener","once","off","removeListener","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","umask","ok","statusText","responseURL","responseText","json","Blob","clone","entries","getAllResponseHeaders","withCredentials","credentials","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","close","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","shifty","Tweenable","EASING_ALIASES","easeIn","easeOut","easeInOut","delay","duration","easing","getTotalLength","strokeDasharray","_getComputedDashOffset","strokeDashoffset","_progressToOffset","_easing","_calculateTo","_stopTween","passedOpts","defaultOpts","shiftyEasing","_resolveFromAndTo","newOffset","tween","_calculateFrom","interpolate","Circle","_pathTemplate","widthOfWider","radius","_typeof2","adapters","logger","WebSocket","_adapters$logger","secondsSince","time","ConnectionMonitor","connection","visibilityDidChange","reconnectAttempts","isRunning","startedAt","stoppedAt","startPolling","getPollInterval","stopPolling","recordPing","pingedAt","recordConnect","disconnectedAt","recordDisconnect","poll","pollTimeout","reconnectIfStale","_constructor$pollInte","pollInterval","interval","multiplier","connectionIsStale","staleThreshold","disconnectedRecently","reopen","visibilityState","isOpen","INTERNAL","message_types","welcome","ping","confirmation","rejection","disconnect_reasons","unauthorized","invalid_request","server_restart","default_mount_path","protocols","supportedProtocols","Connection","consumer","subscriptions","monitor","disconnected","webSocket","isActive","uninstallEventHandlers","installEventHandlers","allowReconnect","reopenDelay","getProtocol","isState","isProtocolSupported","states","handler","_JSON$parse","reason","reconnect","reload","notifyAll","willAttemptReconnect","Subscription","params","mixin","command","unsubscribe","Subscriptions","channelName","channel","subscription","ensureActiveConnection","sendCommand","forget","callbackName","_this3","_len2","_key2","Consumer","_url","createWebSocketURL","getConfig","createConsumer","default","tribute","boundKeydown","boundKeyup","keyup","boundInput","shouldDeactivate","hideMenu","commandEvent","callbacks","inputEvent","menu","selectItemAtIndex","externalTrigger","updateSelection","allowSpaces","hasTrailingSpace","space","autocompleteMode","triggerChar","getKeyCode","isNaN","triggers","mentionText","collection","menuShowMinLength","trigger","showMenuFor","getTriggerInfo","mentionTriggerChar","selectedPath","mentionSelectedPath","selectedOffset","mentionSelectedOffset","enter","filteredItems","menuSelected","escape","spaceSelectsMatch","up","setActiveLi","down","selectClass","currentStyle","menuEvents","menuClickEvent","menuContainerScrollEvent","debounce","windowResizeEvent","positionMenuAtCaret","menuContainer","iframe","contentWindow","positionMenu","cssText","isContentEditable","getContentEditableCaretPosition","mentionPosition","getTextAreaOrInputUnderlinePosition","scrollIntoView","isMenuOffScreen","innerWidth","innerHeight","getWindowSelection","collapse","replaceTextSuffix","pasteHtml","selectionStart","selectionEnd","anchorNode","deleteContents","insertNode","cloneRange","setStartAfter","getNodePositionInParent","selected","getContentEditableSelectedPath","getTextPrecedingCurrentSelection","getLastWordInText","mentionSelectedElement","requireLeadingSpace","lastIndexWithLeadingSpace","mozInnerScreenX","wordWrap","visibility","menuContainerIsBody","borderTopWidth","fontSize","borderLeftWidth","getMenuDimensions","scrollTo","search","pre","post","caseSensitive","skip","score","traverse","cache","calculateScore","extract","original","containerClass","itemClass","T","selectTemplate","menuItemTemplate","M","lookup","fillAttr","I","N","O","noMatchTemplate","W","H","B","F","Y","z","K","q","U","X","searchOpts","Q","V","menuItemLimit","G","J","Z","defaultSelectTemplate","defaultMenuItemTemplate","jQuery","NodeList","HTMLCollection","_attach","ensureEditable","currentMentionTextSnapshot","createMenu","tributeMenu","return","_findLiTarget","movementY","placeCaretAtEnd","insertTextAtCursor","insertAtCaret","selectNodeContents","moveToElementText","replaceText","replaceTriggerText","_append","_detach","unbind","_isActive","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","cspNonce","oMatchesSelector","$","csrfParam","CSRFProtection","refreshCSRFTokens","param","fire","evt","stopEverything","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","xml","script","ajax","getResponseHeader","success","complete","beforeSend","OPENED","location","dataType","accept","crossDomain","onreadystatechange","DONE","isCrossDomain","originAnchor","urlAnchor","serializeElement","additionalParam","option","checked","formElements","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","isRemote","handleRemote","enctype","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","ajaxPrefilter","originalOptions","_rails_loaded","Turbolinks","supported","history","pushState","visit","clearCache","setProgressBarDelay","throttle","uuid","Location","absoluteURL","requestURL","anchor","getOrigin","getPath","getPathComponents","getLastPathComponent","isHTML","isPrefixedBy","toCacheKey","valueOf","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","notifyApplicationBeforeRequestStart","setProgress","requestStarted","lengthComputable","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","onprogress","ontimeout","onabort","requestFinished","ProgressBar","trickle","stylesheetElement","createStylesheetElement","createProgressElement","show","visible","installStylesheetElement","installProgressElement","startTrickling","hide","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","trickleInterval","BrowserAdapter","showProgressBar","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","History","onPageLoad","onPopState","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","tracked","fromHeadElement","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","findMetaElementByName","_e","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isCacheable","isVisitable","Renderer","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","async","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","markAsPreview","renderSnapshot","renderError","ScrollManager","onScroll","scrollToElement","scrollToPosition","scrollPositionChanged","SnapshotCache","snapshots","read","touch","put","write","Visit","performScroll","adapter","timingMetrics","recordTimingMetric","request","cancelRender","fail","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTimingMetrics","snapshotCached","frame","clickCaptured","view","scrollManager","startHistory","stopHistory","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","timing","createVisit","nodeIsVisitable","currentScript","channels","require","webpackContext","req","webpackContextResolve","stripe_publishable_key","stripe","Stripe","card","base","iconColor","mount","displayError","createToken","field","addFieldToPurchaseForm","stripeTokenHandler","createSource","addFieldToPaymentMethodForm","submit","stripeSourceHandler","TrixAutoLinker","PATTERN","INPUT","isValidURL","autoLink","required","getURLsWithRanges","getHrefAtRange","currentRange","results","getDocumentString","exec","initClass","includes","_loop_1","args_1","hasBlockEditorTarget","hasPreFillEditorTarget","blockEditorTarget","preFillEditorTarget","hasBlockTextTarget","hasPreFillTextTarget","blockTextTarget","preFillTextTarget","hasBlockDateTarget","hasPreFillDateTarget","blockDateTarget","preFillDateTarget","dragula","dragContainerTargets","changePosition","fieldTemplateId","dragContainerTarget","elementId","siblingId","sibling_field_id","field_template_id","accountId","responseJson","atoa","thing","_once","et","emitterSnapshot","ctx","throws","listen","ticky","tick","registerImmediate","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","task","customEvent","eventmap","addEvent","capturing","removeEvent","hardCache","wrapper","originalEvent","srcElement","returnValue","cancelBubble","wrapperFactory","listener","detachEvent","fabricate","model","createEventObject","makeClassicEvent","fireEvent","NativeCustomEvent","foo","eventname","ron","lookupClass","cached","lastIndex","icon_name","icon","selected_icon","selectedTarget","fieldTarget","hasSingleTarget","slug","localStorage","setItem","hasDeleteProjectTarget","delete_link","delete_project_url","getItem","hasUpdateBoardTarget","form_url","base_path","boardId","field_id","sibling_not_present","elStepSettings","siblingStepSettings","current_field_setting","sibling_field_setting","process_id","sibling_process_id","sibling_present","current_process_setting","sibling_process_setting","zIndex","inbound_list","inbound_list_tourstop","createPopper","hide_all","customize_kanban_list","customize_kanban_list_tourstop","create_project","create_project_tourstop","modal","tourStepTargets","steps","stepTargets","proceed_to_step","proceedTo","completed","process_title_field","builder_field","mark_completed","go_to_step","panelTargets","board_title_field","panels","panel","completed_step","fill_value","fieldToFill","process_title_placeholderTargets","span","process_title","boxTarget","enableModal","modalTarget","cancellableElementTarget","hasTogglerTarget","togglerTarget","sibling_id","current_template_setting","sibling_template_setting","clientAttrTemplateId","sibling_attribute_id","client_attr_template_id","commentTarget","actionsTarget","formTarget","commentForm","copy_content","success_message","initial_text","linkTextTarget","richTextContentTarget","setProperty","selectNode","hasStartCriteriaTarget","hasDueCriteriaTarget","removeDependentOption","startCriteriaLength","startCriteriaTarget","dueCriteriaLength","dueCriteriaTarget","removeOptionInSelect","addOptionInSelect","optionLength","selectElement","optionValue","optionText","rulePresent","optionIndex","Option","preventRemove","resetState","oldMessage","linkTarget","custom_confirmation_message","handleSuccess","param_name","pair","decodeURIComponent","getParams","autofocus","toggleClass","toggleParentClass","contentTarget","toggle","fields","optionFieldTarget","insertAdjacentHTML","secondToLastOptionId","optionId","secondToLastOptionIdInt","lastNode","newOptionId","input_tag","new_id","new_name","checkbox","option_wrap","url_params_hash","temp","filter_parameter","listTarget","filter_item","filter_item_value","filter_list_value","addItemLinkTarget","form_element","flatpickr","enableTime","disableMobile","onOpen","dateStr","selectedDates","onChange","month","monthElements","selectedOptions","day","selectedDateElem","innerText","year","yearElements","hour","hourElement","valueAsNumber","minutes","minuteElement","ampm","amPM","hasActionsTarget","buttonTarget","inputTarget","copyButtonTarget","hasButtonTarget","viewportWidth","app_nav_links","setViewportWidth","logWidth","viewContentTarget","editContentTarget","new_item_form","hasItemsListTarget","hasHideWhileCreatingTarget","hideWhileCreatingTargets","item_div","edit_item_form","hasHideWhileEditingTarget","hideWhileEditingTargets","new_list_div","kanban_board","list_header","kanbanLists","getElementId","targetKanbanId","sourceKanbanId","kanban_list_id","source_kanban_list_id","changeDeleteOption","changeDropdownLinks","updateKanbanInOptions","lastHyphenIndex","getDeleteWrap","account_id","board_id","source_kanban_board","dropdown_delete_wrap","delete_element","childElement","projectId","dropContent","sendToTopLink","sendToBottomLink","addSendToTop","addSendToBottom","top_option","optionKey","kanban_list","optionList","moveDiv","projectElement","targetKanban","targetList","dragAndDropProject","staticTarget","animatedTarget","currentTarget","monthlyInfoTarget","yearlyInfoTarget","updatePlanButtonTarget","tasks","tasks_tourstop","propagate","propagate_tourstop","compactViewTarget","normalViewTarget","completeness","progressElementTarget","Line","SemiCircle","Square","Scene","Xt","Wt","processTweens","ft","setBezierFunction","Yt","yt","unsetBezierFunction","Zt","bounce","bouncePast","easeFrom","easeFromTo","easeInBack","easeInCirc","easeInCubic","easeInExpo","easeInOutBack","easeInOutCirc","easeInOutCubic","easeInOutExpo","easeInOutQuad","easeInOutQuart","easeInOutQuint","easeInOutSine","easeInQuad","easeInQuart","easeInQuint","easeInSine","easeOutBack","easeOutBounce","easeOutCirc","easeOutCubic","easeOutExpo","easeOutQuad","easeOutQuart","easeOutQuint","easeOutSine","easeTo","elastic","linear","swingFrom","swingFromTo","swingTo","afterTween","Nt","beforeTween","Bt","doesApply","qt","tweenCreated","Qt","cos","PI","sin","sqrt","getOwnPropertySymbols","getOwnPropertyDescriptors","tt","nt","rt","oRequestAnimationFrame","msRequestAnimationFrame","mozCancelRequestAnimationFrame","it","ut","ot","at","st","ct","_timestamp","_currentState","_delay","_duration","_targetState","_filters","_render","_data","_applyFilter","_originalState","_next","lt","ht","pt","_previous","vt","_config","_resolve","_reject","_start","_promiseCtor","setConfig","_isPlaying","_pausedAtTime","_resume","finish","_scheduleId","_promise","catch","tweenable","setScheduleFunction","formulas","dt","gt","mt","wt","bt","Ot","St","jt","kt","Pt","Mt","Et","Tt","Ft","It","xt","At","Ct","Dt","_tokenData","formatString","chunkNames","_e2","Rt","zt","Lt","Ut","Vt","$t","Gt","Jt","Kt","tweenables","isPlaying","Ht","displayName","x1","y1","x2","y2","globalThis","_trailTemplate","halfOfStrokeWidth","startMargin","innerContentTarget","base_path_name","hasSingleTaskListTarget","project_id","last_visited_name","last_visited_base_path_name","projectid","accountid","last_visited_task_list","extra_settings_hidden","revealTarget","hasMemberlistTarget","memberlistTarget","hasRecurProjectTarget","showRecurringOptions","recurProjectTarget","recurProjectBlockTarget","dayOfWeekTarget","dayOfMonthTarget","monthTarget","numberOfWeeksTarget","dayTarget","repeatEveryTarget","appendToTitleTarget","appendDateFormatTarget","ShowHideDay","timeTarget","showHideDateFormat","checkedDays","perfomValidation","dayOptionTargets","edit_template_link","edit_template_link_tourstop","this_label","selection","selected_radio","selected_option","page_id","page_name","preload_params","saved_sorting_attribute","page_path","sort_by_attribute","requiredTextareaTarget","submitButtonTarget","search_results","focused_result","hasInputTarget","inputValue","URLSearchParams","hasContentTarget","search_results_found","errorMessage","triggerChange","change_if_selected","selectTarget","triggerIfSelected","hide_both","hideBoth","hasDefaultValueTarget","defaultValueTarget","showHideMeTarget","find_form","lastSlashIndex","templateId","showModal","show_modal","instanceCount","template_instances","spanCount","clientLabel","modalSubmit","updateSubmit","client_label","client_button","findForm","selection_element","selected_id","selectionid","selectionsTarget","selections_array","list_wrapper","toggleIndicatorClass","showHideElements","showHideMeTargets","triggerElements","triggerTargets","hasDefaultTarget","sorted_header","defaultTarget","attributeId","rows","rowTargets","rows_wrapper","rowsWrapperTarget","attributeValue","row","showHideValue","hasReferencedTaskTarget","processTemplate","stepTemplate","referencedTaskTarget","referencedTaskBlockTarget","hasStepBlockElementTarget","stepBlockElementTarget","criteriaElementTarget","constructOptions","step_blocks","step_block","hasFieldStatusTarget","hasFieldValueTarget","fieldStatusTarget","fieldValueTarget","processTemplateId","current_task_setting","sibling_task_setting","step_expander_id","stepExpanderId","stepExpanderStatus","current_step_status","step_role_form","new_step_role_form_url","parent_li","add_step_toggle","tabs_id","tabsTabsId","removeItem","hasStepTarget","stepTarget","load_task_data","automation_panel","activity_panel","createConfigurationFormTarget","configurationTypesTarget","createConfigurationsTarget","openCreateConfigurationsTarget","step_configuration","configurations_options","editableTargets","editable_part","resetConfigurationForms","edit_me","block_id","blockId","rich_text_modal","rich_text_button","new_form_action_url","step_element","edit_configurations_options_div","editing_configuration_item","stepTemplateId","current_block_setting","sibling_block_setting","stepBlockId","toggleOverwrite","taskDetails","overwriteTarget","taskAssignments","taskAutomations","overwriteBtn","isCheckBoxChecked","targetParent","task_details","task_assignments","task_automations","targetParentForm","dependent_task_list_id","taskPropagationSetting","taskPropagationMessage","flash_message","active_tab_id","hasTabTarget","active_tabs","hasTabPanelTarget","active_panels","first_found_tab","panelid","tabs","tabTargets","tab_id","tabid","tabPanelTargets","task_list_id","task_id","taskBlockElementTarget","task_blocks","task_block","uncomplete_linkTarget","complete_linkTarget","recalculate_button","taskListId","assignMembers","assignGuests","task_tab","taskTarget","socket_tabs","hasTaskTarget","stepList","taskId","taskBlockId","loadGuestOptions","settingTarget","showHideOption","showHiddenTaskTarget","taskListContent","showTask","taskContent","dropdownTarget","current_url","toggleableTargets","toggle_id","selectedIndex","toggleId","hasEditorTarget","hasToolbarTarget","initializeTribute","editorTarget","toolbarTarget","dialogs","dialogContent","iFrameDialogContent","insertedDialogDiv","linkDialogDiv","detach","trix","embedInputError","validEmbed","embed","sgid","userCollection","Tribute","fetchUsers","attach","_pasteHtml","replaced","users","mention","startPos","endPos","containerTarget","toggleContainerClass","truncate_textarea_id","HOOKS","_disable","allowInput","allowInvalidPreload","altFormat","altInput","altInputClass","ariaDateFormat","autoFillDefaultTime","clickOpens","closeOnSelect","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","enableSeconds","errorHandler","err","getWeek","givenDate","date","setHours","setDate","getDate","getDay","week1","getFullYear","hourIncrement","ignoredFocusElements","inline","locale","minuteIncrement","monthSelectorType","nextArrow","noCalendar","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","positionElement","prevArrow","shorthandCurrentMonth","showMonths","static","time_24hr","weekNumbers","english","weekdays","shorthand","longhand","months","daysInMonth","firstDayOfWeek","ordinal","nth","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","yearAriaLabel","monthAriaLabel","hourAriaLabel","minuteAriaLabel","pad","bool","wait","arrayify","elem","clearNode","findParent","condition","createNumberInput","inputClassName","numInput","arrowUp","arrowDown","pattern","getEventTarget","composedPath","doNothing","monthToStr","monthNumber","revFormat","dateObj","monthName","setMonth","getHours","shortMonth","seconds","setSeconds","unixSeconds","weekNum","weekNumber","setFullYear","ISODate","setMinutes","unixMillSeconds","tokenRegex","toISOString","getMonth","getSeconds","getMinutes","l10n","_d","isMobile","frmt","overrideLocale","formatDate","givenFormat","timeless","customLocale","parsedDate","dateOrig","format","datestr","parseDate","matchIndex","regexStr","isBackSlash","escaped","compareDates","date1","date2","calculateSecondsSinceMidnight","hours","getDefaultHours","minDate","minHour","minMinutes","minSeconds","maxDate","maxHr","maxMinutes","__assign","__spreadArrays","il","jl","FlatpickrInstance","instanceConfig","defaultConfig","getClosestActiveElement","calendarContainer","bindToInstance","setCalendarWidth","daysContainer","daysWidth","days","weekWrapper","removeProperty","updateTime","defaultDate","defaults","getMilliseconds","latestSelectedDateObj","isKeyDown","curValue","delta","newValue","isHourElem","isMinuteElem","incrementNumInput","timeWrapper","_input","setHoursFromInputs","updateValue","_debouncedChange","secondElement","limitMinHours","minTime","minDateHasTime","limitMaxHours","maxTime","maxDateHasTime","minBound","maxBound","currentTime","secondsSinceMidnight","parseSeconds","setHoursFromDate","onYearInput","changeYear","ev","_handlers","jumpToDate","jumpDate","jumpTo","oldYear","currentYear","oldMonth","currentMonth","buildMonthSwitch","redraw","timeIncrement","inputElem","createDay","_dayNumber","dateIsEnabled","isEnabled","dayElement","$i","todayDateElem","isDateSelected","isDateInRange","focusOnDayElem","targetNode","onMouseOver","getFirstAvailableDay","startMonth","endMonth","startIndex","endIndex","focusOnDay","dayFocused","isInView","startElem","givenMonth","loopDelta","numMonthDays","changeMonth","getNextAvailableDay","buildMonthDays","firstOfMonth","prevMonthDays","getDaysInMonth","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayNumber","dayIndex","dayNum","dayContainer","buildDays","frag","shouldBuildMonth","monthsDropdownContainer","buildMonth","monthElement","monthNavFragment","selectedMonth","yearInput","yearElement","getElementsByTagName","buildMonths","monthNav","prevMonthNav","nextMonthNav","buildWeekdays","weekdayContainer","updateWeekdays","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","updateNavigationCurrentMonth","isCalendarElem","documentClick","eventTarget_1","isCalendarElement","lostFocus","relatedTarget","isIgnored","timeContainer","newYear","newYearNum","isNewYear","dateToCheck","parsed","onBlur","valueChanged","trimEnd","getDateStr","allowKeydown","allowInlineKeydown","blur","isTimeObj","focusAndClose","selectDate","delta_1","currentYearElement","elems","pluginElements","cellClass","hoverDate","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","rContainer","dayElem","ts","ts1","ts2","timestamp","outOfRange","onResize","positionCalendar","minMaxDateSetter","inverseDateObj","getInputElem","setupLocale","l10ns","customPositionElement","_positionElement","calendarHeight","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","distanceFromBottom","showOnTop","isCenter","isRight","rightMost","centerMost","editableSheet","styleSheets","sheet","cssRules","getDocumentStyleSheet","bodyWidth","centerLeft","centerIndex","centerStyle","insertRule","centerBefore","msMaxTouchPoints","selectedDate","shouldChangeMonth","single","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","triggerChangeEvent","toInitial","mobileInput","_initialDate","_createElement","_type","wasOpen","CALLBACKS","setSelectedDate","updatePositionElement","inputDate","dates","parseDateRules","rule","hooks","specificFormat","dObj","mobileFormatStr","onMonthNavClick","isPrevMonth","isNextMonth","boolOpts","userConfig","formats","_enable","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","parseConfig","setupInputs","preloadedDate","setupDates","yr","fragment","__hidePrevMonthArrow","__hideNextMonthArrow","innerContainer","buildWeeks","separator","hourInput","minuteInput","military2ampm","secondInput","buildTime","customAppend","appendTo","build","setupMobile","debouncedResize","ontouchstart","capture","selText","bindEvents","isSafari","init","_flatpickr","nodeList","instances","en","localize","setDefaults","fp_incr","_extendStatics","_assign","__values","__read","ar","__spread","compose","funcs","arg","toHashMap","getStacktrace","stacktrace","line","stack","Serializable","serialize","Environment","transport","origin","globals","product","hostname","jest","XDomainRequest","supportsPromises","XDomainTransport","rx","XHRTransport","req_1","FetchTransport","res","NodeTransport","PushApi","_uri","uri","_apiKey","_clientVersion","_transport","_createTransport","auth","_authorization","api_key","Span","namespace","backtrace","setAction","setNamespace","setError","isError","setTags","tags","toHashMapString","setParams","setBreadcrumbs","breadcrumbs","Queue","drain","api","_retries","_timerID","_api","_queue","limit","initialDuration","schedule","expDuration","e_2_1","e_2","appsignal","Appsignal","ignored","_breadcrumbs","_hooks","decorators","overrides","_env","ignoreErrors","info","_dispatcher","tagsOrFn","error_1","_createSpanFromError","sendError","use","plugin","createSpan","environment","e_1","addDecorator","decorator","addOverride","override","demo","demo_sample","addBreadcrumb","breadcrumb","crumb","metadata","category","prevHandler","framework","installErrorHandler","logicalName","identifierForContextKey","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext","_defineProperties","AttachmentUpload","_classCallCheck","directUploadUrl","directUploadDidComplete","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate","taskList","connected","received","task_li","task_expanded","task_step_toggler","task_connector","show_hide_task","hidden_task_exist","task_hide_link"],"mappings":"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","file":"js/application-203139f299e89e955445.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 = \"https://test.processkit.com/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 126);\n","var EventListener =\n/** @class */\nfunction () {\n function EventListener(eventTarget, eventName) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.unorderedBindings = new Set();\n }\n\n EventListener.prototype.connect = function () {\n this.eventTarget.addEventListener(this.eventName, this, false);\n };\n\n EventListener.prototype.disconnect = function () {\n this.eventTarget.removeEventListener(this.eventName, this, false);\n }; // Binding observer delegate\n\n /** @hidden */\n\n\n EventListener.prototype.bindingConnected = function (binding) {\n this.unorderedBindings.add(binding);\n };\n /** @hidden */\n\n\n EventListener.prototype.bindingDisconnected = function (binding) {\n this.unorderedBindings.delete(binding);\n };\n\n EventListener.prototype.handleEvent = function (event) {\n var extendedEvent = extendEvent(event);\n\n for (var _i = 0, _a = this.bindings; _i < _a.length; _i++) {\n var binding = _a[_i];\n\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n };\n\n Object.defineProperty(EventListener.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.unorderedBindings).sort(function (left, right) {\n var leftIndex = left.index,\n rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n },\n enumerable: true,\n configurable: true\n });\n return EventListener;\n}();\n\nexport { EventListener };\n\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var stopImmediatePropagation_1 = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation_1.call(this);\n }\n });\n }\n}","import { EventListener } from \"./event_listener\";\n\nvar Dispatcher =\n/** @class */\nfunction () {\n function Dispatcher(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n\n Dispatcher.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n };\n\n Dispatcher.prototype.stop = function () {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n };\n\n Object.defineProperty(Dispatcher.prototype, \"eventListeners\", {\n get: function get() {\n return Array.from(this.eventListenerMaps.values()).reduce(function (listeners, map) {\n return listeners.concat(Array.from(map.values()));\n }, []);\n },\n enumerable: true,\n configurable: true\n }); // Binding observer delegate\n\n /** @hidden */\n\n Dispatcher.prototype.bindingConnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n };\n /** @hidden */\n\n\n Dispatcher.prototype.bindingDisconnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n }; // Error handling\n\n\n Dispatcher.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n Dispatcher.prototype.fetchEventListenerForBinding = function (binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName;\n return this.fetchEventListener(eventTarget, eventName);\n };\n\n Dispatcher.prototype.fetchEventListener = function (eventTarget, eventName) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var eventListener = eventListenerMap.get(eventName);\n\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName);\n eventListenerMap.set(eventName, eventListener);\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.createEventListener = function (eventTarget, eventName) {\n var eventListener = new EventListener(eventTarget, eventName);\n\n if (this.started) {\n eventListener.connect();\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.fetchEventListenerMapForEventTarget = function (eventTarget) {\n var eventListenerMap = this.eventListenerMaps.get(eventTarget);\n\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n\n return eventListenerMap;\n };\n\n return Dispatcher;\n}();\n\nexport { Dispatcher };","// capture nos.: 12 23 4 43 1 5 56 7 76\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#(.+))?$/;\nexport function parseDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n identifier: matches[5],\n methodName: matches[7]\n };\n}\n\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n } else if (eventTargetName == \"document\") {\n return document;\n }\n}\n\nexport function stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}","import { parseDescriptorString, stringifyEventTarget } from \"./action_descriptor\";\n\nvar Action =\n/** @class */\nfunction () {\n function Action(element, index, descriptor) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n\n Action.forToken = function (token) {\n return new this(token.element, token.index, parseDescriptorString(token.content));\n };\n\n Action.prototype.toString = function () {\n var eventNameSuffix = this.eventTargetName ? \"@\" + this.eventTargetName : \"\";\n return \"\" + this.eventName + eventNameSuffix + \"->\" + this.identifier + \"#\" + this.methodName;\n };\n\n Object.defineProperty(Action.prototype, \"eventTargetName\", {\n get: function get() {\n return stringifyEventTarget(this.eventTarget);\n },\n enumerable: true,\n configurable: true\n });\n return Action;\n}();\n\nexport { Action };\nvar defaultEventNames = {\n \"a\": function a(e) {\n return \"click\";\n },\n \"button\": function button(e) {\n return \"click\";\n },\n \"form\": function form(e) {\n return \"submit\";\n },\n \"input\": function input(e) {\n return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"change\";\n },\n \"select\": function select(e) {\n return \"change\";\n },\n \"textarea\": function textarea(e) {\n return \"change\";\n }\n};\nexport function getDefaultEventNameForElement(element) {\n var tagName = element.tagName.toLowerCase();\n\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\n\nfunction error(message) {\n throw new Error(message);\n}","var Binding =\n/** @class */\nfunction () {\n function Binding(context, action) {\n this.context = context;\n this.action = action;\n }\n\n Object.defineProperty(Binding.prototype, \"index\", {\n get: function get() {\n return this.action.index;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventTarget\", {\n get: function get() {\n return this.action.eventTarget;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: true,\n configurable: true\n });\n\n Binding.prototype.handleEvent = function (event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n };\n\n Object.defineProperty(Binding.prototype, \"eventName\", {\n get: function get() {\n return this.action.eventName;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"method\", {\n get: function get() {\n var method = this.controller[this.methodName];\n\n if (typeof method == \"function\") {\n return method;\n }\n\n throw new Error(\"Action \\\"\" + this.action + \"\\\" references undefined method \\\"\" + this.methodName + \"\\\"\");\n },\n enumerable: true,\n configurable: true\n });\n\n Binding.prototype.invokeWithEvent = function (event) {\n try {\n this.method.call(this.controller, event);\n } catch (error) {\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element,\n index = _a.index;\n\n var detail = {\n identifier: identifier,\n controller: controller,\n element: element,\n index: index,\n event: event\n };\n this.context.handleError(error, \"invoking action \\\"\" + this.action + \"\\\"\", detail);\n }\n };\n\n Binding.prototype.willBeInvokedByEvent = function (event) {\n var eventTarget = event.target;\n\n if (this.element === eventTarget) {\n return true;\n } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n } else {\n return true;\n }\n };\n\n Object.defineProperty(Binding.prototype, \"controller\", {\n get: function get() {\n return this.context.controller;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"methodName\", {\n get: function get() {\n return this.action.methodName;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: true,\n configurable: true\n });\n return Binding;\n}();\n\nexport { Binding };","var ElementObserver =\n/** @class */\nfunction () {\n function ElementObserver(element, delegate) {\n var _this = this;\n\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n\n ElementObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n childList: true,\n subtree: true\n });\n this.refresh();\n }\n };\n\n ElementObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n\n ElementObserver.prototype.refresh = function () {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n\n for (var _i = 0, _a = Array.from(this.elements); _i < _a.length; _i++) {\n var element = _a[_i];\n\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n\n for (var _b = 0, _c = Array.from(matches); _b < _c.length; _b++) {\n var element = _c[_b];\n this.addElement(element);\n }\n }\n }; // Mutation record processing\n\n\n ElementObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n\n ElementObserver.prototype.processMutation = function (mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n } else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n };\n\n ElementObserver.prototype.processAttributeChange = function (node, attributeName) {\n var element = node;\n\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n } else {\n this.removeElement(element);\n }\n } else if (this.matchElement(element)) {\n this.addElement(element);\n }\n };\n\n ElementObserver.prototype.processRemovedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n };\n\n ElementObserver.prototype.processAddedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }; // Element matching\n\n\n ElementObserver.prototype.matchElement = function (element) {\n return this.delegate.matchElement(element);\n };\n\n ElementObserver.prototype.matchElementsInTree = function (tree) {\n if (tree === void 0) {\n tree = this.element;\n }\n\n return this.delegate.matchElementsInTree(tree);\n };\n\n ElementObserver.prototype.processTree = function (tree, processor) {\n for (var _i = 0, _a = this.matchElementsInTree(tree); _i < _a.length; _i++) {\n var element = _a[_i];\n processor.call(this, element);\n }\n };\n\n ElementObserver.prototype.elementFromNode = function (node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n };\n\n ElementObserver.prototype.elementIsActive = function (element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n }; // Element tracking\n\n\n ElementObserver.prototype.addElement = function (element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n };\n\n ElementObserver.prototype.removeElement = function (element) {\n if (this.elements.has(element)) {\n this.elements.delete(element);\n\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n };\n\n return ElementObserver;\n}();\n\nexport { ElementObserver };","import { ElementObserver } from \"./element_observer\";\n\nvar AttributeObserver =\n/** @class */\nfunction () {\n function AttributeObserver(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n\n Object.defineProperty(AttributeObserver.prototype, \"element\", {\n get: function get() {\n return this.elementObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AttributeObserver.prototype, \"selector\", {\n get: function get() {\n return \"[\" + this.attributeName + \"]\";\n },\n enumerable: true,\n configurable: true\n });\n\n AttributeObserver.prototype.start = function () {\n this.elementObserver.start();\n };\n\n AttributeObserver.prototype.stop = function () {\n this.elementObserver.stop();\n };\n\n AttributeObserver.prototype.refresh = function () {\n this.elementObserver.refresh();\n };\n\n Object.defineProperty(AttributeObserver.prototype, \"started\", {\n get: function get() {\n return this.elementObserver.started;\n },\n enumerable: true,\n configurable: true\n }); // Element observer delegate\n\n AttributeObserver.prototype.matchElement = function (element) {\n return element.hasAttribute(this.attributeName);\n };\n\n AttributeObserver.prototype.matchElementsInTree = function (tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n };\n\n AttributeObserver.prototype.elementMatched = function (element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementUnmatched = function (element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementAttributeChanged = function (element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n };\n\n return AttributeObserver;\n}();\n\nexport { AttributeObserver };","export function add(map, key, value) {\n fetch(map, key).add(value);\n}\nexport function del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\nexport function fetch(map, key) {\n var values = map.get(key);\n\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n\n return values;\n}\nexport function prune(map, key) {\n var values = map.get(key);\n\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}","import { add, del } from \"./set_operations\";\n\nvar Multimap =\n/** @class */\nfunction () {\n function Multimap() {\n this.valuesByKey = new Map();\n }\n\n Object.defineProperty(Multimap.prototype, \"values\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) {\n return values.concat(Array.from(set));\n }, []);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Multimap.prototype, \"size\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) {\n return size + set.size;\n }, 0);\n },\n enumerable: true,\n configurable: true\n });\n\n Multimap.prototype.add = function (key, value) {\n add(this.valuesByKey, key, value);\n };\n\n Multimap.prototype.delete = function (key, value) {\n del(this.valuesByKey, key, value);\n };\n\n Multimap.prototype.has = function (key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n };\n\n Multimap.prototype.hasKey = function (key) {\n return this.valuesByKey.has(key);\n };\n\n Multimap.prototype.hasValue = function (value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n };\n\n Multimap.prototype.getValuesForKey = function (key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n };\n\n Multimap.prototype.getKeysForValue = function (value) {\n return Array.from(this.valuesByKey).filter(function (_a) {\n var key = _a[0],\n values = _a[1];\n return values.has(value);\n }).map(function (_a) {\n var key = _a[0],\n values = _a[1];\n return key;\n });\n };\n\n return Multimap;\n}();\n\nexport { Multimap };","var __extends = this && this.__extends || function () {\n var 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 (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\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\nimport { Multimap } from \"./multimap\";\nimport { add, del } from \"./set_operations\";\n\nvar IndexedMultimap =\n/** @class */\nfunction (_super) {\n __extends(IndexedMultimap, _super);\n\n function IndexedMultimap() {\n var _this = _super.call(this) || this;\n\n _this.keysByValue = new Map();\n return _this;\n }\n\n Object.defineProperty(IndexedMultimap.prototype, \"values\", {\n get: function get() {\n return Array.from(this.keysByValue.keys());\n },\n enumerable: true,\n configurable: true\n });\n\n IndexedMultimap.prototype.add = function (key, value) {\n _super.prototype.add.call(this, key, value);\n\n add(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype.delete = function (key, value) {\n _super.prototype.delete.call(this, key, value);\n\n del(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype.hasValue = function (value) {\n return this.keysByValue.has(value);\n };\n\n IndexedMultimap.prototype.getKeysForValue = function (value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n };\n\n return IndexedMultimap;\n}(Multimap);\n\nexport { IndexedMultimap };","import { AttributeObserver } from \"./attribute_observer\";\nimport { Multimap } from \"@stimulus/multimap\";\n\nvar TokenListObserver =\n/** @class */\nfunction () {\n function TokenListObserver(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n\n Object.defineProperty(TokenListObserver.prototype, \"started\", {\n get: function get() {\n return this.attributeObserver.started;\n },\n enumerable: true,\n configurable: true\n });\n\n TokenListObserver.prototype.start = function () {\n this.attributeObserver.start();\n };\n\n TokenListObserver.prototype.stop = function () {\n this.attributeObserver.stop();\n };\n\n TokenListObserver.prototype.refresh = function () {\n this.attributeObserver.refresh();\n };\n\n Object.defineProperty(TokenListObserver.prototype, \"element\", {\n get: function get() {\n return this.attributeObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TokenListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.attributeObserver.attributeName;\n },\n enumerable: true,\n configurable: true\n }); // Attribute observer delegate\n\n TokenListObserver.prototype.elementMatchedAttribute = function (element) {\n this.tokensMatched(this.readTokensForElement(element));\n };\n\n TokenListObserver.prototype.elementAttributeValueChanged = function (element) {\n var _a = this.refreshTokensForElement(element),\n unmatchedTokens = _a[0],\n matchedTokens = _a[1];\n\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n };\n\n TokenListObserver.prototype.elementUnmatchedAttribute = function (element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n };\n\n TokenListObserver.prototype.tokensMatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenMatched(token);\n });\n };\n\n TokenListObserver.prototype.tokensUnmatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenUnmatched(token);\n });\n };\n\n TokenListObserver.prototype.tokenMatched = function (token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n };\n\n TokenListObserver.prototype.tokenUnmatched = function (token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n };\n\n TokenListObserver.prototype.refreshTokensForElement = function (element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_a) {\n var previousToken = _a[0],\n currentToken = _a[1];\n return !tokensAreEqual(previousToken, currentToken);\n });\n\n if (firstDifferingIndex == -1) {\n return [[], []];\n } else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n };\n\n TokenListObserver.prototype.readTokensForElement = function (element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n };\n\n return TokenListObserver;\n}();\n\nexport { TokenListObserver };\n\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(function (content) {\n return content.length;\n }).map(function (content, index) {\n return {\n element: element,\n attributeName: attributeName,\n content: content,\n index: index\n };\n });\n}\n\nfunction zip(left, right) {\n var length = Math.max(left.length, right.length);\n return Array.from({\n length: length\n }, function (_, index) {\n return [left[index], right[index]];\n });\n}\n\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}","import { TokenListObserver } from \"./token_list_observer\";\n\nvar ValueListObserver =\n/** @class */\nfunction () {\n function ValueListObserver(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n\n Object.defineProperty(ValueListObserver.prototype, \"started\", {\n get: function get() {\n return this.tokenListObserver.started;\n },\n enumerable: true,\n configurable: true\n });\n\n ValueListObserver.prototype.start = function () {\n this.tokenListObserver.start();\n };\n\n ValueListObserver.prototype.stop = function () {\n this.tokenListObserver.stop();\n };\n\n ValueListObserver.prototype.refresh = function () {\n this.tokenListObserver.refresh();\n };\n\n Object.defineProperty(ValueListObserver.prototype, \"element\", {\n get: function get() {\n return this.tokenListObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ValueListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.tokenListObserver.attributeName;\n },\n enumerable: true,\n configurable: true\n });\n\n ValueListObserver.prototype.tokenMatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.tokenUnmatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.fetchParseResultForToken = function (token) {\n var parseResult = this.parseResultsByToken.get(token);\n\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n\n return parseResult;\n };\n\n ValueListObserver.prototype.fetchValuesByTokenForElement = function (element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n\n return valuesByToken;\n };\n\n ValueListObserver.prototype.parseToken = function (token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return {\n value: value\n };\n } catch (error) {\n return {\n error: error\n };\n }\n };\n\n return ValueListObserver;\n}();\n\nexport { ValueListObserver };","import { Action } from \"./action\";\nimport { Binding } from \"./binding\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar BindingObserver =\n/** @class */\nfunction () {\n function BindingObserver(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n\n BindingObserver.prototype.start = function () {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n };\n\n BindingObserver.prototype.stop = function () {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n };\n\n Object.defineProperty(BindingObserver.prototype, \"element\", {\n get: function get() {\n return this.context.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"actionAttribute\", {\n get: function get() {\n return this.schema.actionAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"schema\", {\n get: function get() {\n return this.context.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.bindingsByAction.values());\n },\n enumerable: true,\n configurable: true\n });\n\n BindingObserver.prototype.connectAction = function (action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n };\n\n BindingObserver.prototype.disconnectAction = function (action) {\n var binding = this.bindingsByAction.get(action);\n\n if (binding) {\n this.bindingsByAction.delete(action);\n this.delegate.bindingDisconnected(binding);\n }\n };\n\n BindingObserver.prototype.disconnectAllActions = function () {\n var _this = this;\n\n this.bindings.forEach(function (binding) {\n return _this.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n }; // Value observer delegate\n\n\n BindingObserver.prototype.parseValueForToken = function (token) {\n var action = Action.forToken(token);\n\n if (action.identifier == this.identifier) {\n return action;\n }\n };\n\n BindingObserver.prototype.elementMatchedValue = function (element, action) {\n this.connectAction(action);\n };\n\n BindingObserver.prototype.elementUnmatchedValue = function (element, action) {\n this.disconnectAction(action);\n };\n\n return BindingObserver;\n}();\n\nexport { BindingObserver };","import { BindingObserver } from \"./binding_observer\";\n\nvar Context =\n/** @class */\nfunction () {\n function Context(module, scope) {\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n\n try {\n this.controller.initialize();\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n\n Context.prototype.connect = function () {\n this.bindingObserver.start();\n\n try {\n this.controller.connect();\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n };\n\n Context.prototype.disconnect = function () {\n try {\n this.controller.disconnect();\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n\n this.bindingObserver.stop();\n };\n\n Object.defineProperty(Context.prototype, \"application\", {\n get: function get() {\n return this.module.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"identifier\", {\n get: function get() {\n return this.module.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"dispatcher\", {\n get: function get() {\n return this.application.dispatcher;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"parentElement\", {\n get: function get() {\n return this.element.parentElement;\n },\n enumerable: true,\n configurable: true\n }); // Error handling\n\n Context.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element;\n\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n return Context;\n}();\n\nexport { Context };","var __extends = this && this.__extends || function () {\n var 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 (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\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/** @hidden */\n\n\nexport function blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: blessControllerConstructor(definition.controllerConstructor)\n };\n}\n\nfunction blessControllerConstructor(controllerConstructor) {\n var constructor = extend(controllerConstructor);\n constructor.bless();\n return constructor;\n}\n\nvar extend = function () {\n function extendWithReflect(constructor) {\n function Controller() {\n var _newTarget = this && this instanceof Controller ? this.constructor : void 0;\n\n return Reflect.construct(constructor, arguments, _newTarget);\n }\n\n Controller.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: Controller\n }\n });\n Reflect.setPrototypeOf(Controller, constructor);\n return Controller;\n }\n\n function testReflectExtension() {\n var a = function a() {\n this.a.call(this);\n };\n\n var b = extendWithReflect(a);\n\n b.prototype.a = function () {};\n\n return new b();\n }\n\n try {\n testReflectExtension();\n return extendWithReflect;\n } catch (error) {\n return function (constructor) {\n return (\n /** @class */\n function (_super) {\n __extends(Controller, _super);\n\n function Controller() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return Controller;\n }(constructor)\n );\n };\n }\n}();","import { Context } from \"./context\";\nimport { blessDefinition } from \"./definition\";\n\nvar Module =\n/** @class */\nfunction () {\n function Module(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n\n Object.defineProperty(Module.prototype, \"identifier\", {\n get: function get() {\n return this.definition.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"controllerConstructor\", {\n get: function get() {\n return this.definition.controllerConstructor;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"contexts\", {\n get: function get() {\n return Array.from(this.connectedContexts);\n },\n enumerable: true,\n configurable: true\n });\n\n Module.prototype.connectContextForScope = function (scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n };\n\n Module.prototype.disconnectContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n };\n\n Module.prototype.fetchContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n\n return context;\n };\n\n return Module;\n}();\n\nexport { Module };","var DataMap =\n/** @class */\nfunction () {\n function DataMap(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(DataMap.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DataMap.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n\n DataMap.prototype.get = function (key) {\n key = this.getFormattedKey(key);\n return this.element.getAttribute(key);\n };\n\n DataMap.prototype.set = function (key, value) {\n key = this.getFormattedKey(key);\n this.element.setAttribute(key, value);\n return this.get(key);\n };\n\n DataMap.prototype.has = function (key) {\n key = this.getFormattedKey(key);\n return this.element.hasAttribute(key);\n };\n\n DataMap.prototype.delete = function (key) {\n if (this.has(key)) {\n key = this.getFormattedKey(key);\n this.element.removeAttribute(key);\n return true;\n } else {\n return false;\n }\n };\n\n DataMap.prototype.getFormattedKey = function (key) {\n return \"data-\" + this.identifier + \"-\" + dasherize(key);\n };\n\n return DataMap;\n}();\n\nexport { DataMap };\n\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, char) {\n return \"-\" + char.toLowerCase();\n });\n}","/** @hidden */\nexport function attributeValueContainsToken(attributeName, token) {\n return \"[\" + attributeName + \"~=\\\"\" + token + \"\\\"]\";\n}","import { attributeValueContainsToken } from \"./selectors\";\n\nvar TargetSet =\n/** @class */\nfunction () {\n function TargetSet(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(TargetSet.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"schema\", {\n get: function get() {\n return this.scope.schema;\n },\n enumerable: true,\n configurable: true\n });\n\n TargetSet.prototype.has = function (targetName) {\n return this.find(targetName) != null;\n };\n\n TargetSet.prototype.find = function () {\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findElement(selector);\n };\n\n TargetSet.prototype.findAll = function () {\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findAllElements(selector);\n };\n\n TargetSet.prototype.getSelectorForTargetNames = function (targetNames) {\n var _this = this;\n\n return targetNames.map(function (targetName) {\n return _this.getSelectorForTargetName(targetName);\n }).join(\", \");\n };\n\n TargetSet.prototype.getSelectorForTargetName = function (targetName) {\n var targetDescriptor = this.identifier + \".\" + targetName;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n };\n\n return TargetSet;\n}();\n\nexport { TargetSet };","import { DataMap } from \"./data_map\";\nimport { TargetSet } from \"./target_set\";\nimport { attributeValueContainsToken } from \"./selectors\";\n\nvar Scope =\n/** @class */\nfunction () {\n function Scope(schema, identifier, element) {\n this.schema = schema;\n this.identifier = identifier;\n this.element = element;\n this.targets = new TargetSet(this);\n this.data = new DataMap(this);\n }\n\n Scope.prototype.findElement = function (selector) {\n return this.findAllElements(selector)[0];\n };\n\n Scope.prototype.findAllElements = function (selector) {\n var head = this.element.matches(selector) ? [this.element] : [];\n var tail = this.filterElements(Array.from(this.element.querySelectorAll(selector)));\n return head.concat(tail);\n };\n\n Scope.prototype.filterElements = function (elements) {\n var _this = this;\n\n return elements.filter(function (element) {\n return _this.containsElement(element);\n });\n };\n\n Scope.prototype.containsElement = function (element) {\n return element.closest(this.controllerSelector) === this.element;\n };\n\n Object.defineProperty(Scope.prototype, \"controllerSelector\", {\n get: function get() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n },\n enumerable: true,\n configurable: true\n });\n return Scope;\n}();\n\nexport { Scope };","import { Scope } from \"./scope\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar ScopeObserver =\n/** @class */\nfunction () {\n function ScopeObserver(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n\n ScopeObserver.prototype.start = function () {\n this.valueListObserver.start();\n };\n\n ScopeObserver.prototype.stop = function () {\n this.valueListObserver.stop();\n };\n\n Object.defineProperty(ScopeObserver.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: true,\n configurable: true\n }); // Value observer delegate\n\n /** @hidden */\n\n ScopeObserver.prototype.parseValueForToken = function (token) {\n var element = token.element,\n identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var scope = scopesByIdentifier.get(identifier);\n\n if (!scope) {\n scope = new Scope(this.schema, identifier, element);\n scopesByIdentifier.set(identifier, scope);\n }\n\n return scope;\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementMatchedValue = function (element, value) {\n var referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementUnmatchedValue = function (element, value) {\n var referenceCount = this.scopeReferenceCounts.get(value);\n\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n };\n\n ScopeObserver.prototype.fetchScopesByIdentifierForElement = function (element) {\n var scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n\n return scopesByIdentifier;\n };\n\n return ScopeObserver;\n}();\n\nexport { ScopeObserver };","import { Module } from \"./module\";\nimport { Multimap } from \"@stimulus/multimap\";\nimport { ScopeObserver } from \"./scope_observer\";\n\nvar Router =\n/** @class */\nfunction () {\n function Router(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n\n Object.defineProperty(Router.prototype, \"element\", {\n get: function get() {\n return this.application.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"modules\", {\n get: function get() {\n return Array.from(this.modulesByIdentifier.values());\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"contexts\", {\n get: function get() {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n },\n enumerable: true,\n configurable: true\n });\n\n Router.prototype.start = function () {\n this.scopeObserver.start();\n };\n\n Router.prototype.stop = function () {\n this.scopeObserver.stop();\n };\n\n Router.prototype.loadDefinition = function (definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n };\n\n Router.prototype.unloadIdentifier = function (identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n this.disconnectModule(module);\n }\n };\n\n Router.prototype.getContextForElementAndIdentifier = function (element, identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n return module.contexts.find(function (context) {\n return context.element == element;\n });\n }\n }; // Error handler delegate\n\n /** @hidden */\n\n\n Router.prototype.handleError = function (error, message, detail) {\n this.application.handleError(error, message, detail);\n }; // Scope observer delegate\n\n /** @hidden */\n\n\n Router.prototype.scopeConnected = function (scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.connectContextForScope(scope);\n }\n };\n /** @hidden */\n\n\n Router.prototype.scopeDisconnected = function (scope) {\n this.scopesByIdentifier.delete(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }; // Modules\n\n\n Router.prototype.connectModule = function (module) {\n this.modulesByIdentifier.set(module.identifier, module);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.connectContextForScope(scope);\n });\n };\n\n Router.prototype.disconnectModule = function (module) {\n this.modulesByIdentifier.delete(module.identifier);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.disconnectContextForScope(scope);\n });\n };\n\n return Router;\n}();\n\nexport { Router };","export var defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\"\n};","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : new P(function (resolve) {\n resolve(result.value);\n }).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [0, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nimport { Dispatcher } from \"./dispatcher\";\nimport { Router } from \"./router\";\nimport { defaultSchema } from \"./schema\";\n\nvar Application =\n/** @class */\nfunction () {\n function Application(element, schema) {\n if (element === void 0) {\n element = document.documentElement;\n }\n\n if (schema === void 0) {\n schema = defaultSchema;\n }\n\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n\n Application.start = function (element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n };\n\n Application.prototype.start = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , domReady()];\n\n case 1:\n _a.sent();\n\n this.router.start();\n this.dispatcher.start();\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Application.prototype.stop = function () {\n this.router.stop();\n this.dispatcher.stop();\n };\n\n Application.prototype.register = function (identifier, controllerConstructor) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n };\n\n Application.prototype.load = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var definitions = Array.isArray(head) ? head : [head].concat(rest);\n definitions.forEach(function (definition) {\n return _this.router.loadDefinition(definition);\n });\n };\n\n Application.prototype.unload = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var identifiers = Array.isArray(head) ? head : [head].concat(rest);\n identifiers.forEach(function (identifier) {\n return _this.router.unloadIdentifier(identifier);\n });\n };\n\n Object.defineProperty(Application.prototype, \"controllers\", {\n // Controllers\n get: function get() {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n },\n enumerable: true,\n configurable: true\n });\n\n Application.prototype.getControllerForElementAndIdentifier = function (element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }; // Error handling\n\n\n Application.prototype.handleError = function (error, message, detail) {\n console.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n };\n\n return Application;\n}();\n\nexport { Application };\n\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", resolve);\n } else {\n resolve();\n }\n });\n}","/** @hidden */\nexport function defineTargetProperties(constructor) {\n var prototype = constructor.prototype;\n var targetNames = getTargetNamesForConstructor(constructor);\n targetNames.forEach(function (name) {\n var _a;\n\n return defineLinkedProperties(prototype, (_a = {}, _a[name + \"Target\"] = {\n get: function get() {\n var target = this.targets.find(name);\n\n if (target) {\n return target;\n } else {\n throw new Error(\"Missing target element \\\"\" + this.identifier + \".\" + name + \"\\\"\");\n }\n }\n }, _a[name + \"Targets\"] = {\n get: function get() {\n return this.targets.findAll(name);\n }\n }, _a[\"has\" + capitalize(name) + \"Target\"] = {\n get: function get() {\n return this.targets.has(name);\n }\n }, _a));\n });\n}\n\nfunction getTargetNamesForConstructor(constructor) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (targetNames, constructor) {\n getOwnTargetNamesForConstructor(constructor).forEach(function (name) {\n return targetNames.add(name);\n });\n return targetNames;\n }, new Set()));\n}\n\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n\n return ancestors;\n}\n\nfunction getOwnTargetNamesForConstructor(constructor) {\n var definition = constructor[\"targets\"];\n return Array.isArray(definition) ? definition : [];\n}\n\nfunction defineLinkedProperties(object, properties) {\n Object.keys(properties).forEach(function (name) {\n if (!(name in object)) {\n var descriptor = properties[name];\n Object.defineProperty(object, name, descriptor);\n }\n });\n}\n\nfunction capitalize(name) {\n return name.charAt(0).toUpperCase() + name.slice(1);\n}","import { defineTargetProperties } from \"./target_properties\";\n\nvar Controller =\n/** @class */\nfunction () {\n function Controller(context) {\n this.context = context;\n }\n\n Controller.bless = function () {\n defineTargetProperties(this);\n };\n\n Object.defineProperty(Controller.prototype, \"application\", {\n get: function get() {\n return this.context.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"targets\", {\n get: function get() {\n return this.scope.targets;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"data\", {\n get: function get() {\n return this.scope.data;\n },\n enumerable: true,\n configurable: true\n });\n\n Controller.prototype.initialize = function () {// Override in your subclass to set up initial controller state\n };\n\n Controller.prototype.connect = function () {// Override in your subclass to respond when the controller is connected to the DOM\n };\n\n Controller.prototype.disconnect = function () {// Override in your subclass to respond when the controller is disconnected from the DOM\n };\n\n Controller.targets = [];\n return Controller;\n}();\n\nexport { Controller };","'use strict';\n\nvar emitter = require('contra/emitter');\n\nvar crossvent = require('crossvent');\n\nvar classes = require('./classes');\n\nvar doc = document;\nvar documentElement = doc.documentElement;\n\nfunction dragula(initialContainers, options) {\n var len = arguments.length;\n\n if (len === 1 && Array.isArray(initialContainers) === false) {\n options = initialContainers;\n initialContainers = [];\n }\n\n var _mirror; // mirror image\n\n\n var _source; // source container\n\n\n var _item; // item being dragged\n\n\n var _offsetX; // reference x\n\n\n var _offsetY; // reference y\n\n\n var _moveX; // reference move x\n\n\n var _moveY; // reference move y\n\n\n var _initialSibling; // reference sibling when grabbed\n\n\n var _currentSibling; // reference sibling now\n\n\n var _copy; // item used for copying\n\n\n var _renderTimer; // timer for setTimeout renderMirrorImage\n\n\n var _lastDropTarget = null; // last container item was over\n\n var _grabbed; // holds mousedown context until first mousemove\n\n\n var o = options || {};\n\n if (o.moves === void 0) {\n o.moves = always;\n }\n\n if (o.accepts === void 0) {\n o.accepts = always;\n }\n\n if (o.invalid === void 0) {\n o.invalid = invalidTarget;\n }\n\n if (o.containers === void 0) {\n o.containers = initialContainers || [];\n }\n\n if (o.isContainer === void 0) {\n o.isContainer = never;\n }\n\n if (o.copy === void 0) {\n o.copy = false;\n }\n\n if (o.copySortSource === void 0) {\n o.copySortSource = false;\n }\n\n if (o.revertOnSpill === void 0) {\n o.revertOnSpill = false;\n }\n\n if (o.removeOnSpill === void 0) {\n o.removeOnSpill = false;\n }\n\n if (o.direction === void 0) {\n o.direction = 'vertical';\n }\n\n if (o.ignoreInputTextSelection === void 0) {\n o.ignoreInputTextSelection = true;\n }\n\n if (o.mirrorContainer === void 0) {\n o.mirrorContainer = doc.body;\n }\n\n var drake = emitter({\n containers: o.containers,\n start: manualStart,\n end: end,\n cancel: cancel,\n remove: remove,\n destroy: destroy,\n canMove: canMove,\n dragging: false\n });\n\n if (o.removeOnSpill === true) {\n drake.on('over', spillOver).on('out', spillOut);\n }\n\n events();\n return drake;\n\n function isContainer(el) {\n return drake.containers.indexOf(el) !== -1 || o.isContainer(el);\n }\n\n function events(remove) {\n var op = remove ? 'remove' : 'add';\n touchy(documentElement, op, 'mousedown', grab);\n touchy(documentElement, op, 'mouseup', release);\n }\n\n function eventualMovements(remove) {\n var op = remove ? 'remove' : 'add';\n touchy(documentElement, op, 'mousemove', startBecauseMouseMoved);\n }\n\n function movements(remove) {\n var op = remove ? 'remove' : 'add';\n crossvent[op](documentElement, 'selectstart', preventGrabbed); // IE8\n\n crossvent[op](documentElement, 'click', preventGrabbed);\n }\n\n function destroy() {\n events(true);\n release({});\n }\n\n function preventGrabbed(e) {\n if (_grabbed) {\n e.preventDefault();\n }\n }\n\n function grab(e) {\n _moveX = e.clientX;\n _moveY = e.clientY;\n var ignore = whichMouseButton(e) !== 1 || e.metaKey || e.ctrlKey;\n\n if (ignore) {\n return; // we only care about honest-to-god left clicks and touch events\n }\n\n var item = e.target;\n var context = canStart(item);\n\n if (!context) {\n return;\n }\n\n _grabbed = context;\n eventualMovements();\n\n if (e.type === 'mousedown') {\n if (isInput(item)) {\n // see also: https://github.com/bevacqua/dragula/issues/208\n item.focus(); // fixes https://github.com/bevacqua/dragula/issues/176\n } else {\n e.preventDefault(); // fixes https://github.com/bevacqua/dragula/issues/155\n }\n }\n }\n\n function startBecauseMouseMoved(e) {\n if (!_grabbed) {\n return;\n }\n\n if (whichMouseButton(e) === 0) {\n release({});\n return; // when text is selected on an input and then dragged, mouseup doesn't fire. this is our only hope\n } // truthy check fixes #239, equality fixes #207, fixes #501\n\n\n if (e.clientX !== void 0 && Math.abs(e.clientX - _moveX) <= (o.slideFactorX || 0) && e.clientY !== void 0 && Math.abs(e.clientY - _moveY) <= (o.slideFactorY || 0)) {\n return;\n }\n\n if (o.ignoreInputTextSelection) {\n var clientX = getCoord('clientX', e) || 0;\n var clientY = getCoord('clientY', e) || 0;\n var elementBehindCursor = doc.elementFromPoint(clientX, clientY);\n\n if (isInput(elementBehindCursor)) {\n return;\n }\n }\n\n var grabbed = _grabbed; // call to end() unsets _grabbed\n\n eventualMovements(true);\n movements();\n end();\n start(grabbed);\n var offset = getOffset(_item);\n _offsetX = getCoord('pageX', e) - offset.left;\n _offsetY = getCoord('pageY', e) - offset.top;\n classes.add(_copy || _item, 'gu-transit');\n renderMirrorImage();\n drag(e);\n }\n\n function canStart(item) {\n if (drake.dragging && _mirror) {\n return;\n }\n\n if (isContainer(item)) {\n return; // don't drag container itself\n }\n\n var handle = item;\n\n while (getParent(item) && isContainer(getParent(item)) === false) {\n if (o.invalid(item, handle)) {\n return;\n }\n\n item = getParent(item); // drag target should be a top element\n\n if (!item) {\n return;\n }\n }\n\n var source = getParent(item);\n\n if (!source) {\n return;\n }\n\n if (o.invalid(item, handle)) {\n return;\n }\n\n var movable = o.moves(item, source, handle, nextEl(item));\n\n if (!movable) {\n return;\n }\n\n return {\n item: item,\n source: source\n };\n }\n\n function canMove(item) {\n return !!canStart(item);\n }\n\n function manualStart(item) {\n var context = canStart(item);\n\n if (context) {\n start(context);\n }\n }\n\n function start(context) {\n if (isCopy(context.item, context.source)) {\n _copy = context.item.cloneNode(true);\n drake.emit('cloned', _copy, context.item, 'copy');\n }\n\n _source = context.source;\n _item = context.item;\n _initialSibling = _currentSibling = nextEl(context.item);\n drake.dragging = true;\n drake.emit('drag', _item, _source);\n }\n\n function invalidTarget() {\n return false;\n }\n\n function end() {\n if (!drake.dragging) {\n return;\n }\n\n var item = _copy || _item;\n drop(item, getParent(item));\n }\n\n function ungrab() {\n _grabbed = false;\n eventualMovements(true);\n movements(true);\n }\n\n function release(e) {\n ungrab();\n\n if (!drake.dragging) {\n return;\n }\n\n var item = _copy || _item;\n var clientX = getCoord('clientX', e) || 0;\n var clientY = getCoord('clientY', e) || 0;\n var elementBehindCursor = getElementBehindPoint(_mirror, clientX, clientY);\n var dropTarget = findDropTarget(elementBehindCursor, clientX, clientY);\n\n if (dropTarget && (_copy && o.copySortSource || !_copy || dropTarget !== _source)) {\n drop(item, dropTarget);\n } else if (o.removeOnSpill) {\n remove();\n } else {\n cancel();\n }\n }\n\n function drop(item, target) {\n var parent = getParent(item);\n\n if (_copy && o.copySortSource && target === _source) {\n parent.removeChild(_item);\n }\n\n if (isInitialPlacement(target)) {\n drake.emit('cancel', item, _source, _source);\n } else {\n drake.emit('drop', item, target, _source, _currentSibling);\n }\n\n cleanup();\n }\n\n function remove() {\n if (!drake.dragging) {\n return;\n }\n\n var item = _copy || _item;\n var parent = getParent(item);\n\n if (parent) {\n parent.removeChild(item);\n }\n\n drake.emit(_copy ? 'cancel' : 'remove', item, parent, _source);\n cleanup();\n }\n\n function cancel(revert) {\n if (!drake.dragging) {\n return;\n }\n\n var reverts = arguments.length > 0 ? revert : o.revertOnSpill;\n var item = _copy || _item;\n var parent = getParent(item);\n var initial = isInitialPlacement(parent);\n\n if (initial === false && reverts) {\n if (_copy) {\n if (parent) {\n parent.removeChild(_copy);\n }\n } else {\n _source.insertBefore(item, _initialSibling);\n }\n }\n\n if (initial || reverts) {\n drake.emit('cancel', item, _source, _source);\n } else {\n drake.emit('drop', item, parent, _source, _currentSibling);\n }\n\n cleanup();\n }\n\n function cleanup() {\n var item = _copy || _item;\n ungrab();\n removeMirrorImage();\n\n if (item) {\n classes.rm(item, 'gu-transit');\n }\n\n if (_renderTimer) {\n clearTimeout(_renderTimer);\n }\n\n drake.dragging = false;\n\n if (_lastDropTarget) {\n drake.emit('out', item, _lastDropTarget, _source);\n }\n\n drake.emit('dragend', item);\n _source = _item = _copy = _initialSibling = _currentSibling = _renderTimer = _lastDropTarget = null;\n }\n\n function isInitialPlacement(target, s) {\n var sibling;\n\n if (s !== void 0) {\n sibling = s;\n } else if (_mirror) {\n sibling = _currentSibling;\n } else {\n sibling = nextEl(_copy || _item);\n }\n\n return target === _source && sibling === _initialSibling;\n }\n\n function findDropTarget(elementBehindCursor, clientX, clientY) {\n var target = elementBehindCursor;\n\n while (target && !accepted()) {\n target = getParent(target);\n }\n\n return target;\n\n function accepted() {\n var droppable = isContainer(target);\n\n if (droppable === false) {\n return false;\n }\n\n var immediate = getImmediateChild(target, elementBehindCursor);\n var reference = getReference(target, immediate, clientX, clientY);\n var initial = isInitialPlacement(target, reference);\n\n if (initial) {\n return true; // should always be able to drop it right back where it was\n }\n\n return o.accepts(_item, target, _source, reference);\n }\n }\n\n function drag(e) {\n if (!_mirror) {\n return;\n }\n\n e.preventDefault();\n var clientX = getCoord('clientX', e) || 0;\n var clientY = getCoord('clientY', e) || 0;\n var x = clientX - _offsetX;\n var y = clientY - _offsetY;\n _mirror.style.left = x + 'px';\n _mirror.style.top = y + 'px';\n var item = _copy || _item;\n var elementBehindCursor = getElementBehindPoint(_mirror, clientX, clientY);\n var dropTarget = findDropTarget(elementBehindCursor, clientX, clientY);\n var changed = dropTarget !== null && dropTarget !== _lastDropTarget;\n\n if (changed || dropTarget === null) {\n out();\n _lastDropTarget = dropTarget;\n over();\n }\n\n var parent = getParent(item);\n\n if (dropTarget === _source && _copy && !o.copySortSource) {\n if (parent) {\n parent.removeChild(item);\n }\n\n return;\n }\n\n var reference;\n var immediate = getImmediateChild(dropTarget, elementBehindCursor);\n\n if (immediate !== null) {\n reference = getReference(dropTarget, immediate, clientX, clientY);\n } else if (o.revertOnSpill === true && !_copy) {\n reference = _initialSibling;\n dropTarget = _source;\n } else {\n if (_copy && parent) {\n parent.removeChild(item);\n }\n\n return;\n }\n\n if (reference === null && changed || reference !== item && reference !== nextEl(item)) {\n _currentSibling = reference;\n dropTarget.insertBefore(item, reference);\n drake.emit('shadow', item, dropTarget, _source);\n }\n\n function moved(type) {\n drake.emit(type, item, _lastDropTarget, _source);\n }\n\n function over() {\n if (changed) {\n moved('over');\n }\n }\n\n function out() {\n if (_lastDropTarget) {\n moved('out');\n }\n }\n }\n\n function spillOver(el) {\n classes.rm(el, 'gu-hide');\n }\n\n function spillOut(el) {\n if (drake.dragging) {\n classes.add(el, 'gu-hide');\n }\n }\n\n function renderMirrorImage() {\n if (_mirror) {\n return;\n }\n\n var rect = _item.getBoundingClientRect();\n\n _mirror = _item.cloneNode(true);\n _mirror.style.width = getRectWidth(rect) + 'px';\n _mirror.style.height = getRectHeight(rect) + 'px';\n classes.rm(_mirror, 'gu-transit');\n classes.add(_mirror, 'gu-mirror');\n o.mirrorContainer.appendChild(_mirror);\n touchy(documentElement, 'add', 'mousemove', drag);\n classes.add(o.mirrorContainer, 'gu-unselectable');\n drake.emit('cloned', _mirror, _item, 'mirror');\n }\n\n function removeMirrorImage() {\n if (_mirror) {\n classes.rm(o.mirrorContainer, 'gu-unselectable');\n touchy(documentElement, 'remove', 'mousemove', drag);\n getParent(_mirror).removeChild(_mirror);\n _mirror = null;\n }\n }\n\n function getImmediateChild(dropTarget, target) {\n var immediate = target;\n\n while (immediate !== dropTarget && getParent(immediate) !== dropTarget) {\n immediate = getParent(immediate);\n }\n\n if (immediate === documentElement) {\n return null;\n }\n\n return immediate;\n }\n\n function getReference(dropTarget, target, x, y) {\n var horizontal = o.direction === 'horizontal';\n var reference = target !== dropTarget ? inside() : outside();\n return reference;\n\n function outside() {\n // slower, but able to figure out any position\n var len = dropTarget.children.length;\n var i;\n var el;\n var rect;\n\n for (i = 0; i < len; i++) {\n el = dropTarget.children[i];\n rect = el.getBoundingClientRect();\n\n if (horizontal && rect.left + rect.width / 2 > x) {\n return el;\n }\n\n if (!horizontal && rect.top + rect.height / 2 > y) {\n return el;\n }\n }\n\n return null;\n }\n\n function inside() {\n // faster, but only available if dropped inside a child element\n var rect = target.getBoundingClientRect();\n\n if (horizontal) {\n return resolve(x > rect.left + getRectWidth(rect) / 2);\n }\n\n return resolve(y > rect.top + getRectHeight(rect) / 2);\n }\n\n function resolve(after) {\n return after ? nextEl(target) : target;\n }\n }\n\n function isCopy(item, container) {\n return typeof o.copy === 'boolean' ? o.copy : o.copy(item, container);\n }\n}\n\nfunction touchy(el, op, type, fn) {\n var touch = {\n mouseup: 'touchend',\n mousedown: 'touchstart',\n mousemove: 'touchmove'\n };\n var pointers = {\n mouseup: 'pointerup',\n mousedown: 'pointerdown',\n mousemove: 'pointermove'\n };\n var microsoft = {\n mouseup: 'MSPointerUp',\n mousedown: 'MSPointerDown',\n mousemove: 'MSPointerMove'\n };\n\n if (global.navigator.pointerEnabled) {\n crossvent[op](el, pointers[type], fn);\n } else if (global.navigator.msPointerEnabled) {\n crossvent[op](el, microsoft[type], fn);\n } else {\n crossvent[op](el, touch[type], fn);\n crossvent[op](el, type, fn);\n }\n}\n\nfunction whichMouseButton(e) {\n if (e.touches !== void 0) {\n return e.touches.length;\n }\n\n if (e.which !== void 0 && e.which !== 0) {\n return e.which;\n } // see https://github.com/bevacqua/dragula/issues/261\n\n\n if (e.buttons !== void 0) {\n return e.buttons;\n }\n\n var button = e.button;\n\n if (button !== void 0) {\n // see https://github.com/jquery/jquery/blob/99e8ff1baa7ae341e94bb89c3e84570c7c3ad9ea/src/event.js#L573-L575\n return button & 1 ? 1 : button & 2 ? 3 : button & 4 ? 2 : 0;\n }\n}\n\nfunction getOffset(el) {\n var rect = el.getBoundingClientRect();\n return {\n left: rect.left + getScroll('scrollLeft', 'pageXOffset'),\n top: rect.top + getScroll('scrollTop', 'pageYOffset')\n };\n}\n\nfunction getScroll(scrollProp, offsetProp) {\n if (typeof global[offsetProp] !== 'undefined') {\n return global[offsetProp];\n }\n\n if (documentElement.clientHeight) {\n return documentElement[scrollProp];\n }\n\n return doc.body[scrollProp];\n}\n\nfunction getElementBehindPoint(point, x, y) {\n point = point || {};\n var state = point.className || '';\n var el;\n point.className += ' gu-hide';\n el = doc.elementFromPoint(x, y);\n point.className = state;\n return el;\n}\n\nfunction never() {\n return false;\n}\n\nfunction always() {\n return true;\n}\n\nfunction getRectWidth(rect) {\n return rect.width || rect.right - rect.left;\n}\n\nfunction getRectHeight(rect) {\n return rect.height || rect.bottom - rect.top;\n}\n\nfunction getParent(el) {\n return el.parentNode === doc ? null : el.parentNode;\n}\n\nfunction isInput(el) {\n return el.tagName === 'INPUT' || el.tagName === 'TEXTAREA' || el.tagName === 'SELECT' || isEditable(el);\n}\n\nfunction isEditable(el) {\n if (!el) {\n return false;\n } // no parents were editable\n\n\n if (el.contentEditable === 'false') {\n return false;\n } // stop the lookup\n\n\n if (el.contentEditable === 'true') {\n return true;\n } // found a contentEditable element in the chain\n\n\n return isEditable(getParent(el)); // contentEditable is set to 'inherit'\n}\n\nfunction nextEl(el) {\n return el.nextElementSibling || manually();\n\n function manually() {\n var sibling = el;\n\n do {\n sibling = sibling.nextSibling;\n } while (sibling && sibling.nodeType !== 1);\n\n return sibling;\n }\n}\n\nfunction getEventHost(e) {\n // on touchend event, we have to use `e.changedTouches`\n // see http://stackoverflow.com/questions/7192563/touchend-event-properties\n // see https://github.com/bevacqua/dragula/issues/34\n if (e.targetTouches && e.targetTouches.length) {\n return e.targetTouches[0];\n }\n\n if (e.changedTouches && e.changedTouches.length) {\n return e.changedTouches[0];\n }\n\n return e;\n}\n\nfunction getCoord(coord, e) {\n var host = getEventHost(e);\n var missMap = {\n pageX: 'clientX',\n // IE8\n pageY: 'clientY' // IE8\n\n };\n\n if (coord in missMap && !(coord in host) && missMap[coord] in host) {\n coord = missMap[coord];\n }\n\n return host[coord];\n}\n\nmodule.exports = dragula;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n// Utility functions\nvar PREFIXES = 'Webkit Moz O ms'.split(' ');\nvar FLOAT_COMPARISON_EPSILON = 0.001; // Copy all attributes from source object to destination object.\n// destination object is mutated.\n\nfunction extend(destination, source, recursive) {\n destination = destination || {};\n source = source || {};\n recursive = recursive || false;\n\n for (var attrName in source) {\n if (source.hasOwnProperty(attrName)) {\n var destVal = destination[attrName];\n var sourceVal = source[attrName];\n\n if (recursive && isObject(destVal) && isObject(sourceVal)) {\n destination[attrName] = extend(destVal, sourceVal, recursive);\n } else {\n destination[attrName] = sourceVal;\n }\n }\n }\n\n return destination;\n} // Renders templates with given variables. Variables must be surrounded with\n// braces without any spaces, e.g. {variable}\n// All instances of variable placeholders will be replaced with given content\n// Example:\n// render('Hello, {message}!', {message: 'world'})\n\n\nfunction render(template, vars) {\n var rendered = template;\n\n for (var key in vars) {\n if (vars.hasOwnProperty(key)) {\n var val = vars[key];\n var regExpString = '\\\\{' + key + '\\\\}';\n var regExp = new RegExp(regExpString, 'g');\n rendered = rendered.replace(regExp, val);\n }\n }\n\n return rendered;\n}\n\nfunction setStyle(element, style, value) {\n var elStyle = element.style; // cache for performance\n\n for (var i = 0; i < PREFIXES.length; ++i) {\n var prefix = PREFIXES[i];\n elStyle[prefix + capitalize(style)] = value;\n }\n\n elStyle[style] = value;\n}\n\nfunction setStyles(element, styles) {\n forEachObject(styles, function (styleValue, styleName) {\n // Allow disabling some individual styles by setting them\n // to null or undefined\n if (styleValue === null || styleValue === undefined) {\n return;\n } // If style's value is {prefix: true, value: '50%'},\n // Set also browser prefixed styles\n\n\n if (isObject(styleValue) && styleValue.prefix === true) {\n setStyle(element, styleName, styleValue.value);\n } else {\n element.style[styleName] = styleValue;\n }\n });\n}\n\nfunction capitalize(text) {\n return text.charAt(0).toUpperCase() + text.slice(1);\n}\n\nfunction isString(obj) {\n return typeof obj === 'string' || obj instanceof String;\n}\n\nfunction isFunction(obj) {\n return typeof obj === 'function';\n}\n\nfunction isArray(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n} // Returns true if `obj` is object as in {a: 1, b: 2}, not if it's function or\n// array\n\n\nfunction isObject(obj) {\n if (isArray(obj)) {\n return false;\n }\n\n var type = _typeof(obj);\n\n return type === 'object' && !!obj;\n}\n\nfunction forEachObject(object, callback) {\n for (var key in object) {\n if (object.hasOwnProperty(key)) {\n var val = object[key];\n callback(val, key);\n }\n }\n}\n\nfunction floatEquals(a, b) {\n return Math.abs(a - b) < FLOAT_COMPARISON_EPSILON;\n} // https://coderwall.com/p/nygghw/don-t-use-innerhtml-to-empty-dom-elements\n\n\nfunction removeChildren(el) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n}\n\nmodule.exports = {\n extend: extend,\n render: render,\n setStyle: setStyle,\n setStyles: setStyles,\n capitalize: capitalize,\n isString: isString,\n isFunction: isFunction,\n isObject: isObject,\n forEachObject: forEachObject,\n floatEquals: floatEquals,\n removeChildren: removeChildren\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _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);","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import { isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nexport default function getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n var offsetHeight = element.offsetHeight;\n var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name; // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","// Base object for different progress bar shapes\nvar Path = require('./path');\n\nvar utils = require('./utils');\n\nvar DESTROYED_ERROR = 'Object is destroyed';\n\nvar Shape = function Shape(container, opts) {\n // Throw a better error if progress bars are not initialized with `new`\n // keyword\n if (!(this instanceof Shape)) {\n throw new Error('Constructor was called without new keyword');\n } // Prevent calling constructor without parameters so inheritance\n // works correctly. To understand, this is how Shape is inherited:\n //\n // Line.prototype = new Shape();\n //\n // We just want to set the prototype for Line.\n\n\n if (arguments.length === 0) {\n return;\n } // Default parameters for progress bar creation\n\n\n this._opts = utils.extend({\n color: '#555',\n strokeWidth: 1.0,\n trailColor: null,\n trailWidth: null,\n fill: null,\n text: {\n style: {\n color: null,\n position: 'absolute',\n left: '50%',\n top: '50%',\n padding: 0,\n margin: 0,\n transform: {\n prefix: true,\n value: 'translate(-50%, -50%)'\n }\n },\n autoStyleContainer: true,\n alignToBottom: true,\n value: null,\n className: 'progressbar-text'\n },\n svgStyle: {\n display: 'block',\n width: '100%'\n },\n warnings: false\n }, opts, true); // Use recursive extend\n // If user specifies e.g. svgStyle or text style, the whole object\n // should replace the defaults to make working with styles easier\n\n if (utils.isObject(opts) && opts.svgStyle !== undefined) {\n this._opts.svgStyle = opts.svgStyle;\n }\n\n if (utils.isObject(opts) && utils.isObject(opts.text) && opts.text.style !== undefined) {\n this._opts.text.style = opts.text.style;\n }\n\n var svgView = this._createSvgView(this._opts);\n\n var element;\n\n if (utils.isString(container)) {\n element = document.querySelector(container);\n } else {\n element = container;\n }\n\n if (!element) {\n throw new Error('Container does not exist: ' + container);\n }\n\n this._container = element;\n\n this._container.appendChild(svgView.svg);\n\n if (this._opts.warnings) {\n this._warnContainerAspectRatio(this._container);\n }\n\n if (this._opts.svgStyle) {\n utils.setStyles(svgView.svg, this._opts.svgStyle);\n } // Expose public attributes before Path initialization\n\n\n this.svg = svgView.svg;\n this.path = svgView.path;\n this.trail = svgView.trail;\n this.text = null;\n var newOpts = utils.extend({\n attachment: undefined,\n shape: this\n }, this._opts);\n this._progressPath = new Path(svgView.path, newOpts);\n\n if (utils.isObject(this._opts.text) && this._opts.text.value !== null) {\n this.setText(this._opts.text.value);\n }\n};\n\nShape.prototype.animate = function animate(progress, opts, cb) {\n if (this._progressPath === null) {\n throw new Error(DESTROYED_ERROR);\n }\n\n this._progressPath.animate(progress, opts, cb);\n};\n\nShape.prototype.stop = function stop() {\n if (this._progressPath === null) {\n throw new Error(DESTROYED_ERROR);\n } // Don't crash if stop is called inside step function\n\n\n if (this._progressPath === undefined) {\n return;\n }\n\n this._progressPath.stop();\n};\n\nShape.prototype.pause = function pause() {\n if (this._progressPath === null) {\n throw new Error(DESTROYED_ERROR);\n }\n\n if (this._progressPath === undefined) {\n return;\n }\n\n if (!this._progressPath._tweenable) {\n // It seems that we can't pause this\n return;\n }\n\n this._progressPath._tweenable.pause();\n};\n\nShape.prototype.resume = function resume() {\n if (this._progressPath === null) {\n throw new Error(DESTROYED_ERROR);\n }\n\n if (this._progressPath === undefined) {\n return;\n }\n\n if (!this._progressPath._tweenable) {\n // It seems that we can't resume this\n return;\n }\n\n this._progressPath._tweenable.resume();\n};\n\nShape.prototype.destroy = function destroy() {\n if (this._progressPath === null) {\n throw new Error(DESTROYED_ERROR);\n }\n\n this.stop();\n this.svg.parentNode.removeChild(this.svg);\n this.svg = null;\n this.path = null;\n this.trail = null;\n this._progressPath = null;\n\n if (this.text !== null) {\n this.text.parentNode.removeChild(this.text);\n this.text = null;\n }\n};\n\nShape.prototype.set = function set(progress) {\n if (this._progressPath === null) {\n throw new Error(DESTROYED_ERROR);\n }\n\n this._progressPath.set(progress);\n};\n\nShape.prototype.value = function value() {\n if (this._progressPath === null) {\n throw new Error(DESTROYED_ERROR);\n }\n\n if (this._progressPath === undefined) {\n return 0;\n }\n\n return this._progressPath.value();\n};\n\nShape.prototype.setText = function setText(newText) {\n if (this._progressPath === null) {\n throw new Error(DESTROYED_ERROR);\n }\n\n if (this.text === null) {\n // Create new text node\n this.text = this._createTextContainer(this._opts, this._container);\n\n this._container.appendChild(this.text);\n } // Remove previous text and add new\n\n\n if (utils.isObject(newText)) {\n utils.removeChildren(this.text);\n this.text.appendChild(newText);\n } else {\n this.text.innerHTML = newText;\n }\n};\n\nShape.prototype._createSvgView = function _createSvgView(opts) {\n var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n\n this._initializeSvg(svg, opts);\n\n var trailPath = null; // Each option listed in the if condition are 'triggers' for creating\n // the trail path\n\n if (opts.trailColor || opts.trailWidth) {\n trailPath = this._createTrail(opts);\n svg.appendChild(trailPath);\n }\n\n var path = this._createPath(opts);\n\n svg.appendChild(path);\n return {\n svg: svg,\n path: path,\n trail: trailPath\n };\n};\n\nShape.prototype._initializeSvg = function _initializeSvg(svg, opts) {\n svg.setAttribute('viewBox', '0 0 100 100');\n};\n\nShape.prototype._createPath = function _createPath(opts) {\n var pathString = this._pathString(opts);\n\n return this._createPathElement(pathString, opts);\n};\n\nShape.prototype._createTrail = function _createTrail(opts) {\n // Create path string with original passed options\n var pathString = this._trailString(opts); // Prevent modifying original\n\n\n var newOpts = utils.extend({}, opts); // Defaults for parameters which modify trail path\n\n if (!newOpts.trailColor) {\n newOpts.trailColor = '#eee';\n }\n\n if (!newOpts.trailWidth) {\n newOpts.trailWidth = newOpts.strokeWidth;\n }\n\n newOpts.color = newOpts.trailColor;\n newOpts.strokeWidth = newOpts.trailWidth; // When trail path is set, fill must be set for it instead of the\n // actual path to prevent trail stroke from clipping\n\n newOpts.fill = null;\n return this._createPathElement(pathString, newOpts);\n};\n\nShape.prototype._createPathElement = function _createPathElement(pathString, opts) {\n var path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n path.setAttribute('d', pathString);\n path.setAttribute('stroke', opts.color);\n path.setAttribute('stroke-width', opts.strokeWidth);\n\n if (opts.fill) {\n path.setAttribute('fill', opts.fill);\n } else {\n path.setAttribute('fill-opacity', '0');\n }\n\n return path;\n};\n\nShape.prototype._createTextContainer = function _createTextContainer(opts, container) {\n var textContainer = document.createElement('div');\n textContainer.className = opts.text.className;\n var textStyle = opts.text.style;\n\n if (textStyle) {\n if (opts.text.autoStyleContainer) {\n container.style.position = 'relative';\n }\n\n utils.setStyles(textContainer, textStyle); // Default text color to progress bar's color\n\n if (!textStyle.color) {\n textContainer.style.color = opts.color;\n }\n }\n\n this._initializeTextContainer(opts, container, textContainer);\n\n return textContainer;\n}; // Give custom shapes possibility to modify text element\n\n\nShape.prototype._initializeTextContainer = function (opts, container, element) {// By default, no-op\n // Custom shapes should respect API options, such as text.style\n};\n\nShape.prototype._pathString = function _pathString(opts) {\n throw new Error('Override this function for each progress bar');\n};\n\nShape.prototype._trailString = function _trailString(opts) {\n throw new Error('Override this function for each progress bar');\n};\n\nShape.prototype._warnContainerAspectRatio = function _warnContainerAspectRatio(container) {\n if (!this.containerAspectRatio) {\n return;\n }\n\n var computedStyle = window.getComputedStyle(container, null);\n var width = parseFloat(computedStyle.getPropertyValue('width'), 10);\n var height = parseFloat(computedStyle.getPropertyValue('height'), 10);\n\n if (!utils.floatEquals(this.containerAspectRatio, width / height)) {\n console.warn('Incorrect aspect ratio of container', '#' + container.id, 'detected:', computedStyle.getPropertyValue('width') + '(width)', '/', computedStyle.getPropertyValue('height') + '(height)', '=', width / height);\n console.warn('Aspect ratio of should be', this.containerAspectRatio);\n }\n};\n\nmodule.exports = Shape;","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\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _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});","export function isNodeEnv() {\n return Object.prototype.toString.call(typeof process !== \"undefined\" ? process : 0) === \"[object process]\";\n}\nexport function getGlobalObject() {\n return isNodeEnv() ? global : typeof window !== \"undefined\" ? window : typeof self !== \"undefined\" ? self : {};\n}","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","export default function (e, n) {\n return n = n || {}, new Promise(function (t, r) {\n var s = new XMLHttpRequest(),\n o = [],\n u = [],\n i = {},\n a = function a() {\n return {\n ok: 2 == (s.status / 100 | 0),\n statusText: s.statusText,\n status: s.status,\n url: s.responseURL,\n text: function text() {\n return Promise.resolve(s.responseText);\n },\n json: function json() {\n return Promise.resolve(s.responseText).then(JSON.parse);\n },\n blob: function blob() {\n return Promise.resolve(new Blob([s.response]));\n },\n clone: a,\n headers: {\n keys: function keys() {\n return o;\n },\n entries: function entries() {\n return u;\n },\n get: function get(e) {\n return i[e.toLowerCase()];\n },\n has: function has(e) {\n return e.toLowerCase() in i;\n }\n }\n };\n };\n\n for (var l in s.open(n.method || \"get\", e, !0), s.onload = function () {\n s.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm, function (e, n, t) {\n o.push(n = n.toLowerCase()), u.push([n, t]), i[n] = i[n] ? i[n] + \",\" + t : t;\n }), t(a());\n }, s.onerror = r, s.withCredentials = \"include\" == n.credentials, n.headers) {\n s.setRequestHeader(l, n.headers[l]);\n }\n\n s.send(n.body || null);\n });\n}","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;","// Lower level API to animate any kind of svg path\nvar shifty = require('shifty');\n\nvar utils = require('./utils');\n\nvar Tweenable = shifty.Tweenable;\nvar EASING_ALIASES = {\n easeIn: 'easeInCubic',\n easeOut: 'easeOutCubic',\n easeInOut: 'easeInOutCubic'\n};\n\nvar Path = function Path(path, opts) {\n // Throw a better error if not initialized with `new` keyword\n if (!(this instanceof Path)) {\n throw new Error('Constructor was called without new keyword');\n } // Default parameters for animation\n\n\n opts = utils.extend({\n delay: 0,\n duration: 800,\n easing: 'linear',\n from: {},\n to: {},\n step: function step() {}\n }, opts);\n var element;\n\n if (utils.isString(path)) {\n element = document.querySelector(path);\n } else {\n element = path;\n } // Reveal .path as public attribute\n\n\n this.path = element;\n this._opts = opts;\n this._tweenable = null; // Set up the starting positions\n\n var length = this.path.getTotalLength();\n this.path.style.strokeDasharray = length + ' ' + length;\n this.set(0);\n};\n\nPath.prototype.value = function value() {\n var offset = this._getComputedDashOffset();\n\n var length = this.path.getTotalLength();\n var progress = 1 - offset / length; // Round number to prevent returning very small number like 1e-30, which\n // is practically 0\n\n return parseFloat(progress.toFixed(6), 10);\n};\n\nPath.prototype.set = function set(progress) {\n this.stop();\n this.path.style.strokeDashoffset = this._progressToOffset(progress);\n var step = this._opts.step;\n\n if (utils.isFunction(step)) {\n var easing = this._easing(this._opts.easing);\n\n var values = this._calculateTo(progress, easing);\n\n var reference = this._opts.shape || this;\n step(values, reference, this._opts.attachment);\n }\n};\n\nPath.prototype.stop = function stop() {\n this._stopTween();\n\n this.path.style.strokeDashoffset = this._getComputedDashOffset();\n}; // Method introduced here:\n// http://jakearchibald.com/2013/animated-line-drawing-svg/\n\n\nPath.prototype.animate = function animate(progress, opts, cb) {\n opts = opts || {};\n\n if (utils.isFunction(opts)) {\n cb = opts;\n opts = {};\n }\n\n var passedOpts = utils.extend({}, opts); // Copy default opts to new object so defaults are not modified\n\n var defaultOpts = utils.extend({}, this._opts);\n opts = utils.extend(defaultOpts, opts);\n\n var shiftyEasing = this._easing(opts.easing);\n\n var values = this._resolveFromAndTo(progress, shiftyEasing, passedOpts);\n\n this.stop(); // Trigger a layout so styles are calculated & the browser\n // picks up the starting position before animating\n\n this.path.getBoundingClientRect();\n\n var offset = this._getComputedDashOffset();\n\n var newOffset = this._progressToOffset(progress);\n\n var self = this;\n this._tweenable = new Tweenable();\n\n this._tweenable.tween({\n from: utils.extend({\n offset: offset\n }, values.from),\n to: utils.extend({\n offset: newOffset\n }, values.to),\n duration: opts.duration,\n delay: opts.delay,\n easing: shiftyEasing,\n step: function step(state) {\n self.path.style.strokeDashoffset = state.offset;\n var reference = opts.shape || self;\n opts.step(state, reference, opts.attachment);\n }\n }).then(function (state) {\n if (utils.isFunction(cb)) {\n cb();\n }\n });\n};\n\nPath.prototype._getComputedDashOffset = function _getComputedDashOffset() {\n var computedStyle = window.getComputedStyle(this.path, null);\n return parseFloat(computedStyle.getPropertyValue('stroke-dashoffset'), 10);\n};\n\nPath.prototype._progressToOffset = function _progressToOffset(progress) {\n var length = this.path.getTotalLength();\n return length - progress * length;\n}; // Resolves from and to values for animation.\n\n\nPath.prototype._resolveFromAndTo = function _resolveFromAndTo(progress, easing, opts) {\n if (opts.from && opts.to) {\n return {\n from: opts.from,\n to: opts.to\n };\n }\n\n return {\n from: this._calculateFrom(easing),\n to: this._calculateTo(progress, easing)\n };\n}; // Calculate `from` values from options passed at initialization\n\n\nPath.prototype._calculateFrom = function _calculateFrom(easing) {\n return shifty.interpolate(this._opts.from, this._opts.to, this.value(), easing);\n}; // Calculate `to` values from options passed at initialization\n\n\nPath.prototype._calculateTo = function _calculateTo(progress, easing) {\n return shifty.interpolate(this._opts.from, this._opts.to, progress, easing);\n};\n\nPath.prototype._stopTween = function _stopTween() {\n if (this._tweenable !== null) {\n this._tweenable.stop();\n\n this._tweenable = null;\n }\n};\n\nPath.prototype._easing = function _easing(easing) {\n if (EASING_ALIASES.hasOwnProperty(easing)) {\n return EASING_ALIASES[easing];\n }\n\n return easing;\n};\n\nmodule.exports = Path;","// Circle shaped progress bar\nvar Shape = require('./shape');\n\nvar utils = require('./utils');\n\nvar Circle = function Circle(container, options) {\n // Use two arcs to form a circle\n // See this answer http://stackoverflow.com/a/10477334/1446092\n this._pathTemplate = 'M 50,50 m 0,-{radius}' + ' a {radius},{radius} 0 1 1 0,{2radius}' + ' a {radius},{radius} 0 1 1 0,-{2radius}';\n this.containerAspectRatio = 1;\n Shape.apply(this, arguments);\n};\n\nCircle.prototype = new Shape();\nCircle.prototype.constructor = Circle;\n\nCircle.prototype._pathString = function _pathString(opts) {\n var widthOfWider = opts.strokeWidth;\n\n if (opts.trailWidth && opts.trailWidth > opts.strokeWidth) {\n widthOfWider = opts.trailWidth;\n }\n\n var r = 50 - widthOfWider / 2;\n return utils.render(this._pathTemplate, {\n radius: r,\n '2radius': r * 2\n });\n};\n\nCircle.prototype._trailString = function _trailString(opts) {\n return this._pathString(opts);\n};\n\nmodule.exports = Circle;","function _typeof2(obj) { \"@babel/helpers - typeof\"; return _typeof2 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof2(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActionCable = {});\n})(this, function (exports) {\n \"use strict\";\n\n var adapters = {\n logger: self.console,\n WebSocket: self.WebSocket\n };\n var logger = {\n log: function log() {\n if (this.enabled) {\n var _adapters$logger;\n\n for (var _len = arguments.length, messages = Array(_len), _key = 0; _key < _len; _key++) {\n messages[_key] = arguments[_key];\n }\n\n messages.push(Date.now());\n\n (_adapters$logger = adapters.logger).log.apply(_adapters$logger, [\"[ActionCable]\"].concat(messages));\n }\n }\n };\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\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 now = function now() {\n return new Date().getTime();\n };\n\n var secondsSince = function secondsSince(time) {\n return (now() - time) / 1e3;\n };\n\n var clamp = function clamp(number, min, max) {\n return Math.max(min, Math.min(max, number));\n };\n\n var ConnectionMonitor = function () {\n function ConnectionMonitor(connection) {\n classCallCheck(this, ConnectionMonitor);\n this.visibilityDidChange = this.visibilityDidChange.bind(this);\n this.connection = connection;\n this.reconnectAttempts = 0;\n }\n\n ConnectionMonitor.prototype.start = function start() {\n if (!this.isRunning()) {\n this.startedAt = now();\n delete this.stoppedAt;\n this.startPolling();\n addEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor started. pollInterval = \" + this.getPollInterval() + \" ms\");\n }\n };\n\n ConnectionMonitor.prototype.stop = function stop() {\n if (this.isRunning()) {\n this.stoppedAt = now();\n this.stopPolling();\n removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor stopped\");\n }\n };\n\n ConnectionMonitor.prototype.isRunning = function isRunning() {\n return this.startedAt && !this.stoppedAt;\n };\n\n ConnectionMonitor.prototype.recordPing = function recordPing() {\n this.pingedAt = now();\n };\n\n ConnectionMonitor.prototype.recordConnect = function recordConnect() {\n this.reconnectAttempts = 0;\n this.recordPing();\n delete this.disconnectedAt;\n logger.log(\"ConnectionMonitor recorded connect\");\n };\n\n ConnectionMonitor.prototype.recordDisconnect = function recordDisconnect() {\n this.disconnectedAt = now();\n logger.log(\"ConnectionMonitor recorded disconnect\");\n };\n\n ConnectionMonitor.prototype.startPolling = function startPolling() {\n this.stopPolling();\n this.poll();\n };\n\n ConnectionMonitor.prototype.stopPolling = function stopPolling() {\n clearTimeout(this.pollTimeout);\n };\n\n ConnectionMonitor.prototype.poll = function poll() {\n var _this = this;\n\n this.pollTimeout = setTimeout(function () {\n _this.reconnectIfStale();\n\n _this.poll();\n }, this.getPollInterval());\n };\n\n ConnectionMonitor.prototype.getPollInterval = function getPollInterval() {\n var _constructor$pollInte = this.constructor.pollInterval,\n min = _constructor$pollInte.min,\n max = _constructor$pollInte.max,\n multiplier = _constructor$pollInte.multiplier;\n var interval = multiplier * Math.log(this.reconnectAttempts + 1);\n return Math.round(clamp(interval, min, max) * 1e3);\n };\n\n ConnectionMonitor.prototype.reconnectIfStale = function reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(\"ConnectionMonitor detected stale connection. reconnectAttempts = \" + this.reconnectAttempts + \", pollInterval = \" + this.getPollInterval() + \" ms, time disconnected = \" + secondsSince(this.disconnectedAt) + \" s, stale threshold = \" + this.constructor.staleThreshold + \" s\");\n this.reconnectAttempts++;\n\n if (this.disconnectedRecently()) {\n logger.log(\"ConnectionMonitor skipping reopening recent disconnect\");\n } else {\n logger.log(\"ConnectionMonitor reopening\");\n this.connection.reopen();\n }\n }\n };\n\n ConnectionMonitor.prototype.connectionIsStale = function connectionIsStale() {\n return secondsSince(this.pingedAt ? this.pingedAt : this.startedAt) > this.constructor.staleThreshold;\n };\n\n ConnectionMonitor.prototype.disconnectedRecently = function disconnectedRecently() {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n };\n\n ConnectionMonitor.prototype.visibilityDidChange = function visibilityDidChange() {\n var _this2 = this;\n\n if (document.visibilityState === \"visible\") {\n setTimeout(function () {\n if (_this2.connectionIsStale() || !_this2.connection.isOpen()) {\n logger.log(\"ConnectionMonitor reopening stale connection on visibilitychange. visbilityState = \" + document.visibilityState);\n\n _this2.connection.reopen();\n }\n }, 200);\n }\n };\n\n return ConnectionMonitor;\n }();\n\n ConnectionMonitor.pollInterval = {\n min: 3,\n max: 30,\n multiplier: 5\n };\n ConnectionMonitor.staleThreshold = 6;\n var INTERNAL = {\n message_types: {\n welcome: \"welcome\",\n disconnect: \"disconnect\",\n ping: \"ping\",\n confirmation: \"confirm_subscription\",\n rejection: \"reject_subscription\"\n },\n disconnect_reasons: {\n unauthorized: \"unauthorized\",\n invalid_request: \"invalid_request\",\n server_restart: \"server_restart\"\n },\n default_mount_path: \"/cable\",\n protocols: [\"actioncable-v1-json\", \"actioncable-unsupported\"]\n };\n var message_types = INTERNAL.message_types,\n protocols = INTERNAL.protocols;\n var supportedProtocols = protocols.slice(0, protocols.length - 1);\n var indexOf = [].indexOf;\n\n var Connection = function () {\n function Connection(consumer) {\n classCallCheck(this, Connection);\n this.open = this.open.bind(this);\n this.consumer = consumer;\n this.subscriptions = this.consumer.subscriptions;\n this.monitor = new ConnectionMonitor(this);\n this.disconnected = true;\n }\n\n Connection.prototype.send = function send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data));\n return true;\n } else {\n return false;\n }\n };\n\n Connection.prototype.open = function open() {\n if (this.isActive()) {\n logger.log(\"Attempted to open WebSocket, but existing socket is \" + this.getState());\n return false;\n } else {\n logger.log(\"Opening WebSocket, current state is \" + this.getState() + \", subprotocols: \" + protocols);\n\n if (this.webSocket) {\n this.uninstallEventHandlers();\n }\n\n this.webSocket = new adapters.WebSocket(this.consumer.url, protocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n };\n\n Connection.prototype.close = function close() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n allowReconnect: true\n },\n allowReconnect = _ref.allowReconnect;\n\n if (!allowReconnect) {\n this.monitor.stop();\n }\n\n if (this.isActive()) {\n return this.webSocket.close();\n }\n };\n\n Connection.prototype.reopen = function reopen() {\n logger.log(\"Reopening WebSocket, current state is \" + this.getState());\n\n if (this.isActive()) {\n try {\n return this.close();\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error);\n } finally {\n logger.log(\"Reopening WebSocket in \" + this.constructor.reopenDelay + \"ms\");\n setTimeout(this.open, this.constructor.reopenDelay);\n }\n } else {\n return this.open();\n }\n };\n\n Connection.prototype.getProtocol = function getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol;\n }\n };\n\n Connection.prototype.isOpen = function isOpen() {\n return this.isState(\"open\");\n };\n\n Connection.prototype.isActive = function isActive() {\n return this.isState(\"open\", \"connecting\");\n };\n\n Connection.prototype.isProtocolSupported = function isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n };\n\n Connection.prototype.isState = function isState() {\n for (var _len = arguments.length, states = Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return indexOf.call(states, this.getState()) >= 0;\n };\n\n Connection.prototype.getState = function getState() {\n if (this.webSocket) {\n for (var state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase();\n }\n }\n }\n\n return null;\n };\n\n Connection.prototype.installEventHandlers = function installEventHandlers() {\n for (var eventName in this.events) {\n var handler = this.events[eventName].bind(this);\n this.webSocket[\"on\" + eventName] = handler;\n }\n };\n\n Connection.prototype.uninstallEventHandlers = function uninstallEventHandlers() {\n for (var eventName in this.events) {\n this.webSocket[\"on\" + eventName] = function () {};\n }\n };\n\n return Connection;\n }();\n\n Connection.reopenDelay = 500;\n Connection.prototype.events = {\n message: function message(event) {\n if (!this.isProtocolSupported()) {\n return;\n }\n\n var _JSON$parse = JSON.parse(event.data),\n identifier = _JSON$parse.identifier,\n message = _JSON$parse.message,\n reason = _JSON$parse.reason,\n reconnect = _JSON$parse.reconnect,\n type = _JSON$parse.type;\n\n switch (type) {\n case message_types.welcome:\n this.monitor.recordConnect();\n return this.subscriptions.reload();\n\n case message_types.disconnect:\n logger.log(\"Disconnecting. Reason: \" + reason);\n return this.close({\n allowReconnect: reconnect\n });\n\n case message_types.ping:\n return this.monitor.recordPing();\n\n case message_types.confirmation:\n return this.subscriptions.notify(identifier, \"connected\");\n\n case message_types.rejection:\n return this.subscriptions.reject(identifier);\n\n default:\n return this.subscriptions.notify(identifier, \"received\", message);\n }\n },\n open: function open() {\n logger.log(\"WebSocket onopen event, using '\" + this.getProtocol() + \"' subprotocol\");\n this.disconnected = false;\n\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n return this.close({\n allowReconnect: false\n });\n }\n },\n close: function close(event) {\n logger.log(\"WebSocket onclose event\");\n\n if (this.disconnected) {\n return;\n }\n\n this.disconnected = true;\n this.monitor.recordDisconnect();\n return this.subscriptions.notifyAll(\"disconnected\", {\n willAttemptReconnect: this.monitor.isRunning()\n });\n },\n error: function error() {\n logger.log(\"WebSocket onerror event\");\n }\n };\n\n var extend = function extend(object, properties) {\n if (properties != null) {\n for (var key in properties) {\n var value = properties[key];\n object[key] = value;\n }\n }\n\n return object;\n };\n\n var Subscription = function () {\n function Subscription(consumer) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var mixin = arguments[2];\n classCallCheck(this, Subscription);\n this.consumer = consumer;\n this.identifier = JSON.stringify(params);\n extend(this, mixin);\n }\n\n Subscription.prototype.perform = function perform(action) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n data.action = action;\n return this.send(data);\n };\n\n Subscription.prototype.send = function send(data) {\n return this.consumer.send({\n command: \"message\",\n identifier: this.identifier,\n data: JSON.stringify(data)\n });\n };\n\n Subscription.prototype.unsubscribe = function unsubscribe() {\n return this.consumer.subscriptions.remove(this);\n };\n\n return Subscription;\n }();\n\n var Subscriptions = function () {\n function Subscriptions(consumer) {\n classCallCheck(this, Subscriptions);\n this.consumer = consumer;\n this.subscriptions = [];\n }\n\n Subscriptions.prototype.create = function create(channelName, mixin) {\n var channel = channelName;\n var params = (typeof channel === \"undefined\" ? \"undefined\" : _typeof(channel)) === \"object\" ? channel : {\n channel: channel\n };\n var subscription = new Subscription(this.consumer, params, mixin);\n return this.add(subscription);\n };\n\n Subscriptions.prototype.add = function add(subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.sendCommand(subscription, \"subscribe\");\n return subscription;\n };\n\n Subscriptions.prototype.remove = function remove(subscription) {\n this.forget(subscription);\n\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n\n return subscription;\n };\n\n Subscriptions.prototype.reject = function reject(identifier) {\n var _this = this;\n\n return this.findAll(identifier).map(function (subscription) {\n _this.forget(subscription);\n\n _this.notify(subscription, \"rejected\");\n\n return subscription;\n });\n };\n\n Subscriptions.prototype.forget = function forget(subscription) {\n this.subscriptions = this.subscriptions.filter(function (s) {\n return s !== subscription;\n });\n return subscription;\n };\n\n Subscriptions.prototype.findAll = function findAll(identifier) {\n return this.subscriptions.filter(function (s) {\n return s.identifier === identifier;\n });\n };\n\n Subscriptions.prototype.reload = function reload() {\n var _this2 = this;\n\n return this.subscriptions.map(function (subscription) {\n return _this2.sendCommand(subscription, \"subscribe\");\n });\n };\n\n Subscriptions.prototype.notifyAll = function notifyAll(callbackName) {\n var _this3 = this;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return this.subscriptions.map(function (subscription) {\n return _this3.notify.apply(_this3, [subscription, callbackName].concat(args));\n });\n };\n\n Subscriptions.prototype.notify = function notify(subscription, callbackName) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n var subscriptions = void 0;\n\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [subscription];\n }\n\n return subscriptions.map(function (subscription) {\n return typeof subscription[callbackName] === \"function\" ? subscription[callbackName].apply(subscription, args) : undefined;\n });\n };\n\n Subscriptions.prototype.sendCommand = function sendCommand(subscription, command) {\n var identifier = subscription.identifier;\n return this.consumer.send({\n command: command,\n identifier: identifier\n });\n };\n\n return Subscriptions;\n }();\n\n var Consumer = function () {\n function Consumer(url) {\n classCallCheck(this, Consumer);\n this._url = url;\n this.subscriptions = new Subscriptions(this);\n this.connection = new Connection(this);\n }\n\n Consumer.prototype.send = function send(data) {\n return this.connection.send(data);\n };\n\n Consumer.prototype.connect = function connect() {\n return this.connection.open();\n };\n\n Consumer.prototype.disconnect = function disconnect() {\n return this.connection.close({\n allowReconnect: false\n });\n };\n\n Consumer.prototype.ensureActiveConnection = function ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\n };\n\n createClass(Consumer, [{\n key: \"url\",\n get: function get$$1() {\n return createWebSocketURL(this._url);\n }\n }]);\n return Consumer;\n }();\n\n function createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url();\n }\n\n if (url && !/^wss?:/i.test(url)) {\n var a = document.createElement(\"a\");\n a.href = url;\n a.href = a.href;\n a.protocol = a.protocol.replace(\"http\", \"ws\");\n return a.href;\n } else {\n return url;\n }\n }\n\n function createConsumer() {\n var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getConfig(\"url\") || INTERNAL.default_mount_path;\n return new Consumer(url);\n }\n\n function getConfig(name) {\n var element = document.head.querySelector(\"meta[name='action-cable-\" + name + \"']\");\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n exports.Connection = Connection;\n exports.ConnectionMonitor = ConnectionMonitor;\n exports.Consumer = Consumer;\n exports.INTERNAL = INTERNAL;\n exports.Subscription = Subscription;\n exports.Subscriptions = Subscriptions;\n exports.adapters = adapters;\n exports.createWebSocketURL = createWebSocketURL;\n exports.logger = logger;\n exports.createConsumer = createConsumer;\n exports.getConfig = getConfig;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","module.exports = self.fetch || (self.fetch = require('unfetch').default || require('unfetch'));","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n!function (e, t) {\n \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"undefined\" != typeof module ? module.exports = t() : \"function\" == typeof define && define.amd ? define(t) : (e = e || self).Tribute = t();\n}(this, function () {\n \"use strict\";\n\n function e(e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n function t(e, t) {\n for (var n = 0; n < t.length; n++) {\n var i = t[n];\n i.enumerable = i.enumerable || !1, i.configurable = !0, \"value\" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);\n }\n }\n\n function n(e, n, i) {\n return n && t(e.prototype, n), i && t(e, i), e;\n }\n\n function i(e, t) {\n return function (e) {\n if (Array.isArray(e)) return e;\n }(e) || function (e, t) {\n if (!(Symbol.iterator in Object(e) || \"[object Arguments]\" === Object.prototype.toString.call(e))) return;\n var n = [],\n i = !0,\n r = !1,\n o = void 0;\n\n try {\n for (var u, l = e[Symbol.iterator](); !(i = (u = l.next()).done) && (n.push(u.value), !t || n.length !== t); i = !0) {\n ;\n }\n } catch (e) {\n r = !0, o = e;\n } finally {\n try {\n i || null == l.return || l.return();\n } finally {\n if (r) throw o;\n }\n }\n\n return n;\n }(e, t) || function () {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }();\n }\n\n if (Array.prototype.find || (Array.prototype.find = function (e) {\n if (null === this) throw new TypeError(\"Array.prototype.find called on null or undefined\");\n if (\"function\" != typeof e) throw new TypeError(\"predicate must be a function\");\n\n for (var t, n = Object(this), i = n.length >>> 0, r = arguments[1], o = 0; o < i; o++) {\n if (t = n[o], e.call(r, t, o, n)) return t;\n }\n }), window && \"function\" != typeof window.CustomEvent) {\n var r = function r(e, t) {\n t = t || {\n bubbles: !1,\n cancelable: !1,\n detail: void 0\n };\n var n = document.createEvent(\"CustomEvent\");\n return n.initCustomEvent(e, t.bubbles, t.cancelable, t.detail), n;\n };\n\n void 0 !== window.Event && (r.prototype = window.Event.prototype), window.CustomEvent = r;\n }\n\n var o = function () {\n function t(n) {\n e(this, t), this.tribute = n, this.tribute.events = this;\n }\n\n return n(t, [{\n key: \"bind\",\n value: function value(e) {\n e.boundKeydown = this.keydown.bind(e, this), e.boundKeyup = this.keyup.bind(e, this), e.boundInput = this.input.bind(e, this), e.addEventListener(\"keydown\", e.boundKeydown, !1), e.addEventListener(\"keyup\", e.boundKeyup, !1), e.addEventListener(\"input\", e.boundInput, !1);\n }\n }, {\n key: \"unbind\",\n value: function value(e) {\n e.removeEventListener(\"keydown\", e.boundKeydown, !1), e.removeEventListener(\"keyup\", e.boundKeyup, !1), e.removeEventListener(\"input\", e.boundInput, !1), delete e.boundKeydown, delete e.boundKeyup, delete e.boundInput;\n }\n }, {\n key: \"keydown\",\n value: function value(e, n) {\n e.shouldDeactivate(n) && (e.tribute.isActive = !1, e.tribute.hideMenu());\n var i = this;\n e.commandEvent = !1, t.keys().forEach(function (t) {\n t.key === n.keyCode && (e.commandEvent = !0, e.callbacks()[t.value.toLowerCase()](n, i));\n });\n }\n }, {\n key: \"input\",\n value: function value(e, t) {\n e.inputEvent = !0, e.keyup.call(this, e, t);\n }\n }, {\n key: \"click\",\n value: function value(e, t) {\n var n = e.tribute;\n\n if (n.menu && n.menu.contains(t.target)) {\n var i = t.target;\n\n for (t.preventDefault(), t.stopPropagation(); \"li\" !== i.nodeName.toLowerCase();) {\n if (!(i = i.parentNode) || i === n.menu) throw new Error(\"cannot find the
  • container for the click\");\n }\n\n n.selectItemAtIndex(i.getAttribute(\"data-index\"), t), n.hideMenu();\n } else n.current.element && !n.current.externalTrigger && (n.current.externalTrigger = !1, setTimeout(function () {\n return n.hideMenu();\n }));\n }\n }, {\n key: \"keyup\",\n value: function value(e, t) {\n if (e.inputEvent && (e.inputEvent = !1), e.updateSelection(this), 27 !== t.keyCode) {\n if (!e.tribute.allowSpaces && e.tribute.hasTrailingSpace) return e.tribute.hasTrailingSpace = !1, e.commandEvent = !0, void e.callbacks().space(t, this);\n if (!e.tribute.isActive) if (e.tribute.autocompleteMode) e.callbacks().triggerChar(t, this, \"\");else {\n var n = e.getKeyCode(e, this, t);\n if (isNaN(n) || !n) return;\n var i = e.tribute.triggers().find(function (e) {\n return e.charCodeAt(0) === n;\n });\n void 0 !== i && e.callbacks().triggerChar(t, this, i);\n }\n e.tribute.current.mentionText.length < e.tribute.current.collection.menuShowMinLength || ((e.tribute.current.trigger || e.tribute.autocompleteMode) && !1 === e.commandEvent || e.tribute.isActive && 8 === t.keyCode) && e.tribute.showMenuFor(this, !0);\n }\n }\n }, {\n key: \"shouldDeactivate\",\n value: function value(e) {\n if (!this.tribute.isActive) return !1;\n\n if (0 === this.tribute.current.mentionText.length) {\n var n = !1;\n return t.keys().forEach(function (t) {\n e.keyCode === t.key && (n = !0);\n }), !n;\n }\n\n return !1;\n }\n }, {\n key: \"getKeyCode\",\n value: function value(e, t, n) {\n var i = e.tribute,\n r = i.range.getTriggerInfo(!1, i.hasTrailingSpace, !0, i.allowSpaces, i.autocompleteMode);\n return !!r && r.mentionTriggerChar.charCodeAt(0);\n }\n }, {\n key: \"updateSelection\",\n value: function value(e) {\n this.tribute.current.element = e;\n var t = this.tribute.range.getTriggerInfo(!1, this.tribute.hasTrailingSpace, !0, this.tribute.allowSpaces, this.tribute.autocompleteMode);\n t && (this.tribute.current.selectedPath = t.mentionSelectedPath, this.tribute.current.mentionText = t.mentionText, this.tribute.current.selectedOffset = t.mentionSelectedOffset);\n }\n }, {\n key: \"callbacks\",\n value: function value() {\n var e = this;\n return {\n triggerChar: function triggerChar(t, n, i) {\n var r = e.tribute;\n r.current.trigger = i;\n var o = r.collection.find(function (e) {\n return e.trigger === i;\n });\n r.current.collection = o, r.current.mentionText.length >= r.current.collection.menuShowMinLength && r.inputEvent && r.showMenuFor(n, !0);\n },\n enter: function enter(t, n) {\n e.tribute.isActive && e.tribute.current.filteredItems && (t.preventDefault(), t.stopPropagation(), setTimeout(function () {\n e.tribute.selectItemAtIndex(e.tribute.menuSelected, t), e.tribute.hideMenu();\n }, 0));\n },\n escape: function escape(t, n) {\n e.tribute.isActive && (t.preventDefault(), t.stopPropagation(), e.tribute.isActive = !1, e.tribute.hideMenu());\n },\n tab: function tab(t, n) {\n e.callbacks().enter(t, n);\n },\n space: function space(t, n) {\n e.tribute.isActive && (e.tribute.spaceSelectsMatch ? e.callbacks().enter(t, n) : e.tribute.allowSpaces || (t.stopPropagation(), setTimeout(function () {\n e.tribute.hideMenu(), e.tribute.isActive = !1;\n }, 0)));\n },\n up: function up(t, n) {\n if (e.tribute.isActive && e.tribute.current.filteredItems) {\n t.preventDefault(), t.stopPropagation();\n var i = e.tribute.current.filteredItems.length,\n r = e.tribute.menuSelected;\n i > r && r > 0 ? (e.tribute.menuSelected--, e.setActiveLi()) : 0 === r && (e.tribute.menuSelected = i - 1, e.setActiveLi(), e.tribute.menu.scrollTop = e.tribute.menu.scrollHeight);\n }\n },\n down: function down(t, n) {\n if (e.tribute.isActive && e.tribute.current.filteredItems) {\n t.preventDefault(), t.stopPropagation();\n var i = e.tribute.current.filteredItems.length - 1,\n r = e.tribute.menuSelected;\n i > r ? (e.tribute.menuSelected++, e.setActiveLi()) : i === r && (e.tribute.menuSelected = 0, e.setActiveLi(), e.tribute.menu.scrollTop = 0);\n }\n },\n delete: function _delete(t, n) {\n e.tribute.isActive && e.tribute.current.mentionText.length < 1 ? e.tribute.hideMenu() : e.tribute.isActive && e.tribute.showMenuFor(n);\n }\n };\n }\n }, {\n key: \"setActiveLi\",\n value: function value(e) {\n var t = this.tribute.menu.querySelectorAll(\"li\"),\n n = t.length >>> 0;\n e && (this.tribute.menuSelected = parseInt(e));\n\n for (var i = 0; i < n; i++) {\n var r = t[i];\n\n if (i === this.tribute.menuSelected) {\n r.classList.add(this.tribute.current.collection.selectClass);\n var o = r.getBoundingClientRect(),\n u = this.tribute.menu.getBoundingClientRect();\n\n if (o.bottom > u.bottom) {\n var l = o.bottom - u.bottom;\n this.tribute.menu.scrollTop += l;\n } else if (o.top < u.top) {\n var s = u.top - o.top;\n this.tribute.menu.scrollTop -= s;\n }\n } else r.classList.remove(this.tribute.current.collection.selectClass);\n }\n }\n }, {\n key: \"getFullHeight\",\n value: function value(e, t) {\n var n = e.getBoundingClientRect().height;\n\n if (t) {\n var i = e.currentStyle || window.getComputedStyle(e);\n return n + parseFloat(i.marginTop) + parseFloat(i.marginBottom);\n }\n\n return n;\n }\n }], [{\n key: \"keys\",\n value: function value() {\n return [{\n key: 9,\n value: \"TAB\"\n }, {\n key: 8,\n value: \"DELETE\"\n }, {\n key: 13,\n value: \"ENTER\"\n }, {\n key: 27,\n value: \"ESCAPE\"\n }, {\n key: 32,\n value: \"SPACE\"\n }, {\n key: 38,\n value: \"UP\"\n }, {\n key: 40,\n value: \"DOWN\"\n }];\n }\n }]), t;\n }(),\n u = function () {\n function t(n) {\n e(this, t), this.tribute = n, this.tribute.menuEvents = this, this.menu = this.tribute.menu;\n }\n\n return n(t, [{\n key: \"bind\",\n value: function value(e) {\n var t = this;\n this.menuClickEvent = this.tribute.events.click.bind(null, this), this.menuContainerScrollEvent = this.debounce(function () {\n t.tribute.isActive && t.tribute.showMenuFor(t.tribute.current.element, !1);\n }, 300, !1), this.windowResizeEvent = this.debounce(function () {\n t.tribute.isActive && t.tribute.range.positionMenuAtCaret(!0);\n }, 300, !1), this.tribute.range.getDocument().addEventListener(\"MSPointerDown\", this.menuClickEvent, !1), this.tribute.range.getDocument().addEventListener(\"mousedown\", this.menuClickEvent, !1), window.addEventListener(\"resize\", this.windowResizeEvent), this.menuContainer ? this.menuContainer.addEventListener(\"scroll\", this.menuContainerScrollEvent, !1) : window.addEventListener(\"scroll\", this.menuContainerScrollEvent);\n }\n }, {\n key: \"unbind\",\n value: function value(e) {\n this.tribute.range.getDocument().removeEventListener(\"mousedown\", this.menuClickEvent, !1), this.tribute.range.getDocument().removeEventListener(\"MSPointerDown\", this.menuClickEvent, !1), window.removeEventListener(\"resize\", this.windowResizeEvent), this.menuContainer ? this.menuContainer.removeEventListener(\"scroll\", this.menuContainerScrollEvent, !1) : window.removeEventListener(\"scroll\", this.menuContainerScrollEvent);\n }\n }, {\n key: \"debounce\",\n value: function value(e, t, n) {\n var i,\n r = arguments,\n o = this;\n return function () {\n var u = o,\n l = r,\n s = n && !i;\n clearTimeout(i), i = setTimeout(function () {\n i = null, n || e.apply(u, l);\n }, t), s && e.apply(u, l);\n };\n }\n }]), t;\n }(),\n l = function () {\n function t(n) {\n e(this, t), this.tribute = n, this.tribute.range = this;\n }\n\n return n(t, [{\n key: \"getDocument\",\n value: function value() {\n var e;\n return this.tribute.current.collection && (e = this.tribute.current.collection.iframe), e ? e.contentWindow.document : document;\n }\n }, {\n key: \"positionMenuAtCaret\",\n value: function value(e) {\n var t,\n n = this,\n i = this.tribute.current,\n r = this.getTriggerInfo(!1, this.tribute.hasTrailingSpace, !0, this.tribute.allowSpaces, this.tribute.autocompleteMode);\n\n if (void 0 !== r) {\n if (!this.tribute.positionMenu) return void (this.tribute.menu.style.cssText = \"display: block;\");\n t = this.isContentEditable(i.element) ? this.getContentEditableCaretPosition(r.mentionPosition) : this.getTextAreaOrInputUnderlinePosition(this.tribute.current.element, r.mentionPosition), this.tribute.menu.style.cssText = \"top: \".concat(t.top, \"px;\\n left: \").concat(t.left, \"px;\\n right: \").concat(t.right, \"px;\\n bottom: \").concat(t.bottom, \"px;\\n position: absolute;\\n display: block;\"), \"auto\" === t.left && (this.tribute.menu.style.left = \"auto\"), \"auto\" === t.top && (this.tribute.menu.style.top = \"auto\"), e && this.scrollIntoView(), window.setTimeout(function () {\n var i = {\n width: n.tribute.menu.offsetWidth,\n height: n.tribute.menu.offsetHeight\n },\n r = n.isMenuOffScreen(t, i),\n o = window.innerWidth > i.width && (r.left || r.right),\n u = window.innerHeight > i.height && (r.top || r.bottom);\n (o || u) && (n.tribute.menu.style.cssText = \"display: none\", n.positionMenuAtCaret(e));\n }, 0);\n } else this.tribute.menu.style.cssText = \"display: none\";\n }\n }, {\n key: \"selectElement\",\n value: function value(e, t, n) {\n var i,\n r = e;\n if (t) for (var o = 0; o < t.length; o++) {\n if (void 0 === (r = r.childNodes[t[o]])) return;\n\n for (; r.length < n;) {\n n -= r.length, r = r.nextSibling;\n }\n\n 0 !== r.childNodes.length || r.length || (r = r.previousSibling);\n }\n var u = this.getWindowSelection();\n (i = this.getDocument().createRange()).setStart(r, n), i.setEnd(r, n), i.collapse(!0);\n\n try {\n u.removeAllRanges();\n } catch (e) {}\n\n u.addRange(i), e.focus();\n }\n }, {\n key: \"replaceTriggerText\",\n value: function value(e, t, n, i, r) {\n var o = this.getTriggerInfo(!0, n, t, this.tribute.allowSpaces, this.tribute.autocompleteMode);\n\n if (void 0 !== o) {\n var u = this.tribute.current,\n l = new CustomEvent(\"tribute-replaced\", {\n detail: {\n item: r,\n instance: u,\n context: o,\n event: i\n }\n });\n\n if (this.isContentEditable(u.element)) {\n e += \"string\" == typeof this.tribute.replaceTextSuffix ? this.tribute.replaceTextSuffix : \" \";\n var s = o.mentionPosition + o.mentionText.length;\n this.tribute.autocompleteMode || (s += o.mentionTriggerChar.length), this.pasteHtml(e, o.mentionPosition, s);\n } else {\n var a = this.tribute.current.element,\n c = \"string\" == typeof this.tribute.replaceTextSuffix ? this.tribute.replaceTextSuffix : \" \";\n e += c;\n var h = o.mentionPosition,\n d = o.mentionPosition + o.mentionText.length + c.length;\n this.tribute.autocompleteMode || (d += o.mentionTriggerChar.length - 1), a.value = a.value.substring(0, h) + e + a.value.substring(d, a.value.length), a.selectionStart = h + e.length, a.selectionEnd = h + e.length;\n }\n\n u.element.dispatchEvent(new CustomEvent(\"input\", {\n bubbles: !0\n })), u.element.dispatchEvent(l);\n }\n }\n }, {\n key: \"pasteHtml\",\n value: function value(e, t, n) {\n var i, r;\n r = this.getWindowSelection(), (i = this.getDocument().createRange()).setStart(r.anchorNode, t), i.setEnd(r.anchorNode, n), i.deleteContents();\n var o = this.getDocument().createElement(\"div\");\n o.innerHTML = e;\n\n for (var u, l, s = this.getDocument().createDocumentFragment(); u = o.firstChild;) {\n l = s.appendChild(u);\n }\n\n i.insertNode(s), l && ((i = i.cloneRange()).setStartAfter(l), i.collapse(!0), r.removeAllRanges(), r.addRange(i));\n }\n }, {\n key: \"getWindowSelection\",\n value: function value() {\n return this.tribute.collection.iframe ? this.tribute.collection.iframe.contentWindow.getSelection() : window.getSelection();\n }\n }, {\n key: \"getNodePositionInParent\",\n value: function value(e) {\n if (null === e.parentNode) return 0;\n\n for (var t = 0; t < e.parentNode.childNodes.length; t++) {\n if (e.parentNode.childNodes[t] === e) return t;\n }\n }\n }, {\n key: \"getContentEditableSelectedPath\",\n value: function value(e) {\n var t = this.getWindowSelection(),\n n = t.anchorNode,\n i = [];\n\n if (null != n) {\n for (var r, o = n.contentEditable; null !== n && \"true\" !== o;) {\n r = this.getNodePositionInParent(n), i.push(r), null !== (n = n.parentNode) && (o = n.contentEditable);\n }\n\n return i.reverse(), {\n selected: n,\n path: i,\n offset: t.getRangeAt(0).startOffset\n };\n }\n }\n }, {\n key: \"getTextPrecedingCurrentSelection\",\n value: function value() {\n var e = this.tribute.current,\n t = \"\";\n\n if (this.isContentEditable(e.element)) {\n var n = this.getWindowSelection().anchorNode;\n\n if (null != n) {\n var i = n.textContent,\n r = this.getWindowSelection().getRangeAt(0).startOffset;\n i && r >= 0 && (t = i.substring(0, r));\n }\n } else {\n var o = this.tribute.current.element;\n\n if (o) {\n var u = o.selectionStart;\n o.value && u >= 0 && (t = o.value.substring(0, u));\n }\n }\n\n return t;\n }\n }, {\n key: \"getLastWordInText\",\n value: function value(e) {\n var t = (e = e.replace(/\\u00A0/g, \" \")).split(/\\s+/);\n return t[t.length - 1].trim();\n }\n }, {\n key: \"getTriggerInfo\",\n value: function value(e, t, n, i, r) {\n var o,\n u,\n l,\n s = this,\n a = this.tribute.current;\n\n if (this.isContentEditable(a.element)) {\n var c = this.getContentEditableSelectedPath(a);\n c && (o = c.selected, u = c.path, l = c.offset);\n } else o = this.tribute.current.element;\n\n var h = this.getTextPrecedingCurrentSelection(),\n d = this.getLastWordInText(h);\n if (r) return {\n mentionPosition: h.length - d.length,\n mentionText: d,\n mentionSelectedElement: o,\n mentionSelectedPath: u,\n mentionSelectedOffset: l\n };\n\n if (null != h) {\n var f,\n m = -1;\n\n if (this.tribute.collection.forEach(function (e) {\n var t = e.trigger,\n i = e.requireLeadingSpace ? s.lastIndexWithLeadingSpace(h, t) : h.lastIndexOf(t);\n i > m && (m = i, f = t, n = e.requireLeadingSpace);\n }), m >= 0 && (0 === m || !n || /[\\xA0\\s]/g.test(h.substring(m - 1, m)))) {\n var p = h.substring(m + f.length, h.length);\n f = h.substring(m, m + f.length);\n var v = p.substring(0, 1),\n g = p.length > 0 && (\" \" === v || \" \" === v);\n t && (p = p.trim());\n var b = i ? /[^\\S ]/g : /[\\xA0\\s]/g;\n if (this.tribute.hasTrailingSpace = b.test(p), !g && (e || !b.test(p))) return {\n mentionPosition: m,\n mentionText: p,\n mentionSelectedElement: o,\n mentionSelectedPath: u,\n mentionSelectedOffset: l,\n mentionTriggerChar: f\n };\n }\n }\n }\n }, {\n key: \"lastIndexWithLeadingSpace\",\n value: function value(e, t) {\n for (var n = e.split(\"\").reverse().join(\"\"), i = -1, r = 0, o = e.length; r < o; r++) {\n for (var u = r === e.length - 1, l = /\\s/.test(n[r + 1]), s = !0, a = t.length - 1; a >= 0; a--) {\n if (t[a] !== n[r - a]) {\n s = !1;\n break;\n }\n }\n\n if (s && (u || l)) {\n i = e.length - 1 - r;\n break;\n }\n }\n\n return i;\n }\n }, {\n key: \"isContentEditable\",\n value: function value(e) {\n return \"INPUT\" !== e.nodeName && \"TEXTAREA\" !== e.nodeName;\n }\n }, {\n key: \"isMenuOffScreen\",\n value: function value(e, t) {\n var n = window.innerWidth,\n i = window.innerHeight,\n r = document.documentElement,\n o = (window.pageXOffset || r.scrollLeft) - (r.clientLeft || 0),\n u = (window.pageYOffset || r.scrollTop) - (r.clientTop || 0),\n l = \"number\" == typeof e.top ? e.top : u + i - e.bottom - t.height,\n s = \"number\" == typeof e.right ? e.right : e.left + t.width,\n a = \"number\" == typeof e.bottom ? e.bottom : e.top + t.height,\n c = \"number\" == typeof e.left ? e.left : o + n - e.right - t.width;\n return {\n top: l < Math.floor(u),\n right: s > Math.ceil(o + n),\n bottom: a > Math.ceil(u + i),\n left: c < Math.floor(o)\n };\n }\n }, {\n key: \"getMenuDimensions\",\n value: function value() {\n var e = {\n width: null,\n height: null\n };\n return this.tribute.menu.style.cssText = \"top: 0px;\\n left: 0px;\\n position: fixed;\\n display: block;\\n visibility; hidden;\", e.width = this.tribute.menu.offsetWidth, e.height = this.tribute.menu.offsetHeight, this.tribute.menu.style.cssText = \"display: none;\", e;\n }\n }, {\n key: \"getTextAreaOrInputUnderlinePosition\",\n value: function value(e, t, n) {\n var i = null !== window.mozInnerScreenX,\n r = this.getDocument().createElement(\"div\");\n r.id = \"input-textarea-caret-position-mirror-div\", this.getDocument().body.appendChild(r);\n var o = r.style,\n u = window.getComputedStyle ? getComputedStyle(e) : e.currentStyle;\n o.whiteSpace = \"pre-wrap\", \"INPUT\" !== e.nodeName && (o.wordWrap = \"break-word\"), o.position = \"absolute\", o.visibility = \"hidden\", [\"direction\", \"boxSizing\", \"width\", \"height\", \"overflowX\", \"overflowY\", \"borderTopWidth\", \"borderRightWidth\", \"borderBottomWidth\", \"borderLeftWidth\", \"paddingTop\", \"paddingRight\", \"paddingBottom\", \"paddingLeft\", \"fontStyle\", \"fontVariant\", \"fontWeight\", \"fontStretch\", \"fontSize\", \"fontSizeAdjust\", \"lineHeight\", \"fontFamily\", \"textAlign\", \"textTransform\", \"textIndent\", \"textDecoration\", \"letterSpacing\", \"wordSpacing\"].forEach(function (e) {\n o[e] = u[e];\n }), i ? (o.width = \"\".concat(parseInt(u.width) - 2, \"px\"), e.scrollHeight > parseInt(u.height) && (o.overflowY = \"scroll\")) : o.overflow = \"hidden\", r.textContent = e.value.substring(0, t), \"INPUT\" === e.nodeName && (r.textContent = r.textContent.replace(/\\s/g, \" \"));\n var l = this.getDocument().createElement(\"span\");\n l.textContent = e.value.substring(t) || \".\", r.appendChild(l);\n var s = e.getBoundingClientRect(),\n a = document.documentElement,\n c = (window.pageXOffset || a.scrollLeft) - (a.clientLeft || 0),\n h = (window.pageYOffset || a.scrollTop) - (a.clientTop || 0),\n d = 0,\n f = 0;\n this.menuContainerIsBody && (d = s.top, f = s.left);\n var m = {\n top: d + h + l.offsetTop + parseInt(u.borderTopWidth) + parseInt(u.fontSize) - e.scrollTop,\n left: f + c + l.offsetLeft + parseInt(u.borderLeftWidth)\n },\n p = window.innerWidth,\n v = window.innerHeight,\n g = this.getMenuDimensions(),\n b = this.isMenuOffScreen(m, g);\n b.right && (m.right = p - m.left, m.left = \"auto\");\n var y = this.tribute.menuContainer ? this.tribute.menuContainer.offsetHeight : this.getDocument().body.offsetHeight;\n\n if (b.bottom) {\n var w = y - (v - (this.tribute.menuContainer ? this.tribute.menuContainer.getBoundingClientRect() : this.getDocument().body.getBoundingClientRect()).top);\n m.bottom = w + (v - s.top - l.offsetTop), m.top = \"auto\";\n }\n\n return (b = this.isMenuOffScreen(m, g)).left && (m.left = p > g.width ? c + p - g.width : c, delete m.right), b.top && (m.top = v > g.height ? h + v - g.height : h, delete m.bottom), this.getDocument().body.removeChild(r), m;\n }\n }, {\n key: \"getContentEditableCaretPosition\",\n value: function value(e) {\n var t,\n n = this.getWindowSelection();\n (t = this.getDocument().createRange()).setStart(n.anchorNode, e), t.setEnd(n.anchorNode, e), t.collapse(!1);\n var i = t.getBoundingClientRect(),\n r = document.documentElement,\n o = (window.pageXOffset || r.scrollLeft) - (r.clientLeft || 0),\n u = (window.pageYOffset || r.scrollTop) - (r.clientTop || 0),\n l = {\n left: i.left + o,\n top: i.top + i.height + u\n },\n s = window.innerWidth,\n a = window.innerHeight,\n c = this.getMenuDimensions(),\n h = this.isMenuOffScreen(l, c);\n h.right && (l.left = \"auto\", l.right = s - i.left - o);\n var d = this.tribute.menuContainer ? this.tribute.menuContainer.offsetHeight : this.getDocument().body.offsetHeight;\n\n if (h.bottom) {\n var f = d - (a - (this.tribute.menuContainer ? this.tribute.menuContainer.getBoundingClientRect() : this.getDocument().body.getBoundingClientRect()).top);\n l.top = \"auto\", l.bottom = f + (a - i.top);\n }\n\n return (h = this.isMenuOffScreen(l, c)).left && (l.left = s > c.width ? o + s - c.width : o, delete l.right), h.top && (l.top = a > c.height ? u + a - c.height : u, delete l.bottom), this.menuContainerIsBody || (l.left = l.left ? l.left - this.tribute.menuContainer.offsetLeft : l.left, l.top = l.top ? l.top - this.tribute.menuContainer.offsetTop : l.top), l;\n }\n }, {\n key: \"scrollIntoView\",\n value: function value(e) {\n var t,\n n = this.menu;\n\n if (void 0 !== n) {\n for (; void 0 === t || 0 === t.height;) {\n if (0 === (t = n.getBoundingClientRect()).height && (void 0 === (n = n.childNodes[0]) || !n.getBoundingClientRect)) return;\n }\n\n var i = t.top,\n r = i + t.height;\n if (i < 0) window.scrollTo(0, window.pageYOffset + t.top - 20);else if (r > window.innerHeight) {\n var o = window.pageYOffset + t.top - 20;\n o - window.pageYOffset > 100 && (o = window.pageYOffset + 100);\n var u = window.pageYOffset - (window.innerHeight - r);\n u > o && (u = o), window.scrollTo(0, u);\n }\n }\n }\n }, {\n key: \"menuContainerIsBody\",\n get: function get() {\n return this.tribute.menuContainer === document.body || !this.tribute.menuContainer;\n }\n }]), t;\n }(),\n s = function () {\n function t(n) {\n e(this, t), this.tribute = n, this.tribute.search = this;\n }\n\n return n(t, [{\n key: \"simpleFilter\",\n value: function value(e, t) {\n var n = this;\n return t.filter(function (t) {\n return n.test(e, t);\n });\n }\n }, {\n key: \"test\",\n value: function value(e, t) {\n return null !== this.match(e, t);\n }\n }, {\n key: \"match\",\n value: function value(e, t, n) {\n n = n || {};\n t.length;\n var i = n.pre || \"\",\n r = n.post || \"\",\n o = n.caseSensitive && t || t.toLowerCase();\n if (n.skip) return {\n rendered: t,\n score: 0\n };\n e = n.caseSensitive && e || e.toLowerCase();\n var u = this.traverse(o, e, 0, 0, []);\n return u ? {\n rendered: this.render(t, u.cache, i, r),\n score: u.score\n } : null;\n }\n }, {\n key: \"traverse\",\n value: function value(e, t, n, i, r) {\n if (t.length === i) return {\n score: this.calculateScore(r),\n cache: r.slice()\n };\n\n if (!(e.length === n || t.length - i > e.length - n)) {\n for (var o, u, l = t[i], s = e.indexOf(l, n); s > -1;) {\n if (r.push(s), u = this.traverse(e, t, s + 1, i + 1, r), r.pop(), !u) return o;\n (!o || o.score < u.score) && (o = u), s = e.indexOf(l, s + 1);\n }\n\n return o;\n }\n }\n }, {\n key: \"calculateScore\",\n value: function value(e) {\n var t = 0,\n n = 1;\n return e.forEach(function (i, r) {\n r > 0 && (e[r - 1] + 1 === i ? n += n + 1 : n = 1), t += n;\n }), t;\n }\n }, {\n key: \"render\",\n value: function value(e, t, n, i) {\n var r = e.substring(0, t[0]);\n return t.forEach(function (o, u) {\n r += n + e[o] + i + e.substring(o + 1, t[u + 1] ? t[u + 1] : e.length);\n }), r;\n }\n }, {\n key: \"filter\",\n value: function value(e, t, n) {\n var i = this;\n return n = n || {}, t.reduce(function (t, r, o, u) {\n var l = r;\n n.extract && ((l = n.extract(r)) || (l = \"\"));\n var s = i.match(e, l, n);\n return null != s && (t[t.length] = {\n string: s.rendered,\n score: s.score,\n index: o,\n original: r\n }), t;\n }, []).sort(function (e, t) {\n var n = t.score - e.score;\n return n || e.index - t.index;\n });\n }\n }]), t;\n }();\n\n return function () {\n function t(n) {\n var i,\n r = this,\n a = n.values,\n c = void 0 === a ? null : a,\n h = n.iframe,\n d = void 0 === h ? null : h,\n f = n.selectClass,\n m = void 0 === f ? \"highlight\" : f,\n p = n.containerClass,\n v = void 0 === p ? \"tribute-container\" : p,\n g = n.itemClass,\n b = void 0 === g ? \"\" : g,\n y = n.trigger,\n w = void 0 === y ? \"@\" : y,\n T = n.autocompleteMode,\n C = void 0 !== T && T,\n S = n.selectTemplate,\n E = void 0 === S ? null : S,\n k = n.menuItemTemplate,\n x = void 0 === k ? null : k,\n M = n.lookup,\n A = void 0 === M ? \"key\" : M,\n L = n.fillAttr,\n I = void 0 === L ? \"value\" : L,\n N = n.collection,\n O = void 0 === N ? null : N,\n D = n.menuContainer,\n P = void 0 === D ? null : D,\n R = n.noMatchTemplate,\n W = void 0 === R ? null : R,\n H = n.requireLeadingSpace,\n B = void 0 === H || H,\n F = n.allowSpaces,\n _ = void 0 !== F && F,\n j = n.replaceTextSuffix,\n Y = void 0 === j ? null : j,\n z = n.positionMenu,\n K = void 0 === z || z,\n q = n.spaceSelectsMatch,\n U = void 0 !== q && q,\n X = n.searchOpts,\n Q = void 0 === X ? {} : X,\n V = n.menuItemLimit,\n G = void 0 === V ? null : V,\n J = n.menuShowMinLength,\n Z = void 0 === J ? 0 : J;\n\n if (e(this, t), this.autocompleteMode = C, this.menuSelected = 0, this.current = {}, this.inputEvent = !1, this.isActive = !1, this.menuContainer = P, this.allowSpaces = _, this.replaceTextSuffix = Y, this.positionMenu = K, this.hasTrailingSpace = !1, this.spaceSelectsMatch = U, this.autocompleteMode && (w = \"\", _ = !1), c) this.collection = [{\n trigger: w,\n iframe: d,\n selectClass: m,\n containerClass: v,\n itemClass: b,\n selectTemplate: (E || t.defaultSelectTemplate).bind(this),\n menuItemTemplate: (x || t.defaultMenuItemTemplate).bind(this),\n noMatchTemplate: (i = W, \"string\" == typeof i ? \"\" === i.trim() ? null : i : \"function\" == typeof i ? i.bind(r) : W || function () {\n return \"
  • No Match Found!
  • \";\n }.bind(r)),\n lookup: A,\n fillAttr: I,\n values: c,\n requireLeadingSpace: B,\n searchOpts: Q,\n menuItemLimit: G,\n menuShowMinLength: Z\n }];else {\n if (!O) throw new Error(\"[Tribute] No collection specified.\");\n this.autocompleteMode && console.warn(\"Tribute in autocomplete mode does not work for collections\"), this.collection = O.map(function (e) {\n return {\n trigger: e.trigger || w,\n iframe: e.iframe || d,\n selectClass: e.selectClass || m,\n containerClass: e.containerClass || v,\n itemClass: e.itemClass || b,\n selectTemplate: (e.selectTemplate || t.defaultSelectTemplate).bind(r),\n menuItemTemplate: (e.menuItemTemplate || t.defaultMenuItemTemplate).bind(r),\n noMatchTemplate: function (e) {\n return \"string\" == typeof e ? \"\" === e.trim() ? null : e : \"function\" == typeof e ? e.bind(r) : W || function () {\n return \"
  • No Match Found!
  • \";\n }.bind(r);\n }(W),\n lookup: e.lookup || A,\n fillAttr: e.fillAttr || I,\n values: e.values,\n requireLeadingSpace: e.requireLeadingSpace,\n searchOpts: e.searchOpts || Q,\n menuItemLimit: e.menuItemLimit || G,\n menuShowMinLength: e.menuShowMinLength || Z\n };\n });\n }\n new l(this), new o(this), new u(this), new s(this);\n }\n\n return n(t, [{\n key: \"triggers\",\n value: function value() {\n return this.collection.map(function (e) {\n return e.trigger;\n });\n }\n }, {\n key: \"attach\",\n value: function value(e) {\n if (!e) throw new Error(\"[Tribute] Must pass in a DOM node or NodeList.\");\n if (\"undefined\" != typeof jQuery && e instanceof jQuery && (e = e.get()), e.constructor === NodeList || e.constructor === HTMLCollection || e.constructor === Array) for (var t = e.length, n = 0; n < t; ++n) {\n this._attach(e[n]);\n } else this._attach(e);\n }\n }, {\n key: \"_attach\",\n value: function value(e) {\n e.hasAttribute(\"data-tribute\") && console.warn(\"Tribute was already bound to \" + e.nodeName), this.ensureEditable(e), this.events.bind(e), e.setAttribute(\"data-tribute\", !0);\n }\n }, {\n key: \"ensureEditable\",\n value: function value(e) {\n if (-1 === t.inputTypes().indexOf(e.nodeName)) {\n if (!e.contentEditable) throw new Error(\"[Tribute] Cannot bind to \" + e.nodeName);\n e.contentEditable = !0;\n }\n }\n }, {\n key: \"createMenu\",\n value: function value(e) {\n var t = this.range.getDocument().createElement(\"div\"),\n n = this.range.getDocument().createElement(\"ul\");\n return t.className = e, t.appendChild(n), this.menuContainer ? this.menuContainer.appendChild(t) : this.range.getDocument().body.appendChild(t);\n }\n }, {\n key: \"showMenuFor\",\n value: function value(e, t) {\n var n = this;\n\n if (!this.isActive || this.current.element !== e || this.current.mentionText !== this.currentMentionTextSnapshot) {\n this.currentMentionTextSnapshot = this.current.mentionText, this.menu || (this.menu = this.createMenu(this.current.collection.containerClass), e.tributeMenu = this.menu, this.menuEvents.bind(this.menu)), this.isActive = !0, this.menuSelected = 0, this.current.mentionText || (this.current.mentionText = \"\");\n\n var r = function r(e) {\n if (n.isActive) {\n var r = n.search.filter(n.current.mentionText, e, {\n pre: n.current.collection.searchOpts.pre || \"\",\n post: n.current.collection.searchOpts.post || \"\",\n skip: n.current.collection.searchOpts.skip,\n extract: function extract(e) {\n if (\"string\" == typeof n.current.collection.lookup) return e[n.current.collection.lookup];\n if (\"function\" == typeof n.current.collection.lookup) return n.current.collection.lookup(e, n.current.mentionText);\n throw new Error(\"Invalid lookup attribute, lookup must be string or function.\");\n }\n });\n n.current.collection.menuItemLimit && (r = r.slice(0, n.current.collection.menuItemLimit)), n.current.filteredItems = r;\n var o = n.menu.querySelector(\"ul\");\n\n if (n.range.positionMenuAtCaret(t), !r.length) {\n var u = new CustomEvent(\"tribute-no-match\", {\n detail: n.menu\n });\n return n.current.element.dispatchEvent(u), void (\"function\" == typeof n.current.collection.noMatchTemplate && !n.current.collection.noMatchTemplate() || !n.current.collection.noMatchTemplate ? n.hideMenu() : \"function\" == typeof n.current.collection.noMatchTemplate ? o.innerHTML = n.current.collection.noMatchTemplate() : o.innerHTML = n.current.collection.noMatchTemplate);\n }\n\n o.innerHTML = \"\";\n var l = n.range.getDocument().createDocumentFragment();\n r.forEach(function (e, t) {\n var r = n.range.getDocument().createElement(\"li\");\n r.setAttribute(\"data-index\", t), r.className = n.current.collection.itemClass, r.addEventListener(\"mousemove\", function (e) {\n var t = i(n._findLiTarget(e.target), 2),\n r = (t[0], t[1]);\n 0 !== e.movementY && n.events.setActiveLi(r);\n }), n.menuSelected === t && r.classList.add(n.current.collection.selectClass), r.innerHTML = n.current.collection.menuItemTemplate(e), l.appendChild(r);\n }), o.appendChild(l);\n }\n };\n\n \"function\" == typeof this.current.collection.values ? this.current.collection.values(this.current.mentionText, r) : r(this.current.collection.values);\n }\n }\n }, {\n key: \"_findLiTarget\",\n value: function value(e) {\n if (!e) return [];\n var t = e.getAttribute(\"data-index\");\n return t ? [e, t] : this._findLiTarget(e.parentNode);\n }\n }, {\n key: \"showMenuForCollection\",\n value: function value(e, t) {\n e !== document.activeElement && this.placeCaretAtEnd(e), this.current.collection = this.collection[t || 0], this.current.externalTrigger = !0, this.current.element = e, e.isContentEditable ? this.insertTextAtCursor(this.current.collection.trigger) : this.insertAtCaret(e, this.current.collection.trigger), this.showMenuFor(e);\n }\n }, {\n key: \"placeCaretAtEnd\",\n value: function value(e) {\n if (e.focus(), void 0 !== window.getSelection && void 0 !== document.createRange) {\n var t = document.createRange();\n t.selectNodeContents(e), t.collapse(!1);\n var n = window.getSelection();\n n.removeAllRanges(), n.addRange(t);\n } else if (void 0 !== document.body.createTextRange) {\n var i = document.body.createTextRange();\n i.moveToElementText(e), i.collapse(!1), i.select();\n }\n }\n }, {\n key: \"insertTextAtCursor\",\n value: function value(e) {\n var t, n;\n (n = (t = window.getSelection()).getRangeAt(0)).deleteContents();\n var i = document.createTextNode(e);\n n.insertNode(i), n.selectNodeContents(i), n.collapse(!1), t.removeAllRanges(), t.addRange(n);\n }\n }, {\n key: \"insertAtCaret\",\n value: function value(e, t) {\n var n = e.scrollTop,\n i = e.selectionStart,\n r = e.value.substring(0, i),\n o = e.value.substring(e.selectionEnd, e.value.length);\n e.value = r + t + o, i += t.length, e.selectionStart = i, e.selectionEnd = i, e.focus(), e.scrollTop = n;\n }\n }, {\n key: \"hideMenu\",\n value: function value() {\n this.menu && (this.menu.style.cssText = \"display: none;\", this.isActive = !1, this.menuSelected = 0, this.current = {});\n }\n }, {\n key: \"selectItemAtIndex\",\n value: function value(e, t) {\n if (\"number\" == typeof (e = parseInt(e)) && !isNaN(e)) {\n var n = this.current.filteredItems[e],\n i = this.current.collection.selectTemplate(n);\n null !== i && this.replaceText(i, t, n);\n }\n }\n }, {\n key: \"replaceText\",\n value: function value(e, t, n) {\n this.range.replaceTriggerText(e, !0, !0, t, n);\n }\n }, {\n key: \"_append\",\n value: function value(e, t, n) {\n if (\"function\" == typeof e.values) throw new Error(\"Unable to append to values, as it is a function.\");\n e.values = n ? t : e.values.concat(t);\n }\n }, {\n key: \"append\",\n value: function value(e, t, n) {\n var i = parseInt(e);\n if (\"number\" != typeof i) throw new Error(\"please provide an index for the collection to update.\");\n var r = this.collection[i];\n\n this._append(r, t, n);\n }\n }, {\n key: \"appendCurrent\",\n value: function value(e, t) {\n if (!this.isActive) throw new Error(\"No active state. Please use append instead and pass an index.\");\n\n this._append(this.current.collection, e, t);\n }\n }, {\n key: \"detach\",\n value: function value(e) {\n if (!e) throw new Error(\"[Tribute] Must pass in a DOM node or NodeList.\");\n if (\"undefined\" != typeof jQuery && e instanceof jQuery && (e = e.get()), e.constructor === NodeList || e.constructor === HTMLCollection || e.constructor === Array) for (var t = e.length, n = 0; n < t; ++n) {\n this._detach(e[n]);\n } else this._detach(e);\n }\n }, {\n key: \"_detach\",\n value: function value(e) {\n var t = this;\n this.events.unbind(e), e.tributeMenu && this.menuEvents.unbind(e.tributeMenu), setTimeout(function () {\n e.removeAttribute(\"data-tribute\"), t.isActive = !1, e.tributeMenu && e.tributeMenu.remove();\n });\n }\n }, {\n key: \"isActive\",\n get: function get() {\n return this._isActive;\n },\n set: function set(e) {\n if (this._isActive != e && (this._isActive = e, this.current.element)) {\n var t = new CustomEvent(\"tribute-active-\".concat(e));\n this.current.element.dispatchEvent(t);\n }\n }\n }], [{\n key: \"defaultSelectTemplate\",\n value: function value(e) {\n return void 0 === e ? \"\".concat(this.current.collection.trigger).concat(this.current.mentionText) : this.range.isContentEditable(this.current.element) ? '' + (this.current.collection.trigger + e.original[this.current.collection.fillAttr]) + \"\" : this.current.collection.trigger + e.original[this.current.collection.fillAttr];\n }\n }, {\n key: \"defaultMenuItemTemplate\",\n value: function value(e) {\n return e.string;\n }\n }, {\n key: \"inputTypes\",\n value: function value() {\n return [\"TEXTAREA\", \"INPUT\"];\n }\n }]), t;\n }();\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form',\n formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function processResponse(response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function disableFormElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function isXhrRedirect(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*\nTurbolinks 5.2.0\nCopyright © 2018 Basecamp, LLC\n */\n(function () {\n var t = this;\n (function () {\n (function () {\n this.Turbolinks = {\n supported: function () {\n return null != window.history.pushState && null != window.requestAnimationFrame && null != window.addEventListener;\n }(),\n visit: function visit(t, r) {\n return e.controller.visit(t, r);\n },\n clearCache: function clearCache() {\n return e.controller.clearCache();\n },\n setProgressBarDelay: function setProgressBarDelay(t) {\n return e.controller.setProgressBarDelay(t);\n }\n };\n }).call(this);\n }).call(t);\n var e = t.Turbolinks;\n (function () {\n (function () {\n var t,\n r,\n n,\n o = [].slice;\n e.copyObject = function (t) {\n var e, r, n;\n r = {};\n\n for (e in t) {\n n = t[e], r[e] = n;\n }\n\n return r;\n }, e.closest = function (e, r) {\n return t.call(e, r);\n }, t = function () {\n var t, e;\n return t = document.documentElement, null != (e = t.closest) ? e : function (t) {\n var e;\n\n for (e = this; e;) {\n if (e.nodeType === Node.ELEMENT_NODE && r.call(e, t)) return e;\n e = e.parentNode;\n }\n };\n }(), e.defer = function (t) {\n return setTimeout(t, 1);\n }, e.throttle = function (t) {\n var e;\n return e = null, function () {\n var r;\n return r = 1 <= arguments.length ? o.call(arguments, 0) : [], null != e ? e : e = requestAnimationFrame(function (n) {\n return function () {\n return e = null, t.apply(n, r);\n };\n }(this));\n };\n }, e.dispatch = function (t, e) {\n var r, o, i, s, a, u;\n return a = null != e ? e : {}, u = a.target, r = a.cancelable, o = a.data, i = document.createEvent(\"Events\"), i.initEvent(t, !0, r === !0), i.data = null != o ? o : {}, i.cancelable && !n && (s = i.preventDefault, i.preventDefault = function () {\n return this.defaultPrevented || Object.defineProperty(this, \"defaultPrevented\", {\n get: function get() {\n return !0;\n }\n }), s.call(this);\n }), (null != u ? u : document).dispatchEvent(i), i;\n }, n = function () {\n var t;\n return t = document.createEvent(\"Events\"), t.initEvent(\"test\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }(), e.match = function (t, e) {\n return r.call(t, e);\n }, r = function () {\n var t, e, r, n;\n return t = document.documentElement, null != (e = null != (r = null != (n = t.matchesSelector) ? n : t.webkitMatchesSelector) ? r : t.msMatchesSelector) ? e : t.mozMatchesSelector;\n }(), e.uuid = function () {\n var t, e, r;\n\n for (r = \"\", t = e = 1; 36 >= e; t = ++e) {\n r += 9 === t || 14 === t || 19 === t || 24 === t ? \"-\" : 15 === t ? \"4\" : 20 === t ? (Math.floor(4 * Math.random()) + 8).toString(16) : Math.floor(15 * Math.random()).toString(16);\n }\n\n return r;\n };\n }).call(this), function () {\n e.Location = function () {\n function t(t) {\n var e, r;\n null == t && (t = \"\"), r = document.createElement(\"a\"), r.href = t.toString(), this.absoluteURL = r.href, e = r.hash.length, 2 > e ? this.requestURL = this.absoluteURL : (this.requestURL = this.absoluteURL.slice(0, -e), this.anchor = r.hash.slice(1));\n }\n\n var e, r, n, o;\n return t.wrap = function (t) {\n return t instanceof this ? t : new this(t);\n }, t.prototype.getOrigin = function () {\n return this.absoluteURL.split(\"/\", 3).join(\"/\");\n }, t.prototype.getPath = function () {\n var t, e;\n return null != (t = null != (e = this.requestURL.match(/\\/\\/[^\\/]*(\\/[^?;]*)/)) ? e[1] : void 0) ? t : \"/\";\n }, t.prototype.getPathComponents = function () {\n return this.getPath().split(\"/\").slice(1);\n }, t.prototype.getLastPathComponent = function () {\n return this.getPathComponents().slice(-1)[0];\n }, t.prototype.getExtension = function () {\n var t, e;\n return null != (t = null != (e = this.getLastPathComponent().match(/\\.[^.]*$/)) ? e[0] : void 0) ? t : \"\";\n }, t.prototype.isHTML = function () {\n return this.getExtension().match(/^(?:|\\.(?:htm|html|xhtml))$/);\n }, t.prototype.isPrefixedBy = function (t) {\n var e;\n return e = r(t), this.isEqualTo(t) || o(this.absoluteURL, e);\n }, t.prototype.isEqualTo = function (t) {\n return this.absoluteURL === (null != t ? t.absoluteURL : void 0);\n }, t.prototype.toCacheKey = function () {\n return this.requestURL;\n }, t.prototype.toJSON = function () {\n return this.absoluteURL;\n }, t.prototype.toString = function () {\n return this.absoluteURL;\n }, t.prototype.valueOf = function () {\n return this.absoluteURL;\n }, r = function r(t) {\n return e(t.getOrigin() + t.getPath());\n }, e = function e(t) {\n return n(t, \"/\") ? t : t + \"/\";\n }, o = function o(t, e) {\n return t.slice(0, e.length) === e;\n }, n = function n(t, e) {\n return t.slice(-e.length) === e;\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t, e) {\n return function () {\n return _t.apply(e, arguments);\n };\n };\n\n e.HttpRequest = function () {\n function r(r, n, o) {\n this.delegate = r, this.requestCanceled = t(this.requestCanceled, this), this.requestTimedOut = t(this.requestTimedOut, this), this.requestFailed = t(this.requestFailed, this), this.requestLoaded = t(this.requestLoaded, this), this.requestProgressed = t(this.requestProgressed, this), this.url = e.Location.wrap(n).requestURL, this.referrer = e.Location.wrap(o).absoluteURL, this.createXHR();\n }\n\n return r.NETWORK_FAILURE = 0, r.TIMEOUT_FAILURE = -1, r.timeout = 60, r.prototype.send = function () {\n var t;\n return this.xhr && !this.sent ? (this.notifyApplicationBeforeRequestStart(), this.setProgress(0), this.xhr.send(), this.sent = !0, \"function\" == typeof (t = this.delegate).requestStarted ? t.requestStarted() : void 0) : void 0;\n }, r.prototype.cancel = function () {\n return this.xhr && this.sent ? this.xhr.abort() : void 0;\n }, r.prototype.requestProgressed = function (t) {\n return t.lengthComputable ? this.setProgress(t.loaded / t.total) : void 0;\n }, r.prototype.requestLoaded = function () {\n return this.endRequest(function (t) {\n return function () {\n var e;\n return 200 <= (e = t.xhr.status) && 300 > e ? t.delegate.requestCompletedWithResponse(t.xhr.responseText, t.xhr.getResponseHeader(\"Turbolinks-Location\")) : (t.failed = !0, t.delegate.requestFailedWithStatusCode(t.xhr.status, t.xhr.responseText));\n };\n }(this));\n }, r.prototype.requestFailed = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.NETWORK_FAILURE);\n };\n }(this));\n }, r.prototype.requestTimedOut = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.TIMEOUT_FAILURE);\n };\n }(this));\n }, r.prototype.requestCanceled = function () {\n return this.endRequest();\n }, r.prototype.notifyApplicationBeforeRequestStart = function () {\n return e.dispatch(\"turbolinks:request-start\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.notifyApplicationAfterRequestEnd = function () {\n return e.dispatch(\"turbolinks:request-end\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.createXHR = function () {\n return this.xhr = new XMLHttpRequest(), this.xhr.open(\"GET\", this.url, !0), this.xhr.timeout = 1e3 * this.constructor.timeout, this.xhr.setRequestHeader(\"Accept\", \"text/html, application/xhtml+xml\"), this.xhr.setRequestHeader(\"Turbolinks-Referrer\", this.referrer), this.xhr.onprogress = this.requestProgressed, this.xhr.onload = this.requestLoaded, this.xhr.onerror = this.requestFailed, this.xhr.ontimeout = this.requestTimedOut, this.xhr.onabort = this.requestCanceled;\n }, r.prototype.endRequest = function (t) {\n return this.xhr ? (this.notifyApplicationAfterRequestEnd(), null != t && t.call(this), this.destroy()) : void 0;\n }, r.prototype.setProgress = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.delegate).requestProgressed ? e.requestProgressed(this.progress) : void 0;\n }, r.prototype.destroy = function () {\n var t;\n return this.setProgress(1), \"function\" == typeof (t = this.delegate).requestFinished && t.requestFinished(), this.delegate = null, this.xhr = null;\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t2, e) {\n return function () {\n return _t2.apply(e, arguments);\n };\n };\n\n e.ProgressBar = function () {\n function e() {\n this.trickle = t(this.trickle, this), this.stylesheetElement = this.createStylesheetElement(), this.progressElement = this.createProgressElement();\n }\n\n var r;\n return r = 300, e.defaultCSS = \".turbolinks-progress-bar {\\n position: fixed;\\n display: block;\\n top: 0;\\n left: 0;\\n height: 3px;\\n background: #0076ff;\\n z-index: 9999;\\n transition: width \" + r + \"ms ease-out, opacity \" + r / 2 + \"ms \" + r / 2 + \"ms ease-in;\\n transform: translate3d(0, 0, 0);\\n}\", e.prototype.show = function () {\n return this.visible ? void 0 : (this.visible = !0, this.installStylesheetElement(), this.installProgressElement(), this.startTrickling());\n }, e.prototype.hide = function () {\n return this.visible && !this.hiding ? (this.hiding = !0, this.fadeProgressElement(function (t) {\n return function () {\n return t.uninstallProgressElement(), t.stopTrickling(), t.visible = !1, t.hiding = !1;\n };\n }(this))) : void 0;\n }, e.prototype.setValue = function (t) {\n return this.value = t, this.refresh();\n }, e.prototype.installStylesheetElement = function () {\n return document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\n }, e.prototype.installProgressElement = function () {\n return this.progressElement.style.width = 0, this.progressElement.style.opacity = 1, document.documentElement.insertBefore(this.progressElement, document.body), this.refresh();\n }, e.prototype.fadeProgressElement = function (t) {\n return this.progressElement.style.opacity = 0, setTimeout(t, 1.5 * r);\n }, e.prototype.uninstallProgressElement = function () {\n return this.progressElement.parentNode ? document.documentElement.removeChild(this.progressElement) : void 0;\n }, e.prototype.startTrickling = function () {\n return null != this.trickleInterval ? this.trickleInterval : this.trickleInterval = setInterval(this.trickle, r);\n }, e.prototype.stopTrickling = function () {\n return clearInterval(this.trickleInterval), this.trickleInterval = null;\n }, e.prototype.trickle = function () {\n return this.setValue(this.value + Math.random() / 100);\n }, e.prototype.refresh = function () {\n return requestAnimationFrame(function (t) {\n return function () {\n return t.progressElement.style.width = 10 + 90 * t.value + \"%\";\n };\n }(this));\n }, e.prototype.createStylesheetElement = function () {\n var t;\n return t = document.createElement(\"style\"), t.type = \"text/css\", t.textContent = this.constructor.defaultCSS, t;\n }, e.prototype.createProgressElement = function () {\n var t;\n return t = document.createElement(\"div\"), t.className = \"turbolinks-progress-bar\", t;\n }, e;\n }();\n }.call(this), function () {\n var t = function t(_t3, e) {\n return function () {\n return _t3.apply(e, arguments);\n };\n };\n\n e.BrowserAdapter = function () {\n function r(r) {\n this.controller = r, this.showProgressBar = t(this.showProgressBar, this), this.progressBar = new e.ProgressBar();\n }\n\n var n, o, i;\n return i = e.HttpRequest, n = i.NETWORK_FAILURE, o = i.TIMEOUT_FAILURE, r.prototype.visitProposedToLocationWithAction = function (t, e) {\n return this.controller.startVisitToLocationWithAction(t, e);\n }, r.prototype.visitStarted = function (t) {\n return t.issueRequest(), t.changeHistory(), t.loadCachedSnapshot();\n }, r.prototype.visitRequestStarted = function (t) {\n return this.progressBar.setValue(0), t.hasCachedSnapshot() || \"restore\" !== t.action ? this.showProgressBarAfterDelay() : this.showProgressBar();\n }, r.prototype.visitRequestProgressed = function (t) {\n return this.progressBar.setValue(t.progress);\n }, r.prototype.visitRequestCompleted = function (t) {\n return t.loadResponse();\n }, r.prototype.visitRequestFailedWithStatusCode = function (t, e) {\n switch (e) {\n case n:\n case o:\n return this.reload();\n\n default:\n return t.loadResponse();\n }\n }, r.prototype.visitRequestFinished = function (t) {\n return this.hideProgressBar();\n }, r.prototype.visitCompleted = function (t) {\n return t.followRedirect();\n }, r.prototype.pageInvalidated = function () {\n return this.reload();\n }, r.prototype.showProgressBarAfterDelay = function () {\n return this.progressBarTimeout = setTimeout(this.showProgressBar, this.controller.progressBarDelay);\n }, r.prototype.showProgressBar = function () {\n return this.progressBar.show();\n }, r.prototype.hideProgressBar = function () {\n return this.progressBar.hide(), clearTimeout(this.progressBarTimeout);\n }, r.prototype.reload = function () {\n return window.location.reload();\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t4, e) {\n return function () {\n return _t4.apply(e, arguments);\n };\n };\n\n e.History = function () {\n function r(e) {\n this.delegate = e, this.onPageLoad = t(this.onPageLoad, this), this.onPopState = t(this.onPopState, this);\n }\n\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"popstate\", this.onPopState, !1), addEventListener(\"load\", this.onPageLoad, !1), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"popstate\", this.onPopState, !1), removeEventListener(\"load\", this.onPageLoad, !1), this.started = !1) : void 0;\n }, r.prototype.push = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"push\", t, r);\n }, r.prototype.replace = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"replace\", t, r);\n }, r.prototype.onPopState = function (t) {\n var r, n, o, i;\n return this.shouldHandlePopState() && (i = null != (n = t.state) ? n.turbolinks : void 0) ? (r = e.Location.wrap(window.location), o = i.restorationIdentifier, this.delegate.historyPoppedToLocationWithRestorationIdentifier(r, o)) : void 0;\n }, r.prototype.onPageLoad = function (t) {\n return e.defer(function (t) {\n return function () {\n return t.pageLoaded = !0;\n };\n }(this));\n }, r.prototype.shouldHandlePopState = function () {\n return this.pageIsLoaded();\n }, r.prototype.pageIsLoaded = function () {\n return this.pageLoaded || \"complete\" === document.readyState;\n }, r.prototype.update = function (t, e, r) {\n var n;\n return n = {\n turbolinks: {\n restorationIdentifier: r\n }\n }, history[t + \"State\"](n, null, e);\n }, r;\n }();\n }.call(this), function () {\n e.HeadDetails = function () {\n function t(t) {\n var e, r, n, s, a, u;\n\n for (this.elements = {}, n = 0, a = t.length; a > n; n++) {\n u = t[n], u.nodeType === Node.ELEMENT_NODE && (s = u.outerHTML, r = null != (e = this.elements)[s] ? e[s] : e[s] = {\n type: i(u),\n tracked: o(u),\n elements: []\n }, r.elements.push(u));\n }\n }\n\n var e, r, n, o, i;\n return t.fromHeadElement = function (t) {\n var e;\n return new this(null != (e = null != t ? t.childNodes : void 0) ? e : []);\n }, t.prototype.hasElementWithKey = function (t) {\n return t in this.elements;\n }, t.prototype.getTrackedElementSignature = function () {\n var t, e;\n return function () {\n var r, n;\n r = this.elements, n = [];\n\n for (t in r) {\n e = r[t].tracked, e && n.push(t);\n }\n\n return n;\n }.call(this).join(\"\");\n }, t.prototype.getScriptElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"script\", t);\n }, t.prototype.getStylesheetElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"stylesheet\", t);\n }, t.prototype.getElementsMatchingTypeNotInDetails = function (t, e) {\n var r, n, o, i, s, a;\n o = this.elements, s = [];\n\n for (n in o) {\n i = o[n], a = i.type, r = i.elements, a !== t || e.hasElementWithKey(n) || s.push(r[0]);\n }\n\n return s;\n }, t.prototype.getProvisionalElements = function () {\n var t, e, r, n, o, i, s;\n r = [], n = this.elements;\n\n for (e in n) {\n o = n[e], s = o.type, i = o.tracked, t = o.elements, null != s || i ? t.length > 1 && r.push.apply(r, t.slice(1)) : r.push.apply(r, t);\n }\n\n return r;\n }, t.prototype.getMetaValue = function (t) {\n var e;\n return null != (e = this.findMetaElementByName(t)) ? e.getAttribute(\"content\") : void 0;\n }, t.prototype.findMetaElementByName = function (t) {\n var r, n, o, i;\n r = void 0, i = this.elements;\n\n for (o in i) {\n n = i[o].elements, e(n[0], t) && (r = n[0]);\n }\n\n return r;\n }, i = function i(t) {\n return r(t) ? \"script\" : n(t) ? \"stylesheet\" : void 0;\n }, o = function o(t) {\n return \"reload\" === t.getAttribute(\"data-turbolinks-track\");\n }, r = function r(t) {\n var e;\n return e = t.tagName.toLowerCase(), \"script\" === e;\n }, n = function n(t) {\n var e;\n return e = t.tagName.toLowerCase(), \"style\" === e || \"link\" === e && \"stylesheet\" === t.getAttribute(\"rel\");\n }, e = function e(t, _e) {\n var r;\n return r = t.tagName.toLowerCase(), \"meta\" === r && t.getAttribute(\"name\") === _e;\n }, t;\n }();\n }.call(this), function () {\n e.Snapshot = function () {\n function t(t, e) {\n this.headDetails = t, this.bodyElement = e;\n }\n\n return t.wrap = function (t) {\n return t instanceof this ? t : \"string\" == typeof t ? this.fromHTMLString(t) : this.fromHTMLElement(t);\n }, t.fromHTMLString = function (t) {\n var e;\n return e = document.createElement(\"html\"), e.innerHTML = t, this.fromHTMLElement(e);\n }, t.fromHTMLElement = function (t) {\n var r, n, o, i;\n return o = t.querySelector(\"head\"), r = null != (i = t.querySelector(\"body\")) ? i : document.createElement(\"body\"), n = e.HeadDetails.fromHeadElement(o), new this(n, r);\n }, t.prototype.clone = function () {\n return new this.constructor(this.headDetails, this.bodyElement.cloneNode(!0));\n }, t.prototype.getRootLocation = function () {\n var t, r;\n return r = null != (t = this.getSetting(\"root\")) ? t : \"/\", new e.Location(r);\n }, t.prototype.getCacheControlValue = function () {\n return this.getSetting(\"cache-control\");\n }, t.prototype.getElementForAnchor = function (t) {\n try {\n return this.bodyElement.querySelector(\"[id='\" + t + \"'], a[name='\" + t + \"']\");\n } catch (e) {}\n }, t.prototype.getPermanentElements = function () {\n return this.bodyElement.querySelectorAll(\"[id][data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementById = function (t) {\n return this.bodyElement.querySelector(\"#\" + t + \"[data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementsPresentInSnapshot = function (t) {\n var e, r, n, o, i;\n\n for (o = this.getPermanentElements(), i = [], r = 0, n = o.length; n > r; r++) {\n e = o[r], t.getPermanentElementById(e.id) && i.push(e);\n }\n\n return i;\n }, t.prototype.findFirstAutofocusableElement = function () {\n return this.bodyElement.querySelector(\"[autofocus]\");\n }, t.prototype.hasAnchor = function (t) {\n return null != this.getElementForAnchor(t);\n }, t.prototype.isPreviewable = function () {\n return \"no-preview\" !== this.getCacheControlValue();\n }, t.prototype.isCacheable = function () {\n return \"no-cache\" !== this.getCacheControlValue();\n }, t.prototype.isVisitable = function () {\n return \"reload\" !== this.getSetting(\"visit-control\");\n }, t.prototype.getSetting = function (t) {\n return this.headDetails.getMetaValue(\"turbolinks-\" + t);\n }, t;\n }();\n }.call(this), function () {\n var t = [].slice;\n\n e.Renderer = function () {\n function e() {}\n\n var r;\n return e.render = function () {\n var e, r, n, o;\n return n = arguments[0], r = arguments[1], e = 3 <= arguments.length ? t.call(arguments, 2) : [], o = function (t, e, r) {\n r.prototype = t.prototype;\n var n = new r(),\n o = t.apply(n, e);\n return Object(o) === o ? o : n;\n }(this, e, function () {}), o.delegate = n, o.render(r), o;\n }, e.prototype.renderView = function (t) {\n return this.delegate.viewWillRender(this.newBody), t(), this.delegate.viewRendered(this.newBody);\n }, e.prototype.invalidateView = function () {\n return this.delegate.viewInvalidated();\n }, e.prototype.createScriptElement = function (t) {\n var e;\n return \"false\" === t.getAttribute(\"data-turbolinks-eval\") ? t : (e = document.createElement(\"script\"), e.textContent = t.textContent, e.async = !1, r(e, t), e);\n }, r = function r(t, e) {\n var r, n, o, i, s, a, u;\n\n for (i = e.attributes, a = [], r = 0, n = i.length; n > r; r++) {\n s = i[r], o = s.name, u = s.value, a.push(t.setAttribute(o, u));\n }\n\n return a;\n }, e;\n }();\n }.call(this), function () {\n var t,\n r,\n n = function n(t, e) {\n function r() {\n this.constructor = t;\n }\n\n for (var n in e) {\n o.call(e, n) && (t[n] = e[n]);\n }\n\n return r.prototype = e.prototype, t.prototype = new r(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n e.SnapshotRenderer = function (e) {\n function o(t, e, r) {\n this.currentSnapshot = t, this.newSnapshot = e, this.isPreview = r, this.currentHeadDetails = this.currentSnapshot.headDetails, this.newHeadDetails = this.newSnapshot.headDetails, this.currentBody = this.currentSnapshot.bodyElement, this.newBody = this.newSnapshot.bodyElement;\n }\n\n return n(o, e), o.prototype.render = function (t) {\n return this.shouldRender() ? (this.mergeHead(), this.renderView(function (e) {\n return function () {\n return e.replaceBody(), e.isPreview || e.focusFirstAutofocusableElement(), t();\n };\n }(this))) : this.invalidateView();\n }, o.prototype.mergeHead = function () {\n return this.copyNewHeadStylesheetElements(), this.copyNewHeadScriptElements(), this.removeCurrentHeadProvisionalElements(), this.copyNewHeadProvisionalElements();\n }, o.prototype.replaceBody = function () {\n var t;\n return t = this.relocateCurrentBodyPermanentElements(), this.activateNewBodyScriptElements(), this.assignNewBody(), this.replacePlaceholderElementsWithClonedPermanentElements(t);\n }, o.prototype.shouldRender = function () {\n return this.newSnapshot.isVisitable() && this.trackedElementsAreIdentical();\n }, o.prototype.trackedElementsAreIdentical = function () {\n return this.currentHeadDetails.getTrackedElementSignature() === this.newHeadDetails.getTrackedElementSignature();\n }, o.prototype.copyNewHeadStylesheetElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadStylesheetElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(t));\n }\n\n return o;\n }, o.prototype.copyNewHeadScriptElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadScriptElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(this.createScriptElement(t)));\n }\n\n return o;\n }, o.prototype.removeCurrentHeadProvisionalElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getCurrentHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.removeChild(t));\n }\n\n return o;\n }, o.prototype.copyNewHeadProvisionalElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(t));\n }\n\n return o;\n }, o.prototype.relocateCurrentBodyPermanentElements = function () {\n var e, n, o, i, s, a, u;\n\n for (a = this.getCurrentBodyPermanentElements(), u = [], e = 0, n = a.length; n > e; e++) {\n i = a[e], s = t(i), o = this.newSnapshot.getPermanentElementById(i.id), r(i, s.element), r(o, i), u.push(s);\n }\n\n return u;\n }, o.prototype.replacePlaceholderElementsWithClonedPermanentElements = function (t) {\n var e, n, o, i, s, a, u;\n\n for (u = [], o = 0, i = t.length; i > o; o++) {\n a = t[o], n = a.element, s = a.permanentElement, e = s.cloneNode(!0), u.push(r(n, e));\n }\n\n return u;\n }, o.prototype.activateNewBodyScriptElements = function () {\n var t, e, n, o, i, s;\n\n for (i = this.getNewBodyScriptElements(), s = [], e = 0, o = i.length; o > e; e++) {\n n = i[e], t = this.createScriptElement(n), s.push(r(n, t));\n }\n\n return s;\n }, o.prototype.assignNewBody = function () {\n return document.body = this.newBody;\n }, o.prototype.focusFirstAutofocusableElement = function () {\n var t;\n return null != (t = this.newSnapshot.findFirstAutofocusableElement()) ? t.focus() : void 0;\n }, o.prototype.getNewHeadStylesheetElements = function () {\n return this.newHeadDetails.getStylesheetElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getNewHeadScriptElements = function () {\n return this.newHeadDetails.getScriptElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getCurrentHeadProvisionalElements = function () {\n return this.currentHeadDetails.getProvisionalElements();\n }, o.prototype.getNewHeadProvisionalElements = function () {\n return this.newHeadDetails.getProvisionalElements();\n }, o.prototype.getCurrentBodyPermanentElements = function () {\n return this.currentSnapshot.getPermanentElementsPresentInSnapshot(this.newSnapshot);\n }, o.prototype.getNewBodyScriptElements = function () {\n return this.newBody.querySelectorAll(\"script\");\n }, o;\n }(e.Renderer), t = function t(_t5) {\n var e;\n return e = document.createElement(\"meta\"), e.setAttribute(\"name\", \"turbolinks-permanent-placeholder\"), e.setAttribute(\"content\", _t5.id), {\n element: e,\n permanentElement: _t5\n };\n }, r = function r(t, e) {\n var r;\n return (r = t.parentNode) ? r.replaceChild(e, t) : void 0;\n };\n }.call(this), function () {\n var t = function t(_t6, e) {\n function n() {\n this.constructor = _t6;\n }\n\n for (var o in e) {\n r.call(e, o) && (_t6[o] = e[o]);\n }\n\n return n.prototype = e.prototype, _t6.prototype = new n(), _t6.__super__ = e.prototype, _t6;\n },\n r = {}.hasOwnProperty;\n\n e.ErrorRenderer = function (e) {\n function r(t) {\n var e;\n e = document.createElement(\"html\"), e.innerHTML = t, this.newHead = e.querySelector(\"head\"), this.newBody = e.querySelector(\"body\");\n }\n\n return t(r, e), r.prototype.render = function (t) {\n return this.renderView(function (e) {\n return function () {\n return e.replaceHeadAndBody(), e.activateBodyScriptElements(), t();\n };\n }(this));\n }, r.prototype.replaceHeadAndBody = function () {\n var t, e;\n return e = document.head, t = document.body, e.parentNode.replaceChild(this.newHead, e), t.parentNode.replaceChild(this.newBody, t);\n }, r.prototype.activateBodyScriptElements = function () {\n var t, e, r, n, o, i;\n\n for (n = this.getScriptElements(), i = [], e = 0, r = n.length; r > e; e++) {\n o = n[e], t = this.createScriptElement(o), i.push(o.parentNode.replaceChild(t, o));\n }\n\n return i;\n }, r.prototype.getScriptElements = function () {\n return document.documentElement.querySelectorAll(\"script\");\n }, r;\n }(e.Renderer);\n }.call(this), function () {\n e.View = function () {\n function t(t) {\n this.delegate = t, this.htmlElement = document.documentElement;\n }\n\n return t.prototype.getRootLocation = function () {\n return this.getSnapshot().getRootLocation();\n }, t.prototype.getElementForAnchor = function (t) {\n return this.getSnapshot().getElementForAnchor(t);\n }, t.prototype.getSnapshot = function () {\n return e.Snapshot.fromHTMLElement(this.htmlElement);\n }, t.prototype.render = function (t, e) {\n var r, n, o;\n return o = t.snapshot, r = t.error, n = t.isPreview, this.markAsPreview(n), null != o ? this.renderSnapshot(o, n, e) : this.renderError(r, e);\n }, t.prototype.markAsPreview = function (t) {\n return t ? this.htmlElement.setAttribute(\"data-turbolinks-preview\", \"\") : this.htmlElement.removeAttribute(\"data-turbolinks-preview\");\n }, t.prototype.renderSnapshot = function (t, r, n) {\n return e.SnapshotRenderer.render(this.delegate, n, this.getSnapshot(), e.Snapshot.wrap(t), r);\n }, t.prototype.renderError = function (t, r) {\n return e.ErrorRenderer.render(this.delegate, r, t);\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t7, e) {\n return function () {\n return _t7.apply(e, arguments);\n };\n };\n\n e.ScrollManager = function () {\n function r(r) {\n this.delegate = r, this.onScroll = t(this.onScroll, this), this.onScroll = e.throttle(this.onScroll);\n }\n\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"scroll\", this.onScroll, !1), this.onScroll(), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"scroll\", this.onScroll, !1), this.started = !1) : void 0;\n }, r.prototype.scrollToElement = function (t) {\n return t.scrollIntoView();\n }, r.prototype.scrollToPosition = function (t) {\n var e, r;\n return e = t.x, r = t.y, window.scrollTo(e, r);\n }, r.prototype.onScroll = function (t) {\n return this.updatePosition({\n x: window.pageXOffset,\n y: window.pageYOffset\n });\n }, r.prototype.updatePosition = function (t) {\n var e;\n return this.position = t, null != (e = this.delegate) ? e.scrollPositionChanged(this.position) : void 0;\n }, r;\n }();\n }.call(this), function () {\n e.SnapshotCache = function () {\n function t(t) {\n this.size = t, this.keys = [], this.snapshots = {};\n }\n\n var r;\n return t.prototype.has = function (t) {\n var e;\n return e = r(t), e in this.snapshots;\n }, t.prototype.get = function (t) {\n var e;\n if (this.has(t)) return e = this.read(t), this.touch(t), e;\n }, t.prototype.put = function (t, e) {\n return this.write(t, e), this.touch(t), e;\n }, t.prototype.read = function (t) {\n var e;\n return e = r(t), this.snapshots[e];\n }, t.prototype.write = function (t, e) {\n var n;\n return n = r(t), this.snapshots[n] = e;\n }, t.prototype.touch = function (t) {\n var e, n;\n return n = r(t), e = this.keys.indexOf(n), e > -1 && this.keys.splice(e, 1), this.keys.unshift(n), this.trim();\n }, t.prototype.trim = function () {\n var t, e, r, n, o;\n\n for (n = this.keys.splice(this.size), o = [], t = 0, r = n.length; r > t; t++) {\n e = n[t], o.push(delete this.snapshots[e]);\n }\n\n return o;\n }, r = function r(t) {\n return e.Location.wrap(t).toCacheKey();\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t8, e) {\n return function () {\n return _t8.apply(e, arguments);\n };\n };\n\n e.Visit = function () {\n function r(r, n, o) {\n this.controller = r, this.action = o, this.performScroll = t(this.performScroll, this), this.identifier = e.uuid(), this.location = e.Location.wrap(n), this.adapter = this.controller.adapter, this.state = \"initialized\", this.timingMetrics = {};\n }\n\n var n;\n return r.prototype.start = function () {\n return \"initialized\" === this.state ? (this.recordTimingMetric(\"visitStart\"), this.state = \"started\", this.adapter.visitStarted(this)) : void 0;\n }, r.prototype.cancel = function () {\n var t;\n return \"started\" === this.state ? (null != (t = this.request) && t.cancel(), this.cancelRender(), this.state = \"canceled\") : void 0;\n }, r.prototype.complete = function () {\n var t;\n return \"started\" === this.state ? (this.recordTimingMetric(\"visitEnd\"), this.state = \"completed\", \"function\" == typeof (t = this.adapter).visitCompleted && t.visitCompleted(this), this.controller.visitCompleted(this)) : void 0;\n }, r.prototype.fail = function () {\n var t;\n return \"started\" === this.state ? (this.state = \"failed\", \"function\" == typeof (t = this.adapter).visitFailed ? t.visitFailed(this) : void 0) : void 0;\n }, r.prototype.changeHistory = function () {\n var t, e;\n return this.historyChanged ? void 0 : (t = this.location.isEqualTo(this.referrer) ? \"replace\" : this.action, e = n(t), this.controller[e](this.location, this.restorationIdentifier), this.historyChanged = !0);\n }, r.prototype.issueRequest = function () {\n return this.shouldIssueRequest() && null == this.request ? (this.progress = 0, this.request = new e.HttpRequest(this, this.location, this.referrer), this.request.send()) : void 0;\n }, r.prototype.getCachedSnapshot = function () {\n var t;\n return !(t = this.controller.getCachedSnapshotForLocation(this.location)) || null != this.location.anchor && !t.hasAnchor(this.location.anchor) || \"restore\" !== this.action && !t.isPreviewable() ? void 0 : t;\n }, r.prototype.hasCachedSnapshot = function () {\n return null != this.getCachedSnapshot();\n }, r.prototype.loadCachedSnapshot = function () {\n var t, e;\n return (e = this.getCachedSnapshot()) ? (t = this.shouldIssueRequest(), this.render(function () {\n var r;\n return this.cacheSnapshot(), this.controller.render({\n snapshot: e,\n isPreview: t\n }, this.performScroll), \"function\" == typeof (r = this.adapter).visitRendered && r.visitRendered(this), t ? void 0 : this.complete();\n })) : void 0;\n }, r.prototype.loadResponse = function () {\n return null != this.response ? this.render(function () {\n var t, e;\n return this.cacheSnapshot(), this.request.failed ? (this.controller.render({\n error: this.response\n }, this.performScroll), \"function\" == typeof (t = this.adapter).visitRendered && t.visitRendered(this), this.fail()) : (this.controller.render({\n snapshot: this.response\n }, this.performScroll), \"function\" == typeof (e = this.adapter).visitRendered && e.visitRendered(this), this.complete());\n }) : void 0;\n }, r.prototype.followRedirect = function () {\n return this.redirectedToLocation && !this.followedRedirect ? (this.location = this.redirectedToLocation, this.controller.replaceHistoryWithLocationAndRestorationIdentifier(this.redirectedToLocation, this.restorationIdentifier), this.followedRedirect = !0) : void 0;\n }, r.prototype.requestStarted = function () {\n var t;\n return this.recordTimingMetric(\"requestStart\"), \"function\" == typeof (t = this.adapter).visitRequestStarted ? t.visitRequestStarted(this) : void 0;\n }, r.prototype.requestProgressed = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.adapter).visitRequestProgressed ? e.visitRequestProgressed(this) : void 0;\n }, r.prototype.requestCompletedWithResponse = function (t, r) {\n return this.response = t, null != r && (this.redirectedToLocation = e.Location.wrap(r)), this.adapter.visitRequestCompleted(this);\n }, r.prototype.requestFailedWithStatusCode = function (t, e) {\n return this.response = e, this.adapter.visitRequestFailedWithStatusCode(this, t);\n }, r.prototype.requestFinished = function () {\n var t;\n return this.recordTimingMetric(\"requestEnd\"), \"function\" == typeof (t = this.adapter).visitRequestFinished ? t.visitRequestFinished(this) : void 0;\n }, r.prototype.performScroll = function () {\n return this.scrolled ? void 0 : (\"restore\" === this.action ? this.scrollToRestoredPosition() || this.scrollToTop() : this.scrollToAnchor() || this.scrollToTop(), this.scrolled = !0);\n }, r.prototype.scrollToRestoredPosition = function () {\n var t, e;\n return t = null != (e = this.restorationData) ? e.scrollPosition : void 0, null != t ? (this.controller.scrollToPosition(t), !0) : void 0;\n }, r.prototype.scrollToAnchor = function () {\n return null != this.location.anchor ? (this.controller.scrollToAnchor(this.location.anchor), !0) : void 0;\n }, r.prototype.scrollToTop = function () {\n return this.controller.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.recordTimingMetric = function (t) {\n var e;\n return null != (e = this.timingMetrics)[t] ? e[t] : e[t] = new Date().getTime();\n }, r.prototype.getTimingMetrics = function () {\n return e.copyObject(this.timingMetrics);\n }, n = function n(t) {\n switch (t) {\n case \"replace\":\n return \"replaceHistoryWithLocationAndRestorationIdentifier\";\n\n case \"advance\":\n case \"restore\":\n return \"pushHistoryWithLocationAndRestorationIdentifier\";\n }\n }, r.prototype.shouldIssueRequest = function () {\n return \"restore\" === this.action ? !this.hasCachedSnapshot() : !0;\n }, r.prototype.cacheSnapshot = function () {\n return this.snapshotCached ? void 0 : (this.controller.cacheSnapshot(), this.snapshotCached = !0);\n }, r.prototype.render = function (t) {\n return this.cancelRender(), this.frame = requestAnimationFrame(function (e) {\n return function () {\n return e.frame = null, t.call(e);\n };\n }(this));\n }, r.prototype.cancelRender = function () {\n return this.frame ? cancelAnimationFrame(this.frame) : void 0;\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t9, e) {\n return function () {\n return _t9.apply(e, arguments);\n };\n };\n\n e.Controller = function () {\n function r() {\n this.clickBubbled = t(this.clickBubbled, this), this.clickCaptured = t(this.clickCaptured, this), this.pageLoaded = t(this.pageLoaded, this), this.history = new e.History(this), this.view = new e.View(this), this.scrollManager = new e.ScrollManager(this), this.restorationData = {}, this.clearCache(), this.setProgressBarDelay(500);\n }\n\n return r.prototype.start = function () {\n return e.supported && !this.started ? (addEventListener(\"click\", this.clickCaptured, !0), addEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.start(), this.startHistory(), this.started = !0, this.enabled = !0) : void 0;\n }, r.prototype.disable = function () {\n return this.enabled = !1;\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"click\", this.clickCaptured, !0), removeEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.stop(), this.stopHistory(), this.started = !1) : void 0;\n }, r.prototype.clearCache = function () {\n return this.cache = new e.SnapshotCache(10);\n }, r.prototype.visit = function (t, r) {\n var n, o;\n return null == r && (r = {}), t = e.Location.wrap(t), this.applicationAllowsVisitingLocation(t) ? this.locationIsVisitable(t) ? (n = null != (o = r.action) ? o : \"advance\", this.adapter.visitProposedToLocationWithAction(t, n)) : window.location = t : void 0;\n }, r.prototype.startVisitToLocationWithAction = function (t, r, n) {\n var o;\n return e.supported ? (o = this.getRestorationDataForIdentifier(n), this.startVisit(t, r, {\n restorationData: o\n })) : window.location = t;\n }, r.prototype.setProgressBarDelay = function (t) {\n return this.progressBarDelay = t;\n }, r.prototype.startHistory = function () {\n return this.location = e.Location.wrap(window.location), this.restorationIdentifier = e.uuid(), this.history.start(), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.stopHistory = function () {\n return this.history.stop();\n }, r.prototype.pushHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.push(this.location, this.restorationIdentifier);\n }, r.prototype.replaceHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.historyPoppedToLocationWithRestorationIdentifier = function (t, r) {\n var n;\n return this.restorationIdentifier = r, this.enabled ? (n = this.getRestorationDataForIdentifier(this.restorationIdentifier), this.startVisit(t, \"restore\", {\n restorationIdentifier: this.restorationIdentifier,\n restorationData: n,\n historyChanged: !0\n }), this.location = e.Location.wrap(t)) : this.adapter.pageInvalidated();\n }, r.prototype.getCachedSnapshotForLocation = function (t) {\n var e;\n return null != (e = this.cache.get(t)) ? e.clone() : void 0;\n }, r.prototype.shouldCacheSnapshot = function () {\n return this.view.getSnapshot().isCacheable();\n }, r.prototype.cacheSnapshot = function () {\n var t, r;\n return this.shouldCacheSnapshot() ? (this.notifyApplicationBeforeCachingSnapshot(), r = this.view.getSnapshot(), t = this.lastRenderedLocation, e.defer(function (e) {\n return function () {\n return e.cache.put(t, r.clone());\n };\n }(this))) : void 0;\n }, r.prototype.scrollToAnchor = function (t) {\n var e;\n return (e = this.view.getElementForAnchor(t)) ? this.scrollToElement(e) : this.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.scrollToElement = function (t) {\n return this.scrollManager.scrollToElement(t);\n }, r.prototype.scrollToPosition = function (t) {\n return this.scrollManager.scrollToPosition(t);\n }, r.prototype.scrollPositionChanged = function (t) {\n var e;\n return e = this.getCurrentRestorationData(), e.scrollPosition = t;\n }, r.prototype.render = function (t, e) {\n return this.view.render(t, e);\n }, r.prototype.viewInvalidated = function () {\n return this.adapter.pageInvalidated();\n }, r.prototype.viewWillRender = function (t) {\n return this.notifyApplicationBeforeRender(t);\n }, r.prototype.viewRendered = function () {\n return this.lastRenderedLocation = this.currentVisit.location, this.notifyApplicationAfterRender();\n }, r.prototype.pageLoaded = function () {\n return this.lastRenderedLocation = this.location, this.notifyApplicationAfterPageLoad();\n }, r.prototype.clickCaptured = function () {\n return removeEventListener(\"click\", this.clickBubbled, !1), addEventListener(\"click\", this.clickBubbled, !1);\n }, r.prototype.clickBubbled = function (t) {\n var e, r, n;\n return this.enabled && this.clickEventIsSignificant(t) && (r = this.getVisitableLinkForNode(t.target)) && (n = this.getVisitableLocationForLink(r)) && this.applicationAllowsFollowingLinkToLocation(r, n) ? (t.preventDefault(), e = this.getActionForLink(r), this.visit(n, {\n action: e\n })) : void 0;\n }, r.prototype.applicationAllowsFollowingLinkToLocation = function (t, e) {\n var r;\n return r = this.notifyApplicationAfterClickingLinkToLocation(t, e), !r.defaultPrevented;\n }, r.prototype.applicationAllowsVisitingLocation = function (t) {\n var e;\n return e = this.notifyApplicationBeforeVisitingLocation(t), !e.defaultPrevented;\n }, r.prototype.notifyApplicationAfterClickingLinkToLocation = function (t, r) {\n return e.dispatch(\"turbolinks:click\", {\n target: t,\n data: {\n url: r.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationBeforeVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:before-visit\", {\n data: {\n url: t.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationAfterVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:visit\", {\n data: {\n url: t.absoluteURL\n }\n });\n }, r.prototype.notifyApplicationBeforeCachingSnapshot = function () {\n return e.dispatch(\"turbolinks:before-cache\");\n }, r.prototype.notifyApplicationBeforeRender = function (t) {\n return e.dispatch(\"turbolinks:before-render\", {\n data: {\n newBody: t\n }\n });\n }, r.prototype.notifyApplicationAfterRender = function () {\n return e.dispatch(\"turbolinks:render\");\n }, r.prototype.notifyApplicationAfterPageLoad = function (t) {\n return null == t && (t = {}), e.dispatch(\"turbolinks:load\", {\n data: {\n url: this.location.absoluteURL,\n timing: t\n }\n });\n }, r.prototype.startVisit = function (t, e, r) {\n var n;\n return null != (n = this.currentVisit) && n.cancel(), this.currentVisit = this.createVisit(t, e, r), this.currentVisit.start(), this.notifyApplicationAfterVisitingLocation(t);\n }, r.prototype.createVisit = function (t, r, n) {\n var o, i, s, a, u;\n return i = null != n ? n : {}, a = i.restorationIdentifier, s = i.restorationData, o = i.historyChanged, u = new e.Visit(this, t, r), u.restorationIdentifier = null != a ? a : e.uuid(), u.restorationData = e.copyObject(s), u.historyChanged = o, u.referrer = this.location, u;\n }, r.prototype.visitCompleted = function (t) {\n return this.notifyApplicationAfterPageLoad(t.getTimingMetrics());\n }, r.prototype.clickEventIsSignificant = function (t) {\n return !(t.defaultPrevented || t.target.isContentEditable || t.which > 1 || t.altKey || t.ctrlKey || t.metaKey || t.shiftKey);\n }, r.prototype.getVisitableLinkForNode = function (t) {\n return this.nodeIsVisitable(t) ? e.closest(t, \"a[href]:not([target]):not([download])\") : void 0;\n }, r.prototype.getVisitableLocationForLink = function (t) {\n var r;\n return r = new e.Location(t.getAttribute(\"href\")), this.locationIsVisitable(r) ? r : void 0;\n }, r.prototype.getActionForLink = function (t) {\n var e;\n return null != (e = t.getAttribute(\"data-turbolinks-action\")) ? e : \"advance\";\n }, r.prototype.nodeIsVisitable = function (t) {\n var r;\n return (r = e.closest(t, \"[data-turbolinks]\")) ? \"false\" !== r.getAttribute(\"data-turbolinks\") : !0;\n }, r.prototype.locationIsVisitable = function (t) {\n return t.isPrefixedBy(this.view.getRootLocation()) && t.isHTML();\n }, r.prototype.getCurrentRestorationData = function () {\n return this.getRestorationDataForIdentifier(this.restorationIdentifier);\n }, r.prototype.getRestorationDataForIdentifier = function (t) {\n var e;\n return null != (e = this.restorationData)[t] ? e[t] : e[t] = {};\n }, r;\n }();\n }.call(this), function () {\n !function () {\n var t, e;\n if ((t = e = document.currentScript) && !e.hasAttribute(\"data-turbolinks-suppress-warning\")) for (; t = t.parentNode;) {\n if (t === document.body) return console.warn(\"You are loading Turbolinks from a