{"version":3,"sources":["../node_modules/draft-js/lib/Draft.js","../node_modules/draft-js/lib/EditorState.js","../node_modules/draft-js/lib/DraftModifier.js","../node_modules/draft-js/lib/CharacterMetadata.js","../node_modules/draft-js/lib/ContentBlockNode.js","../node_modules/draft-js/lib/generateRandomKey.js","../node_modules/draft-js/lib/DraftOffsetKey.js","../node_modules/draft-js/lib/gkx.js","../node_modules/draft-js/lib/ContentBlock.js","../node_modules/draft-js/lib/isElement.js","../node_modules/draft-js/lib/BlockMapBuilder.js","../node_modules/draft-js/lib/findRangesImmutable.js","../node_modules/draft-js/lib/isHTMLElement.js","../node_modules/draft-js/lib/removeTextWithStrategy.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/draft-js/lib/getContentStateFragment.js","../node_modules/draft-js/lib/DraftEntity.js","../node_modules/draft-js/lib/SelectionState.js","../node_modules/draft-js/lib/findAncestorOffsetKey.js","../node_modules/draft-js/lib/getCorrectDocumentFromNode.js","../node_modules/draft-js/lib/isEventHandled.js","../node_modules/deep-object-diff/dist/utils/index.js","../node_modules/draft-js/lib/ContentState.js","../node_modules/draft-js/lib/DefaultDraftBlockRenderMap.js","../node_modules/draft-js/lib/getEntityKeyForSelection.js","../node_modules/draft-js/lib/moveSelectionBackward.js","../node_modules/draft-js/lib/KeyBindingUtil.js","../node_modules/draft-js/lib/randomizeBlockMapKeys.js","../node_modules/draft-js/lib/removeEntitiesAtEdges.js","../node_modules/draft-js/lib/insertIntoList.js","../node_modules/draft-js/lib/modifyBlockForContentState.js","../node_modules/draft-js/lib/getNextDelimiterBlockKey.js","../node_modules/draft-js/lib/getOwnObjectValues.js","../node_modules/draft-js/lib/DraftEntityInstance.js","../node_modules/draft-js/lib/sanitizeDraftText.js","../node_modules/draft-js/lib/DefaultDraftInlineStyle.js","../node_modules/draft-js/lib/getSelectionOffsetKeyForNode.js","../node_modules/draft-js/lib/getWindowForNode.js","../node_modules/draft-js/lib/editOnSelect.js","../node_modules/draft-js/lib/DraftJsDebugLogging.js","../node_modules/draft-js/lib/getContentEditableContainer.js","../node_modules/draft-js/lib/getDraftEditorSelection.js","../node_modules/draft-js/lib/getDraftEditorSelectionWithNodes.js","../node_modules/draft-js/lib/getUpdatedSelectionState.js","../node_modules/draft-js/lib/draftKeyUtils.js","../node_modules/draft-js/lib/DraftEditorLeaf.react.js","../node_modules/draft-js/lib/isHTMLBRElement.js","../node_modules/draft-js/lib/DraftEffects.js","../node_modules/draft-js/lib/DraftEditorBlock.react.js","../node_modules/draft-js/lib/getTextContentFromFiles.js","../node_modules/draft-js/lib/getFragmentFromSelection.js","../node_modules/draft-js/lib/keyCommandPlainBackspace.js","../node_modules/draft-js/lib/getRangeClientRects.js","../node_modules/draft-js/lib/DraftRemovableWord.js","../node_modules/draft-js/lib/moveSelectionForward.js","../node_modules/draft-js/lib/convertFromHTMLToContentBlocks.js","../node_modules/draft-js/lib/getSafeBodyFromHTML.js","../node_modules/draft-js/lib/RichTextEditorUtil.js","../node_modules/draft-js/lib/getDefaultKeyBinding.js","../node_modules/draft-js/lib/DraftStringKey.js","../node_modules/deep-object-diff/dist/added/index.js","../node_modules/deep-object-diff/dist/deleted/index.js","../node_modules/deep-object-diff/dist/updated/index.js","../node_modules/deepmerge/dist/cjs.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/deep-object-diff/dist/index.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/diacritic/diacritics.js","../node_modules/debounce/index.js","../node_modules/draft-js/lib/AtomicBlockUtils.js","../node_modules/draft-js/lib/ContentStateInlineStyle.js","../node_modules/draft-js/lib/applyEntityToContentState.js","../node_modules/draft-js/lib/applyEntityToContentBlock.js","../node_modules/draft-js/lib/getCharacterRemovalRange.js","../node_modules/draft-js/lib/DraftEntitySegments.js","../node_modules/draft-js/lib/getRangesForDraftEntity.js","../node_modules/draft-js/lib/insertFragmentIntoContentState.js","../node_modules/draft-js/lib/insertTextIntoContentState.js","../node_modules/draft-js/lib/removeRangeFromContentState.js","../node_modules/draft-js/lib/splitBlockInContentState.js","../node_modules/draft-js/lib/BlockTree.js","../node_modules/draft-js/lib/uuid.js","../node_modules/draft-js/lib/EditorBidiService.js","../node_modules/draft-js/lib/moveBlockInContentState.js","../node_modules/draft-js/lib/CompositeDraftDecorator.js","../node_modules/draft-js/lib/DraftEditor.react.js","../node_modules/draft-js/lib/DraftEditorCompositionHandler.js","../node_modules/draft-js/lib/DOMObserver.js","../node_modules/draft-js/lib/DraftEditorContents.react.js","../node_modules/draft-js/lib/DraftEditorContentsExperimental.react.js","../node_modules/draft-js/lib/DraftEditorBlockNode.react.js","../node_modules/draft-js/lib/DraftEditorNode.react.js","../node_modules/draft-js/lib/DraftEditorDecoratedLeaves.react.js","../node_modules/draft-js/lib/DraftEditorTextNode.react.js","../node_modules/draft-js/lib/setDraftEditorSelection.js","../node_modules/draft-js/lib/DraftEditorContents-core.react.js","../node_modules/draft-js/lib/DraftEditorDragHandler.js","../node_modules/draft-js/lib/DraftEditorEditHandler.js","../node_modules/draft-js/lib/editOnBeforeInput.js","../node_modules/draft-js/lib/isSelectionAtLeafStart.js","../node_modules/draft-js/lib/editOnBlur.js","../node_modules/draft-js/lib/editOnCompositionStart.js","../node_modules/draft-js/lib/editOnCopy.js","../node_modules/draft-js/lib/editOnCut.js","../node_modules/draft-js/lib/isInstanceOfNode.js","../node_modules/draft-js/lib/editOnDragOver.js","../node_modules/draft-js/lib/editOnDragStart.js","../node_modules/draft-js/lib/editOnFocus.js","../node_modules/draft-js/lib/editOnInput.js","../node_modules/draft-js/lib/editOnKeyDown.js","../node_modules/draft-js/lib/isSoftNewlineEvent.js","../node_modules/draft-js/lib/SecondaryClipboard.js","../node_modules/draft-js/lib/keyCommandBackspaceToStartOfLine.js","../node_modules/draft-js/lib/expandRangeToStartOfLine.js","../node_modules/draft-js/lib/keyCommandBackspaceWord.js","../node_modules/draft-js/lib/keyCommandDeleteWord.js","../node_modules/draft-js/lib/keyCommandInsertNewline.js","../node_modules/draft-js/lib/keyCommandMoveSelectionToEndOfBlock.js","../node_modules/draft-js/lib/keyCommandMoveSelectionToStartOfBlock.js","../node_modules/draft-js/lib/keyCommandPlainDelete.js","../node_modules/draft-js/lib/keyCommandTransposeCharacters.js","../node_modules/draft-js/lib/keyCommandUndo.js","../node_modules/draft-js/lib/editOnPaste.js","../node_modules/draft-js/lib/DraftPasteProcessor.js","../node_modules/draft-js/lib/isHTMLAnchorElement.js","../node_modules/draft-js/lib/isHTMLImageElement.js","../node_modules/draft-js/lib/adjustBlockDepthForContentState.js","../node_modules/draft-js/lib/splitTextIntoTextBlocks.js","../node_modules/draft-js/lib/DraftEditorFlushControlled.js","../node_modules/draft-js/lib/DraftEditorPlaceholder.react.js","../node_modules/draft-js/lib/convertFromDraftStateToRaw.js","../node_modules/draft-js/lib/encodeEntityRanges.js","../node_modules/draft-js/lib/encodeInlineStyleRanges.js","../node_modules/draft-js/lib/convertFromRawToDraftState.js","../node_modules/draft-js/lib/DraftTreeAdapter.js","../node_modules/draft-js/lib/DraftTreeInvariants.js","../node_modules/draft-js/lib/createCharacterList.js","../node_modules/draft-js/lib/decodeEntityRanges.js","../node_modules/draft-js/lib/decodeInlineStyleRanges.js","../node_modules/draft-js/lib/getVisibleSelectionRect.js","../node_modules/draft-js/lib/getRangeBoundingClientRect.js","../node_modules/downshift/dist/downshift.esm.js","../node_modules/deep-object-diff/dist/diff/index.js","../node_modules/deep-object-diff/dist/detailed/index.js","../node_modules/events/events.js","../node_modules/draftjs-to-html/lib/draftjs-to-html.js"],"names":["AtomicBlockUtils","BlockMapBuilder","CharacterMetadata","CompositeDraftDecorator","ContentBlock","ContentState","DefaultDraftBlockRenderMap","DefaultDraftInlineStyle","DraftEditor","DraftEditorBlock","DraftEntity","DraftModifier","DraftEntityInstance","EditorState","KeyBindingUtil","RawDraftContentState","RichTextEditorUtil","SelectionState","convertFromDraftStateToRaw","convertFromRawToDraftState","generateRandomKey","getDefaultKeyBinding","getVisibleSelectionRect","DraftPublic","Editor","EditorBlock","CompositeDecorator","Entity","EntityInstance","Modifier","RichUtils","convertFromHTML","convertFromRaw","convertToRaw","genKey","module","exports","_objectSpread","target","i","arguments","length","source","ownKeys","Object","keys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","enumerable","forEach","key","_defineProperty","obj","value","defineProperty","configurable","writable","BlockTree","EditorBidiService","Immutable","OrderedSet","Record","Stack","OrderedMap","List","EditorStateRecord","allowUndo","currentContent","decorator","directionMap","forceSelection","inCompositionMode","inlineStyleOverride","lastChangeType","nativelyRenderedContent","redoStack","selection","treeMap","undoStack","createEmpty","this","createWithText","text","createWithContent","createFromText","contentState","getBlockMap","count","firstKey","first","getKey","create","config","recordConfig","generateNewTreeMap","getDirectionMap","fromJS","map","v","set","editorState","put","getImmutable","withMutations","state","existingDecorator","get","newContent","getCurrentContent","newTreeMap","content","blockMap","previousTreeMap","merge","toSeq","block","getDecorations","generate","regenerateTreeForNewDecorator","newBlockMap","newEntityMap","prevBlockMap","regenerateTreeForNewBlocks","getEntityMap","_proto","prototype","immutable","_immutable","toJS","getAllowUndo","getUndoStack","getRedoStack","getSelection","getDecorator","isInCompositionMode","mustForceSelection","getNativelyRenderedContent","getLastChangeType","getInlineStyleOverride","setInlineStyleOverride","getCurrentInlineStyle","override","isCollapsed","startKey","getStartKey","startOffset","getStartOffset","startBlock","getBlockForKey","getInlineStyleAt","getLength","lookUpwardForInlineStyle","getInlineStyleForCollapsedSelection","getInlineStyleForNonCollapsedSelection","getBlockTree","blockKey","getIn","isSelectionAtStartOfContent","hasEdgeWithin","isSelectionAtEndOfContent","last","end","acceptSelection","updateSelection","getHasFocus","moveSelectionToEnd","lastBlock","getLastBlock","lastKey","anchorKey","anchorOffset","focusKey","focusOffset","isBackward","moveFocusToEnd","afterSelectionMove","push","changeType","undefined","getSelectionAfter","mustBecomeBoundary","getSelectionBefore","overrideChangeTypes","indexOf","editorStateChanges","undo","newCurrentContent","peek","shift","redo","toOrderedMap","fromKey","lastNonEmpty","reverse","skipUntil","_","k","skip","ContentStateInlineStyle","applyEntityToContentState","getCharacterRemovalRange","getContentStateFragment","insertFragmentIntoContentState","insertTextIntoContentState","invariant","modifyBlockForContentState","removeEntitiesAtEdges","removeRangeFromContentState","splitBlockInContentState","replaceText","rangeToReplace","inlineStyle","entityKey","withoutEntities","withoutText","character","style","entity","insertText","targetRange","moveText","removalRange","movedFragment","afterRemoval","removeRange","replaceWithFragment","fragment","mergeBlockData","rangeToRemove","removalDirection","endKey","endBlock","getIsBackward","getFocusKey","getFocusOffset","getAnchorKey","getAnchorOffset","endOffset","getEndOffset","startEntityKey","getEntityAt","endEntityKey","adjustedRemovalRange","splitBlock","selectionState","applyInlineStyle","add","removeInlineStyle","remove","setBlockType","blockType","type","depth","setBlockData","blockData","data","getData","applyEntity","_require","Map","EMPTY_SET","defaultRecord","_CharacterMetadataRec","subClass","superClass","apply","constructor","__proto__","getStyle","getEntity","hasStyle","includes","applyStyle","record","withStyle","removeStyle","withoutStyle","withEntity","EMPTY","configMap","existing","pool","newCharacter","_ref","Array","isArray","findRangesImmutable","Repeat","parent","characterList","children","prevSibling","nextSibling","haveEqualStyle","charA","charB","haveEqualEntity","decorateCharacterList","ContentBlockNode","props","call","getType","getText","getCharacterList","getDepth","offset","getChildKeys","getParentKey","getPrevSiblingKey","getNextSiblingKey","findStyleRanges","filterFn","callback","findEntityRanges","seenKeys","MULTIPLIER","Math","pow","hasOwnProperty","isNaN","floor","random","toString","DraftOffsetKey","encode","decoratorKey","leafKey","decode","offsetKey","_offsetKey$split$reve","split","slice","join","parseInt","name","window","__DRAFT_GKX","ContentBlockRecord","_ContentBlockRecord","node","ownerDocument","nodeType","Node","ELEMENT_NODE","createFromArray","blocks","haystack","areEqualFn","foundFn","size","cursor","reduce","nextValue","nextIndex","defaultView","HTMLElement","experimentalTreeDataSupport","gkx","strategy","direction","anchorBlock","anchorBlockSibling","scrollbarSize","recalc","canUseDOM","scrollDiv","document","createElement","position","top","width","height","overflow","body","appendChild","offsetWidth","clientWidth","removeChild","randomizeBlockMapKeys","getEndKey","blockKeys","keySeq","startIndex","endIndex","chars","uuid","instances","instanceKey","logWarning","oldMethodCall","newMethodCall","console","warn","getLastCreatedEntityKey","__getLastCreatedEntityKey","mutability","__create","instance","__add","__get","__getAll","__loadWithEntities","entities","mergeData","toMerge","__mergeData","replaceData","newData","__replaceData","newInstance","_SelectionStateRecord","serialize","String","start","selectionStart","selectionEnd","offsetToCheck","hasFocus","getCorrectDocumentFromNode","getSelectionOffsetKeyForNode","searchNode","documentElement","parentNode","_extends","assign","_typeof","Symbol","iterator","isObject","isDate","d","Date","isEmpty","o","properObject","getOwnObjectValues","sanitizeDraftText","ImmutableMap","ContentStateRecord","entityMap","selectionBefore","selectionAfter","ContentBlockNodeRecord","_ContentStateRecord","getKeyBefore","getKeyAfter","getBlockAfter","getBlockBefore","getBlocksAsArray","toArray","getFirstBlock","getPlainText","delimiter","hasText","escape","replace","createEntity","mergeEntityData","replaceEntityData","addEntity","getAllEntities","loadWithEntities","createFromBlockArray","theBlocks","contentBlocks","strings","createContentBlockFromJS","c","React","cx","element","section","article","wrapper","className","blockquote","atomic","unstyled","aliasedElements","notEmptyKey","filterKey","getMutability","targetSelection","maxDistance","keyBefore","UserAgent","isSoftNewlineEvent","isOSX","isPlatform","isCtrlKeyCommand","e","ctrlKey","altKey","isOptionKeyCommand","usesMacOSHeuristics","hasCommandModifier","metaKey","lastRootBlock","newKeysRef","blockMapState","index","oldKey","nextKey","prevKey","childrenKeys","parentKey","setIn","parentChildrenList","childKey","child","randomizeContentBlockNodeKeys","randomizeContentBlockKeys","removeForBlock","charBefore","charAfter","entityBeforeCursor","entityAfterCursor","current","_getRemovalRange","characters","a","b","getRemovalRange","updatedBlocks","updatedStart","updatedEnd","targetListArg","toInsert","targetList","unshift","head","tail","toList","operation","newBlocks","takeUntil","nextSiblingKey","nextNonDescendantBlock","_DraftEntityInstanceR","REGEX_BLOCK_DELIMITER","RegExp","input","BOLD","fontWeight","CODE","fontFamily","wordWrap","ITALIC","fontStyle","STRIKETHROUGH","textDecoration","UNDERLINE","isElement","castedNode","getAttribute","ii","childNodes","childOffsetKey","DraftJsDebugLogging","getContentEditableContainer","getDraftEditorSelection","editor","_blockSelectEvents","_latestEditorState","logBlockedSelectionEvent","anonymizedDom","extraParams","JSON","stringify","stacktrace","Error","stack","documentSelection","updatedSelectionState","needsRecovery","update","logSelectionStateFailure","isHTMLElement","editorNode","editorContainer","firstChild","getDraftEditorSelectionWithNodes","root","anchorNode","focusNode","rangeCount","findAncestorOffsetKey","getUpdatedSelectionState","nullthrows","getPointForNonTextNode","editorRoot","startNode","childOffset","firstLeaf","getFirstLeaf","nodeBeforeCursor","textLength","lastLeaf","lastChild","getLastLeaf","getTextContentLength","textContent","anchorIsTextNode","TEXT_NODE","focusIsTextNode","anchorPoint","focusPoint","nodeName","anchorPath","anchorBlockKey","anchorLeafBlockTree","anchorLeaf","focusPath","focusBlockKey","focusLeafBlockTree","focusLeaf","anchorLeafStart","focusLeafStart","anchorBlockOffset","focusBlockOffset","anchorLeafEnd","focusLeafEnd","_assign","_assertThisInitialized","self","ReferenceError","DraftEditorTextNode","isHTMLBRElement","setDraftEditorSelection","DraftEditorLeaf","_React$Component","_this","_len","args","_key","_setSelection","_this$props","leaf","targetNode","shouldComponentUpdate","nextProps","leafNode","styleSet","componentDidUpdate","componentDidMount","render","_this2","endsWith","isLast","_this$props2","customStyleMap","customStyleFn","styleObj","styleName","mergedStyles","trim","newStyles","ref","Component","initODS","handleExtensionCausedError","Scroll","Style","UnicodeBidi","UnicodeBidiDirection","getElementPosition","getScrollPosition","getViewportDimensions","isBlockOnSelectionEdge","tree","preventScroll","blockNode","_node","scrollDelta","scrollParent","getScrollParent","scrollPosition","nodePosition","y","scrollTo","x","offsetHeight","offsetTop","setTop","getTop","_renderChildren","lastLeafSet","hasSelection","leafSet","leavesForLeafSet","leaves","jj","DecoratorComponent","getComponentForKey","decoratorProps","getPropsForKey","decoratorOffsetKey","decoratedText","dir","getHTMLDirIfDifferent","getDirection","commonProps","_this3","TEXT_CLIPPING_REGEX","TEXT_TYPES","files","readCount","results","file","global","FileReader","_contents","test","reader","onload","result","onerror","readAsText","readFile","UnicodeUtils","moveSelectionBackward","removeTextWithStrategy","strategyState","charBehind","getUTF16Length","getRangeClientRects","isBrowser","range","tempRange","cloneRange","clientRects","ancestor","endContainer","atCommonAncestor","commonAncestorContainer","setStart","startContainer","rects","from","getClientRects","setEndBefore","WHITESPACE_AND_PUNCTUATION","getPunctuation","DELETE_REGEX","BACKSPACE_REGEX","getRemovableWord","matches","exec","DraftRemovableWord","getBackward","getForward","_knownListItemDepthCl","URI","getSafeBodyFromHTML","isHTMLAnchorElement","isHTMLImageElement","REGEX_CR","REGEX_LF","REGEX_LEADING_LF","REGEX_NBSP","REGEX_CARRIAGE","REGEX_ZWS","boldValues","notBoldValues","anchorAttr","imgAttr","knownListItemDepthClasses","HTMLTagToRawInlineStyleMap","code","del","em","s","strike","strong","u","mark","buildBlockTypeMap","blockRenderMap","blockTypeMap","mapKeys","desc","elements","detectInlineStyle","getListItemDepth","some","depthClass","classList","contains","isValidAnchor","href","protocol","isValidImage","imageNode","attributes","getNamedItem","styleFromNodeAttributes","htmlElement","isListNode","ContentBlocksBuilder","disambiguate","clear","blockConfigs","currentBlockType","currentDepth","currentEntity","currentText","addDOMNode","_this$blockConfigs","_toBlockConfigs","_trimCurrentText","_makeBlockConfig","getContentBlocks","_toContentBlocks","_toFlatContentBlocks","childConfigs","nodes","toLowerCase","wasCurrentDepth","wasWrapper","_addImgNode","_addAnchorNode","newStyle","has","_addBreakNode","_addTextNode","_wasCurrentDepth","_wasWrapper","_appendText","_this$characterList","characterMetadata","fill","l","begin","trimLeft","trimRight","findEntry","min","max","image","entityConfig","attr","imageAttribute","anchor","anchorAttribute","url","_hoistContainersInBlockConfigs","flatMap","blockConfig","_this2$_extractTextFr","_extractTextFromBlockConfigs","html","DOMBuilder","safeBody","tag","isOldIE","doc","implementation","createHTMLDocument","innerHTML","getElementsByTagName","adjustBlockDepthForContentState","currentBlockContainsLink","getCurrentBlockType","getDataObjectForLinkURL","uri","handleKeyCommand","command","eventTimeStamp","toggleInlineStyle","toggleCode","onBackspace","onDelete","insertSoftNewline","newEditorState","blockBefore","withoutAtomicBlock","withoutBlockStyle","tryToRemoveBlockStyle","blockAfter","atomicBlockTarget","onTab","event","maxDepth","preventDefault","shiftKey","withAdjustment","toggleBlockType","skipWhile","typeToSet","currentStyle","toggleLink","withoutLink","Keys","shouldFixFirefoxMovement","shouldRemoveWord","keyCode","getZCommand","RETURN","DELETE","getDeleteCommand","BACKSPACE","getBackspaceCommand","LEFT","RIGHT","DraftStringKey","unstringify","_utils","default","addedDiff","lhs","rhs","r","acc","difference","deletedDiff","updatedDiff","valueOf","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","for","cloneUnlessOtherwiseSpecified","options","clone","deepmerge","val","defaultArrayMerge","getKeys","symbol","propertyIsEnumerable","getEnumerableOwnPropertySymbols","propertyIsOnObject","object","property","mergeObject","destination","propertyIsUnsafe","customMerge","getMergeFunction","arrayMerge","sourceIsArray","all","array","prev","next","deepmerge_1","replaceClassName","origClass","classToRemove","removeClass","setAttribute","baseVal","_diff","_added","_deleted","_updated","_detailed","detailedDiff","diff","_diff2","_interopRequireDefault","_added2","_deleted2","_updated2","_detailed2","__esModule","addClass","hasClass","definition","output","reference","refLength","letters","j","letLength","base","clean","letter","string","debounce","func","wait","immediate","timeout","context","timestamp","later","now","setTimeout","debounced","callNow","clearTimeout","flush","moveBlockInContentState","insertAtomicBlock","afterSplit","insertionTarget","asAtomicBlock","charData","atomicBlockConfig","atomicDividerBlockConfig","fragmentArray","withAtomicBlock","moveAtomicBlock","atomicBlock","insertionMode","withMovedAtomicBlock","targetBlock","selectionAfterRemoval","_targetBlock","selectionAfterSplit","_targetBlock2","modifyInlineStyle","addOrRemove","sliceStart","sliceEnd","applyEntityToContentBlock","contentBlock","startArg","DraftEntitySegments","getRangesForDraftEntity","getEntityRemovalRange","isEntireSelectionWithinEntity","isEntityAtStart","sideToConsider","entityRanges","entityRange","newSelectionState","startSelectionState","endSelectionState","_startSelectionState","_endSelectionState","entityStart","segments","segment","segmentEnd","segmentStart","removalStart","removalEnd","entityEnd","atStart","atEnd","ranges","insertIntoList","updateExistingBlock","fragmentBlock","targetKey","targetOffset","finalKey","finalOffset","newBlock","insertFragment","isTreeBasedBlockMap","newBlockArr","fragmentSize","shouldNotUpdateFromFragmentBlock","headText","headCharacters","appendToHead","updateHead","blockSize","tailText","tailCharacters","prependToTail","updateTail","updatedBlockMap","originalBlockMap","fragmentHeadBlock","headKey","targetNextKey","targetParentKey","fragmentRootBlocks","rootBlock","rootBlocks","lastSiblingKey","getRootBlocks","lastRootFragmentBlockKey","originalTargetParentChildKeys","insertionIndex","newChildrenKeysArray","splice","updateBlockMapLinks","fragmentBlockMap","len","blockText","newOffset","getNextDelimiterBlockKey","transformBlock","getAncestorsKeys","parents","getNextValidSibling","nextValidSiblingKey","getPrevValidSibling","prevValidSiblingKey","nextDelimiters","nextDelimiter","_block","getNextDelimitersBlockKeys","delimiterKey","prevSiblingKey","newParentKey","newParent","find","removeFromList","pop","isExperimentalTreeBlock","parentAncestors","endBlockchildrenKeys","endBlockAncestors","modifiedStart","blockToSplit","keyBelow","blockAbove","blockBelow","blocksBefore","blocksAfter","rest","originalBlock","belowBlock","originalBlockKey","belowBlockKey","newChildrenArray","returnTrue","LeafRange","DecoratorRange","of","leafSets","decorations","areEqual","generateLeaves","other","excluded","sourceKeys","_objectWithoutPropertiesLoose","inlineStyles","bidiService","UnicodeBidiService","prevBidiMap","reset","nextBidi","valueSeq","bidiMap","zip","is","originalBlockToBeMoved","originalTargetBlock","isInsertedAfterTarget","originalTargetKey","originalParentKey","originalNextSiblingKey","originalPrevSiblingKey","newNextSiblingKey","newPrevSiblingKey","newParentChildrenList","targetBlockIndex","blockToBeMoved","blocksToBeMoved","blockMapWithoutBlocksToBeMoved","nextDelimiterBlockKey","takeWhile","isBlockToBeMoved","hasNextSiblingAndIsNotNextSibling","doesNotHaveNextSiblingAndIsNotDelimiter","slicedBlocks","decorators","_decorators","counter","canOccupySlice","targetArr","componentKey","occupySlice","component","_inheritsLoose","DraftEditorCompositionHandler","DraftEditorContents","DraftEditorDragHandler","DraftEditorEditHandler","flushControlled","DraftEditorPlaceholder","DraftEffects","isIE","allowSpellCheck","handlerMap","edit","composite","drag","cut","didInitODS","UpdateDraftEditorFlags","_update","_React$Component2","alreadyHasFocus","focus","blur","mode","onPaste","onCut","onCopy","editHandler","handler","_handler","setMode","setState","contentsKey","clipboard","_clipboard","onChange","_dragCount","exitCurrentMode","_editorKey","editorKey","_placeholderAccessibilityID","_latestCommittedEditorState","_onBeforeInput","_buildHandler","_onBlur","_onCharacterData","_onCompositionEnd","_onCompositionStart","_onCopy","_onCut","_onDragEnd","_onDragOver","_onDragStart","_onDrop","_onInput","_onFocus","_onKeyDown","_onKeyPress","_onKeyUp","_onMouseDown","_onMouseUp","_onPaste","_onSelect","getEditorKey","_proto2","eventName","readOnly","method","_showPlaceholder","placeholder","_renderPlaceholder","placeHolderProps","textAlignment","accessibilityID","_renderARIADescribedBy","describedBy","ariaDescribedBy","placeholderID","blockRendererFn","blockStyleFn","textDirectionality","rootClass","ariaRole","role","ariaExpanded","editorContentsProps","_handleEditorContainerRef","ariaActiveDescendantID","ariaAutoComplete","ariaControls","ariaLabel","ariaLabelledBy","ariaMultiline","ariaOwneeID","autoCapitalize","autoComplete","autoCorrect","notranslate","contentEditable","webDriverTestID","onBeforeInput","onBlur","onCompositionEnd","onCompositionStart","onDragEnd","onDragEnter","onDragLeave","onDragOver","onDragStart","onDrop","onFocus","onInput","onKeyDown","onKeyPress","onKeyUp","onMouseUp","onSelect","editorRef","spellCheck","outline","userSelect","WebkitUserSelect","whiteSpace","suppressContentEditableWarning","tabIndex","execCommand","keyBindingFn","stripPastedStyles","DOMObserver","editOnSelect","getEntityKeyForSelection","resolved","stillComposing","domObserver","startDOMObserver","resolveComposition","which","_editor","mutations","stopAndFlushMutations","composedChars","_DraftOffsetKey$decod","_editorState$getBlock","replacementRange","compositionEndSelectionState","restoreEditorDOM","editorStateWithUpdatedSelection","getWindowForNode","DOM_OBSERVER_OPTIONS","subtree","characterData","childList","characterDataOldValue","USE_CHAR_DATA","container","containerWindow","MutationObserver","observer","registerMutations","onCharData","registerMutation","observe","addEventListener","takeRecords","disconnect","removeEventListener","getMutationTextContent","mutation","removedNodes","DraftEditorBlockNode","DraftEditorContentsExperimental","prevEditorState","nextEditorState","nextNativeContent","wasComposing","nowComposing","prevContent","nextContent","prevDecorator","nextDecorator","processedBlocks","nodeBlock","blockProps","wrapperTemplate","nextBlockKey","outputBlocks","info","wrapperElement","cloneElement","DraftEditorNode","getDraftRenderConfig","configForType","Element","getCustomRenderConfig","customRenderer","CustomComponent","customProps","customEditable","editable","getElementPropsConfig","customConfig","elementProps","customClass","createRef","isContainerNode","blockHasChanged","wrapperRef","htmlBlockNode","_getDraftRenderConfig","childProps","shouldNotAddWrapperElement","wrappedSiblings","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","done","sibling","err","childrenIs","applyWrapperElementToSiblings","DraftEditorDecoratedLeaves","Leaves","useNewlineChar","_forceFlag","shouldBeNewline","elementNode","tagName","isNewline","NEWLINE_A","NEWLINE_B","containsNode","getActiveElement","getAnonymizedDOM","getNodeLabels","anonymized","anonymizeTextWithin","labels","createTextNode","cloneNode","outerHTML","getAnonymizedEditorDOM","currentNode","hasAttribute","getNodeLength","nodeValue","addFocusToSelection","activeElement","extend","nodeWasFocus","n","activeElementName","nodeIsFocus","selectionRangeCount","selectionAnchorNodeName","selectionAnchorOffset","selectionFocusNodeName","selectionFocusOffset","message","getRangeAt","setEnd","addRange","addPointToSelection","createRange","nodeStart","nodeEnd","documentObject","tempKey","tempOffset","hasAnchor","removeAllRanges","storedFocusNode","storedFocusOffset","joinClasses","getListItemClasses","shouldResetCount","blocksAsArray","lastWrapperTemplate","componentProps","_className","_ii","DataTransfer","getTextContentFromFiles","isEventHandled","endDrag","nativeEvent","dataTransfer","dropSelection","eventTargetDocument","currentTarget","caretRangeFromPoint","dropRange","rangeParent","rangeOffset","getSelectionForEvent","getFiles","handleDroppedFiles","fileText","insertTextAtSelection","dragType","_internalDrag","handleDrop","newContentState","mouseUpEvent","MouseEvent","view","bubbles","cancelable","dispatchEvent","isChrome","isFirefox","selectionHandler","isSelectionAtLeafStart","setImmediate","_pendingStateFromBeforeInput","handleBeforeInput","timeStamp","mustPreventNative","oldBlockTree","newBlockTree","oldLeafSet","newLeafSet","oldStart","adjustedStart","oldEnd","adjustedEnd","newStart","newEnd","newDecoratorKey","blockTree","isAtStart","leafStart","Boolean","preserveSelectionOnBlur","_selection","currentSelection","getFragmentFromSelection","setClipboard","isNode","removeFragment","keyCommandPlainBackspace","isGecko","isEngine","domSelection","isNotTextOrElementNode","previousSibling","span","domText","modelText","preserveEntity","abs","charDelta","contentWithAdjustedDOMSelection","inputType","onInputType","SecondaryClipboard","keyCommandBackspaceToStartOfLine","keyCommandBackspaceWord","keyCommandDeleteWord","keyCommandInsertNewline","keyCommandMoveSelectionToEndOfBlock","keyCommandMoveSelectionToStartOfBlock","keyCommandPlainDelete","keyCommandTransposeCharacters","keyCommandUndo","callDeprecatedHandler","handlerName","deprecatedHandler","handleReturn","ESC","TAB","UP","DOWN","SPACE","newState","paste","onKeyCommand","getModifierState","blockEnd","keyAfter","expandRangeToStartOfLine","areRectsOnOneLine","lineHeight","minTop","Infinity","minBottom","maxTop","maxBottom","rect","bottom","DOCUMENT_TYPE_NODE","PROCESSING_INSTRUCTION_NODE","COMMENT_NODE","collapsed","containingElement","computed","getComputedStyle","correctDocument","div","fontSize","documentBody","getBoundingClientRect","getLineHeightPx","bestContainer","bestOffset","setStartBefore","display","currentContainer","maxIndexToConsider","isSurrogatePair","toRemove","moveSelectionForward","charAhead","finalSelection","afterInsert","updateFn","undoneState","DraftPasteProcessor","splitTextIntoTextBlocks","clipboardData","isRichText","defaultFileText","handlePastedFiles","processText","withInsertedText","textBlocks","getHTML","formatPastedText","_editor$props$formatP","handlePastedText","_html","internalClipboard","getClipboard","types","every","areTextBlocksAndClipboardEqual","htmlFragment","processHTML","htmlMap","textFragment","textMap","convertFromHTMLToContentBlocks","textLine","blockNodeConfig","prevSiblingIndex","adjustment","NEWLINE_REGEX","unstable_flushControlled","id","encodeEntityRanges","encodeInlineStyleRanges","createRawBlock","entityStorageMap","inlineStyleRanges","toObject","insertRawBlock","rawBlocks","blockCacheRef","rawBlock","rawDraftContentState","rawState","entityCacheRef","entityStorageKey","stringifiedEntityKey","encodeRawBlocks","rawEntityMap","encodeRawEntityMap","strlen","storageMap","encoded","Number","isTruthy","EMPTY_ARRAY","styleList","flatten","toSet","styleToEncode","filteredInlines","getEncodedInlinesForType","DraftTreeAdapter","createCharacterList","decodeEntityRanges","decodeInlineStyleRanges","decodeBlockNodeConfig","decodeCharacterList","rawEntityRanges","rawInlineStyleRanges","addKeyIfMissing","updateNodeStack","parentRef","nodesWithParentRef","decodeRawBlocks","isTreeRawBlock","fromRawStateToRawTreeState","contentBlockNode","siblings","_index","isValidBlock","_children","_contentBlockNode","decodeContentBlockNodes","decodeContentBlocks","fromRawTreeStateToRawState","rawEntityKey","_rawEntityMap$rawEnti","decodeRawEntityMap","isListBlock","draftTreeState","transformedBlocks","fn","traverseInDepthOrder","addDepthToChildren","draftState","parentStack","isList","treeBlock","lastParent","DraftTreeInvariants","isConnectedTree","eligibleFirstNodes","nodesSeen","currentKey","visitedStack","childKeys","_firstNode","isValidTree","characterArray","substr","styles","getRangeBoundingClientRect","boundingRect","right","left","_rects$","_rects$2","statusDiv","getElementById","statuses","setStatus","status","isSameAsLast","border","clip","margin","padding","getStatusDiv","statusItem","childDiv","getStatusChildDiv","stateChangeTypes","freeze","unknown","mouseUp","itemMouseEnter","keyDownArrowUp","keyDownArrowDown","keyDownEscape","keyDownEnter","clickItem","blurInput","changeInput","keyDownSpaceButton","clickButton","blurButton","controlledPropUpdatedSelectedItem","touchStart","idCounter","cbToCb","cb","noop","isOrContainsNode","callAllEventHandlers","_len2","fns","_key2","_len3","_key3","preventDownshiftDefault","resetIdCounter","unwrapArray","arg","defaultValue","isDOMElement","getElementProps","stateKeys","pickState","normalizeArrowKey","Downshift","_Component","_props","menuId","labelId","inputId","getItemId","items","itemCount","previousResultCount","timeoutIds","internalSetTimeout","time","setItemCount","unsetItemCount","setHighlightedIndex","highlightedIndex","otherStateToSet","defaultHighlightedIndex","internalSetState","clearSelection","selectedItem","inputValue","isOpen","selectItem","item","isControlledProp","defaultInputValue","itemToString","selectItemAtIndex","itemIndex","selectHighlightedItem","getState","stateToSet","isItemSelected","onChangeArg","onStateChangeArg","isStateToSetFunction","onInputValueChange","getStateAndHelpers","newStateToSet","stateReducer","nextState","nextFullState","onStateChange","onUserAction","rootRef","_rootNode","getRootProps","_temp","_temp2","_extends2","_ref$refKey","refKey","_ref2$suppressRefErro","suppressRefError","called","keyDownHandlers","ArrowDown","amount","moveHighlightedIndex","ArrowUp","Enter","_this$getState2","itemNode","getItemNodeFromIndex","Escape","buttonKeyDownHandlers","toggleMenu","getToggleButtonProps","_temp3","_ref3","onClick","onPress","enabledEventHandlers","button_handleClick","button_handleKeyDown","button_handleKeyUp","button_handleBlur","disabled","environment","blurTarget","isMouseDown","getLabelProps","htmlFor","getInputProps","_temp4","_ref4","onChangeText","eventHandlers","_eventHandlers","_this$getState4","input_handleChange","input_handleKeyDown","input_handleBlur","input_handleTextChange","downshiftButtonIsActive","dataset","toggle","menuRef","_menuNode","getMenuProps","_temp5","_temp6","_extends3","_ref5","_ref5$refKey","_ref6$suppressRefErro","_len4","_key4","_len5","_key5","callAll","getItemProps","_temp7","_enabledEventHandlers","_ref7","onMouseMove","onMouseDown","_ref7$item","customClickHandler","avoidScrolling","clearItems","_ref8","_ref9","openMenu","closeMenu","updateStatus","timeoutId","cancel","resultCount","getItemCount","getA11yStatusMessage","highlightedItem","_state","defaultIsOpen","defaultSelectedItem","internalClearTimeouts","stateToMerge","scrollHighlightedItemIntoView","scrollIntoView","changeHighlightedIndex","moveAmount","itemsLastIndex","baseIndex","newIndex","_this$getState7","targetWithinDownshift","checkActiveElement","contextNode","onOuterClick","onTouchStart","cleanup","prevProps","prevState","selectedItemChanged","componentWillUnmount","defaultProps","_ref2","prevItem","rootNode","boundary","scrollMode","el","scrollTop","scrollLeft","deletedValues","added","deleted","updated","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","getOwnPropertyNames","NumberIsNaN","EventEmitter","init","once","emitter","Promise","resolve","reject","eventListener","errorListener","removeListener","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","TypeError","_getMaxListeners","that","_addListener","prepend","m","events","warning","newListener","emit","warned","w","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","arr","ret","unwrapListeners","arrayClone","listenerCount","copy","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","error","er","listeners","addListener","on","prependListener","prependOnceListener","list","originalListener","spliceOne","off","removeAllListeners","rawListeners","eventNames","blockTypesMapping","getBlockTag","getBlockStyle","getStylesAtOffset","COLOR","BGCOLOR","FONTSIZE","FONTFAMILY","SUBSCRIPT","SUPERSCRIPT","sameStyleAsPrevious","sameStyled","getEntityMarkup","customEntityTransform","targetOption","alignment","src","alt","getInlineStyleSections","styleSections","substring","getStyleArrayForBlock","getInlineStyleSectionMarkup","styleSection","styleTagSections","styleSectionText","stylePropertySection","ch","getSectionText","addInlineStyleMarkup","getStyleTagSectionMarkup","styleString","addStylePropertyMarkup","getBlockInnerMarkup","hashtagConfig","blockMarkup","sections","lastOffset","sectionRanges","trigger","separator","hashtag","getHashtagRanges","sort","s1","s2","getSections","sectionText","entityInlineMarkup","getSectionMarkup","replacedText","trimLeadingZeros","trimTrailingZeros","getListMarkup","listBlocks","directional","previousBlock","listHtml","nestedListBlock","nestedBlock","blockStyle","editorContent","blockHtml","str","isAtomicEntityBlock","blockTag","getBlockMarkup","factory"],"mappings":"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","file":"static/js/defaultVendors~main~b5906859.2505916c.chunk.js","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nvar AtomicBlockUtils = require(\"./AtomicBlockUtils\");\n\nvar BlockMapBuilder = require(\"./BlockMapBuilder\");\n\nvar CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar CompositeDraftDecorator = require(\"./CompositeDraftDecorator\");\n\nvar ContentBlock = require(\"./ContentBlock\");\n\nvar ContentState = require(\"./ContentState\");\n\nvar DefaultDraftBlockRenderMap = require(\"./DefaultDraftBlockRenderMap\");\n\nvar DefaultDraftInlineStyle = require(\"./DefaultDraftInlineStyle\");\n\nvar DraftEditor = require(\"./DraftEditor.react\");\n\nvar DraftEditorBlock = require(\"./DraftEditorBlock.react\");\n\nvar DraftEntity = require(\"./DraftEntity\");\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar DraftEntityInstance = require(\"./DraftEntityInstance\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar KeyBindingUtil = require(\"./KeyBindingUtil\");\n\nvar RawDraftContentState = require(\"./RawDraftContentState\");\n\nvar RichTextEditorUtil = require(\"./RichTextEditorUtil\");\n\nvar SelectionState = require(\"./SelectionState\");\n\nvar convertFromDraftStateToRaw = require(\"./convertFromDraftStateToRaw\");\n\nvar convertFromRawToDraftState = require(\"./convertFromRawToDraftState\");\n\nvar generateRandomKey = require(\"./generateRandomKey\");\n\nvar getDefaultKeyBinding = require(\"./getDefaultKeyBinding\");\n\nvar getVisibleSelectionRect = require(\"./getVisibleSelectionRect\");\n\nvar convertFromHTML = require(\"./convertFromHTMLToContentBlocks\");\n\nvar DraftPublic = {\n Editor: DraftEditor,\n EditorBlock: DraftEditorBlock,\n EditorState: EditorState,\n CompositeDecorator: CompositeDraftDecorator,\n Entity: DraftEntity,\n EntityInstance: DraftEntityInstance,\n BlockMapBuilder: BlockMapBuilder,\n CharacterMetadata: CharacterMetadata,\n ContentBlock: ContentBlock,\n ContentState: ContentState,\n RawDraftContentState: RawDraftContentState,\n SelectionState: SelectionState,\n AtomicBlockUtils: AtomicBlockUtils,\n KeyBindingUtil: KeyBindingUtil,\n Modifier: DraftModifier,\n RichUtils: RichTextEditorUtil,\n DefaultDraftBlockRenderMap: DefaultDraftBlockRenderMap,\n DefaultDraftInlineStyle: DefaultDraftInlineStyle,\n convertFromHTML: convertFromHTML,\n convertFromRaw: convertFromRawToDraftState,\n convertToRaw: convertFromDraftStateToRaw,\n genKey: generateRandomKey,\n getDefaultKeyBinding: getDefaultKeyBinding,\n getVisibleSelectionRect: getVisibleSelectionRect\n};\nmodule.exports = DraftPublic;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar BlockTree = require(\"./BlockTree\");\n\nvar ContentState = require(\"./ContentState\");\n\nvar EditorBidiService = require(\"./EditorBidiService\");\n\nvar SelectionState = require(\"./SelectionState\");\n\nvar Immutable = require(\"immutable\");\n\nvar OrderedSet = Immutable.OrderedSet,\n Record = Immutable.Record,\n Stack = Immutable.Stack,\n OrderedMap = Immutable.OrderedMap,\n List = Immutable.List; // When configuring an editor, the user can chose to provide or not provide\n// basically all keys. `currentContent` varies, so this type doesn't include it.\n// (See the types defined below.)\n\nvar defaultRecord = {\n allowUndo: true,\n currentContent: null,\n decorator: null,\n directionMap: null,\n forceSelection: false,\n inCompositionMode: false,\n inlineStyleOverride: null,\n lastChangeType: null,\n nativelyRenderedContent: null,\n redoStack: Stack(),\n selection: null,\n treeMap: null,\n undoStack: Stack()\n};\nvar EditorStateRecord = Record(defaultRecord);\n\nvar EditorState = /*#__PURE__*/function () {\n EditorState.createEmpty = function createEmpty(decorator) {\n return this.createWithText('', decorator);\n };\n\n EditorState.createWithText = function createWithText(text, decorator) {\n return EditorState.createWithContent(ContentState.createFromText(text), decorator);\n };\n\n EditorState.createWithContent = function createWithContent(contentState, decorator) {\n if (contentState.getBlockMap().count() === 0) {\n return EditorState.createEmpty(decorator);\n }\n\n var firstKey = contentState.getBlockMap().first().getKey();\n return EditorState.create({\n currentContent: contentState,\n undoStack: Stack(),\n redoStack: Stack(),\n decorator: decorator || null,\n selection: SelectionState.createEmpty(firstKey)\n });\n };\n\n EditorState.create = function create(config) {\n var currentContent = config.currentContent,\n decorator = config.decorator;\n\n var recordConfig = _objectSpread({}, config, {\n treeMap: generateNewTreeMap(currentContent, decorator),\n directionMap: EditorBidiService.getDirectionMap(currentContent)\n });\n\n return new EditorState(new EditorStateRecord(recordConfig));\n };\n\n EditorState.fromJS = function fromJS(config) {\n return new EditorState(new EditorStateRecord(_objectSpread({}, config, {\n directionMap: config.directionMap != null ? OrderedMap(config.directionMap) : config.directionMap,\n inlineStyleOverride: config.inlineStyleOverride != null ? OrderedSet(config.inlineStyleOverride) : config.inlineStyleOverride,\n nativelyRenderedContent: config.nativelyRenderedContent != null ? ContentState.fromJS(config.nativelyRenderedContent) : config.nativelyRenderedContent,\n redoStack: config.redoStack != null ? Stack(config.redoStack.map(function (v) {\n return ContentState.fromJS(v);\n })) : config.redoStack,\n selection: config.selection != null ? new SelectionState(config.selection) : config.selection,\n treeMap: config.treeMap != null ? OrderedMap(config.treeMap).map(function (v) {\n return List(v).map(function (v) {\n return BlockTree.fromJS(v);\n });\n }) : config.treeMap,\n undoStack: config.undoStack != null ? Stack(config.undoStack.map(function (v) {\n return ContentState.fromJS(v);\n })) : config.undoStack,\n currentContent: ContentState.fromJS(config.currentContent)\n })));\n };\n\n EditorState.set = function set(editorState, put) {\n var map = editorState.getImmutable().withMutations(function (state) {\n var existingDecorator = state.get('decorator');\n var decorator = existingDecorator;\n\n if (put.decorator === null) {\n decorator = null;\n } else if (put.decorator) {\n decorator = put.decorator;\n }\n\n var newContent = put.currentContent || editorState.getCurrentContent();\n\n if (decorator !== existingDecorator) {\n var treeMap = state.get('treeMap');\n var newTreeMap;\n\n if (decorator && existingDecorator) {\n newTreeMap = regenerateTreeForNewDecorator(newContent, newContent.getBlockMap(), treeMap, decorator, existingDecorator);\n } else {\n newTreeMap = generateNewTreeMap(newContent, decorator);\n }\n\n state.merge({\n decorator: decorator,\n treeMap: newTreeMap,\n nativelyRenderedContent: null\n });\n return;\n }\n\n var existingContent = editorState.getCurrentContent();\n\n if (newContent !== existingContent) {\n state.set('treeMap', regenerateTreeForNewBlocks(editorState, newContent.getBlockMap(), newContent.getEntityMap(), decorator));\n }\n\n state.merge(put);\n });\n return new EditorState(map);\n };\n\n var _proto = EditorState.prototype;\n\n _proto.toJS = function toJS() {\n return this.getImmutable().toJS();\n };\n\n _proto.getAllowUndo = function getAllowUndo() {\n return this.getImmutable().get('allowUndo');\n };\n\n _proto.getCurrentContent = function getCurrentContent() {\n return this.getImmutable().get('currentContent');\n };\n\n _proto.getUndoStack = function getUndoStack() {\n return this.getImmutable().get('undoStack');\n };\n\n _proto.getRedoStack = function getRedoStack() {\n return this.getImmutable().get('redoStack');\n };\n\n _proto.getSelection = function getSelection() {\n return this.getImmutable().get('selection');\n };\n\n _proto.getDecorator = function getDecorator() {\n return this.getImmutable().get('decorator');\n };\n\n _proto.isInCompositionMode = function isInCompositionMode() {\n return this.getImmutable().get('inCompositionMode');\n };\n\n _proto.mustForceSelection = function mustForceSelection() {\n return this.getImmutable().get('forceSelection');\n };\n\n _proto.getNativelyRenderedContent = function getNativelyRenderedContent() {\n return this.getImmutable().get('nativelyRenderedContent');\n };\n\n _proto.getLastChangeType = function getLastChangeType() {\n return this.getImmutable().get('lastChangeType');\n }\n /**\n * While editing, the user may apply inline style commands with a collapsed\n * cursor, intending to type text that adopts the specified style. In this\n * case, we track the specified style as an \"override\" that takes precedence\n * over the inline style of the text adjacent to the cursor.\n *\n * If null, there is no override in place.\n */\n ;\n\n _proto.getInlineStyleOverride = function getInlineStyleOverride() {\n return this.getImmutable().get('inlineStyleOverride');\n };\n\n EditorState.setInlineStyleOverride = function setInlineStyleOverride(editorState, inlineStyleOverride) {\n return EditorState.set(editorState, {\n inlineStyleOverride: inlineStyleOverride\n });\n }\n /**\n * Get the appropriate inline style for the editor state. If an\n * override is in place, use it. Otherwise, the current style is\n * based on the location of the selection state.\n */\n ;\n\n _proto.getCurrentInlineStyle = function getCurrentInlineStyle() {\n var override = this.getInlineStyleOverride();\n\n if (override != null) {\n return override;\n }\n\n var content = this.getCurrentContent();\n var selection = this.getSelection();\n\n if (selection.isCollapsed()) {\n return getInlineStyleForCollapsedSelection(content, selection);\n }\n\n return getInlineStyleForNonCollapsedSelection(content, selection);\n };\n\n _proto.getBlockTree = function getBlockTree(blockKey) {\n return this.getImmutable().getIn(['treeMap', blockKey]);\n };\n\n _proto.isSelectionAtStartOfContent = function isSelectionAtStartOfContent() {\n var firstKey = this.getCurrentContent().getBlockMap().first().getKey();\n return this.getSelection().hasEdgeWithin(firstKey, 0, 0);\n };\n\n _proto.isSelectionAtEndOfContent = function isSelectionAtEndOfContent() {\n var content = this.getCurrentContent();\n var blockMap = content.getBlockMap();\n var last = blockMap.last();\n var end = last.getLength();\n return this.getSelection().hasEdgeWithin(last.getKey(), end, end);\n };\n\n _proto.getDirectionMap = function getDirectionMap() {\n return this.getImmutable().get('directionMap');\n }\n /**\n * Incorporate native DOM selection changes into the EditorState. This\n * method can be used when we simply want to accept whatever the DOM\n * has given us to represent selection, and we do not need to re-render\n * the editor.\n *\n * To forcibly move the DOM selection, see `EditorState.forceSelection`.\n */\n ;\n\n EditorState.acceptSelection = function acceptSelection(editorState, selection) {\n return updateSelection(editorState, selection, false);\n }\n /**\n * At times, we need to force the DOM selection to be where we\n * need it to be. This can occur when the anchor or focus nodes\n * are non-text nodes, for instance. In this case, we want to trigger\n * a re-render of the editor, which in turn forces selection into\n * the correct place in the DOM. The `forceSelection` method\n * accomplishes this.\n *\n * This method should be used in cases where you need to explicitly\n * move the DOM selection from one place to another without a change\n * in ContentState.\n */\n ;\n\n EditorState.forceSelection = function forceSelection(editorState, selection) {\n if (!selection.getHasFocus()) {\n selection = selection.set('hasFocus', true);\n }\n\n return updateSelection(editorState, selection, true);\n }\n /**\n * Move selection to the end of the editor without forcing focus.\n */\n ;\n\n EditorState.moveSelectionToEnd = function moveSelectionToEnd(editorState) {\n var content = editorState.getCurrentContent();\n var lastBlock = content.getLastBlock();\n var lastKey = lastBlock.getKey();\n var length = lastBlock.getLength();\n return EditorState.acceptSelection(editorState, new SelectionState({\n anchorKey: lastKey,\n anchorOffset: length,\n focusKey: lastKey,\n focusOffset: length,\n isBackward: false\n }));\n }\n /**\n * Force focus to the end of the editor. This is useful in scenarios\n * where we want to programmatically focus the input and it makes sense\n * to allow the user to continue working seamlessly.\n */\n ;\n\n EditorState.moveFocusToEnd = function moveFocusToEnd(editorState) {\n var afterSelectionMove = EditorState.moveSelectionToEnd(editorState);\n return EditorState.forceSelection(afterSelectionMove, afterSelectionMove.getSelection());\n }\n /**\n * Push the current ContentState onto the undo stack if it should be\n * considered a boundary state, and set the provided ContentState as the\n * new current content.\n */\n ;\n\n EditorState.push = function push(editorState, contentState, changeType) {\n var forceSelection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n\n if (editorState.getCurrentContent() === contentState) {\n return editorState;\n }\n\n var directionMap = EditorBidiService.getDirectionMap(contentState, editorState.getDirectionMap());\n\n if (!editorState.getAllowUndo()) {\n return EditorState.set(editorState, {\n currentContent: contentState,\n directionMap: directionMap,\n lastChangeType: changeType,\n selection: contentState.getSelectionAfter(),\n forceSelection: forceSelection,\n inlineStyleOverride: null\n });\n }\n\n var selection = editorState.getSelection();\n var currentContent = editorState.getCurrentContent();\n var undoStack = editorState.getUndoStack();\n var newContent = contentState;\n\n if (selection !== currentContent.getSelectionAfter() || mustBecomeBoundary(editorState, changeType)) {\n undoStack = undoStack.push(currentContent);\n newContent = newContent.set('selectionBefore', selection);\n } else if (changeType === 'insert-characters' || changeType === 'backspace-character' || changeType === 'delete-character') {\n // Preserve the previous selection.\n newContent = newContent.set('selectionBefore', currentContent.getSelectionBefore());\n }\n\n var inlineStyleOverride = editorState.getInlineStyleOverride(); // Don't discard inline style overrides for the following change types:\n\n var overrideChangeTypes = ['adjust-depth', 'change-block-type', 'split-block'];\n\n if (overrideChangeTypes.indexOf(changeType) === -1) {\n inlineStyleOverride = null;\n }\n\n var editorStateChanges = {\n currentContent: newContent,\n directionMap: directionMap,\n undoStack: undoStack,\n redoStack: Stack(),\n lastChangeType: changeType,\n selection: contentState.getSelectionAfter(),\n forceSelection: forceSelection,\n inlineStyleOverride: inlineStyleOverride\n };\n return EditorState.set(editorState, editorStateChanges);\n }\n /**\n * Make the top ContentState in the undo stack the new current content and\n * push the current content onto the redo stack.\n */\n ;\n\n EditorState.undo = function undo(editorState) {\n if (!editorState.getAllowUndo()) {\n return editorState;\n }\n\n var undoStack = editorState.getUndoStack();\n var newCurrentContent = undoStack.peek();\n\n if (!newCurrentContent) {\n return editorState;\n }\n\n var currentContent = editorState.getCurrentContent();\n var directionMap = EditorBidiService.getDirectionMap(newCurrentContent, editorState.getDirectionMap());\n return EditorState.set(editorState, {\n currentContent: newCurrentContent,\n directionMap: directionMap,\n undoStack: undoStack.shift(),\n redoStack: editorState.getRedoStack().push(currentContent),\n forceSelection: true,\n inlineStyleOverride: null,\n lastChangeType: 'undo',\n nativelyRenderedContent: null,\n selection: currentContent.getSelectionBefore()\n });\n }\n /**\n * Make the top ContentState in the redo stack the new current content and\n * push the current content onto the undo stack.\n */\n ;\n\n EditorState.redo = function redo(editorState) {\n if (!editorState.getAllowUndo()) {\n return editorState;\n }\n\n var redoStack = editorState.getRedoStack();\n var newCurrentContent = redoStack.peek();\n\n if (!newCurrentContent) {\n return editorState;\n }\n\n var currentContent = editorState.getCurrentContent();\n var directionMap = EditorBidiService.getDirectionMap(newCurrentContent, editorState.getDirectionMap());\n return EditorState.set(editorState, {\n currentContent: newCurrentContent,\n directionMap: directionMap,\n undoStack: editorState.getUndoStack().push(currentContent),\n redoStack: redoStack.shift(),\n forceSelection: true,\n inlineStyleOverride: null,\n lastChangeType: 'redo',\n nativelyRenderedContent: null,\n selection: newCurrentContent.getSelectionAfter()\n });\n }\n /**\n * Not for public consumption.\n */\n ;\n\n function EditorState(immutable) {\n _defineProperty(this, \"_immutable\", void 0);\n\n this._immutable = immutable;\n }\n /**\n * Not for public consumption.\n */\n\n\n _proto.getImmutable = function getImmutable() {\n return this._immutable;\n };\n\n return EditorState;\n}();\n/**\n * Set the supplied SelectionState as the new current selection, and set\n * the `force` flag to trigger manual selection placement by the view.\n */\n\n\nfunction updateSelection(editorState, selection, forceSelection) {\n return EditorState.set(editorState, {\n selection: selection,\n forceSelection: forceSelection,\n nativelyRenderedContent: null,\n inlineStyleOverride: null\n });\n}\n/**\n * Regenerate the entire tree map for a given ContentState and decorator.\n * Returns an OrderedMap that maps all available ContentBlock objects.\n */\n\n\nfunction generateNewTreeMap(contentState, decorator) {\n return contentState.getBlockMap().map(function (block) {\n return BlockTree.generate(contentState, block, decorator);\n }).toOrderedMap();\n}\n/**\n * Regenerate tree map objects for all ContentBlocks that have changed\n * between the current editorState and newContent. Returns an OrderedMap\n * with only changed regenerated tree map objects.\n */\n\n\nfunction regenerateTreeForNewBlocks(editorState, newBlockMap, newEntityMap, decorator) {\n var contentState = editorState.getCurrentContent().set('entityMap', newEntityMap);\n var prevBlockMap = contentState.getBlockMap();\n var prevTreeMap = editorState.getImmutable().get('treeMap');\n return prevTreeMap.merge(newBlockMap.toSeq().filter(function (block, key) {\n return block !== prevBlockMap.get(key);\n }).map(function (block) {\n return BlockTree.generate(contentState, block, decorator);\n }));\n}\n/**\n * Generate tree map objects for a new decorator object, preserving any\n * decorations that are unchanged from the previous decorator.\n *\n * Note that in order for this to perform optimally, decoration Lists for\n * decorators should be preserved when possible to allow for direct immutable\n * List comparison.\n */\n\n\nfunction regenerateTreeForNewDecorator(content, blockMap, previousTreeMap, decorator, existingDecorator) {\n return previousTreeMap.merge(blockMap.toSeq().filter(function (block) {\n return decorator.getDecorations(block, content) !== existingDecorator.getDecorations(block, content);\n }).map(function (block) {\n return BlockTree.generate(content, block, decorator);\n }));\n}\n/**\n * Return whether a change should be considered a boundary state, given\n * the previous change type. Allows us to discard potential boundary states\n * during standard typing or deletion behavior.\n */\n\n\nfunction mustBecomeBoundary(editorState, changeType) {\n var lastChangeType = editorState.getLastChangeType();\n return changeType !== lastChangeType || changeType !== 'insert-characters' && changeType !== 'backspace-character' && changeType !== 'delete-character';\n}\n\nfunction getInlineStyleForCollapsedSelection(content, selection) {\n var startKey = selection.getStartKey();\n var startOffset = selection.getStartOffset();\n var startBlock = content.getBlockForKey(startKey); // If the cursor is not at the start of the block, look backward to\n // preserve the style of the preceding character.\n\n if (startOffset > 0) {\n return startBlock.getInlineStyleAt(startOffset - 1);\n } // The caret is at position zero in this block. If the block has any\n // text at all, use the style of the first character.\n\n\n if (startBlock.getLength()) {\n return startBlock.getInlineStyleAt(0);\n } // Otherwise, look upward in the document to find the closest character.\n\n\n return lookUpwardForInlineStyle(content, startKey);\n}\n\nfunction getInlineStyleForNonCollapsedSelection(content, selection) {\n var startKey = selection.getStartKey();\n var startOffset = selection.getStartOffset();\n var startBlock = content.getBlockForKey(startKey); // If there is a character just inside the selection, use its style.\n\n if (startOffset < startBlock.getLength()) {\n return startBlock.getInlineStyleAt(startOffset);\n } // Check if the selection at the end of a non-empty block. Use the last\n // style in the block.\n\n\n if (startOffset > 0) {\n return startBlock.getInlineStyleAt(startOffset - 1);\n } // Otherwise, look upward in the document to find the closest character.\n\n\n return lookUpwardForInlineStyle(content, startKey);\n}\n\nfunction lookUpwardForInlineStyle(content, fromKey) {\n var lastNonEmpty = content.getBlockMap().reverse().skipUntil(function (_, k) {\n return k === fromKey;\n }).skip(1).skipUntil(function (block, _) {\n return block.getLength();\n }).first();\n\n if (lastNonEmpty) {\n return lastNonEmpty.getInlineStyleAt(lastNonEmpty.getLength() - 1);\n }\n\n return OrderedSet();\n}\n\nmodule.exports = EditorState;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar ContentStateInlineStyle = require(\"./ContentStateInlineStyle\");\n\nvar applyEntityToContentState = require(\"./applyEntityToContentState\");\n\nvar getCharacterRemovalRange = require(\"./getCharacterRemovalRange\");\n\nvar getContentStateFragment = require(\"./getContentStateFragment\");\n\nvar Immutable = require(\"immutable\");\n\nvar insertFragmentIntoContentState = require(\"./insertFragmentIntoContentState\");\n\nvar insertTextIntoContentState = require(\"./insertTextIntoContentState\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar modifyBlockForContentState = require(\"./modifyBlockForContentState\");\n\nvar removeEntitiesAtEdges = require(\"./removeEntitiesAtEdges\");\n\nvar removeRangeFromContentState = require(\"./removeRangeFromContentState\");\n\nvar splitBlockInContentState = require(\"./splitBlockInContentState\");\n\nvar OrderedSet = Immutable.OrderedSet;\n/**\n * `DraftModifier` provides a set of convenience methods that apply\n * modifications to a `ContentState` object based on a target `SelectionState`.\n *\n * Any change to a `ContentState` should be decomposable into a series of\n * transaction functions that apply the required changes and return output\n * `ContentState` objects.\n *\n * These functions encapsulate some of the most common transaction sequences.\n */\n\nvar DraftModifier = {\n replaceText: function replaceText(contentState, rangeToReplace, text, inlineStyle, entityKey) {\n var withoutEntities = removeEntitiesAtEdges(contentState, rangeToReplace);\n var withoutText = removeRangeFromContentState(withoutEntities, rangeToReplace);\n var character = CharacterMetadata.create({\n style: inlineStyle || OrderedSet(),\n entity: entityKey || null\n });\n return insertTextIntoContentState(withoutText, withoutText.getSelectionAfter(), text, character);\n },\n insertText: function insertText(contentState, targetRange, text, inlineStyle, entityKey) {\n !targetRange.isCollapsed() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Target range must be collapsed for `insertText`.') : invariant(false) : void 0;\n return DraftModifier.replaceText(contentState, targetRange, text, inlineStyle, entityKey);\n },\n moveText: function moveText(contentState, removalRange, targetRange) {\n var movedFragment = getContentStateFragment(contentState, removalRange);\n var afterRemoval = DraftModifier.removeRange(contentState, removalRange, 'backward');\n return DraftModifier.replaceWithFragment(afterRemoval, targetRange, movedFragment);\n },\n replaceWithFragment: function replaceWithFragment(contentState, targetRange, fragment) {\n var mergeBlockData = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'REPLACE_WITH_NEW_DATA';\n var withoutEntities = removeEntitiesAtEdges(contentState, targetRange);\n var withoutText = removeRangeFromContentState(withoutEntities, targetRange);\n return insertFragmentIntoContentState(withoutText, withoutText.getSelectionAfter(), fragment, mergeBlockData);\n },\n removeRange: function removeRange(contentState, rangeToRemove, removalDirection) {\n var startKey, endKey, startBlock, endBlock;\n\n if (rangeToRemove.getIsBackward()) {\n rangeToRemove = rangeToRemove.merge({\n anchorKey: rangeToRemove.getFocusKey(),\n anchorOffset: rangeToRemove.getFocusOffset(),\n focusKey: rangeToRemove.getAnchorKey(),\n focusOffset: rangeToRemove.getAnchorOffset(),\n isBackward: false\n });\n }\n\n startKey = rangeToRemove.getAnchorKey();\n endKey = rangeToRemove.getFocusKey();\n startBlock = contentState.getBlockForKey(startKey);\n endBlock = contentState.getBlockForKey(endKey);\n var startOffset = rangeToRemove.getStartOffset();\n var endOffset = rangeToRemove.getEndOffset();\n var startEntityKey = startBlock.getEntityAt(startOffset);\n var endEntityKey = endBlock.getEntityAt(endOffset - 1); // Check whether the selection state overlaps with a single entity.\n // If so, try to remove the appropriate substring of the entity text.\n\n if (startKey === endKey) {\n if (startEntityKey && startEntityKey === endEntityKey) {\n var adjustedRemovalRange = getCharacterRemovalRange(contentState.getEntityMap(), startBlock, endBlock, rangeToRemove, removalDirection);\n return removeRangeFromContentState(contentState, adjustedRemovalRange);\n }\n }\n\n var withoutEntities = removeEntitiesAtEdges(contentState, rangeToRemove);\n return removeRangeFromContentState(withoutEntities, rangeToRemove);\n },\n splitBlock: function splitBlock(contentState, selectionState) {\n var withoutEntities = removeEntitiesAtEdges(contentState, selectionState);\n var withoutText = removeRangeFromContentState(withoutEntities, selectionState);\n return splitBlockInContentState(withoutText, withoutText.getSelectionAfter());\n },\n applyInlineStyle: function applyInlineStyle(contentState, selectionState, inlineStyle) {\n return ContentStateInlineStyle.add(contentState, selectionState, inlineStyle);\n },\n removeInlineStyle: function removeInlineStyle(contentState, selectionState, inlineStyle) {\n return ContentStateInlineStyle.remove(contentState, selectionState, inlineStyle);\n },\n setBlockType: function setBlockType(contentState, selectionState, blockType) {\n return modifyBlockForContentState(contentState, selectionState, function (block) {\n return block.merge({\n type: blockType,\n depth: 0\n });\n });\n },\n setBlockData: function setBlockData(contentState, selectionState, blockData) {\n return modifyBlockForContentState(contentState, selectionState, function (block) {\n return block.merge({\n data: blockData\n });\n });\n },\n mergeBlockData: function mergeBlockData(contentState, selectionState, blockData) {\n return modifyBlockForContentState(contentState, selectionState, function (block) {\n return block.merge({\n data: block.getData().merge(blockData)\n });\n });\n },\n applyEntity: function applyEntity(contentState, selectionState, entityKey) {\n var withoutEntities = removeEntitiesAtEdges(contentState, selectionState);\n return applyEntityToContentState(withoutEntities, selectionState, entityKey);\n }\n};\nmodule.exports = DraftModifier;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar _require = require(\"immutable\"),\n Map = _require.Map,\n OrderedSet = _require.OrderedSet,\n Record = _require.Record; // Immutable.map is typed such that the value for every key in the map\n// must be the same type\n\n\nvar EMPTY_SET = OrderedSet();\nvar defaultRecord = {\n style: EMPTY_SET,\n entity: null\n};\nvar CharacterMetadataRecord = Record(defaultRecord);\n\nvar CharacterMetadata = /*#__PURE__*/function (_CharacterMetadataRec) {\n _inheritsLoose(CharacterMetadata, _CharacterMetadataRec);\n\n function CharacterMetadata() {\n return _CharacterMetadataRec.apply(this, arguments) || this;\n }\n\n var _proto = CharacterMetadata.prototype;\n\n _proto.getStyle = function getStyle() {\n return this.get('style');\n };\n\n _proto.getEntity = function getEntity() {\n return this.get('entity');\n };\n\n _proto.hasStyle = function hasStyle(style) {\n return this.getStyle().includes(style);\n };\n\n CharacterMetadata.applyStyle = function applyStyle(record, style) {\n var withStyle = record.set('style', record.getStyle().add(style));\n return CharacterMetadata.create(withStyle);\n };\n\n CharacterMetadata.removeStyle = function removeStyle(record, style) {\n var withoutStyle = record.set('style', record.getStyle().remove(style));\n return CharacterMetadata.create(withoutStyle);\n };\n\n CharacterMetadata.applyEntity = function applyEntity(record, entityKey) {\n var withEntity = record.getEntity() === entityKey ? record : record.set('entity', entityKey);\n return CharacterMetadata.create(withEntity);\n }\n /**\n * Use this function instead of the `CharacterMetadata` constructor.\n * Since most content generally uses only a very small number of\n * style/entity permutations, we can reuse these objects as often as\n * possible.\n */\n ;\n\n CharacterMetadata.create = function create(config) {\n if (!config) {\n return EMPTY;\n }\n\n var defaultConfig = {\n style: EMPTY_SET,\n entity: null\n }; // Fill in unspecified properties, if necessary.\n\n var configMap = Map(defaultConfig).merge(config);\n var existing = pool.get(configMap);\n\n if (existing) {\n return existing;\n }\n\n var newCharacter = new CharacterMetadata(configMap);\n pool = pool.set(configMap, newCharacter);\n return newCharacter;\n };\n\n CharacterMetadata.fromJS = function fromJS(_ref) {\n var style = _ref.style,\n entity = _ref.entity;\n return new CharacterMetadata({\n style: Array.isArray(style) ? OrderedSet(style) : style,\n entity: Array.isArray(entity) ? OrderedSet(entity) : entity\n });\n };\n\n return CharacterMetadata;\n}(CharacterMetadataRecord);\n\nvar EMPTY = new CharacterMetadata();\nvar pool = Map([[Map(defaultRecord), EMPTY]]);\nCharacterMetadata.EMPTY = EMPTY;\nmodule.exports = CharacterMetadata;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n *\n * This file is a fork of ContentBlock adding support for nesting references by\n * providing links to children, parent, prevSibling, and nextSibling.\n *\n * This is unstable and not part of the public API and should not be used by\n * production systems. This file may be update/removed without notice.\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar findRangesImmutable = require(\"./findRangesImmutable\");\n\nvar Immutable = require(\"immutable\");\n\nvar List = Immutable.List,\n Map = Immutable.Map,\n OrderedSet = Immutable.OrderedSet,\n Record = Immutable.Record,\n Repeat = Immutable.Repeat;\nvar EMPTY_SET = OrderedSet();\nvar defaultRecord = {\n parent: null,\n characterList: List(),\n data: Map(),\n depth: 0,\n key: '',\n text: '',\n type: 'unstyled',\n children: List(),\n prevSibling: null,\n nextSibling: null\n};\n\nvar haveEqualStyle = function haveEqualStyle(charA, charB) {\n return charA.getStyle() === charB.getStyle();\n};\n\nvar haveEqualEntity = function haveEqualEntity(charA, charB) {\n return charA.getEntity() === charB.getEntity();\n};\n\nvar decorateCharacterList = function decorateCharacterList(config) {\n if (!config) {\n return config;\n }\n\n var characterList = config.characterList,\n text = config.text;\n\n if (text && !characterList) {\n config.characterList = List(Repeat(CharacterMetadata.EMPTY, text.length));\n }\n\n return config;\n};\n\nvar ContentBlockNode = /*#__PURE__*/function (_ref) {\n _inheritsLoose(ContentBlockNode, _ref);\n\n function ContentBlockNode() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultRecord;\n\n /* eslint-disable-next-line constructor-super */\n return _ref.call(this, decorateCharacterList(props)) || this;\n }\n\n var _proto = ContentBlockNode.prototype;\n\n _proto.getKey = function getKey() {\n return this.get('key');\n };\n\n _proto.getType = function getType() {\n return this.get('type');\n };\n\n _proto.getText = function getText() {\n return this.get('text');\n };\n\n _proto.getCharacterList = function getCharacterList() {\n return this.get('characterList');\n };\n\n _proto.getLength = function getLength() {\n return this.getText().length;\n };\n\n _proto.getDepth = function getDepth() {\n return this.get('depth');\n };\n\n _proto.getData = function getData() {\n return this.get('data');\n };\n\n _proto.getInlineStyleAt = function getInlineStyleAt(offset) {\n var character = this.getCharacterList().get(offset);\n return character ? character.getStyle() : EMPTY_SET;\n };\n\n _proto.getEntityAt = function getEntityAt(offset) {\n var character = this.getCharacterList().get(offset);\n return character ? character.getEntity() : null;\n };\n\n _proto.getChildKeys = function getChildKeys() {\n return this.get('children');\n };\n\n _proto.getParentKey = function getParentKey() {\n return this.get('parent');\n };\n\n _proto.getPrevSiblingKey = function getPrevSiblingKey() {\n return this.get('prevSibling');\n };\n\n _proto.getNextSiblingKey = function getNextSiblingKey() {\n return this.get('nextSibling');\n };\n\n _proto.findStyleRanges = function findStyleRanges(filterFn, callback) {\n findRangesImmutable(this.getCharacterList(), haveEqualStyle, filterFn, callback);\n };\n\n _proto.findEntityRanges = function findEntityRanges(filterFn, callback) {\n findRangesImmutable(this.getCharacterList(), haveEqualEntity, filterFn, callback);\n };\n\n return ContentBlockNode;\n}(Record(defaultRecord));\n\nmodule.exports = ContentBlockNode;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar seenKeys = {};\nvar MULTIPLIER = Math.pow(2, 24);\n\nfunction generateRandomKey() {\n var key;\n\n while (key === undefined || seenKeys.hasOwnProperty(key) || !isNaN(+key)) {\n key = Math.floor(Math.random() * MULTIPLIER).toString(32);\n }\n\n seenKeys[key] = true;\n return key;\n}\n\nmodule.exports = generateRandomKey;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar KEY_DELIMITER = '-';\nvar DraftOffsetKey = {\n encode: function encode(blockKey, decoratorKey, leafKey) {\n return blockKey + KEY_DELIMITER + decoratorKey + KEY_DELIMITER + leafKey;\n },\n decode: function decode(offsetKey) {\n // Extracts the last two parts of offsetKey and captures the rest in blockKeyParts\n var _offsetKey$split$reve = offsetKey.split(KEY_DELIMITER).reverse(),\n leafKey = _offsetKey$split$reve[0],\n decoratorKey = _offsetKey$split$reve[1],\n blockKeyParts = _offsetKey$split$reve.slice(2);\n\n return {\n // Recomposes the parts of blockKey after reversing them\n blockKey: blockKeyParts.reverse().join(KEY_DELIMITER),\n decoratorKey: parseInt(decoratorKey, 10),\n leafKey: parseInt(leafKey, 10)\n };\n }\n};\nmodule.exports = DraftOffsetKey;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nmodule.exports = function (name) {\n if (typeof window !== 'undefined' && window.__DRAFT_GKX) {\n return !!window.__DRAFT_GKX[name];\n }\n\n return false;\n};","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar findRangesImmutable = require(\"./findRangesImmutable\");\n\nvar Immutable = require(\"immutable\");\n\nvar List = Immutable.List,\n Map = Immutable.Map,\n OrderedSet = Immutable.OrderedSet,\n Record = Immutable.Record,\n Repeat = Immutable.Repeat;\nvar EMPTY_SET = OrderedSet();\nvar defaultRecord = {\n key: '',\n type: 'unstyled',\n text: '',\n characterList: List(),\n depth: 0,\n data: Map()\n};\nvar ContentBlockRecord = Record(defaultRecord);\n\nvar decorateCharacterList = function decorateCharacterList(config) {\n if (!config) {\n return config;\n }\n\n var characterList = config.characterList,\n text = config.text;\n\n if (text && !characterList) {\n config.characterList = List(Repeat(CharacterMetadata.EMPTY, text.length));\n }\n\n return config;\n};\n\nvar ContentBlock = /*#__PURE__*/function (_ContentBlockRecord) {\n _inheritsLoose(ContentBlock, _ContentBlockRecord);\n\n function ContentBlock(config) {\n return _ContentBlockRecord.call(this, decorateCharacterList(config)) || this;\n }\n\n var _proto = ContentBlock.prototype;\n\n _proto.getKey = function getKey() {\n return this.get('key');\n };\n\n _proto.getType = function getType() {\n return this.get('type');\n };\n\n _proto.getText = function getText() {\n return this.get('text');\n };\n\n _proto.getCharacterList = function getCharacterList() {\n return this.get('characterList');\n };\n\n _proto.getLength = function getLength() {\n return this.getText().length;\n };\n\n _proto.getDepth = function getDepth() {\n return this.get('depth');\n };\n\n _proto.getData = function getData() {\n return this.get('data');\n };\n\n _proto.getInlineStyleAt = function getInlineStyleAt(offset) {\n var character = this.getCharacterList().get(offset);\n return character ? character.getStyle() : EMPTY_SET;\n };\n\n _proto.getEntityAt = function getEntityAt(offset) {\n var character = this.getCharacterList().get(offset);\n return character ? character.getEntity() : null;\n }\n /**\n * Execute a callback for every contiguous range of styles within the block.\n */\n ;\n\n _proto.findStyleRanges = function findStyleRanges(filterFn, callback) {\n findRangesImmutable(this.getCharacterList(), haveEqualStyle, filterFn, callback);\n }\n /**\n * Execute a callback for every contiguous range of entities within the block.\n */\n ;\n\n _proto.findEntityRanges = function findEntityRanges(filterFn, callback) {\n findRangesImmutable(this.getCharacterList(), haveEqualEntity, filterFn, callback);\n };\n\n return ContentBlock;\n}(ContentBlockRecord);\n\nfunction haveEqualStyle(charA, charB) {\n return charA.getStyle() === charB.getStyle();\n}\n\nfunction haveEqualEntity(charA, charB) {\n return charA.getEntity() === charB.getEntity();\n}\n\nmodule.exports = ContentBlock;","\"use strict\";\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\nfunction isElement(node) {\n if (!node || !node.ownerDocument) {\n return false;\n }\n\n return node.nodeType === Node.ELEMENT_NODE;\n}\n\nmodule.exports = isElement;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar Immutable = require(\"immutable\");\n\nvar OrderedMap = Immutable.OrderedMap;\nvar BlockMapBuilder = {\n createFromArray: function createFromArray(blocks) {\n return OrderedMap(blocks.map(function (block) {\n return [block.getKey(), block];\n }));\n }\n};\nmodule.exports = BlockMapBuilder;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\n/**\n * Search through an array to find contiguous stretches of elements that\n * match a specified filter function.\n *\n * When ranges are found, execute a specified `found` function to supply\n * the values to the caller.\n */\nfunction findRangesImmutable(haystack, areEqualFn, filterFn, foundFn) {\n if (!haystack.size) {\n return;\n }\n\n var cursor = 0;\n haystack.reduce(function (value, nextValue, nextIndex) {\n if (!areEqualFn(value, nextValue)) {\n if (filterFn(value)) {\n foundFn(cursor, nextIndex);\n }\n\n cursor = nextIndex;\n }\n\n return nextValue;\n });\n filterFn(haystack.last()) && foundFn(cursor, haystack.count());\n}\n\nmodule.exports = findRangesImmutable;","\"use strict\";\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\nfunction isHTMLElement(node) {\n if (!node || !node.ownerDocument) {\n return false;\n }\n\n if (!node.ownerDocument.defaultView) {\n return node instanceof HTMLElement;\n }\n\n if (node instanceof node.ownerDocument.defaultView.HTMLElement) {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = isHTMLElement;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar gkx = require(\"./gkx\");\n\nvar experimentalTreeDataSupport = gkx('draft_tree_data_support');\n/**\n * For a collapsed selection state, remove text based on the specified strategy.\n * If the selection state is not collapsed, remove the entire selected range.\n */\n\nfunction removeTextWithStrategy(editorState, strategy, direction) {\n var selection = editorState.getSelection();\n var content = editorState.getCurrentContent();\n var target = selection;\n var anchorKey = selection.getAnchorKey();\n var focusKey = selection.getFocusKey();\n var anchorBlock = content.getBlockForKey(anchorKey);\n\n if (experimentalTreeDataSupport) {\n if (direction === 'forward') {\n if (anchorKey !== focusKey) {\n // For now we ignore forward delete across blocks,\n // if there is demand for this we will implement it.\n return content;\n }\n }\n }\n\n if (selection.isCollapsed()) {\n if (direction === 'forward') {\n if (editorState.isSelectionAtEndOfContent()) {\n return content;\n }\n\n if (experimentalTreeDataSupport) {\n var isAtEndOfBlock = selection.getAnchorOffset() === content.getBlockForKey(anchorKey).getLength();\n\n if (isAtEndOfBlock) {\n var anchorBlockSibling = content.getBlockForKey(anchorBlock.nextSibling);\n\n if (!anchorBlockSibling || anchorBlockSibling.getLength() === 0) {\n // For now we ignore forward delete at the end of a block,\n // if there is demand for this we will implement it.\n return content;\n }\n }\n }\n } else if (editorState.isSelectionAtStartOfContent()) {\n return content;\n }\n\n target = strategy(editorState);\n\n if (target === selection) {\n return content;\n }\n }\n\n return DraftModifier.removeRange(content, target, direction);\n}\n\nmodule.exports = removeTextWithStrategy;","export default !!(typeof window !== 'undefined' && window.document && window.document.createElement);","import canUseDOM from './canUseDOM';\nvar size;\nexport default function scrollbarSize(recalc) {\n if (!size && size !== 0 || recalc) {\n if (canUseDOM) {\n var scrollDiv = document.createElement('div');\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n }\n }\n\n return size;\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar randomizeBlockMapKeys = require(\"./randomizeBlockMapKeys\");\n\nvar removeEntitiesAtEdges = require(\"./removeEntitiesAtEdges\");\n\nvar getContentStateFragment = function getContentStateFragment(contentState, selectionState) {\n var startKey = selectionState.getStartKey();\n var startOffset = selectionState.getStartOffset();\n var endKey = selectionState.getEndKey();\n var endOffset = selectionState.getEndOffset(); // Edge entities should be stripped to ensure that we don't preserve\n // invalid partial entities when the fragment is reused. We do, however,\n // preserve entities that are entirely within the selection range.\n\n var contentWithoutEdgeEntities = removeEntitiesAtEdges(contentState, selectionState);\n var blockMap = contentWithoutEdgeEntities.getBlockMap();\n var blockKeys = blockMap.keySeq();\n var startIndex = blockKeys.indexOf(startKey);\n var endIndex = blockKeys.indexOf(endKey) + 1;\n return randomizeBlockMapKeys(blockMap.slice(startIndex, endIndex).map(function (block, blockKey) {\n var text = block.getText();\n var chars = block.getCharacterList();\n\n if (startKey === endKey) {\n return block.merge({\n text: text.slice(startOffset, endOffset),\n characterList: chars.slice(startOffset, endOffset)\n });\n }\n\n if (blockKey === startKey) {\n return block.merge({\n text: text.slice(startOffset),\n characterList: chars.slice(startOffset)\n });\n }\n\n if (blockKey === endKey) {\n return block.merge({\n text: text.slice(0, endOffset),\n characterList: chars.slice(0, endOffset)\n });\n }\n\n return block;\n }));\n};\n\nmodule.exports = getContentStateFragment;","\"use strict\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\nvar DraftEntityInstance = require(\"./DraftEntityInstance\");\n\nvar Immutable = require(\"immutable\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar uuid = require(\"./uuid\");\n\nvar Map = Immutable.Map;\nvar instances = Map();\nvar instanceKey = uuid();\n/**\n * Temporary utility for generating the warnings\n */\n\nfunction logWarning(oldMethodCall, newMethodCall) {\n console.warn('WARNING: ' + oldMethodCall + ' will be deprecated soon!\\nPlease use \"' + newMethodCall + '\" instead.');\n}\n\n/**\n * A \"document entity\" is an object containing metadata associated with a\n * piece of text in a ContentBlock.\n *\n * For example, a `link` entity might include a `uri` property. When a\n * ContentBlock is rendered in the browser, text that refers to that link\n * entity may be rendered as an anchor, with the `uri` as the href value.\n *\n * In a ContentBlock, every position in the text may correspond to zero\n * or one entities. This correspondence is tracked using a key string,\n * generated via DraftEntity.create() and used to obtain entity metadata\n * via DraftEntity.get().\n */\nvar DraftEntity = {\n /**\n * WARNING: This method will be deprecated soon!\n * Please use 'contentState.getLastCreatedEntityKey' instead.\n * ---\n * Get the random key string from whatever entity was last created.\n * We need this to support the new API, as part of transitioning to put Entity\n * storage in contentState.\n */\n getLastCreatedEntityKey: function getLastCreatedEntityKey() {\n logWarning('DraftEntity.getLastCreatedEntityKey', 'contentState.getLastCreatedEntityKey');\n return DraftEntity.__getLastCreatedEntityKey();\n },\n\n /**\n * WARNING: This method will be deprecated soon!\n * Please use 'contentState.createEntity' instead.\n * ---\n * Create a DraftEntityInstance and store it for later retrieval.\n *\n * A random key string will be generated and returned. This key may\n * be used to track the entity's usage in a ContentBlock, and for\n * retrieving data about the entity at render time.\n */\n create: function create(type, mutability, data) {\n logWarning('DraftEntity.create', 'contentState.createEntity');\n return DraftEntity.__create(type, mutability, data);\n },\n\n /**\n * WARNING: This method will be deprecated soon!\n * Please use 'contentState.addEntity' instead.\n * ---\n * Add an existing DraftEntityInstance to the DraftEntity map. This is\n * useful when restoring instances from the server.\n */\n add: function add(instance) {\n logWarning('DraftEntity.add', 'contentState.addEntity');\n return DraftEntity.__add(instance);\n },\n\n /**\n * WARNING: This method will be deprecated soon!\n * Please use 'contentState.getEntity' instead.\n * ---\n * Retrieve the entity corresponding to the supplied key string.\n */\n get: function get(key) {\n logWarning('DraftEntity.get', 'contentState.getEntity');\n return DraftEntity.__get(key);\n },\n\n /**\n * Get all the entities in the content state.\n */\n __getAll: function __getAll() {\n return instances;\n },\n\n /**\n * Load the entity map with the given set of entities.\n */\n __loadWithEntities: function __loadWithEntities(entities) {\n instances = entities;\n instanceKey = uuid();\n },\n\n /**\n * WARNING: This method will be deprecated soon!\n * Please use 'contentState.mergeEntityData' instead.\n * ---\n * Entity instances are immutable. If you need to update the data for an\n * instance, this method will merge your data updates and return a new\n * instance.\n */\n mergeData: function mergeData(key, toMerge) {\n logWarning('DraftEntity.mergeData', 'contentState.mergeEntityData');\n return DraftEntity.__mergeData(key, toMerge);\n },\n\n /**\n * WARNING: This method will be deprecated soon!\n * Please use 'contentState.replaceEntityData' instead.\n * ---\n * Completely replace the data for a given instance.\n */\n replaceData: function replaceData(key, newData) {\n logWarning('DraftEntity.replaceData', 'contentState.replaceEntityData');\n return DraftEntity.__replaceData(key, newData);\n },\n // ***********************************WARNING******************************\n // --- the above public API will be deprecated in the next version of Draft!\n // The methods below this line are private - don't call them directly.\n\n /**\n * Get the random key string from whatever entity was last created.\n * We need this to support the new API, as part of transitioning to put Entity\n * storage in contentState.\n */\n __getLastCreatedEntityKey: function __getLastCreatedEntityKey() {\n return instanceKey;\n },\n\n /**\n * Create a DraftEntityInstance and store it for later retrieval.\n *\n * A random key string will be generated and returned. This key may\n * be used to track the entity's usage in a ContentBlock, and for\n * retrieving data about the entity at render time.\n */\n __create: function __create(type, mutability, data) {\n return DraftEntity.__add(new DraftEntityInstance({\n type: type,\n mutability: mutability,\n data: data || {}\n }));\n },\n\n /**\n * Add an existing DraftEntityInstance to the DraftEntity map. This is\n * useful when restoring instances from the server.\n */\n __add: function __add(instance) {\n instanceKey = uuid();\n instances = instances.set(instanceKey, instance);\n return instanceKey;\n },\n\n /**\n * Retrieve the entity corresponding to the supplied key string.\n */\n __get: function __get(key) {\n var instance = instances.get(key);\n !!!instance ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Unknown DraftEntity key: %s.', key) : invariant(false) : void 0;\n return instance;\n },\n\n /**\n * Entity instances are immutable. If you need to update the data for an\n * instance, this method will merge your data updates and return a new\n * instance.\n */\n __mergeData: function __mergeData(key, toMerge) {\n var instance = DraftEntity.__get(key);\n\n var newData = _objectSpread({}, instance.getData(), toMerge);\n\n var newInstance = instance.set('data', newData);\n instances = instances.set(key, newInstance);\n return newInstance;\n },\n\n /**\n * Completely replace the data for a given instance.\n */\n __replaceData: function __replaceData(key, newData) {\n var instance = DraftEntity.__get(key);\n\n var newInstance = instance.set('data', newData);\n instances = instances.set(key, newInstance);\n return newInstance;\n }\n};\nmodule.exports = DraftEntity;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar Immutable = require(\"immutable\");\n\nvar Record = Immutable.Record;\nvar defaultRecord = {\n anchorKey: '',\n anchorOffset: 0,\n focusKey: '',\n focusOffset: 0,\n isBackward: false,\n hasFocus: false\n};\n/* $FlowFixMe[unclear-type] This comment suppresses an error found when\n * automatically adding a type annotation with the codemod Komodo/Annotate_\n * exports. To see the error delete this comment and run Flow. */\n\nvar SelectionStateRecord = Record(defaultRecord);\n\nvar SelectionState = /*#__PURE__*/function (_SelectionStateRecord) {\n _inheritsLoose(SelectionState, _SelectionStateRecord);\n\n function SelectionState() {\n return _SelectionStateRecord.apply(this, arguments) || this;\n }\n\n var _proto = SelectionState.prototype;\n\n _proto.serialize = function serialize() {\n return 'Anchor: ' + this.getAnchorKey() + ':' + this.getAnchorOffset() + ', ' + 'Focus: ' + this.getFocusKey() + ':' + this.getFocusOffset() + ', ' + 'Is Backward: ' + String(this.getIsBackward()) + ', ' + 'Has Focus: ' + String(this.getHasFocus());\n };\n\n _proto.getAnchorKey = function getAnchorKey() {\n return this.get('anchorKey');\n };\n\n _proto.getAnchorOffset = function getAnchorOffset() {\n return this.get('anchorOffset');\n };\n\n _proto.getFocusKey = function getFocusKey() {\n return this.get('focusKey');\n };\n\n _proto.getFocusOffset = function getFocusOffset() {\n return this.get('focusOffset');\n };\n\n _proto.getIsBackward = function getIsBackward() {\n return this.get('isBackward');\n };\n\n _proto.getHasFocus = function getHasFocus() {\n return this.get('hasFocus');\n }\n /**\n * Return whether the specified range overlaps with an edge of the\n * SelectionState.\n */\n ;\n\n _proto.hasEdgeWithin = function hasEdgeWithin(blockKey, start, end) {\n var anchorKey = this.getAnchorKey();\n var focusKey = this.getFocusKey();\n\n if (anchorKey === focusKey && anchorKey === blockKey) {\n var selectionStart = this.getStartOffset();\n var selectionEnd = this.getEndOffset();\n return start <= selectionStart && selectionStart <= end || // selectionStart is between start and end, or\n start <= selectionEnd && selectionEnd <= end // selectionEnd is between start and end\n ;\n }\n\n if (blockKey !== anchorKey && blockKey !== focusKey) {\n return false;\n }\n\n var offsetToCheck = blockKey === anchorKey ? this.getAnchorOffset() : this.getFocusOffset();\n return start <= offsetToCheck && end >= offsetToCheck;\n };\n\n _proto.isCollapsed = function isCollapsed() {\n return this.getAnchorKey() === this.getFocusKey() && this.getAnchorOffset() === this.getFocusOffset();\n };\n\n _proto.getStartKey = function getStartKey() {\n return this.getIsBackward() ? this.getFocusKey() : this.getAnchorKey();\n };\n\n _proto.getStartOffset = function getStartOffset() {\n return this.getIsBackward() ? this.getFocusOffset() : this.getAnchorOffset();\n };\n\n _proto.getEndKey = function getEndKey() {\n return this.getIsBackward() ? this.getAnchorKey() : this.getFocusKey();\n };\n\n _proto.getEndOffset = function getEndOffset() {\n return this.getIsBackward() ? this.getAnchorOffset() : this.getFocusOffset();\n };\n\n SelectionState.createEmpty = function createEmpty(key) {\n return new SelectionState({\n anchorKey: key,\n anchorOffset: 0,\n focusKey: key,\n focusOffset: 0,\n isBackward: false,\n hasFocus: false\n });\n };\n\n return SelectionState;\n}(SelectionStateRecord);\n\nmodule.exports = SelectionState;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar getCorrectDocumentFromNode = require(\"./getCorrectDocumentFromNode\");\n\nvar getSelectionOffsetKeyForNode = require(\"./getSelectionOffsetKeyForNode\");\n/**\n * Get the key from the node's nearest offset-aware ancestor.\n */\n\n\nfunction findAncestorOffsetKey(node) {\n var searchNode = node;\n\n while (searchNode && searchNode !== getCorrectDocumentFromNode(node).documentElement) {\n var key = getSelectionOffsetKeyForNode(searchNode);\n\n if (key != null) {\n return key;\n }\n\n searchNode = searchNode.parentNode;\n }\n\n return null;\n}\n\nmodule.exports = findAncestorOffsetKey;","\"use strict\";\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\nfunction getCorrectDocumentFromNode(node) {\n if (!node || !node.ownerDocument) {\n return document;\n }\n\n return node.ownerDocument;\n}\n\nmodule.exports = getCorrectDocumentFromNode;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\n/**\n * Utility method for determining whether or not the value returned\n * from a handler indicates that it was handled.\n */\nfunction isEventHandled(value) {\n return value === 'handled' || value === true;\n}\n\nmodule.exports = isEventHandled;","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['exports'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports);\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports);\n global.index = mod.exports;\n }\n})(this, function (exports) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n var isDate = exports.isDate = function isDate(d) {\n return d instanceof Date;\n };\n var isEmpty = exports.isEmpty = function isEmpty(o) {\n return Object.keys(o).length === 0;\n };\n var isObject = exports.isObject = function isObject(o) {\n return o != null && (typeof o === 'undefined' ? 'undefined' : _typeof(o)) === 'object';\n };\n var properObject = exports.properObject = function properObject(o) {\n return isObject(o) && !o.hasOwnProperty ? _extends({}, o) : o;\n };\n});","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar BlockMapBuilder = require(\"./BlockMapBuilder\");\n\nvar CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar ContentBlock = require(\"./ContentBlock\");\n\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar DraftEntity = require(\"./DraftEntity\");\n\nvar SelectionState = require(\"./SelectionState\");\n\nvar generateRandomKey = require(\"./generateRandomKey\");\n\nvar getOwnObjectValues = require(\"./getOwnObjectValues\");\n\nvar gkx = require(\"./gkx\");\n\nvar Immutable = require(\"immutable\");\n\nvar sanitizeDraftText = require(\"./sanitizeDraftText\");\n\nvar List = Immutable.List,\n Record = Immutable.Record,\n Repeat = Immutable.Repeat,\n ImmutableMap = Immutable.Map,\n OrderedMap = Immutable.OrderedMap;\nvar defaultRecord = {\n entityMap: null,\n blockMap: null,\n selectionBefore: null,\n selectionAfter: null\n};\nvar ContentStateRecord = Record(defaultRecord);\n/* $FlowFixMe[signature-verification-failure] Supressing a `signature-\n * verification-failure` error here. TODO: T65949050 Clean up the branch for\n * this GK */\n\nvar ContentBlockNodeRecord = gkx('draft_tree_data_support') ? ContentBlockNode : ContentBlock;\n\nvar ContentState = /*#__PURE__*/function (_ContentStateRecord) {\n _inheritsLoose(ContentState, _ContentStateRecord);\n\n function ContentState() {\n return _ContentStateRecord.apply(this, arguments) || this;\n }\n\n var _proto = ContentState.prototype;\n\n _proto.getEntityMap = function getEntityMap() {\n // TODO: update this when we fully remove DraftEntity\n return DraftEntity;\n };\n\n _proto.getBlockMap = function getBlockMap() {\n return this.get('blockMap');\n };\n\n _proto.getSelectionBefore = function getSelectionBefore() {\n return this.get('selectionBefore');\n };\n\n _proto.getSelectionAfter = function getSelectionAfter() {\n return this.get('selectionAfter');\n };\n\n _proto.getBlockForKey = function getBlockForKey(key) {\n var block = this.getBlockMap().get(key);\n return block;\n };\n\n _proto.getKeyBefore = function getKeyBefore(key) {\n return this.getBlockMap().reverse().keySeq().skipUntil(function (v) {\n return v === key;\n }).skip(1).first();\n };\n\n _proto.getKeyAfter = function getKeyAfter(key) {\n return this.getBlockMap().keySeq().skipUntil(function (v) {\n return v === key;\n }).skip(1).first();\n };\n\n _proto.getBlockAfter = function getBlockAfter(key) {\n return this.getBlockMap().skipUntil(function (_, k) {\n return k === key;\n }).skip(1).first();\n };\n\n _proto.getBlockBefore = function getBlockBefore(key) {\n return this.getBlockMap().reverse().skipUntil(function (_, k) {\n return k === key;\n }).skip(1).first();\n };\n\n _proto.getBlocksAsArray = function getBlocksAsArray() {\n return this.getBlockMap().toArray();\n };\n\n _proto.getFirstBlock = function getFirstBlock() {\n return this.getBlockMap().first();\n };\n\n _proto.getLastBlock = function getLastBlock() {\n return this.getBlockMap().last();\n };\n\n _proto.getPlainText = function getPlainText(delimiter) {\n return this.getBlockMap().map(function (block) {\n return block ? block.getText() : '';\n }).join(delimiter || '\\n');\n };\n\n _proto.getLastCreatedEntityKey = function getLastCreatedEntityKey() {\n // TODO: update this when we fully remove DraftEntity\n return DraftEntity.__getLastCreatedEntityKey();\n };\n\n _proto.hasText = function hasText() {\n var blockMap = this.getBlockMap();\n return blockMap.size > 1 || // make sure that there are no zero width space chars\n escape(blockMap.first().getText()).replace(/%u200B/g, '').length > 0;\n };\n\n _proto.createEntity = function createEntity(type, mutability, data) {\n // TODO: update this when we fully remove DraftEntity\n DraftEntity.__create(type, mutability, data);\n\n return this;\n };\n\n _proto.mergeEntityData = function mergeEntityData(key, toMerge) {\n // TODO: update this when we fully remove DraftEntity\n DraftEntity.__mergeData(key, toMerge);\n\n return this;\n };\n\n _proto.replaceEntityData = function replaceEntityData(key, newData) {\n // TODO: update this when we fully remove DraftEntity\n DraftEntity.__replaceData(key, newData);\n\n return this;\n };\n\n _proto.addEntity = function addEntity(instance) {\n // TODO: update this when we fully remove DraftEntity\n DraftEntity.__add(instance);\n\n return this;\n };\n\n _proto.getEntity = function getEntity(key) {\n // TODO: update this when we fully remove DraftEntity\n return DraftEntity.__get(key);\n };\n\n _proto.getAllEntities = function getAllEntities() {\n return DraftEntity.__getAll();\n };\n\n _proto.loadWithEntities = function loadWithEntities(entities) {\n return DraftEntity.__loadWithEntities(entities);\n };\n\n ContentState.createFromBlockArray = function createFromBlockArray( // TODO: update flow type when we completely deprecate the old entity API\n blocks, entityMap) {\n // TODO: remove this when we completely deprecate the old entity API\n var theBlocks = Array.isArray(blocks) ? blocks : blocks.contentBlocks;\n var blockMap = BlockMapBuilder.createFromArray(theBlocks);\n var selectionState = blockMap.isEmpty() ? new SelectionState() : SelectionState.createEmpty(blockMap.first().getKey());\n return new ContentState({\n blockMap: blockMap,\n entityMap: entityMap || DraftEntity,\n selectionBefore: selectionState,\n selectionAfter: selectionState\n });\n };\n\n ContentState.createFromText = function createFromText(text) {\n var delimiter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : /\\r\\n?|\\n/g;\n var strings = text.split(delimiter);\n var blocks = strings.map(function (block) {\n block = sanitizeDraftText(block);\n return new ContentBlockNodeRecord({\n key: generateRandomKey(),\n text: block,\n type: 'unstyled',\n characterList: List(Repeat(CharacterMetadata.EMPTY, block.length))\n });\n });\n return ContentState.createFromBlockArray(blocks);\n };\n\n ContentState.fromJS = function fromJS(state) {\n return new ContentState(_objectSpread({}, state, {\n blockMap: OrderedMap(state.blockMap).map(ContentState.createContentBlockFromJS),\n selectionBefore: new SelectionState(state.selectionBefore),\n selectionAfter: new SelectionState(state.selectionAfter)\n }));\n };\n\n ContentState.createContentBlockFromJS = function createContentBlockFromJS(block) {\n var characterList = block.characterList;\n return new ContentBlockNodeRecord(_objectSpread({}, block, {\n data: ImmutableMap(block.data),\n characterList: characterList != null ? List((Array.isArray(characterList) ? characterList : getOwnObjectValues(characterList)).map(function (c) {\n return CharacterMetadata.fromJS(c);\n })) : undefined\n }));\n };\n\n return ContentState;\n}(ContentStateRecord);\n\nmodule.exports = ContentState;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar React = require(\"react\");\n\nvar cx = require(\"fbjs/lib/cx\");\n\nvar _require = require(\"immutable\"),\n Map = _require.Map;\n\nvar UL_WRAP = React.createElement(\"ul\", {\n className: cx('public/DraftStyleDefault/ul')\n});\nvar OL_WRAP = React.createElement(\"ol\", {\n className: cx('public/DraftStyleDefault/ol')\n});\nvar PRE_WRAP = React.createElement(\"pre\", {\n className: cx('public/DraftStyleDefault/pre')\n});\nvar DefaultDraftBlockRenderMap = Map({\n 'header-one': {\n element: 'h1'\n },\n 'header-two': {\n element: 'h2'\n },\n 'header-three': {\n element: 'h3'\n },\n 'header-four': {\n element: 'h4'\n },\n 'header-five': {\n element: 'h5'\n },\n 'header-six': {\n element: 'h6'\n },\n section: {\n element: 'section'\n },\n article: {\n element: 'article'\n },\n 'unordered-list-item': {\n element: 'li',\n wrapper: UL_WRAP\n },\n 'ordered-list-item': {\n element: 'li',\n wrapper: OL_WRAP\n },\n blockquote: {\n element: 'blockquote'\n },\n atomic: {\n element: 'figure'\n },\n 'code-block': {\n element: 'pre',\n wrapper: PRE_WRAP\n },\n unstyled: {\n element: 'div',\n aliasedElements: ['p']\n }\n});\nmodule.exports = DefaultDraftBlockRenderMap;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar _require = require(\"./draftKeyUtils\"),\n notEmptyKey = _require.notEmptyKey;\n/**\n * Return the entity key that should be used when inserting text for the\n * specified target selection, only if the entity is `MUTABLE`. `IMMUTABLE`\n * and `SEGMENTED` entities should not be used for insertion behavior.\n */\n\n\nfunction getEntityKeyForSelection(contentState, targetSelection) {\n var entityKey;\n\n if (targetSelection.isCollapsed()) {\n var key = targetSelection.getAnchorKey();\n var offset = targetSelection.getAnchorOffset();\n\n if (offset > 0) {\n entityKey = contentState.getBlockForKey(key).getEntityAt(offset - 1);\n\n if (entityKey !== contentState.getBlockForKey(key).getEntityAt(offset)) {\n return null;\n }\n\n return filterKey(contentState.getEntityMap(), entityKey);\n }\n\n return null;\n }\n\n var startKey = targetSelection.getStartKey();\n var startOffset = targetSelection.getStartOffset();\n var startBlock = contentState.getBlockForKey(startKey);\n entityKey = startOffset === startBlock.getLength() ? null : startBlock.getEntityAt(startOffset);\n return filterKey(contentState.getEntityMap(), entityKey);\n}\n/**\n * Determine whether an entity key corresponds to a `MUTABLE` entity. If so,\n * return it. If not, return null.\n */\n\n\nfunction filterKey(entityMap, entityKey) {\n if (notEmptyKey(entityKey)) {\n var entity = entityMap.__get(entityKey);\n\n return entity.getMutability() === 'MUTABLE' ? entityKey : null;\n }\n\n return null;\n}\n\nmodule.exports = getEntityKeyForSelection;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar warning = require(\"fbjs/lib/warning\");\n/**\n * Given a collapsed selection, move the focus `maxDistance` backward within\n * the selected block. If the selection will go beyond the start of the block,\n * move focus to the end of the previous block, but no further.\n *\n * This function is not Unicode-aware, so surrogate pairs will be treated\n * as having length 2.\n */\n\n\nfunction moveSelectionBackward(editorState, maxDistance) {\n var selection = editorState.getSelection(); // Should eventually make this an invariant\n\n process.env.NODE_ENV !== \"production\" ? warning(selection.isCollapsed(), 'moveSelectionBackward should only be called with a collapsed SelectionState') : void 0;\n var content = editorState.getCurrentContent();\n var key = selection.getStartKey();\n var offset = selection.getStartOffset();\n var focusKey = key;\n var focusOffset = 0;\n\n if (maxDistance > offset) {\n var keyBefore = content.getKeyBefore(key);\n\n if (keyBefore == null) {\n focusKey = key;\n } else {\n focusKey = keyBefore;\n var blockBefore = content.getBlockForKey(keyBefore);\n focusOffset = blockBefore.getText().length;\n }\n } else {\n focusOffset = offset - maxDistance;\n }\n\n return selection.merge({\n focusKey: focusKey,\n focusOffset: focusOffset,\n isBackward: true\n });\n}\n\nmodule.exports = moveSelectionBackward;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar isSoftNewlineEvent = require(\"./isSoftNewlineEvent\");\n\nvar isOSX = UserAgent.isPlatform('Mac OS X');\nvar KeyBindingUtil = {\n /**\n * Check whether the ctrlKey modifier is *not* being used in conjunction with\n * the altKey modifier. If they are combined, the result is an `altGraph`\n * key modifier, which should not be handled by this set of key bindings.\n */\n isCtrlKeyCommand: function isCtrlKeyCommand(e) {\n return !!e.ctrlKey && !e.altKey;\n },\n isOptionKeyCommand: function isOptionKeyCommand(e) {\n return isOSX && e.altKey;\n },\n usesMacOSHeuristics: function usesMacOSHeuristics() {\n return isOSX;\n },\n hasCommandModifier: function hasCommandModifier(e) {\n return isOSX ? !!e.metaKey && !e.altKey : KeyBindingUtil.isCtrlKeyCommand(e);\n },\n isSoftNewlineEvent: isSoftNewlineEvent\n};\nmodule.exports = KeyBindingUtil;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar generateRandomKey = require(\"./generateRandomKey\");\n\nvar Immutable = require(\"immutable\");\n\nvar OrderedMap = Immutable.OrderedMap;\n\nvar randomizeContentBlockNodeKeys = function randomizeContentBlockNodeKeys(blockMap) {\n var newKeysRef = {}; // we keep track of root blocks in order to update subsequent sibling links\n\n var lastRootBlock;\n return OrderedMap(blockMap.withMutations(function (blockMapState) {\n blockMapState.forEach(function (block, index) {\n var oldKey = block.getKey();\n var nextKey = block.getNextSiblingKey();\n var prevKey = block.getPrevSiblingKey();\n var childrenKeys = block.getChildKeys();\n var parentKey = block.getParentKey(); // new key that we will use to build linking\n\n var key = generateRandomKey(); // we will add it here to re-use it later\n\n newKeysRef[oldKey] = key;\n\n if (nextKey) {\n var nextBlock = blockMapState.get(nextKey);\n\n if (nextBlock) {\n blockMapState.setIn([nextKey, 'prevSibling'], key);\n } else {\n // this can happen when generating random keys for fragments\n blockMapState.setIn([oldKey, 'nextSibling'], null);\n }\n }\n\n if (prevKey) {\n var prevBlock = blockMapState.get(prevKey);\n\n if (prevBlock) {\n blockMapState.setIn([prevKey, 'nextSibling'], key);\n } else {\n // this can happen when generating random keys for fragments\n blockMapState.setIn([oldKey, 'prevSibling'], null);\n }\n }\n\n if (parentKey && blockMapState.get(parentKey)) {\n var parentBlock = blockMapState.get(parentKey);\n var parentChildrenList = parentBlock.getChildKeys();\n blockMapState.setIn([parentKey, 'children'], parentChildrenList.set(parentChildrenList.indexOf(block.getKey()), key));\n } else {\n // blocks will then be treated as root block nodes\n blockMapState.setIn([oldKey, 'parent'], null);\n\n if (lastRootBlock) {\n blockMapState.setIn([lastRootBlock.getKey(), 'nextSibling'], key);\n blockMapState.setIn([oldKey, 'prevSibling'], newKeysRef[lastRootBlock.getKey()]);\n }\n\n lastRootBlock = blockMapState.get(oldKey);\n }\n\n childrenKeys.forEach(function (childKey) {\n var childBlock = blockMapState.get(childKey);\n\n if (childBlock) {\n blockMapState.setIn([childKey, 'parent'], key);\n } else {\n blockMapState.setIn([oldKey, 'children'], block.getChildKeys().filter(function (child) {\n return child !== childKey;\n }));\n }\n });\n });\n }).toArray().map(function (block) {\n return [newKeysRef[block.getKey()], block.set('key', newKeysRef[block.getKey()])];\n }));\n};\n\nvar randomizeContentBlockKeys = function randomizeContentBlockKeys(blockMap) {\n return OrderedMap(blockMap.toArray().map(function (block) {\n var key = generateRandomKey();\n return [key, block.set('key', key)];\n }));\n};\n\nvar randomizeBlockMapKeys = function randomizeBlockMapKeys(blockMap) {\n var isTreeBasedBlockMap = blockMap.first() instanceof ContentBlockNode;\n\n if (!isTreeBasedBlockMap) {\n return randomizeContentBlockKeys(blockMap);\n }\n\n return randomizeContentBlockNodeKeys(blockMap);\n};\n\nmodule.exports = randomizeBlockMapKeys;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar findRangesImmutable = require(\"./findRangesImmutable\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nfunction removeEntitiesAtEdges(contentState, selectionState) {\n var blockMap = contentState.getBlockMap();\n var entityMap = contentState.getEntityMap();\n var updatedBlocks = {};\n var startKey = selectionState.getStartKey();\n var startOffset = selectionState.getStartOffset();\n var startBlock = blockMap.get(startKey);\n var updatedStart = removeForBlock(entityMap, startBlock, startOffset);\n\n if (updatedStart !== startBlock) {\n updatedBlocks[startKey] = updatedStart;\n }\n\n var endKey = selectionState.getEndKey();\n var endOffset = selectionState.getEndOffset();\n var endBlock = blockMap.get(endKey);\n\n if (startKey === endKey) {\n endBlock = updatedStart;\n }\n\n var updatedEnd = removeForBlock(entityMap, endBlock, endOffset);\n\n if (updatedEnd !== endBlock) {\n updatedBlocks[endKey] = updatedEnd;\n }\n\n if (!Object.keys(updatedBlocks).length) {\n return contentState.set('selectionAfter', selectionState);\n }\n\n return contentState.merge({\n blockMap: blockMap.merge(updatedBlocks),\n selectionAfter: selectionState\n });\n}\n/**\n * Given a list of characters and an offset that is in the middle of an entity,\n * returns the start and end of the entity that is overlapping the offset.\n * Note: This method requires that the offset be in an entity range.\n */\n\n\nfunction getRemovalRange(characters, entityKey, offset) {\n var removalRange; // Iterates through a list looking for ranges of matching items\n // based on the 'isEqual' callback.\n // Then instead of returning the result, call the 'found' callback\n // with each range.\n // Then filters those ranges based on the 'filter' callback\n //\n // Here we use it to find ranges of characters with the same entity key.\n\n findRangesImmutable(characters, // the list to iterate through\n function (a, b) {\n return a.getEntity() === b.getEntity();\n }, // 'isEqual' callback\n function (element) {\n return element.getEntity() === entityKey;\n }, // 'filter' callback\n function (start, end) {\n // 'found' callback\n if (start <= offset && end >= offset) {\n // this entity overlaps the offset index\n removalRange = {\n start: start,\n end: end\n };\n }\n });\n !(typeof removalRange === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Removal range must exist within character list.') : invariant(false) : void 0;\n return removalRange;\n}\n\nfunction removeForBlock(entityMap, block, offset) {\n var chars = block.getCharacterList();\n var charBefore = offset > 0 ? chars.get(offset - 1) : undefined;\n var charAfter = offset < chars.count() ? chars.get(offset) : undefined;\n var entityBeforeCursor = charBefore ? charBefore.getEntity() : undefined;\n var entityAfterCursor = charAfter ? charAfter.getEntity() : undefined;\n\n if (entityAfterCursor && entityAfterCursor === entityBeforeCursor) {\n var entity = entityMap.__get(entityAfterCursor);\n\n if (entity.getMutability() !== 'MUTABLE') {\n var _getRemovalRange = getRemovalRange(chars, entityAfterCursor, offset),\n start = _getRemovalRange.start,\n end = _getRemovalRange.end;\n\n var current;\n\n while (start < end) {\n current = chars.get(start);\n chars = chars.set(start, CharacterMetadata.applyEntity(current, null));\n start++;\n }\n\n return block.set('characterList', chars);\n }\n }\n\n return block;\n}\n\nmodule.exports = removeEntitiesAtEdges;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\n/**\n * Maintain persistence for target list when appending and prepending.\n */\nfunction insertIntoList(targetListArg, toInsert, offset) {\n var targetList = targetListArg;\n\n if (offset === targetList.count()) {\n toInsert.forEach(function (c) {\n targetList = targetList.push(c);\n });\n } else if (offset === 0) {\n toInsert.reverse().forEach(function (c) {\n targetList = targetList.unshift(c);\n });\n } else {\n var head = targetList.slice(0, offset);\n var tail = targetList.slice(offset);\n targetList = head.concat(toInsert, tail).toList();\n }\n\n return targetList;\n}\n\nmodule.exports = insertIntoList;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar Immutable = require(\"immutable\");\n\nvar Map = Immutable.Map;\n\nfunction modifyBlockForContentState(contentState, selectionState, operation) {\n var startKey = selectionState.getStartKey();\n var endKey = selectionState.getEndKey();\n var blockMap = contentState.getBlockMap();\n var newBlocks = blockMap.toSeq().skipUntil(function (_, k) {\n return k === startKey;\n }).takeUntil(function (_, k) {\n return k === endKey;\n }).concat(Map([[endKey, blockMap.get(endKey)]])).map(operation);\n return contentState.merge({\n blockMap: blockMap.merge(newBlocks),\n selectionBefore: selectionState,\n selectionAfter: selectionState\n });\n}\n\nmodule.exports = modifyBlockForContentState;","\"use strict\";\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n *\n * This is unstable and not part of the public API and should not be used by\n * production systems. This file may be update/removed without notice.\n */\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar getNextDelimiterBlockKey = function getNextDelimiterBlockKey(block, blockMap) {\n var isExperimentalTreeBlock = block instanceof ContentBlockNode;\n\n if (!isExperimentalTreeBlock) {\n return null;\n }\n\n var nextSiblingKey = block.getNextSiblingKey();\n\n if (nextSiblingKey) {\n return nextSiblingKey;\n }\n\n var parent = block.getParentKey();\n\n if (!parent) {\n return null;\n }\n\n var nextNonDescendantBlock = blockMap.get(parent);\n\n while (nextNonDescendantBlock && !nextNonDescendantBlock.getNextSiblingKey()) {\n var parentKey = nextNonDescendantBlock.getParentKey();\n nextNonDescendantBlock = parentKey ? blockMap.get(parentKey) : null;\n }\n\n if (!nextNonDescendantBlock) {\n return null;\n }\n\n return nextNonDescendantBlock.getNextSiblingKey();\n};\n\nmodule.exports = getNextDelimiterBlockKey;","\"use strict\";\n\n/**\n * Copyright 2004-present Facebook. All Rights Reserved.\n *\n * \n * @typechecks\n * @format\n */\n\n/**\n * Retrieve an object's own values as an array. If you want the values in the\n * protoype chain, too, use getObjectValuesIncludingPrototype.\n *\n * If you are looking for a function that creates an Array instance based\n * on an \"Array-like\" object, use createArrayFrom instead.\n *\n * @param {object} obj An object.\n * @return {array} The object's values.\n */\nfunction getOwnObjectValues(obj) {\n return Object.keys(obj).map(function (key) {\n return obj[key];\n });\n}\n\nmodule.exports = getOwnObjectValues;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @legacyServerCallableInstance\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar Immutable = require(\"immutable\");\n\nvar Record = Immutable.Record;\nvar DraftEntityInstanceRecord = Record({\n type: 'TOKEN',\n mutability: 'IMMUTABLE',\n data: Object\n});\n/**\n * An instance of a document entity, consisting of a `type` and relevant\n * `data`, metadata about the entity.\n *\n * For instance, a \"link\" entity might provide a URI, and a \"mention\"\n * entity might provide the mentioned user's ID. These pieces of data\n * may be used when rendering the entity as part of a ContentBlock DOM\n * representation. For a link, the data would be used as an href for\n * the rendered anchor. For a mention, the ID could be used to retrieve\n * a hovercard.\n */\n\nvar DraftEntityInstance = /*#__PURE__*/function (_DraftEntityInstanceR) {\n _inheritsLoose(DraftEntityInstance, _DraftEntityInstanceR);\n\n function DraftEntityInstance() {\n return _DraftEntityInstanceR.apply(this, arguments) || this;\n }\n\n var _proto = DraftEntityInstance.prototype;\n\n _proto.getType = function getType() {\n return this.get('type');\n };\n\n _proto.getMutability = function getMutability() {\n return this.get('mutability');\n };\n\n _proto.getData = function getData() {\n return this.get('data');\n };\n\n return DraftEntityInstance;\n}(DraftEntityInstanceRecord);\n\nmodule.exports = DraftEntityInstance;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar REGEX_BLOCK_DELIMITER = new RegExp('\\r', 'g');\n\nfunction sanitizeDraftText(input) {\n return input.replace(REGEX_BLOCK_DELIMITER, '');\n}\n\nmodule.exports = sanitizeDraftText;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nmodule.exports = {\n BOLD: {\n fontWeight: 'bold'\n },\n CODE: {\n fontFamily: 'monospace',\n wordWrap: 'break-word'\n },\n ITALIC: {\n fontStyle: 'italic'\n },\n STRIKETHROUGH: {\n textDecoration: 'line-through'\n },\n UNDERLINE: {\n textDecoration: 'underline'\n }\n};","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n/**\n * Get offset key from a node or it's child nodes. Return the first offset key\n * found on the DOM tree of given node.\n */\n\nvar isElement = require(\"./isElement\");\n\nfunction getSelectionOffsetKeyForNode(node) {\n if (isElement(node)) {\n var castedNode = node;\n var offsetKey = castedNode.getAttribute('data-offset-key');\n\n if (offsetKey) {\n return offsetKey;\n }\n\n for (var ii = 0; ii < castedNode.childNodes.length; ii++) {\n var childOffsetKey = getSelectionOffsetKeyForNode(castedNode.childNodes[ii]);\n\n if (childOffsetKey) {\n return childOffsetKey;\n }\n }\n }\n\n return null;\n}\n\nmodule.exports = getSelectionOffsetKeyForNode;","\"use strict\";\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\nfunction getWindowForNode(node) {\n if (!node || !node.ownerDocument || !node.ownerDocument.defaultView) {\n return window;\n }\n\n return node.ownerDocument.defaultView;\n}\n\nmodule.exports = getWindowForNode;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftJsDebugLogging = require(\"./DraftJsDebugLogging\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar getContentEditableContainer = require(\"./getContentEditableContainer\");\n\nvar getDraftEditorSelection = require(\"./getDraftEditorSelection\");\n\nfunction editOnSelect(editor) {\n if (editor._blockSelectEvents || editor._latestEditorState !== editor.props.editorState) {\n if (editor._blockSelectEvents) {\n var _editorState = editor.props.editorState;\n\n var selectionState = _editorState.getSelection();\n\n DraftJsDebugLogging.logBlockedSelectionEvent({\n // For now I don't think we need any other info\n anonymizedDom: 'N/A',\n extraParams: JSON.stringify({\n stacktrace: new Error().stack\n }),\n selectionState: JSON.stringify(selectionState.toJS())\n });\n }\n\n return;\n }\n\n var editorState = editor.props.editorState;\n var documentSelection = getDraftEditorSelection(editorState, getContentEditableContainer(editor));\n var updatedSelectionState = documentSelection.selectionState;\n\n if (updatedSelectionState !== editorState.getSelection()) {\n if (documentSelection.needsRecovery) {\n editorState = EditorState.forceSelection(editorState, updatedSelectionState);\n } else {\n editorState = EditorState.acceptSelection(editorState, updatedSelectionState);\n }\n\n editor.update(editorState);\n }\n}\n\nmodule.exports = editOnSelect;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nmodule.exports = {\n logBlockedSelectionEvent: function logBlockedSelectionEvent() {\n return null;\n },\n logSelectionStateFailure: function logSelectionStateFailure() {\n return null;\n }\n};","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar isHTMLElement = require(\"./isHTMLElement\");\n\nfunction getContentEditableContainer(editor) {\n var editorNode = editor.editorContainer;\n !editorNode ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Missing editorNode') : invariant(false) : void 0;\n !isHTMLElement(editorNode.firstChild) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'editorNode.firstChild is not an HTMLElement') : invariant(false) : void 0;\n var htmlElement = editorNode.firstChild;\n return htmlElement;\n}\n\nmodule.exports = getContentEditableContainer;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar getDraftEditorSelectionWithNodes = require(\"./getDraftEditorSelectionWithNodes\");\n/**\n * Convert the current selection range to an anchor/focus pair of offset keys\n * and values that can be interpreted by components.\n */\n\n\nfunction getDraftEditorSelection(editorState, root) {\n var selection = root.ownerDocument.defaultView.getSelection();\n var anchorNode = selection.anchorNode,\n anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode,\n focusOffset = selection.focusOffset,\n rangeCount = selection.rangeCount;\n\n if ( // No active selection.\n rangeCount === 0 || // No selection, ever. As in, the user hasn't selected anything since\n // opening the document.\n anchorNode == null || focusNode == null) {\n return {\n selectionState: editorState.getSelection().set('hasFocus', false),\n needsRecovery: false\n };\n }\n\n return getDraftEditorSelectionWithNodes(editorState, root, anchorNode, anchorOffset, focusNode, focusOffset);\n}\n\nmodule.exports = getDraftEditorSelection;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar findAncestorOffsetKey = require(\"./findAncestorOffsetKey\");\n\nvar getSelectionOffsetKeyForNode = require(\"./getSelectionOffsetKeyForNode\");\n\nvar getUpdatedSelectionState = require(\"./getUpdatedSelectionState\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar isElement = require(\"./isElement\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\n/**\n * Convert the current selection range to an anchor/focus pair of offset keys\n * and values that can be interpreted by components.\n */\nfunction getDraftEditorSelectionWithNodes(editorState, root, anchorNode, anchorOffset, focusNode, focusOffset) {\n var anchorIsTextNode = anchorNode.nodeType === Node.TEXT_NODE;\n var focusIsTextNode = focusNode.nodeType === Node.TEXT_NODE; // If the selection range lies only on text nodes, the task is simple.\n // Find the nearest offset-aware elements and use the\n // offset values supplied by the selection range.\n\n if (anchorIsTextNode && focusIsTextNode) {\n return {\n selectionState: getUpdatedSelectionState(editorState, nullthrows(findAncestorOffsetKey(anchorNode)), anchorOffset, nullthrows(findAncestorOffsetKey(focusNode)), focusOffset),\n needsRecovery: false\n };\n }\n\n var anchorPoint = null;\n var focusPoint = null;\n var needsRecovery = true; // An element is selected. Convert this selection range into leaf offset\n // keys and offset values for consumption at the component level. This\n // is common in Firefox, where select-all and triple click behavior leads\n // to entire elements being selected.\n //\n // Note that we use the `needsRecovery` parameter in the callback here. This\n // is because when certain elements are selected, the behavior for subsequent\n // cursor movement (e.g. via arrow keys) is uncertain and may not match\n // expectations at the component level. For example, if an entire
under^ the\n // stairs in a small closet.
inside)].\n // Picking out which child to recurse into here is a special case since we\n // don't want to check past-- once we find that the final range starts\n // in , we can look at all of its children (and all of their children)\n // to find the break point.\n // At all times, (bestContainer, bestOffset) is the latest single-line start\n // point that we know of.\n\n\n var currentContainer = bestContainer;\n var maxIndexToConsider = bestOffset - 1;\n\n do {\n var nodeValue = currentContainer.nodeValue;\n var ii = maxIndexToConsider;\n\n for (; ii >= 0; ii--) {\n if (nodeValue != null && ii > 0 && UnicodeUtils.isSurrogatePair(nodeValue, ii - 1)) {\n // We're in the middle of a surrogate pair -- skip over so we never\n // return a range with an endpoint in the middle of a code point.\n continue;\n }\n\n range.setStart(currentContainer, ii);\n\n if (areRectsOnOneLine(getRangeClientRects(range), lineHeight)) {\n bestContainer = currentContainer;\n bestOffset = ii;\n } else {\n break;\n }\n }\n\n if (ii === -1 || currentContainer.childNodes.length === 0) {\n // If ii === -1, then (bestContainer, bestOffset), which is equal to\n // (currentContainer, 0), was a single-line start point but a start\n // point before currentContainer wasn't, so the line break seems to\n // have occurred immediately after currentContainer's start tag\n //\n // If currentContainer.childNodes.length === 0, we're already at a\n // terminal node (e.g., text node) and should return our current best.\n break;\n }\n\n currentContainer = currentContainer.childNodes[ii];\n maxIndexToConsider = getNodeLength(currentContainer);\n } while (true);\n\n range.setStart(bestContainer, bestOffset);\n return range;\n}\n\nmodule.exports = expandRangeToStartOfLine;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftRemovableWord = require(\"./DraftRemovableWord\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar moveSelectionBackward = require(\"./moveSelectionBackward\");\n\nvar removeTextWithStrategy = require(\"./removeTextWithStrategy\");\n/**\n * Delete the word that is left of the cursor, as well as any spaces or\n * punctuation after the word.\n */\n\n\nfunction keyCommandBackspaceWord(editorState) {\n var afterRemoval = removeTextWithStrategy(editorState, function (strategyState) {\n var selection = strategyState.getSelection();\n var offset = selection.getStartOffset(); // If there are no words before the cursor, remove the preceding newline.\n\n if (offset === 0) {\n return moveSelectionBackward(strategyState, 1);\n }\n\n var key = selection.getStartKey();\n var content = strategyState.getCurrentContent();\n var text = content.getBlockForKey(key).getText().slice(0, offset);\n var toRemove = DraftRemovableWord.getBackward(text);\n return moveSelectionBackward(strategyState, toRemove.length || 1);\n }, 'backward');\n\n if (afterRemoval === editorState.getCurrentContent()) {\n return editorState;\n }\n\n return EditorState.push(editorState, afterRemoval, 'remove-range');\n}\n\nmodule.exports = keyCommandBackspaceWord;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftRemovableWord = require(\"./DraftRemovableWord\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar moveSelectionForward = require(\"./moveSelectionForward\");\n\nvar removeTextWithStrategy = require(\"./removeTextWithStrategy\");\n/**\n * Delete the word that is right of the cursor, as well as any spaces or\n * punctuation before the word.\n */\n\n\nfunction keyCommandDeleteWord(editorState) {\n var afterRemoval = removeTextWithStrategy(editorState, function (strategyState) {\n var selection = strategyState.getSelection();\n var offset = selection.getStartOffset();\n var key = selection.getStartKey();\n var content = strategyState.getCurrentContent();\n var text = content.getBlockForKey(key).getText().slice(offset);\n var toRemove = DraftRemovableWord.getForward(text); // If there are no words in front of the cursor, remove the newline.\n\n return moveSelectionForward(strategyState, toRemove.length || 1);\n }, 'forward');\n\n if (afterRemoval === editorState.getCurrentContent()) {\n return editorState;\n }\n\n return EditorState.push(editorState, afterRemoval, 'remove-range');\n}\n\nmodule.exports = keyCommandDeleteWord;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar EditorState = require(\"./EditorState\");\n\nfunction keyCommandInsertNewline(editorState) {\n var contentState = DraftModifier.splitBlock(editorState.getCurrentContent(), editorState.getSelection());\n return EditorState.push(editorState, contentState, 'split-block');\n}\n\nmodule.exports = keyCommandInsertNewline;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar EditorState = require(\"./EditorState\");\n/**\n * See comment for `moveSelectionToStartOfBlock`.\n */\n\n\nfunction keyCommandMoveSelectionToEndOfBlock(editorState) {\n var selection = editorState.getSelection();\n var endKey = selection.getEndKey();\n var content = editorState.getCurrentContent();\n var textLength = content.getBlockForKey(endKey).getLength();\n return EditorState.set(editorState, {\n selection: selection.merge({\n anchorKey: endKey,\n anchorOffset: textLength,\n focusKey: endKey,\n focusOffset: textLength,\n isBackward: false\n }),\n forceSelection: true\n });\n}\n\nmodule.exports = keyCommandMoveSelectionToEndOfBlock;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar EditorState = require(\"./EditorState\");\n/**\n * Collapse selection at the start of the first selected block. This is used\n * for Firefox versions that attempt to navigate forward/backward instead of\n * moving the cursor. Other browsers are able to move the cursor natively.\n */\n\n\nfunction keyCommandMoveSelectionToStartOfBlock(editorState) {\n var selection = editorState.getSelection();\n var startKey = selection.getStartKey();\n return EditorState.set(editorState, {\n selection: selection.merge({\n anchorKey: startKey,\n anchorOffset: 0,\n focusKey: startKey,\n focusOffset: 0,\n isBackward: false\n }),\n forceSelection: true\n });\n}\n\nmodule.exports = keyCommandMoveSelectionToStartOfBlock;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar EditorState = require(\"./EditorState\");\n\nvar UnicodeUtils = require(\"fbjs/lib/UnicodeUtils\");\n\nvar moveSelectionForward = require(\"./moveSelectionForward\");\n\nvar removeTextWithStrategy = require(\"./removeTextWithStrategy\");\n/**\n * Remove the selected range. If the cursor is collapsed, remove the following\n * character. This operation is Unicode-aware, so removing a single character\n * will remove a surrogate pair properly as well.\n */\n\n\nfunction keyCommandPlainDelete(editorState) {\n var afterRemoval = removeTextWithStrategy(editorState, function (strategyState) {\n var selection = strategyState.getSelection();\n var content = strategyState.getCurrentContent();\n var key = selection.getAnchorKey();\n var offset = selection.getAnchorOffset();\n var charAhead = content.getBlockForKey(key).getText()[offset];\n return moveSelectionForward(strategyState, charAhead ? UnicodeUtils.getUTF16Length(charAhead, 0) : 1);\n }, 'forward');\n\n if (afterRemoval === editorState.getCurrentContent()) {\n return editorState;\n }\n\n var selection = editorState.getSelection();\n return EditorState.push(editorState, afterRemoval.set('selectionBefore', selection), selection.isCollapsed() ? 'delete-character' : 'remove-range');\n}\n\nmodule.exports = keyCommandPlainDelete;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar getContentStateFragment = require(\"./getContentStateFragment\");\n/**\n * Transpose the characters on either side of a collapsed cursor, or\n * if the cursor is at the end of the block, transpose the last two\n * characters.\n */\n\n\nfunction keyCommandTransposeCharacters(editorState) {\n var selection = editorState.getSelection();\n\n if (!selection.isCollapsed()) {\n return editorState;\n }\n\n var offset = selection.getAnchorOffset();\n\n if (offset === 0) {\n return editorState;\n }\n\n var blockKey = selection.getAnchorKey();\n var content = editorState.getCurrentContent();\n var block = content.getBlockForKey(blockKey);\n var length = block.getLength(); // Nothing to transpose if there aren't two characters.\n\n if (length <= 1) {\n return editorState;\n }\n\n var removalRange;\n var finalSelection;\n\n if (offset === length) {\n // The cursor is at the end of the block. Swap the last two characters.\n removalRange = selection.set('anchorOffset', offset - 1);\n finalSelection = selection;\n } else {\n removalRange = selection.set('focusOffset', offset + 1);\n finalSelection = removalRange.set('anchorOffset', offset + 1);\n } // Extract the character to move as a fragment. This preserves its\n // styling and entity, if any.\n\n\n var movedFragment = getContentStateFragment(content, removalRange);\n var afterRemoval = DraftModifier.removeRange(content, removalRange, 'backward'); // After the removal, the insertion target is one character back.\n\n var selectionAfter = afterRemoval.getSelectionAfter();\n var targetOffset = selectionAfter.getAnchorOffset() - 1;\n var targetRange = selectionAfter.merge({\n anchorOffset: targetOffset,\n focusOffset: targetOffset\n });\n var afterInsert = DraftModifier.replaceWithFragment(afterRemoval, targetRange, movedFragment);\n var newEditorState = EditorState.push(editorState, afterInsert, 'insert-fragment');\n return EditorState.acceptSelection(newEditorState, finalSelection);\n}\n\nmodule.exports = keyCommandTransposeCharacters;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar EditorState = require(\"./EditorState\");\n\nfunction keyCommandUndo(e, editorState, updateFn) {\n var undoneState = EditorState.undo(editorState); // If the last change to occur was a spellcheck change, allow the undo\n // event to fall through to the browser. This allows the browser to record\n // the unwanted change, which should soon lead it to learn not to suggest\n // the correction again.\n\n if (editorState.getLastChangeType() === 'spellcheck-change') {\n var nativelyRenderedContent = undoneState.getCurrentContent();\n updateFn(EditorState.set(undoneState, {\n nativelyRenderedContent: nativelyRenderedContent\n }));\n return;\n } // Otheriwse, manage the undo behavior manually.\n\n\n e.preventDefault();\n\n if (!editorState.getNativelyRenderedContent()) {\n updateFn(undoneState);\n return;\n } // Trigger a re-render with the current content state to ensure that the\n // component tree has up-to-date props for comparison.\n\n\n updateFn(EditorState.set(editorState, {\n nativelyRenderedContent: null\n })); // Wait to ensure that the re-render has occurred before performing\n // the undo action.\n\n setTimeout(function () {\n updateFn(undoneState);\n }, 0);\n}\n\nmodule.exports = keyCommandUndo;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar BlockMapBuilder = require(\"./BlockMapBuilder\");\n\nvar CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar DataTransfer = require(\"fbjs/lib/DataTransfer\");\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar DraftPasteProcessor = require(\"./DraftPasteProcessor\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar RichTextEditorUtil = require(\"./RichTextEditorUtil\");\n\nvar getEntityKeyForSelection = require(\"./getEntityKeyForSelection\");\n\nvar getTextContentFromFiles = require(\"./getTextContentFromFiles\");\n\nvar isEventHandled = require(\"./isEventHandled\");\n\nvar splitTextIntoTextBlocks = require(\"./splitTextIntoTextBlocks\");\n/**\n * Paste content.\n */\n\n\nfunction editOnPaste(editor, e) {\n e.preventDefault();\n var data = new DataTransfer(e.clipboardData); // Get files, unless this is likely to be a string the user wants inline.\n\n if (!data.isRichText()) {\n var files = data.getFiles();\n var defaultFileText = data.getText();\n\n if (files.length > 0) {\n // Allow customized paste handling for images, etc. Otherwise, fall\n // through to insert text contents into the editor.\n if (editor.props.handlePastedFiles && isEventHandled(editor.props.handlePastedFiles(files))) {\n return;\n }\n /* $FlowFixMe[incompatible-call] This comment suppresses an error found\n * DataTransfer was typed. getFiles() returns an array of, not Blob */\n\n\n getTextContentFromFiles(files, function (\n /*string*/\n fileText) {\n fileText = fileText || defaultFileText;\n\n if (!fileText) {\n return;\n }\n\n var editorState = editor._latestEditorState;\n var blocks = splitTextIntoTextBlocks(fileText);\n var character = CharacterMetadata.create({\n style: editorState.getCurrentInlineStyle(),\n entity: getEntityKeyForSelection(editorState.getCurrentContent(), editorState.getSelection())\n });\n var currentBlockType = RichTextEditorUtil.getCurrentBlockType(editorState);\n var text = DraftPasteProcessor.processText(blocks, character, currentBlockType);\n var fragment = BlockMapBuilder.createFromArray(text);\n var withInsertedText = DraftModifier.replaceWithFragment(editorState.getCurrentContent(), editorState.getSelection(), fragment);\n editor.update(EditorState.push(editorState, withInsertedText, 'insert-fragment'));\n });\n return;\n }\n }\n\n var textBlocks = [];\n var text = data.getText();\n var html = data.getHTML();\n var editorState = editor._latestEditorState;\n\n if (editor.props.formatPastedText) {\n var _editor$props$formatP = editor.props.formatPastedText(text, html),\n formattedText = _editor$props$formatP.text,\n formattedHtml = _editor$props$formatP.html;\n\n text = formattedText;\n html = formattedHtml;\n }\n\n if (editor.props.handlePastedText && isEventHandled(editor.props.handlePastedText(text, html, editorState))) {\n return;\n }\n\n if (text) {\n textBlocks = splitTextIntoTextBlocks(text);\n }\n\n if (!editor.props.stripPastedStyles) {\n // If the text from the paste event is rich content that matches what we\n // already have on the internal clipboard, assume that we should just use\n // the clipboard fragment for the paste. This will allow us to preserve\n // styling and entities, if any are present. Note that newlines are\n // stripped during comparison -- this is because copy/paste within the\n // editor in Firefox and IE will not include empty lines. The resulting\n // paste will preserve the newlines correctly.\n var internalClipboard = editor.getClipboard();\n\n if (!editor.props.formatPastedText && data.isRichText() && internalClipboard) {\n var _html;\n\n if ( // If the editorKey is present in the pasted HTML, it should be safe to\n // assume this is an internal paste.\n ((_html = html) === null || _html === void 0 ? void 0 : _html.indexOf(editor.getEditorKey())) !== -1 || // The copy may have been made within a single block, in which case the\n // editor key won't be part of the paste. In this case, just check\n // whether the pasted text matches the internal clipboard.\n textBlocks.length === 1 && internalClipboard.size === 1 && internalClipboard.first().getText() === text) {\n editor.update(insertFragment(editor._latestEditorState, internalClipboard));\n return;\n }\n } else if (internalClipboard && data.types.includes('com.apple.webarchive') && !data.types.includes('text/html') && areTextBlocksAndClipboardEqual(textBlocks, internalClipboard)) {\n // Safari does not properly store text/html in some cases.\n // Use the internalClipboard if present and equal to what is on\n // the clipboard. See https://bugs.webkit.org/show_bug.cgi?id=19893.\n editor.update(insertFragment(editor._latestEditorState, internalClipboard));\n return;\n } // If there is html paste data, try to parse that.\n\n\n if (html) {\n var htmlFragment = DraftPasteProcessor.processHTML(html, editor.props.blockRenderMap);\n\n if (htmlFragment) {\n var contentBlocks = htmlFragment.contentBlocks,\n entityMap = htmlFragment.entityMap;\n\n if (contentBlocks) {\n var htmlMap = BlockMapBuilder.createFromArray(contentBlocks);\n editor.update(insertFragment(editor._latestEditorState, htmlMap, entityMap));\n return;\n }\n }\n } // Otherwise, create a new fragment from our pasted text. Also\n // empty the internal clipboard, since it's no longer valid.\n\n\n editor.setClipboard(null);\n }\n\n if (textBlocks.length) {\n var character = CharacterMetadata.create({\n style: editorState.getCurrentInlineStyle(),\n entity: getEntityKeyForSelection(editorState.getCurrentContent(), editorState.getSelection())\n });\n var currentBlockType = RichTextEditorUtil.getCurrentBlockType(editorState);\n var textFragment = DraftPasteProcessor.processText(textBlocks, character, currentBlockType);\n var textMap = BlockMapBuilder.createFromArray(textFragment);\n editor.update(insertFragment(editor._latestEditorState, textMap));\n }\n}\n\nfunction insertFragment(editorState, fragment, entityMap) {\n var newContent = DraftModifier.replaceWithFragment(editorState.getCurrentContent(), editorState.getSelection(), fragment); // TODO: merge the entity map once we stop using DraftEntity\n // like this:\n // const mergedEntityMap = newContent.getEntityMap().merge(entityMap);\n\n return EditorState.push(editorState, newContent.set('entityMap', entityMap), 'insert-fragment');\n}\n\nfunction areTextBlocksAndClipboardEqual(textBlocks, blockMap) {\n return textBlocks.length === blockMap.size && blockMap.valueSeq().every(function (block, ii) {\n return block.getText() === textBlocks[ii];\n });\n}\n\nmodule.exports = editOnPaste;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar ContentBlock = require(\"./ContentBlock\");\n\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar convertFromHTMLToContentBlocks = require(\"./convertFromHTMLToContentBlocks\");\n\nvar generateRandomKey = require(\"./generateRandomKey\");\n\nvar getSafeBodyFromHTML = require(\"./getSafeBodyFromHTML\");\n\nvar gkx = require(\"./gkx\");\n\nvar Immutable = require(\"immutable\");\n\nvar sanitizeDraftText = require(\"./sanitizeDraftText\");\n\nvar List = Immutable.List,\n Repeat = Immutable.Repeat;\nvar experimentalTreeDataSupport = gkx('draft_tree_data_support');\nvar ContentBlockRecord = experimentalTreeDataSupport ? ContentBlockNode : ContentBlock;\nvar DraftPasteProcessor = {\n processHTML: function processHTML(html, blockRenderMap) {\n return convertFromHTMLToContentBlocks(html, getSafeBodyFromHTML, blockRenderMap);\n },\n processText: function processText(textBlocks, character, type) {\n return textBlocks.reduce(function (acc, textLine, index) {\n textLine = sanitizeDraftText(textLine);\n var key = generateRandomKey();\n var blockNodeConfig = {\n key: key,\n type: type,\n text: textLine,\n characterList: List(Repeat(character, textLine.length))\n }; // next block updates previous block\n\n if (experimentalTreeDataSupport && index !== 0) {\n var prevSiblingIndex = index - 1; // update previous block\n\n var previousBlock = acc[prevSiblingIndex] = acc[prevSiblingIndex].merge({\n nextSibling: key\n });\n blockNodeConfig = _objectSpread({}, blockNodeConfig, {\n prevSibling: previousBlock.getKey()\n });\n }\n\n acc.push(new ContentBlockRecord(blockNodeConfig));\n return acc;\n }, []);\n }\n};\nmodule.exports = DraftPasteProcessor;","\"use strict\";\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\nvar isElement = require(\"./isElement\");\n\nfunction isHTMLAnchorElement(node) {\n if (!node || !node.ownerDocument) {\n return false;\n }\n\n return isElement(node) && node.nodeName === 'A';\n}\n\nmodule.exports = isHTMLAnchorElement;","\"use strict\";\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\nvar isElement = require(\"./isElement\");\n\nfunction isHTMLImageElement(node) {\n if (!node || !node.ownerDocument) {\n return false;\n }\n\n return isElement(node) && node.nodeName === 'IMG';\n}\n\nmodule.exports = isHTMLImageElement;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction adjustBlockDepthForContentState(contentState, selectionState, adjustment, maxDepth) {\n var startKey = selectionState.getStartKey();\n var endKey = selectionState.getEndKey();\n var blockMap = contentState.getBlockMap();\n var blocks = blockMap.toSeq().skipUntil(function (_, k) {\n return k === startKey;\n }).takeUntil(function (_, k) {\n return k === endKey;\n }).concat([[endKey, blockMap.get(endKey)]]).map(function (block) {\n var depth = block.getDepth() + adjustment;\n depth = Math.max(0, Math.min(depth, maxDepth));\n return block.set('depth', depth);\n });\n blockMap = blockMap.merge(blocks);\n return contentState.merge({\n blockMap: blockMap,\n selectionBefore: selectionState,\n selectionAfter: selectionState\n });\n}\n\nmodule.exports = adjustBlockDepthForContentState;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar NEWLINE_REGEX = /\\r\\n?|\\n/g;\n\nfunction splitTextIntoTextBlocks(text) {\n return text.split(NEWLINE_REGEX);\n}\n\nmodule.exports = splitTextIntoTextBlocks;","\"use strict\";\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\nvar ReactDOMComet = require(\"react-dom\");\n\nvar flushControlled = ReactDOMComet.unstable_flushControlled;\nmodule.exports = flushControlled;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar React = require(\"react\");\n\nvar cx = require(\"fbjs/lib/cx\");\n\n/**\n * This component is responsible for rendering placeholder text for the\n * `DraftEditor` component.\n *\n * Override placeholder style via CSS.\n */\nvar DraftEditorPlaceholder = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DraftEditorPlaceholder, _React$Component);\n\n function DraftEditorPlaceholder() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = DraftEditorPlaceholder.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return this.props.text !== nextProps.text || this.props.editorState.getSelection().getHasFocus() !== nextProps.editorState.getSelection().getHasFocus();\n };\n\n _proto.render = function render() {\n var hasFocus = this.props.editorState.getSelection().getHasFocus();\n var className = cx({\n 'public/DraftEditorPlaceholder/root': true,\n 'public/DraftEditorPlaceholder/hasFocus': hasFocus\n });\n var contentStyle = {\n whiteSpace: 'pre-wrap'\n };\n return React.createElement(\"div\", {\n className: className\n }, React.createElement(\"div\", {\n className: cx('public/DraftEditorPlaceholder/inner'),\n id: this.props.accessibilityID,\n style: contentStyle\n }, this.props.text));\n };\n\n return DraftEditorPlaceholder;\n}(React.Component);\n\nmodule.exports = DraftEditorPlaceholder;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar ContentBlock = require(\"./ContentBlock\");\n\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar DraftStringKey = require(\"./DraftStringKey\");\n\nvar encodeEntityRanges = require(\"./encodeEntityRanges\");\n\nvar encodeInlineStyleRanges = require(\"./encodeInlineStyleRanges\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar createRawBlock = function createRawBlock(block, entityStorageMap) {\n return {\n key: block.getKey(),\n text: block.getText(),\n type: block.getType(),\n depth: block.getDepth(),\n inlineStyleRanges: encodeInlineStyleRanges(block),\n entityRanges: encodeEntityRanges(block, entityStorageMap),\n data: block.getData().toObject()\n };\n};\n\nvar insertRawBlock = function insertRawBlock(block, entityMap, rawBlocks, blockCacheRef) {\n if (block instanceof ContentBlock) {\n rawBlocks.push(createRawBlock(block, entityMap));\n return;\n }\n\n !(block instanceof ContentBlockNode) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'block is not a BlockNode') : invariant(false) : void 0;\n var parentKey = block.getParentKey();\n\n var rawBlock = blockCacheRef[block.getKey()] = _objectSpread({}, createRawBlock(block, entityMap), {\n children: []\n });\n\n if (parentKey) {\n blockCacheRef[parentKey].children.push(rawBlock);\n return;\n }\n\n rawBlocks.push(rawBlock);\n};\n\nvar encodeRawBlocks = function encodeRawBlocks(contentState, rawState) {\n var entityMap = rawState.entityMap;\n var rawBlocks = [];\n var blockCacheRef = {};\n var entityCacheRef = {};\n var entityStorageKey = 0;\n contentState.getBlockMap().forEach(function (block) {\n block.findEntityRanges(function (character) {\n return character.getEntity() !== null;\n }, function (start) {\n var entityKey = block.getEntityAt(start); // Stringify to maintain order of otherwise numeric keys.\n\n var stringifiedEntityKey = DraftStringKey.stringify(entityKey); // This makes this function resilient to two entities\n // erroneously having the same key\n\n if (entityCacheRef[stringifiedEntityKey]) {\n return;\n }\n\n entityCacheRef[stringifiedEntityKey] = entityKey; // we need the `any` casting here since this is a temporary state\n // where we will later on flip the entity map and populate it with\n // real entity, at this stage we just need to map back the entity\n // key used by the BlockNode\n\n entityMap[stringifiedEntityKey] = \"\".concat(entityStorageKey);\n entityStorageKey++;\n });\n insertRawBlock(block, entityMap, rawBlocks, blockCacheRef);\n });\n return {\n blocks: rawBlocks,\n entityMap: entityMap\n };\n}; // Flip storage map so that our storage keys map to global\n// DraftEntity keys.\n\n\nvar encodeRawEntityMap = function encodeRawEntityMap(contentState, rawState) {\n var blocks = rawState.blocks,\n entityMap = rawState.entityMap;\n var rawEntityMap = {};\n Object.keys(entityMap).forEach(function (key, index) {\n var entity = contentState.getEntity(DraftStringKey.unstringify(key));\n rawEntityMap[index] = {\n type: entity.getType(),\n mutability: entity.getMutability(),\n data: entity.getData()\n };\n });\n return {\n blocks: blocks,\n entityMap: rawEntityMap\n };\n};\n\nvar convertFromDraftStateToRaw = function convertFromDraftStateToRaw(contentState) {\n var rawDraftContentState = {\n entityMap: {},\n blocks: []\n }; // add blocks\n\n rawDraftContentState = encodeRawBlocks(contentState, rawDraftContentState); // add entities\n\n rawDraftContentState = encodeRawEntityMap(contentState, rawDraftContentState);\n return rawDraftContentState;\n};\n\nmodule.exports = convertFromDraftStateToRaw;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftStringKey = require(\"./DraftStringKey\");\n\nvar UnicodeUtils = require(\"fbjs/lib/UnicodeUtils\");\n\nvar strlen = UnicodeUtils.strlen;\n/**\n * Convert to UTF-8 character counts for storage.\n */\n\nfunction encodeEntityRanges(block, storageMap) {\n var encoded = [];\n block.findEntityRanges(function (character) {\n return !!character.getEntity();\n }, function (\n /*number*/\n start,\n /*number*/\n end) {\n var text = block.getText();\n var key = block.getEntityAt(start);\n encoded.push({\n offset: strlen(text.slice(0, start)),\n length: strlen(text.slice(start, end)),\n // Encode the key as a number for range storage.\n key: Number(storageMap[DraftStringKey.stringify(key)])\n });\n });\n return encoded;\n}\n\nmodule.exports = encodeEntityRanges;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar UnicodeUtils = require(\"fbjs/lib/UnicodeUtils\");\n\nvar findRangesImmutable = require(\"./findRangesImmutable\");\n\nvar areEqual = function areEqual(a, b) {\n return a === b;\n};\n\nvar isTruthy = function isTruthy(a) {\n return !!a;\n};\n\nvar EMPTY_ARRAY = [];\n/**\n * Helper function for getting encoded styles for each inline style. Convert\n * to UTF-8 character counts for storage.\n */\n\nfunction getEncodedInlinesForType(block, styleList, styleToEncode) {\n var ranges = []; // Obtain an array with ranges for only the specified style.\n\n var filteredInlines = styleList.map(function (style) {\n return style.has(styleToEncode);\n }).toList();\n findRangesImmutable(filteredInlines, areEqual, // We only want to keep ranges with nonzero style values.\n isTruthy, function (start, end) {\n var text = block.getText();\n ranges.push({\n offset: UnicodeUtils.strlen(text.slice(0, start)),\n length: UnicodeUtils.strlen(text.slice(start, end)),\n style: styleToEncode\n });\n });\n return ranges;\n}\n/*\n * Retrieve the encoded arrays of inline styles, with each individual style\n * treated separately.\n */\n\n\nfunction encodeInlineStyleRanges(block) {\n var styleList = block.getCharacterList().map(function (c) {\n return c.getStyle();\n }).toList();\n var ranges = styleList.flatten().toSet().map(function (style) {\n return getEncodedInlinesForType(block, styleList, style);\n });\n return Array.prototype.concat.apply(EMPTY_ARRAY, ranges.toJS());\n}\n\nmodule.exports = encodeInlineStyleRanges;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar ContentBlock = require(\"./ContentBlock\");\n\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar ContentState = require(\"./ContentState\");\n\nvar DraftEntity = require(\"./DraftEntity\");\n\nvar DraftTreeAdapter = require(\"./DraftTreeAdapter\");\n\nvar DraftTreeInvariants = require(\"./DraftTreeInvariants\");\n\nvar SelectionState = require(\"./SelectionState\");\n\nvar createCharacterList = require(\"./createCharacterList\");\n\nvar decodeEntityRanges = require(\"./decodeEntityRanges\");\n\nvar decodeInlineStyleRanges = require(\"./decodeInlineStyleRanges\");\n\nvar generateRandomKey = require(\"./generateRandomKey\");\n\nvar gkx = require(\"./gkx\");\n\nvar Immutable = require(\"immutable\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar experimentalTreeDataSupport = gkx('draft_tree_data_support');\nvar List = Immutable.List,\n Map = Immutable.Map,\n OrderedMap = Immutable.OrderedMap;\n\nvar decodeBlockNodeConfig = function decodeBlockNodeConfig(block, entityMap) {\n var key = block.key,\n type = block.type,\n data = block.data,\n text = block.text,\n depth = block.depth;\n var blockNodeConfig = {\n text: text,\n depth: depth || 0,\n type: type || 'unstyled',\n key: key || generateRandomKey(),\n data: Map(data),\n characterList: decodeCharacterList(block, entityMap)\n };\n return blockNodeConfig;\n};\n\nvar decodeCharacterList = function decodeCharacterList(block, entityMap) {\n var text = block.text,\n rawEntityRanges = block.entityRanges,\n rawInlineStyleRanges = block.inlineStyleRanges;\n var entityRanges = rawEntityRanges || [];\n var inlineStyleRanges = rawInlineStyleRanges || []; // Translate entity range keys to the DraftEntity map.\n\n return createCharacterList(decodeInlineStyleRanges(text, inlineStyleRanges), decodeEntityRanges(text, entityRanges.filter(function (range) {\n return entityMap.hasOwnProperty(range.key);\n }).map(function (range) {\n return _objectSpread({}, range, {\n key: entityMap[range.key]\n });\n })));\n};\n\nvar addKeyIfMissing = function addKeyIfMissing(block) {\n return _objectSpread({}, block, {\n key: block.key || generateRandomKey()\n });\n};\n/**\n * Node stack is responsible to ensure we traverse the tree only once\n * in depth order, while also providing parent refs to inner nodes to\n * construct their links.\n */\n\n\nvar updateNodeStack = function updateNodeStack(stack, nodes, parentRef) {\n var nodesWithParentRef = nodes.map(function (block) {\n return _objectSpread({}, block, {\n parentRef: parentRef\n });\n }); // since we pop nodes from the stack we need to insert them in reverse\n\n return stack.concat(nodesWithParentRef.reverse());\n};\n/**\n * This will build a tree draft content state by creating the node\n * reference links into a single tree walk. Each node has a link\n * reference to \"parent\", \"children\", \"nextSibling\" and \"prevSibling\"\n * blockMap will be created using depth ordering.\n */\n\n\nvar decodeContentBlockNodes = function decodeContentBlockNodes(blocks, entityMap) {\n return blocks // ensure children have valid keys to enable sibling links\n .map(addKeyIfMissing).reduce(function (blockMap, block, index) {\n !Array.isArray(block.children) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'invalid RawDraftContentBlock can not be converted to ContentBlockNode') : invariant(false) : void 0; // ensure children have valid keys to enable sibling links\n\n var children = block.children.map(addKeyIfMissing); // root level nodes\n\n var contentBlockNode = new ContentBlockNode(_objectSpread({}, decodeBlockNodeConfig(block, entityMap), {\n prevSibling: index === 0 ? null : blocks[index - 1].key,\n nextSibling: index === blocks.length - 1 ? null : blocks[index + 1].key,\n children: List(children.map(function (child) {\n return child.key;\n }))\n })); // push root node to blockMap\n\n blockMap = blockMap.set(contentBlockNode.getKey(), contentBlockNode); // this stack is used to ensure we visit all nodes respecting depth ordering\n\n var stack = updateNodeStack([], children, contentBlockNode); // start computing children nodes\n\n while (stack.length > 0) {\n // we pop from the stack and start processing this node\n var node = stack.pop(); // parentRef already points to a converted ContentBlockNode\n\n var parentRef = node.parentRef;\n var siblings = parentRef.getChildKeys();\n\n var _index = siblings.indexOf(node.key);\n\n var isValidBlock = Array.isArray(node.children);\n\n if (!isValidBlock) {\n !isValidBlock ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'invalid RawDraftContentBlock can not be converted to ContentBlockNode') : invariant(false) : void 0;\n break;\n } // ensure children have valid keys to enable sibling links\n\n\n var _children = node.children.map(addKeyIfMissing);\n\n var _contentBlockNode = new ContentBlockNode(_objectSpread({}, decodeBlockNodeConfig(node, entityMap), {\n parent: parentRef.getKey(),\n children: List(_children.map(function (child) {\n return child.key;\n })),\n prevSibling: _index === 0 ? null : siblings.get(_index - 1),\n nextSibling: _index === siblings.size - 1 ? null : siblings.get(_index + 1)\n })); // push node to blockMap\n\n\n blockMap = blockMap.set(_contentBlockNode.getKey(), _contentBlockNode); // this stack is used to ensure we visit all nodes respecting depth ordering\n\n stack = updateNodeStack(stack, _children, _contentBlockNode);\n }\n\n return blockMap;\n }, OrderedMap());\n};\n\nvar decodeContentBlocks = function decodeContentBlocks(blocks, entityMap) {\n return OrderedMap(blocks.map(function (block) {\n var contentBlock = new ContentBlock(decodeBlockNodeConfig(block, entityMap));\n return [contentBlock.getKey(), contentBlock];\n }));\n};\n\nvar decodeRawBlocks = function decodeRawBlocks(rawState, entityMap) {\n var isTreeRawBlock = rawState.blocks.find(function (block) {\n return Array.isArray(block.children) && block.children.length > 0;\n });\n var rawBlocks = experimentalTreeDataSupport && !isTreeRawBlock ? DraftTreeAdapter.fromRawStateToRawTreeState(rawState).blocks : rawState.blocks;\n\n if (!experimentalTreeDataSupport) {\n return decodeContentBlocks(isTreeRawBlock ? DraftTreeAdapter.fromRawTreeStateToRawState(rawState).blocks : rawBlocks, entityMap);\n }\n\n var blockMap = decodeContentBlockNodes(rawBlocks, entityMap); // in dev mode, check that the tree invariants are met\n\n if (process.env.NODE_ENV !== \"production\") {\n !DraftTreeInvariants.isValidTree(blockMap) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should be a valid tree') : invariant(false) : void 0;\n }\n\n return blockMap;\n};\n\nvar decodeRawEntityMap = function decodeRawEntityMap(rawState) {\n var rawEntityMap = rawState.entityMap;\n var entityMap = {}; // TODO: Update this once we completely remove DraftEntity\n\n Object.keys(rawEntityMap).forEach(function (rawEntityKey) {\n var _rawEntityMap$rawEnti = rawEntityMap[rawEntityKey],\n type = _rawEntityMap$rawEnti.type,\n mutability = _rawEntityMap$rawEnti.mutability,\n data = _rawEntityMap$rawEnti.data; // get the key reference to created entity\n\n entityMap[rawEntityKey] = DraftEntity.__create(type, mutability, data || {});\n });\n return entityMap;\n};\n\nvar convertFromRawToDraftState = function convertFromRawToDraftState(rawState) {\n !Array.isArray(rawState.blocks) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'invalid RawDraftContentState') : invariant(false) : void 0; // decode entities\n\n var entityMap = decodeRawEntityMap(rawState); // decode blockMap\n\n var blockMap = decodeRawBlocks(rawState, entityMap); // create initial selection\n\n var selectionState = blockMap.isEmpty() ? new SelectionState() : SelectionState.createEmpty(blockMap.first().getKey());\n return new ContentState({\n blockMap: blockMap,\n entityMap: entityMap,\n selectionBefore: selectionState,\n selectionAfter: selectionState\n });\n};\n\nmodule.exports = convertFromRawToDraftState;","\"use strict\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n *\n * This is unstable and not part of the public API and should not be used by\n * production systems. This file may be update/removed without notice.\n */\nvar generateRandomKey = require(\"./generateRandomKey\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar traverseInDepthOrder = function traverseInDepthOrder(blocks, fn) {\n var stack = [].concat(blocks).reverse();\n\n while (stack.length) {\n var _block = stack.pop();\n\n fn(_block);\n var children = _block.children;\n !Array.isArray(children) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Invalid tree raw block') : invariant(false) : void 0;\n stack = stack.concat([].concat(children.reverse()));\n }\n};\n\nvar isListBlock = function isListBlock(block) {\n if (!(block && block.type)) {\n return false;\n }\n\n var type = block.type;\n return type === 'unordered-list-item' || type === 'ordered-list-item';\n};\n\nvar addDepthToChildren = function addDepthToChildren(block) {\n if (Array.isArray(block.children)) {\n block.children = block.children.map(function (child) {\n return child.type === block.type ? _objectSpread({}, child, {\n depth: (block.depth || 0) + 1\n }) : child;\n });\n }\n};\n/**\n * This adapter is intended to be be used as an adapter to draft tree data\n *\n * draft state <=====> draft tree state\n */\n\n\nvar DraftTreeAdapter = {\n /**\n * Converts from a tree raw state back to draft raw state\n */\n fromRawTreeStateToRawState: function fromRawTreeStateToRawState(draftTreeState) {\n var blocks = draftTreeState.blocks;\n var transformedBlocks = [];\n !Array.isArray(blocks) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Invalid raw state') : invariant(false) : void 0;\n\n if (!Array.isArray(blocks) || !blocks.length) {\n return draftTreeState;\n }\n\n traverseInDepthOrder(blocks, function (block) {\n var newBlock = _objectSpread({}, block);\n\n if (isListBlock(block)) {\n newBlock.depth = newBlock.depth || 0;\n addDepthToChildren(block); // if it's a non-leaf node, we don't do anything else\n\n if (block.children != null && block.children.length > 0) {\n return;\n }\n }\n\n delete newBlock.children;\n transformedBlocks.push(newBlock);\n });\n draftTreeState.blocks = transformedBlocks;\n return _objectSpread({}, draftTreeState, {\n blocks: transformedBlocks\n });\n },\n\n /**\n * Converts from draft raw state to tree draft state\n */\n fromRawStateToRawTreeState: function fromRawStateToRawTreeState(draftState) {\n var transformedBlocks = [];\n var parentStack = [];\n draftState.blocks.forEach(function (block) {\n var isList = isListBlock(block);\n var depth = block.depth || 0;\n\n var treeBlock = _objectSpread({}, block, {\n children: []\n });\n\n if (!isList) {\n transformedBlocks.push(treeBlock);\n return;\n }\n\n var lastParent = parentStack[0]; // block is non-nested & there are no nested blocks, directly push block\n\n if (lastParent == null && depth === 0) {\n transformedBlocks.push(treeBlock); // block is first nested block or previous nested block is at a lower level\n } else if (lastParent == null || lastParent.depth < depth - 1) {\n // create new parent block\n var newParent = {\n key: generateRandomKey(),\n text: '',\n depth: depth - 1,\n type: block.type,\n children: [],\n entityRanges: [],\n inlineStyleRanges: []\n };\n parentStack.unshift(newParent);\n\n if (depth === 1) {\n // add as a root-level block\n transformedBlocks.push(newParent);\n } else if (lastParent != null) {\n // depth > 1 => also add as previous parent's child\n lastParent.children.push(newParent);\n }\n\n newParent.children.push(treeBlock);\n } else if (lastParent.depth === depth - 1) {\n // add as child of last parent\n lastParent.children.push(treeBlock);\n } else {\n // pop out parents at levels above this one from the parent stack\n while (lastParent != null && lastParent.depth >= depth) {\n parentStack.shift();\n lastParent = parentStack[0];\n }\n\n if (depth > 0) {\n lastParent.children.push(treeBlock);\n } else {\n transformedBlocks.push(treeBlock);\n }\n }\n });\n return _objectSpread({}, draftState, {\n blocks: transformedBlocks\n });\n }\n};\nmodule.exports = DraftTreeAdapter;","\"use strict\";\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n *\n * This is unstable and not part of the public API and should not be used by\n * production systems. This file may be update/removed without notice.\n */\nvar warning = require(\"fbjs/lib/warning\");\n\nvar DraftTreeInvariants = {\n /**\n * Check if the block is valid\n */\n isValidBlock: function isValidBlock(block, blockMap) {\n var key = block.getKey(); // is its parent's child\n\n var parentKey = block.getParentKey();\n\n if (parentKey != null) {\n var parent = blockMap.get(parentKey);\n\n if (!parent.getChildKeys().includes(key)) {\n process.env.NODE_ENV !== \"production\" ? warning(true, 'Tree is missing parent -> child pointer on %s', key) : void 0;\n return false;\n }\n } // is its children's parent\n\n\n var children = block.getChildKeys().map(function (k) {\n return blockMap.get(k);\n });\n\n if (!children.every(function (c) {\n return c.getParentKey() === key;\n })) {\n process.env.NODE_ENV !== \"production\" ? warning(true, 'Tree is missing child -> parent pointer on %s', key) : void 0;\n return false;\n } // is its previous sibling's next sibling\n\n\n var prevSiblingKey = block.getPrevSiblingKey();\n\n if (prevSiblingKey != null) {\n var prevSibling = blockMap.get(prevSiblingKey);\n\n if (prevSibling.getNextSiblingKey() !== key) {\n process.env.NODE_ENV !== \"production\" ? warning(true, \"Tree is missing nextSibling pointer on %s's prevSibling\", key) : void 0;\n return false;\n }\n } // is its next sibling's previous sibling\n\n\n var nextSiblingKey = block.getNextSiblingKey();\n\n if (nextSiblingKey != null) {\n var nextSibling = blockMap.get(nextSiblingKey);\n\n if (nextSibling.getPrevSiblingKey() !== key) {\n process.env.NODE_ENV !== \"production\" ? warning(true, \"Tree is missing prevSibling pointer on %s's nextSibling\", key) : void 0;\n return false;\n }\n } // no 2-node cycles\n\n\n if (nextSiblingKey !== null && prevSiblingKey !== null) {\n if (prevSiblingKey === nextSiblingKey) {\n process.env.NODE_ENV !== \"production\" ? warning(true, 'Tree has a two-node cycle at %s', key) : void 0;\n return false;\n }\n } // if it's a leaf node, it has text but no children\n\n\n if (block.text != '') {\n if (block.getChildKeys().size > 0) {\n process.env.NODE_ENV !== \"production\" ? warning(true, 'Leaf node %s has children', key) : void 0;\n return false;\n }\n }\n\n return true;\n },\n\n /**\n * Checks that this is a connected tree on all the blocks\n * starting from the first block, traversing nextSibling and child pointers\n * should be a tree (preorder traversal - parent, then children)\n * num of connected node === number of blocks\n */\n isConnectedTree: function isConnectedTree(blockMap) {\n // exactly one node has no previous sibling + no parent\n var eligibleFirstNodes = blockMap.toArray().filter(function (block) {\n return block.getParentKey() == null && block.getPrevSiblingKey() == null;\n });\n\n if (eligibleFirstNodes.length !== 1) {\n process.env.NODE_ENV !== \"production\" ? warning(true, 'Tree is not connected. More or less than one first node') : void 0;\n return false;\n }\n\n var firstNode = eligibleFirstNodes.shift();\n var nodesSeen = 0;\n var currentKey = firstNode.getKey();\n var visitedStack = [];\n\n while (currentKey != null) {\n var currentNode = blockMap.get(currentKey);\n var childKeys = currentNode.getChildKeys();\n var nextSiblingKey = currentNode.getNextSiblingKey(); // if the node has children, add parent's next sibling to stack and go to children\n\n if (childKeys.size > 0) {\n if (nextSiblingKey != null) {\n visitedStack.unshift(nextSiblingKey);\n }\n\n var children = childKeys.map(function (k) {\n return blockMap.get(k);\n });\n\n var _firstNode = children.find(function (block) {\n return block.getPrevSiblingKey() == null;\n });\n\n if (_firstNode == null) {\n process.env.NODE_ENV !== \"production\" ? warning(true, '%s has no first child', currentKey) : void 0;\n return false;\n }\n\n currentKey = _firstNode.getKey(); // TODO(T32490138): Deal with multi-node cycles here\n } else {\n if (currentNode.getNextSiblingKey() != null) {\n currentKey = currentNode.getNextSiblingKey();\n } else {\n currentKey = visitedStack.shift();\n }\n }\n\n nodesSeen++;\n }\n\n if (nodesSeen !== blockMap.size) {\n process.env.NODE_ENV !== \"production\" ? warning(true, 'Tree is not connected. %s nodes were seen instead of %s', nodesSeen, blockMap.size) : void 0;\n return false;\n }\n\n return true;\n },\n\n /**\n * Checks that the block map is a connected tree with valid blocks\n */\n isValidTree: function isValidTree(blockMap) {\n var _this = this;\n\n var blocks = blockMap.toArray();\n\n if (!blocks.every(function (block) {\n return _this.isValidBlock(block, blockMap);\n })) {\n return false;\n }\n\n return this.isConnectedTree(blockMap);\n }\n};\nmodule.exports = DraftTreeInvariants;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar Immutable = require(\"immutable\");\n\nvar List = Immutable.List;\n\nfunction createCharacterList(inlineStyles, entities) {\n var characterArray = inlineStyles.map(function (style, ii) {\n var entity = entities[ii];\n return CharacterMetadata.create({\n style: style,\n entity: entity\n });\n });\n return List(characterArray);\n}\n\nmodule.exports = createCharacterList;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar UnicodeUtils = require(\"fbjs/lib/UnicodeUtils\");\n\nvar substr = UnicodeUtils.substr;\n/**\n * Convert to native JavaScript string lengths to determine ranges.\n */\n\nfunction decodeEntityRanges(text, ranges) {\n var entities = Array(text.length).fill(null);\n\n if (ranges) {\n ranges.forEach(function (range) {\n // Using Unicode-enabled substrings converted to JavaScript lengths,\n // fill the output array with entity keys.\n var start = substr(text, 0, range.offset).length;\n var end = start + substr(text, range.offset, range.length).length;\n\n for (var ii = start; ii < end; ii++) {\n entities[ii] = range.key;\n }\n });\n }\n\n return entities;\n}\n\nmodule.exports = decodeEntityRanges;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar UnicodeUtils = require(\"fbjs/lib/UnicodeUtils\");\n\nvar _require = require(\"immutable\"),\n OrderedSet = _require.OrderedSet;\n\nvar substr = UnicodeUtils.substr;\nvar EMPTY_SET = OrderedSet();\n/**\n * Convert to native JavaScript string lengths to determine ranges.\n */\n\nfunction decodeInlineStyleRanges(text, ranges) {\n var styles = Array(text.length).fill(EMPTY_SET);\n\n if (ranges) {\n ranges.forEach(function (range) {\n var cursor = substr(text, 0, range.offset).length;\n var end = cursor + substr(text, range.offset, range.length).length;\n\n while (cursor < end) {\n styles[cursor] = styles[cursor].add(range.style);\n cursor++;\n }\n });\n }\n\n return styles;\n}\n\nmodule.exports = decodeInlineStyleRanges;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar getRangeBoundingClientRect = require(\"./getRangeBoundingClientRect\");\n/**\n * Return the bounding ClientRect for the visible DOM selection, if any.\n * In cases where there are no selected ranges or the bounding rect is\n * temporarily invalid, return null.\n *\n * When using from an iframe, you should pass the iframe window object\n */\n\n\nfunction getVisibleSelectionRect(global) {\n var selection = global.getSelection();\n\n if (!selection.rangeCount) {\n return null;\n }\n\n var range = selection.getRangeAt(0);\n var boundingRect = getRangeBoundingClientRect(range);\n var top = boundingRect.top,\n right = boundingRect.right,\n bottom = boundingRect.bottom,\n left = boundingRect.left; // When a re-render leads to a node being removed, the DOM selection will\n // temporarily be placed on an ancestor node, which leads to an invalid\n // bounding rect. Discard this state.\n\n if (top === 0 && right === 0 && bottom === 0 && left === 0) {\n return null;\n }\n\n return boundingRect;\n}\n\nmodule.exports = getVisibleSelectionRect;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar getRangeClientRects = require(\"./getRangeClientRects\");\n\n/**\n * Like range.getBoundingClientRect() but normalizes for browser bugs.\n */\nfunction getRangeBoundingClientRect(range) {\n // \"Return a DOMRect object describing the smallest rectangle that includes\n // the first rectangle in list and all of the remaining rectangles of which\n // the height or width is not zero.\"\n // http://www.w3.org/TR/cssom-view/#dom-range-getboundingclientrect\n var rects = getRangeClientRects(range);\n var top = 0;\n var right = 0;\n var bottom = 0;\n var left = 0;\n\n if (rects.length) {\n // If the first rectangle has 0 width, we use the second, this is needed\n // because Chrome renders a 0 width rectangle when the selection contains\n // a line break.\n if (rects.length > 1 && rects[0].width === 0) {\n var _rects$ = rects[1];\n top = _rects$.top;\n right = _rects$.right;\n bottom = _rects$.bottom;\n left = _rects$.left;\n } else {\n var _rects$2 = rects[0];\n top = _rects$2.top;\n right = _rects$2.right;\n bottom = _rects$2.bottom;\n left = _rects$2.left;\n }\n\n for (var ii = 1; ii < rects.length; ii++) {\n var rect = rects[ii];\n\n if (rect.height !== 0 && rect.width !== 0) {\n top = Math.min(top, rect.top);\n right = Math.max(right, rect.right);\n bottom = Math.max(bottom, rect.bottom);\n left = Math.min(left, rect.left);\n }\n }\n }\n\n return {\n top: top,\n right: right,\n bottom: bottom,\n left: left,\n width: right - left,\n height: bottom - top\n };\n}\n\nmodule.exports = getRangeBoundingClientRect;","import computeScrollIntoView from 'compute-scroll-into-view';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n// istanbul ignore next\nvar statusDiv = typeof document === 'undefined' ? null : document.getElementById('a11y-status-message');\nvar statuses = [];\n/**\n * @param {String} status the status message\n */\n\nfunction setStatus(status) {\n var isSameAsLast = statuses[statuses.length - 1] === status;\n\n if (isSameAsLast) {\n statuses = statuses.concat([status]);\n } else {\n statuses = [status];\n }\n\n var div = getStatusDiv(); // Remove previous children\n\n while (div.lastChild) {\n div.removeChild(div.firstChild);\n }\n\n statuses.filter(Boolean).forEach(function (statusItem, index) {\n div.appendChild(getStatusChildDiv(statusItem, index));\n });\n}\n/**\n * @param {String} status the status message\n * @param {Number} index the index\n * @return {HTMLElement} the child node\n */\n\n\nfunction getStatusChildDiv(status, index) {\n var display = index === statuses.length - 1 ? 'block' : 'none';\n var childDiv = document.createElement('div');\n childDiv.style.display = display;\n childDiv.textContent = status;\n return childDiv;\n}\n/**\n * Get the status node or create it if it does not already exist\n * @return {HTMLElement} the status node\n */\n\n\nfunction getStatusDiv() {\n if (statusDiv) {\n return statusDiv;\n }\n\n statusDiv = document.createElement('div');\n statusDiv.setAttribute('id', 'a11y-status-message');\n statusDiv.setAttribute('role', 'status');\n statusDiv.setAttribute('aria-live', 'assertive');\n statusDiv.setAttribute('aria-relevant', 'additions text');\n Object.assign(statusDiv.style, {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n width: '1px'\n });\n document.body.appendChild(statusDiv);\n return statusDiv;\n}\n\nvar unknown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_unknown__' : 0;\nvar mouseUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_mouseup__' : 1;\nvar itemMouseEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_item_mouseenter__' : 2;\nvar keyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_up__' : 3;\nvar keyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_down__' : 4;\nvar keyDownEscape = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_escape__' : 5;\nvar keyDownEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_enter__' : 6;\nvar clickItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_item__' : 7;\nvar blurInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_input__' : 8;\nvar changeInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_change_input__' : 9;\nvar keyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_space_button__' : 10;\nvar clickButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_button__' : 11;\nvar blurButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_button__' : 12;\nvar controlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_controlled_prop_updated_selected_item__' : 13;\nvar touchStart = process.env.NODE_ENV !== \"production\" ? '__autocomplete_touchstart__' : 14;\n\nvar stateChangeTypes = /*#__PURE__*/Object.freeze({\n unknown: unknown,\n mouseUp: mouseUp,\n itemMouseEnter: itemMouseEnter,\n keyDownArrowUp: keyDownArrowUp,\n keyDownArrowDown: keyDownArrowDown,\n keyDownEscape: keyDownEscape,\n keyDownEnter: keyDownEnter,\n clickItem: clickItem,\n blurInput: blurInput,\n changeInput: changeInput,\n keyDownSpaceButton: keyDownSpaceButton,\n clickButton: clickButton,\n blurButton: blurButton,\n controlledPropUpdatedSelectedItem: controlledPropUpdatedSelectedItem,\n touchStart: touchStart\n});\n\nvar idCounter = 0;\n/**\n * Accepts a parameter and returns it if it's a function\n * or a noop function if it's not. This allows us to\n * accept a callback, but not worry about it if it's not\n * passed.\n * @param {Function} cb the callback\n * @return {Function} a function\n */\n\nfunction cbToCb(cb) {\n return typeof cb === 'function' ? cb : noop;\n}\n\nfunction noop() {}\n/**\n * Scroll node into view if necessary\n * @param {HTMLElement} node the element that should scroll into view\n * @param {HTMLElement} rootNode the root element of the component\n */\n\n\nfunction scrollIntoView(node, rootNode) {\n if (node === null) {\n return;\n }\n\n var actions = computeScrollIntoView(node, {\n boundary: rootNode,\n block: 'nearest',\n scrollMode: 'if-needed'\n });\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n el.scrollTop = top;\n el.scrollLeft = left;\n });\n}\n/**\n * @param {HTMLElement} parent the parent node\n * @param {HTMLElement} child the child node\n * @return {Boolean} whether the parent is the child or the child is in the parent\n */\n\n\nfunction isOrContainsNode(parent, child) {\n return parent === child || parent.contains && parent.contains(child);\n}\n/**\n * Simple debounce implementation. Will call the given\n * function once after the time given has passed since\n * it was last called.\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n * @return {Function} the debounced function\n */\n\n\nfunction debounce(fn, time) {\n var timeoutId;\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n\n function wrapper() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n cancel();\n timeoutId = setTimeout(function () {\n timeoutId = null;\n fn.apply(void 0, args);\n }, time);\n }\n\n wrapper.cancel = cancel;\n return wrapper;\n}\n/**\n * This is intended to be used to compose event handlers.\n * They are executed in order until one of them sets\n * `event.preventDownshiftDefault = true`.\n * @param {...Function} fns the event handler functions\n * @return {Function} the event handler to add to an element\n */\n\n\nfunction callAllEventHandlers() {\n for (var _len2 = arguments.length, fns = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n fns[_key2] = arguments[_key2];\n }\n\n return function (event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return fns.some(function (fn) {\n if (fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return event.preventDownshiftDefault || event.hasOwnProperty('nativeEvent') && event.nativeEvent.preventDownshiftDefault;\n });\n };\n}\n/**\n * This return a function that will call all the given functions with\n * the arguments with which it's called. It does a null-check before\n * attempting to call the functions and can take any number of functions.\n * @param {...Function} fns the functions to call\n * @return {Function} the function that calls all the functions\n */\n\n\nfunction callAll() {\n for (var _len4 = arguments.length, fns = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n fns[_key4] = arguments[_key4];\n }\n\n return function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n fns.forEach(function (fn) {\n if (fn) {\n fn.apply(void 0, args);\n }\n });\n };\n}\n/**\n * This generates a unique ID for an instance of Downshift\n * @return {String} the unique ID\n */\n\n\nfunction generateId() {\n return String(idCounter++);\n}\n/**\n * Resets idCounter to 0. Used for SSR.\n */\n\n\nfunction resetIdCounter() {\n idCounter = 0;\n}\n/**\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\n\n\nfunction getA11yStatusMessage(_ref2) {\n var isOpen = _ref2.isOpen,\n highlightedItem = _ref2.highlightedItem,\n selectedItem = _ref2.selectedItem,\n resultCount = _ref2.resultCount,\n previousResultCount = _ref2.previousResultCount,\n itemToString = _ref2.itemToString;\n\n if (!isOpen) {\n if (selectedItem) {\n return itemToString(selectedItem);\n } else {\n return '';\n }\n }\n\n if (!resultCount) {\n return 'No results.';\n } else if (!highlightedItem || resultCount !== previousResultCount) {\n return resultCount + \" \" + (resultCount === 1 ? 'result is' : 'results are') + \" available, use up and down arrow keys to navigate.\";\n }\n\n return itemToString(highlightedItem);\n}\n/**\n * Takes an argument and if it's an array, returns the first item in the array\n * otherwise returns the argument\n * @param {*} arg the maybe-array\n * @param {*} defaultValue the value if arg is falsey not defined\n * @return {*} the arg or it's first item\n */\n\n\nfunction unwrapArray(arg, defaultValue) {\n arg = Array.isArray(arg) ?\n /* istanbul ignore next (preact) */\n arg[0] : arg;\n\n if (!arg && defaultValue) {\n return defaultValue;\n } else {\n return arg;\n }\n}\n/**\n * @param {Object} element (P)react element\n * @return {Boolean} whether it's a DOM element\n */\n\n\nfunction isDOMElement(element) {\n // then we assume this is react\n return typeof element.type === 'string';\n}\n/**\n * @param {Object} element (P)react element\n * @return {Object} the props\n */\n\n\nfunction getElementProps(element) {\n return element.props;\n}\n/**\n * Throws a helpful error message for required properties. Useful\n * to be used as a default in destructuring or object params.\n * @param {String} fnName the function name\n * @param {String} propName the prop name\n */\n\n\nfunction requiredProp(fnName, propName) {\n // eslint-disable-next-line no-console\n console.error(\"The property \\\"\" + propName + \"\\\" is required in \\\"\" + fnName + \"\\\"\");\n}\n\nvar stateKeys = ['highlightedIndex', 'inputValue', 'isOpen', 'selectedItem', 'type'];\n/**\n * @param {Object} state the state object\n * @return {Object} state that is relevant to downshift\n */\n\nfunction pickState(state) {\n if (state === void 0) {\n state = {};\n }\n\n var result = {};\n stateKeys.forEach(function (k) {\n if (state.hasOwnProperty(k)) {\n result[k] = state[k];\n }\n });\n return result;\n}\n/**\n * Normalizes the 'key' property of a KeyboardEvent in IE/Edge\n * @param {Object} event a keyboardEvent object\n * @return {String} keyboard key\n */\n\n\nfunction normalizeArrowKey(event) {\n var key = event.key,\n keyCode = event.keyCode;\n /* istanbul ignore next (ie) */\n\n if (keyCode >= 37 && keyCode <= 40 && key.indexOf('Arrow') !== 0) {\n return \"Arrow\" + key;\n }\n\n return key;\n}\n/**\n * Simple check if the value passed is object literal\n * @param {*} obj any things\n * @return {Boolean} whether it's object literal\n */\n\n\nfunction isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n\nvar Downshift =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(Downshift, _Component);\n\n function Downshift(_props) {\n var _this = _Component.call(this, _props) || this;\n\n _this.id = _this.props.id || \"downshift-\" + generateId();\n _this.menuId = _this.props.menuId || _this.id + \"-menu\";\n _this.labelId = _this.props.labelId || _this.id + \"-label\";\n _this.inputId = _this.props.inputId || _this.id + \"-input\";\n\n _this.getItemId = _this.props.getItemId || function (index) {\n return _this.id + \"-item-\" + index;\n };\n\n _this.input = null;\n _this.items = [];\n _this.itemCount = null;\n _this.previousResultCount = 0;\n _this.timeoutIds = [];\n\n _this.internalSetTimeout = function (fn, time) {\n var id = setTimeout(function () {\n _this.timeoutIds = _this.timeoutIds.filter(function (i) {\n return i !== id;\n });\n fn();\n }, time);\n\n _this.timeoutIds.push(id);\n };\n\n _this.setItemCount = function (count) {\n _this.itemCount = count;\n };\n\n _this.unsetItemCount = function () {\n _this.itemCount = null;\n };\n\n _this.setHighlightedIndex = function (highlightedIndex, otherStateToSet) {\n if (highlightedIndex === void 0) {\n highlightedIndex = _this.props.defaultHighlightedIndex;\n }\n\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_extends({\n highlightedIndex: highlightedIndex\n }, otherStateToSet));\n };\n\n _this.clearSelection = function (cb) {\n _this.internalSetState({\n selectedItem: null,\n inputValue: '',\n isOpen: false\n }, cb);\n };\n\n _this.selectItem = function (item, otherStateToSet, cb) {\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_extends({\n isOpen: false,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n selectedItem: item,\n inputValue: _this.isControlledProp('selectedItem') ? _this.props.defaultInputValue : _this.props.itemToString(item)\n }, otherStateToSet), cb);\n };\n\n _this.selectItemAtIndex = function (itemIndex, otherStateToSet, cb) {\n var item = _this.items[itemIndex];\n\n if (item == null) {\n return;\n }\n\n _this.selectItem(item, otherStateToSet, cb);\n };\n\n _this.selectHighlightedItem = function (otherStateToSet, cb) {\n return _this.selectItemAtIndex(_this.getState().highlightedIndex, otherStateToSet, cb);\n };\n\n _this.internalSetState = function (stateToSet, cb) {\n var isItemSelected, onChangeArg;\n var onStateChangeArg = {};\n var isStateToSetFunction = typeof stateToSet === 'function'; // we want to call `onInputValueChange` before the `setState` call\n // so someone controlling the `inputValue` state gets notified of\n // the input change as soon as possible. This avoids issues with\n // preserving the cursor position.\n // See https://github.com/paypal/downshift/issues/217 for more info.\n\n if (!isStateToSetFunction && stateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(stateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), stateToSet));\n }\n\n return _this.setState(function (state) {\n state = _this.getState(state);\n var newStateToSet = isStateToSetFunction ? stateToSet(state) : stateToSet; // Your own function that could modify the state that will be set.\n\n newStateToSet = _this.props.stateReducer(state, newStateToSet); // checks if an item is selected, regardless of if it's different from\n // what was selected before\n // used to determine if onSelect and onChange callbacks should be called\n\n isItemSelected = newStateToSet.hasOwnProperty('selectedItem'); // this keeps track of the object we want to call with setState\n\n var nextState = {}; // this is just used to tell whether the state changed\n\n var nextFullState = {}; // we need to call on change if the outside world is controlling any of our state\n // and we're trying to update that state. OR if the selection has changed and we're\n // trying to update the selection\n\n if (isItemSelected && newStateToSet.selectedItem !== state.selectedItem) {\n onChangeArg = newStateToSet.selectedItem;\n }\n\n newStateToSet.type = newStateToSet.type || unknown;\n Object.keys(newStateToSet).forEach(function (key) {\n // onStateChangeArg should only have the state that is\n // actually changing\n if (state[key] !== newStateToSet[key]) {\n onStateChangeArg[key] = newStateToSet[key];\n } // the type is useful for the onStateChangeArg\n // but we don't actually want to set it in internal state.\n // this is an undocumented feature for now... Not all internalSetState\n // calls support it and I'm not certain we want them to yet.\n // But it enables users controlling the isOpen state to know when\n // the isOpen state changes due to mouseup events which is quite handy.\n\n\n if (key === 'type') {\n return;\n }\n\n nextFullState[key] = newStateToSet[key]; // if it's coming from props, then we don't care to set it internally\n\n if (!_this.isControlledProp(key)) {\n nextState[key] = newStateToSet[key];\n }\n }); // if stateToSet is a function, then we weren't able to call onInputValueChange\n // earlier, so we'll call it now that we know what the inputValue state will be.\n\n if (isStateToSetFunction && newStateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(newStateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), newStateToSet));\n }\n\n return nextState;\n }, function () {\n // call the provided callback if it's a function\n cbToCb(cb)(); // only call the onStateChange and onChange callbacks if\n // we have relevant information to pass them.\n\n var hasMoreStateThanType = Object.keys(onStateChangeArg).length > 1;\n\n if (hasMoreStateThanType) {\n _this.props.onStateChange(onStateChangeArg, _this.getStateAndHelpers());\n }\n\n if (isItemSelected) {\n _this.props.onSelect(stateToSet.selectedItem, _this.getStateAndHelpers());\n }\n\n if (onChangeArg !== undefined) {\n _this.props.onChange(onChangeArg, _this.getStateAndHelpers());\n } // this is currently undocumented and therefore subject to change\n // We'll try to not break it, but just be warned.\n\n\n _this.props.onUserAction(onStateChangeArg, _this.getStateAndHelpers());\n });\n };\n\n _this.rootRef = function (node) {\n return _this._rootNode = node;\n };\n\n _this.getRootProps = function (_temp, _temp2) {\n var _extends2;\n\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n rest = _objectWithoutPropertiesLoose(_ref, [\"refKey\"]);\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n\n // this is used in the render to know whether the user has called getRootProps.\n // It uses that to know whether to apply the props automatically\n _this.getRootProps.called = true;\n _this.getRootProps.refKey = refKey;\n _this.getRootProps.suppressRefError = suppressRefError;\n\n var _this$getState = _this.getState(),\n isOpen = _this$getState.isOpen;\n\n return _extends((_extends2 = {}, _extends2[refKey] = _this.rootRef, _extends2.role = 'combobox', _extends2['aria-expanded'] = isOpen, _extends2['aria-haspopup'] = 'listbox', _extends2['aria-owns'] = isOpen ? _this.menuId : null, _extends2['aria-labelledby'] = _this.labelId, _extends2), rest);\n };\n\n _this.keyDownHandlers = {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n var amount = event.shiftKey ? 5 : 1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowDown\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n var amount = event.shiftKey ? -5 : -1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowUp\n });\n },\n Enter: function Enter(event) {\n var _this$getState2 = this.getState(),\n isOpen = _this$getState2.isOpen,\n highlightedIndex = _this$getState2.highlightedIndex;\n\n if (isOpen && highlightedIndex != null) {\n event.preventDefault();\n var item = this.items[highlightedIndex];\n var itemNode = this.getItemNodeFromIndex(highlightedIndex);\n\n if (item == null || itemNode && itemNode.hasAttribute('disabled')) {\n return;\n }\n\n this.selectHighlightedItem({\n type: keyDownEnter\n });\n }\n },\n Escape: function Escape(event) {\n event.preventDefault();\n this.reset({\n type: keyDownEscape\n });\n }\n };\n _this.buttonKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n ' ': function _(event) {\n event.preventDefault();\n this.toggleMenu({\n type: keyDownSpaceButton\n });\n }\n });\n\n _this.getToggleButtonProps = function (_temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n onClick = _ref3.onClick,\n onPress = _ref3.onPress,\n onKeyDown = _ref3.onKeyDown,\n onKeyUp = _ref3.onKeyUp,\n onBlur = _ref3.onBlur,\n rest = _objectWithoutPropertiesLoose(_ref3, [\"onClick\", \"onPress\", \"onKeyDown\", \"onKeyUp\", \"onBlur\"]);\n\n var _this$getState3 = _this.getState(),\n isOpen = _this$getState3.isOpen;\n\n var enabledEventHandlers = {\n onClick: callAllEventHandlers(onClick, _this.button_handleClick),\n onKeyDown: callAllEventHandlers(onKeyDown, _this.button_handleKeyDown),\n onKeyUp: callAllEventHandlers(onKeyUp, _this.button_handleKeyUp),\n onBlur: callAllEventHandlers(onBlur, _this.button_handleBlur)\n };\n var eventHandlers = rest.disabled ? {} : enabledEventHandlers;\n return _extends({\n type: 'button',\n role: 'button',\n 'aria-label': isOpen ? 'close menu' : 'open menu',\n 'aria-haspopup': true,\n 'data-toggle': true\n }, eventHandlers, rest);\n };\n\n _this.button_handleKeyUp = function (event) {\n // Prevent click event from emitting in Firefox\n event.preventDefault();\n };\n\n _this.button_handleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (_this.buttonKeyDownHandlers[key]) {\n _this.buttonKeyDownHandlers[key].call(_assertThisInitialized(_assertThisInitialized(_this)), event);\n }\n };\n\n _this.button_handleClick = function (event) {\n event.preventDefault(); // handle odd case for Safari and Firefox which\n // don't give the button the focus properly.\n\n /* istanbul ignore if (can't reasonably test this) */\n\n if (_this.props.environment.document.activeElement === _this.props.environment.document.body) {\n event.target.focus();\n } // to simplify testing components that use downshift, we'll not wrap this in a setTimeout\n // if the NODE_ENV is test. With the proper build system, this should be dead code eliminated\n // when building for production and should therefore have no impact on production code.\n\n\n if (process.env.NODE_ENV === 'test') {\n _this.toggleMenu({\n type: clickButton\n });\n } else {\n // Ensure that toggle of menu occurs after the potential blur event in iOS\n _this.internalSetTimeout(function () {\n return _this.toggleMenu({\n type: clickButton\n });\n });\n }\n };\n\n _this.button_handleBlur = function (event) {\n var blurTarget = event.target; // Save blur target for comparison with activeElement later\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not body element\n\n _this.internalSetTimeout(function () {\n if (!_this.isMouseDown && (_this.props.environment.document.activeElement == null || _this.props.environment.document.activeElement.id !== _this.inputId) && _this.props.environment.document.activeElement !== blurTarget // Do nothing if we refocus the same element again (to solve issue in Safari on iOS)\n ) {\n _this.reset({\n type: blurButton\n });\n }\n });\n };\n\n _this.getLabelProps = function (props) {\n return _extends({\n htmlFor: _this.inputId,\n id: _this.labelId\n }, props);\n };\n\n _this.getInputProps = function (_temp4) {\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n onKeyDown = _ref4.onKeyDown,\n onBlur = _ref4.onBlur,\n onChange = _ref4.onChange,\n onInput = _ref4.onInput,\n onChangeText = _ref4.onChangeText,\n rest = _objectWithoutPropertiesLoose(_ref4, [\"onKeyDown\", \"onBlur\", \"onChange\", \"onInput\", \"onChangeText\"]);\n\n var onChangeKey;\n var eventHandlers = {};\n /* istanbul ignore next (preact) */\n\n onChangeKey = 'onChange';\n\n var _this$getState4 = _this.getState(),\n inputValue = _this$getState4.inputValue,\n isOpen = _this$getState4.isOpen,\n highlightedIndex = _this$getState4.highlightedIndex;\n\n if (!rest.disabled) {\n var _eventHandlers;\n\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, _this.input_handleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, _this.input_handleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, _this.input_handleBlur), _eventHandlers);\n }\n /* istanbul ignore if (react-native) */\n\n\n return _extends({\n 'aria-autocomplete': 'list',\n 'aria-activedescendant': isOpen && typeof highlightedIndex === 'number' && highlightedIndex >= 0 ? _this.getItemId(highlightedIndex) : null,\n 'aria-controls': isOpen ? _this.menuId : null,\n 'aria-labelledby': _this.labelId,\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n autoComplete: 'off',\n value: inputValue,\n id: _this.inputId\n }, eventHandlers, rest);\n };\n\n _this.input_handleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (key && _this.keyDownHandlers[key]) {\n _this.keyDownHandlers[key].call(_assertThisInitialized(_assertThisInitialized(_this)), event);\n }\n };\n\n _this.input_handleChange = function (event) {\n _this.internalSetState({\n type: changeInput,\n isOpen: true,\n inputValue: event.target.value\n });\n };\n\n _this.input_handleTextChange\n /* istanbul ignore next (react-native) */\n = function (text) {\n _this.internalSetState({\n type: changeInput,\n isOpen: true,\n inputValue: text\n });\n };\n\n _this.input_handleBlur = function () {\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not the body element\n _this.internalSetTimeout(function () {\n var downshiftButtonIsActive = _this.props.environment.document && _this.props.environment.document.activeElement.dataset.toggle && _this._rootNode && _this._rootNode.contains(_this.props.environment.document.activeElement);\n\n if (!_this.isMouseDown && !downshiftButtonIsActive) {\n _this.reset({\n type: blurInput\n });\n }\n });\n };\n\n _this.menuRef = function (node) {\n _this._menuNode = node;\n };\n\n _this.getMenuProps = function (_temp5, _temp6) {\n var _extends3;\n\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n props = _objectWithoutPropertiesLoose(_ref5, [\"refKey\", \"ref\"]);\n\n var _ref6 = _temp6 === void 0 ? {} : _temp6,\n _ref6$suppressRefErro = _ref6.suppressRefError,\n suppressRefError = _ref6$suppressRefErro === void 0 ? false : _ref6$suppressRefErro;\n\n _this.getMenuProps.called = true;\n _this.getMenuProps.refKey = refKey;\n _this.getMenuProps.suppressRefError = suppressRefError;\n return _extends((_extends3 = {}, _extends3[refKey] = callAll(ref, _this.menuRef), _extends3.role = 'listbox', _extends3['aria-labelledby'] = props && props['aria-label'] ? null : _this.labelId, _extends3.id = _this.menuId, _extends3), props);\n };\n\n _this.getItemProps = function (_temp7) {\n var _enabledEventHandlers;\n\n var _ref7 = _temp7 === void 0 ? {} : _temp7,\n onMouseMove = _ref7.onMouseMove,\n onMouseDown = _ref7.onMouseDown,\n onClick = _ref7.onClick,\n onPress = _ref7.onPress,\n index = _ref7.index,\n _ref7$item = _ref7.item,\n item = _ref7$item === void 0 ? process.env.NODE_ENV === 'production' ?\n /* istanbul ignore next */\n undefined : requiredProp('getItemProps', 'item') : _ref7$item,\n rest = _objectWithoutPropertiesLoose(_ref7, [\"onMouseMove\", \"onMouseDown\", \"onClick\", \"onPress\", \"index\", \"item\"]);\n\n if (index === undefined) {\n _this.items.push(item);\n\n index = _this.items.indexOf(item);\n } else {\n _this.items[index] = item;\n }\n\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n var enabledEventHandlers = (_enabledEventHandlers = {\n // onMouseMove is used over onMouseEnter here. onMouseMove\n // is only triggered on actual mouse movement while onMouseEnter\n // can fire on DOM changes, interrupting keyboard navigation\n onMouseMove: callAllEventHandlers(onMouseMove, function () {\n if (index === _this.getState().highlightedIndex) {\n return;\n }\n\n _this.setHighlightedIndex(index, {\n type: itemMouseEnter\n }); // We never want to manually scroll when changing state based\n // on `onMouseMove` because we will be moving the element out\n // from under the user which is currently scrolling/moving the\n // cursor\n\n\n _this.avoidScrolling = true;\n\n _this.internalSetTimeout(function () {\n return _this.avoidScrolling = false;\n }, 250);\n }),\n onMouseDown: callAllEventHandlers(onMouseDown, function (event) {\n // This prevents the activeElement from being changed\n // to the item so it can remain with the current activeElement\n // which is a more common use case.\n event.preventDefault();\n })\n }, _enabledEventHandlers[onSelectKey] = callAllEventHandlers(customClickHandler, function () {\n _this.selectItemAtIndex(index, {\n type: clickItem\n });\n }), _enabledEventHandlers); // Passing down the onMouseDown handler to prevent redirect\n // of the activeElement if clicking on disabled items\n\n var eventHandlers = rest.disabled ? {\n onMouseDown: enabledEventHandlers.onMouseDown\n } : enabledEventHandlers;\n return _extends({\n id: _this.getItemId(index),\n role: 'option',\n 'aria-selected': _this.getState().selectedItem === item\n }, eventHandlers, rest);\n };\n\n _this.clearItems = function () {\n _this.items = [];\n };\n\n _this.reset = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(function (_ref8) {\n var selectedItem = _ref8.selectedItem;\n return _extends({\n isOpen: false,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n inputValue: _this.props.itemToString(selectedItem)\n }, otherStateToSet);\n }, cb);\n };\n\n _this.toggleMenu = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(function (_ref9) {\n var isOpen = _ref9.isOpen;\n return _extends({\n isOpen: !isOpen\n }, otherStateToSet);\n }, function () {\n var _this$getState5 = _this.getState(),\n isOpen = _this$getState5.isOpen;\n\n if (isOpen) {\n // highlight default index\n _this.setHighlightedIndex(undefined, otherStateToSet);\n }\n\n cbToCb(cb)();\n });\n };\n\n _this.openMenu = function (cb) {\n _this.internalSetState({\n isOpen: true\n }, cb);\n };\n\n _this.closeMenu = function (cb) {\n _this.internalSetState({\n isOpen: false\n }, cb);\n };\n\n _this.updateStatus = debounce(function () {\n var state = _this.getState();\n\n var item = _this.items[state.highlightedIndex];\n\n var resultCount = _this.getItemCount();\n\n var status = _this.props.getA11yStatusMessage(_extends({\n itemToString: _this.props.itemToString,\n previousResultCount: _this.previousResultCount,\n resultCount: resultCount,\n highlightedItem: item\n }, state));\n\n _this.previousResultCount = resultCount;\n setStatus(status);\n }, 200);\n\n var _state = _this.getState({\n highlightedIndex: _this.props.defaultHighlightedIndex,\n isOpen: _this.props.defaultIsOpen,\n inputValue: _this.props.defaultInputValue,\n selectedItem: _this.props.defaultSelectedItem\n });\n\n if (_state.selectedItem != null) {\n _state.inputValue = _this.props.itemToString(_state.selectedItem);\n }\n\n _this.state = _state;\n return _this;\n }\n\n var _proto = Downshift.prototype;\n\n /**\n * Clear all running timeouts\n */\n _proto.internalClearTimeouts = function internalClearTimeouts() {\n this.timeoutIds.forEach(function (id) {\n clearTimeout(id);\n });\n this.timeoutIds = [];\n };\n /**\n * Gets the state based on internal state or props\n * If a state value is passed via props, then that\n * is the value given, otherwise it's retrieved from\n * stateToMerge\n *\n * This will perform a shallow merge of the given state object\n * with the state coming from props\n * (for the controlled component scenario)\n * This is used in state updater functions so they're referencing\n * the right state regardless of where it comes from.\n *\n * @param {Object} stateToMerge defaults to this.state\n * @return {Object} the state\n */\n\n\n _proto.getState = function getState(stateToMerge) {\n var _this2 = this;\n\n if (stateToMerge === void 0) {\n stateToMerge = this.state;\n }\n\n return Object.keys(stateToMerge).reduce(function (state, key) {\n state[key] = _this2.isControlledProp(key) ? _this2.props[key] : stateToMerge[key];\n return state;\n }, {});\n };\n /**\n * This determines whether a prop is a \"controlled prop\" meaning it is\n * state which is controlled by the outside of this component rather\n * than within this component.\n * @param {String} key the key to check\n * @return {Boolean} whether it is a controlled controlled prop\n */\n\n\n _proto.isControlledProp = function isControlledProp(key) {\n return this.props[key] !== undefined;\n };\n\n _proto.getItemCount = function getItemCount() {\n // things read better this way. They're in priority order:\n // 1. `this.itemCount`\n // 2. `this.props.itemCount`\n // 3. `this.items.length`\n var itemCount = this.items.length;\n\n if (this.itemCount != null) {\n itemCount = this.itemCount;\n } else if (this.props.itemCount !== undefined) {\n itemCount = this.props.itemCount;\n }\n\n return itemCount;\n };\n\n _proto.getItemNodeFromIndex = function getItemNodeFromIndex(index) {\n return this.props.environment.document.getElementById(this.getItemId(index));\n };\n\n _proto.scrollHighlightedItemIntoView = function scrollHighlightedItemIntoView() {\n /* istanbul ignore else (react-native) */\n {\n var node = this.getItemNodeFromIndex(this.getState().highlightedIndex);\n this.props.scrollIntoView(node, this._rootNode);\n }\n };\n\n _proto.moveHighlightedIndex = function moveHighlightedIndex(amount, otherStateToSet) {\n if (this.getState().isOpen) {\n this.changeHighlightedIndex(amount, otherStateToSet);\n } else {\n this.setHighlightedIndex(undefined, _extends({\n isOpen: true\n }, otherStateToSet));\n }\n };\n\n _proto.changeHighlightedIndex = function changeHighlightedIndex(moveAmount, otherStateToSet) {\n var itemsLastIndex = this.getItemCount() - 1;\n\n if (itemsLastIndex < 0) {\n return;\n }\n\n var _this$getState6 = this.getState(),\n highlightedIndex = _this$getState6.highlightedIndex;\n\n var baseIndex = highlightedIndex;\n\n if (baseIndex === null) {\n baseIndex = moveAmount > 0 ? -1 : itemsLastIndex + 1;\n }\n\n var newIndex = baseIndex + moveAmount;\n\n if (newIndex < 0) {\n newIndex = itemsLastIndex;\n } else if (newIndex > itemsLastIndex) {\n newIndex = 0;\n }\n\n this.setHighlightedIndex(newIndex, otherStateToSet);\n };\n\n _proto.getStateAndHelpers = function getStateAndHelpers() {\n var _this$getState7 = this.getState(),\n highlightedIndex = _this$getState7.highlightedIndex,\n inputValue = _this$getState7.inputValue,\n selectedItem = _this$getState7.selectedItem,\n isOpen = _this$getState7.isOpen;\n\n var itemToString = this.props.itemToString;\n var id = this.id;\n var getRootProps = this.getRootProps,\n getToggleButtonProps = this.getToggleButtonProps,\n getLabelProps = this.getLabelProps,\n getMenuProps = this.getMenuProps,\n getInputProps = this.getInputProps,\n getItemProps = this.getItemProps,\n openMenu = this.openMenu,\n closeMenu = this.closeMenu,\n toggleMenu = this.toggleMenu,\n selectItem = this.selectItem,\n selectItemAtIndex = this.selectItemAtIndex,\n selectHighlightedItem = this.selectHighlightedItem,\n setHighlightedIndex = this.setHighlightedIndex,\n clearSelection = this.clearSelection,\n clearItems = this.clearItems,\n reset = this.reset,\n setItemCount = this.setItemCount,\n unsetItemCount = this.unsetItemCount,\n setState = this.internalSetState;\n return {\n // prop getters\n getRootProps: getRootProps,\n getToggleButtonProps: getToggleButtonProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getInputProps: getInputProps,\n getItemProps: getItemProps,\n // actions\n reset: reset,\n openMenu: openMenu,\n closeMenu: closeMenu,\n toggleMenu: toggleMenu,\n selectItem: selectItem,\n selectItemAtIndex: selectItemAtIndex,\n selectHighlightedItem: selectHighlightedItem,\n setHighlightedIndex: setHighlightedIndex,\n clearSelection: clearSelection,\n clearItems: clearItems,\n setItemCount: setItemCount,\n unsetItemCount: unsetItemCount,\n setState: setState,\n // props\n itemToString: itemToString,\n // derived\n id: id,\n // state\n highlightedIndex: highlightedIndex,\n inputValue: inputValue,\n isOpen: isOpen,\n selectedItem: selectedItem\n };\n }; //////////////////////////// ROOT\n\n\n _proto.componentDidMount = function componentDidMount() {\n var _this3 = this;\n\n /* istanbul ignore if (react-native) */\n if (process.env.NODE_ENV !== 'production' && !false && this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n /* istanbul ignore if (react-native) */\n\n\n {\n var targetWithinDownshift = function (target, checkActiveElement) {\n if (checkActiveElement === void 0) {\n checkActiveElement = true;\n }\n\n var document = _this3.props.environment.document;\n return [_this3._rootNode, _this3._menuNode].some(function (contextNode) {\n return contextNode && (isOrContainsNode(contextNode, target) || checkActiveElement && isOrContainsNode(contextNode, document.activeElement));\n });\n }; // this.isMouseDown helps us track whether the mouse is currently held down.\n // This is useful when the user clicks on an item in the list, but holds the mouse\n // down long enough for the list to disappear (because the blur event fires on the input)\n // this.isMouseDown is used in the blur handler on the input to determine whether the blur event should\n // trigger hiding the menu.\n\n\n var onMouseDown = function () {\n _this3.isMouseDown = true;\n };\n\n var onMouseUp = function (event) {\n _this3.isMouseDown = false; // if the target element or the activeElement is within a downshift node\n // then we don't want to reset downshift\n\n var contextWithinDownshift = targetWithinDownshift(event.target);\n\n if (!contextWithinDownshift && _this3.getState().isOpen) {\n _this3.reset({\n type: mouseUp\n }, function () {\n return _this3.props.onOuterClick(_this3.getStateAndHelpers());\n });\n }\n }; // Touching an element in iOS gives focus and hover states, but touching out of\n // the element will remove hover, and persist the focus state, resulting in the\n // blur event not being triggered.\n\n\n var onTouchStart = function (event) {\n var contextWithinDownshift = targetWithinDownshift(event.target, false);\n\n if (!contextWithinDownshift && _this3.getState().isOpen) {\n _this3.reset({\n type: touchStart\n }, function () {\n return _this3.props.onOuterClick(_this3.getStateAndHelpers());\n });\n }\n };\n\n this.props.environment.addEventListener('mousedown', onMouseDown);\n this.props.environment.addEventListener('mouseup', onMouseUp);\n this.props.environment.addEventListener('touchstart', onTouchStart);\n\n this.cleanup = function () {\n _this3.internalClearTimeouts();\n\n _this3.updateStatus.cancel();\n\n _this3.props.environment.removeEventListener('mousedown', onMouseDown);\n\n _this3.props.environment.removeEventListener('mouseup', onMouseUp);\n\n _this3.props.environment.removeEventListener('touchstart', onTouchStart);\n };\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged(prevProps, this.props);\n /* istanbul ignore if (react-native) */\n\n if (this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n }\n\n if (this.isControlledProp('selectedItem') && this.props.selectedItemChanged(prevProps.selectedItem, this.props.selectedItem)) {\n this.internalSetState({\n type: controlledPropUpdatedSelectedItem,\n inputValue: this.props.itemToString(this.props.selectedItem)\n });\n }\n\n var current = this.props.highlightedIndex === undefined ? this.state : this.props;\n var prev = prevProps.highlightedIndex === undefined ? prevState : prevProps;\n\n if (current.highlightedIndex !== prev.highlightedIndex && !this.avoidScrolling) {\n this.scrollHighlightedItemIntoView();\n }\n /* istanbul ignore else (react-native) */\n\n\n this.updateStatus();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cleanup(); // avoids memory leak\n };\n\n _proto.render = function render() {\n var children = unwrapArray(this.props.children, noop); // because the items are rerendered every time we call the children\n // we clear this out each render and it will be populated again as\n // getItemProps is called.\n\n this.clearItems(); // we reset this so we know whether the user calls getRootProps during\n // this render. If they do then we don't need to do anything,\n // if they don't then we need to clone the element they return and\n // apply the props for them.\n\n this.getRootProps.called = false;\n this.getRootProps.refKey = undefined;\n this.getRootProps.suppressRefError = undefined; // we do something similar for getMenuProps\n\n this.getMenuProps.called = false;\n this.getMenuProps.refKey = undefined;\n this.getMenuProps.suppressRefError = undefined; // we do something similar for getLabelProps\n\n this.getLabelProps.called = false; // and something similar for getInputProps\n\n this.getInputProps.called = false;\n var element = unwrapArray(children(this.getStateAndHelpers()));\n\n if (!element) {\n return null;\n }\n\n if (this.getRootProps.called || this.props.suppressRefError) {\n if (process.env.NODE_ENV !== 'production' && !this.getRootProps.suppressRefError && !this.props.suppressRefError) {\n validateGetRootPropsCalledCorrectly(element, this.getRootProps);\n }\n\n return element;\n } else if (isDOMElement(element)) {\n // they didn't apply the root props, but we can clone\n // this and apply the props ourselves\n return React.cloneElement(element, this.getRootProps(getElementProps(element)));\n }\n /* istanbul ignore else */\n\n\n if (process.env.NODE_ENV !== 'production') {\n // they didn't apply the root props, but they need to\n // otherwise we can't query around the autocomplete\n throw new Error('downshift: If you return a non-DOM element, you must use apply the getRootProps function');\n }\n /* istanbul ignore next */\n\n\n return undefined;\n };\n\n return Downshift;\n}(Component);\n\nDownshift.defaultProps = {\n defaultHighlightedIndex: null,\n defaultSelectedItem: null,\n defaultInputValue: '',\n defaultIsOpen: false,\n getA11yStatusMessage: getA11yStatusMessage,\n itemToString: function itemToString(i) {\n if (i == null) {\n return '';\n }\n\n if (process.env.NODE_ENV !== 'production' && isPlainObject(i) && !i.hasOwnProperty('toString')) {\n // eslint-disable-next-line no-console\n console.warn('downshift: An object was passed to the default implementation of `itemToString`. You should probably provide your own `itemToString` implementation. Please refer to the `itemToString` API documentation.', 'The object that was passed:', i);\n }\n\n return String(i);\n },\n onStateChange: noop,\n onInputValueChange: noop,\n onUserAction: noop,\n onChange: noop,\n onSelect: noop,\n onOuterClick: noop,\n selectedItemChanged: function selectedItemChanged(prevItem, item) {\n return prevItem !== item;\n },\n environment: typeof window === 'undefined'\n /* istanbul ignore next (ssr) */\n ? {} : window,\n stateReducer: function stateReducer(state, stateToSet) {\n return stateToSet;\n },\n suppressRefError: false,\n scrollIntoView: scrollIntoView\n};\nDownshift.stateChangeTypes = stateChangeTypes;\nprocess.env.NODE_ENV !== \"production\" ? Downshift.propTypes = {\n children: PropTypes.func,\n defaultHighlightedIndex: PropTypes.number,\n defaultSelectedItem: PropTypes.any,\n defaultInputValue: PropTypes.string,\n defaultIsOpen: PropTypes.bool,\n getA11yStatusMessage: PropTypes.func,\n itemToString: PropTypes.func,\n onChange: PropTypes.func,\n onSelect: PropTypes.func,\n onStateChange: PropTypes.func,\n onInputValueChange: PropTypes.func,\n onUserAction: PropTypes.func,\n onOuterClick: PropTypes.func,\n selectedItemChanged: PropTypes.func,\n stateReducer: PropTypes.func,\n itemCount: PropTypes.number,\n id: PropTypes.string,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n }),\n suppressRefError: PropTypes.bool,\n scrollIntoView: PropTypes.func,\n // things we keep in state for uncontrolled components\n // but can accept as props for controlled components\n\n /* eslint-disable react/no-unused-prop-types */\n selectedItem: PropTypes.any,\n isOpen: PropTypes.bool,\n inputValue: PropTypes.string,\n highlightedIndex: PropTypes.number,\n labelId: PropTypes.string,\n inputId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func\n /* eslint-enable react/no-unused-prop-types */\n\n} : void 0;\n\nfunction validateGetMenuPropsCalledCorrectly(node, _ref10) {\n var refKey = _ref10.refKey;\n\n if (!node) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from getMenuProps was not applied correctly on your menu element.\");\n }\n}\n\nfunction validateGetRootPropsCalledCorrectly(element, _ref11) {\n var refKey = _ref11.refKey;\n var refKeySpecified = refKey !== 'ref';\n var isComposite = !isDOMElement(element);\n\n if (isComposite && !refKeySpecified) {\n // eslint-disable-next-line no-console\n console.error('downshift: You returned a non-DOM element. You must specify a refKey in getRootProps');\n } else if (!isComposite && refKeySpecified) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You returned a DOM element. You should not specify a refKey in getRootProps. You specified \\\"\" + refKey + \"\\\"\");\n }\n\n if (!getElementProps(element)[refKey]) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You must apply the ref prop \\\"\" + refKey + \"\\\" from getRootProps onto your root element.\");\n }\n}\n\nfunction validateControlledUnchanged(prevProps, nextProps) {\n var warningDescription = \"This prop should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled Downshift element for the lifetime of the component. More info: https://github.com/paypal/downshift#control-props\";\n ['selectedItem', 'isOpen', 'inputValue', 'highlightedIndex'].forEach(function (propKey) {\n if (prevProps[propKey] !== undefined && nextProps[propKey] === undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the controlled prop \\\"\" + propKey + \"\\\" to be uncontrolled. \" + warningDescription);\n } else if (prevProps[propKey] === undefined && nextProps[propKey] !== undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the uncontrolled prop \\\"\" + propKey + \"\\\" to be controlled. \" + warningDescription);\n }\n });\n}\n\nexport default Downshift;\nexport { resetIdCounter };\n","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', 'exports', '../utils'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, exports, require('../utils'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, mod.exports, global.utils);\n global.index = mod.exports;\n }\n})(this, function (module, exports, _utils) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n var diff = function diff(lhs, rhs) {\n if (lhs === rhs) return {}; // equal return no diff\n\n if (!(0, _utils.isObject)(lhs) || !(0, _utils.isObject)(rhs)) return rhs; // return updated rhs\n\n var l = (0, _utils.properObject)(lhs);\n var r = (0, _utils.properObject)(rhs);\n\n var deletedValues = Object.keys(l).reduce(function (acc, key) {\n return r.hasOwnProperty(key) ? acc : _extends({}, acc, _defineProperty({}, key, undefined));\n }, {});\n\n if ((0, _utils.isDate)(l) || (0, _utils.isDate)(r)) {\n if (l.valueOf() == r.valueOf()) return {};\n return r;\n }\n\n return Object.keys(r).reduce(function (acc, key) {\n if (!l.hasOwnProperty(key)) return _extends({}, acc, _defineProperty({}, key, r[key])); // return added r key\n\n var difference = diff(l[key], r[key]);\n\n if ((0, _utils.isObject)(difference) && (0, _utils.isEmpty)(difference) && !(0, _utils.isDate)(difference)) return acc; // return no diff\n\n return _extends({}, acc, _defineProperty({}, key, difference)); // return updated key\n }, deletedValues);\n };\n\n exports.default = diff;\n module.exports = exports['default'];\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module', 'exports', '../added', '../deleted', '../updated'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module, exports, require('../added'), require('../deleted'), require('../updated'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, mod.exports, global.added, global.deleted, global.updated);\n global.index = mod.exports;\n }\n})(this, function (module, exports, _added, _deleted, _updated) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _added2 = _interopRequireDefault(_added);\n\n var _deleted2 = _interopRequireDefault(_deleted);\n\n var _updated2 = _interopRequireDefault(_updated);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var detailedDiff = function detailedDiff(lhs, rhs) {\n return {\n added: (0, _added2.default)(lhs, rhs),\n deleted: (0, _deleted2.default)(lhs, rhs),\n updated: (0, _updated2.default)(lhs, rhs)\n };\n };\n\n exports.default = detailedDiff;\n module.exports = exports['default'];\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function eventListener() {\n if (errorListener !== undefined) {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n var errorListener;\n\n // Adding an error listener is not optional because\n // if an error is thrown on an event emitter we cannot\n // guarantee that the actual event we are waiting will\n // be fired. The result could be a silent way to create\n // memory or file descriptor leaks, which is something\n // we should avoid.\n if (name !== 'error') {\n errorListener = function errorListener(err) {\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n emitter.once(name, eventListener);\n });\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.draftjsToHtml = factory());\n}(this, (function () { 'use strict';\n\n /**\n * Utility function to execute callback for eack key->value pair.\n */\n function forEach(obj, callback) {\n if (obj) {\n for (var key in obj) {\n // eslint-disable-line no-restricted-syntax\n if ({}.hasOwnProperty.call(obj, key)) {\n callback(key, obj[key]);\n }\n }\n }\n }\n /**\n * The function returns true if the string passed to it has no content.\n */\n\n function isEmptyString(str) {\n if (str === undefined || str === null || str.length === 0 || str.trim().length === 0) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Mapping block-type to corresponding html tag.\n */\n\n var blockTypesMapping = {\n unstyled: 'p',\n 'header-one': 'h1',\n 'header-two': 'h2',\n 'header-three': 'h3',\n 'header-four': 'h4',\n 'header-five': 'h5',\n 'header-six': 'h6',\n 'unordered-list-item': 'ul',\n 'ordered-list-item': 'ol',\n blockquote: 'blockquote',\n code: 'pre'\n };\n /**\n * Function will return HTML tag for a block.\n */\n\n function getBlockTag(type) {\n return type && blockTypesMapping[type];\n }\n /**\n * Function will return style string for a block.\n */\n\n function getBlockStyle(data) {\n var styles = '';\n forEach(data, function (key, value) {\n if (value) {\n styles += \"\".concat(key, \":\").concat(value, \";\");\n }\n });\n return styles;\n }\n /**\n * The function returns an array of hashtag-sections in blocks.\n * These will be areas in block which have hashtags applicable to them.\n */\n\n function getHashtagRanges(blockText, hashtagConfig) {\n var sections = [];\n\n if (hashtagConfig) {\n var counter = 0;\n var startIndex = 0;\n var text = blockText;\n var trigger = hashtagConfig.trigger || '#';\n var separator = hashtagConfig.separator || ' ';\n\n for (; text.length > 0 && startIndex >= 0;) {\n if (text[0] === trigger) {\n startIndex = 0;\n counter = 0;\n text = text.substr(trigger.length);\n } else {\n startIndex = text.indexOf(separator + trigger);\n\n if (startIndex >= 0) {\n text = text.substr(startIndex + (separator + trigger).length);\n counter += startIndex + separator.length;\n }\n }\n\n if (startIndex >= 0) {\n var endIndex = text.indexOf(separator) >= 0 ? text.indexOf(separator) : text.length;\n var hashtag = text.substr(0, endIndex);\n\n if (hashtag && hashtag.length > 0) {\n sections.push({\n offset: counter,\n length: hashtag.length + trigger.length,\n type: 'HASHTAG'\n });\n }\n\n counter += trigger.length;\n }\n }\n }\n\n return sections;\n }\n /**\n * The function returns an array of entity-sections in blocks.\n * These will be areas in block which have same entity or no entity applicable to them.\n */\n\n\n function getSections(block, hashtagConfig) {\n var sections = [];\n var lastOffset = 0;\n var sectionRanges = block.entityRanges.map(function (range) {\n var offset = range.offset,\n length = range.length,\n key = range.key;\n return {\n offset: offset,\n length: length,\n key: key,\n type: 'ENTITY'\n };\n });\n sectionRanges = sectionRanges.concat(getHashtagRanges(block.text, hashtagConfig));\n sectionRanges = sectionRanges.sort(function (s1, s2) {\n return s1.offset - s2.offset;\n });\n sectionRanges.forEach(function (r) {\n if (r.offset > lastOffset) {\n sections.push({\n start: lastOffset,\n end: r.offset\n });\n }\n\n sections.push({\n start: r.offset,\n end: r.offset + r.length,\n entityKey: r.key,\n type: r.type\n });\n lastOffset = r.offset + r.length;\n });\n\n if (lastOffset < block.text.length) {\n sections.push({\n start: lastOffset,\n end: block.text.length\n });\n }\n\n return sections;\n }\n /**\n * Function to check if the block is an atomic entity block.\n */\n\n\n function isAtomicEntityBlock(block) {\n if (block.entityRanges.length > 0 && (isEmptyString(block.text) || block.type === 'atomic')) {\n return true;\n }\n\n return false;\n }\n /**\n * The function will return array of inline styles applicable to the block.\n */\n\n\n function getStyleArrayForBlock(block) {\n var text = block.text,\n inlineStyleRanges = block.inlineStyleRanges;\n var inlineStyles = {\n BOLD: new Array(text.length),\n ITALIC: new Array(text.length),\n UNDERLINE: new Array(text.length),\n STRIKETHROUGH: new Array(text.length),\n CODE: new Array(text.length),\n SUPERSCRIPT: new Array(text.length),\n SUBSCRIPT: new Array(text.length),\n COLOR: new Array(text.length),\n BGCOLOR: new Array(text.length),\n FONTSIZE: new Array(text.length),\n FONTFAMILY: new Array(text.length),\n length: text.length\n };\n\n if (inlineStyleRanges && inlineStyleRanges.length > 0) {\n inlineStyleRanges.forEach(function (range) {\n var offset = range.offset;\n var length = offset + range.length;\n\n for (var i = offset; i < length; i += 1) {\n if (range.style.indexOf('color-') === 0) {\n inlineStyles.COLOR[i] = range.style.substring(6);\n } else if (range.style.indexOf('bgcolor-') === 0) {\n inlineStyles.BGCOLOR[i] = range.style.substring(8);\n } else if (range.style.indexOf('fontsize-') === 0) {\n inlineStyles.FONTSIZE[i] = range.style.substring(9);\n } else if (range.style.indexOf('fontfamily-') === 0) {\n inlineStyles.FONTFAMILY[i] = range.style.substring(11);\n } else if (inlineStyles[range.style]) {\n inlineStyles[range.style][i] = true;\n }\n }\n });\n }\n\n return inlineStyles;\n }\n /**\n * The function will return inline style applicable at some offset within a block.\n */\n\n\n function getStylesAtOffset(inlineStyles, offset) {\n var styles = {};\n\n if (inlineStyles.COLOR[offset]) {\n styles.COLOR = inlineStyles.COLOR[offset];\n }\n\n if (inlineStyles.BGCOLOR[offset]) {\n styles.BGCOLOR = inlineStyles.BGCOLOR[offset];\n }\n\n if (inlineStyles.FONTSIZE[offset]) {\n styles.FONTSIZE = inlineStyles.FONTSIZE[offset];\n }\n\n if (inlineStyles.FONTFAMILY[offset]) {\n styles.FONTFAMILY = inlineStyles.FONTFAMILY[offset];\n }\n\n if (inlineStyles.UNDERLINE[offset]) {\n styles.UNDERLINE = true;\n }\n\n if (inlineStyles.ITALIC[offset]) {\n styles.ITALIC = true;\n }\n\n if (inlineStyles.BOLD[offset]) {\n styles.BOLD = true;\n }\n\n if (inlineStyles.STRIKETHROUGH[offset]) {\n styles.STRIKETHROUGH = true;\n }\n\n if (inlineStyles.CODE[offset]) {\n styles.CODE = true;\n }\n\n if (inlineStyles.SUBSCRIPT[offset]) {\n styles.SUBSCRIPT = true;\n }\n\n if (inlineStyles.SUPERSCRIPT[offset]) {\n styles.SUPERSCRIPT = true;\n }\n\n return styles;\n }\n /**\n * Function returns true for a set of styles if the value of these styles at an offset\n * are same as that on the previous offset.\n */\n\n function sameStyleAsPrevious(inlineStyles, styles, index) {\n var sameStyled = true;\n\n if (index > 0 && index < inlineStyles.length) {\n styles.forEach(function (style) {\n sameStyled = sameStyled && inlineStyles[style][index] === inlineStyles[style][index - 1];\n });\n } else {\n sameStyled = false;\n }\n\n return sameStyled;\n }\n /**\n * Function returns html for text depending on inline style tags applicable to it.\n */\n\n function addInlineStyleMarkup(style, content) {\n if (style === 'BOLD') {\n return \"\".concat(content, \"\");\n }\n\n if (style === 'ITALIC') {\n return \"\".concat(content, \"\");\n }\n\n if (style === 'UNDERLINE') {\n return \"\".concat(content, \"\");\n }\n\n if (style === 'STRIKETHROUGH') {\n return \" \".concat(content, \"\");\n }\n\n if (style === 'CODE') {\n return \"\".concat(content, \"
\");\n }\n\n if (style === 'SUPERSCRIPT') {\n return \"\".concat(content, \"\");\n }\n\n if (style === 'SUBSCRIPT') {\n return \"\".concat(content, \"\");\n }\n\n return content;\n }\n /**\n * The function returns text for given section of block after doing required character replacements.\n */\n\n function getSectionText(text) {\n if (text && text.length > 0) {\n var chars = text.map(function (ch) {\n switch (ch) {\n case '\\n':\n return '
';\n\n case '&':\n return '&';\n\n case '<':\n return '<';\n\n case '>':\n return '>';\n\n default:\n return ch;\n }\n });\n return chars.join('');\n }\n\n return '';\n }\n /**\n * Function returns html for text depending on inline style tags applicable to it.\n */\n\n\n function addStylePropertyMarkup(styles, text) {\n if (styles && (styles.COLOR || styles.BGCOLOR || styles.FONTSIZE || styles.FONTFAMILY)) {\n var styleString = 'style=\"';\n\n if (styles.COLOR) {\n styleString += \"color: \".concat(styles.COLOR, \";\");\n }\n\n if (styles.BGCOLOR) {\n styleString += \"background-color: \".concat(styles.BGCOLOR, \";\");\n }\n\n if (styles.FONTSIZE) {\n styleString += \"font-size: \".concat(styles.FONTSIZE).concat(/^\\d+$/.test(styles.FONTSIZE) ? 'px' : '', \";\");\n }\n\n if (styles.FONTFAMILY) {\n styleString += \"font-family: \".concat(styles.FONTFAMILY, \";\");\n }\n\n styleString += '\"';\n return \"\").concat(text, \"\");\n }\n\n return text;\n }\n /**\n * Function will return markup for Entity.\n */\n\n function getEntityMarkup(entityMap, entityKey, text, customEntityTransform) {\n var entity = entityMap[entityKey];\n\n if (typeof customEntityTransform === 'function') {\n var html = customEntityTransform(entity, text);\n\n if (html) {\n return html;\n }\n }\n\n if (entity.type === 'MENTION') {\n return \"\").concat(text, \"\");\n }\n\n if (entity.type === 'LINK') {\n var targetOption = entity.data.targetOption || '_self';\n return \"\").concat(text, \"\");\n }\n\n if (entity.type === 'IMAGE') {\n var alignment = entity.data.alignment;\n\n if (alignment && alignment.length) {\n return \"\");\n }\n\n return \"\");\n }\n\n if (entity.type === 'EMBEDDED_LINK') {\n return \"\");\n }\n\n return text;\n }\n /**\n * For a given section in a block the function will return a further list of sections,\n * with similar inline styles applicable to them.\n */\n\n\n function getInlineStyleSections(block, styles, start, end) {\n var styleSections = [];\n var text = Array.from(block.text);\n\n if (text.length > 0) {\n var inlineStyles = getStyleArrayForBlock(block);\n var section;\n\n for (var i = start; i < end; i += 1) {\n if (i !== start && sameStyleAsPrevious(inlineStyles, styles, i)) {\n section.text.push(text[i]);\n section.end = i + 1;\n } else {\n section = {\n styles: getStylesAtOffset(inlineStyles, i),\n text: [text[i]],\n start: i,\n end: i + 1\n };\n styleSections.push(section);\n }\n }\n }\n\n return styleSections;\n }\n /**\n * Replace leading blank spaces by \n */\n\n\n function trimLeadingZeros(sectionText) {\n if (sectionText) {\n var replacedText = sectionText;\n\n for (var i = 0; i < replacedText.length; i += 1) {\n if (sectionText[i] === ' ') {\n replacedText = replacedText.replace(' ', ' ');\n } else {\n break;\n }\n }\n\n return replacedText;\n }\n\n return sectionText;\n }\n /**\n * Replace trailing blank spaces by \n */\n\n function trimTrailingZeros(sectionText) {\n if (sectionText) {\n var replacedText = sectionText;\n\n for (var i = replacedText.length - 1; i >= 0; i -= 1) {\n if (replacedText[i] === ' ') {\n replacedText = \"\".concat(replacedText.substring(0, i), \" \").concat(replacedText.substring(i + 1));\n } else {\n break;\n }\n }\n\n return replacedText;\n }\n\n return sectionText;\n }\n /**\n * The method returns markup for section to which inline styles\n * like BOLD, ITALIC, UNDERLINE, STRIKETHROUGH, CODE, SUPERSCRIPT, SUBSCRIPT are applicable.\n */\n\n function getStyleTagSectionMarkup(styleSection) {\n var styles = styleSection.styles,\n text = styleSection.text;\n var content = getSectionText(text);\n forEach(styles, function (style, value) {\n content = addInlineStyleMarkup(style, content);\n });\n return content;\n }\n /**\n * The method returns markup for section to which inline styles\n like color, background-color, font-size are applicable.\n */\n\n\n function getInlineStyleSectionMarkup(block, styleSection) {\n var styleTagSections = getInlineStyleSections(block, ['BOLD', 'ITALIC', 'UNDERLINE', 'STRIKETHROUGH', 'CODE', 'SUPERSCRIPT', 'SUBSCRIPT'], styleSection.start, styleSection.end);\n var styleSectionText = '';\n styleTagSections.forEach(function (stylePropertySection) {\n styleSectionText += getStyleTagSectionMarkup(stylePropertySection);\n });\n styleSectionText = addStylePropertyMarkup(styleSection.styles, styleSectionText);\n return styleSectionText;\n }\n /*\n * The method returns markup for an entity section.\n * An entity section is a continuous section in a block\n * to which same entity or no entity is applicable.\n */\n\n\n function getSectionMarkup(block, entityMap, section, customEntityTransform) {\n var entityInlineMarkup = [];\n var inlineStyleSections = getInlineStyleSections(block, ['COLOR', 'BGCOLOR', 'FONTSIZE', 'FONTFAMILY'], section.start, section.end);\n inlineStyleSections.forEach(function (styleSection) {\n entityInlineMarkup.push(getInlineStyleSectionMarkup(block, styleSection));\n });\n var sectionText = entityInlineMarkup.join('');\n\n if (section.type === 'ENTITY') {\n if (section.entityKey !== undefined && section.entityKey !== null) {\n sectionText = getEntityMarkup(entityMap, section.entityKey, sectionText, customEntityTransform); // eslint-disable-line max-len\n }\n } else if (section.type === 'HASHTAG') {\n sectionText = \"\").concat(sectionText, \"\");\n }\n\n return sectionText;\n }\n /**\n * Function will return the markup for block preserving the inline styles and\n * special characters like newlines or blank spaces.\n */\n\n\n function getBlockInnerMarkup(block, entityMap, hashtagConfig, customEntityTransform) {\n var blockMarkup = [];\n var sections = getSections(block, hashtagConfig);\n sections.forEach(function (section, index) {\n var sectionText = getSectionMarkup(block, entityMap, section, customEntityTransform);\n\n if (index === 0) {\n sectionText = trimLeadingZeros(sectionText);\n }\n\n if (index === sections.length - 1) {\n sectionText = trimTrailingZeros(sectionText);\n }\n\n blockMarkup.push(sectionText);\n });\n return blockMarkup.join('');\n }\n /**\n * Function will return html for the block.\n */\n\n function getBlockMarkup(block, entityMap, hashtagConfig, directional, customEntityTransform) {\n var blockHtml = [];\n\n if (isAtomicEntityBlock(block)) {\n blockHtml.push(getEntityMarkup(entityMap, block.entityRanges[0].key, undefined, customEntityTransform));\n } else {\n var blockTag = getBlockTag(block.type);\n\n if (blockTag) {\n blockHtml.push(\"<\".concat(blockTag));\n var blockStyle = getBlockStyle(block.data);\n\n if (blockStyle) {\n blockHtml.push(\" style=\\\"\".concat(blockStyle, \"\\\"\"));\n }\n\n if (directional) {\n blockHtml.push(' dir = \"auto\"');\n }\n\n blockHtml.push('>');\n blockHtml.push(getBlockInnerMarkup(block, entityMap, hashtagConfig, customEntityTransform));\n blockHtml.push(\"\".concat(blockTag, \">\"));\n }\n }\n\n blockHtml.push('\\n');\n return blockHtml.join('');\n }\n\n /**\n * Function to check if a block is of type list.\n */\n\n function isList(blockType) {\n return blockType === 'unordered-list-item' || blockType === 'ordered-list-item';\n }\n /**\n * Function will return html markup for a list block.\n */\n\n function getListMarkup(listBlocks, entityMap, hashtagConfig, directional, customEntityTransform) {\n var listHtml = [];\n var nestedListBlock = [];\n var previousBlock;\n listBlocks.forEach(function (block) {\n var nestedBlock = false;\n\n if (!previousBlock) {\n listHtml.push(\"<\".concat(getBlockTag(block.type), \">\\n\"));\n } else if (previousBlock.type !== block.type) {\n listHtml.push(\"\".concat(getBlockTag(previousBlock.type), \">\\n\"));\n listHtml.push(\"<\".concat(getBlockTag(block.type), \">\\n\"));\n } else if (previousBlock.depth === block.depth) {\n if (nestedListBlock && nestedListBlock.length > 0) {\n listHtml.push(getListMarkup(nestedListBlock, entityMap, hashtagConfig, directional, customEntityTransform));\n nestedListBlock = [];\n }\n } else {\n nestedBlock = true;\n nestedListBlock.push(block);\n }\n\n if (!nestedBlock) {\n listHtml.push('
');\n listHtml.push(getBlockInnerMarkup(block, entityMap, hashtagConfig, customEntityTransform));\n listHtml.push(' \\n');\n previousBlock = block;\n }\n });\n\n if (nestedListBlock && nestedListBlock.length > 0) {\n listHtml.push(getListMarkup(nestedListBlock, entityMap, hashtagConfig, directional, customEntityTransform));\n }\n\n listHtml.push(\"\".concat(getBlockTag(previousBlock.type), \">\\n\"));\n return listHtml.join('');\n }\n\n /**\n * The function will generate html markup for given draftjs editorContent.\n */\n\n function draftToHtml(editorContent, hashtagConfig, directional, customEntityTransform) {\n var html = [];\n\n if (editorContent) {\n var blocks = editorContent.blocks,\n entityMap = editorContent.entityMap;\n\n if (blocks && blocks.length > 0) {\n var listBlocks = [];\n blocks.forEach(function (block) {\n if (isList(block.type)) {\n listBlocks.push(block);\n } else {\n if (listBlocks.length > 0) {\n var listHtml = getListMarkup(listBlocks, entityMap, hashtagConfig, customEntityTransform); // eslint-disable-line max-len\n\n html.push(listHtml);\n listBlocks = [];\n }\n\n var blockHtml = getBlockMarkup(block, entityMap, hashtagConfig, directional, customEntityTransform);\n html.push(blockHtml);\n }\n });\n\n if (listBlocks.length > 0) {\n var listHtml = getListMarkup(listBlocks, entityMap, hashtagConfig, directional, customEntityTransform); // eslint-disable-line max-len\n\n html.push(listHtml);\n listBlocks = [];\n }\n }\n }\n\n return html.join('');\n }\n\n return draftToHtml;\n\n})));\n"],"sourceRoot":""}