{"version":3,"file":"static/js/main.3dced552.js","mappings":"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","sources":["../node_modules/draft-js/lib/AtomicBlockUtils.js","../node_modules/draft-js/lib/BlockMapBuilder.js","../node_modules/draft-js/lib/BlockTree.js","../node_modules/draft-js/lib/CharacterMetadata.js","../node_modules/draft-js/lib/CompositeDraftDecorator.js","../node_modules/draft-js/lib/ContentBlock.js","../node_modules/draft-js/lib/ContentBlockNode.js","../node_modules/draft-js/lib/ContentState.js","../node_modules/draft-js/lib/ContentStateInlineStyle.js","../node_modules/draft-js/lib/DOMObserver.js","../node_modules/draft-js/lib/DefaultDraftBlockRenderMap.js","../node_modules/draft-js/lib/DefaultDraftInlineStyle.js","../node_modules/draft-js/lib/Draft.js","../node_modules/draft-js/lib/DraftEditor.react.js","../node_modules/draft-js/lib/DraftEditorBlock.react.js","../node_modules/draft-js/lib/DraftEditorBlockNode.react.js","../node_modules/draft-js/lib/DraftEditorCompositionHandler.js","../node_modules/draft-js/lib/DraftEditorContents-core.react.js","../node_modules/draft-js/lib/DraftEditorContents.react.js","../node_modules/draft-js/lib/DraftEditorContentsExperimental.react.js","../node_modules/draft-js/lib/DraftEditorDecoratedLeaves.react.js","../node_modules/draft-js/lib/DraftEditorDragHandler.js","../node_modules/draft-js/lib/DraftEditorEditHandler.js","../node_modules/draft-js/lib/DraftEditorFlushControlled.js","../node_modules/draft-js/lib/DraftEditorLeaf.react.js","../node_modules/draft-js/lib/DraftEditorNode.react.js","../node_modules/draft-js/lib/DraftEditorPlaceholder.react.js","../node_modules/draft-js/lib/DraftEditorTextNode.react.js","../node_modules/draft-js/lib/DraftEffects.js","../node_modules/draft-js/lib/DraftEntity.js","../node_modules/draft-js/lib/DraftEntityInstance.js","../node_modules/draft-js/lib/DraftEntitySegments.js","../node_modules/draft-js/lib/DraftJsDebugLogging.js","../node_modules/draft-js/lib/DraftModifier.js","../node_modules/draft-js/lib/DraftOffsetKey.js","../node_modules/draft-js/lib/DraftPasteProcessor.js","../node_modules/draft-js/lib/DraftRemovableWord.js","../node_modules/draft-js/lib/DraftStringKey.js","../node_modules/draft-js/lib/DraftTreeAdapter.js","../node_modules/draft-js/lib/DraftTreeInvariants.js","../node_modules/draft-js/lib/EditorBidiService.js","../node_modules/draft-js/lib/EditorState.js","../node_modules/draft-js/lib/KeyBindingUtil.js","../node_modules/draft-js/lib/RichTextEditorUtil.js","../node_modules/draft-js/lib/SecondaryClipboard.js","../node_modules/draft-js/lib/SelectionState.js","../node_modules/draft-js/lib/adjustBlockDepthForContentState.js","../node_modules/draft-js/lib/applyEntityToContentBlock.js","../node_modules/draft-js/lib/applyEntityToContentState.js","../node_modules/draft-js/lib/convertFromDraftStateToRaw.js","../node_modules/draft-js/lib/convertFromHTMLToContentBlocks.js","../node_modules/draft-js/lib/convertFromRawToDraftState.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/draftKeyUtils.js","../node_modules/draft-js/lib/editOnBeforeInput.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/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/editOnPaste.js","../node_modules/draft-js/lib/editOnSelect.js","../node_modules/draft-js/lib/encodeEntityRanges.js","../node_modules/draft-js/lib/encodeInlineStyleRanges.js","../node_modules/draft-js/lib/expandRangeToStartOfLine.js","../node_modules/draft-js/lib/findAncestorOffsetKey.js","../node_modules/draft-js/lib/findRangesImmutable.js","../node_modules/draft-js/lib/generateRandomKey.js","../node_modules/draft-js/lib/getCharacterRemovalRange.js","../node_modules/draft-js/lib/getContentEditableContainer.js","../node_modules/draft-js/lib/getContentStateFragment.js","../node_modules/draft-js/lib/getCorrectDocumentFromNode.js","../node_modules/draft-js/lib/getDefaultKeyBinding.js","../node_modules/draft-js/lib/getDraftEditorSelection.js","../node_modules/draft-js/lib/getDraftEditorSelectionWithNodes.js","../node_modules/draft-js/lib/getEntityKeyForSelection.js","../node_modules/draft-js/lib/getFragmentFromSelection.js","../node_modules/draft-js/lib/getNextDelimiterBlockKey.js","../node_modules/draft-js/lib/getOwnObjectValues.js","../node_modules/draft-js/lib/getRangeBoundingClientRect.js","../node_modules/draft-js/lib/getRangeClientRects.js","../node_modules/draft-js/lib/getRangesForDraftEntity.js","../node_modules/draft-js/lib/getSafeBodyFromHTML.js","../node_modules/draft-js/lib/getSelectionOffsetKeyForNode.js","../node_modules/draft-js/lib/getTextContentFromFiles.js","../node_modules/draft-js/lib/getUpdatedSelectionState.js","../node_modules/draft-js/lib/getVisibleSelectionRect.js","../node_modules/draft-js/lib/getWindowForNode.js","../node_modules/draft-js/lib/gkx.js","../node_modules/draft-js/lib/insertFragmentIntoContentState.js","../node_modules/draft-js/lib/insertIntoList.js","../node_modules/draft-js/lib/insertTextIntoContentState.js","../node_modules/draft-js/lib/isElement.js","../node_modules/draft-js/lib/isEventHandled.js","../node_modules/draft-js/lib/isHTMLAnchorElement.js","../node_modules/draft-js/lib/isHTMLBRElement.js","../node_modules/draft-js/lib/isHTMLElement.js","../node_modules/draft-js/lib/isHTMLImageElement.js","../node_modules/draft-js/lib/isInstanceOfNode.js","../node_modules/draft-js/lib/isSelectionAtLeafStart.js","../node_modules/draft-js/lib/isSoftNewlineEvent.js","../node_modules/draft-js/lib/keyCommandBackspaceToStartOfLine.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/keyCommandPlainBackspace.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/modifyBlockForContentState.js","../node_modules/draft-js/lib/moveBlockInContentState.js","../node_modules/draft-js/lib/moveSelectionBackward.js","../node_modules/draft-js/lib/moveSelectionForward.js","../node_modules/draft-js/lib/randomizeBlockMapKeys.js","../node_modules/draft-js/lib/removeEntitiesAtEdges.js","../node_modules/draft-js/lib/removeRangeFromContentState.js","../node_modules/draft-js/lib/removeTextWithStrategy.js","../node_modules/draft-js/lib/sanitizeDraftText.js","../node_modules/draft-js/lib/setDraftEditorSelection.js","../node_modules/draft-js/lib/splitBlockInContentState.js","../node_modules/draft-js/lib/splitTextIntoTextBlocks.js","../node_modules/draft-js/lib/uuid.js","../node_modules/fbjs/lib/DataTransfer.js","../node_modules/fbjs/lib/Keys.js","../node_modules/fbjs/lib/PhotosMimeType.js","../node_modules/fbjs/lib/Scroll.js","../node_modules/fbjs/lib/Style.js","../node_modules/fbjs/lib/TokenizeUtil.js","../node_modules/fbjs/lib/URI.js","../node_modules/fbjs/lib/UnicodeBidi.js","../node_modules/fbjs/lib/UnicodeBidiDirection.js","../node_modules/fbjs/lib/UnicodeBidiService.js","../node_modules/fbjs/lib/UnicodeUtils.js","../node_modules/fbjs/lib/UserAgent.js","../node_modules/fbjs/lib/UserAgentData.js","../node_modules/fbjs/lib/VersionRange.js","../node_modules/fbjs/lib/camelize.js","../node_modules/fbjs/lib/containsNode.js","../node_modules/fbjs/lib/createArrayFromMixed.js","../node_modules/fbjs/lib/cx.js","../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/getActiveElement.js","../node_modules/fbjs/lib/getDocumentScrollElement.js","../node_modules/fbjs/lib/getElementPosition.js","../node_modules/fbjs/lib/getElementRect.js","../node_modules/fbjs/lib/getScrollPosition.js","../node_modules/fbjs/lib/getStyleProperty.js","../node_modules/fbjs/lib/getUnboundedScrollPosition.js","../node_modules/fbjs/lib/getViewportDimensions.js","../node_modules/fbjs/lib/hyphenate.js","../node_modules/fbjs/lib/invariant.js","../node_modules/fbjs/lib/isNode.js","../node_modules/fbjs/lib/isTextNode.js","../node_modules/fbjs/lib/joinClasses.js","../node_modules/fbjs/lib/mapObject.js","../node_modules/fbjs/lib/memoizeStringOnly.js","../node_modules/fbjs/lib/nullthrows.js","../node_modules/fbjs/lib/setImmediate.js","../node_modules/fbjs/lib/warning.js","../node_modules/immutable/dist/immutable.js","../node_modules/linkify-it/index.js","../node_modules/linkify-it/lib/re.js","../node_modules/object-assign/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/setimmediate/setImmediate.js","../node_modules/ua-parser-js/src/ua-parser.js","../node_modules/uc.micro/categories/Cc/regex.js","../node_modules/uc.micro/categories/P/regex.js","../node_modules/uc.micro/categories/Z/regex.js","../node_modules/uc.micro/properties/Any/regex.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@draft-js-plugins/editor/lib/index.esm.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/escapeRegExp.js","../node_modules/lodash-es/_trimmedEndIndex.js","../node_modules/lodash-es/_baseTrim.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/toNumber.js","../node_modules/lodash-es/toFinite.js","../node_modules/lodash-es/toInteger.js","../node_modules/lodash-es/before.js","../node_modules/lodash-es/once.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/react-popper/lib/esm/utils.js","../node_modules/react-popper/lib/esm/usePopper.js","../node_modules/@draft-js-plugins/mention/lib/index.esm.js","../node_modules/@draft-js-plugins/hashtag/lib/index.esm.js","../node_modules/@draft-js-plugins/linkify/lib/index.esm.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","Components/CommentTextBox/Components/Entry/index.js","Components/CommentTextBox/Components/Mentioned/index.js","webpack://react-components/./src/Components/CommentTextBox/mentionsStyles.module.css?739d","Components/CommentTextBox/index.js","index.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 * @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 BlockMapBuilder = require(\"./BlockMapBuilder\");\n\nvar CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar ContentBlock = require(\"./ContentBlock\");\n\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar generateRandomKey = require(\"./generateRandomKey\");\n\nvar gkx = require(\"./gkx\");\n\nvar Immutable = require(\"immutable\");\n\nvar moveBlockInContentState = require(\"./moveBlockInContentState\");\n\nvar experimentalTreeDataSupport = gkx('draft_tree_data_support');\nvar ContentBlockRecord = experimentalTreeDataSupport ? ContentBlockNode : ContentBlock;\nvar List = Immutable.List,\n Repeat = Immutable.Repeat;\nvar AtomicBlockUtils = {\n insertAtomicBlock: function insertAtomicBlock(editorState, entityKey, character) {\n var contentState = editorState.getCurrentContent();\n var selectionState = editorState.getSelection();\n var afterRemoval = DraftModifier.removeRange(contentState, selectionState, 'backward');\n var targetSelection = afterRemoval.getSelectionAfter();\n var afterSplit = DraftModifier.splitBlock(afterRemoval, targetSelection);\n var insertionTarget = afterSplit.getSelectionAfter();\n var asAtomicBlock = DraftModifier.setBlockType(afterSplit, insertionTarget, 'atomic');\n var charData = CharacterMetadata.create({\n entity: entityKey\n });\n var atomicBlockConfig = {\n key: generateRandomKey(),\n type: 'atomic',\n text: character,\n characterList: List(Repeat(charData, character.length))\n };\n var atomicDividerBlockConfig = {\n key: generateRandomKey(),\n type: 'unstyled'\n };\n\n if (experimentalTreeDataSupport) {\n atomicBlockConfig = _objectSpread({}, atomicBlockConfig, {\n nextSibling: atomicDividerBlockConfig.key\n });\n atomicDividerBlockConfig = _objectSpread({}, atomicDividerBlockConfig, {\n prevSibling: atomicBlockConfig.key\n });\n }\n\n var fragmentArray = [new ContentBlockRecord(atomicBlockConfig), new ContentBlockRecord(atomicDividerBlockConfig)];\n var fragment = BlockMapBuilder.createFromArray(fragmentArray);\n var withAtomicBlock = DraftModifier.replaceWithFragment(asAtomicBlock, insertionTarget, fragment);\n var newContent = withAtomicBlock.merge({\n selectionBefore: selectionState,\n selectionAfter: withAtomicBlock.getSelectionAfter().set('hasFocus', true)\n });\n return EditorState.push(editorState, newContent, 'insert-fragment');\n },\n moveAtomicBlock: function moveAtomicBlock(editorState, atomicBlock, targetRange, insertionMode) {\n var contentState = editorState.getCurrentContent();\n var selectionState = editorState.getSelection();\n var withMovedAtomicBlock;\n\n if (insertionMode === 'before' || insertionMode === 'after') {\n var targetBlock = contentState.getBlockForKey(insertionMode === 'before' ? targetRange.getStartKey() : targetRange.getEndKey());\n withMovedAtomicBlock = moveBlockInContentState(contentState, atomicBlock, targetBlock, insertionMode);\n } else {\n var afterRemoval = DraftModifier.removeRange(contentState, targetRange, 'backward');\n var selectionAfterRemoval = afterRemoval.getSelectionAfter();\n\n var _targetBlock = afterRemoval.getBlockForKey(selectionAfterRemoval.getFocusKey());\n\n if (selectionAfterRemoval.getStartOffset() === 0) {\n withMovedAtomicBlock = moveBlockInContentState(afterRemoval, atomicBlock, _targetBlock, 'before');\n } else if (selectionAfterRemoval.getEndOffset() === _targetBlock.getLength()) {\n withMovedAtomicBlock = moveBlockInContentState(afterRemoval, atomicBlock, _targetBlock, 'after');\n } else {\n var afterSplit = DraftModifier.splitBlock(afterRemoval, selectionAfterRemoval);\n var selectionAfterSplit = afterSplit.getSelectionAfter();\n\n var _targetBlock2 = afterSplit.getBlockForKey(selectionAfterSplit.getFocusKey());\n\n withMovedAtomicBlock = moveBlockInContentState(afterSplit, atomicBlock, _targetBlock2, 'before');\n }\n }\n\n var newContent = withMovedAtomicBlock.merge({\n selectionBefore: selectionState,\n selectionAfter: withMovedAtomicBlock.getSelectionAfter().set('hasFocus', true)\n });\n return EditorState.push(editorState, newContent, 'move-block');\n }\n};\nmodule.exports = AtomicBlockUtils;","/**\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\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 _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar findRangesImmutable = require(\"./findRangesImmutable\");\n\nvar getOwnObjectValues = require(\"./getOwnObjectValues\");\n\nvar Immutable = require(\"immutable\");\n\nvar List = Immutable.List,\n Repeat = Immutable.Repeat,\n Record = Immutable.Record;\n\nvar returnTrue = function returnTrue() {\n return true;\n};\n\nvar defaultLeafRange = {\n start: null,\n end: null\n};\nvar LeafRange = Record(defaultLeafRange);\nvar defaultDecoratorRange = {\n start: null,\n end: null,\n decoratorKey: null,\n leaves: null\n};\nvar DecoratorRange = Record(defaultDecoratorRange);\nvar BlockTree = {\n /**\n * Generate a block tree for a given ContentBlock/decorator pair.\n */\n generate: function generate(contentState, block, decorator) {\n var textLength = block.getLength();\n\n if (!textLength) {\n return List.of(new DecoratorRange({\n start: 0,\n end: 0,\n decoratorKey: null,\n leaves: List.of(new LeafRange({\n start: 0,\n end: 0\n }))\n }));\n }\n\n var leafSets = [];\n var decorations = decorator ? decorator.getDecorations(block, contentState) : List(Repeat(null, textLength));\n var chars = block.getCharacterList();\n findRangesImmutable(decorations, areEqual, returnTrue, function (start, end) {\n leafSets.push(new DecoratorRange({\n start: start,\n end: end,\n decoratorKey: decorations.get(start),\n leaves: generateLeaves(chars.slice(start, end).toList(), start)\n }));\n });\n return List(leafSets);\n },\n fromJS: function fromJS(_ref) {\n var leaves = _ref.leaves,\n other = _objectWithoutPropertiesLoose(_ref, [\"leaves\"]);\n\n return new DecoratorRange(_objectSpread({}, other, {\n leaves: leaves != null ? List(Array.isArray(leaves) ? leaves : getOwnObjectValues(leaves)).map(function (leaf) {\n return LeafRange(leaf);\n }) : null\n }));\n }\n};\n/**\n * Generate LeafRange records for a given character list.\n */\n\nfunction generateLeaves(characters, offset) {\n var leaves = [];\n var inlineStyles = characters.map(function (c) {\n return c.getStyle();\n }).toList();\n findRangesImmutable(inlineStyles, areEqual, returnTrue, function (start, end) {\n leaves.push(new LeafRange({\n start: start + offset,\n end: end + offset\n }));\n });\n return List(leaves);\n}\n\nfunction areEqual(a, b) {\n return a === b;\n}\n\nmodule.exports = BlockTree;","/**\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'use strict';\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 Immutable = require(\"immutable\");\n\nvar List = Immutable.List;\nvar DELIMITER = '.';\n/**\n * A CompositeDraftDecorator traverses through a list of DraftDecorator\n * instances to identify sections of a ContentBlock that should be rendered\n * in a \"decorated\" manner. For example, hashtags, mentions, and links may\n * be intended to stand out visually, be rendered as anchors, etc.\n *\n * The list of decorators supplied to the constructor will be used in the\n * order they are provided. This allows the caller to specify a priority for\n * string matching, in case of match collisions among decorators.\n *\n * For instance, I may have a link with a `#` in its text. Though this section\n * of text may match our hashtag decorator, it should not be treated as a\n * hashtag. I should therefore list my link DraftDecorator\n * before my hashtag DraftDecorator when constructing this composite\n * decorator instance.\n *\n * Thus, when a collision like this is encountered, the earlier match is\n * preserved and the new match is discarded.\n */\n\nvar CompositeDraftDecorator = /*#__PURE__*/function () {\n function CompositeDraftDecorator(decorators) {\n _defineProperty(this, \"_decorators\", void 0);\n\n // Copy the decorator array, since we use this array order to determine\n // precedence of decoration matching. If the array is mutated externally,\n // we don't want to be affected here.\n this._decorators = decorators.slice();\n }\n\n var _proto = CompositeDraftDecorator.prototype;\n\n _proto.getDecorations = function getDecorations(block, contentState) {\n var decorations = Array(block.getText().length).fill(null);\n\n this._decorators.forEach(function (\n /*object*/\n decorator,\n /*number*/\n ii) {\n var counter = 0;\n var strategy = decorator.strategy;\n\n var callback = function callback(\n /*number*/\n start,\n /*number*/\n end) {\n // Find out if any of our matching range is already occupied\n // by another decorator. If so, discard the match. Otherwise, store\n // the component key for rendering.\n if (canOccupySlice(decorations, start, end)) {\n occupySlice(decorations, start, end, ii + DELIMITER + counter);\n counter++;\n }\n };\n\n strategy(block, callback, contentState);\n });\n\n return List(decorations);\n };\n\n _proto.getComponentForKey = function getComponentForKey(key) {\n var componentKey = parseInt(key.split(DELIMITER)[0], 10);\n return this._decorators[componentKey].component;\n };\n\n _proto.getPropsForKey = function getPropsForKey(key) {\n var componentKey = parseInt(key.split(DELIMITER)[0], 10);\n return this._decorators[componentKey].props;\n };\n\n return CompositeDraftDecorator;\n}();\n/**\n * Determine whether we can occupy the specified slice of the decorations\n * array.\n */\n\n\nfunction canOccupySlice(decorations, start, end) {\n for (var ii = start; ii < end; ii++) {\n if (decorations[ii] != null) {\n return false;\n }\n }\n\n return true;\n}\n/**\n * Splice the specified component into our decoration array at the desired\n * range.\n */\n\n\nfunction occupySlice(targetArr, start, end, componentKey) {\n for (var ii = start; ii < end; ii++) {\n targetArr[ii] = componentKey;\n }\n}\n\nmodule.exports = CompositeDraftDecorator;","/**\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;","/**\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\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 CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar _require = require(\"immutable\"),\n Map = _require.Map;\n\nvar ContentStateInlineStyle = {\n add: function add(contentState, selectionState, inlineStyle) {\n return modifyInlineStyle(contentState, selectionState, inlineStyle, true);\n },\n remove: function remove(contentState, selectionState, inlineStyle) {\n return modifyInlineStyle(contentState, selectionState, inlineStyle, false);\n }\n};\n\nfunction modifyInlineStyle(contentState, selectionState, inlineStyle, addOrRemove) {\n var blockMap = contentState.getBlockMap();\n var startKey = selectionState.getStartKey();\n var startOffset = selectionState.getStartOffset();\n var endKey = selectionState.getEndKey();\n var endOffset = selectionState.getEndOffset();\n var newBlocks = blockMap.skipUntil(function (_, k) {\n return k === startKey;\n }).takeUntil(function (_, k) {\n return k === endKey;\n }).concat(Map([[endKey, blockMap.get(endKey)]])).map(function (block, blockKey) {\n var sliceStart;\n var sliceEnd;\n\n if (startKey === endKey) {\n sliceStart = startOffset;\n sliceEnd = endOffset;\n } else {\n sliceStart = blockKey === startKey ? startOffset : 0;\n sliceEnd = blockKey === endKey ? endOffset : block.getLength();\n }\n\n var chars = block.getCharacterList();\n var current;\n\n while (sliceStart < sliceEnd) {\n current = chars.get(sliceStart);\n chars = chars.set(sliceStart, addOrRemove ? CharacterMetadata.applyStyle(current, inlineStyle) : CharacterMetadata.removeStyle(current, inlineStyle));\n sliceStart++;\n }\n\n return block.set('characterList', chars);\n });\n return contentState.merge({\n blockMap: blockMap.merge(newBlocks),\n selectionBefore: selectionState,\n selectionAfter: selectionState\n });\n}\n\nmodule.exports = ContentStateInlineStyle;","/**\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 _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 UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar findAncestorOffsetKey = require(\"./findAncestorOffsetKey\");\n\nvar getWindowForNode = require(\"./getWindowForNode\");\n\nvar Immutable = require(\"immutable\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\nvar Map = Immutable.Map;\n// Heavily based on Prosemirror's DOMObserver https://github.com/ProseMirror/prosemirror-view/blob/master/src/domobserver.js\nvar DOM_OBSERVER_OPTIONS = {\n subtree: true,\n characterData: true,\n childList: true,\n characterDataOldValue: false,\n attributes: false\n}; // IE11 has very broken mutation observers, so we also listen to DOMCharacterDataModified\n\nvar USE_CHAR_DATA = UserAgent.isBrowser('IE <= 11');\n\nvar DOMObserver = /*#__PURE__*/function () {\n function DOMObserver(container) {\n var _this = this;\n\n _defineProperty(this, \"observer\", void 0);\n\n _defineProperty(this, \"container\", void 0);\n\n _defineProperty(this, \"mutations\", void 0);\n\n _defineProperty(this, \"onCharData\", void 0);\n\n this.container = container;\n this.mutations = Map();\n var containerWindow = getWindowForNode(container);\n\n if (containerWindow.MutationObserver && !USE_CHAR_DATA) {\n this.observer = new containerWindow.MutationObserver(function (mutations) {\n return _this.registerMutations(mutations);\n });\n } else {\n this.onCharData = function (e) {\n !(e.target instanceof Node) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected target to be an instance of Node') : invariant(false) : void 0;\n\n _this.registerMutation({\n type: 'characterData',\n target: e.target\n });\n };\n }\n }\n\n var _proto = DOMObserver.prototype;\n\n _proto.start = function start() {\n if (this.observer) {\n this.observer.observe(this.container, DOM_OBSERVER_OPTIONS);\n } else {\n /* $FlowFixMe[incompatible-call] (>=0.68.0 site=www,mobile) This event\n * type is not defined by Flow's standard library */\n this.container.addEventListener('DOMCharacterDataModified', this.onCharData);\n }\n };\n\n _proto.stopAndFlushMutations = function stopAndFlushMutations() {\n var observer = this.observer;\n\n if (observer) {\n this.registerMutations(observer.takeRecords());\n observer.disconnect();\n } else {\n /* $FlowFixMe[incompatible-call] (>=0.68.0 site=www,mobile) This event\n * type is not defined by Flow's standard library */\n this.container.removeEventListener('DOMCharacterDataModified', this.onCharData);\n }\n\n var mutations = this.mutations;\n this.mutations = Map();\n return mutations;\n };\n\n _proto.registerMutations = function registerMutations(mutations) {\n for (var i = 0; i < mutations.length; i++) {\n this.registerMutation(mutations[i]);\n }\n };\n\n _proto.getMutationTextContent = function getMutationTextContent(mutation) {\n var type = mutation.type,\n target = mutation.target,\n removedNodes = mutation.removedNodes;\n\n if (type === 'characterData') {\n // When `textContent` is '', there is a race condition that makes\n // getting the offsetKey from the target not possible.\n // These events are also followed by a `childList`, which is the one\n // we are able to retrieve the offsetKey and apply the '' text.\n if (target.textContent !== '') {\n // IE 11 considers the enter keypress that concludes the composition\n // as an input char. This strips that newline character so the draft\n // state does not receive spurious newlines.\n if (USE_CHAR_DATA) {\n return target.textContent.replace('\\n', '');\n }\n\n return target.textContent;\n }\n } else if (type === 'childList') {\n if (removedNodes && removedNodes.length) {\n // `characterData` events won't happen or are ignored when\n // removing the last character of a leaf node, what happens\n // instead is a `childList` event with a `removedNodes` array.\n // For this case the textContent should be '' and\n // `DraftModifier.replaceText` will make sure the content is\n // updated properly.\n return '';\n } else if (target.textContent !== '') {\n // Typing Chinese in an empty block in MS Edge results in a\n // `childList` event with non-empty textContent.\n // See https://github.com/facebook/draft-js/issues/2082\n return target.textContent;\n }\n }\n\n return null;\n };\n\n _proto.registerMutation = function registerMutation(mutation) {\n var textContent = this.getMutationTextContent(mutation);\n\n if (textContent != null) {\n var offsetKey = nullthrows(findAncestorOffsetKey(mutation.target));\n this.mutations = this.mutations.set(offsetKey, textContent);\n }\n };\n\n return DOMObserver;\n}();\n\nmodule.exports = DOMObserver;","/**\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\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 */\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 * @preventMunge\n * @emails oncall+draft_js\n */\n'use strict';\n\nvar _assign = require(\"object-assign\");\n\nfunction _extends() { _extends = _assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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 _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\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 DefaultDraftBlockRenderMap = require(\"./DefaultDraftBlockRenderMap\");\n\nvar DefaultDraftInlineStyle = require(\"./DefaultDraftInlineStyle\");\n\nvar DraftEditorCompositionHandler = require(\"./DraftEditorCompositionHandler\");\n\nvar DraftEditorContents = require(\"./DraftEditorContents.react\");\n\nvar DraftEditorDragHandler = require(\"./DraftEditorDragHandler\");\n\nvar DraftEditorEditHandler = require(\"./DraftEditorEditHandler\");\n\nvar flushControlled = require(\"./DraftEditorFlushControlled\");\n\nvar DraftEditorPlaceholder = require(\"./DraftEditorPlaceholder.react\");\n\nvar DraftEffects = require(\"./DraftEffects\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar React = require(\"react\");\n\nvar Scroll = require(\"fbjs/lib/Scroll\");\n\nvar Style = require(\"fbjs/lib/Style\");\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar cx = require(\"fbjs/lib/cx\");\n\nvar generateRandomKey = require(\"./generateRandomKey\");\n\nvar getDefaultKeyBinding = require(\"./getDefaultKeyBinding\");\n\nvar getScrollPosition = require(\"fbjs/lib/getScrollPosition\");\n\nvar gkx = require(\"./gkx\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar isHTMLElement = require(\"./isHTMLElement\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\nvar isIE = UserAgent.isBrowser('IE'); // IE does not support the `input` event on contentEditable, so we can't\n// observe spellcheck behavior.\n\nvar allowSpellCheck = !isIE; // Define a set of handler objects to correspond to each possible `mode`\n// of editor behavior.\n\nvar handlerMap = {\n edit: DraftEditorEditHandler,\n composite: DraftEditorCompositionHandler,\n drag: DraftEditorDragHandler,\n cut: null,\n render: null\n};\nvar didInitODS = false;\n\nvar UpdateDraftEditorFlags = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(UpdateDraftEditorFlags, _React$Component);\n\n function UpdateDraftEditorFlags() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = UpdateDraftEditorFlags.prototype;\n\n _proto.render = function render() {\n return null;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this._update();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this._update();\n };\n\n _proto._update = function _update() {\n var editor = this.props.editor;\n /**\n * Sometimes a render triggers a 'focus' or other event, and that will\n * schedule a second render pass.\n * In order to make sure the second render pass gets the latest editor\n * state, we update it here.\n * Example:\n * render #1\n * +\n * |\n * | cWU -> Nothing ... latestEditorState = STALE_STATE :(\n * |\n * | render -> this.props.editorState = FRESH_STATE\n * | + *and* set latestEditorState = FRESH_STATE\n * |\n * | |\n * | +--> triggers 'focus' event, calling 'handleFocus' with latestEditorState\n * | +\n * | |\n * +>cdU -> latestEditorState = FRESH_STATE | the 'handleFocus' call schedules render #2\n * | with latestEditorState, which is FRESH_STATE\n * |\n * render #2 <--------------------------------------+\n * +\n * |\n * | cwU -> nothing updates\n * |\n * | render -> this.props.editorState = FRESH_STATE which was passed in above\n * |\n * +>cdU fires and resets latestEditorState = FRESH_STATE\n * ---\n * Note that if we don't set latestEditorState in 'render' in the above\n * diagram, then STALE_STATE gets passed to render #2.\n */\n\n editor._latestEditorState = this.props.editorState;\n /**\n * The reason we set this 'blockSelectEvents' flag is that IE will fire a\n * 'selectionChange' event when we programmatically change the selection,\n * meaning it would trigger a new select event while we are in the middle\n * of updating.\n * We found that the 'selection.addRange' was what triggered the stray\n * selectionchange event in IE.\n * To be clear - we have not been able to reproduce specific bugs related\n * to this stray selection event, but have recorded logs that some\n * conditions do cause it to get bumped into during editOnSelect.\n */\n\n editor._blockSelectEvents = true;\n };\n\n return UpdateDraftEditorFlags;\n}(React.Component);\n/**\n * `DraftEditor` is the root editor component. It composes a `contentEditable`\n * div, and provides a wide variety of useful function props for managing the\n * state of the editor. See `DraftEditorProps` for details.\n */\n\n\nvar DraftEditor = /*#__PURE__*/function (_React$Component2) {\n _inheritsLoose(DraftEditor, _React$Component2);\n\n /**\n * Define proxies that can route events to the current handler.\n */\n function DraftEditor(props) {\n var _this;\n\n _this = _React$Component2.call(this, props) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"_blockSelectEvents\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_clipboard\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_handler\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_dragCount\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_internalDrag\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_editorKey\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_placeholderAccessibilityID\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_latestEditorState\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_latestCommittedEditorState\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_pendingStateFromBeforeInput\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onBeforeInput\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onBlur\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onCharacterData\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onCompositionEnd\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onCompositionStart\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onCopy\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onCut\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onDragEnd\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onDragOver\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onDragStart\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onDrop\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onInput\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onFocus\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onKeyDown\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onKeyPress\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onKeyUp\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onMouseDown\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onMouseUp\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onPaste\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onSelect\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"editor\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"editorContainer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"focus\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"blur\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"setMode\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"exitCurrentMode\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"restoreEditorDOM\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"setClipboard\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"getClipboard\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"getEditorKey\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"update\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"onDragEnter\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"onDragLeave\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_handleEditorContainerRef\", function (node) {\n _this.editorContainer = node; // Instead of having a direct ref on the child, we'll grab it here.\n // This is safe as long as the rendered structure is static (which it is).\n // This lets the child support ref={props.editorRef} without merging refs.\n\n _this.editor = node !== null ? node.firstChild : null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"focus\", function (scrollPosition) {\n var editorState = _this.props.editorState;\n var alreadyHasFocus = editorState.getSelection().getHasFocus();\n var editorNode = _this.editor;\n\n if (!editorNode) {\n // once in a while people call 'focus' in a setTimeout, and the node has\n // been deleted, so it can be null in that case.\n return;\n }\n\n var scrollParent = Style.getScrollParent(editorNode);\n\n var _ref = scrollPosition || getScrollPosition(scrollParent),\n x = _ref.x,\n y = _ref.y;\n\n !isHTMLElement(editorNode) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'editorNode is not an HTMLElement') : invariant(false) : void 0;\n editorNode.focus(); // Restore scroll position\n\n if (scrollParent === window) {\n window.scrollTo(x, y);\n } else {\n Scroll.setTop(scrollParent, y);\n } // On Chrome and Safari, calling focus on contenteditable focuses the\n // cursor at the first character. This is something you don't expect when\n // you're clicking on an input element but not directly on a character.\n // Put the cursor back where it was before the blur.\n\n\n if (!alreadyHasFocus) {\n _this.update(EditorState.forceSelection(editorState, editorState.getSelection()));\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"blur\", function () {\n var editorNode = _this.editor;\n\n if (!editorNode) {\n return;\n }\n\n !isHTMLElement(editorNode) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'editorNode is not an HTMLElement') : invariant(false) : void 0;\n editorNode.blur();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setMode\", function (mode) {\n var _this$props = _this.props,\n onPaste = _this$props.onPaste,\n onCut = _this$props.onCut,\n onCopy = _this$props.onCopy;\n\n var editHandler = _objectSpread({}, handlerMap.edit);\n\n if (onPaste) {\n /* $FlowFixMe[incompatible-type] (>=0.117.0 site=www,mobile) This comment\n * suppresses an error found when Flow v0.117 was deployed. To see the\n * error delete this comment and run Flow. */\n editHandler.onPaste = onPaste;\n }\n\n if (onCut) {\n editHandler.onCut = onCut;\n }\n\n if (onCopy) {\n editHandler.onCopy = onCopy;\n }\n\n var handler = _objectSpread({}, handlerMap, {\n edit: editHandler\n });\n\n _this._handler = handler[mode];\n });\n\n _defineProperty(_assertThisInitialized(_this), \"exitCurrentMode\", function () {\n _this.setMode('edit');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"restoreEditorDOM\", function (scrollPosition) {\n _this.setState({\n contentsKey: _this.state.contentsKey + 1\n }, function () {\n _this.focus(scrollPosition);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setClipboard\", function (clipboard) {\n _this._clipboard = clipboard;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getClipboard\", function () {\n return _this._clipboard;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"update\", function (editorState) {\n _this._latestEditorState = editorState;\n\n _this.props.onChange(editorState);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragEnter\", function () {\n _this._dragCount++;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragLeave\", function () {\n _this._dragCount--;\n\n if (_this._dragCount === 0) {\n _this.exitCurrentMode();\n }\n });\n\n _this._blockSelectEvents = false;\n _this._clipboard = null;\n _this._handler = null;\n _this._dragCount = 0;\n _this._editorKey = props.editorKey || generateRandomKey();\n _this._placeholderAccessibilityID = 'placeholder-' + _this._editorKey;\n _this._latestEditorState = props.editorState;\n _this._latestCommittedEditorState = props.editorState;\n _this._onBeforeInput = _this._buildHandler('onBeforeInput');\n _this._onBlur = _this._buildHandler('onBlur');\n _this._onCharacterData = _this._buildHandler('onCharacterData');\n _this._onCompositionEnd = _this._buildHandler('onCompositionEnd');\n _this._onCompositionStart = _this._buildHandler('onCompositionStart');\n _this._onCopy = _this._buildHandler('onCopy');\n _this._onCut = _this._buildHandler('onCut');\n _this._onDragEnd = _this._buildHandler('onDragEnd');\n _this._onDragOver = _this._buildHandler('onDragOver');\n _this._onDragStart = _this._buildHandler('onDragStart');\n _this._onDrop = _this._buildHandler('onDrop');\n _this._onInput = _this._buildHandler('onInput');\n _this._onFocus = _this._buildHandler('onFocus');\n _this._onKeyDown = _this._buildHandler('onKeyDown');\n _this._onKeyPress = _this._buildHandler('onKeyPress');\n _this._onKeyUp = _this._buildHandler('onKeyUp');\n _this._onMouseDown = _this._buildHandler('onMouseDown');\n _this._onMouseUp = _this._buildHandler('onMouseUp');\n _this._onPaste = _this._buildHandler('onPaste');\n _this._onSelect = _this._buildHandler('onSelect');\n\n _this.getEditorKey = function () {\n return _this._editorKey;\n };\n\n if (process.env.NODE_ENV !== \"production\") {\n ['onDownArrow', 'onEscape', 'onLeftArrow', 'onRightArrow', 'onTab', 'onUpArrow'].forEach(function (propName) {\n if (props.hasOwnProperty(propName)) {\n // eslint-disable-next-line no-console\n console.warn(\"Supplying an `\".concat(propName, \"` prop to `DraftEditor` has \") + 'been deprecated. If your handler needs access to the keyboard ' + 'event, supply a custom `keyBindingFn` prop that falls back to ' + 'the default one (eg. https://is.gd/wHKQ3W).');\n }\n });\n } // See `restoreEditorDOM()`.\n\n\n _this.state = {\n contentsKey: 0\n };\n return _this;\n }\n /**\n * Build a method that will pass the event to the specified handler method.\n * This allows us to look up the correct handler function for the current\n * editor mode, if any has been specified.\n */\n\n\n var _proto2 = DraftEditor.prototype;\n\n _proto2._buildHandler = function _buildHandler(eventName) {\n var _this2 = this;\n\n // Wrap event handlers in `flushControlled`. In sync mode, this is\n // effectively a no-op. In async mode, this ensures all updates scheduled\n // inside the handler are flushed before React yields to the browser.\n return function (e) {\n if (!_this2.props.readOnly) {\n var method = _this2._handler && _this2._handler[eventName];\n\n if (method) {\n if (flushControlled) {\n flushControlled(function () {\n return method(_this2, e);\n });\n } else {\n method(_this2, e);\n }\n }\n }\n };\n };\n\n _proto2._showPlaceholder = function _showPlaceholder() {\n return !!this.props.placeholder && !this.props.editorState.isInCompositionMode() && !this.props.editorState.getCurrentContent().hasText();\n };\n\n _proto2._renderPlaceholder = function _renderPlaceholder() {\n if (this._showPlaceholder()) {\n var placeHolderProps = {\n text: nullthrows(this.props.placeholder),\n editorState: this.props.editorState,\n textAlignment: this.props.textAlignment,\n accessibilityID: this._placeholderAccessibilityID\n };\n /* $FlowFixMe[incompatible-type] (>=0.112.0 site=www,mobile) This comment\n * suppresses an error found when Flow v0.112 was deployed. To see the\n * error delete this comment and run Flow. */\n\n return React.createElement(DraftEditorPlaceholder, placeHolderProps);\n }\n\n return null;\n }\n /**\n * returns ariaDescribedBy prop with '{{editor_id_placeholder}}' replaced with\n * the DOM id of the placeholder (if it exists)\n * @returns aria-describedby attribute value\n */\n ;\n\n _proto2._renderARIADescribedBy = function _renderARIADescribedBy() {\n var describedBy = this.props.ariaDescribedBy || '';\n var placeholderID = this._showPlaceholder() ? this._placeholderAccessibilityID : '';\n return describedBy.replace('{{editor_id_placeholder}}', placeholderID) || undefined;\n };\n\n _proto2.render = function render() {\n var _this$props2 = this.props,\n blockRenderMap = _this$props2.blockRenderMap,\n blockRendererFn = _this$props2.blockRendererFn,\n blockStyleFn = _this$props2.blockStyleFn,\n customStyleFn = _this$props2.customStyleFn,\n customStyleMap = _this$props2.customStyleMap,\n editorState = _this$props2.editorState,\n preventScroll = _this$props2.preventScroll,\n readOnly = _this$props2.readOnly,\n textAlignment = _this$props2.textAlignment,\n textDirectionality = _this$props2.textDirectionality;\n var rootClass = cx({\n 'DraftEditor/root': true,\n 'DraftEditor/alignLeft': textAlignment === 'left',\n 'DraftEditor/alignRight': textAlignment === 'right',\n 'DraftEditor/alignCenter': textAlignment === 'center'\n });\n var contentStyle = {\n outline: 'none',\n // fix parent-draggable Safari bug. #1326\n userSelect: 'text',\n WebkitUserSelect: 'text',\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word'\n }; // The aria-expanded and aria-haspopup properties should only be rendered\n // for a combobox.\n\n /* $FlowFixMe[prop-missing] (>=0.68.0 site=www,mobile) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the error\n * delete this comment and run Flow. */\n\n var ariaRole = this.props.role || 'textbox';\n var ariaExpanded = ariaRole === 'combobox' ? !!this.props.ariaExpanded : null;\n var editorContentsProps = {\n blockRenderMap: blockRenderMap,\n blockRendererFn: blockRendererFn,\n blockStyleFn: blockStyleFn,\n customStyleMap: _objectSpread({}, DefaultDraftInlineStyle, customStyleMap),\n customStyleFn: customStyleFn,\n editorKey: this._editorKey,\n editorState: editorState,\n preventScroll: preventScroll,\n textDirectionality: textDirectionality\n };\n return React.createElement(\"div\", {\n className: rootClass\n }, this._renderPlaceholder(), React.createElement(\"div\", {\n className: cx('DraftEditor/editorContainer'),\n ref: this._handleEditorContainerRef\n }, React.createElement(\"div\", {\n \"aria-activedescendant\": readOnly ? null : this.props.ariaActiveDescendantID,\n \"aria-autocomplete\": readOnly ? null : this.props.ariaAutoComplete,\n \"aria-controls\": readOnly ? null : this.props.ariaControls,\n \"aria-describedby\": this._renderARIADescribedBy(),\n \"aria-expanded\": readOnly ? null : ariaExpanded,\n \"aria-label\": this.props.ariaLabel,\n \"aria-labelledby\": this.props.ariaLabelledBy,\n \"aria-multiline\": this.props.ariaMultiline,\n \"aria-owns\": readOnly ? null : this.props.ariaOwneeID,\n autoCapitalize: this.props.autoCapitalize,\n autoComplete: this.props.autoComplete,\n autoCorrect: this.props.autoCorrect,\n className: cx({\n // Chrome's built-in translation feature mutates the DOM in ways\n // that Draft doesn't expect (ex: adding tags inside\n // DraftEditorLeaf spans) and causes problems. We add notranslate\n // here which makes its autotranslation skip over this subtree.\n notranslate: !readOnly,\n 'public/DraftEditor/content': true\n }),\n contentEditable: !readOnly,\n \"data-testid\": this.props.webDriverTestID,\n onBeforeInput: this._onBeforeInput,\n onBlur: this._onBlur,\n onCompositionEnd: this._onCompositionEnd,\n onCompositionStart: this._onCompositionStart,\n onCopy: this._onCopy,\n onCut: this._onCut,\n onDragEnd: this._onDragEnd,\n onDragEnter: this.onDragEnter,\n onDragLeave: this.onDragLeave,\n onDragOver: this._onDragOver,\n onDragStart: this._onDragStart,\n onDrop: this._onDrop,\n onFocus: this._onFocus,\n onInput: this._onInput,\n onKeyDown: this._onKeyDown,\n onKeyPress: this._onKeyPress,\n onKeyUp: this._onKeyUp,\n onMouseUp: this._onMouseUp,\n onPaste: this._onPaste,\n onSelect: this._onSelect,\n ref: this.props.editorRef,\n role: readOnly ? null : ariaRole,\n spellCheck: allowSpellCheck && this.props.spellCheck,\n style: contentStyle,\n suppressContentEditableWarning: true,\n tabIndex: this.props.tabIndex\n }, React.createElement(UpdateDraftEditorFlags, {\n editor: this,\n editorState: editorState\n }), React.createElement(DraftEditorContents, _extends({}, editorContentsProps, {\n key: 'contents' + this.state.contentsKey\n })))));\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n this._blockSelectEvents = false;\n\n if (!didInitODS && gkx('draft_ods_enabled')) {\n didInitODS = true;\n DraftEffects.initODS();\n }\n\n this.setMode('edit');\n /**\n * IE has a hardcoded \"feature\" that attempts to convert link text into\n * anchors in contentEditable DOM. This breaks the editor's expectations of\n * the DOM, and control is lost. Disable it to make IE behave.\n * See: http://blogs.msdn.com/b/ieinternals/archive/2010/09/15/\n * ie9-beta-minor-change-list.aspx\n */\n\n if (isIE) {\n // editor can be null after mounting\n // https://stackoverflow.com/questions/44074747/componentdidmount-called-before-ref-callback\n if (!this.editor) {\n global.execCommand('AutoUrlDetect', false, false);\n } else {\n this.editor.ownerDocument.execCommand('AutoUrlDetect', false, false);\n }\n }\n };\n\n _proto2.componentDidUpdate = function componentDidUpdate() {\n this._blockSelectEvents = false;\n this._latestEditorState = this.props.editorState;\n this._latestCommittedEditorState = this.props.editorState;\n }\n /**\n * Used via `this.focus()`.\n *\n * Force focus back onto the editor node.\n *\n * We attempt to preserve scroll position when focusing. You can also pass\n * a specified scroll position (for cases like `cut` behavior where it should\n * be restored to a known position).\n */\n ;\n\n return DraftEditor;\n}(React.Component);\n\n_defineProperty(DraftEditor, \"defaultProps\", {\n ariaDescribedBy: '{{editor_id_placeholder}}',\n blockRenderMap: DefaultDraftBlockRenderMap,\n blockRendererFn: function blockRendererFn() {\n return null;\n },\n blockStyleFn: function blockStyleFn() {\n return '';\n },\n keyBindingFn: getDefaultKeyBinding,\n readOnly: false,\n spellCheck: false,\n stripPastedStyles: false\n});\n\nmodule.exports = DraftEditor;","/**\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 _assign = require(\"object-assign\");\n\nfunction _extends() { _extends = _assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\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 DraftEditorLeaf = require(\"./DraftEditorLeaf.react\");\n\nvar DraftOffsetKey = require(\"./DraftOffsetKey\");\n\nvar React = require(\"react\");\n\nvar Scroll = require(\"fbjs/lib/Scroll\");\n\nvar Style = require(\"fbjs/lib/Style\");\n\nvar UnicodeBidi = require(\"fbjs/lib/UnicodeBidi\");\n\nvar UnicodeBidiDirection = require(\"fbjs/lib/UnicodeBidiDirection\");\n\nvar cx = require(\"fbjs/lib/cx\");\n\nvar getElementPosition = require(\"fbjs/lib/getElementPosition\");\n\nvar getScrollPosition = require(\"fbjs/lib/getScrollPosition\");\n\nvar getViewportDimensions = require(\"fbjs/lib/getViewportDimensions\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar isHTMLElement = require(\"./isHTMLElement\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\nvar SCROLL_BUFFER = 10;\n\n/**\n * Return whether a block overlaps with either edge of the `SelectionState`.\n */\nvar isBlockOnSelectionEdge = function isBlockOnSelectionEdge(selection, key) {\n return selection.getAnchorKey() === key || selection.getFocusKey() === key;\n};\n/**\n * The default block renderer for a `DraftEditor` component.\n *\n * A `DraftEditorBlock` is able to render a given `ContentBlock` to its\n * appropriate decorator and inline style components.\n */\n\n\nvar DraftEditorBlock = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DraftEditorBlock, _React$Component);\n\n function DraftEditorBlock() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"_node\", void 0);\n\n return _this;\n }\n\n var _proto = DraftEditorBlock.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return this.props.block !== nextProps.block || this.props.tree !== nextProps.tree || this.props.direction !== nextProps.direction || isBlockOnSelectionEdge(nextProps.selection, nextProps.block.getKey()) && nextProps.forceSelection;\n }\n /**\n * When a block is mounted and overlaps the selection state, we need to make\n * sure that the cursor is visible to match native behavior. This may not\n * be the case if the user has pressed `RETURN` or pasted some content, since\n * programmatically creating these new blocks and setting the DOM selection\n * will miss out on the browser natively scrolling to that position.\n *\n * To replicate native behavior, if the block overlaps the selection state\n * on mount, force the scroll position. Check the scroll state of the scroll\n * parent, and adjust it to align the entire block to the bottom of the\n * scroll parent.\n */\n ;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.preventScroll) {\n return;\n }\n\n var selection = this.props.selection;\n var endKey = selection.getEndKey();\n\n if (!selection.getHasFocus() || endKey !== this.props.block.getKey()) {\n return;\n }\n\n var blockNode = this._node;\n\n if (blockNode == null) {\n return;\n }\n\n var scrollParent = Style.getScrollParent(blockNode);\n var scrollPosition = getScrollPosition(scrollParent);\n var scrollDelta;\n\n if (scrollParent === window) {\n var nodePosition = getElementPosition(blockNode);\n var nodeBottom = nodePosition.y + nodePosition.height;\n var viewportHeight = getViewportDimensions().height;\n scrollDelta = nodeBottom - viewportHeight;\n\n if (scrollDelta > 0) {\n window.scrollTo(scrollPosition.x, scrollPosition.y + scrollDelta + SCROLL_BUFFER);\n }\n } else {\n !isHTMLElement(blockNode) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'blockNode is not an HTMLElement') : invariant(false) : void 0;\n var blockBottom = blockNode.offsetHeight + blockNode.offsetTop;\n var pOffset = scrollParent.offsetTop + scrollParent.offsetHeight;\n var scrollBottom = pOffset + scrollPosition.y;\n scrollDelta = blockBottom - scrollBottom;\n\n if (scrollDelta > 0) {\n Scroll.setTop(scrollParent, Scroll.getTop(scrollParent) + scrollDelta + SCROLL_BUFFER);\n }\n }\n };\n\n _proto._renderChildren = function _renderChildren() {\n var _this2 = this;\n\n var block = this.props.block;\n var blockKey = block.getKey();\n var text = block.getText();\n var lastLeafSet = this.props.tree.size - 1;\n var hasSelection = isBlockOnSelectionEdge(this.props.selection, blockKey);\n return this.props.tree.map(function (leafSet, ii) {\n var leavesForLeafSet = leafSet.get('leaves'); // T44088704\n\n if (leavesForLeafSet.size === 0) {\n return null;\n }\n\n var lastLeaf = leavesForLeafSet.size - 1;\n var leaves = leavesForLeafSet.map(function (leaf, jj) {\n var offsetKey = DraftOffsetKey.encode(blockKey, ii, jj);\n var start = leaf.get('start');\n var end = leaf.get('end');\n return React.createElement(DraftEditorLeaf, {\n key: offsetKey,\n offsetKey: offsetKey,\n block: block,\n start: start,\n selection: hasSelection ? _this2.props.selection : null,\n forceSelection: _this2.props.forceSelection,\n text: text.slice(start, end),\n styleSet: block.getInlineStyleAt(start),\n customStyleMap: _this2.props.customStyleMap,\n customStyleFn: _this2.props.customStyleFn,\n isLast: ii === lastLeafSet && jj === lastLeaf\n });\n }).toArray();\n var decoratorKey = leafSet.get('decoratorKey');\n\n if (decoratorKey == null) {\n return leaves;\n }\n\n if (!_this2.props.decorator) {\n return leaves;\n }\n\n var decorator = nullthrows(_this2.props.decorator);\n var DecoratorComponent = decorator.getComponentForKey(decoratorKey);\n\n if (!DecoratorComponent) {\n return leaves;\n }\n\n var decoratorProps = decorator.getPropsForKey(decoratorKey);\n var decoratorOffsetKey = DraftOffsetKey.encode(blockKey, ii, 0);\n var start = leavesForLeafSet.first().get('start');\n var end = leavesForLeafSet.last().get('end');\n var decoratedText = text.slice(start, end);\n var entityKey = block.getEntityAt(leafSet.get('start')); // Resetting dir to the same value on a child node makes Chrome/Firefox\n // confused on cursor movement. See http://jsfiddle.net/d157kLck/3/\n\n var dir = UnicodeBidiDirection.getHTMLDirIfDifferent(UnicodeBidi.getDirection(decoratedText), _this2.props.direction);\n var commonProps = {\n contentState: _this2.props.contentState,\n decoratedText: decoratedText,\n dir: dir,\n start: start,\n end: end,\n blockKey: blockKey,\n entityKey: entityKey,\n offsetKey: decoratorOffsetKey\n };\n return React.createElement(DecoratorComponent, _extends({}, decoratorProps, commonProps, {\n key: decoratorOffsetKey\n }), leaves);\n }).toArray();\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n direction = _this$props.direction,\n offsetKey = _this$props.offsetKey;\n var className = cx({\n 'public/DraftStyleDefault/block': true,\n 'public/DraftStyleDefault/ltr': direction === 'LTR',\n 'public/DraftStyleDefault/rtl': direction === 'RTL'\n });\n return React.createElement(\"div\", {\n \"data-offset-key\": offsetKey,\n className: className,\n ref: function ref(_ref) {\n return _this3._node = _ref;\n }\n }, this._renderChildren());\n };\n\n return DraftEditorBlock;\n}(React.Component);\n\nmodule.exports = DraftEditorBlock;","/**\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 DraftEditorBlock.react.js and DraftEditorContents.react.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 */\n'use strict';\n\nvar _assign = require(\"object-assign\");\n\nfunction _extends() { _extends = _assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\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 DraftEditorNode = require(\"./DraftEditorNode.react\");\n\nvar DraftOffsetKey = require(\"./DraftOffsetKey\");\n\nvar React = require(\"react\");\n\nvar Scroll = require(\"fbjs/lib/Scroll\");\n\nvar Style = require(\"fbjs/lib/Style\");\n\nvar getElementPosition = require(\"fbjs/lib/getElementPosition\");\n\nvar getScrollPosition = require(\"fbjs/lib/getScrollPosition\");\n\nvar getViewportDimensions = require(\"fbjs/lib/getViewportDimensions\");\n\nvar Immutable = require(\"immutable\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar isHTMLElement = require(\"./isHTMLElement\");\n\nvar SCROLL_BUFFER = 10;\nvar List = Immutable.List; // we should harden up the bellow flow types to make them more strict\n\n/**\n * Return whether a block overlaps with either edge of the `SelectionState`.\n */\nvar isBlockOnSelectionEdge = function isBlockOnSelectionEdge(selection, key) {\n return selection.getAnchorKey() === key || selection.getFocusKey() === key;\n};\n/**\n * We will use this helper to identify blocks that need to be wrapped but have siblings that\n * also share the same wrapper element, this way we can do the wrapping once the last sibling\n * is added.\n */\n\n\nvar shouldNotAddWrapperElement = function shouldNotAddWrapperElement(block, contentState) {\n var nextSiblingKey = block.getNextSiblingKey();\n return nextSiblingKey ? contentState.getBlockForKey(nextSiblingKey).getType() === block.getType() : false;\n};\n\nvar applyWrapperElementToSiblings = function applyWrapperElementToSiblings(wrapperTemplate, Element, nodes) {\n var wrappedSiblings = []; // we check back until we find a sibling that does not have same wrapper\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = nodes.reverse()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var sibling = _step.value;\n\n if (sibling.type !== Element) {\n break;\n }\n\n wrappedSiblings.push(sibling);\n } // we now should remove from acc the wrappedSiblings and add them back under same wrap\n\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n _iterator[\"return\"]();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n nodes.splice(nodes.indexOf(wrappedSiblings[0]), wrappedSiblings.length + 1);\n var childrenIs = wrappedSiblings.reverse();\n var key = childrenIs[0].key;\n nodes.push(React.cloneElement(wrapperTemplate, {\n key: \"\".concat(key, \"-wrap\"),\n 'data-offset-key': DraftOffsetKey.encode(key, 0, 0)\n }, childrenIs));\n return nodes;\n};\n\nvar getDraftRenderConfig = function getDraftRenderConfig(block, blockRenderMap) {\n var configForType = blockRenderMap.get(block.getType()) || blockRenderMap.get('unstyled');\n var wrapperTemplate = configForType.wrapper;\n var Element = configForType.element || blockRenderMap.get('unstyled').element;\n return {\n Element: Element,\n wrapperTemplate: wrapperTemplate\n };\n};\n\nvar getCustomRenderConfig = function getCustomRenderConfig(block, blockRendererFn) {\n var customRenderer = blockRendererFn(block);\n\n if (!customRenderer) {\n return {};\n }\n\n var CustomComponent = customRenderer.component,\n customProps = customRenderer.props,\n customEditable = customRenderer.editable;\n return {\n CustomComponent: CustomComponent,\n customProps: customProps,\n customEditable: customEditable\n };\n};\n\nvar getElementPropsConfig = function getElementPropsConfig(block, editorKey, offsetKey, blockStyleFn, customConfig, ref) {\n var elementProps = {\n 'data-block': true,\n 'data-editor': editorKey,\n 'data-offset-key': offsetKey,\n key: block.getKey(),\n ref: ref\n };\n var customClass = blockStyleFn(block);\n\n if (customClass) {\n elementProps.className = customClass;\n }\n\n if (customConfig.customEditable !== undefined) {\n elementProps = _objectSpread({}, elementProps, {\n contentEditable: customConfig.customEditable,\n suppressContentEditableWarning: true\n });\n }\n\n return elementProps;\n};\n\nvar DraftEditorBlockNode = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DraftEditorBlockNode, _React$Component);\n\n function DraftEditorBlockNode() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"wrapperRef\", React.createRef());\n\n return _this;\n }\n\n var _proto = DraftEditorBlockNode.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n var _this$props = this.props,\n block = _this$props.block,\n direction = _this$props.direction,\n tree = _this$props.tree;\n var isContainerNode = !block.getChildKeys().isEmpty();\n var blockHasChanged = block !== nextProps.block || tree !== nextProps.tree || direction !== nextProps.direction || isBlockOnSelectionEdge(nextProps.selection, nextProps.block.getKey()) && nextProps.forceSelection; // if we have children at this stage we always re-render container nodes\n // else if its a root node we avoid re-rendering by checking for block updates\n\n return isContainerNode || blockHasChanged;\n }\n /**\n * When a block is mounted and overlaps the selection state, we need to make\n * sure that the cursor is visible to match native behavior. This may not\n * be the case if the user has pressed `RETURN` or pasted some content, since\n * programatically creating these new blocks and setting the DOM selection\n * will miss out on the browser natively scrolling to that position.\n *\n * To replicate native behavior, if the block overlaps the selection state\n * on mount, force the scroll position. Check the scroll state of the scroll\n * parent, and adjust it to align the entire block to the bottom of the\n * scroll parent.\n */\n ;\n\n _proto.componentDidMount = function componentDidMount() {\n var selection = this.props.selection;\n var endKey = selection.getEndKey();\n\n if (!selection.getHasFocus() || endKey !== this.props.block.getKey()) {\n return;\n }\n\n var blockNode = this.wrapperRef.current;\n\n if (!blockNode) {\n // This Block Node was rendered without a wrapper element.\n return;\n }\n\n var scrollParent = Style.getScrollParent(blockNode);\n var scrollPosition = getScrollPosition(scrollParent);\n var scrollDelta;\n\n if (scrollParent === window) {\n var nodePosition = getElementPosition(blockNode);\n var nodeBottom = nodePosition.y + nodePosition.height;\n var viewportHeight = getViewportDimensions().height;\n scrollDelta = nodeBottom - viewportHeight;\n\n if (scrollDelta > 0) {\n window.scrollTo(scrollPosition.x, scrollPosition.y + scrollDelta + SCROLL_BUFFER);\n }\n } else {\n !isHTMLElement(blockNode) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'blockNode is not an HTMLElement') : invariant(false) : void 0;\n var htmlBlockNode = blockNode;\n var blockBottom = htmlBlockNode.offsetHeight + htmlBlockNode.offsetTop;\n var scrollBottom = scrollParent.offsetHeight + scrollPosition.y;\n scrollDelta = blockBottom - scrollBottom;\n\n if (scrollDelta > 0) {\n Scroll.setTop(scrollParent, Scroll.getTop(scrollParent) + scrollDelta + SCROLL_BUFFER);\n }\n }\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n block = _this$props2.block,\n blockRenderMap = _this$props2.blockRenderMap,\n blockRendererFn = _this$props2.blockRendererFn,\n blockStyleFn = _this$props2.blockStyleFn,\n contentState = _this$props2.contentState,\n decorator = _this$props2.decorator,\n editorKey = _this$props2.editorKey,\n editorState = _this$props2.editorState,\n customStyleFn = _this$props2.customStyleFn,\n customStyleMap = _this$props2.customStyleMap,\n direction = _this$props2.direction,\n forceSelection = _this$props2.forceSelection,\n selection = _this$props2.selection,\n tree = _this$props2.tree;\n var children = null;\n\n if (block.children.size) {\n children = block.children.reduce(function (acc, key) {\n var offsetKey = DraftOffsetKey.encode(key, 0, 0);\n var child = contentState.getBlockForKey(key);\n var customConfig = getCustomRenderConfig(child, blockRendererFn);\n var Component = customConfig.CustomComponent || DraftEditorBlockNode;\n\n var _getDraftRenderConfig = getDraftRenderConfig(child, blockRenderMap),\n Element = _getDraftRenderConfig.Element,\n wrapperTemplate = _getDraftRenderConfig.wrapperTemplate;\n\n var elementProps = getElementPropsConfig(child, editorKey, offsetKey, blockStyleFn, customConfig, null);\n\n var childProps = _objectSpread({}, _this2.props, {\n tree: editorState.getBlockTree(key),\n blockProps: customConfig.customProps,\n offsetKey: offsetKey,\n block: child\n });\n\n acc.push(React.createElement(Element, elementProps, React.createElement(Component, childProps)));\n\n if (!wrapperTemplate || shouldNotAddWrapperElement(child, contentState)) {\n return acc;\n } // if we are here it means we are the last block\n // that has a wrapperTemplate so we should wrap itself\n // and all other previous siblings that share the same wrapper\n\n\n applyWrapperElementToSiblings(wrapperTemplate, Element, acc);\n return acc;\n }, []);\n }\n\n var blockKey = block.getKey();\n var offsetKey = DraftOffsetKey.encode(blockKey, 0, 0);\n var customConfig = getCustomRenderConfig(block, blockRendererFn);\n var Component = customConfig.CustomComponent;\n var blockNode = Component != null ? React.createElement(Component, _extends({}, this.props, {\n tree: editorState.getBlockTree(blockKey),\n blockProps: customConfig.customProps,\n offsetKey: offsetKey,\n block: block\n })) : React.createElement(DraftEditorNode, {\n block: block,\n children: children,\n contentState: contentState,\n customStyleFn: customStyleFn,\n customStyleMap: customStyleMap,\n decorator: decorator,\n direction: direction,\n forceSelection: forceSelection,\n hasSelection: isBlockOnSelectionEdge(selection, blockKey),\n selection: selection,\n tree: tree\n });\n\n if (block.getParentKey()) {\n return blockNode;\n }\n\n var _getDraftRenderConfig2 = getDraftRenderConfig(block, blockRenderMap),\n Element = _getDraftRenderConfig2.Element;\n\n var elementProps = getElementPropsConfig(block, editorKey, offsetKey, blockStyleFn, customConfig, this.wrapperRef); // root block nodes needs to be wrapped\n\n return React.createElement(Element, elementProps, blockNode);\n };\n\n return DraftEditorBlockNode;\n}(React.Component);\n\nmodule.exports = DraftEditorBlockNode;","/**\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 DOMObserver = require(\"./DOMObserver\");\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar DraftOffsetKey = require(\"./DraftOffsetKey\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar Keys = require(\"fbjs/lib/Keys\");\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar editOnSelect = require(\"./editOnSelect\");\n\nvar getContentEditableContainer = require(\"./getContentEditableContainer\");\n\nvar getDraftEditorSelection = require(\"./getDraftEditorSelection\");\n\nvar getEntityKeyForSelection = require(\"./getEntityKeyForSelection\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\nvar isIE = UserAgent.isBrowser('IE');\n/**\n * Millisecond delay to allow `compositionstart` to fire again upon\n * `compositionend`.\n *\n * This is used for Korean input to ensure that typing can continue without\n * the editor trying to render too quickly. More specifically, Safari 7.1+\n * triggers `compositionstart` a little slower than Chrome/FF, which\n * leads to composed characters being resolved and re-render occurring\n * sooner than we want.\n */\n\nvar RESOLVE_DELAY = 20;\n/**\n * A handful of variables used to track the current composition and its\n * resolution status. These exist at the module level because it is not\n * possible to have compositions occurring in multiple editors simultaneously,\n * and it simplifies state management with respect to the DraftEditor component.\n */\n\nvar resolved = false;\nvar stillComposing = false;\nvar domObserver = null;\n\nfunction startDOMObserver(editor) {\n if (!domObserver) {\n domObserver = new DOMObserver(getContentEditableContainer(editor));\n domObserver.start();\n }\n}\n\nvar DraftEditorCompositionHandler = {\n /**\n * A `compositionstart` event has fired while we're still in composition\n * mode. Continue the current composition session to prevent a re-render.\n */\n onCompositionStart: function onCompositionStart(editor) {\n stillComposing = true;\n startDOMObserver(editor);\n },\n\n /**\n * Attempt to end the current composition session.\n *\n * Defer handling because browser will still insert the chars into active\n * element after `compositionend`. If a `compositionstart` event fires\n * before `resolveComposition` executes, our composition session will\n * continue.\n *\n * The `resolved` flag is useful because certain IME interfaces fire the\n * `compositionend` event multiple times, thus queueing up multiple attempts\n * at handling the composition. Since handling the same composition event\n * twice could break the DOM, we only use the first event. Example: Arabic\n * Google Input Tools on Windows 8.1 fires `compositionend` three times.\n */\n onCompositionEnd: function onCompositionEnd(editor) {\n resolved = false;\n stillComposing = false;\n setTimeout(function () {\n if (!resolved) {\n DraftEditorCompositionHandler.resolveComposition(editor);\n }\n }, RESOLVE_DELAY);\n },\n onSelect: editOnSelect,\n\n /**\n * In Safari, keydown events may fire when committing compositions. If\n * the arrow keys are used to commit, prevent default so that the cursor\n * doesn't move, otherwise it will jump back noticeably on re-render.\n */\n onKeyDown: function onKeyDown(editor, e) {\n if (!stillComposing) {\n // If a keydown event is received after compositionend but before the\n // 20ms timer expires (ex: type option-E then backspace, or type A then\n // backspace in 2-Set Korean), we should immediately resolve the\n // composition and reinterpret the key press in edit mode.\n DraftEditorCompositionHandler.resolveComposition(editor);\n\n editor._onKeyDown(e);\n\n return;\n }\n\n if (e.which === Keys.RIGHT || e.which === Keys.LEFT) {\n e.preventDefault();\n }\n },\n\n /**\n * Keypress events may fire when committing compositions. In Firefox,\n * pressing RETURN commits the composition and inserts extra newline\n * characters that we do not want. `preventDefault` allows the composition\n * to be committed while preventing the extra characters.\n */\n onKeyPress: function onKeyPress(_editor, e) {\n if (e.which === Keys.RETURN) {\n e.preventDefault();\n }\n },\n\n /**\n * Attempt to insert composed characters into the document.\n *\n * If we are still in a composition session, do nothing. Otherwise, insert\n * the characters into the document and terminate the composition session.\n *\n * If no characters were composed -- for instance, the user\n * deleted all composed characters and committed nothing new --\n * force a re-render. We also re-render when the composition occurs\n * at the beginning of a leaf, to ensure that if the browser has\n * created a new text node for the composition, we will discard it.\n *\n * Resetting innerHTML will move focus to the beginning of the editor,\n * so we update to force it back to the correct place.\n */\n resolveComposition: function resolveComposition(editor) {\n if (stillComposing) {\n return;\n }\n\n var mutations = nullthrows(domObserver).stopAndFlushMutations();\n domObserver = null;\n resolved = true;\n var editorState = EditorState.set(editor._latestEditorState, {\n inCompositionMode: false\n });\n editor.exitCurrentMode();\n\n if (!mutations.size) {\n editor.update(editorState);\n return;\n } // TODO, check if Facebook still needs this flag or if it could be removed.\n // Since there can be multiple mutations providing a `composedChars` doesn't\n // apply well on this new model.\n // if (\n // gkx('draft_handlebeforeinput_composed_text') &&\n // editor.props.handleBeforeInput &&\n // isEventHandled(\n // editor.props.handleBeforeInput(\n // composedChars,\n // editorState,\n // event.timeStamp,\n // ),\n // )\n // ) {\n // return;\n // }\n\n\n var contentState = editorState.getCurrentContent();\n mutations.forEach(function (composedChars, offsetKey) {\n var _DraftOffsetKey$decod = DraftOffsetKey.decode(offsetKey),\n blockKey = _DraftOffsetKey$decod.blockKey,\n decoratorKey = _DraftOffsetKey$decod.decoratorKey,\n leafKey = _DraftOffsetKey$decod.leafKey;\n\n var _editorState$getBlock = editorState.getBlockTree(blockKey).getIn([decoratorKey, 'leaves', leafKey]),\n start = _editorState$getBlock.start,\n end = _editorState$getBlock.end;\n\n var replacementRange = editorState.getSelection().merge({\n anchorKey: blockKey,\n focusKey: blockKey,\n anchorOffset: start,\n focusOffset: end,\n isBackward: false\n });\n var entityKey = getEntityKeyForSelection(contentState, replacementRange);\n var currentStyle = contentState.getBlockForKey(blockKey).getInlineStyleAt(start);\n contentState = DraftModifier.replaceText(contentState, replacementRange, composedChars, currentStyle, entityKey); // We need to update the editorState so the leaf node ranges are properly\n // updated and multiple mutations are correctly applied.\n\n editorState = EditorState.set(editorState, {\n currentContent: contentState\n });\n }); // When we apply the text changes to the ContentState, the selection always\n // goes to the end of the field, but it should just stay where it is\n // after compositionEnd.\n\n var documentSelection = getDraftEditorSelection(editorState, getContentEditableContainer(editor));\n var compositionEndSelectionState = documentSelection.selectionState;\n editor.restoreEditorDOM(); // See:\n // - https://github.com/facebook/draft-js/issues/2093\n // - https://github.com/facebook/draft-js/pull/2094\n // Apply this fix only in IE for now. We can test it in\n // other browsers in the future to ensure no regressions\n\n var editorStateWithUpdatedSelection = isIE ? EditorState.forceSelection(editorState, compositionEndSelectionState) : EditorState.acceptSelection(editorState, compositionEndSelectionState);\n editor.update(EditorState.push(editorStateWithUpdatedSelection, contentState, 'insert-characters'));\n }\n};\nmodule.exports = DraftEditorCompositionHandler;","/**\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 _assign = require(\"object-assign\");\n\nfunction _extends() { _extends = _assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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 DraftEditorBlock = require(\"./DraftEditorBlock.react\");\n\nvar DraftOffsetKey = require(\"./DraftOffsetKey\");\n\nvar React = require(\"react\");\n\nvar cx = require(\"fbjs/lib/cx\");\n\nvar joinClasses = require(\"fbjs/lib/joinClasses\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\n/**\n * Provide default styling for list items. This way, lists will be styled with\n * proper counters and indentation even if the caller does not specify\n * their own styling at all. If more than five levels of nesting are needed,\n * the necessary CSS classes can be provided via `blockStyleFn` configuration.\n */\nvar getListItemClasses = function getListItemClasses(type, depth, shouldResetCount, direction) {\n return cx({\n 'public/DraftStyleDefault/unorderedListItem': type === 'unordered-list-item',\n 'public/DraftStyleDefault/orderedListItem': type === 'ordered-list-item',\n 'public/DraftStyleDefault/reset': shouldResetCount,\n 'public/DraftStyleDefault/depth0': depth === 0,\n 'public/DraftStyleDefault/depth1': depth === 1,\n 'public/DraftStyleDefault/depth2': depth === 2,\n 'public/DraftStyleDefault/depth3': depth === 3,\n 'public/DraftStyleDefault/depth4': depth >= 4,\n 'public/DraftStyleDefault/listLTR': direction === 'LTR',\n 'public/DraftStyleDefault/listRTL': direction === 'RTL'\n });\n};\n/**\n * `DraftEditorContents` is the container component for all block components\n * rendered for a `DraftEditor`. It is optimized to aggressively avoid\n * re-rendering blocks whenever possible.\n *\n * This component is separate from `DraftEditor` because certain props\n * (for instance, ARIA props) must be allowed to update without affecting\n * the contents of the editor.\n */\n\n\nvar DraftEditorContents = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DraftEditorContents, _React$Component);\n\n function DraftEditorContents() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = DraftEditorContents.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n var prevEditorState = this.props.editorState;\n var nextEditorState = nextProps.editorState;\n var prevDirectionMap = prevEditorState.getDirectionMap();\n var nextDirectionMap = nextEditorState.getDirectionMap(); // Text direction has changed for one or more blocks. We must re-render.\n\n if (prevDirectionMap !== nextDirectionMap) {\n return true;\n }\n\n var didHaveFocus = prevEditorState.getSelection().getHasFocus();\n var nowHasFocus = nextEditorState.getSelection().getHasFocus();\n\n if (didHaveFocus !== nowHasFocus) {\n return true;\n }\n\n var nextNativeContent = nextEditorState.getNativelyRenderedContent();\n var wasComposing = prevEditorState.isInCompositionMode();\n var nowComposing = nextEditorState.isInCompositionMode(); // If the state is unchanged or we're currently rendering a natively\n // rendered state, there's nothing new to be done.\n\n if (prevEditorState === nextEditorState || nextNativeContent !== null && nextEditorState.getCurrentContent() === nextNativeContent || wasComposing && nowComposing) {\n return false;\n }\n\n var prevContent = prevEditorState.getCurrentContent();\n var nextContent = nextEditorState.getCurrentContent();\n var prevDecorator = prevEditorState.getDecorator();\n var nextDecorator = nextEditorState.getDecorator();\n return wasComposing !== nowComposing || prevContent !== nextContent || prevDecorator !== nextDecorator || nextEditorState.mustForceSelection();\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n blockRenderMap = _this$props.blockRenderMap,\n blockRendererFn = _this$props.blockRendererFn,\n blockStyleFn = _this$props.blockStyleFn,\n customStyleMap = _this$props.customStyleMap,\n customStyleFn = _this$props.customStyleFn,\n editorState = _this$props.editorState,\n editorKey = _this$props.editorKey,\n preventScroll = _this$props.preventScroll,\n textDirectionality = _this$props.textDirectionality;\n var content = editorState.getCurrentContent();\n var selection = editorState.getSelection();\n var forceSelection = editorState.mustForceSelection();\n var decorator = editorState.getDecorator();\n var directionMap = nullthrows(editorState.getDirectionMap());\n var blocksAsArray = content.getBlocksAsArray();\n var processedBlocks = [];\n var currentDepth = null;\n var lastWrapperTemplate = null;\n\n for (var ii = 0; ii < blocksAsArray.length; ii++) {\n var _block = blocksAsArray[ii];\n\n var key = _block.getKey();\n\n var blockType = _block.getType();\n\n var customRenderer = blockRendererFn(_block);\n var CustomComponent = void 0,\n customProps = void 0,\n customEditable = void 0;\n\n if (customRenderer) {\n CustomComponent = customRenderer.component;\n customProps = customRenderer.props;\n customEditable = customRenderer.editable;\n }\n\n var direction = textDirectionality ? textDirectionality : directionMap.get(key);\n var offsetKey = DraftOffsetKey.encode(key, 0, 0);\n var componentProps = {\n contentState: content,\n block: _block,\n blockProps: customProps,\n blockStyleFn: blockStyleFn,\n customStyleMap: customStyleMap,\n customStyleFn: customStyleFn,\n decorator: decorator,\n direction: direction,\n forceSelection: forceSelection,\n offsetKey: offsetKey,\n preventScroll: preventScroll,\n selection: selection,\n tree: editorState.getBlockTree(key)\n };\n var configForType = blockRenderMap.get(blockType) || blockRenderMap.get('unstyled');\n var wrapperTemplate = configForType.wrapper;\n var Element = configForType.element || blockRenderMap.get('unstyled').element;\n\n var depth = _block.getDepth();\n\n var _className = '';\n\n if (blockStyleFn) {\n _className = blockStyleFn(_block);\n } // List items are special snowflakes, since we handle nesting and\n // counters manually.\n\n\n if (Element === 'li') {\n var shouldResetCount = lastWrapperTemplate !== wrapperTemplate || currentDepth === null || depth > currentDepth;\n _className = joinClasses(_className, getListItemClasses(blockType, depth, shouldResetCount, direction));\n }\n\n var Component = CustomComponent || DraftEditorBlock;\n var childProps = {\n className: _className,\n 'data-block': true,\n 'data-editor': editorKey,\n 'data-offset-key': offsetKey,\n key: key\n };\n\n if (customEditable !== undefined) {\n childProps = _objectSpread({}, childProps, {\n contentEditable: customEditable,\n suppressContentEditableWarning: true\n });\n }\n\n var child = React.createElement(Element, childProps,\n /* $FlowFixMe[incompatible-type] (>=0.112.0 site=www,mobile) This\n * comment suppresses an error found when Flow v0.112 was deployed. To\n * see the error delete this comment and run Flow. */\n React.createElement(Component, _extends({}, componentProps, {\n key: key\n })));\n processedBlocks.push({\n block: child,\n wrapperTemplate: wrapperTemplate,\n key: key,\n offsetKey: offsetKey\n });\n\n if (wrapperTemplate) {\n currentDepth = _block.getDepth();\n } else {\n currentDepth = null;\n }\n\n lastWrapperTemplate = wrapperTemplate;\n } // Group contiguous runs of blocks that have the same wrapperTemplate\n\n\n var outputBlocks = [];\n\n for (var _ii = 0; _ii < processedBlocks.length;) {\n var info = processedBlocks[_ii];\n\n if (info.wrapperTemplate) {\n var blocks = [];\n\n do {\n blocks.push(processedBlocks[_ii].block);\n _ii++;\n } while (_ii < processedBlocks.length && processedBlocks[_ii].wrapperTemplate === info.wrapperTemplate);\n\n var wrapperElement = React.cloneElement(info.wrapperTemplate, {\n key: info.key + '-wrap',\n 'data-offset-key': info.offsetKey\n }, blocks);\n outputBlocks.push(wrapperElement);\n } else {\n outputBlocks.push(info.block);\n _ii++;\n }\n }\n\n return React.createElement(\"div\", {\n \"data-contents\": \"true\"\n }, outputBlocks);\n };\n\n return DraftEditorContents;\n}(React.Component);\n\nmodule.exports = DraftEditorContents;","/**\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 gkx = require(\"./gkx\");\n\nvar experimentalTreeDataSupport = gkx('draft_tree_data_support');\nmodule.exports = experimentalTreeDataSupport ? require(\"./DraftEditorContentsExperimental.react\") : require(\"./DraftEditorContents-core.react\");","/**\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 DraftEditorContents.react.js for tree nodes\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\nvar _assign = require(\"object-assign\");\n\nfunction _extends() { _extends = _assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar DraftEditorBlockNode = require(\"./DraftEditorBlockNode.react\");\n\nvar DraftOffsetKey = require(\"./DraftOffsetKey\");\n\nvar React = require(\"react\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\n/**\n * `DraftEditorContents` is the container component for all block components\n * rendered for a `DraftEditor`. It is optimized to aggressively avoid\n * re-rendering blocks whenever possible.\n *\n * This component is separate from `DraftEditor` because certain props\n * (for instance, ARIA props) must be allowed to update without affecting\n * the contents of the editor.\n */\nvar DraftEditorContentsExperimental = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DraftEditorContentsExperimental, _React$Component);\n\n function DraftEditorContentsExperimental() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = DraftEditorContentsExperimental.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n var prevEditorState = this.props.editorState;\n var nextEditorState = nextProps.editorState;\n var prevDirectionMap = prevEditorState.getDirectionMap();\n var nextDirectionMap = nextEditorState.getDirectionMap(); // Text direction has changed for one or more blocks. We must re-render.\n\n if (prevDirectionMap !== nextDirectionMap) {\n return true;\n }\n\n var didHaveFocus = prevEditorState.getSelection().getHasFocus();\n var nowHasFocus = nextEditorState.getSelection().getHasFocus();\n\n if (didHaveFocus !== nowHasFocus) {\n return true;\n }\n\n var nextNativeContent = nextEditorState.getNativelyRenderedContent();\n var wasComposing = prevEditorState.isInCompositionMode();\n var nowComposing = nextEditorState.isInCompositionMode(); // If the state is unchanged or we're currently rendering a natively\n // rendered state, there's nothing new to be done.\n\n if (prevEditorState === nextEditorState || nextNativeContent !== null && nextEditorState.getCurrentContent() === nextNativeContent || wasComposing && nowComposing) {\n return false;\n }\n\n var prevContent = prevEditorState.getCurrentContent();\n var nextContent = nextEditorState.getCurrentContent();\n var prevDecorator = prevEditorState.getDecorator();\n var nextDecorator = nextEditorState.getDecorator();\n return wasComposing !== nowComposing || prevContent !== nextContent || prevDecorator !== nextDecorator || nextEditorState.mustForceSelection();\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n blockRenderMap = _this$props.blockRenderMap,\n blockRendererFn = _this$props.blockRendererFn,\n blockStyleFn = _this$props.blockStyleFn,\n customStyleMap = _this$props.customStyleMap,\n customStyleFn = _this$props.customStyleFn,\n editorState = _this$props.editorState,\n editorKey = _this$props.editorKey,\n textDirectionality = _this$props.textDirectionality;\n var content = editorState.getCurrentContent();\n var selection = editorState.getSelection();\n var forceSelection = editorState.mustForceSelection();\n var decorator = editorState.getDecorator();\n var directionMap = nullthrows(editorState.getDirectionMap());\n var blocksAsArray = content.getBlocksAsArray();\n var rootBlock = blocksAsArray[0];\n var processedBlocks = [];\n var nodeBlock = rootBlock;\n\n while (nodeBlock) {\n var blockKey = nodeBlock.getKey();\n var blockProps = {\n blockRenderMap: blockRenderMap,\n blockRendererFn: blockRendererFn,\n blockStyleFn: blockStyleFn,\n contentState: content,\n customStyleFn: customStyleFn,\n customStyleMap: customStyleMap,\n decorator: decorator,\n editorKey: editorKey,\n editorState: editorState,\n forceSelection: forceSelection,\n selection: selection,\n block: nodeBlock,\n direction: textDirectionality ? textDirectionality : directionMap.get(blockKey),\n tree: editorState.getBlockTree(blockKey)\n };\n var configForType = blockRenderMap.get(nodeBlock.getType()) || blockRenderMap.get('unstyled');\n var wrapperTemplate = configForType.wrapper;\n processedBlocks.push({\n /* $FlowFixMe[incompatible-type] (>=0.112.0 site=www,mobile) This\n * comment suppresses an error found when Flow v0.112 was deployed. To\n * see the error delete this comment and run Flow. */\n block: React.createElement(DraftEditorBlockNode, _extends({\n key: blockKey\n }, blockProps)),\n wrapperTemplate: wrapperTemplate,\n key: blockKey,\n offsetKey: DraftOffsetKey.encode(blockKey, 0, 0)\n });\n var nextBlockKey = nodeBlock.getNextSiblingKey();\n nodeBlock = nextBlockKey ? content.getBlockForKey(nextBlockKey) : null;\n } // Group contiguous runs of blocks that have the same wrapperTemplate\n\n\n var outputBlocks = [];\n\n for (var ii = 0; ii < processedBlocks.length;) {\n var info = processedBlocks[ii];\n\n if (info.wrapperTemplate) {\n var blocks = [];\n\n do {\n blocks.push(processedBlocks[ii].block);\n ii++;\n } while (ii < processedBlocks.length && processedBlocks[ii].wrapperTemplate === info.wrapperTemplate);\n\n var wrapperElement = React.cloneElement(info.wrapperTemplate, {\n key: info.key + '-wrap',\n 'data-offset-key': info.offsetKey\n }, blocks);\n outputBlocks.push(wrapperElement);\n } else {\n outputBlocks.push(info.block);\n ii++;\n }\n }\n\n return React.createElement(\"div\", {\n \"data-contents\": \"true\"\n }, outputBlocks);\n };\n\n return DraftEditorContentsExperimental;\n}(React.Component);\n\nmodule.exports = DraftEditorContentsExperimental;","/**\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 */\n'use strict';\n\nvar _assign = require(\"object-assign\");\n\nfunction _extends() { _extends = _assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar DraftOffsetKey = require(\"./DraftOffsetKey\");\n\nvar React = require(\"react\");\n\nvar UnicodeBidi = require(\"fbjs/lib/UnicodeBidi\");\n\nvar UnicodeBidiDirection = require(\"fbjs/lib/UnicodeBidiDirection\");\n\nvar DraftEditorDecoratedLeaves = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DraftEditorDecoratedLeaves, _React$Component);\n\n function DraftEditorDecoratedLeaves() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = DraftEditorDecoratedLeaves.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n block = _this$props.block,\n children = _this$props.children,\n contentState = _this$props.contentState,\n decorator = _this$props.decorator,\n decoratorKey = _this$props.decoratorKey,\n direction = _this$props.direction,\n leafSet = _this$props.leafSet,\n text = _this$props.text;\n var blockKey = block.getKey();\n var leavesForLeafSet = leafSet.get('leaves');\n var DecoratorComponent = decorator.getComponentForKey(decoratorKey);\n var decoratorProps = decorator.getPropsForKey(decoratorKey);\n var decoratorOffsetKey = DraftOffsetKey.encode(blockKey, parseInt(decoratorKey, 10), 0);\n var decoratedText = text.slice(leavesForLeafSet.first().get('start'), leavesForLeafSet.last().get('end')); // Resetting dir to the same value on a child node makes Chrome/Firefox\n // confused on cursor movement. See http://jsfiddle.net/d157kLck/3/\n\n var dir = UnicodeBidiDirection.getHTMLDirIfDifferent(UnicodeBidi.getDirection(decoratedText), direction);\n return React.createElement(DecoratorComponent, _extends({}, decoratorProps, {\n contentState: contentState,\n decoratedText: decoratedText,\n dir: dir,\n key: decoratorOffsetKey,\n entityKey: block.getEntityAt(leafSet.get('start')),\n offsetKey: decoratorOffsetKey\n }), children);\n };\n\n return DraftEditorDecoratedLeaves;\n}(React.Component);\n\nmodule.exports = DraftEditorDecoratedLeaves;","/**\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 DataTransfer = require(\"fbjs/lib/DataTransfer\");\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar findAncestorOffsetKey = require(\"./findAncestorOffsetKey\");\n\nvar getCorrectDocumentFromNode = require(\"./getCorrectDocumentFromNode\");\n\nvar getTextContentFromFiles = require(\"./getTextContentFromFiles\");\n\nvar getUpdatedSelectionState = require(\"./getUpdatedSelectionState\");\n\nvar getWindowForNode = require(\"./getWindowForNode\");\n\nvar isEventHandled = require(\"./isEventHandled\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n/**\n * Get a SelectionState for the supplied mouse event.\n */\n\n\nfunction getSelectionForEvent(event, editorState) {\n var node = null;\n var offset = null;\n var eventTargetDocument = getCorrectDocumentFromNode(event.currentTarget);\n /* $FlowFixMe[prop-missing] (>=0.68.0 site=www,mobile) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the error\n * delete this comment and run Flow. */\n\n if (typeof eventTargetDocument.caretRangeFromPoint === 'function') {\n /* $FlowFixMe[incompatible-use] (>=0.68.0 site=www,mobile) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the error\n * delete this comment and run Flow. */\n var dropRange = eventTargetDocument.caretRangeFromPoint(event.x, event.y);\n node = dropRange.startContainer;\n offset = dropRange.startOffset;\n } else if (event.rangeParent) {\n node = event.rangeParent;\n offset = event.rangeOffset;\n } else {\n return null;\n }\n\n node = nullthrows(node);\n offset = nullthrows(offset);\n var offsetKey = nullthrows(findAncestorOffsetKey(node));\n return getUpdatedSelectionState(editorState, offsetKey, offset, offsetKey, offset);\n}\n\nvar DraftEditorDragHandler = {\n /**\n * Drag originating from input terminated.\n */\n onDragEnd: function onDragEnd(editor) {\n editor.exitCurrentMode();\n endDrag(editor);\n },\n\n /**\n * Handle data being dropped.\n */\n onDrop: function onDrop(editor, e) {\n var data = new DataTransfer(e.nativeEvent.dataTransfer);\n var editorState = editor._latestEditorState;\n var dropSelection = getSelectionForEvent(e.nativeEvent, editorState);\n e.preventDefault();\n editor._dragCount = 0;\n editor.exitCurrentMode();\n\n if (dropSelection == null) {\n return;\n }\n\n var files = data.getFiles();\n\n if (files.length > 0) {\n if (editor.props.handleDroppedFiles && isEventHandled(editor.props.handleDroppedFiles(dropSelection, 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 (fileText) {\n fileText && editor.update(insertTextAtSelection(editorState, dropSelection, fileText));\n });\n return;\n }\n\n var dragType = editor._internalDrag ? 'internal' : 'external';\n\n if (editor.props.handleDrop && isEventHandled(editor.props.handleDrop(dropSelection, data, dragType))) {// handled\n } else if (editor._internalDrag) {\n editor.update(moveText(editorState, dropSelection));\n } else {\n editor.update(insertTextAtSelection(editorState, dropSelection, data.getText()));\n }\n\n endDrag(editor);\n }\n};\n\nfunction endDrag(editor) {\n editor._internalDrag = false; // Fix issue #1383\n // Prior to React v16.5.0 onDrop breaks onSelect event:\n // https://github.com/facebook/react/issues/11379.\n // Dispatching a mouseup event on DOM node will make it go back to normal.\n\n var editorNode = editor.editorContainer;\n\n if (editorNode) {\n var mouseUpEvent = new MouseEvent('mouseup', {\n view: getWindowForNode(editorNode),\n bubbles: true,\n cancelable: true\n });\n editorNode.dispatchEvent(mouseUpEvent);\n }\n}\n\nfunction moveText(editorState, targetSelection) {\n var newContentState = DraftModifier.moveText(editorState.getCurrentContent(), editorState.getSelection(), targetSelection);\n return EditorState.push(editorState, newContentState, 'insert-fragment');\n}\n/**\n * Insert text at a specified selection.\n */\n\n\nfunction insertTextAtSelection(editorState, selection, text) {\n var newContentState = DraftModifier.insertText(editorState.getCurrentContent(), selection, text, editorState.getCurrentInlineStyle());\n return EditorState.push(editorState, newContentState, 'insert-fragment');\n}\n\nmodule.exports = DraftEditorDragHandler;","/**\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 onBeforeInput = require(\"./editOnBeforeInput\");\n\nvar onBlur = require(\"./editOnBlur\");\n\nvar onCompositionStart = require(\"./editOnCompositionStart\");\n\nvar onCopy = require(\"./editOnCopy\");\n\nvar onCut = require(\"./editOnCut\");\n\nvar onDragOver = require(\"./editOnDragOver\");\n\nvar onDragStart = require(\"./editOnDragStart\");\n\nvar onFocus = require(\"./editOnFocus\");\n\nvar onInput = require(\"./editOnInput\");\n\nvar onKeyDown = require(\"./editOnKeyDown\");\n\nvar onPaste = require(\"./editOnPaste\");\n\nvar onSelect = require(\"./editOnSelect\");\n\nvar isChrome = UserAgent.isBrowser('Chrome');\nvar isFirefox = UserAgent.isBrowser('Firefox');\nvar selectionHandler = isChrome || isFirefox ? onSelect : function (e) {};\nvar DraftEditorEditHandler = {\n onBeforeInput: onBeforeInput,\n onBlur: onBlur,\n onCompositionStart: onCompositionStart,\n onCopy: onCopy,\n onCut: onCut,\n onDragOver: onDragOver,\n onDragStart: onDragStart,\n onFocus: onFocus,\n onInput: onInput,\n onKeyDown: onKeyDown,\n onPaste: onPaste,\n onSelect: onSelect,\n // In certain cases, contenteditable on chrome does not fire the onSelect\n // event, causing problems with cursor positioning. Therefore, the selection\n // state update handler is added to more events to ensure that the selection\n // state is always synced with the actual cursor positions.\n onMouseUp: selectionHandler,\n onKeyUp: selectionHandler\n};\nmodule.exports = DraftEditorEditHandler;","\"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\nvar _assign = require(\"object-assign\");\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\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 DraftEditorTextNode = require(\"./DraftEditorTextNode.react\");\n\nvar React = require(\"react\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar isHTMLBRElement = require(\"./isHTMLBRElement\");\n\nvar setDraftEditorSelection = require(\"./setDraftEditorSelection\").setDraftEditorSelection;\n\n/**\n * All leaf nodes in the editor are spans with single text nodes. Leaf\n * elements are styled based on the merging of an optional custom style map\n * and a default style map.\n *\n * `DraftEditorLeaf` also provides a wrapper for calling into the imperative\n * DOM Selection API. In this way, top-level components can declaratively\n * maintain the selection state.\n */\nvar DraftEditorLeaf = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DraftEditorLeaf, _React$Component);\n\n function DraftEditorLeaf() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"leaf\", void 0);\n\n return _this;\n }\n\n var _proto = DraftEditorLeaf.prototype;\n\n _proto._setSelection = function _setSelection() {\n var selection = this.props.selection; // If selection state is irrelevant to the parent block, no-op.\n\n if (selection == null || !selection.getHasFocus()) {\n return;\n }\n\n var _this$props = this.props,\n block = _this$props.block,\n start = _this$props.start,\n text = _this$props.text;\n var blockKey = block.getKey();\n var end = start + text.length;\n\n if (!selection.hasEdgeWithin(blockKey, start, end)) {\n return;\n } // Determine the appropriate target node for selection. If the child\n // is not a text node, it is a
spacer. In this case, use the\n // itself as the selection target.\n\n\n var node = this.leaf;\n !node ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Missing node') : invariant(false) : void 0;\n var child = node.firstChild;\n !child ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Missing child') : invariant(false) : void 0;\n var targetNode;\n\n if (child.nodeType === Node.TEXT_NODE) {\n targetNode = child;\n } else if (isHTMLBRElement(child)) {\n targetNode = node;\n } else {\n targetNode = child.firstChild;\n !targetNode ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Missing targetNode') : invariant(false) : void 0;\n }\n\n setDraftEditorSelection(selection, targetNode, blockKey, start, end);\n };\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n var leafNode = this.leaf;\n !leafNode ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Missing leafNode') : invariant(false) : void 0;\n var shouldUpdate = leafNode.textContent !== nextProps.text || nextProps.styleSet !== this.props.styleSet || nextProps.forceSelection;\n return shouldUpdate;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this._setSelection();\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this._setSelection();\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var block = this.props.block;\n var text = this.props.text; // If the leaf is at the end of its block and ends in a soft newline, append\n // an extra line feed character. Browsers collapse trailing newline\n // characters, which leaves the cursor in the wrong place after a\n // shift+enter. The extra character repairs this.\n\n if (text.endsWith('\\n') && this.props.isLast) {\n text += '\\n';\n }\n\n var _this$props2 = this.props,\n customStyleMap = _this$props2.customStyleMap,\n customStyleFn = _this$props2.customStyleFn,\n offsetKey = _this$props2.offsetKey,\n styleSet = _this$props2.styleSet;\n var styleObj = styleSet.reduce(function (map, styleName) {\n var mergedStyles = {};\n var style = customStyleMap[styleName];\n\n if (style !== undefined && map.textDecoration !== style.textDecoration) {\n // .trim() is necessary for IE9/10/11 and Edge\n mergedStyles.textDecoration = [map.textDecoration, style.textDecoration].join(' ').trim();\n }\n\n return _assign(map, style, mergedStyles);\n }, {});\n\n if (customStyleFn) {\n var newStyles = customStyleFn(styleSet, block);\n styleObj = _assign(styleObj, newStyles);\n }\n\n return React.createElement(\"span\", {\n \"data-offset-key\": offsetKey,\n ref: function ref(_ref) {\n return _this2.leaf = _ref;\n },\n style: styleObj\n }, React.createElement(DraftEditorTextNode, null, text));\n };\n\n return DraftEditorLeaf;\n}(React.Component);\n\nmodule.exports = DraftEditorLeaf;","/**\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 */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar DraftEditorDecoratedLeaves = require(\"./DraftEditorDecoratedLeaves.react\");\n\nvar DraftEditorLeaf = require(\"./DraftEditorLeaf.react\");\n\nvar DraftOffsetKey = require(\"./DraftOffsetKey\");\n\nvar Immutable = require(\"immutable\");\n\nvar React = require(\"react\");\n\nvar cx = require(\"fbjs/lib/cx\");\n\nvar List = Immutable.List;\n\nvar DraftEditorNode = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DraftEditorNode, _React$Component);\n\n function DraftEditorNode() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = DraftEditorNode.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n block = _this$props.block,\n contentState = _this$props.contentState,\n customStyleFn = _this$props.customStyleFn,\n customStyleMap = _this$props.customStyleMap,\n decorator = _this$props.decorator,\n direction = _this$props.direction,\n forceSelection = _this$props.forceSelection,\n hasSelection = _this$props.hasSelection,\n selection = _this$props.selection,\n tree = _this$props.tree;\n var blockKey = block.getKey();\n var text = block.getText();\n var lastLeafSet = tree.size - 1;\n var children = this.props.children || tree.map(function (leafSet, ii) {\n var decoratorKey = leafSet.get('decoratorKey');\n var leavesForLeafSet = leafSet.get('leaves');\n var lastLeaf = leavesForLeafSet.size - 1;\n var Leaves = leavesForLeafSet.map(function (leaf, jj) {\n var offsetKey = DraftOffsetKey.encode(blockKey, ii, jj);\n var start = leaf.get('start');\n var end = leaf.get('end');\n return React.createElement(DraftEditorLeaf, {\n key: offsetKey,\n offsetKey: offsetKey,\n block: block,\n start: start,\n selection: hasSelection ? selection : null,\n forceSelection: forceSelection,\n text: text.slice(start, end),\n styleSet: block.getInlineStyleAt(start),\n customStyleMap: customStyleMap,\n customStyleFn: customStyleFn,\n isLast: decoratorKey === lastLeafSet && jj === lastLeaf\n });\n }).toArray();\n\n if (!decoratorKey || !decorator) {\n return Leaves;\n }\n\n return React.createElement(DraftEditorDecoratedLeaves, {\n block: block,\n children: Leaves,\n contentState: contentState,\n decorator: decorator,\n decoratorKey: decoratorKey,\n direction: direction,\n leafSet: leafSet,\n text: text,\n key: ii\n });\n }).toArray();\n return React.createElement(\"div\", {\n \"data-offset-key\": DraftOffsetKey.encode(blockKey, 0, 0),\n className: cx({\n 'public/DraftStyleDefault/block': true,\n 'public/DraftStyleDefault/ltr': direction === 'LTR',\n 'public/DraftStyleDefault/rtl': direction === 'RTL'\n })\n }, children);\n };\n\n return DraftEditorNode;\n}(React.Component);\n\nmodule.exports = DraftEditorNode;","/**\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 _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\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 React = require(\"react\");\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar isElement = require(\"./isElement\"); // In IE, spans with
tags render as two newlines. By rendering a span\n// with only a newline character, we can be sure to render a single line.\n\n\nvar useNewlineChar = UserAgent.isBrowser('IE <= 11');\n/**\n * Check whether the node should be considered a newline.\n */\n\nfunction isNewline(node) {\n return useNewlineChar ? node.textContent === '\\n' : node.tagName === 'BR';\n}\n/**\n * Placeholder elements for empty text content.\n *\n * What is this `data-text` attribute, anyway? It turns out that we need to\n * put an attribute on the lowest-level text node in order to preserve correct\n * spellcheck handling. If the is naked, Chrome and Safari may do\n * bizarre things to do the DOM -- split text nodes, create extra spans, etc.\n * If the has an attribute, this appears not to happen.\n * See http://jsfiddle.net/9khdavod/ for the failure case, and\n * http://jsfiddle.net/7pg143f7/ for the fixed case.\n */\n\n\nvar NEWLINE_A = function NEWLINE_A(ref) {\n return useNewlineChar ? React.createElement(\"span\", {\n key: \"A\",\n \"data-text\": \"true\",\n ref: ref\n }, '\\n') : React.createElement(\"br\", {\n key: \"A\",\n \"data-text\": \"true\",\n ref: ref\n });\n};\n\nvar NEWLINE_B = function NEWLINE_B(ref) {\n return useNewlineChar ? React.createElement(\"span\", {\n key: \"B\",\n \"data-text\": \"true\",\n ref: ref\n }, '\\n') : React.createElement(\"br\", {\n key: \"B\",\n \"data-text\": \"true\",\n ref: ref\n });\n};\n\n/**\n * The lowest-level component in a `DraftEditor`, the text node component\n * replaces the default React text node implementation. This allows us to\n * perform custom handling of newline behavior and avoid re-rendering text\n * nodes with DOM state that already matches the expectations of our immutable\n * editor state.\n */\nvar DraftEditorTextNode = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DraftEditorTextNode, _React$Component);\n\n function DraftEditorTextNode(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // By flipping this flag, we also keep flipping keys which forces\n // React to remount this node every time it rerenders.\n\n _defineProperty(_assertThisInitialized(_this), \"_forceFlag\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_node\", void 0);\n\n _this._forceFlag = false;\n return _this;\n }\n\n var _proto = DraftEditorTextNode.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n var node = this._node;\n var shouldBeNewline = nextProps.children === '';\n !isElement(node) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'node is not an Element') : invariant(false) : void 0;\n var elementNode = node;\n\n if (shouldBeNewline) {\n return !isNewline(elementNode);\n }\n\n return elementNode.textContent !== nextProps.children;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this._forceFlag = !this._forceFlag;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this._forceFlag = !this._forceFlag;\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n if (this.props.children === '') {\n return this._forceFlag ? NEWLINE_A(function (ref) {\n return _this2._node = ref;\n }) : NEWLINE_B(function (ref) {\n return _this2._node = ref;\n });\n }\n\n return React.createElement(\"span\", {\n key: this._forceFlag ? 'A' : 'B',\n \"data-text\": \"true\",\n ref: function ref(_ref) {\n return _this2._node = _ref;\n }\n }, this.props.children);\n };\n\n return DraftEditorTextNode;\n}(React.Component);\n\nmodule.exports = DraftEditorTextNode;","/**\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 initODS: function initODS() {},\n handleExtensionCausedError: function handleExtensionCausedError() {}\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\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 * @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\n/**\n * Identify the range to delete from a segmented entity.\n *\n * Rules:\n *\n * Example: 'John F. Kennedy'\n *\n * - Deletion from within any non-whitespace (i.e. ['John', 'F.', 'Kennedy'])\n * will return the range of that text.\n *\n * 'John F. Kennedy' -> 'John F.'\n * ^\n *\n * - Forward deletion of whitespace will remove the following section:\n *\n * 'John F. Kennedy' -> 'John Kennedy'\n * ^\n *\n * - Backward deletion of whitespace will remove the previous section:\n *\n * 'John F. Kennedy' -> 'F. Kennedy'\n * ^\n */\nvar DraftEntitySegments = {\n getRemovalRange: function getRemovalRange(selectionStart, selectionEnd, text, entityStart, direction) {\n var segments = text.split(' ');\n segments = segments.map(function (\n /*string*/\n segment,\n /*number*/\n ii) {\n if (direction === 'forward') {\n if (ii > 0) {\n return ' ' + segment;\n }\n } else if (ii < segments.length - 1) {\n return segment + ' ';\n }\n\n return segment;\n });\n var segmentStart = entityStart;\n var segmentEnd;\n var segment;\n var removalStart = null;\n var removalEnd = null;\n\n for (var jj = 0; jj < segments.length; jj++) {\n segment = segments[jj];\n segmentEnd = segmentStart + segment.length; // Our selection overlaps this segment.\n\n if (selectionStart < segmentEnd && segmentStart < selectionEnd) {\n if (removalStart !== null) {\n removalEnd = segmentEnd;\n } else {\n removalStart = segmentStart;\n removalEnd = segmentEnd;\n }\n } else if (removalStart !== null) {\n break;\n }\n\n segmentStart = segmentEnd;\n }\n\n var entityEnd = entityStart + text.length;\n var atStart = removalStart === entityStart;\n var atEnd = removalEnd === entityEnd;\n\n if (!atStart && atEnd || atStart && !atEnd) {\n if (direction === 'forward') {\n if (removalEnd !== entityEnd) {\n removalEnd++;\n }\n } else if (removalStart !== entityStart) {\n removalStart--;\n }\n }\n\n return {\n start: removalStart,\n end: removalEnd\n };\n }\n};\nmodule.exports = DraftEntitySegments;","/**\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 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\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 * @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;","/**\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 TokenizeUtil = require(\"fbjs/lib/TokenizeUtil\");\n\nvar punctuation = TokenizeUtil.getPunctuation(); // The apostrophe and curly single quotes behave in a curious way: when\n// surrounded on both sides by word characters, they behave as word chars; when\n// either neighbor is punctuation or an end of the string, they behave as\n// punctuation.\n\nvar CHAMELEON_CHARS = \"['\\u2018\\u2019]\"; // Remove the underscore, which should count as part of the removable word. The\n// \"chameleon chars\" also count as punctuation in this regex.\n\nvar WHITESPACE_AND_PUNCTUATION = '\\\\s|(?![_])' + punctuation;\nvar DELETE_STRING = '^' + '(?:' + WHITESPACE_AND_PUNCTUATION + ')*' + '(?:' + CHAMELEON_CHARS + '|(?!' + WHITESPACE_AND_PUNCTUATION + ').)*' + '(?:(?!' + WHITESPACE_AND_PUNCTUATION + ').)';\nvar DELETE_REGEX = new RegExp(DELETE_STRING);\nvar BACKSPACE_STRING = '(?:(?!' + WHITESPACE_AND_PUNCTUATION + ').)' + '(?:' + CHAMELEON_CHARS + '|(?!' + WHITESPACE_AND_PUNCTUATION + ').)*' + '(?:' + WHITESPACE_AND_PUNCTUATION + ')*' + '$';\nvar BACKSPACE_REGEX = new RegExp(BACKSPACE_STRING);\n\nfunction getRemovableWord(text, isBackward) {\n var matches = isBackward ? BACKSPACE_REGEX.exec(text) : DELETE_REGEX.exec(text);\n return matches ? matches[0] : text;\n}\n\nvar DraftRemovableWord = {\n getBackward: function getBackward(text) {\n return getRemovableWord(text, true);\n },\n getForward: function getForward(text) {\n return getRemovableWord(text, false);\n }\n};\nmodule.exports = DraftRemovableWord;","/**\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 = {\n stringify: function stringify(key) {\n return '_' + String(key);\n },\n unstringify: function unstringify(key) {\n return key.slice(1);\n }\n};\nmodule.exports = DraftStringKey;","\"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 UnicodeBidiService = require(\"fbjs/lib/UnicodeBidiService\");\n\nvar Immutable = require(\"immutable\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\nvar OrderedMap = Immutable.OrderedMap;\nvar bidiService;\nvar EditorBidiService = {\n getDirectionMap: function getDirectionMap(content, prevBidiMap) {\n if (!bidiService) {\n bidiService = new UnicodeBidiService();\n } else {\n bidiService.reset();\n }\n\n var blockMap = content.getBlockMap();\n var nextBidi = blockMap.valueSeq().map(function (block) {\n return nullthrows(bidiService).getDirection(block.getText());\n });\n var bidiMap = OrderedMap(blockMap.keySeq().zip(nextBidi));\n\n if (prevBidiMap != null && Immutable.is(prevBidiMap, bidiMap)) {\n return prevBidiMap;\n }\n\n return bidiMap;\n }\n};\nmodule.exports = EditorBidiService;","/**\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 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 DraftModifier = require(\"./DraftModifier\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar adjustBlockDepthForContentState = require(\"./adjustBlockDepthForContentState\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\nvar RichTextEditorUtil = {\n currentBlockContainsLink: function currentBlockContainsLink(editorState) {\n var selection = editorState.getSelection();\n var contentState = editorState.getCurrentContent();\n var entityMap = contentState.getEntityMap();\n return contentState.getBlockForKey(selection.getAnchorKey()).getCharacterList().slice(selection.getStartOffset(), selection.getEndOffset()).some(function (v) {\n var entity = v.getEntity();\n return !!entity && entityMap.__get(entity).getType() === 'LINK';\n });\n },\n getCurrentBlockType: function getCurrentBlockType(editorState) {\n var selection = editorState.getSelection();\n return editorState.getCurrentContent().getBlockForKey(selection.getStartKey()).getType();\n },\n getDataObjectForLinkURL: function getDataObjectForLinkURL(uri) {\n return {\n url: uri.toString()\n };\n },\n handleKeyCommand: function handleKeyCommand(editorState, command, eventTimeStamp) {\n switch (command) {\n case 'bold':\n return RichTextEditorUtil.toggleInlineStyle(editorState, 'BOLD');\n\n case 'italic':\n return RichTextEditorUtil.toggleInlineStyle(editorState, 'ITALIC');\n\n case 'underline':\n return RichTextEditorUtil.toggleInlineStyle(editorState, 'UNDERLINE');\n\n case 'code':\n return RichTextEditorUtil.toggleCode(editorState);\n\n case 'backspace':\n case 'backspace-word':\n case 'backspace-to-start-of-line':\n return RichTextEditorUtil.onBackspace(editorState);\n\n case 'delete':\n case 'delete-word':\n case 'delete-to-end-of-block':\n return RichTextEditorUtil.onDelete(editorState);\n\n default:\n // they may have custom editor commands; ignore those\n return null;\n }\n },\n insertSoftNewline: function insertSoftNewline(editorState) {\n var contentState = DraftModifier.insertText(editorState.getCurrentContent(), editorState.getSelection(), '\\n', editorState.getCurrentInlineStyle(), null);\n var newEditorState = EditorState.push(editorState, contentState, 'insert-characters');\n return EditorState.forceSelection(newEditorState, contentState.getSelectionAfter());\n },\n\n /**\n * For collapsed selections at the start of styled blocks, backspace should\n * just remove the existing style.\n */\n onBackspace: function onBackspace(editorState) {\n var selection = editorState.getSelection();\n\n if (!selection.isCollapsed() || selection.getAnchorOffset() || selection.getFocusOffset()) {\n return null;\n } // First, try to remove a preceding atomic block.\n\n\n var content = editorState.getCurrentContent();\n var startKey = selection.getStartKey();\n var blockBefore = content.getBlockBefore(startKey);\n\n if (blockBefore && blockBefore.getType() === 'atomic') {\n var blockMap = content.getBlockMap()[\"delete\"](blockBefore.getKey());\n var withoutAtomicBlock = content.merge({\n blockMap: blockMap,\n selectionAfter: selection\n });\n\n if (withoutAtomicBlock !== content) {\n return EditorState.push(editorState, withoutAtomicBlock, 'remove-range');\n }\n } // If that doesn't succeed, try to remove the current block style.\n\n\n var withoutBlockStyle = RichTextEditorUtil.tryToRemoveBlockStyle(editorState);\n\n if (withoutBlockStyle) {\n return EditorState.push(editorState, withoutBlockStyle, 'change-block-type');\n }\n\n return null;\n },\n onDelete: function onDelete(editorState) {\n var selection = editorState.getSelection();\n\n if (!selection.isCollapsed()) {\n return null;\n }\n\n var content = editorState.getCurrentContent();\n var startKey = selection.getStartKey();\n var block = content.getBlockForKey(startKey);\n var length = block.getLength(); // The cursor is somewhere within the text. Behave normally.\n\n if (selection.getStartOffset() < length) {\n return null;\n }\n\n var blockAfter = content.getBlockAfter(startKey);\n\n if (!blockAfter || blockAfter.getType() !== 'atomic') {\n return null;\n }\n\n var atomicBlockTarget = selection.merge({\n focusKey: blockAfter.getKey(),\n focusOffset: blockAfter.getLength()\n });\n var withoutAtomicBlock = DraftModifier.removeRange(content, atomicBlockTarget, 'forward');\n\n if (withoutAtomicBlock !== content) {\n return EditorState.push(editorState, withoutAtomicBlock, 'remove-range');\n }\n\n return null;\n },\n onTab: function onTab(event, editorState, maxDepth) {\n var selection = editorState.getSelection();\n var key = selection.getAnchorKey();\n\n if (key !== selection.getFocusKey()) {\n return editorState;\n }\n\n var content = editorState.getCurrentContent();\n var block = content.getBlockForKey(key);\n var type = block.getType();\n\n if (type !== 'unordered-list-item' && type !== 'ordered-list-item') {\n return editorState;\n }\n\n event.preventDefault();\n var depth = block.getDepth();\n\n if (!event.shiftKey && depth === maxDepth) {\n return editorState;\n }\n\n var withAdjustment = adjustBlockDepthForContentState(content, selection, event.shiftKey ? -1 : 1, maxDepth);\n return EditorState.push(editorState, withAdjustment, 'adjust-depth');\n },\n toggleBlockType: function toggleBlockType(editorState, blockType) {\n var selection = editorState.getSelection();\n var startKey = selection.getStartKey();\n var endKey = selection.getEndKey();\n var content = editorState.getCurrentContent();\n var target = selection; // Triple-click can lead to a selection that includes offset 0 of the\n // following block. The `SelectionState` for this case is accurate, but\n // we should avoid toggling block type for the trailing block because it\n // is a confusing interaction.\n\n if (startKey !== endKey && selection.getEndOffset() === 0) {\n var blockBefore = nullthrows(content.getBlockBefore(endKey));\n endKey = blockBefore.getKey();\n target = target.merge({\n anchorKey: startKey,\n anchorOffset: selection.getStartOffset(),\n focusKey: endKey,\n focusOffset: blockBefore.getLength(),\n isBackward: false\n });\n }\n\n var hasAtomicBlock = content.getBlockMap().skipWhile(function (_, k) {\n return k !== startKey;\n }).reverse().skipWhile(function (_, k) {\n return k !== endKey;\n }).some(function (v) {\n return v.getType() === 'atomic';\n });\n\n if (hasAtomicBlock) {\n return editorState;\n }\n\n var typeToSet = content.getBlockForKey(startKey).getType() === blockType ? 'unstyled' : blockType;\n return EditorState.push(editorState, DraftModifier.setBlockType(content, target, typeToSet), 'change-block-type');\n },\n toggleCode: function toggleCode(editorState) {\n var selection = editorState.getSelection();\n var anchorKey = selection.getAnchorKey();\n var focusKey = selection.getFocusKey();\n\n if (selection.isCollapsed() || anchorKey !== focusKey) {\n return RichTextEditorUtil.toggleBlockType(editorState, 'code-block');\n }\n\n return RichTextEditorUtil.toggleInlineStyle(editorState, 'CODE');\n },\n\n /**\n * Toggle the specified inline style for the selection. If the\n * user's selection is collapsed, apply or remove the style for the\n * internal state. If it is not collapsed, apply the change directly\n * to the document state.\n */\n toggleInlineStyle: function toggleInlineStyle(editorState, inlineStyle) {\n var selection = editorState.getSelection();\n var currentStyle = editorState.getCurrentInlineStyle(); // If the selection is collapsed, toggle the specified style on or off and\n // set the result as the new inline style override. This will then be\n // used as the inline style for the next character to be inserted.\n\n if (selection.isCollapsed()) {\n return EditorState.setInlineStyleOverride(editorState, currentStyle.has(inlineStyle) ? currentStyle.remove(inlineStyle) : currentStyle.add(inlineStyle));\n } // If characters are selected, immediately apply or remove the\n // inline style on the document state itself.\n\n\n var content = editorState.getCurrentContent();\n var newContent; // If the style is already present for the selection range, remove it.\n // Otherwise, apply it.\n\n if (currentStyle.has(inlineStyle)) {\n newContent = DraftModifier.removeInlineStyle(content, selection, inlineStyle);\n } else {\n newContent = DraftModifier.applyInlineStyle(content, selection, inlineStyle);\n }\n\n return EditorState.push(editorState, newContent, 'change-inline-style');\n },\n toggleLink: function toggleLink(editorState, targetSelection, entityKey) {\n var withoutLink = DraftModifier.applyEntity(editorState.getCurrentContent(), targetSelection, entityKey);\n return EditorState.push(editorState, withoutLink, 'apply-entity');\n },\n\n /**\n * When a collapsed cursor is at the start of a styled block, changes block\n * type to 'unstyled'. Returns null if selection does not meet that criteria.\n */\n tryToRemoveBlockStyle: function tryToRemoveBlockStyle(editorState) {\n var selection = editorState.getSelection();\n var offset = selection.getAnchorOffset();\n\n if (selection.isCollapsed() && offset === 0) {\n var key = selection.getAnchorKey();\n var content = editorState.getCurrentContent();\n var block = content.getBlockForKey(key);\n var type = block.getType();\n var blockBefore = content.getBlockBefore(key);\n\n if (type === 'code-block' && blockBefore && blockBefore.getType() === 'code-block' && blockBefore.getLength() !== 0) {\n return null;\n }\n\n if (type !== 'unstyled') {\n return DraftModifier.setBlockType(content, selection, 'unstyled');\n }\n }\n\n return null;\n }\n};\nmodule.exports = RichTextEditorUtil;","/**\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\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\nvar clipboard = null;\n/**\n * Some systems offer a \"secondary\" clipboard to allow quick internal cut\n * and paste behavior. For instance, Ctrl+K (cut) and Ctrl+Y (paste).\n */\n\nvar SecondaryClipboard = {\n cut: function cut(editorState) {\n var content = editorState.getCurrentContent();\n var selection = editorState.getSelection();\n var targetRange = null;\n\n if (selection.isCollapsed()) {\n var anchorKey = selection.getAnchorKey();\n var blockEnd = content.getBlockForKey(anchorKey).getLength();\n\n if (blockEnd === selection.getAnchorOffset()) {\n var keyAfter = content.getKeyAfter(anchorKey);\n\n if (keyAfter == null) {\n return editorState;\n }\n\n targetRange = selection.set('focusKey', keyAfter).set('focusOffset', 0);\n } else {\n targetRange = selection.set('focusOffset', blockEnd);\n }\n } else {\n targetRange = selection;\n }\n\n targetRange = nullthrows(targetRange); // TODO: This should actually append to the current state when doing\n // successive ^K commands without any other cursor movement\n\n clipboard = getContentStateFragment(content, targetRange);\n var afterRemoval = DraftModifier.removeRange(content, targetRange, 'forward');\n\n if (afterRemoval === content) {\n return editorState;\n }\n\n return EditorState.push(editorState, afterRemoval, 'remove-range');\n },\n paste: function paste(editorState) {\n if (!clipboard) {\n return editorState;\n }\n\n var newContent = DraftModifier.replaceWithFragment(editorState.getCurrentContent(), editorState.getSelection(), clipboard);\n return EditorState.push(editorState, newContent, 'insert-fragment');\n }\n};\nmodule.exports = SecondaryClipboard;","/**\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\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 CharacterMetadata = require(\"./CharacterMetadata\");\n\nfunction applyEntityToContentBlock(contentBlock, startArg, end, entityKey) {\n var start = startArg;\n var characterList = contentBlock.getCharacterList();\n\n while (start < end) {\n characterList = characterList.set(start, CharacterMetadata.applyEntity(characterList.get(start), entityKey));\n start++;\n }\n\n return contentBlock.set('characterList', characterList);\n}\n\nmodule.exports = applyEntityToContentBlock;","/**\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 applyEntityToContentBlock = require(\"./applyEntityToContentBlock\");\n\nvar Immutable = require(\"immutable\");\n\nfunction applyEntityToContentState(contentState, selectionState, entityKey) {\n var blockMap = contentState.getBlockMap();\n var startKey = selectionState.getStartKey();\n var startOffset = selectionState.getStartOffset();\n var endKey = selectionState.getEndKey();\n var endOffset = selectionState.getEndOffset();\n var newBlocks = blockMap.skipUntil(function (_, k) {\n return k === startKey;\n }).takeUntil(function (_, k) {\n return k === endKey;\n }).toOrderedMap().merge(Immutable.OrderedMap([[endKey, blockMap.get(endKey)]])).map(function (block, blockKey) {\n var sliceStart = blockKey === startKey ? startOffset : 0;\n var sliceEnd = blockKey === endKey ? endOffset : block.getLength();\n return applyEntityToContentBlock(block, sliceStart, sliceEnd, entityKey);\n });\n return contentState.merge({\n blockMap: blockMap.merge(newBlocks),\n selectionBefore: selectionState,\n selectionAfter: selectionState\n });\n}\n\nmodule.exports = applyEntityToContentState;","/**\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 _knownListItemDepthCl;\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 CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar ContentBlock = require(\"./ContentBlock\");\n\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar DefaultDraftBlockRenderMap = require(\"./DefaultDraftBlockRenderMap\");\n\nvar DraftEntity = require(\"./DraftEntity\");\n\nvar URI = require(\"fbjs/lib/URI\");\n\nvar cx = require(\"fbjs/lib/cx\");\n\nvar generateRandomKey = require(\"./generateRandomKey\");\n\nvar getSafeBodyFromHTML = require(\"./getSafeBodyFromHTML\");\n\nvar gkx = require(\"./gkx\");\n\nvar _require = require(\"immutable\"),\n List = _require.List,\n Map = _require.Map,\n OrderedSet = _require.OrderedSet;\n\nvar isHTMLAnchorElement = require(\"./isHTMLAnchorElement\");\n\nvar isHTMLBRElement = require(\"./isHTMLBRElement\");\n\nvar isHTMLElement = require(\"./isHTMLElement\");\n\nvar isHTMLImageElement = require(\"./isHTMLImageElement\");\n\nvar experimentalTreeDataSupport = gkx('draft_tree_data_support');\nvar NBSP = ' ';\nvar SPACE = ' '; // used for replacing characters in HTML\n\nvar REGEX_CR = new RegExp('\\r', 'g');\nvar REGEX_LF = new RegExp('\\n', 'g');\nvar REGEX_LEADING_LF = new RegExp('^\\n', 'g');\nvar REGEX_NBSP = new RegExp(NBSP, 'g');\nvar REGEX_CARRIAGE = new RegExp(' ?', 'g');\nvar REGEX_ZWS = new RegExp('​?', 'g'); // https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\n\nvar boldValues = ['bold', 'bolder', '500', '600', '700', '800', '900'];\nvar notBoldValues = ['light', 'lighter', 'normal', '100', '200', '300', '400'];\nvar anchorAttr = ['className', 'href', 'rel', 'target', 'title'];\nvar imgAttr = ['alt', 'className', 'height', 'src', 'width'];\nvar knownListItemDepthClasses = (_knownListItemDepthCl = {}, _defineProperty(_knownListItemDepthCl, cx('public/DraftStyleDefault/depth0'), 0), _defineProperty(_knownListItemDepthCl, cx('public/DraftStyleDefault/depth1'), 1), _defineProperty(_knownListItemDepthCl, cx('public/DraftStyleDefault/depth2'), 2), _defineProperty(_knownListItemDepthCl, cx('public/DraftStyleDefault/depth3'), 3), _defineProperty(_knownListItemDepthCl, cx('public/DraftStyleDefault/depth4'), 4), _knownListItemDepthCl);\nvar HTMLTagToRawInlineStyleMap = Map({\n b: 'BOLD',\n code: 'CODE',\n del: 'STRIKETHROUGH',\n em: 'ITALIC',\n i: 'ITALIC',\n s: 'STRIKETHROUGH',\n strike: 'STRIKETHROUGH',\n strong: 'BOLD',\n u: 'UNDERLINE',\n mark: 'HIGHLIGHT'\n});\n\n/**\n * Build a mapping from HTML tags to draftjs block types\n * out of a BlockRenderMap.\n *\n * The BlockTypeMap for the default BlockRenderMap looks like this:\n * Map({\n * h1: 'header-one',\n * h2: 'header-two',\n * h3: 'header-three',\n * h4: 'header-four',\n * h5: 'header-five',\n * h6: 'header-six',\n * blockquote: 'blockquote',\n * figure: 'atomic',\n * pre: ['code-block'],\n * div: 'unstyled',\n * p: 'unstyled',\n * li: ['ordered-list-item', 'unordered-list-item'],\n * })\n */\nvar buildBlockTypeMap = function buildBlockTypeMap(blockRenderMap) {\n var blockTypeMap = {};\n blockRenderMap.mapKeys(function (blockType, desc) {\n var elements = [desc.element];\n\n if (desc.aliasedElements !== undefined) {\n elements.push.apply(elements, desc.aliasedElements);\n }\n\n elements.forEach(function (element) {\n if (blockTypeMap[element] === undefined) {\n blockTypeMap[element] = blockType;\n } else if (typeof blockTypeMap[element] === 'string') {\n blockTypeMap[element] = [blockTypeMap[element], blockType];\n } else {\n blockTypeMap[element].push(blockType);\n }\n });\n });\n return Map(blockTypeMap);\n};\n\nvar detectInlineStyle = function detectInlineStyle(node) {\n if (isHTMLElement(node)) {\n var element = node; // Currently only used to detect preformatted inline code\n\n if (element.style.fontFamily.includes('monospace')) {\n return 'CODE';\n }\n }\n\n return null;\n};\n/**\n * If we're pasting from one DraftEditor to another we can check to see if\n * existing list item depth classes are being used and preserve this style\n */\n\n\nvar getListItemDepth = function getListItemDepth(node) {\n var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n Object.keys(knownListItemDepthClasses).some(function (depthClass) {\n if (node.classList.contains(depthClass)) {\n depth = knownListItemDepthClasses[depthClass];\n }\n });\n return depth;\n};\n/**\n * Return true if the provided HTML Element can be used to build a\n * Draftjs-compatible link.\n */\n\n\nvar isValidAnchor = function isValidAnchor(node) {\n if (!isHTMLAnchorElement(node)) {\n return false;\n }\n\n var anchorNode = node;\n\n if (!anchorNode.href || anchorNode.protocol !== 'http:' && anchorNode.protocol !== 'https:' && anchorNode.protocol !== 'mailto:' && anchorNode.protocol !== 'tel:') {\n return false;\n }\n\n try {\n // Just checking whether we can actually create a URI\n var _ = new URI(anchorNode.href);\n\n return true; // We need our catch statements to have arguments, else\n // UglifyJS (which we use for our OSS builds) will crash.\n // eslint-disable-next-line fb-www/no-unused-catch-bindings\n } catch (_) {\n return false;\n }\n};\n/**\n * Return true if the provided HTML Element can be used to build a\n * Draftjs-compatible image.\n */\n\n\nvar isValidImage = function isValidImage(node) {\n if (!isHTMLImageElement(node)) {\n return false;\n }\n\n var imageNode = node;\n return !!(imageNode.attributes.getNamedItem('src') && imageNode.attributes.getNamedItem('src').value);\n};\n/**\n * Try to guess the inline style of an HTML element based on its css\n * styles (font-weight, font-style and text-decoration).\n */\n\n\nvar styleFromNodeAttributes = function styleFromNodeAttributes(node, style) {\n if (!isHTMLElement(node)) {\n return style;\n }\n\n var htmlElement = node;\n var fontWeight = htmlElement.style.fontWeight;\n var fontStyle = htmlElement.style.fontStyle;\n var textDecoration = htmlElement.style.textDecoration;\n return style.withMutations(function (style) {\n if (boldValues.indexOf(fontWeight) >= 0) {\n style.add('BOLD');\n } else if (notBoldValues.indexOf(fontWeight) >= 0) {\n style.remove('BOLD');\n }\n\n if (fontStyle === 'italic') {\n style.add('ITALIC');\n } else if (fontStyle === 'normal') {\n style.remove('ITALIC');\n }\n\n if (textDecoration === 'underline') {\n style.add('UNDERLINE');\n }\n\n if (textDecoration === 'line-through') {\n style.add('STRIKETHROUGH');\n }\n\n if (textDecoration === 'none') {\n style.remove('UNDERLINE');\n style.remove('STRIKETHROUGH');\n }\n });\n};\n/**\n * Determine if a nodeName is a list type, 'ul' or 'ol'\n */\n\n\nvar isListNode = function isListNode(nodeName) {\n return nodeName === 'ul' || nodeName === 'ol';\n};\n/**\n * ContentBlockConfig is a mutable data structure that holds all\n * the information required to build a ContentBlock and an array of\n * all the child nodes (childConfigs).\n * It is being used a temporary data structure by the\n * ContentBlocksBuilder class.\n */\n\n\n/**\n * ContentBlocksBuilder builds a list of ContentBlocks and an Entity Map\n * out of one (or several) HTMLElement(s).\n *\n * The algorithm has two passes: first it builds a tree of ContentBlockConfigs\n * by walking through the HTML nodes and their children, then it walks the\n * ContentBlockConfigs tree to compute parents/siblings and create\n * the actual ContentBlocks.\n *\n * Typical usage is:\n * new ContentBlocksBuilder()\n * .addDOMNode(someHTMLNode)\n * .addDOMNode(someOtherHTMLNode)\n * .getContentBlocks();\n *\n */\nvar ContentBlocksBuilder = /*#__PURE__*/function () {\n // Most of the method in the class depend on the state of the content builder\n // (i.e. currentBlockType, currentDepth, currentEntity etc.). Though it may\n // be confusing at first, it made the code simpler than the alternative which\n // is to pass those values around in every call.\n // The following attributes are used to accumulate text and styles\n // as we are walking the HTML node tree.\n // Describes the future ContentState as a tree of content blocks\n // The content blocks generated from the blockConfigs\n // Entity map use to store links and images found in the HTML nodes\n // Map HTML tags to draftjs block types and disambiguation function\n function ContentBlocksBuilder(blockTypeMap, disambiguate) {\n _defineProperty(this, \"characterList\", List());\n\n _defineProperty(this, \"currentBlockType\", 'unstyled');\n\n _defineProperty(this, \"currentDepth\", 0);\n\n _defineProperty(this, \"currentEntity\", null);\n\n _defineProperty(this, \"currentText\", '');\n\n _defineProperty(this, \"wrapper\", null);\n\n _defineProperty(this, \"blockConfigs\", []);\n\n _defineProperty(this, \"contentBlocks\", []);\n\n _defineProperty(this, \"entityMap\", DraftEntity);\n\n _defineProperty(this, \"blockTypeMap\", void 0);\n\n _defineProperty(this, \"disambiguate\", void 0);\n\n this.clear();\n this.blockTypeMap = blockTypeMap;\n this.disambiguate = disambiguate;\n }\n /**\n * Clear the internal state of the ContentBlocksBuilder\n */\n\n\n var _proto = ContentBlocksBuilder.prototype;\n\n _proto.clear = function clear() {\n this.characterList = List();\n this.blockConfigs = [];\n this.currentBlockType = 'unstyled';\n this.currentDepth = 0;\n this.currentEntity = null;\n this.currentText = '';\n this.entityMap = DraftEntity;\n this.wrapper = null;\n this.contentBlocks = [];\n }\n /**\n * Add an HTMLElement to the ContentBlocksBuilder\n */\n ;\n\n _proto.addDOMNode = function addDOMNode(node) {\n var _this$blockConfigs;\n\n this.contentBlocks = [];\n this.currentDepth = 0; // Converts the HTML node to block config\n\n (_this$blockConfigs = this.blockConfigs).push.apply(_this$blockConfigs, this._toBlockConfigs([node], OrderedSet())); // There might be some left over text in the builder's\n // internal state, if so make a ContentBlock out of it.\n\n\n this._trimCurrentText();\n\n if (this.currentText !== '') {\n this.blockConfigs.push(this._makeBlockConfig());\n } // for chaining\n\n\n return this;\n }\n /**\n * Return the ContentBlocks and the EntityMap that corresponds\n * to the previously added HTML nodes.\n */\n ;\n\n _proto.getContentBlocks = function getContentBlocks() {\n if (this.contentBlocks.length === 0) {\n if (experimentalTreeDataSupport) {\n this._toContentBlocks(this.blockConfigs);\n } else {\n this._toFlatContentBlocks(this.blockConfigs);\n }\n }\n\n return {\n contentBlocks: this.contentBlocks,\n entityMap: this.entityMap\n };\n } // ***********************************WARNING******************************\n // The methods below this line are private - don't call them directly.\n\n /**\n * Generate a new ContentBlockConfig out of the current internal state\n * of the builder, then clears the internal state.\n */\n ;\n\n _proto._makeBlockConfig = function _makeBlockConfig() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var key = config.key || generateRandomKey();\n\n var block = _objectSpread({\n key: key,\n type: this.currentBlockType,\n text: this.currentText,\n characterList: this.characterList,\n depth: this.currentDepth,\n parent: null,\n children: List(),\n prevSibling: null,\n nextSibling: null,\n childConfigs: []\n }, config);\n\n this.characterList = List();\n this.currentBlockType = 'unstyled';\n this.currentText = '';\n return block;\n }\n /**\n * Converts an array of HTML elements to a multi-root tree of content\n * block configs. Some text content may be left in the builders internal\n * state to enable chaining sucessive calls.\n */\n ;\n\n _proto._toBlockConfigs = function _toBlockConfigs(nodes, style) {\n var blockConfigs = [];\n\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var nodeName = node.nodeName.toLowerCase();\n\n if (nodeName === 'body' || isListNode(nodeName)) {\n // body, ol and ul are 'block' type nodes so create a block config\n // with the text accumulated so far (if any)\n this._trimCurrentText();\n\n if (this.currentText !== '') {\n blockConfigs.push(this._makeBlockConfig());\n } // body, ol and ul nodes are ignored, but their children are inlined in\n // the parent block config.\n\n\n var wasCurrentDepth = this.currentDepth;\n var wasWrapper = this.wrapper;\n\n if (isListNode(nodeName)) {\n this.wrapper = nodeName;\n\n if (isListNode(wasWrapper)) {\n this.currentDepth++;\n }\n }\n\n blockConfigs.push.apply(blockConfigs, this._toBlockConfigs(Array.from(node.childNodes), style));\n this.currentDepth = wasCurrentDepth;\n this.wrapper = wasWrapper;\n continue;\n }\n\n var blockType = this.blockTypeMap.get(nodeName);\n\n if (blockType !== undefined) {\n // 'block' type node means we need to create a block config\n // with the text accumulated so far (if any)\n this._trimCurrentText();\n\n if (this.currentText !== '') {\n blockConfigs.push(this._makeBlockConfig());\n }\n\n var _wasCurrentDepth = this.currentDepth;\n var _wasWrapper = this.wrapper;\n this.wrapper = nodeName === 'pre' ? 'pre' : this.wrapper;\n\n if (typeof blockType !== 'string') {\n blockType = this.disambiguate(nodeName, this.wrapper) || blockType[0] || 'unstyled';\n }\n\n if (!experimentalTreeDataSupport && isHTMLElement(node) && (blockType === 'unordered-list-item' || blockType === 'ordered-list-item')) {\n var htmlElement = node;\n this.currentDepth = getListItemDepth(htmlElement, this.currentDepth);\n }\n\n var key = generateRandomKey();\n\n var childConfigs = this._toBlockConfigs(Array.from(node.childNodes), style);\n\n this._trimCurrentText();\n\n blockConfigs.push(this._makeBlockConfig({\n key: key,\n childConfigs: childConfigs,\n type: blockType\n }));\n this.currentDepth = _wasCurrentDepth;\n this.wrapper = _wasWrapper;\n continue;\n }\n\n if (nodeName === '#text') {\n this._addTextNode(node, style);\n\n continue;\n }\n\n if (nodeName === 'br') {\n this._addBreakNode(node, style);\n\n continue;\n }\n\n if (isValidImage(node)) {\n this._addImgNode(node, style);\n\n continue;\n }\n\n if (isValidAnchor(node)) {\n this._addAnchorNode(node, blockConfigs, style);\n\n continue;\n }\n\n var newStyle = style;\n\n if (HTMLTagToRawInlineStyleMap.has(nodeName)) {\n newStyle = newStyle.add(HTMLTagToRawInlineStyleMap.get(nodeName));\n }\n\n newStyle = styleFromNodeAttributes(node, newStyle);\n var inlineStyle = detectInlineStyle(node);\n\n if (inlineStyle != null) {\n newStyle = newStyle.add(inlineStyle);\n }\n\n blockConfigs.push.apply(blockConfigs, this._toBlockConfigs(Array.from(node.childNodes), newStyle));\n }\n\n return blockConfigs;\n }\n /**\n * Append a string of text to the internal buffer.\n */\n ;\n\n _proto._appendText = function _appendText(text, style) {\n var _this$characterList;\n\n this.currentText += text;\n var characterMetadata = CharacterMetadata.create({\n style: style,\n entity: this.currentEntity\n });\n this.characterList = (_this$characterList = this.characterList).push.apply(_this$characterList, Array(text.length).fill(characterMetadata));\n }\n /**\n * Trim the text in the internal buffer.\n */\n ;\n\n _proto._trimCurrentText = function _trimCurrentText() {\n var l = this.currentText.length;\n var begin = l - this.currentText.trimLeft().length;\n var end = this.currentText.trimRight().length; // We should not trim whitespaces for which an entity is defined.\n\n var entity = this.characterList.findEntry(function (characterMetadata) {\n return characterMetadata.getEntity() !== null;\n });\n begin = entity !== undefined ? Math.min(begin, entity[0]) : begin;\n entity = this.characterList.reverse().findEntry(function (characterMetadata) {\n return characterMetadata.getEntity() !== null;\n });\n end = entity !== undefined ? Math.max(end, l - entity[0]) : end;\n\n if (begin > end) {\n this.currentText = '';\n this.characterList = List();\n } else {\n this.currentText = this.currentText.slice(begin, end);\n this.characterList = this.characterList.slice(begin, end);\n }\n }\n /**\n * Add the content of an HTML text node to the internal state\n */\n ;\n\n _proto._addTextNode = function _addTextNode(node, style) {\n var text = node.textContent;\n var trimmedText = text.trim(); // If we are not in a pre block and the trimmed content is empty,\n // normalize to a single space.\n\n if (trimmedText === '' && this.wrapper !== 'pre') {\n text = ' ';\n }\n\n if (this.wrapper !== 'pre') {\n // Trim leading line feed, which is invisible in HTML\n text = text.replace(REGEX_LEADING_LF, ''); // Can't use empty string because MSWord\n\n text = text.replace(REGEX_LF, SPACE);\n }\n\n this._appendText(text, style);\n };\n\n _proto._addBreakNode = function _addBreakNode(node, style) {\n if (!isHTMLBRElement(node)) {\n return;\n }\n\n this._appendText('\\n', style);\n }\n /**\n * Add the content of an HTML img node to the internal state\n */\n ;\n\n _proto._addImgNode = function _addImgNode(node, style) {\n if (!isHTMLImageElement(node)) {\n return;\n }\n\n var image = node;\n var entityConfig = {};\n imgAttr.forEach(function (attr) {\n var imageAttribute = image.getAttribute(attr);\n\n if (imageAttribute) {\n entityConfig[attr] = imageAttribute;\n }\n }); // TODO: T15530363 update this when we remove DraftEntity entirely\n\n this.currentEntity = this.entityMap.__create('IMAGE', 'IMMUTABLE', entityConfig); // The child text node cannot just have a space or return as content (since\n // we strip those out), unless the image is for presentation only.\n // See https://github.com/facebook/draft-js/issues/231 for some context.\n\n if (gkx('draftjs_fix_paste_for_img')) {\n if (image.getAttribute('role') !== 'presentation') {\n this._appendText(\"\\uD83D\\uDCF7\", style);\n }\n } else {\n this._appendText(\"\\uD83D\\uDCF7\", style);\n }\n\n this.currentEntity = null;\n }\n /**\n * Add the content of an HTML 'a' node to the internal state. Child nodes\n * (if any) are converted to Block Configs and appended to the provided\n * blockConfig array.\n */\n ;\n\n _proto._addAnchorNode = function _addAnchorNode(node, blockConfigs, style) {\n // The check has already been made by isValidAnchor but\n // we have to do it again to keep flow happy.\n if (!isHTMLAnchorElement(node)) {\n return;\n }\n\n var anchor = node;\n var entityConfig = {};\n anchorAttr.forEach(function (attr) {\n var anchorAttribute = anchor.getAttribute(attr);\n\n if (anchorAttribute) {\n entityConfig[attr] = anchorAttribute;\n }\n });\n entityConfig.url = new URI(anchor.href).toString(); // TODO: T15530363 update this when we remove DraftEntity completely\n\n this.currentEntity = this.entityMap.__create('LINK', 'MUTABLE', entityConfig || {});\n blockConfigs.push.apply(blockConfigs, this._toBlockConfigs(Array.from(node.childNodes), style));\n this.currentEntity = null;\n }\n /**\n * Walk the BlockConfig tree, compute parent/children/siblings,\n * and generate the corresponding ContentBlockNode\n */\n ;\n\n _proto._toContentBlocks = function _toContentBlocks(blockConfigs) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var l = blockConfigs.length - 1;\n\n for (var i = 0; i <= l; i++) {\n var config = blockConfigs[i];\n config.parent = parent;\n config.prevSibling = i > 0 ? blockConfigs[i - 1].key : null;\n config.nextSibling = i < l ? blockConfigs[i + 1].key : null;\n config.children = List(config.childConfigs.map(function (child) {\n return child.key;\n }));\n this.contentBlocks.push(new ContentBlockNode(_objectSpread({}, config)));\n\n this._toContentBlocks(config.childConfigs, config.key);\n }\n }\n /**\n * Remove 'useless' container nodes from the block config hierarchy, by\n * replacing them with their children.\n */\n ;\n\n _proto._hoistContainersInBlockConfigs = function _hoistContainersInBlockConfigs(blockConfigs) {\n var _this = this;\n\n var hoisted = List(blockConfigs).flatMap(function (blockConfig) {\n // Don't mess with useful blocks\n if (blockConfig.type !== 'unstyled' || blockConfig.text !== '') {\n return [blockConfig];\n }\n\n return _this._hoistContainersInBlockConfigs(blockConfig.childConfigs);\n });\n return hoisted;\n } // ***********************************************************************\n // The two methods below are used for backward compatibility when\n // experimentalTreeDataSupport is disabled.\n\n /**\n * Same as _toContentBlocks but replaces nested blocks by their\n * text content.\n */\n ;\n\n _proto._toFlatContentBlocks = function _toFlatContentBlocks(blockConfigs) {\n var _this2 = this;\n\n var cleanConfigs = this._hoistContainersInBlockConfigs(blockConfigs);\n\n cleanConfigs.forEach(function (config) {\n var _this2$_extractTextFr = _this2._extractTextFromBlockConfigs(config.childConfigs),\n text = _this2$_extractTextFr.text,\n characterList = _this2$_extractTextFr.characterList;\n\n _this2.contentBlocks.push(new ContentBlock(_objectSpread({}, config, {\n text: config.text + text,\n characterList: config.characterList.concat(characterList)\n })));\n });\n }\n /**\n * Extract the text and the associated inline styles form an\n * array of content block configs.\n */\n ;\n\n _proto._extractTextFromBlockConfigs = function _extractTextFromBlockConfigs(blockConfigs) {\n var l = blockConfigs.length - 1;\n var text = '';\n var characterList = List();\n\n for (var i = 0; i <= l; i++) {\n var config = blockConfigs[i];\n text += config.text;\n characterList = characterList.concat(config.characterList);\n\n if (text !== '' && config.type !== 'unstyled') {\n text += '\\n';\n characterList = characterList.push(characterList.last());\n }\n\n var children = this._extractTextFromBlockConfigs(config.childConfigs);\n\n text += children.text;\n characterList = characterList.concat(children.characterList);\n }\n\n return {\n text: text,\n characterList: characterList\n };\n };\n\n return ContentBlocksBuilder;\n}();\n/**\n * Converts an HTML string to an array of ContentBlocks and an EntityMap\n * suitable to initialize the internal state of a Draftjs component.\n */\n\n\nvar convertFromHTMLToContentBlocks = function convertFromHTMLToContentBlocks(html) {\n var DOMBuilder = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getSafeBodyFromHTML;\n var blockRenderMap = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DefaultDraftBlockRenderMap;\n // Be ABSOLUTELY SURE that the dom builder you pass here won't execute\n // arbitrary code in whatever environment you're running this in. For an\n // example of how we try to do this in-browser, see getSafeBodyFromHTML.\n // Remove funky characters from the HTML string\n html = html.trim().replace(REGEX_CR, '').replace(REGEX_NBSP, SPACE).replace(REGEX_CARRIAGE, '').replace(REGEX_ZWS, ''); // Build a DOM tree out of the HTML string\n\n var safeBody = DOMBuilder(html);\n\n if (!safeBody) {\n return null;\n } // Build a BlockTypeMap out of the BlockRenderMap\n\n\n var blockTypeMap = buildBlockTypeMap(blockRenderMap); // Select the proper block type for the cases where the blockRenderMap\n // uses multiple block types for the same html tag.\n\n var disambiguate = function disambiguate(tag, wrapper) {\n if (tag === 'li') {\n return wrapper === 'ol' ? 'ordered-list-item' : 'unordered-list-item';\n }\n\n return null;\n };\n\n return new ContentBlocksBuilder(blockTypeMap, disambiguate).addDOMNode(safeBody).getContentBlocks();\n};\n\nmodule.exports = convertFromHTMLToContentBlocks;","/**\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;","/**\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 * Provides utilities for handling draftjs keys.\n *\n * @emails oncall+draft_js\n * \n * @format\n */\n'use strict';\n\nfunction notEmptyKey(key) {\n return key != null && key != '';\n}\n\nmodule.exports = {\n notEmptyKey: notEmptyKey\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 DraftModifier = require(\"./DraftModifier\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar getEntityKeyForSelection = require(\"./getEntityKeyForSelection\");\n\nvar isEventHandled = require(\"./isEventHandled\");\n\nvar isSelectionAtLeafStart = require(\"./isSelectionAtLeafStart\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\nvar setImmediate = require(\"fbjs/lib/setImmediate\"); // When nothing is focused, Firefox regards two characters, `'` and `/`, as\n// commands that should open and focus the \"quickfind\" search bar. This should\n// *never* happen while a contenteditable is focused, but as of v28, it\n// sometimes does, even when the keypress event target is the contenteditable.\n// This breaks the input. Special case these characters to ensure that when\n// they are typed, we prevent default on the event to make sure not to\n// trigger quickfind.\n\n\nvar FF_QUICKFIND_CHAR = \"'\";\nvar FF_QUICKFIND_LINK_CHAR = '/';\nvar isFirefox = UserAgent.isBrowser('Firefox');\n\nfunction mustPreventDefaultForCharacter(character) {\n return isFirefox && (character == FF_QUICKFIND_CHAR || character == FF_QUICKFIND_LINK_CHAR);\n}\n/**\n * Replace the current selection with the specified text string, with the\n * inline style and entity key applied to the newly inserted text.\n */\n\n\nfunction replaceText(editorState, text, inlineStyle, entityKey, forceSelection) {\n var contentState = DraftModifier.replaceText(editorState.getCurrentContent(), editorState.getSelection(), text, inlineStyle, entityKey);\n return EditorState.push(editorState, contentState, 'insert-characters', forceSelection);\n}\n/**\n * When `onBeforeInput` executes, the browser is attempting to insert a\n * character into the editor. Apply this character data to the document,\n * allowing native insertion if possible.\n *\n * Native insertion is encouraged in order to limit re-rendering and to\n * preserve spellcheck highlighting, which disappears or flashes if re-render\n * occurs on the relevant text nodes.\n */\n\n\nfunction editOnBeforeInput(editor, e) {\n if (editor._pendingStateFromBeforeInput !== undefined) {\n editor.update(editor._pendingStateFromBeforeInput);\n editor._pendingStateFromBeforeInput = undefined;\n }\n\n var editorState = editor._latestEditorState;\n var chars = e.data; // In some cases (ex: IE ideographic space insertion) no character data\n // is provided. There's nothing to do when this happens.\n\n if (!chars) {\n return;\n } // Allow the top-level component to handle the insertion manually. This is\n // useful when triggering interesting behaviors for a character insertion,\n // Simple examples: replacing a raw text ':)' with a smile emoji or image\n // decorator, or setting a block to be a list item after typing '- ' at the\n // start of the block.\n\n\n if (editor.props.handleBeforeInput && isEventHandled(editor.props.handleBeforeInput(chars, editorState, e.timeStamp))) {\n e.preventDefault();\n return;\n } // If selection is collapsed, conditionally allow native behavior. This\n // reduces re-renders and preserves spellcheck highlighting. If the selection\n // is not collapsed, we will re-render.\n\n\n var selection = editorState.getSelection();\n var selectionStart = selection.getStartOffset();\n var anchorKey = selection.getAnchorKey();\n\n if (!selection.isCollapsed()) {\n e.preventDefault();\n editor.update(replaceText(editorState, chars, editorState.getCurrentInlineStyle(), getEntityKeyForSelection(editorState.getCurrentContent(), editorState.getSelection()), true));\n return;\n }\n\n var newEditorState = replaceText(editorState, chars, editorState.getCurrentInlineStyle(), getEntityKeyForSelection(editorState.getCurrentContent(), editorState.getSelection()), false); // Bunch of different cases follow where we need to prevent native insertion.\n\n var mustPreventNative = false;\n\n if (!mustPreventNative) {\n // Browsers tend to insert text in weird places in the DOM when typing at\n // the start of a leaf, so we'll handle it ourselves.\n mustPreventNative = isSelectionAtLeafStart(editor._latestCommittedEditorState);\n }\n\n if (!mustPreventNative) {\n // Let's say we have a decorator that highlights hashtags. In many cases\n // we need to prevent native behavior and rerender ourselves --\n // particularly, any case *except* where the inserted characters end up\n // anywhere except exactly where you put them.\n //\n // Using [] to denote a decorated leaf, some examples:\n //\n // 1. 'hi #' and append 'f'\n // desired rendering: 'hi [#f]'\n // native rendering would be: 'hi #f' (incorrect)\n //\n // 2. 'x [#foo]' and insert '#' before 'f'\n // desired rendering: 'x #[#foo]'\n // native rendering would be: 'x [##foo]' (incorrect)\n //\n // 3. '[#foobar]' and insert ' ' between 'foo' and 'bar'\n // desired rendering: '[#foo] bar'\n // native rendering would be: '[#foo bar]' (incorrect)\n //\n // 4. '[#foo]' and delete '#' [won't use this beforeinput codepath though]\n // desired rendering: 'foo'\n // native rendering would be: '[foo]' (incorrect)\n //\n // 5. '[#foo]' and append 'b'\n // desired rendering: '[#foob]'\n // native rendering would be: '[#foob]'\n // (native insertion here would be ok for decorators like simple spans,\n // but not more complex decorators. To be safe, we need to prevent it.)\n //\n // It is safe to allow native insertion if and only if the full list of\n // decorator ranges matches what we expect native insertion to give, and\n // the range lengths have not changed. We don't need to compare the content\n // because the only possible mutation to consider here is inserting plain\n // text and decorators can't affect text content.\n var oldBlockTree = editorState.getBlockTree(anchorKey);\n var newBlockTree = newEditorState.getBlockTree(anchorKey);\n mustPreventNative = oldBlockTree.size !== newBlockTree.size || oldBlockTree.zip(newBlockTree).some(function (_ref) {\n var oldLeafSet = _ref[0],\n newLeafSet = _ref[1];\n // selectionStart is guaranteed to be selectionEnd here\n var oldStart = oldLeafSet.get('start');\n var adjustedStart = oldStart + (oldStart >= selectionStart ? chars.length : 0);\n var oldEnd = oldLeafSet.get('end');\n var adjustedEnd = oldEnd + (oldEnd >= selectionStart ? chars.length : 0);\n var newStart = newLeafSet.get('start');\n var newEnd = newLeafSet.get('end');\n var newDecoratorKey = newLeafSet.get('decoratorKey');\n return (// Different decorators\n oldLeafSet.get('decoratorKey') !== newDecoratorKey || // Different number of inline styles\n oldLeafSet.get('leaves').size !== newLeafSet.get('leaves').size || // Different effective decorator position\n adjustedStart !== newStart || adjustedEnd !== newEnd || // Decorator already existed and its length changed\n newDecoratorKey != null && newEnd - newStart !== oldEnd - oldStart\n );\n });\n }\n\n if (!mustPreventNative) {\n mustPreventNative = mustPreventDefaultForCharacter(chars);\n }\n\n if (!mustPreventNative) {\n mustPreventNative = nullthrows(newEditorState.getDirectionMap()).get(anchorKey) !== nullthrows(editorState.getDirectionMap()).get(anchorKey);\n }\n\n if (mustPreventNative) {\n e.preventDefault();\n newEditorState = EditorState.set(newEditorState, {\n forceSelection: true\n });\n editor.update(newEditorState);\n return;\n } // We made it all the way! Let the browser do its thing and insert the char.\n\n\n newEditorState = EditorState.set(newEditorState, {\n nativelyRenderedContent: newEditorState.getCurrentContent()\n }); // The native event is allowed to occur. To allow user onChange handlers to\n // change the inserted text, we wait until the text is actually inserted\n // before we actually update our state. That way when we rerender, the text\n // we see in the DOM will already have been inserted properly.\n\n editor._pendingStateFromBeforeInput = newEditorState;\n setImmediate(function () {\n if (editor._pendingStateFromBeforeInput !== undefined) {\n editor.update(editor._pendingStateFromBeforeInput);\n editor._pendingStateFromBeforeInput = undefined;\n }\n });\n}\n\nmodule.exports = editOnBeforeInput;","/**\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 containsNode = require(\"fbjs/lib/containsNode\");\n\nvar getActiveElement = require(\"fbjs/lib/getActiveElement\");\n\nfunction editOnBlur(editor, e) {\n // In a contentEditable element, when you select a range and then click\n // another active element, this does trigger a `blur` event but will not\n // remove the DOM selection from the contenteditable.\n // This is consistent across all browsers, but we prefer that the editor\n // behave like a textarea, where a `blur` event clears the DOM selection.\n // We therefore force the issue to be certain, checking whether the active\n // element is `body` to force it when blurring occurs within the window (as\n // opposed to clicking to another tab or window).\n var ownerDocument = e.currentTarget.ownerDocument;\n\n if ( // This ESLint rule conflicts with `sketchy-null-bool` flow check\n // eslint-disable-next-line no-extra-boolean-cast\n !Boolean(editor.props.preserveSelectionOnBlur) && getActiveElement(ownerDocument) === ownerDocument.body) {\n var _selection = ownerDocument.defaultView.getSelection();\n\n var editorNode = editor.editor;\n\n if (_selection.rangeCount === 1 && containsNode(editorNode, _selection.anchorNode) && containsNode(editorNode, _selection.focusNode)) {\n _selection.removeAllRanges();\n }\n }\n\n var editorState = editor._latestEditorState;\n var currentSelection = editorState.getSelection();\n\n if (!currentSelection.getHasFocus()) {\n return;\n }\n\n var selection = currentSelection.set('hasFocus', false);\n editor.props.onBlur && editor.props.onBlur(e);\n editor.update(EditorState.acceptSelection(editorState, selection));\n}\n\nmodule.exports = editOnBlur;","/**\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 * The user has begun using an IME input system. Switching to `composite` mode\n * allows handling composition input and disables other edit behavior.\n */\n\n\nfunction editOnCompositionStart(editor, e) {\n editor.setMode('composite');\n editor.update(EditorState.set(editor._latestEditorState, {\n inCompositionMode: true\n })); // Allow composition handler to interpret the compositionstart event\n\n editor._onCompositionStart(e);\n}\n\nmodule.exports = editOnCompositionStart;","/**\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 getFragmentFromSelection = require(\"./getFragmentFromSelection\");\n/**\n * If we have a selection, create a ContentState fragment and store\n * it in our internal clipboard. Subsequent paste events will use this\n * fragment if no external clipboard data is supplied.\n */\n\n\nfunction editOnCopy(editor, e) {\n var editorState = editor._latestEditorState;\n var selection = editorState.getSelection(); // No selection, so there's nothing to copy.\n\n if (selection.isCollapsed()) {\n e.preventDefault();\n return;\n }\n\n editor.setClipboard(getFragmentFromSelection(editor._latestEditorState));\n}\n\nmodule.exports = editOnCopy;","/**\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 Style = require(\"fbjs/lib/Style\");\n\nvar getFragmentFromSelection = require(\"./getFragmentFromSelection\");\n\nvar getScrollPosition = require(\"fbjs/lib/getScrollPosition\");\n\nvar isNode = require(\"./isInstanceOfNode\");\n/**\n * On `cut` events, native behavior is allowed to occur so that the system\n * clipboard is set properly. This means that we need to take steps to recover\n * the editor DOM state after the `cut` has occurred in order to maintain\n * control of the component.\n *\n * In addition, we can keep a copy of the removed fragment, including all\n * styles and entities, for use as an internal paste.\n */\n\n\nfunction editOnCut(editor, e) {\n var editorState = editor._latestEditorState;\n var selection = editorState.getSelection();\n var element = e.target;\n var scrollPosition; // No selection, so there's nothing to cut.\n\n if (selection.isCollapsed()) {\n e.preventDefault();\n return;\n } // Track the current scroll position so that it can be forced back in place\n // after the editor regains control of the DOM.\n\n\n if (isNode(element)) {\n var node = element;\n scrollPosition = getScrollPosition(Style.getScrollParent(node));\n }\n\n var fragment = getFragmentFromSelection(editorState);\n editor.setClipboard(fragment); // Set `cut` mode to disable all event handling temporarily.\n\n editor.setMode('cut'); // Let native `cut` behavior occur, then recover control.\n\n setTimeout(function () {\n editor.restoreEditorDOM(scrollPosition);\n editor.exitCurrentMode();\n editor.update(removeFragment(editorState));\n }, 0);\n}\n\nfunction removeFragment(editorState) {\n var newContent = DraftModifier.removeRange(editorState.getCurrentContent(), editorState.getSelection(), 'forward');\n return EditorState.push(editorState, newContent, 'remove-range');\n}\n\nmodule.exports = editOnCut;","/**\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 * Drag behavior has begun from outside the editor element.\n */\nfunction editOnDragOver(editor, e) {\n editor.setMode('drag');\n e.preventDefault();\n}\n\nmodule.exports = editOnDragOver;","/**\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 * A `dragstart` event has begun within the text editor component.\n */\nfunction editOnDragStart(editor) {\n editor._internalDrag = true;\n editor.setMode('drag');\n}\n\nmodule.exports = editOnDragStart;","/**\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 UserAgent = require(\"fbjs/lib/UserAgent\");\n\nfunction editOnFocus(editor, e) {\n var editorState = editor._latestEditorState;\n var currentSelection = editorState.getSelection();\n\n if (currentSelection.getHasFocus()) {\n return;\n }\n\n var selection = currentSelection.set('hasFocus', true);\n editor.props.onFocus && editor.props.onFocus(e); // When the tab containing this text editor is hidden and the user does a\n // find-in-page in a _different_ tab, Chrome on Mac likes to forget what the\n // selection was right after sending this focus event and (if you let it)\n // moves the cursor back to the beginning of the editor, so we force the\n // selection here instead of simply accepting it in order to preserve the\n // old cursor position. See https://crbug.com/540004.\n // But it looks like this is fixed in Chrome 60.0.3081.0.\n // Other browsers also don't have this bug, so we prefer to acceptSelection\n // when possible, to ensure that unfocusing and refocusing a Draft editor\n // doesn't preserve the selection, matching how textareas work.\n\n if (UserAgent.isBrowser('Chrome < 60.0.3081.0')) {\n editor.update(EditorState.forceSelection(editorState, selection));\n } else {\n editor.update(EditorState.acceptSelection(editorState, selection));\n }\n}\n\nmodule.exports = editOnFocus;","/**\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 DraftOffsetKey = require(\"./DraftOffsetKey\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar _require = require(\"./draftKeyUtils\"),\n notEmptyKey = _require.notEmptyKey;\n\nvar findAncestorOffsetKey = require(\"./findAncestorOffsetKey\");\n\nvar keyCommandPlainBackspace = require(\"./keyCommandPlainBackspace\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\nvar isGecko = UserAgent.isEngine('Gecko');\nvar DOUBLE_NEWLINE = '\\n\\n';\n\nfunction onInputType(inputType, editorState) {\n switch (inputType) {\n case 'deleteContentBackward':\n return keyCommandPlainBackspace(editorState);\n }\n\n return editorState;\n}\n/**\n * This function serves two purposes\n *\n * 1. To update the editorState and call onChange method with the new\n * editorState. This editorState is calculated in editOnBeforeInput but the\n * onChange method is not called with the new state until this method does it.\n * It is done to handle a specific case where certain character inputs might\n * be replaced with something else. E.g. snippets ('rc' might be replaced\n * with boilerplate code for react component). More information on the\n * exact problem can be found here -\n * https://github.com/facebook/draft-js/commit/07892ba479bd4dfc6afd1e0ed179aaf51cd138b1\n *\n * 2. intended to handle spellcheck and autocorrect changes,\n * which occur in the DOM natively without any opportunity to observe or\n * interpret the changes before they occur.\n *\n * The `input` event fires in contentEditable elements reliably for non-IE\n * browsers, immediately after changes occur to the editor DOM. Since our other\n * handlers override or otherwise handle cover other varieties of text input,\n * the DOM state should match the model in all controlled input cases. Thus,\n * when an `input` change leads to a DOM/model mismatch, the change should be\n * due to a spellcheck change, and we can incorporate it into our model.\n */\n\n\nfunction editOnInput(editor, e) {\n if (editor._pendingStateFromBeforeInput !== undefined) {\n editor.update(editor._pendingStateFromBeforeInput);\n editor._pendingStateFromBeforeInput = undefined;\n } // at this point editor is not null for sure (after input)\n\n\n var castedEditorElement = editor.editor;\n var domSelection = castedEditorElement.ownerDocument.defaultView.getSelection();\n var anchorNode = domSelection.anchorNode,\n isCollapsed = domSelection.isCollapsed;\n var isNotTextOrElementNode = (anchorNode === null || anchorNode === void 0 ? void 0 : anchorNode.nodeType) !== Node.TEXT_NODE && (anchorNode === null || anchorNode === void 0 ? void 0 : anchorNode.nodeType) !== Node.ELEMENT_NODE;\n\n if (anchorNode == null || isNotTextOrElementNode) {\n // TODO: (t16149272) figure out context for this change\n return;\n }\n\n if (anchorNode.nodeType === Node.TEXT_NODE && (anchorNode.previousSibling !== null || anchorNode.nextSibling !== null)) {\n // When typing at the beginning of a visual line, Chrome splits the text\n // nodes into two. Why? No one knows. This commit is suspicious:\n // https://chromium.googlesource.com/chromium/src/+/a3b600981286b135632371477f902214c55a1724\n // To work around, we'll merge the sibling text nodes back into this one.\n var span = anchorNode.parentNode;\n\n if (span == null) {\n // Handle null-parent case.\n return;\n }\n\n anchorNode.nodeValue = span.textContent;\n\n for (var child = span.firstChild; child != null; child = child.nextSibling) {\n if (child !== anchorNode) {\n span.removeChild(child);\n }\n }\n }\n\n var domText = anchorNode.textContent;\n var editorState = editor._latestEditorState;\n var offsetKey = nullthrows(findAncestorOffsetKey(anchorNode));\n\n var _DraftOffsetKey$decod = DraftOffsetKey.decode(offsetKey),\n blockKey = _DraftOffsetKey$decod.blockKey,\n decoratorKey = _DraftOffsetKey$decod.decoratorKey,\n leafKey = _DraftOffsetKey$decod.leafKey;\n\n var _editorState$getBlock = editorState.getBlockTree(blockKey).getIn([decoratorKey, 'leaves', leafKey]),\n start = _editorState$getBlock.start,\n end = _editorState$getBlock.end;\n\n var content = editorState.getCurrentContent();\n var block = content.getBlockForKey(blockKey);\n var modelText = block.getText().slice(start, end); // Special-case soft newlines here. If the DOM text ends in a soft newline,\n // we will have manually inserted an extra soft newline in DraftEditorLeaf.\n // We want to remove this extra newline for the purpose of our comparison\n // of DOM and model text.\n\n if (domText.endsWith(DOUBLE_NEWLINE)) {\n domText = domText.slice(0, -1);\n } // No change -- the DOM is up to date. Nothing to do here.\n\n\n if (domText === modelText) {\n // This can be buggy for some Android keyboards because they don't fire\n // standard onkeydown/pressed events and only fired editOnInput\n // so domText is already changed by the browser and ends up being equal\n // to modelText unexpectedly.\n // Newest versions of Android support the dom-inputevent-inputtype\n // and we can use the `inputType` to properly apply the state changes.\n\n /* $FlowFixMe[prop-missing] inputType is only defined on a draft of a\n * standard. https://w3c.github.io/input-events/#dom-inputevent-inputtype\n */\n var inputType = e.nativeEvent.inputType;\n\n if (inputType) {\n var newEditorState = onInputType(inputType, editorState);\n\n if (newEditorState !== editorState) {\n editor.restoreEditorDOM();\n editor.update(newEditorState);\n return;\n }\n }\n\n return;\n }\n\n var selection = editorState.getSelection(); // We'll replace the entire leaf with the text content of the target.\n\n var targetRange = selection.merge({\n anchorOffset: start,\n focusOffset: end,\n isBackward: false\n });\n var entityKey = block.getEntityAt(start);\n var entity = notEmptyKey(entityKey) ? content.getEntity(entityKey) : null;\n var entityType = entity != null ? entity.getMutability() : null;\n var preserveEntity = entityType === 'MUTABLE'; // Immutable or segmented entities cannot properly be handled by the\n // default browser undo, so we have to use a different change type to\n // force using our internal undo method instead of falling through to the\n // native browser undo.\n\n var changeType = preserveEntity ? 'spellcheck-change' : 'apply-entity';\n var newContent = DraftModifier.replaceText(content, targetRange, domText, block.getInlineStyleAt(start), preserveEntity ? block.getEntityAt(start) : null);\n var anchorOffset, focusOffset, startOffset, endOffset;\n\n if (isGecko) {\n // Firefox selection does not change while the context menu is open, so\n // we preserve the anchor and focus values of the DOM selection.\n anchorOffset = domSelection.anchorOffset;\n focusOffset = domSelection.focusOffset;\n startOffset = start + Math.min(anchorOffset, focusOffset);\n endOffset = startOffset + Math.abs(anchorOffset - focusOffset);\n anchorOffset = startOffset;\n focusOffset = endOffset;\n } else {\n // Browsers other than Firefox may adjust DOM selection while the context\n // menu is open, and Safari autocorrect is prone to providing an inaccurate\n // DOM selection. Don't trust it. Instead, use our existing SelectionState\n // and adjust it based on the number of characters changed during the\n // mutation.\n var charDelta = domText.length - modelText.length;\n startOffset = selection.getStartOffset();\n endOffset = selection.getEndOffset();\n anchorOffset = isCollapsed ? endOffset + charDelta : startOffset;\n focusOffset = endOffset + charDelta;\n } // Segmented entities are completely or partially removed when their\n // text content changes. For this case we do not want any text to be selected\n // after the change, so we are not merging the selection.\n\n\n var contentWithAdjustedDOMSelection = newContent.merge({\n selectionBefore: content.getSelectionAfter(),\n selectionAfter: selection.merge({\n anchorOffset: anchorOffset,\n focusOffset: focusOffset\n })\n });\n editor.update(EditorState.push(editorState, contentWithAdjustedDOMSelection, changeType));\n}\n\nmodule.exports = editOnInput;","/**\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 KeyBindingUtil = require(\"./KeyBindingUtil\");\n\nvar Keys = require(\"fbjs/lib/Keys\");\n\nvar SecondaryClipboard = require(\"./SecondaryClipboard\");\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar isEventHandled = require(\"./isEventHandled\");\n\nvar keyCommandBackspaceToStartOfLine = require(\"./keyCommandBackspaceToStartOfLine\");\n\nvar keyCommandBackspaceWord = require(\"./keyCommandBackspaceWord\");\n\nvar keyCommandDeleteWord = require(\"./keyCommandDeleteWord\");\n\nvar keyCommandInsertNewline = require(\"./keyCommandInsertNewline\");\n\nvar keyCommandMoveSelectionToEndOfBlock = require(\"./keyCommandMoveSelectionToEndOfBlock\");\n\nvar keyCommandMoveSelectionToStartOfBlock = require(\"./keyCommandMoveSelectionToStartOfBlock\");\n\nvar keyCommandPlainBackspace = require(\"./keyCommandPlainBackspace\");\n\nvar keyCommandPlainDelete = require(\"./keyCommandPlainDelete\");\n\nvar keyCommandTransposeCharacters = require(\"./keyCommandTransposeCharacters\");\n\nvar keyCommandUndo = require(\"./keyCommandUndo\");\n\nvar isOptionKeyCommand = KeyBindingUtil.isOptionKeyCommand;\nvar isChrome = UserAgent.isBrowser('Chrome');\n/**\n * Map a `DraftEditorCommand` command value to a corresponding function.\n */\n\nfunction onKeyCommand(command, editorState, e) {\n switch (command) {\n case 'redo':\n return EditorState.redo(editorState);\n\n case 'delete':\n return keyCommandPlainDelete(editorState);\n\n case 'delete-word':\n return keyCommandDeleteWord(editorState);\n\n case 'backspace':\n return keyCommandPlainBackspace(editorState);\n\n case 'backspace-word':\n return keyCommandBackspaceWord(editorState);\n\n case 'backspace-to-start-of-line':\n return keyCommandBackspaceToStartOfLine(editorState, e);\n\n case 'split-block':\n return keyCommandInsertNewline(editorState);\n\n case 'transpose-characters':\n return keyCommandTransposeCharacters(editorState);\n\n case 'move-selection-to-start-of-block':\n return keyCommandMoveSelectionToStartOfBlock(editorState);\n\n case 'move-selection-to-end-of-block':\n return keyCommandMoveSelectionToEndOfBlock(editorState);\n\n case 'secondary-cut':\n return SecondaryClipboard.cut(editorState);\n\n case 'secondary-paste':\n return SecondaryClipboard.paste(editorState);\n\n default:\n return editorState;\n }\n}\n/**\n * Intercept keydown behavior to handle keys and commands manually, if desired.\n *\n * Keydown combinations may be mapped to `DraftCommand` values, which may\n * correspond to command functions that modify the editor or its contents.\n *\n * See `getDefaultKeyBinding` for defaults. Alternatively, the top-level\n * component may provide a custom mapping via the `keyBindingFn` prop.\n */\n\n\nfunction editOnKeyDown(editor, e) {\n var keyCode = e.which;\n var editorState = editor._latestEditorState;\n\n function callDeprecatedHandler(handlerName) {\n var deprecatedHandler = editor.props[handlerName];\n\n if (deprecatedHandler) {\n deprecatedHandler(e);\n return true;\n } else {\n return false;\n }\n }\n\n switch (keyCode) {\n case Keys.RETURN:\n e.preventDefault(); // The top-level component may manually handle newline insertion. If\n // no special handling is performed, fall through to command handling.\n\n if (editor.props.handleReturn && isEventHandled(editor.props.handleReturn(e, editorState))) {\n return;\n }\n\n break;\n\n case Keys.ESC:\n e.preventDefault();\n\n if (callDeprecatedHandler('onEscape')) {\n return;\n }\n\n break;\n\n case Keys.TAB:\n if (callDeprecatedHandler('onTab')) {\n return;\n }\n\n break;\n\n case Keys.UP:\n if (callDeprecatedHandler('onUpArrow')) {\n return;\n }\n\n break;\n\n case Keys.RIGHT:\n if (callDeprecatedHandler('onRightArrow')) {\n return;\n }\n\n break;\n\n case Keys.DOWN:\n if (callDeprecatedHandler('onDownArrow')) {\n return;\n }\n\n break;\n\n case Keys.LEFT:\n if (callDeprecatedHandler('onLeftArrow')) {\n return;\n }\n\n break;\n\n case Keys.SPACE:\n // Prevent Chrome on OSX behavior where option + space scrolls.\n if (isChrome && isOptionKeyCommand(e)) {\n e.preventDefault();\n }\n\n }\n\n var command = editor.props.keyBindingFn(e); // If no command is specified, allow keydown event to continue.\n\n if (command == null || command === '') {\n if (keyCode === Keys.SPACE && isChrome && isOptionKeyCommand(e)) {\n // The default keydown event has already been prevented in order to stop\n // Chrome from scrolling. Insert a nbsp into the editor as OSX would for\n // other browsers.\n var contentState = DraftModifier.replaceText(editorState.getCurrentContent(), editorState.getSelection(), \"\\xA0\");\n editor.update(EditorState.push(editorState, contentState, 'insert-characters'));\n }\n\n return;\n }\n\n if (command === 'undo') {\n // Since undo requires some special updating behavior to keep the editor\n // in sync, handle it separately.\n keyCommandUndo(e, editorState, editor.update);\n return;\n } // At this point, we know that we're handling a command of some kind, so\n // we don't want to insert a character following the keydown.\n\n\n e.preventDefault(); // Allow components higher up the tree to handle the command first.\n\n if (editor.props.handleKeyCommand && isEventHandled(editor.props.handleKeyCommand(command, editorState, e.timeStamp))) {\n return;\n }\n\n var newState = onKeyCommand(command, editorState, e);\n\n if (newState !== editorState) {\n editor.update(newState);\n }\n}\n\nmodule.exports = editOnKeyDown;","/**\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\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 * @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;","\"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 UnicodeUtils = require(\"fbjs/lib/UnicodeUtils\");\n\nvar getCorrectDocumentFromNode = require(\"./getCorrectDocumentFromNode\");\n\nvar getRangeClientRects = require(\"./getRangeClientRects\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n/**\n * Return the computed line height, in pixels, for the provided element.\n */\n\n\nfunction getLineHeightPx(element) {\n var computed = getComputedStyle(element);\n var correctDocument = getCorrectDocumentFromNode(element);\n var div = correctDocument.createElement('div');\n div.style.fontFamily = computed.fontFamily;\n div.style.fontSize = computed.fontSize;\n div.style.fontStyle = computed.fontStyle;\n div.style.fontWeight = computed.fontWeight;\n div.style.lineHeight = computed.lineHeight;\n div.style.position = 'absolute';\n div.textContent = 'M';\n var documentBody = correctDocument.body;\n !documentBody ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Missing document.body') : invariant(false) : void 0; // forced layout here\n\n documentBody.appendChild(div);\n var rect = div.getBoundingClientRect();\n documentBody.removeChild(div);\n return rect.height;\n}\n/**\n * Return whether every ClientRect in the provided list lies on the same line.\n *\n * We assume that the rects on the same line all contain the baseline, so the\n * lowest top line needs to be above the highest bottom line (i.e., if you were\n * to project the rects onto the y-axis, their intersection would be nonempty).\n *\n * In addition, we require that no two boxes are lineHeight (or more) apart at\n * either top or bottom, which helps protect against false positives for fonts\n * with extremely large glyph heights (e.g., with a font size of 17px, Zapfino\n * produces rects of height 58px!).\n */\n\n\nfunction areRectsOnOneLine(rects, lineHeight) {\n var minTop = Infinity;\n var minBottom = Infinity;\n var maxTop = -Infinity;\n var maxBottom = -Infinity;\n\n for (var ii = 0; ii < rects.length; ii++) {\n var rect = rects[ii];\n\n if (rect.width === 0 || rect.width === 1) {\n // When a range starts or ends a soft wrap, many browsers (Chrome, IE,\n // Safari) include an empty rect on the previous or next line. When the\n // text lies in a container whose position is not integral (e.g., from\n // margin: auto), Safari makes these empty rects have width 1 (instead of\n // 0). Having one-pixel-wide characters seems unlikely (and most browsers\n // report widths in subpixel precision anyway) so it's relatively safe to\n // skip over them.\n continue;\n }\n\n minTop = Math.min(minTop, rect.top);\n minBottom = Math.min(minBottom, rect.bottom);\n maxTop = Math.max(maxTop, rect.top);\n maxBottom = Math.max(maxBottom, rect.bottom);\n }\n\n return maxTop <= minBottom && maxTop - minTop < lineHeight && maxBottom - minBottom < lineHeight;\n}\n/**\n * Return the length of a node, as used by Range offsets.\n */\n\n\nfunction getNodeLength(node) {\n // http://www.w3.org/TR/dom/#concept-node-length\n switch (node.nodeType) {\n case Node.DOCUMENT_TYPE_NODE:\n return 0;\n\n case Node.TEXT_NODE:\n case Node.PROCESSING_INSTRUCTION_NODE:\n case Node.COMMENT_NODE:\n return node.length;\n\n default:\n return node.childNodes.length;\n }\n}\n/**\n * Given a collapsed range, move the start position backwards as far as\n * possible while the range still spans only a single line.\n */\n\n\nfunction expandRangeToStartOfLine(range) {\n !range.collapsed ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'expandRangeToStartOfLine: Provided range is not collapsed.') : invariant(false) : void 0;\n range = range.cloneRange();\n var containingElement = range.startContainer;\n\n if (containingElement.nodeType !== 1) {\n containingElement = containingElement.parentNode;\n }\n\n var lineHeight = getLineHeightPx(containingElement); // Imagine our text looks like:\n //
once upon a time, there was a boy\n // who lived under^ the\n // stairs in a small closet.
\n // where the caret represents the cursor. First, we crawl up the tree until\n // the range spans multiple lines (setting the start point to before\n // \"\", then before \"
\"), then at each level we do a search to\n // find the latest point which is still on a previous line. We'll find that\n // the break point is inside the span, then inside the , then in its text\n // node child, the actual break point before \"who\".\n\n var bestContainer = range.endContainer;\n var bestOffset = range.endOffset;\n range.setStart(range.startContainer, 0);\n\n while (areRectsOnOneLine(getRangeClientRects(range), lineHeight)) {\n bestContainer = range.startContainer;\n bestOffset = range.startOffset;\n !bestContainer.parentNode ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Found unexpected detached subtree when traversing.') : invariant(false) : void 0;\n range.setStartBefore(bestContainer);\n\n if (bestContainer.nodeType === 1 && getComputedStyle(bestContainer).display !== 'inline') {\n // The start of the line is never in a different block-level container.\n break;\n }\n } // In the above example, range now spans from \"
\" to \"under\",\n // bestContainer is
, and bestOffset is 1 (index of 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 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;","/**\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;","/**\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 DraftEntitySegments = require(\"./DraftEntitySegments\");\n\nvar getRangesForDraftEntity = require(\"./getRangesForDraftEntity\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n/**\n * Given a SelectionState and a removal direction, determine the entire range\n * that should be removed from a ContentState. This is based on any entities\n * within the target, with their `mutability` values taken into account.\n *\n * For instance, if we are attempting to remove part of an \"immutable\" entity\n * range, the entire entity must be removed. The returned `SelectionState`\n * will be adjusted accordingly.\n */\n\n\nfunction getCharacterRemovalRange(entityMap, startBlock, endBlock, selectionState, direction) {\n var start = selectionState.getStartOffset();\n var end = selectionState.getEndOffset();\n var startEntityKey = startBlock.getEntityAt(start);\n var endEntityKey = endBlock.getEntityAt(end - 1);\n\n if (!startEntityKey && !endEntityKey) {\n return selectionState;\n }\n\n var newSelectionState = selectionState;\n\n if (startEntityKey && startEntityKey === endEntityKey) {\n newSelectionState = getEntityRemovalRange(entityMap, startBlock, newSelectionState, direction, startEntityKey, true, true);\n } else if (startEntityKey && endEntityKey) {\n var startSelectionState = getEntityRemovalRange(entityMap, startBlock, newSelectionState, direction, startEntityKey, false, true);\n var endSelectionState = getEntityRemovalRange(entityMap, endBlock, newSelectionState, direction, endEntityKey, false, false);\n newSelectionState = newSelectionState.merge({\n anchorOffset: startSelectionState.getAnchorOffset(),\n focusOffset: endSelectionState.getFocusOffset(),\n isBackward: false\n });\n } else if (startEntityKey) {\n var _startSelectionState = getEntityRemovalRange(entityMap, startBlock, newSelectionState, direction, startEntityKey, false, true);\n\n newSelectionState = newSelectionState.merge({\n anchorOffset: _startSelectionState.getStartOffset(),\n isBackward: false\n });\n } else if (endEntityKey) {\n var _endSelectionState = getEntityRemovalRange(entityMap, endBlock, newSelectionState, direction, endEntityKey, false, false);\n\n newSelectionState = newSelectionState.merge({\n focusOffset: _endSelectionState.getEndOffset(),\n isBackward: false\n });\n }\n\n return newSelectionState;\n}\n\nfunction getEntityRemovalRange(entityMap, block, selectionState, direction, entityKey, isEntireSelectionWithinEntity, isEntityAtStart) {\n var start = selectionState.getStartOffset();\n var end = selectionState.getEndOffset();\n\n var entity = entityMap.__get(entityKey);\n\n var mutability = entity.getMutability();\n var sideToConsider = isEntityAtStart ? start : end; // `MUTABLE` entities can just have the specified range of text removed\n // directly. No adjustments are needed.\n\n if (mutability === 'MUTABLE') {\n return selectionState;\n } // Find the entity range that overlaps with our removal range.\n\n\n var entityRanges = getRangesForDraftEntity(block, entityKey).filter(function (range) {\n return sideToConsider <= range.end && sideToConsider >= range.start;\n });\n !(entityRanges.length == 1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'There should only be one entity range within this removal range.') : invariant(false) : void 0;\n var entityRange = entityRanges[0]; // For `IMMUTABLE` entity types, we will remove the entire entity range.\n\n if (mutability === 'IMMUTABLE') {\n return selectionState.merge({\n anchorOffset: entityRange.start,\n focusOffset: entityRange.end,\n isBackward: false\n });\n } // For `SEGMENTED` entity types, determine the appropriate segment to\n // remove.\n\n\n if (!isEntireSelectionWithinEntity) {\n if (isEntityAtStart) {\n end = entityRange.end;\n } else {\n start = entityRange.start;\n }\n }\n\n var removalRange = DraftEntitySegments.getRemovalRange(start, end, block.getText().slice(entityRange.start, entityRange.end), entityRange.start, direction);\n return selectionState.merge({\n anchorOffset: removalRange.start,\n focusOffset: removalRange.end,\n isBackward: false\n });\n}\n\nmodule.exports = getCharacterRemovalRange;","/**\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 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\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\nvar KeyBindingUtil = require(\"./KeyBindingUtil\");\n\nvar Keys = require(\"fbjs/lib/Keys\");\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar isOSX = UserAgent.isPlatform('Mac OS X'); // Firefox on OSX had a bug resulting in navigation instead of cursor movement.\n// This bug was fixed in Firefox 29. Feature detection is virtually impossible\n// so we just check the version number. See #342765.\n\nvar shouldFixFirefoxMovement = isOSX && UserAgent.isBrowser('Firefox < 29');\nvar hasCommandModifier = KeyBindingUtil.hasCommandModifier,\n isCtrlKeyCommand = KeyBindingUtil.isCtrlKeyCommand;\n\nfunction shouldRemoveWord(e) {\n return isOSX && e.altKey || isCtrlKeyCommand(e);\n}\n/**\n * Get the appropriate undo/redo command for a Z key command.\n */\n\n\nfunction getZCommand(e) {\n if (!hasCommandModifier(e)) {\n return null;\n }\n\n return e.shiftKey ? 'redo' : 'undo';\n}\n\nfunction getDeleteCommand(e) {\n // Allow default \"cut\" behavior for PCs on Shift + Delete.\n if (!isOSX && e.shiftKey) {\n return null;\n }\n\n return shouldRemoveWord(e) ? 'delete-word' : 'delete';\n}\n\nfunction getBackspaceCommand(e) {\n if (hasCommandModifier(e) && isOSX) {\n return 'backspace-to-start-of-line';\n }\n\n return shouldRemoveWord(e) ? 'backspace-word' : 'backspace';\n}\n/**\n * Retrieve a bound key command for the given event.\n */\n\n\nfunction getDefaultKeyBinding(e) {\n switch (e.keyCode) {\n case 66:\n // B\n return hasCommandModifier(e) ? 'bold' : null;\n\n case 68:\n // D\n return isCtrlKeyCommand(e) ? 'delete' : null;\n\n case 72:\n // H\n return isCtrlKeyCommand(e) ? 'backspace' : null;\n\n case 73:\n // I\n return hasCommandModifier(e) ? 'italic' : null;\n\n case 74:\n // J\n return hasCommandModifier(e) ? 'code' : null;\n\n case 75:\n // K\n return isOSX && isCtrlKeyCommand(e) ? 'secondary-cut' : null;\n\n case 77:\n // M\n return isCtrlKeyCommand(e) ? 'split-block' : null;\n\n case 79:\n // O\n return isCtrlKeyCommand(e) ? 'split-block' : null;\n\n case 84:\n // T\n return isOSX && isCtrlKeyCommand(e) ? 'transpose-characters' : null;\n\n case 85:\n // U\n return hasCommandModifier(e) ? 'underline' : null;\n\n case 87:\n // W\n return isOSX && isCtrlKeyCommand(e) ? 'backspace-word' : null;\n\n case 89:\n // Y\n if (isCtrlKeyCommand(e)) {\n return isOSX ? 'secondary-paste' : 'redo';\n }\n\n return null;\n\n case 90:\n // Z\n return getZCommand(e) || null;\n\n case Keys.RETURN:\n return 'split-block';\n\n case Keys.DELETE:\n return getDeleteCommand(e);\n\n case Keys.BACKSPACE:\n return getBackspaceCommand(e);\n // LEFT/RIGHT handlers serve as a workaround for a Firefox bug.\n\n case Keys.LEFT:\n return shouldFixFirefoxMovement && hasCommandModifier(e) ? 'move-selection-to-start-of-block' : null;\n\n case Keys.RIGHT:\n return shouldFixFirefoxMovement && hasCommandModifier(e) ? 'move-selection-to-end-of-block' : null;\n\n default:\n return null;\n }\n}\n\nmodule.exports = getDefaultKeyBinding;","/**\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
is\n // selected and the user presses the right arrow, Firefox keeps the selection\n // on the
. If we allow subsequent keypresses to insert characters\n // natively, they will be inserted into a browser-created text node to the\n // right of that
. This is obviously undesirable.\n //\n // With the `needsRecovery` flag, we inform the caller that it is responsible\n // for manually setting the selection state on the rendered document to\n // ensure proper selection state maintenance.\n\n if (anchorIsTextNode) {\n anchorPoint = {\n key: nullthrows(findAncestorOffsetKey(anchorNode)),\n offset: anchorOffset\n };\n focusPoint = getPointForNonTextNode(root, focusNode, focusOffset);\n } else if (focusIsTextNode) {\n focusPoint = {\n key: nullthrows(findAncestorOffsetKey(focusNode)),\n offset: focusOffset\n };\n anchorPoint = getPointForNonTextNode(root, anchorNode, anchorOffset);\n } else {\n anchorPoint = getPointForNonTextNode(root, anchorNode, anchorOffset);\n focusPoint = getPointForNonTextNode(root, focusNode, focusOffset); // If the selection is collapsed on an empty block, don't force recovery.\n // This way, on arrow key selection changes, the browser can move the\n // cursor from a non-zero offset on one block, through empty blocks,\n // to a matching non-zero offset on other text blocks.\n\n if (anchorNode === focusNode && anchorOffset === focusOffset) {\n needsRecovery = !!anchorNode.firstChild && anchorNode.firstChild.nodeName !== 'BR';\n }\n }\n\n return {\n selectionState: getUpdatedSelectionState(editorState, anchorPoint.key, anchorPoint.offset, focusPoint.key, focusPoint.offset),\n needsRecovery: needsRecovery\n };\n}\n/**\n * Identify the first leaf descendant for the given node.\n */\n\n\nfunction getFirstLeaf(node) {\n while (node.firstChild && ( // data-blocks has no offset\n isElement(node.firstChild) && node.firstChild.getAttribute('data-blocks') === 'true' || getSelectionOffsetKeyForNode(node.firstChild))) {\n node = node.firstChild;\n }\n\n return node;\n}\n/**\n * Identify the last leaf descendant for the given node.\n */\n\n\nfunction getLastLeaf(node) {\n while (node.lastChild && ( // data-blocks has no offset\n isElement(node.lastChild) && node.lastChild.getAttribute('data-blocks') === 'true' || getSelectionOffsetKeyForNode(node.lastChild))) {\n node = node.lastChild;\n }\n\n return node;\n}\n\nfunction getPointForNonTextNode(editorRoot, startNode, childOffset) {\n var node = startNode;\n var offsetKey = findAncestorOffsetKey(node);\n !(offsetKey != null || editorRoot && (editorRoot === node || editorRoot.firstChild === node)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Unknown node in selection range.') : invariant(false) : void 0; // If the editorRoot is the selection, step downward into the content\n // wrapper.\n\n if (editorRoot === node) {\n node = node.firstChild;\n !isElement(node) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Invalid DraftEditorContents node.') : invariant(false) : void 0;\n var castedNode = node; // assignment only added for flow :/\n // otherwise it throws in line 200 saying that node can be null or undefined\n\n node = castedNode;\n !(node.getAttribute('data-contents') === 'true') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Invalid DraftEditorContents structure.') : invariant(false) : void 0;\n\n if (childOffset > 0) {\n childOffset = node.childNodes.length;\n }\n } // If the child offset is zero and we have an offset key, we're done.\n // If there's no offset key because the entire editor is selected,\n // find the leftmost (\"first\") leaf in the tree and use that as the offset\n // key.\n\n\n if (childOffset === 0) {\n var key = null;\n\n if (offsetKey != null) {\n key = offsetKey;\n } else {\n var firstLeaf = getFirstLeaf(node);\n key = nullthrows(getSelectionOffsetKeyForNode(firstLeaf));\n }\n\n return {\n key: key,\n offset: 0\n };\n }\n\n var nodeBeforeCursor = node.childNodes[childOffset - 1];\n var leafKey = null;\n var textLength = null;\n\n if (!getSelectionOffsetKeyForNode(nodeBeforeCursor)) {\n // Our target node may be a leaf or a text node, in which case we're\n // already where we want to be and can just use the child's length as\n // our offset.\n leafKey = nullthrows(offsetKey);\n textLength = getTextContentLength(nodeBeforeCursor);\n } else {\n // Otherwise, we'll look at the child to the left of the cursor and find\n // the last leaf node in its subtree.\n var lastLeaf = getLastLeaf(nodeBeforeCursor);\n leafKey = nullthrows(getSelectionOffsetKeyForNode(lastLeaf));\n textLength = getTextContentLength(lastLeaf);\n }\n\n return {\n key: leafKey,\n offset: textLength\n };\n}\n/**\n * Return the length of a node's textContent, regarding single newline\n * characters as zero-length. This allows us to avoid problems with identifying\n * the correct selection offset for empty blocks in IE, in which we\n * render newlines instead of break tags.\n */\n\n\nfunction getTextContentLength(node) {\n var textContent = node.textContent;\n return textContent === '\\n' ? 0 : textContent.length;\n}\n\nmodule.exports = getDraftEditorSelectionWithNodes;","/**\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 getContentStateFragment = require(\"./getContentStateFragment\");\n\nfunction getFragmentFromSelection(editorState) {\n var selectionState = editorState.getSelection();\n\n if (selectionState.isCollapsed()) {\n return null;\n }\n\n return getContentStateFragment(editorState.getCurrentContent(), selectionState);\n}\n\nmodule.exports = getFragmentFromSelection;","\"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 * @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;","/**\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 invariant = require(\"fbjs/lib/invariant\");\n\nvar isChrome = UserAgent.isBrowser('Chrome'); // In Chrome, the client rects will include the entire bounds of all nodes that\n// begin (have a start tag) within the selection, even if the selection does\n// not overlap the entire node. To resolve this, we split the range at each\n// start tag and join the client rects together.\n// https://code.google.com/p/chromium/issues/detail?id=324437\n\n/* eslint-disable consistent-return */\n\nfunction getRangeClientRectsChrome(range) {\n var tempRange = range.cloneRange();\n var clientRects = [];\n\n for (var ancestor = range.endContainer; ancestor != null; ancestor = ancestor.parentNode) {\n // If we've climbed up to the common ancestor, we can now use the\n // original start point and stop climbing the tree.\n var atCommonAncestor = ancestor === range.commonAncestorContainer;\n\n if (atCommonAncestor) {\n tempRange.setStart(range.startContainer, range.startOffset);\n } else {\n tempRange.setStart(tempRange.endContainer, 0);\n }\n\n var rects = Array.from(tempRange.getClientRects());\n clientRects.push(rects);\n\n if (atCommonAncestor) {\n var _ref;\n\n clientRects.reverse();\n return (_ref = []).concat.apply(_ref, clientRects);\n }\n\n tempRange.setEndBefore(ancestor);\n }\n\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Found an unexpected detached subtree when getting range client rects.') : invariant(false) : void 0;\n}\n/* eslint-enable consistent-return */\n\n/**\n * Like range.getClientRects() but normalizes for browser bugs.\n */\n\n\nvar getRangeClientRects = isChrome ? getRangeClientRectsChrome : function (range) {\n return Array.from(range.getClientRects());\n};\nmodule.exports = getRangeClientRects;","/**\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/**\n * Obtain the start and end positions of the range that has the\n * specified entity applied to it.\n *\n * Entity keys are applied only to contiguous stretches of text, so this\n * method searches for the first instance of the entity key and returns\n * the subsequent range.\n */\n\n\nfunction getRangesForDraftEntity(block, key) {\n var ranges = [];\n block.findEntityRanges(function (c) {\n return c.getEntity() === key;\n }, function (start, end) {\n ranges.push({\n start: start,\n end: end\n });\n });\n !!!ranges.length ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Entity key not found in this range.') : invariant(false) : void 0;\n return ranges;\n}\n\nmodule.exports = getRangesForDraftEntity;","/**\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 invariant = require(\"fbjs/lib/invariant\");\n\nvar isOldIE = UserAgent.isBrowser('IE <= 9'); // Provides a dom node that will not execute scripts\n// https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.createHTMLDocument\n// https://developer.mozilla.org/en-US/Add-ons/Code_snippets/HTML_to_DOM\n\nfunction getSafeBodyFromHTML(html) {\n var doc;\n var root = null; // Provides a safe context\n\n if (!isOldIE && document.implementation && document.implementation.createHTMLDocument) {\n doc = document.implementation.createHTMLDocument('foo');\n !doc.documentElement ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Missing doc.documentElement') : invariant(false) : void 0;\n doc.documentElement.innerHTML = html;\n root = doc.getElementsByTagName('body')[0];\n }\n\n return root;\n}\n\nmodule.exports = getSafeBodyFromHTML;","/**\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;","/**\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 TEXT_CLIPPING_REGEX = /\\.textClipping$/;\nvar TEXT_TYPES = {\n 'text/plain': true,\n 'text/html': true,\n 'text/rtf': true\n}; // Somewhat arbitrary upper bound on text size. Let's not lock up the browser.\n\nvar TEXT_SIZE_UPPER_BOUND = 5000;\n/**\n * Extract the text content from a file list.\n */\n\nfunction getTextContentFromFiles(files, callback) {\n var readCount = 0;\n var results = [];\n files.forEach(function (\n /*blob*/\n file) {\n readFile(file, function (\n /*string*/\n text) {\n readCount++;\n text && results.push(text.slice(0, TEXT_SIZE_UPPER_BOUND));\n\n if (readCount == files.length) {\n callback(results.join('\\r'));\n }\n });\n });\n}\n/**\n * todo isaac: Do work to turn html/rtf into a content fragment.\n */\n\n\nfunction readFile(file, callback) {\n if (!global.FileReader || file.type && !(file.type in TEXT_TYPES)) {\n callback('');\n return;\n }\n\n if (file.type === '') {\n var _contents = ''; // Special-case text clippings, which have an empty type but include\n // `.textClipping` in the file name. `readAsText` results in an empty\n // string for text clippings, so we force the file name to serve\n // as the text value for the file.\n\n if (TEXT_CLIPPING_REGEX.test(file.name)) {\n _contents = file.name.replace(TEXT_CLIPPING_REGEX, '');\n }\n\n callback(_contents);\n return;\n }\n\n var reader = new FileReader();\n\n reader.onload = function () {\n var result = reader.result;\n !(typeof result === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'We should be calling \"FileReader.readAsText\" which returns a string') : invariant(false) : void 0;\n callback(result);\n };\n\n reader.onerror = function () {\n callback('');\n };\n\n reader.readAsText(file);\n}\n\nmodule.exports = getTextContentFromFiles;","/**\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 DraftOffsetKey = require(\"./DraftOffsetKey\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\nfunction getUpdatedSelectionState(editorState, anchorKey, anchorOffset, focusKey, focusOffset) {\n var selection = nullthrows(editorState.getSelection());\n\n if (!anchorKey || !focusKey) {\n // If we cannot make sense of the updated selection state, stick to the current one.\n if (process.env.NODE_ENV !== \"production\") {\n /* eslint-disable-next-line */\n console.warn('Invalid selection state.', arguments, editorState.toJS());\n }\n\n return selection;\n }\n\n var anchorPath = DraftOffsetKey.decode(anchorKey);\n var anchorBlockKey = anchorPath.blockKey;\n var anchorLeafBlockTree = editorState.getBlockTree(anchorBlockKey);\n var anchorLeaf = anchorLeafBlockTree && anchorLeafBlockTree.getIn([anchorPath.decoratorKey, 'leaves', anchorPath.leafKey]);\n var focusPath = DraftOffsetKey.decode(focusKey);\n var focusBlockKey = focusPath.blockKey;\n var focusLeafBlockTree = editorState.getBlockTree(focusBlockKey);\n var focusLeaf = focusLeafBlockTree && focusLeafBlockTree.getIn([focusPath.decoratorKey, 'leaves', focusPath.leafKey]);\n\n if (!anchorLeaf || !focusLeaf) {\n // If we cannot make sense of the updated selection state, stick to the current one.\n if (process.env.NODE_ENV !== \"production\") {\n /* eslint-disable-next-line */\n console.warn('Invalid selection state.', arguments, editorState.toJS());\n }\n\n return selection;\n }\n\n var anchorLeafStart = anchorLeaf.get('start');\n var focusLeafStart = focusLeaf.get('start');\n var anchorBlockOffset = anchorLeaf ? anchorLeafStart + anchorOffset : null;\n var focusBlockOffset = focusLeaf ? focusLeafStart + focusOffset : null;\n var areEqual = selection.getAnchorKey() === anchorBlockKey && selection.getAnchorOffset() === anchorBlockOffset && selection.getFocusKey() === focusBlockKey && selection.getFocusOffset() === focusBlockOffset;\n\n if (areEqual) {\n return selection;\n }\n\n var isBackward = false;\n\n if (anchorBlockKey === focusBlockKey) {\n var anchorLeafEnd = anchorLeaf.get('end');\n var focusLeafEnd = focusLeaf.get('end');\n\n if (focusLeafStart === anchorLeafStart && focusLeafEnd === anchorLeafEnd) {\n isBackward = focusOffset < anchorOffset;\n } else {\n isBackward = focusLeafStart < anchorLeafStart;\n }\n } else {\n var startKey = editorState.getCurrentContent().getBlockMap().keySeq().skipUntil(function (v) {\n return v === anchorBlockKey || v === focusBlockKey;\n }).first();\n isBackward = startKey === focusBlockKey;\n }\n\n return selection.merge({\n anchorKey: anchorBlockKey,\n anchorOffset: anchorBlockOffset,\n focusKey: focusBlockKey,\n focusOffset: focusBlockOffset,\n isBackward: isBackward\n });\n}\n\nmodule.exports = getUpdatedSelectionState;","/**\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;","\"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 */\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\nvar BlockMapBuilder = require(\"./BlockMapBuilder\");\n\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar Immutable = require(\"immutable\");\n\nvar insertIntoList = require(\"./insertIntoList\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar randomizeBlockMapKeys = require(\"./randomizeBlockMapKeys\");\n\nvar List = Immutable.List;\n\nvar updateExistingBlock = function updateExistingBlock(contentState, selectionState, blockMap, fragmentBlock, targetKey, targetOffset) {\n var mergeBlockData = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 'REPLACE_WITH_NEW_DATA';\n var targetBlock = blockMap.get(targetKey);\n var text = targetBlock.getText();\n var chars = targetBlock.getCharacterList();\n var finalKey = targetKey;\n var finalOffset = targetOffset + fragmentBlock.getText().length;\n var data = null;\n\n switch (mergeBlockData) {\n case 'MERGE_OLD_DATA_TO_NEW_DATA':\n data = fragmentBlock.getData().merge(targetBlock.getData());\n break;\n\n case 'REPLACE_WITH_NEW_DATA':\n data = fragmentBlock.getData();\n break;\n }\n\n var type = targetBlock.getType();\n\n if (text && type === 'unstyled') {\n type = fragmentBlock.getType();\n }\n\n var newBlock = targetBlock.merge({\n text: text.slice(0, targetOffset) + fragmentBlock.getText() + text.slice(targetOffset),\n characterList: insertIntoList(chars, fragmentBlock.getCharacterList(), targetOffset),\n type: type,\n data: data\n });\n return contentState.merge({\n blockMap: blockMap.set(targetKey, newBlock),\n selectionBefore: selectionState,\n selectionAfter: selectionState.merge({\n anchorKey: finalKey,\n anchorOffset: finalOffset,\n focusKey: finalKey,\n focusOffset: finalOffset,\n isBackward: false\n })\n });\n};\n/**\n * Appends text/characterList from the fragment first block to\n * target block.\n */\n\n\nvar updateHead = function updateHead(block, targetOffset, fragment) {\n var text = block.getText();\n var chars = block.getCharacterList(); // Modify head portion of block.\n\n var headText = text.slice(0, targetOffset);\n var headCharacters = chars.slice(0, targetOffset);\n var appendToHead = fragment.first();\n return block.merge({\n text: headText + appendToHead.getText(),\n characterList: headCharacters.concat(appendToHead.getCharacterList()),\n type: headText ? block.getType() : appendToHead.getType(),\n data: appendToHead.getData()\n });\n};\n/**\n * Appends offset text/characterList from the target block to the last\n * fragment block.\n */\n\n\nvar updateTail = function updateTail(block, targetOffset, fragment) {\n // Modify tail portion of block.\n var text = block.getText();\n var chars = block.getCharacterList(); // Modify head portion of block.\n\n var blockSize = text.length;\n var tailText = text.slice(targetOffset, blockSize);\n var tailCharacters = chars.slice(targetOffset, blockSize);\n var prependToTail = fragment.last();\n return prependToTail.merge({\n text: prependToTail.getText() + tailText,\n characterList: prependToTail.getCharacterList().concat(tailCharacters),\n data: prependToTail.getData()\n });\n};\n\nvar getRootBlocks = function getRootBlocks(block, blockMap) {\n var headKey = block.getKey();\n var rootBlock = block;\n var rootBlocks = []; // sometimes the fragment head block will not be part of the blockMap itself this can happen when\n // the fragment head is used to update the target block, however when this does not happen we need\n // to make sure that we include it on the rootBlocks since the first block of a fragment is always a\n // fragment root block\n\n if (blockMap.get(headKey)) {\n rootBlocks.push(headKey);\n }\n\n while (rootBlock && rootBlock.getNextSiblingKey()) {\n var lastSiblingKey = rootBlock.getNextSiblingKey();\n\n if (!lastSiblingKey) {\n break;\n }\n\n rootBlocks.push(lastSiblingKey);\n rootBlock = blockMap.get(lastSiblingKey);\n }\n\n return rootBlocks;\n};\n\nvar updateBlockMapLinks = function updateBlockMapLinks(blockMap, originalBlockMap, targetBlock, fragmentHeadBlock) {\n return blockMap.withMutations(function (blockMapState) {\n var targetKey = targetBlock.getKey();\n var headKey = fragmentHeadBlock.getKey();\n var targetNextKey = targetBlock.getNextSiblingKey();\n var targetParentKey = targetBlock.getParentKey();\n var fragmentRootBlocks = getRootBlocks(fragmentHeadBlock, blockMap);\n var lastRootFragmentBlockKey = fragmentRootBlocks[fragmentRootBlocks.length - 1];\n\n if (blockMapState.get(headKey)) {\n // update the fragment head when it is part of the blockMap otherwise\n blockMapState.setIn([targetKey, 'nextSibling'], headKey);\n blockMapState.setIn([headKey, 'prevSibling'], targetKey);\n } else {\n // update the target block that had the fragment head contents merged into it\n blockMapState.setIn([targetKey, 'nextSibling'], fragmentHeadBlock.getNextSiblingKey());\n blockMapState.setIn([fragmentHeadBlock.getNextSiblingKey(), 'prevSibling'], targetKey);\n } // update the last root block fragment\n\n\n blockMapState.setIn([lastRootFragmentBlockKey, 'nextSibling'], targetNextKey); // update the original target next block\n\n if (targetNextKey) {\n blockMapState.setIn([targetNextKey, 'prevSibling'], lastRootFragmentBlockKey);\n } // update fragment parent links\n\n\n fragmentRootBlocks.forEach(function (blockKey) {\n return blockMapState.setIn([blockKey, 'parent'], targetParentKey);\n }); // update targetBlock parent child links\n\n if (targetParentKey) {\n var targetParent = blockMap.get(targetParentKey);\n var originalTargetParentChildKeys = targetParent.getChildKeys();\n var targetBlockIndex = originalTargetParentChildKeys.indexOf(targetKey);\n var insertionIndex = targetBlockIndex + 1;\n var newChildrenKeysArray = originalTargetParentChildKeys.toArray(); // insert fragment children\n\n newChildrenKeysArray.splice.apply(newChildrenKeysArray, [insertionIndex, 0].concat(fragmentRootBlocks));\n blockMapState.setIn([targetParentKey, 'children'], List(newChildrenKeysArray));\n }\n });\n};\n\nvar insertFragment = function insertFragment(contentState, selectionState, blockMap, fragment, targetKey, targetOffset) {\n var isTreeBasedBlockMap = blockMap.first() instanceof ContentBlockNode;\n var newBlockArr = [];\n var fragmentSize = fragment.size;\n var target = blockMap.get(targetKey);\n var head = fragment.first();\n var tail = fragment.last();\n var finalOffset = tail.getLength();\n var finalKey = tail.getKey();\n var shouldNotUpdateFromFragmentBlock = isTreeBasedBlockMap && (!target.getChildKeys().isEmpty() || !head.getChildKeys().isEmpty());\n blockMap.forEach(function (block, blockKey) {\n if (blockKey !== targetKey) {\n newBlockArr.push(block);\n return;\n }\n\n if (shouldNotUpdateFromFragmentBlock) {\n newBlockArr.push(block);\n } else {\n newBlockArr.push(updateHead(block, targetOffset, fragment));\n } // Insert fragment blocks after the head and before the tail.\n\n\n fragment // when we are updating the target block with the head fragment block we skip the first fragment\n // head since its contents have already been merged with the target block otherwise we include\n // the whole fragment\n .slice(shouldNotUpdateFromFragmentBlock ? 0 : 1, fragmentSize - 1).forEach(function (fragmentBlock) {\n return newBlockArr.push(fragmentBlock);\n }); // update tail\n\n newBlockArr.push(updateTail(block, targetOffset, fragment));\n });\n var updatedBlockMap = BlockMapBuilder.createFromArray(newBlockArr);\n\n if (isTreeBasedBlockMap) {\n updatedBlockMap = updateBlockMapLinks(updatedBlockMap, blockMap, target, head);\n }\n\n return contentState.merge({\n blockMap: updatedBlockMap,\n selectionBefore: selectionState,\n selectionAfter: selectionState.merge({\n anchorKey: finalKey,\n anchorOffset: finalOffset,\n focusKey: finalKey,\n focusOffset: finalOffset,\n isBackward: false\n })\n });\n};\n\nvar insertFragmentIntoContentState = function insertFragmentIntoContentState(contentState, selectionState, fragmentBlockMap) {\n var mergeBlockData = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'REPLACE_WITH_NEW_DATA';\n !selectionState.isCollapsed() ? process.env.NODE_ENV !== \"production\" ? invariant(false, '`insertFragment` should only be called with a collapsed selection state.') : invariant(false) : void 0;\n var blockMap = contentState.getBlockMap();\n var fragment = randomizeBlockMapKeys(fragmentBlockMap);\n var targetKey = selectionState.getStartKey();\n var targetOffset = selectionState.getStartOffset();\n var targetBlock = blockMap.get(targetKey);\n\n if (targetBlock instanceof ContentBlockNode) {\n !targetBlock.getChildKeys().isEmpty() ? process.env.NODE_ENV !== \"production\" ? invariant(false, '`insertFragment` should not be called when a container node is selected.') : invariant(false) : void 0;\n } // When we insert a fragment with a single block we simply update the target block\n // with the contents of the inserted fragment block\n\n\n if (fragment.size === 1) {\n return updateExistingBlock(contentState, selectionState, blockMap, fragment.first(), targetKey, targetOffset, mergeBlockData);\n }\n\n return insertFragment(contentState, selectionState, blockMap, fragment, targetKey, targetOffset);\n};\n\nmodule.exports = insertFragmentIntoContentState;","/**\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 insertIntoList = require(\"./insertIntoList\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar Repeat = Immutable.Repeat;\n\nfunction insertTextIntoContentState(contentState, selectionState, text, characterMetadata) {\n !selectionState.isCollapsed() ? process.env.NODE_ENV !== \"production\" ? invariant(false, '`insertText` should only be called with a collapsed range.') : invariant(false) : void 0;\n var len = null;\n\n if (text != null) {\n len = text.length;\n }\n\n if (len == null || len === 0) {\n return contentState;\n }\n\n var blockMap = contentState.getBlockMap();\n var key = selectionState.getStartKey();\n var offset = selectionState.getStartOffset();\n var block = blockMap.get(key);\n var blockText = block.getText();\n var newBlock = block.merge({\n text: blockText.slice(0, offset) + text + blockText.slice(offset, block.getLength()),\n characterList: insertIntoList(block.getCharacterList(), Repeat(characterMetadata, len).toList(), offset)\n });\n var newOffset = offset + len;\n return contentState.merge({\n blockMap: blockMap.set(key, newBlock),\n selectionAfter: selectionState.merge({\n anchorOffset: newOffset,\n focusOffset: newOffset\n })\n });\n}\n\nmodule.exports = insertTextIntoContentState;","\"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\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;","\"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 isHTMLBRElement(node) {\n if (!node || !node.ownerDocument) {\n return false;\n }\n\n return isElement(node) && node.nodeName === 'BR';\n}\n\nmodule.exports = isHTMLBRElement;","\"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;","\"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;","\"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 isInstanceOfNode(target) {\n // we changed the name because of having duplicate module provider (fbjs)\n if (!target || !('ownerDocument' in target)) {\n return false;\n }\n\n if ('ownerDocument' in target) {\n var node = target;\n\n if (!node.ownerDocument.defaultView) {\n return node instanceof Node;\n }\n\n if (node instanceof node.ownerDocument.defaultView.Node) {\n return true;\n }\n }\n\n return false;\n}\n\nmodule.exports = isInstanceOfNode;","/**\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 isSelectionAtLeafStart(editorState) {\n var selection = editorState.getSelection();\n var anchorKey = selection.getAnchorKey();\n var blockTree = editorState.getBlockTree(anchorKey);\n var offset = selection.getStartOffset();\n var isAtStart = false;\n blockTree.some(function (leafSet) {\n if (offset === leafSet.get('start')) {\n isAtStart = true;\n return true;\n }\n\n if (offset < leafSet.get('end')) {\n return leafSet.get('leaves').some(function (leaf) {\n var leafStart = leaf.get('start');\n\n if (offset === leafStart) {\n isAtStart = true;\n return true;\n }\n\n return false;\n });\n }\n\n return false;\n });\n return isAtStart;\n}\n\nmodule.exports = isSelectionAtLeafStart;","/**\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 Keys = require(\"fbjs/lib/Keys\");\n\nfunction isSoftNewlineEvent(e) {\n return e.which === Keys.RETURN && (e.getModifierState('Shift') || e.getModifierState('Alt') || e.getModifierState('Control'));\n}\n\nmodule.exports = isSoftNewlineEvent;","/**\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 expandRangeToStartOfLine = require(\"./expandRangeToStartOfLine\");\n\nvar getDraftEditorSelectionWithNodes = require(\"./getDraftEditorSelectionWithNodes\");\n\nvar moveSelectionBackward = require(\"./moveSelectionBackward\");\n\nvar removeTextWithStrategy = require(\"./removeTextWithStrategy\");\n\nfunction keyCommandBackspaceToStartOfLine(editorState, e) {\n var afterRemoval = removeTextWithStrategy(editorState, function (strategyState) {\n var selection = strategyState.getSelection();\n\n if (selection.isCollapsed() && selection.getAnchorOffset() === 0) {\n return moveSelectionBackward(strategyState, 1);\n }\n\n var ownerDocument = e.currentTarget.ownerDocument;\n var domSelection = ownerDocument.defaultView.getSelection(); // getRangeAt can technically throw if there's no selection, but we know\n // there is one here because text editor has focus (the cursor is a\n // selection of length 0). Therefore, we don't need to wrap this in a\n // try-catch block.\n\n var range = domSelection.getRangeAt(0);\n range = expandRangeToStartOfLine(range);\n return getDraftEditorSelectionWithNodes(strategyState, null, range.endContainer, range.endOffset, range.startContainer, range.startOffset).selectionState;\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 = keyCommandBackspaceToStartOfLine;","/**\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 moveSelectionBackward = require(\"./moveSelectionBackward\");\n\nvar removeTextWithStrategy = require(\"./removeTextWithStrategy\");\n/**\n * Remove the selected range. If the cursor is collapsed, remove the preceding\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 keyCommandPlainBackspace(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 charBehind = content.getBlockForKey(key).getText()[offset - 1];\n return moveSelectionBackward(strategyState, charBehind ? UnicodeUtils.getUTF16Length(charBehind, 0) : 1);\n }, 'backward');\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() ? 'backspace-character' : 'remove-range');\n}\n\nmodule.exports = keyCommandPlainBackspace;","/**\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 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;","/**\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 getNextDelimiterBlockKey = require(\"./getNextDelimiterBlockKey\");\n\nvar Immutable = require(\"immutable\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar OrderedMap = Immutable.OrderedMap,\n List = Immutable.List;\n\nvar transformBlock = function transformBlock(key, blockMap, func) {\n if (!key) {\n return;\n }\n\n var block = blockMap.get(key);\n\n if (!block) {\n return;\n }\n\n blockMap.set(key, func(block));\n};\n\nvar updateBlockMapLinks = function updateBlockMapLinks(blockMap, originalBlockToBeMoved, originalTargetBlock, insertionMode, isExperimentalTreeBlock) {\n if (!isExperimentalTreeBlock) {\n return blockMap;\n } // possible values of 'insertionMode' are: 'after', 'before'\n\n\n var isInsertedAfterTarget = insertionMode === 'after';\n var originalBlockKey = originalBlockToBeMoved.getKey();\n var originalTargetKey = originalTargetBlock.getKey();\n var originalParentKey = originalBlockToBeMoved.getParentKey();\n var originalNextSiblingKey = originalBlockToBeMoved.getNextSiblingKey();\n var originalPrevSiblingKey = originalBlockToBeMoved.getPrevSiblingKey();\n var newParentKey = originalTargetBlock.getParentKey();\n var newNextSiblingKey = isInsertedAfterTarget ? originalTargetBlock.getNextSiblingKey() : originalTargetKey;\n var newPrevSiblingKey = isInsertedAfterTarget ? originalTargetKey : originalTargetBlock.getPrevSiblingKey();\n return blockMap.withMutations(function (blocks) {\n // update old parent\n transformBlock(originalParentKey, blocks, function (block) {\n var parentChildrenList = block.getChildKeys();\n return block.merge({\n children: parentChildrenList[\"delete\"](parentChildrenList.indexOf(originalBlockKey))\n });\n }); // update old prev\n\n transformBlock(originalPrevSiblingKey, blocks, function (block) {\n return block.merge({\n nextSibling: originalNextSiblingKey\n });\n }); // update old next\n\n transformBlock(originalNextSiblingKey, blocks, function (block) {\n return block.merge({\n prevSibling: originalPrevSiblingKey\n });\n }); // update new next\n\n transformBlock(newNextSiblingKey, blocks, function (block) {\n return block.merge({\n prevSibling: originalBlockKey\n });\n }); // update new prev\n\n transformBlock(newPrevSiblingKey, blocks, function (block) {\n return block.merge({\n nextSibling: originalBlockKey\n });\n }); // update new parent\n\n transformBlock(newParentKey, blocks, function (block) {\n var newParentChildrenList = block.getChildKeys();\n var targetBlockIndex = newParentChildrenList.indexOf(originalTargetKey);\n var insertionIndex = isInsertedAfterTarget ? targetBlockIndex + 1 : targetBlockIndex !== 0 ? targetBlockIndex - 1 : 0;\n var newChildrenArray = newParentChildrenList.toArray();\n newChildrenArray.splice(insertionIndex, 0, originalBlockKey);\n return block.merge({\n children: List(newChildrenArray)\n });\n }); // update block\n\n transformBlock(originalBlockKey, blocks, function (block) {\n return block.merge({\n nextSibling: newNextSiblingKey,\n prevSibling: newPrevSiblingKey,\n parent: newParentKey\n });\n });\n });\n};\n\nvar moveBlockInContentState = function moveBlockInContentState(contentState, blockToBeMoved, targetBlock, insertionMode) {\n !(insertionMode !== 'replace') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Replacing blocks is not supported.') : invariant(false) : void 0;\n var targetKey = targetBlock.getKey();\n var blockKey = blockToBeMoved.getKey();\n !(blockKey !== targetKey) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Block cannot be moved next to itself.') : invariant(false) : void 0;\n var blockMap = contentState.getBlockMap();\n var isExperimentalTreeBlock = blockToBeMoved instanceof ContentBlockNode;\n var blocksToBeMoved = [blockToBeMoved];\n var blockMapWithoutBlocksToBeMoved = blockMap[\"delete\"](blockKey);\n\n if (isExperimentalTreeBlock) {\n blocksToBeMoved = [];\n blockMapWithoutBlocksToBeMoved = blockMap.withMutations(function (blocks) {\n var nextSiblingKey = blockToBeMoved.getNextSiblingKey();\n var nextDelimiterBlockKey = getNextDelimiterBlockKey(blockToBeMoved, blocks);\n blocks.toSeq().skipUntil(function (block) {\n return block.getKey() === blockKey;\n }).takeWhile(function (block) {\n var key = block.getKey();\n var isBlockToBeMoved = key === blockKey;\n var hasNextSiblingAndIsNotNextSibling = nextSiblingKey && key !== nextSiblingKey;\n var doesNotHaveNextSiblingAndIsNotDelimiter = !nextSiblingKey && block.getParentKey() && (!nextDelimiterBlockKey || key !== nextDelimiterBlockKey);\n return !!(isBlockToBeMoved || hasNextSiblingAndIsNotNextSibling || doesNotHaveNextSiblingAndIsNotDelimiter);\n }).forEach(function (block) {\n blocksToBeMoved.push(block);\n blocks[\"delete\"](block.getKey());\n });\n });\n }\n\n var blocksBefore = blockMapWithoutBlocksToBeMoved.toSeq().takeUntil(function (v) {\n return v === targetBlock;\n });\n var blocksAfter = blockMapWithoutBlocksToBeMoved.toSeq().skipUntil(function (v) {\n return v === targetBlock;\n }).skip(1);\n var slicedBlocks = blocksToBeMoved.map(function (block) {\n return [block.getKey(), block];\n });\n var newBlocks = OrderedMap();\n\n if (insertionMode === 'before') {\n var blockBefore = contentState.getBlockBefore(targetKey);\n !(!blockBefore || blockBefore.getKey() !== blockToBeMoved.getKey()) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Block cannot be moved next to itself.') : invariant(false) : void 0;\n newBlocks = blocksBefore.concat([].concat(slicedBlocks, [[targetKey, targetBlock]]), blocksAfter).toOrderedMap();\n } else if (insertionMode === 'after') {\n var blockAfter = contentState.getBlockAfter(targetKey);\n !(!blockAfter || blockAfter.getKey() !== blockKey) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Block cannot be moved next to itself.') : invariant(false) : void 0;\n newBlocks = blocksBefore.concat([[targetKey, targetBlock]].concat(slicedBlocks), blocksAfter).toOrderedMap();\n }\n\n return contentState.merge({\n blockMap: updateBlockMapLinks(newBlocks, blockToBeMoved, targetBlock, insertionMode, isExperimentalTreeBlock),\n selectionBefore: contentState.getSelectionAfter(),\n selectionAfter: contentState.getSelectionAfter().merge({\n anchorKey: blockKey,\n focusKey: blockKey\n })\n });\n};\n\nmodule.exports = moveBlockInContentState;","/**\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 warning = require(\"fbjs/lib/warning\");\n/**\n * Given a collapsed selection, move the focus `maxDistance` forward within\n * the selected block. If the selection will go beyond the end of the block,\n * move focus to the start of the next 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 moveSelectionForward(editorState, maxDistance) {\n var selection = editorState.getSelection(); // Should eventually make this an invariant\n\n process.env.NODE_ENV !== \"production\" ? warning(selection.isCollapsed(), 'moveSelectionForward should only be called with a collapsed SelectionState') : void 0;\n var key = selection.getStartKey();\n var offset = selection.getStartOffset();\n var content = editorState.getCurrentContent();\n var focusKey = key;\n var focusOffset;\n var block = content.getBlockForKey(key);\n\n if (maxDistance > block.getText().length - offset) {\n focusKey = content.getKeyAfter(key);\n focusOffset = 0;\n } else {\n focusOffset = offset + maxDistance;\n }\n\n return selection.merge({\n focusKey: focusKey,\n focusOffset: focusOffset\n });\n}\n\nmodule.exports = moveSelectionForward;","/**\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\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar getNextDelimiterBlockKey = require(\"./getNextDelimiterBlockKey\");\n\nvar Immutable = require(\"immutable\");\n\nvar List = Immutable.List,\n Map = Immutable.Map;\n\nvar transformBlock = function transformBlock(key, blockMap, func) {\n if (!key) {\n return;\n }\n\n var block = blockMap.get(key);\n\n if (!block) {\n return;\n }\n\n blockMap.set(key, func(block));\n};\n/**\n * Ancestors needs to be preserved when there are non selected\n * children to make sure we do not leave any orphans behind\n */\n\n\nvar getAncestorsKeys = function getAncestorsKeys(blockKey, blockMap) {\n var parents = [];\n\n if (!blockKey) {\n return parents;\n }\n\n var blockNode = blockMap.get(blockKey);\n\n while (blockNode && blockNode.getParentKey()) {\n var parentKey = blockNode.getParentKey();\n\n if (parentKey) {\n parents.push(parentKey);\n }\n\n blockNode = parentKey ? blockMap.get(parentKey) : null;\n }\n\n return parents;\n};\n/**\n * Get all next delimiter keys until we hit a root delimiter and return\n * an array of key references\n */\n\n\nvar getNextDelimitersBlockKeys = function getNextDelimitersBlockKeys(block, blockMap) {\n var nextDelimiters = [];\n\n if (!block) {\n return nextDelimiters;\n }\n\n var nextDelimiter = getNextDelimiterBlockKey(block, blockMap);\n\n while (nextDelimiter && blockMap.get(nextDelimiter)) {\n var _block = blockMap.get(nextDelimiter);\n\n nextDelimiters.push(nextDelimiter); // we do not need to keep checking all root node siblings, just the first occurance\n\n nextDelimiter = _block.getParentKey() ? getNextDelimiterBlockKey(_block, blockMap) : null;\n }\n\n return nextDelimiters;\n};\n\nvar getNextValidSibling = function getNextValidSibling(block, blockMap, originalBlockMap) {\n if (!block) {\n return null;\n } // note that we need to make sure we refer to the original block since this\n // function is called within a withMutations\n\n\n var nextValidSiblingKey = originalBlockMap.get(block.getKey()).getNextSiblingKey();\n\n while (nextValidSiblingKey && !blockMap.get(nextValidSiblingKey)) {\n nextValidSiblingKey = originalBlockMap.get(nextValidSiblingKey).getNextSiblingKey() || null;\n }\n\n return nextValidSiblingKey;\n};\n\nvar getPrevValidSibling = function getPrevValidSibling(block, blockMap, originalBlockMap) {\n if (!block) {\n return null;\n } // note that we need to make sure we refer to the original block since this\n // function is called within a withMutations\n\n\n var prevValidSiblingKey = originalBlockMap.get(block.getKey()).getPrevSiblingKey();\n\n while (prevValidSiblingKey && !blockMap.get(prevValidSiblingKey)) {\n prevValidSiblingKey = originalBlockMap.get(prevValidSiblingKey).getPrevSiblingKey() || null;\n }\n\n return prevValidSiblingKey;\n};\n\nvar updateBlockMapLinks = function updateBlockMapLinks(blockMap, startBlock, endBlock, originalBlockMap) {\n return blockMap.withMutations(function (blocks) {\n // update start block if its retained\n transformBlock(startBlock.getKey(), blocks, function (block) {\n return block.merge({\n nextSibling: getNextValidSibling(block, blocks, originalBlockMap),\n prevSibling: getPrevValidSibling(block, blocks, originalBlockMap)\n });\n }); // update endblock if its retained\n\n transformBlock(endBlock.getKey(), blocks, function (block) {\n return block.merge({\n nextSibling: getNextValidSibling(block, blocks, originalBlockMap),\n prevSibling: getPrevValidSibling(block, blocks, originalBlockMap)\n });\n }); // update start block parent ancestors\n\n getAncestorsKeys(startBlock.getKey(), originalBlockMap).forEach(function (parentKey) {\n return transformBlock(parentKey, blocks, function (block) {\n return block.merge({\n children: block.getChildKeys().filter(function (key) {\n return blocks.get(key);\n }),\n nextSibling: getNextValidSibling(block, blocks, originalBlockMap),\n prevSibling: getPrevValidSibling(block, blocks, originalBlockMap)\n });\n });\n }); // update start block next - can only happen if startBlock == endBlock\n\n transformBlock(startBlock.getNextSiblingKey(), blocks, function (block) {\n return block.merge({\n prevSibling: startBlock.getPrevSiblingKey()\n });\n }); // update start block prev\n\n transformBlock(startBlock.getPrevSiblingKey(), blocks, function (block) {\n return block.merge({\n nextSibling: getNextValidSibling(block, blocks, originalBlockMap)\n });\n }); // update end block next\n\n transformBlock(endBlock.getNextSiblingKey(), blocks, function (block) {\n return block.merge({\n prevSibling: getPrevValidSibling(block, blocks, originalBlockMap)\n });\n }); // update end block prev\n\n transformBlock(endBlock.getPrevSiblingKey(), blocks, function (block) {\n return block.merge({\n nextSibling: endBlock.getNextSiblingKey()\n });\n }); // update end block parent ancestors\n\n getAncestorsKeys(endBlock.getKey(), originalBlockMap).forEach(function (parentKey) {\n transformBlock(parentKey, blocks, function (block) {\n return block.merge({\n children: block.getChildKeys().filter(function (key) {\n return blocks.get(key);\n }),\n nextSibling: getNextValidSibling(block, blocks, originalBlockMap),\n prevSibling: getPrevValidSibling(block, blocks, originalBlockMap)\n });\n });\n }); // update next delimiters all the way to a root delimiter\n\n getNextDelimitersBlockKeys(endBlock, originalBlockMap).forEach(function (delimiterKey) {\n return transformBlock(delimiterKey, blocks, function (block) {\n return block.merge({\n nextSibling: getNextValidSibling(block, blocks, originalBlockMap),\n prevSibling: getPrevValidSibling(block, blocks, originalBlockMap)\n });\n });\n }); // if parent (startBlock) was deleted\n\n if (blockMap.get(startBlock.getKey()) == null && blockMap.get(endBlock.getKey()) != null && endBlock.getParentKey() === startBlock.getKey() && endBlock.getPrevSiblingKey() == null) {\n var prevSiblingKey = startBlock.getPrevSiblingKey(); // endBlock becomes next sibling of parent's prevSibling\n\n transformBlock(endBlock.getKey(), blocks, function (block) {\n return block.merge({\n prevSibling: prevSiblingKey\n });\n });\n transformBlock(prevSiblingKey, blocks, function (block) {\n return block.merge({\n nextSibling: endBlock.getKey()\n });\n }); // Update parent for previous parent's children, and children for that parent\n\n var prevSibling = prevSiblingKey ? blockMap.get(prevSiblingKey) : null;\n var newParentKey = prevSibling ? prevSibling.getParentKey() : null;\n startBlock.getChildKeys().forEach(function (childKey) {\n transformBlock(childKey, blocks, function (block) {\n return block.merge({\n parent: newParentKey // set to null if there is no parent\n\n });\n });\n });\n\n if (newParentKey != null) {\n var newParent = blockMap.get(newParentKey);\n transformBlock(newParentKey, blocks, function (block) {\n return block.merge({\n children: newParent.getChildKeys().concat(startBlock.getChildKeys())\n });\n });\n } // last child of deleted parent should point to next sibling\n\n\n transformBlock(startBlock.getChildKeys().find(function (key) {\n var block = blockMap.get(key);\n return block.getNextSiblingKey() === null;\n }), blocks, function (block) {\n return block.merge({\n nextSibling: startBlock.getNextSiblingKey()\n });\n });\n }\n });\n};\n\nvar removeRangeFromContentState = function removeRangeFromContentState(contentState, selectionState) {\n if (selectionState.isCollapsed()) {\n return contentState;\n }\n\n var blockMap = contentState.getBlockMap();\n var startKey = selectionState.getStartKey();\n var startOffset = selectionState.getStartOffset();\n var endKey = selectionState.getEndKey();\n var endOffset = selectionState.getEndOffset();\n var startBlock = blockMap.get(startKey);\n var endBlock = blockMap.get(endKey); // we assume that ContentBlockNode and ContentBlocks are not mixed together\n\n var isExperimentalTreeBlock = startBlock instanceof ContentBlockNode; // used to retain blocks that should not be deleted to avoid orphan children\n\n var parentAncestors = [];\n\n if (isExperimentalTreeBlock) {\n var endBlockchildrenKeys = endBlock.getChildKeys();\n var endBlockAncestors = getAncestorsKeys(endKey, blockMap); // endBlock has unselected siblings so we can not remove its ancestors parents\n\n if (endBlock.getNextSiblingKey()) {\n parentAncestors = parentAncestors.concat(endBlockAncestors);\n } // endBlock has children so can not remove this block or any of its ancestors\n\n\n if (!endBlockchildrenKeys.isEmpty()) {\n parentAncestors = parentAncestors.concat(endBlockAncestors.concat([endKey]));\n } // we need to retain all ancestors of the next delimiter block\n\n\n parentAncestors = parentAncestors.concat(getAncestorsKeys(getNextDelimiterBlockKey(endBlock, blockMap), blockMap));\n }\n\n var characterList;\n\n if (startBlock === endBlock) {\n characterList = removeFromList(startBlock.getCharacterList(), startOffset, endOffset);\n } else {\n characterList = startBlock.getCharacterList().slice(0, startOffset).concat(endBlock.getCharacterList().slice(endOffset));\n }\n\n var modifiedStart = startBlock.merge({\n text: startBlock.getText().slice(0, startOffset) + endBlock.getText().slice(endOffset),\n characterList: characterList\n }); // If cursor (collapsed) is at the start of the first child, delete parent\n // instead of child\n\n var shouldDeleteParent = isExperimentalTreeBlock && startOffset === 0 && endOffset === 0 && endBlock.getParentKey() === startKey && endBlock.getPrevSiblingKey() == null;\n var newBlocks = shouldDeleteParent ? Map([[startKey, null]]) : blockMap.toSeq().skipUntil(function (_, k) {\n return k === startKey;\n }).takeUntil(function (_, k) {\n return k === endKey;\n }).filter(function (_, k) {\n return parentAncestors.indexOf(k) === -1;\n }).concat(Map([[endKey, null]])).map(function (_, k) {\n return k === startKey ? modifiedStart : null;\n });\n var updatedBlockMap = blockMap.merge(newBlocks).filter(function (block) {\n return !!block;\n }); // Only update tree block pointers if the range is across blocks\n\n if (isExperimentalTreeBlock && startBlock !== endBlock) {\n updatedBlockMap = updateBlockMapLinks(updatedBlockMap, startBlock, endBlock, blockMap);\n }\n\n return contentState.merge({\n blockMap: updatedBlockMap,\n selectionBefore: selectionState,\n selectionAfter: selectionState.merge({\n anchorKey: startKey,\n anchorOffset: startOffset,\n focusKey: startKey,\n focusOffset: startOffset,\n isBackward: false\n })\n });\n};\n/**\n * Maintain persistence for target list when removing characters on the\n * head and tail of the character list.\n */\n\n\nvar removeFromList = function removeFromList(targetList, startOffset, endOffset) {\n if (startOffset === 0) {\n while (startOffset < endOffset) {\n targetList = targetList.shift();\n startOffset++;\n }\n } else if (endOffset === targetList.count()) {\n while (endOffset > startOffset) {\n targetList = targetList.pop();\n endOffset--;\n }\n } else {\n var head = targetList.slice(0, startOffset);\n var tail = targetList.slice(endOffset);\n targetList = head.concat(tail).toList();\n }\n\n return targetList;\n};\n\nmodule.exports = removeRangeFromContentState;","/**\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;","/**\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\nvar DraftEffects = require(\"./DraftEffects\");\n\nvar DraftJsDebugLogging = require(\"./DraftJsDebugLogging\");\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar containsNode = require(\"fbjs/lib/containsNode\");\n\nvar getActiveElement = require(\"fbjs/lib/getActiveElement\");\n\nvar getCorrectDocumentFromNode = require(\"./getCorrectDocumentFromNode\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar isElement = require(\"./isElement\");\n\nvar isIE = UserAgent.isBrowser('IE');\n\nfunction getAnonymizedDOM(node, getNodeLabels) {\n if (!node) {\n return '[empty]';\n }\n\n var anonymized = anonymizeTextWithin(node, getNodeLabels);\n\n if (anonymized.nodeType === Node.TEXT_NODE) {\n return anonymized.textContent;\n }\n\n !isElement(anonymized) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Node must be an Element if it is not a text node.') : invariant(false) : void 0;\n var castedElement = anonymized;\n return castedElement.outerHTML;\n}\n\nfunction anonymizeTextWithin(node, getNodeLabels) {\n var labels = getNodeLabels !== undefined ? getNodeLabels(node) : [];\n\n if (node.nodeType === Node.TEXT_NODE) {\n var length = node.textContent.length;\n return getCorrectDocumentFromNode(node).createTextNode('[text ' + length + (labels.length ? ' | ' + labels.join(', ') : '') + ']');\n }\n\n var clone = node.cloneNode();\n\n if (clone.nodeType === 1 && labels.length) {\n clone.setAttribute('data-labels', labels.join(', '));\n }\n\n var childNodes = node.childNodes;\n\n for (var ii = 0; ii < childNodes.length; ii++) {\n clone.appendChild(anonymizeTextWithin(childNodes[ii], getNodeLabels));\n }\n\n return clone;\n}\n\nfunction getAnonymizedEditorDOM(node, getNodeLabels) {\n // grabbing the DOM content of the Draft editor\n var currentNode = node; // this should only be used after checking with isElement\n\n var castedNode = currentNode;\n\n while (currentNode) {\n if (isElement(currentNode) && castedNode.hasAttribute('contenteditable')) {\n // found the Draft editor container\n return getAnonymizedDOM(currentNode, getNodeLabels);\n } else {\n currentNode = currentNode.parentNode;\n castedNode = currentNode;\n }\n }\n\n return 'Could not find contentEditable parent of node';\n}\n\nfunction getNodeLength(node) {\n return node.nodeValue === null ? node.childNodes.length : node.nodeValue.length;\n}\n/**\n * In modern non-IE browsers, we can support both forward and backward\n * selections.\n *\n * Note: IE10+ supports the Selection object, but it does not support\n * the `extend` method, which means that even in modern IE, it's not possible\n * to programatically create a backward selection. Thus, for all IE\n * versions, we use the old IE API to create our selections.\n */\n\n\nfunction setDraftEditorSelection(selectionState, node, blockKey, nodeStart, nodeEnd) {\n // It's possible that the editor has been removed from the DOM but\n // our selection code doesn't know it yet. Forcing selection in\n // this case may lead to errors, so just bail now.\n var documentObject = getCorrectDocumentFromNode(node);\n\n if (!containsNode(documentObject.documentElement, node)) {\n return;\n }\n\n var selection = documentObject.defaultView.getSelection();\n var anchorKey = selectionState.getAnchorKey();\n var anchorOffset = selectionState.getAnchorOffset();\n var focusKey = selectionState.getFocusKey();\n var focusOffset = selectionState.getFocusOffset();\n var isBackward = selectionState.getIsBackward(); // IE doesn't support backward selection. Swap key/offset pairs.\n\n if (!selection.extend && isBackward) {\n var tempKey = anchorKey;\n var tempOffset = anchorOffset;\n anchorKey = focusKey;\n anchorOffset = focusOffset;\n focusKey = tempKey;\n focusOffset = tempOffset;\n isBackward = false;\n }\n\n var hasAnchor = anchorKey === blockKey && nodeStart <= anchorOffset && nodeEnd >= anchorOffset;\n var hasFocus = focusKey === blockKey && nodeStart <= focusOffset && nodeEnd >= focusOffset; // If the selection is entirely bound within this node, set the selection\n // and be done.\n\n if (hasAnchor && hasFocus) {\n selection.removeAllRanges();\n addPointToSelection(selection, node, anchorOffset - nodeStart, selectionState);\n addFocusToSelection(selection, node, focusOffset - nodeStart, selectionState);\n return;\n }\n\n if (!isBackward) {\n // If the anchor is within this node, set the range start.\n if (hasAnchor) {\n selection.removeAllRanges();\n addPointToSelection(selection, node, anchorOffset - nodeStart, selectionState);\n } // If the focus is within this node, we can assume that we have\n // already set the appropriate start range on the selection, and\n // can simply extend the selection.\n\n\n if (hasFocus) {\n addFocusToSelection(selection, node, focusOffset - nodeStart, selectionState);\n }\n } else {\n // If this node has the focus, set the selection range to be a\n // collapsed range beginning here. Later, when we encounter the anchor,\n // we'll use this information to extend the selection.\n if (hasFocus) {\n selection.removeAllRanges();\n addPointToSelection(selection, node, focusOffset - nodeStart, selectionState);\n } // If this node has the anchor, we may assume that the correct\n // focus information is already stored on the selection object.\n // We keep track of it, reset the selection range, and extend it\n // back to the focus point.\n\n\n if (hasAnchor) {\n var storedFocusNode = selection.focusNode;\n var storedFocusOffset = selection.focusOffset;\n selection.removeAllRanges();\n addPointToSelection(selection, node, anchorOffset - nodeStart, selectionState);\n addFocusToSelection(selection, storedFocusNode, storedFocusOffset, selectionState);\n }\n }\n}\n/**\n * Extend selection towards focus point.\n */\n\n\nfunction addFocusToSelection(selection, node, offset, selectionState) {\n var activeElement = getActiveElement();\n var extend = selection.extend; // containsNode returns false if node is null.\n // Let's refine the type of this value out here so flow knows.\n\n if (extend && node != null && containsNode(activeElement, node)) {\n // If `extend` is called while another element has focus, an error is\n // thrown. We therefore disable `extend` if the active element is somewhere\n // other than the node we are selecting. This should only occur in Firefox,\n // since it is the only browser to support multiple selections.\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=921444.\n // logging to catch bug that is being reported in t16250795\n if (offset > getNodeLength(node)) {\n // the call to 'selection.extend' is about to throw\n DraftJsDebugLogging.logSelectionStateFailure({\n anonymizedDom: getAnonymizedEditorDOM(node),\n extraParams: JSON.stringify({\n offset: offset\n }),\n selectionState: JSON.stringify(selectionState.toJS())\n });\n } // logging to catch bug that is being reported in t18110632\n\n\n var nodeWasFocus = node === selection.focusNode;\n\n try {\n // Fixes some reports of \"InvalidStateError: Failed to execute 'extend' on\n // 'Selection': This Selection object doesn't have any Ranges.\"\n // Note: selection.extend does not exist in IE.\n if (selection.rangeCount > 0 && selection.extend) {\n selection.extend(node, offset);\n }\n } catch (e) {\n DraftJsDebugLogging.logSelectionStateFailure({\n anonymizedDom: getAnonymizedEditorDOM(node, function (n) {\n var labels = [];\n\n if (n === activeElement) {\n labels.push('active element');\n }\n\n if (n === selection.anchorNode) {\n labels.push('selection anchor node');\n }\n\n if (n === selection.focusNode) {\n labels.push('selection focus node');\n }\n\n return labels;\n }),\n extraParams: JSON.stringify({\n activeElementName: activeElement ? activeElement.nodeName : null,\n nodeIsFocus: node === selection.focusNode,\n nodeWasFocus: nodeWasFocus,\n selectionRangeCount: selection.rangeCount,\n selectionAnchorNodeName: selection.anchorNode ? selection.anchorNode.nodeName : null,\n selectionAnchorOffset: selection.anchorOffset,\n selectionFocusNodeName: selection.focusNode ? selection.focusNode.nodeName : null,\n selectionFocusOffset: selection.focusOffset,\n message: e ? '' + e : null,\n offset: offset\n }, null, 2),\n selectionState: JSON.stringify(selectionState.toJS(), null, 2)\n }); // allow the error to be thrown -\n // better than continuing in a broken state\n\n throw e;\n }\n } else {\n // IE doesn't support extend. This will mean no backward selection.\n // Extract the existing selection range and add focus to it.\n // Additionally, clone the selection range. IE11 throws an\n // InvalidStateError when attempting to access selection properties\n // after the range is detached.\n if (node && selection.rangeCount > 0) {\n var range = selection.getRangeAt(0);\n range.setEnd(node, offset);\n selection.addRange(range.cloneRange());\n }\n }\n}\n\nfunction addPointToSelection(selection, node, offset, selectionState) {\n var range = getCorrectDocumentFromNode(node).createRange(); // logging to catch bug that is being reported in t16250795\n\n if (offset > getNodeLength(node)) {\n // in this case we know that the call to 'range.setStart' is about to throw\n DraftJsDebugLogging.logSelectionStateFailure({\n anonymizedDom: getAnonymizedEditorDOM(node),\n extraParams: JSON.stringify({\n offset: offset\n }),\n selectionState: JSON.stringify(selectionState.toJS())\n });\n DraftEffects.handleExtensionCausedError();\n }\n\n range.setStart(node, offset); // IE sometimes throws Unspecified Error when trying to addRange\n\n if (isIE) {\n try {\n selection.addRange(range);\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n /* eslint-disable-next-line no-console */\n console.warn('Call to selection.addRange() threw exception: ', e);\n }\n }\n } else {\n selection.addRange(range);\n }\n}\n\nmodule.exports = {\n setDraftEditorSelection: setDraftEditorSelection,\n addFocusToSelection: addFocusToSelection\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 ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar generateRandomKey = require(\"./generateRandomKey\");\n\nvar Immutable = require(\"immutable\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar modifyBlockForContentState = require(\"./modifyBlockForContentState\");\n\nvar List = Immutable.List,\n Map = Immutable.Map;\n\nvar transformBlock = function transformBlock(key, blockMap, func) {\n if (!key) {\n return;\n }\n\n var block = blockMap.get(key);\n\n if (!block) {\n return;\n }\n\n blockMap.set(key, func(block));\n};\n\nvar updateBlockMapLinks = function updateBlockMapLinks(blockMap, originalBlock, belowBlock) {\n return blockMap.withMutations(function (blocks) {\n var originalBlockKey = originalBlock.getKey();\n var belowBlockKey = belowBlock.getKey(); // update block parent\n\n transformBlock(originalBlock.getParentKey(), blocks, function (block) {\n var parentChildrenList = block.getChildKeys();\n var insertionIndex = parentChildrenList.indexOf(originalBlockKey) + 1;\n var newChildrenArray = parentChildrenList.toArray();\n newChildrenArray.splice(insertionIndex, 0, belowBlockKey);\n return block.merge({\n children: List(newChildrenArray)\n });\n }); // update original next block\n\n transformBlock(originalBlock.getNextSiblingKey(), blocks, function (block) {\n return block.merge({\n prevSibling: belowBlockKey\n });\n }); // update original block\n\n transformBlock(originalBlockKey, blocks, function (block) {\n return block.merge({\n nextSibling: belowBlockKey\n });\n }); // update below block\n\n transformBlock(belowBlockKey, blocks, function (block) {\n return block.merge({\n prevSibling: originalBlockKey\n });\n });\n });\n};\n\nvar splitBlockInContentState = function splitBlockInContentState(contentState, selectionState) {\n !selectionState.isCollapsed() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Selection range must be collapsed.') : invariant(false) : void 0;\n var key = selectionState.getAnchorKey();\n var blockMap = contentState.getBlockMap();\n var blockToSplit = blockMap.get(key);\n var text = blockToSplit.getText();\n\n if (!text) {\n var blockType = blockToSplit.getType();\n\n if (blockType === 'unordered-list-item' || blockType === 'ordered-list-item') {\n return modifyBlockForContentState(contentState, selectionState, function (block) {\n return block.merge({\n type: 'unstyled',\n depth: 0\n });\n });\n }\n }\n\n var offset = selectionState.getAnchorOffset();\n var chars = blockToSplit.getCharacterList();\n var keyBelow = generateRandomKey();\n var isExperimentalTreeBlock = blockToSplit instanceof ContentBlockNode;\n var blockAbove = blockToSplit.merge({\n text: text.slice(0, offset),\n characterList: chars.slice(0, offset)\n });\n var blockBelow = blockAbove.merge({\n key: keyBelow,\n text: text.slice(offset),\n characterList: chars.slice(offset),\n data: Map()\n });\n var blocksBefore = blockMap.toSeq().takeUntil(function (v) {\n return v === blockToSplit;\n });\n var blocksAfter = blockMap.toSeq().skipUntil(function (v) {\n return v === blockToSplit;\n }).rest();\n var newBlocks = blocksBefore.concat([[key, blockAbove], [keyBelow, blockBelow]], blocksAfter).toOrderedMap();\n\n if (isExperimentalTreeBlock) {\n !blockToSplit.getChildKeys().isEmpty() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ContentBlockNode must not have children') : invariant(false) : void 0;\n newBlocks = updateBlockMapLinks(newBlocks, blockAbove, blockBelow);\n }\n\n return contentState.merge({\n blockMap: newBlocks,\n selectionBefore: selectionState,\n selectionAfter: selectionState.merge({\n anchorKey: keyBelow,\n anchorOffset: 0,\n focusKey: keyBelow,\n focusOffset: 0,\n isBackward: false\n })\n });\n};\n\nmodule.exports = splitBlockInContentState;","/**\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 2004-present Facebook. All Rights Reserved.\n *\n * @typechecks\n * \n * @format\n */\n\n/*eslint-disable no-bitwise */\n\n/**\n * Based on the rfc4122-compliant solution posted at\n * http://stackoverflow.com/questions/105034\n */\nfunction uuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0;\n var v = c == 'x' ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n}\n\nmodule.exports = uuid;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks\n */\nvar PhotosMimeType = require(\"./PhotosMimeType\");\n\nvar createArrayFromMixed = require(\"./createArrayFromMixed\");\n\nvar emptyFunction = require(\"./emptyFunction\");\n\nvar CR_LF_REGEX = new RegExp(\"\\r\\n\", 'g');\nvar LF_ONLY = \"\\n\";\nvar RICH_TEXT_TYPES = {\n 'text/rtf': 1,\n 'text/html': 1\n};\n/**\n * If DataTransferItem is a file then return the Blob of data.\n *\n * @param {object} item\n * @return {?blob}\n */\n\nfunction getFileFromDataTransfer(item) {\n if (item.kind == 'file') {\n return item.getAsFile();\n }\n}\n\nvar DataTransfer =\n/*#__PURE__*/\nfunction () {\n /**\n * @param {object} data\n */\n function DataTransfer(data) {\n this.data = data; // Types could be DOMStringList or array\n\n this.types = data.types ? createArrayFromMixed(data.types) : [];\n }\n /**\n * Is this likely to be a rich text data transfer?\n *\n * @return {boolean}\n */\n\n\n var _proto = DataTransfer.prototype;\n\n _proto.isRichText = function isRichText() {\n // If HTML is available, treat this data as rich text. This way, we avoid\n // using a pasted image if it is packaged with HTML -- this may occur with\n // pastes from MS Word, for example. However this is only rich text if\n // there's accompanying text.\n if (this.getHTML() && this.getText()) {\n return true;\n } // When an image is copied from a preview window, you end up with two\n // DataTransferItems one of which is a file's metadata as text. Skip those.\n\n\n if (this.isImage()) {\n return false;\n }\n\n return this.types.some(function (type) {\n return RICH_TEXT_TYPES[type];\n });\n };\n /**\n * Get raw text.\n *\n * @return {?string}\n */\n\n\n _proto.getText = function getText() {\n var text;\n\n if (this.data.getData) {\n if (!this.types.length) {\n text = this.data.getData('Text');\n } else if (this.types.indexOf('text/plain') != -1) {\n text = this.data.getData('text/plain');\n }\n }\n\n return text ? text.replace(CR_LF_REGEX, LF_ONLY) : null;\n };\n /**\n * Get HTML paste data\n *\n * @return {?string}\n */\n\n\n _proto.getHTML = function getHTML() {\n if (this.data.getData) {\n if (!this.types.length) {\n return this.data.getData('Text');\n } else if (this.types.indexOf('text/html') != -1) {\n return this.data.getData('text/html');\n }\n }\n };\n /**\n * Is this a link data transfer?\n *\n * @return {boolean}\n */\n\n\n _proto.isLink = function isLink() {\n return this.types.some(function (type) {\n return type.indexOf('Url') != -1 || type.indexOf('text/uri-list') != -1 || type.indexOf('text/x-moz-url');\n });\n };\n /**\n * Get a link url.\n *\n * @return {?string}\n */\n\n\n _proto.getLink = function getLink() {\n if (this.data.getData) {\n if (this.types.indexOf('text/x-moz-url') != -1) {\n var url = this.data.getData('text/x-moz-url').split('\\n');\n return url[0];\n }\n\n return this.types.indexOf('text/uri-list') != -1 ? this.data.getData('text/uri-list') : this.data.getData('url');\n }\n\n return null;\n };\n /**\n * Is this an image data transfer?\n *\n * @return {boolean}\n */\n\n\n _proto.isImage = function isImage() {\n var isImage = this.types.some(function (type) {\n // Firefox will have a type of application/x-moz-file for images during\n // dragging\n return type.indexOf('application/x-moz-file') != -1;\n });\n\n if (isImage) {\n return true;\n }\n\n var items = this.getFiles();\n\n for (var i = 0; i < items.length; i++) {\n var type = items[i].type;\n\n if (!PhotosMimeType.isImage(type)) {\n return false;\n }\n }\n\n return true;\n };\n\n _proto.getCount = function getCount() {\n if (this.data.hasOwnProperty('items')) {\n return this.data.items.length;\n } else if (this.data.hasOwnProperty('mozItemCount')) {\n return this.data.mozItemCount;\n } else if (this.data.files) {\n return this.data.files.length;\n }\n\n return null;\n };\n /**\n * Get files.\n *\n * @return {array}\n */\n\n\n _proto.getFiles = function getFiles() {\n if (this.data.items) {\n // createArrayFromMixed doesn't properly handle DataTransferItemLists.\n return Array.prototype.slice.call(this.data.items).map(getFileFromDataTransfer).filter(emptyFunction.thatReturnsArgument);\n } else if (this.data.files) {\n return Array.prototype.slice.call(this.data.files);\n } else {\n return [];\n }\n };\n /**\n * Are there any files to fetch?\n *\n * @return {boolean}\n */\n\n\n _proto.hasFiles = function hasFiles() {\n return this.getFiles().length > 0;\n };\n\n return DataTransfer;\n}();\n\nmodule.exports = DataTransfer;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 */\nmodule.exports = {\n BACKSPACE: 8,\n TAB: 9,\n RETURN: 13,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46,\n COMMA: 188,\n PERIOD: 190,\n A: 65,\n Z: 90,\n ZERO: 48,\n NUMPAD_0: 96,\n NUMPAD_9: 105\n};","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 */\nvar PhotosMimeType = {\n isImage: function isImage(mimeString) {\n return getParts(mimeString)[0] === 'image';\n },\n isJpeg: function isJpeg(mimeString) {\n var parts = getParts(mimeString);\n return PhotosMimeType.isImage(mimeString) && ( // see http://fburl.com/10972194\n parts[1] === 'jpeg' || parts[1] === 'pjpeg');\n }\n};\n\nfunction getParts(mimeString) {\n return mimeString.split('/');\n}\n\nmodule.exports = PhotosMimeType;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n/**\n * @param {DOMElement} element\n * @param {DOMDocument} doc\n * @return {boolean}\n */\nfunction _isViewportScrollElement(element, doc) {\n return !!doc && (element === doc.documentElement || element === doc.body);\n}\n/**\n * Scroll Module. This class contains 4 simple static functions\n * to be used to access Element.scrollTop/scrollLeft properties.\n * To solve the inconsistencies between browsers when either\n * document.body or document.documentElement is supplied,\n * below logic will be used to alleviate the issue:\n *\n * 1. If 'element' is either 'document.body' or 'document.documentElement,\n * get whichever element's 'scroll{Top,Left}' is larger.\n * 2. If 'element' is either 'document.body' or 'document.documentElement',\n * set the 'scroll{Top,Left}' on both elements.\n */\n\n\nvar Scroll = {\n /**\n * @param {DOMElement} element\n * @return {number}\n */\n getTop: function getTop(element) {\n var doc = element.ownerDocument;\n return _isViewportScrollElement(element, doc) ? // In practice, they will either both have the same value,\n // or one will be zero and the other will be the scroll position\n // of the viewport. So we can use `X || Y` instead of `Math.max(X, Y)`\n doc.body.scrollTop || doc.documentElement.scrollTop : element.scrollTop;\n },\n\n /**\n * @param {DOMElement} element\n * @param {number} newTop\n */\n setTop: function setTop(element, newTop) {\n var doc = element.ownerDocument;\n\n if (_isViewportScrollElement(element, doc)) {\n doc.body.scrollTop = doc.documentElement.scrollTop = newTop;\n } else {\n element.scrollTop = newTop;\n }\n },\n\n /**\n * @param {DOMElement} element\n * @return {number}\n */\n getLeft: function getLeft(element) {\n var doc = element.ownerDocument;\n return _isViewportScrollElement(element, doc) ? doc.body.scrollLeft || doc.documentElement.scrollLeft : element.scrollLeft;\n },\n\n /**\n * @param {DOMElement} element\n * @param {number} newLeft\n */\n setLeft: function setLeft(element, newLeft) {\n var doc = element.ownerDocument;\n\n if (_isViewportScrollElement(element, doc)) {\n doc.body.scrollLeft = doc.documentElement.scrollLeft = newLeft;\n } else {\n element.scrollLeft = newLeft;\n }\n }\n};\nmodule.exports = Scroll;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks\n */\nvar getStyleProperty = require(\"./getStyleProperty\");\n/**\n * @param {DOMNode} element [description]\n * @param {string} name Overflow style property name.\n * @return {boolean} True if the supplied ndoe is scrollable.\n */\n\n\nfunction _isNodeScrollable(element, name) {\n var overflow = Style.get(element, name);\n return overflow === 'auto' || overflow === 'scroll';\n}\n/**\n * Utilities for querying and mutating style properties.\n */\n\n\nvar Style = {\n /**\n * Gets the style property for the supplied node. This will return either the\n * computed style, if available, or the declared style.\n *\n * @param {DOMNode} node\n * @param {string} name Style property name.\n * @return {?string} Style property value.\n */\n get: getStyleProperty,\n\n /**\n * Determines the nearest ancestor of a node that is scrollable.\n *\n * NOTE: This can be expensive if used repeatedly or on a node nested deeply.\n *\n * @param {?DOMNode} node Node from which to start searching.\n * @return {?DOMWindow|DOMElement} Scroll parent of the supplied node.\n */\n getScrollParent: function getScrollParent(node) {\n if (!node) {\n return null;\n }\n\n var ownerDocument = node.ownerDocument;\n\n while (node && node !== ownerDocument.body) {\n if (_isNodeScrollable(node, 'overflow') || _isNodeScrollable(node, 'overflowY') || _isNodeScrollable(node, 'overflowX')) {\n return node;\n }\n\n node = node.parentNode;\n }\n\n return ownerDocument.defaultView || ownerDocument.parentWindow;\n }\n};\nmodule.exports = Style;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks\n * @stub\n * \n */\n'use strict'; // \\u00a1-\\u00b1\\u00b4-\\u00b8\\u00ba\\u00bb\\u00bf\n// is latin supplement punctuation except fractions and superscript\n// numbers\n// \\u2010-\\u2027\\u2030-\\u205e\n// is punctuation from the general punctuation block:\n// weird quotes, commas, bullets, dashes, etc.\n// \\u30fb\\u3001\\u3002\\u3008-\\u3011\\u3014-\\u301f\n// is CJK punctuation\n// \\uff1a-\\uff1f\\uff01-\\uff0f\\uff3b-\\uff40\\uff5b-\\uff65\n// is some full-width/half-width punctuation\n// \\u2E2E\\u061f\\u066a-\\u066c\\u061b\\u060c\\u060d\\uFD3e\\uFD3F\n// is some Arabic punctuation marks\n// \\u1801\\u0964\\u104a\\u104b\n// is misc. other language punctuation marks\n\nvar PUNCTUATION = '[.,+*?$|#{}()\\'\\\\^\\\\-\\\\[\\\\]\\\\\\\\\\\\/!@%\"~=<>_:;' + \"\\u30FB\\u3001\\u3002\\u3008-\\u3011\\u3014-\\u301F\\uFF1A-\\uFF1F\\uFF01-\\uFF0F\" + \"\\uFF3B-\\uFF40\\uFF5B-\\uFF65\\u2E2E\\u061F\\u066A-\\u066C\\u061B\\u060C\\u060D\" + \"\\uFD3E\\uFD3F\\u1801\\u0964\\u104A\\u104B\\u2010-\\u2027\\u2030-\\u205E\" + \"\\xA1-\\xB1\\xB4-\\xB8\\xBA\\xBB\\xBF]\";\nmodule.exports = {\n getPunctuation: function getPunctuation() {\n return PUNCTUATION;\n }\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 */\n'use strict';\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 URI =\n/*#__PURE__*/\nfunction () {\n function URI(uri) {\n _defineProperty(this, \"_uri\", void 0);\n\n this._uri = uri;\n }\n\n var _proto = URI.prototype;\n\n _proto.toString = function toString() {\n return this._uri;\n };\n\n return URI;\n}();\n\nmodule.exports = URI;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks\n * \n */\n\n/**\n * Basic (stateless) API for text direction detection\n *\n * Part of our implementation of Unicode Bidirectional Algorithm (UBA)\n * Unicode Standard Annex #9 (UAX9)\n * http://www.unicode.org/reports/tr9/\n */\n'use strict';\n\nvar UnicodeBidiDirection = require(\"./UnicodeBidiDirection\");\n\nvar invariant = require(\"./invariant\");\n\n/**\n * RegExp ranges of characters with a *Strong* Bidi_Class value.\n *\n * Data is based on DerivedBidiClass.txt in UCD version 7.0.0.\n *\n * NOTE: For performance reasons, we only support Unicode's\n * Basic Multilingual Plane (BMP) for now.\n */\nvar RANGE_BY_BIDI_TYPE = {\n L: \"A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u01BA\\u01BB\" + \"\\u01BC-\\u01BF\\u01C0-\\u01C3\\u01C4-\\u0293\\u0294\\u0295-\\u02AF\\u02B0-\\u02B8\" + \"\\u02BB-\\u02C1\\u02D0-\\u02D1\\u02E0-\\u02E4\\u02EE\\u0370-\\u0373\\u0376-\\u0377\" + \"\\u037A\\u037B-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\" + \"\\u03A3-\\u03F5\\u03F7-\\u0481\\u0482\\u048A-\\u052F\\u0531-\\u0556\\u0559\" + \"\\u055A-\\u055F\\u0561-\\u0587\\u0589\\u0903\\u0904-\\u0939\\u093B\\u093D\" + \"\\u093E-\\u0940\\u0949-\\u094C\\u094E-\\u094F\\u0950\\u0958-\\u0961\\u0964-\\u0965\" + \"\\u0966-\\u096F\\u0970\\u0971\\u0972-\\u0980\\u0982-\\u0983\\u0985-\\u098C\" + \"\\u098F-\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\" + \"\\u09BE-\\u09C0\\u09C7-\\u09C8\\u09CB-\\u09CC\\u09CE\\u09D7\\u09DC-\\u09DD\" + \"\\u09DF-\\u09E1\\u09E6-\\u09EF\\u09F0-\\u09F1\\u09F4-\\u09F9\\u09FA\\u0A03\" + \"\\u0A05-\\u0A0A\\u0A0F-\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32-\\u0A33\" + \"\\u0A35-\\u0A36\\u0A38-\\u0A39\\u0A3E-\\u0A40\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A6F\" + \"\\u0A72-\\u0A74\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\" + \"\\u0AB2-\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0ABE-\\u0AC0\\u0AC9\\u0ACB-\\u0ACC\\u0AD0\" + \"\\u0AE0-\\u0AE1\\u0AE6-\\u0AEF\\u0AF0\\u0B02-\\u0B03\\u0B05-\\u0B0C\\u0B0F-\\u0B10\" + \"\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32-\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B3E\\u0B40\" + \"\\u0B47-\\u0B48\\u0B4B-\\u0B4C\\u0B57\\u0B5C-\\u0B5D\\u0B5F-\\u0B61\\u0B66-\\u0B6F\" + \"\\u0B70\\u0B71\\u0B72-\\u0B77\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\" + \"\\u0B99-\\u0B9A\\u0B9C\\u0B9E-\\u0B9F\\u0BA3-\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\" + \"\\u0BBE-\\u0BBF\\u0BC1-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCC\\u0BD0\\u0BD7\" + \"\\u0BE6-\\u0BEF\\u0BF0-\\u0BF2\\u0C01-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\" + \"\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C41-\\u0C44\\u0C58-\\u0C59\\u0C60-\\u0C61\" + \"\\u0C66-\\u0C6F\\u0C7F\\u0C82-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\" + \"\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CBE\\u0CBF\\u0CC0-\\u0CC4\\u0CC6\" + \"\\u0CC7-\\u0CC8\\u0CCA-\\u0CCB\\u0CD5-\\u0CD6\\u0CDE\\u0CE0-\\u0CE1\\u0CE6-\\u0CEF\" + \"\\u0CF1-\\u0CF2\\u0D02-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\" + \"\\u0D3E-\\u0D40\\u0D46-\\u0D48\\u0D4A-\\u0D4C\\u0D4E\\u0D57\\u0D60-\\u0D61\" + \"\\u0D66-\\u0D6F\\u0D70-\\u0D75\\u0D79\\u0D7A-\\u0D7F\\u0D82-\\u0D83\\u0D85-\\u0D96\" + \"\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCF-\\u0DD1\\u0DD8-\\u0DDF\" + \"\\u0DE6-\\u0DEF\\u0DF2-\\u0DF3\\u0DF4\\u0E01-\\u0E30\\u0E32-\\u0E33\\u0E40-\\u0E45\" + \"\\u0E46\\u0E4F\\u0E50-\\u0E59\\u0E5A-\\u0E5B\\u0E81-\\u0E82\\u0E84\\u0E87-\\u0E88\" + \"\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\" + \"\\u0EAA-\\u0EAB\\u0EAD-\\u0EB0\\u0EB2-\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\" + \"\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F01-\\u0F03\\u0F04-\\u0F12\\u0F13\\u0F14\" + \"\\u0F15-\\u0F17\\u0F1A-\\u0F1F\\u0F20-\\u0F29\\u0F2A-\\u0F33\\u0F34\\u0F36\\u0F38\" + \"\\u0F3E-\\u0F3F\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F7F\\u0F85\\u0F88-\\u0F8C\" + \"\\u0FBE-\\u0FC5\\u0FC7-\\u0FCC\\u0FCE-\\u0FCF\\u0FD0-\\u0FD4\\u0FD5-\\u0FD8\" + \"\\u0FD9-\\u0FDA\\u1000-\\u102A\\u102B-\\u102C\\u1031\\u1038\\u103B-\\u103C\\u103F\" + \"\\u1040-\\u1049\\u104A-\\u104F\\u1050-\\u1055\\u1056-\\u1057\\u105A-\\u105D\\u1061\" + \"\\u1062-\\u1064\\u1065-\\u1066\\u1067-\\u106D\\u106E-\\u1070\\u1075-\\u1081\" + \"\\u1083-\\u1084\\u1087-\\u108C\\u108E\\u108F\\u1090-\\u1099\\u109A-\\u109C\" + \"\\u109E-\\u109F\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FB\\u10FC\" + \"\\u10FD-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\" + \"\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\" + \"\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1360-\\u1368\" + \"\\u1369-\\u137C\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166D-\\u166E\" + \"\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EB-\\u16ED\\u16EE-\\u16F0\" + \"\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1735-\\u1736\" + \"\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17B6\\u17BE-\\u17C5\" + \"\\u17C7-\\u17C8\\u17D4-\\u17D6\\u17D7\\u17D8-\\u17DA\\u17DC\\u17E0-\\u17E9\" + \"\\u1810-\\u1819\\u1820-\\u1842\\u1843\\u1844-\\u1877\\u1880-\\u18A8\\u18AA\" + \"\\u18B0-\\u18F5\\u1900-\\u191E\\u1923-\\u1926\\u1929-\\u192B\\u1930-\\u1931\" + \"\\u1933-\\u1938\\u1946-\\u194F\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\" + \"\\u19B0-\\u19C0\\u19C1-\\u19C7\\u19C8-\\u19C9\\u19D0-\\u19D9\\u19DA\\u1A00-\\u1A16\" + \"\\u1A19-\\u1A1A\\u1A1E-\\u1A1F\\u1A20-\\u1A54\\u1A55\\u1A57\\u1A61\\u1A63-\\u1A64\" + \"\\u1A6D-\\u1A72\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1AA0-\\u1AA6\\u1AA7\\u1AA8-\\u1AAD\" + \"\\u1B04\\u1B05-\\u1B33\\u1B35\\u1B3B\\u1B3D-\\u1B41\\u1B43-\\u1B44\\u1B45-\\u1B4B\" + \"\\u1B50-\\u1B59\\u1B5A-\\u1B60\\u1B61-\\u1B6A\\u1B74-\\u1B7C\\u1B82\\u1B83-\\u1BA0\" + \"\\u1BA1\\u1BA6-\\u1BA7\\u1BAA\\u1BAE-\\u1BAF\\u1BB0-\\u1BB9\\u1BBA-\\u1BE5\\u1BE7\" + \"\\u1BEA-\\u1BEC\\u1BEE\\u1BF2-\\u1BF3\\u1BFC-\\u1BFF\\u1C00-\\u1C23\\u1C24-\\u1C2B\" + \"\\u1C34-\\u1C35\\u1C3B-\\u1C3F\\u1C40-\\u1C49\\u1C4D-\\u1C4F\\u1C50-\\u1C59\" + \"\\u1C5A-\\u1C77\\u1C78-\\u1C7D\\u1C7E-\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u1CE1\" + \"\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF2-\\u1CF3\\u1CF5-\\u1CF6\\u1D00-\\u1D2B\" + \"\\u1D2C-\\u1D6A\\u1D6B-\\u1D77\\u1D78\\u1D79-\\u1D9A\\u1D9B-\\u1DBF\\u1E00-\\u1F15\" + \"\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\" + \"\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\" + \"\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200E\" + \"\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\" + \"\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2134\\u2135-\\u2138\\u2139\" + \"\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u214F\\u2160-\\u2182\\u2183-\\u2184\" + \"\\u2185-\\u2188\\u2336-\\u237A\\u2395\\u249C-\\u24E9\\u26AC\\u2800-\\u28FF\" + \"\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2C7B\\u2C7C-\\u2C7D\\u2C7E-\\u2CE4\" + \"\\u2CEB-\\u2CEE\\u2CF2-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\" + \"\\u2D70\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\" + \"\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005\\u3006\\u3007\" + \"\\u3021-\\u3029\\u302E-\\u302F\\u3031-\\u3035\\u3038-\\u303A\\u303B\\u303C\" + \"\\u3041-\\u3096\\u309D-\\u309E\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FE\\u30FF\" + \"\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u3191\\u3192-\\u3195\\u3196-\\u319F\" + \"\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3200-\\u321C\\u3220-\\u3229\\u322A-\\u3247\" + \"\\u3248-\\u324F\\u3260-\\u327B\\u327F\\u3280-\\u3289\\u328A-\\u32B0\\u32C0-\\u32CB\" + \"\\u32D0-\\u32FE\\u3300-\\u3376\\u337B-\\u33DD\\u33E0-\\u33FE\\u3400-\\u4DB5\" + \"\\u4E00-\\u9FCC\\uA000-\\uA014\\uA015\\uA016-\\uA48C\\uA4D0-\\uA4F7\\uA4F8-\\uA4FD\" + \"\\uA4FE-\\uA4FF\\uA500-\\uA60B\\uA60C\\uA610-\\uA61F\\uA620-\\uA629\\uA62A-\\uA62B\" + \"\\uA640-\\uA66D\\uA66E\\uA680-\\uA69B\\uA69C-\\uA69D\\uA6A0-\\uA6E5\\uA6E6-\\uA6EF\" + \"\\uA6F2-\\uA6F7\\uA722-\\uA76F\\uA770\\uA771-\\uA787\\uA789-\\uA78A\\uA78B-\\uA78E\" + \"\\uA790-\\uA7AD\\uA7B0-\\uA7B1\\uA7F7\\uA7F8-\\uA7F9\\uA7FA\\uA7FB-\\uA801\" + \"\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA823-\\uA824\\uA827\\uA830-\\uA835\" + \"\\uA836-\\uA837\\uA840-\\uA873\\uA880-\\uA881\\uA882-\\uA8B3\\uA8B4-\\uA8C3\" + \"\\uA8CE-\\uA8CF\\uA8D0-\\uA8D9\\uA8F2-\\uA8F7\\uA8F8-\\uA8FA\\uA8FB\\uA900-\\uA909\" + \"\\uA90A-\\uA925\\uA92E-\\uA92F\\uA930-\\uA946\\uA952-\\uA953\\uA95F\\uA960-\\uA97C\" + \"\\uA983\\uA984-\\uA9B2\\uA9B4-\\uA9B5\\uA9BA-\\uA9BB\\uA9BD-\\uA9C0\\uA9C1-\\uA9CD\" + \"\\uA9CF\\uA9D0-\\uA9D9\\uA9DE-\\uA9DF\\uA9E0-\\uA9E4\\uA9E6\\uA9E7-\\uA9EF\" + \"\\uA9F0-\\uA9F9\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA2F-\\uAA30\\uAA33-\\uAA34\" + \"\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA4D\\uAA50-\\uAA59\\uAA5C-\\uAA5F\\uAA60-\\uAA6F\" + \"\\uAA70\\uAA71-\\uAA76\\uAA77-\\uAA79\\uAA7A\\uAA7B\\uAA7D\\uAA7E-\\uAAAF\\uAAB1\" + \"\\uAAB5-\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADC\\uAADD\\uAADE-\\uAADF\" + \"\\uAAE0-\\uAAEA\\uAAEB\\uAAEE-\\uAAEF\\uAAF0-\\uAAF1\\uAAF2\\uAAF3-\\uAAF4\\uAAF5\" + \"\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\" + \"\\uAB30-\\uAB5A\\uAB5B\\uAB5C-\\uAB5F\\uAB64-\\uAB65\\uABC0-\\uABE2\\uABE3-\\uABE4\" + \"\\uABE6-\\uABE7\\uABE9-\\uABEA\\uABEB\\uABEC\\uABF0-\\uABF9\\uAC00-\\uD7A3\" + \"\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uE000-\\uF8FF\\uF900-\\uFA6D\\uFA70-\\uFAD9\" + \"\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFF6F\\uFF70\" + \"\\uFF71-\\uFF9D\\uFF9E-\\uFF9F\\uFFA0-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\" + \"\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\",\n R: \"\\u0590\\u05BE\\u05C0\\u05C3\\u05C6\\u05C8-\\u05CF\\u05D0-\\u05EA\\u05EB-\\u05EF\" + \"\\u05F0-\\u05F2\\u05F3-\\u05F4\\u05F5-\\u05FF\\u07C0-\\u07C9\\u07CA-\\u07EA\" + \"\\u07F4-\\u07F5\\u07FA\\u07FB-\\u07FF\\u0800-\\u0815\\u081A\\u0824\\u0828\" + \"\\u082E-\\u082F\\u0830-\\u083E\\u083F\\u0840-\\u0858\\u085C-\\u085D\\u085E\" + \"\\u085F-\\u089F\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB37\\uFB38-\\uFB3C\" + \"\\uFB3D\\uFB3E\\uFB3F\\uFB40-\\uFB41\\uFB42\\uFB43-\\uFB44\\uFB45\\uFB46-\\uFB4F\",\n AL: \"\\u0608\\u060B\\u060D\\u061B\\u061C\\u061D\\u061E-\\u061F\\u0620-\\u063F\\u0640\" + \"\\u0641-\\u064A\\u066D\\u066E-\\u066F\\u0671-\\u06D3\\u06D4\\u06D5\\u06E5-\\u06E6\" + \"\\u06EE-\\u06EF\\u06FA-\\u06FC\\u06FD-\\u06FE\\u06FF\\u0700-\\u070D\\u070E\\u070F\" + \"\\u0710\\u0712-\\u072F\\u074B-\\u074C\\u074D-\\u07A5\\u07B1\\u07B2-\\u07BF\" + \"\\u08A0-\\u08B2\\u08B3-\\u08E3\\uFB50-\\uFBB1\\uFBB2-\\uFBC1\\uFBC2-\\uFBD2\" + \"\\uFBD3-\\uFD3D\\uFD40-\\uFD4F\\uFD50-\\uFD8F\\uFD90-\\uFD91\\uFD92-\\uFDC7\" + \"\\uFDC8-\\uFDCF\\uFDF0-\\uFDFB\\uFDFC\\uFDFE-\\uFDFF\\uFE70-\\uFE74\\uFE75\" + \"\\uFE76-\\uFEFC\\uFEFD-\\uFEFE\"\n};\nvar REGEX_STRONG = new RegExp('[' + RANGE_BY_BIDI_TYPE.L + RANGE_BY_BIDI_TYPE.R + RANGE_BY_BIDI_TYPE.AL + ']');\nvar REGEX_RTL = new RegExp('[' + RANGE_BY_BIDI_TYPE.R + RANGE_BY_BIDI_TYPE.AL + ']');\n/**\n * Returns the first strong character (has Bidi_Class value of L, R, or AL).\n *\n * @param str A text block; e.g. paragraph, table cell, tag\n * @return A character with strong bidi direction, or null if not found\n */\n\nfunction firstStrongChar(str) {\n var match = REGEX_STRONG.exec(str);\n return match == null ? null : match[0];\n}\n/**\n * Returns the direction of a block of text, based on the direction of its\n * first strong character (has Bidi_Class value of L, R, or AL).\n *\n * @param str A text block; e.g. paragraph, table cell, tag\n * @return The resolved direction\n */\n\n\nfunction firstStrongCharDir(str) {\n var strongChar = firstStrongChar(str);\n\n if (strongChar == null) {\n return UnicodeBidiDirection.NEUTRAL;\n }\n\n return REGEX_RTL.exec(strongChar) ? UnicodeBidiDirection.RTL : UnicodeBidiDirection.LTR;\n}\n/**\n * Returns the direction of a block of text, based on the direction of its\n * first strong character (has Bidi_Class value of L, R, or AL), or a fallback\n * direction, if no strong character is found.\n *\n * This function is supposed to be used in respect to Higher-Level Protocol\n * rule HL1. (http://www.unicode.org/reports/tr9/#HL1)\n *\n * @param str A text block; e.g. paragraph, table cell, tag\n * @param fallback Fallback direction, used if no strong direction detected\n * for the block (default = NEUTRAL)\n * @return The resolved direction\n */\n\n\nfunction resolveBlockDir(str, fallback) {\n fallback = fallback || UnicodeBidiDirection.NEUTRAL;\n\n if (!str.length) {\n return fallback;\n }\n\n var blockDir = firstStrongCharDir(str);\n return blockDir === UnicodeBidiDirection.NEUTRAL ? fallback : blockDir;\n}\n/**\n * Returns the direction of a block of text, based on the direction of its\n * first strong character (has Bidi_Class value of L, R, or AL), or a fallback\n * direction, if no strong character is found.\n *\n * NOTE: This function is similar to resolveBlockDir(), but uses the global\n * direction as the fallback, so it *always* returns a Strong direction,\n * making it useful for integration in places that you need to make the final\n * decision, like setting some CSS class.\n *\n * This function is supposed to be used in respect to Higher-Level Protocol\n * rule HL1. (http://www.unicode.org/reports/tr9/#HL1)\n *\n * @param str A text block; e.g. paragraph, table cell\n * @param strongFallback Fallback direction, used if no strong direction\n * detected for the block (default = global direction)\n * @return The resolved Strong direction\n */\n\n\nfunction getDirection(str, strongFallback) {\n if (!strongFallback) {\n strongFallback = UnicodeBidiDirection.getGlobalDir();\n }\n\n !UnicodeBidiDirection.isStrong(strongFallback) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Fallback direction must be a strong direction') : invariant(false) : void 0;\n return resolveBlockDir(str, strongFallback);\n}\n/**\n * Returns true if getDirection(arguments...) returns LTR.\n *\n * @param str A text block; e.g. paragraph, table cell\n * @param strongFallback Fallback direction, used if no strong direction\n * detected for the block (default = global direction)\n * @return True if the resolved direction is LTR\n */\n\n\nfunction isDirectionLTR(str, strongFallback) {\n return getDirection(str, strongFallback) === UnicodeBidiDirection.LTR;\n}\n/**\n * Returns true if getDirection(arguments...) returns RTL.\n *\n * @param str A text block; e.g. paragraph, table cell\n * @param strongFallback Fallback direction, used if no strong direction\n * detected for the block (default = global direction)\n * @return True if the resolved direction is RTL\n */\n\n\nfunction isDirectionRTL(str, strongFallback) {\n return getDirection(str, strongFallback) === UnicodeBidiDirection.RTL;\n}\n\nvar UnicodeBidi = {\n firstStrongChar: firstStrongChar,\n firstStrongCharDir: firstStrongCharDir,\n resolveBlockDir: resolveBlockDir,\n getDirection: getDirection,\n isDirectionLTR: isDirectionLTR,\n isDirectionRTL: isDirectionRTL\n};\nmodule.exports = UnicodeBidi;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks\n * \n */\n\n/**\n * Constants to represent text directionality\n *\n * Also defines a *global* direciton, to be used in bidi algorithms as a\n * default fallback direciton, when no better direction is found or provided.\n *\n * NOTE: Use `setGlobalDir()`, or update `initGlobalDir()`, to set the initial\n * global direction value based on the application.\n *\n * Part of the implementation of Unicode Bidirectional Algorithm (UBA)\n * Unicode Standard Annex #9 (UAX9)\n * http://www.unicode.org/reports/tr9/\n */\n'use strict';\n\nvar invariant = require(\"./invariant\");\n\nvar NEUTRAL = 'NEUTRAL'; // No strong direction\n\nvar LTR = 'LTR'; // Left-to-Right direction\n\nvar RTL = 'RTL'; // Right-to-Left direction\n\nvar globalDir = null; // == Helpers ==\n\n/**\n * Check if a directionality value is a Strong one\n */\n\nfunction isStrong(dir) {\n return dir === LTR || dir === RTL;\n}\n/**\n * Get string value to be used for `dir` HTML attribute or `direction` CSS\n * property.\n */\n\n\nfunction getHTMLDir(dir) {\n !isStrong(dir) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '`dir` must be a strong direction to be converted to HTML Direction') : invariant(false) : void 0;\n return dir === LTR ? 'ltr' : 'rtl';\n}\n/**\n * Get string value to be used for `dir` HTML attribute or `direction` CSS\n * property, but returns null if `dir` has same value as `otherDir`.\n * `null`.\n */\n\n\nfunction getHTMLDirIfDifferent(dir, otherDir) {\n !isStrong(dir) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '`dir` must be a strong direction to be converted to HTML Direction') : invariant(false) : void 0;\n !isStrong(otherDir) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '`otherDir` must be a strong direction to be converted to HTML Direction') : invariant(false) : void 0;\n return dir === otherDir ? null : getHTMLDir(dir);\n} // == Global Direction ==\n\n/**\n * Set the global direction.\n */\n\n\nfunction setGlobalDir(dir) {\n globalDir = dir;\n}\n/**\n * Initialize the global direction\n */\n\n\nfunction initGlobalDir() {\n setGlobalDir(LTR);\n}\n/**\n * Get the global direction\n */\n\n\nfunction getGlobalDir() {\n if (!globalDir) {\n this.initGlobalDir();\n }\n\n !globalDir ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Global direction not set.') : invariant(false) : void 0;\n return globalDir;\n}\n\nvar UnicodeBidiDirection = {\n // Values\n NEUTRAL: NEUTRAL,\n LTR: LTR,\n RTL: RTL,\n // Helpers\n isStrong: isStrong,\n getHTMLDir: getHTMLDir,\n getHTMLDirIfDifferent: getHTMLDirIfDifferent,\n // Global Direction\n setGlobalDir: setGlobalDir,\n initGlobalDir: initGlobalDir,\n getGlobalDir: getGlobalDir\n};\nmodule.exports = UnicodeBidiDirection;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks\n * \n */\n\n/**\n * Stateful API for text direction detection\n *\n * This class can be used in applications where you need to detect the\n * direction of a sequence of text blocks, where each direction shall be used\n * as the fallback direction for the next one.\n *\n * NOTE: A default direction, if not provided, is set based on the global\n * direction, as defined by `UnicodeBidiDirection`.\n *\n * == Example ==\n * ```\n * var UnicodeBidiService = require('UnicodeBidiService');\n *\n * var bidiService = new UnicodeBidiService();\n *\n * ...\n *\n * bidiService.reset();\n * for (var para in paragraphs) {\n * var dir = bidiService.getDirection(para);\n * ...\n * }\n * ```\n *\n * Part of our implementation of Unicode Bidirectional Algorithm (UBA)\n * Unicode Standard Annex #9 (UAX9)\n * http://www.unicode.org/reports/tr9/\n */\n'use strict';\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 UnicodeBidi = require(\"./UnicodeBidi\");\n\nvar UnicodeBidiDirection = require(\"./UnicodeBidiDirection\");\n\nvar invariant = require(\"./invariant\");\n\nvar UnicodeBidiService =\n/*#__PURE__*/\nfunction () {\n /**\n * Stateful class for paragraph direction detection\n *\n * @param defaultDir Default direction of the service\n */\n function UnicodeBidiService(defaultDir) {\n _defineProperty(this, \"_defaultDir\", void 0);\n\n _defineProperty(this, \"_lastDir\", void 0);\n\n if (!defaultDir) {\n defaultDir = UnicodeBidiDirection.getGlobalDir();\n } else {\n !UnicodeBidiDirection.isStrong(defaultDir) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Default direction must be a strong direction (LTR or RTL)') : invariant(false) : void 0;\n }\n\n this._defaultDir = defaultDir;\n this.reset();\n }\n /**\n * Reset the internal state\n *\n * Instead of creating a new instance, you can just reset() your instance\n * everytime you start a new loop.\n */\n\n\n var _proto = UnicodeBidiService.prototype;\n\n _proto.reset = function reset() {\n this._lastDir = this._defaultDir;\n };\n /**\n * Returns the direction of a block of text, and remembers it as the\n * fall-back direction for the next paragraph.\n *\n * @param str A text block, e.g. paragraph, table cell, tag\n * @return The resolved direction\n */\n\n\n _proto.getDirection = function getDirection(str) {\n this._lastDir = UnicodeBidi.getDirection(str, this._lastDir);\n return this._lastDir;\n };\n\n return UnicodeBidiService;\n}();\n\nmodule.exports = UnicodeBidiService;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks\n */\n\n/**\n * Unicode-enabled replacesments for basic String functions.\n *\n * All the functions in this module assume that the input string is a valid\n * UTF-16 encoding of a Unicode sequence. If it's not the case, the behavior\n * will be undefined.\n *\n * WARNING: Since this module is typechecks-enforced, you may find new bugs\n * when replacing normal String functions with ones provided here.\n */\n'use strict';\n\nvar invariant = require(\"./invariant\"); // These two ranges are consecutive so anything in [HIGH_START, LOW_END] is a\n// surrogate code unit.\n\n\nvar SURROGATE_HIGH_START = 0xD800;\nvar SURROGATE_HIGH_END = 0xDBFF;\nvar SURROGATE_LOW_START = 0xDC00;\nvar SURROGATE_LOW_END = 0xDFFF;\nvar SURROGATE_UNITS_REGEX = /[\\uD800-\\uDFFF]/;\n/**\n * @param {number} codeUnit A Unicode code-unit, in range [0, 0x10FFFF]\n * @return {boolean} Whether code-unit is in a surrogate (hi/low) range\n */\n\nfunction isCodeUnitInSurrogateRange(codeUnit) {\n return SURROGATE_HIGH_START <= codeUnit && codeUnit <= SURROGATE_LOW_END;\n}\n/**\n * Returns whether the two characters starting at `index` form a surrogate pair.\n * For example, given the string s = \"\\uD83D\\uDE0A\", (s, 0) returns true and\n * (s, 1) returns false.\n *\n * @param {string} str\n * @param {number} index\n * @return {boolean}\n */\n\n\nfunction isSurrogatePair(str, index) {\n !(0 <= index && index < str.length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'isSurrogatePair: Invalid index %s for string length %s.', index, str.length) : invariant(false) : void 0;\n\n if (index + 1 === str.length) {\n return false;\n }\n\n var first = str.charCodeAt(index);\n var second = str.charCodeAt(index + 1);\n return SURROGATE_HIGH_START <= first && first <= SURROGATE_HIGH_END && SURROGATE_LOW_START <= second && second <= SURROGATE_LOW_END;\n}\n/**\n * @param {string} str Non-empty string\n * @return {boolean} True if the input includes any surrogate code units\n */\n\n\nfunction hasSurrogateUnit(str) {\n return SURROGATE_UNITS_REGEX.test(str);\n}\n/**\n * Return the length of the original Unicode character at given position in the\n * String by looking into the UTF-16 code unit; that is equal to 1 for any\n * non-surrogate characters in BMP ([U+0000..U+D7FF] and [U+E000, U+FFFF]); and\n * returns 2 for the hi/low surrogates ([U+D800..U+DFFF]), which are in fact\n * representing non-BMP characters ([U+10000..U+10FFFF]).\n *\n * Examples:\n * - '\\u0020' => 1\n * - '\\u3020' => 1\n * - '\\uD835' => 2\n * - '\\uD835\\uDDEF' => 2\n * - '\\uDDEF' => 2\n *\n * @param {string} str Non-empty string\n * @param {number} pos Position in the string to look for one code unit\n * @return {number} Number 1 or 2\n */\n\n\nfunction getUTF16Length(str, pos) {\n return 1 + isCodeUnitInSurrogateRange(str.charCodeAt(pos));\n}\n/**\n * Fully Unicode-enabled replacement for String#length\n *\n * @param {string} str Valid Unicode string\n * @return {number} The number of Unicode characters in the string\n */\n\n\nfunction strlen(str) {\n // Call the native functions if there's no surrogate char\n if (!hasSurrogateUnit(str)) {\n return str.length;\n }\n\n var len = 0;\n\n for (var pos = 0; pos < str.length; pos += getUTF16Length(str, pos)) {\n len++;\n }\n\n return len;\n}\n/**\n * Fully Unicode-enabled replacement for String#substr()\n *\n * @param {string} str Valid Unicode string\n * @param {number} start Location in Unicode sequence to begin extracting\n * @param {?number} length The number of Unicode characters to extract\n * (default: to the end of the string)\n * @return {string} Extracted sub-string\n */\n\n\nfunction substr(str, start, length) {\n start = start || 0;\n length = length === undefined ? Infinity : length || 0; // Call the native functions if there's no surrogate char\n\n if (!hasSurrogateUnit(str)) {\n return str.substr(start, length);\n } // Obvious cases\n\n\n var size = str.length;\n\n if (size <= 0 || start > size || length <= 0) {\n return '';\n } // Find the actual starting position\n\n\n var posA = 0;\n\n if (start > 0) {\n for (; start > 0 && posA < size; start--) {\n posA += getUTF16Length(str, posA);\n }\n\n if (posA >= size) {\n return '';\n }\n } else if (start < 0) {\n for (posA = size; start < 0 && 0 < posA; start++) {\n posA -= getUTF16Length(str, posA - 1);\n }\n\n if (posA < 0) {\n posA = 0;\n }\n } // Find the actual ending position\n\n\n var posB = size;\n\n if (length < size) {\n for (posB = posA; length > 0 && posB < size; length--) {\n posB += getUTF16Length(str, posB);\n }\n }\n\n return str.substring(posA, posB);\n}\n/**\n * Fully Unicode-enabled replacement for String#substring()\n *\n * @param {string} str Valid Unicode string\n * @param {number} start Location in Unicode sequence to begin extracting\n * @param {?number} end Location in Unicode sequence to end extracting\n * (default: end of the string)\n * @return {string} Extracted sub-string\n */\n\n\nfunction substring(str, start, end) {\n start = start || 0;\n end = end === undefined ? Infinity : end || 0;\n\n if (start < 0) {\n start = 0;\n }\n\n if (end < 0) {\n end = 0;\n }\n\n var length = Math.abs(end - start);\n start = start < end ? start : end;\n return substr(str, start, length);\n}\n/**\n * Get a list of Unicode code-points from a String\n *\n * @param {string} str Valid Unicode string\n * @return {array} A list of code-points in [0..0x10FFFF]\n */\n\n\nfunction getCodePoints(str) {\n var codePoints = [];\n\n for (var pos = 0; pos < str.length; pos += getUTF16Length(str, pos)) {\n codePoints.push(str.codePointAt(pos));\n }\n\n return codePoints;\n}\n\nvar UnicodeUtils = {\n getCodePoints: getCodePoints,\n getUTF16Length: getUTF16Length,\n hasSurrogateUnit: hasSurrogateUnit,\n isCodeUnitInSurrogateRange: isCodeUnitInSurrogateRange,\n isSurrogatePair: isSurrogatePair,\n strlen: strlen,\n substring: substring,\n substr: substr\n};\nmodule.exports = UnicodeUtils;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nvar UserAgentData = require(\"./UserAgentData\");\n\nvar VersionRange = require(\"./VersionRange\");\n\nvar mapObject = require(\"./mapObject\");\n\nvar memoizeStringOnly = require(\"./memoizeStringOnly\");\n/**\n * Checks to see whether `name` and `version` satisfy `query`.\n *\n * @param {string} name Name of the browser, device, engine or platform\n * @param {?string} version Version of the browser, engine or platform\n * @param {string} query Query of form \"Name [range expression]\"\n * @param {?function} normalizer Optional pre-processor for range expression\n * @return {boolean}\n */\n\n\nfunction compare(name, version, query, normalizer) {\n // check for exact match with no version\n if (name === query) {\n return true;\n } // check for non-matching names\n\n\n if (!query.startsWith(name)) {\n return false;\n } // full comparison with version\n\n\n var range = query.slice(name.length);\n\n if (version) {\n range = normalizer ? normalizer(range) : range;\n return VersionRange.contains(range, version);\n }\n\n return false;\n}\n/**\n * Normalizes `version` by stripping any \"NT\" prefix, but only on the Windows\n * platform.\n *\n * Mimics the stripping performed by the `UserAgentWindowsPlatform` PHP class.\n *\n * @param {string} version\n * @return {string}\n */\n\n\nfunction normalizePlatformVersion(version) {\n if (UserAgentData.platformName === 'Windows') {\n return version.replace(/^\\s*NT/, '');\n }\n\n return version;\n}\n/**\n * Provides client-side access to the authoritative PHP-generated User Agent\n * information supplied by the server.\n */\n\n\nvar UserAgent = {\n /**\n * Check if the User Agent browser matches `query`.\n *\n * `query` should be a string like \"Chrome\" or \"Chrome > 33\".\n *\n * Valid browser names include:\n *\n * - ACCESS NetFront\n * - AOL\n * - Amazon Silk\n * - Android\n * - BlackBerry\n * - BlackBerry PlayBook\n * - Chrome\n * - Chrome for iOS\n * - Chrome frame\n * - Facebook PHP SDK\n * - Facebook for iOS\n * - Firefox\n * - IE\n * - IE Mobile\n * - Mobile Safari\n * - Motorola Internet Browser\n * - Nokia\n * - Openwave Mobile Browser\n * - Opera\n * - Opera Mini\n * - Opera Mobile\n * - Safari\n * - UIWebView\n * - Unknown\n * - webOS\n * - etc...\n *\n * An authoritative list can be found in the PHP `BrowserDetector` class and\n * related classes in the same file (see calls to `new UserAgentBrowser` here:\n * https://fburl.com/50728104).\n *\n * @note Function results are memoized\n *\n * @param {string} query Query of the form \"Name [range expression]\"\n * @return {boolean}\n */\n isBrowser: function isBrowser(query) {\n return compare(UserAgentData.browserName, UserAgentData.browserFullVersion, query);\n },\n\n /**\n * Check if the User Agent browser uses a 32 or 64 bit architecture.\n *\n * @note Function results are memoized\n *\n * @param {string} query Query of the form \"32\" or \"64\".\n * @return {boolean}\n */\n isBrowserArchitecture: function isBrowserArchitecture(query) {\n return compare(UserAgentData.browserArchitecture, null, query);\n },\n\n /**\n * Check if the User Agent device matches `query`.\n *\n * `query` should be a string like \"iPhone\" or \"iPad\".\n *\n * Valid device names include:\n *\n * - Kindle\n * - Kindle Fire\n * - Unknown\n * - iPad\n * - iPhone\n * - iPod\n * - etc...\n *\n * An authoritative list can be found in the PHP `DeviceDetector` class and\n * related classes in the same file (see calls to `new UserAgentDevice` here:\n * https://fburl.com/50728332).\n *\n * @note Function results are memoized\n *\n * @param {string} query Query of the form \"Name\"\n * @return {boolean}\n */\n isDevice: function isDevice(query) {\n return compare(UserAgentData.deviceName, null, query);\n },\n\n /**\n * Check if the User Agent rendering engine matches `query`.\n *\n * `query` should be a string like \"WebKit\" or \"WebKit >= 537\".\n *\n * Valid engine names include:\n *\n * - Gecko\n * - Presto\n * - Trident\n * - WebKit\n * - etc...\n *\n * An authoritative list can be found in the PHP `RenderingEngineDetector`\n * class related classes in the same file (see calls to `new\n * UserAgentRenderingEngine` here: https://fburl.com/50728617).\n *\n * @note Function results are memoized\n *\n * @param {string} query Query of the form \"Name [range expression]\"\n * @return {boolean}\n */\n isEngine: function isEngine(query) {\n return compare(UserAgentData.engineName, UserAgentData.engineVersion, query);\n },\n\n /**\n * Check if the User Agent platform matches `query`.\n *\n * `query` should be a string like \"Windows\" or \"iOS 5 - 6\".\n *\n * Valid platform names include:\n *\n * - Android\n * - BlackBerry OS\n * - Java ME\n * - Linux\n * - Mac OS X\n * - Mac OS X Calendar\n * - Mac OS X Internet Account\n * - Symbian\n * - SymbianOS\n * - Windows\n * - Windows Mobile\n * - Windows Phone\n * - iOS\n * - iOS Facebook Integration Account\n * - iOS Facebook Social Sharing UI\n * - webOS\n * - Chrome OS\n * - etc...\n *\n * An authoritative list can be found in the PHP `PlatformDetector` class and\n * related classes in the same file (see calls to `new UserAgentPlatform`\n * here: https://fburl.com/50729226).\n *\n * @note Function results are memoized\n *\n * @param {string} query Query of the form \"Name [range expression]\"\n * @return {boolean}\n */\n isPlatform: function isPlatform(query) {\n return compare(UserAgentData.platformName, UserAgentData.platformFullVersion, query, normalizePlatformVersion);\n },\n\n /**\n * Check if the User Agent platform is a 32 or 64 bit architecture.\n *\n * @note Function results are memoized\n *\n * @param {string} query Query of the form \"32\" or \"64\".\n * @return {boolean}\n */\n isPlatformArchitecture: function isPlatformArchitecture(query) {\n return compare(UserAgentData.platformArchitecture, null, query);\n }\n};\nmodule.exports = mapObject(UserAgent, memoizeStringOnly);","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n/**\n * Usage note:\n * This module makes a best effort to export the same data we would internally.\n * At Facebook we use a server-generated module that does the parsing and\n * exports the data for the client to use. We can't rely on a server-side\n * implementation in open source so instead we make use of an open source\n * library to do the heavy lifting and then make some adjustments as necessary.\n * It's likely there will be some differences. Some we can smooth over.\n * Others are going to be harder.\n */\n'use strict';\n\nvar UAParser = require(\"ua-parser-js\");\n\nvar UNKNOWN = 'Unknown';\nvar PLATFORM_MAP = {\n 'Mac OS': 'Mac OS X'\n};\n/**\n * Convert from UAParser platform name to what we expect.\n */\n\nfunction convertPlatformName(name) {\n return PLATFORM_MAP[name] || name;\n}\n/**\n * Get the version number in parts. This is very naive. We actually get major\n * version as a part of UAParser already, which is generally good enough, but\n * let's get the minor just in case.\n */\n\n\nfunction getBrowserVersion(version) {\n if (!version) {\n return {\n major: '',\n minor: ''\n };\n }\n\n var parts = version.split('.');\n return {\n major: parts[0],\n minor: parts[1]\n };\n}\n/**\n * Get the UA data fom UAParser and then convert it to the format we're\n * expecting for our APIS.\n */\n\n\nvar parser = new UAParser();\nvar results = parser.getResult(); // Do some conversion first.\n\nvar browserVersionData = getBrowserVersion(results.browser.version);\nvar uaData = {\n browserArchitecture: results.cpu.architecture || UNKNOWN,\n browserFullVersion: results.browser.version || UNKNOWN,\n browserMinorVersion: browserVersionData.minor || UNKNOWN,\n browserName: results.browser.name || UNKNOWN,\n browserVersion: results.browser.major || UNKNOWN,\n deviceName: results.device.model || UNKNOWN,\n engineName: results.engine.name || UNKNOWN,\n engineVersion: results.engine.version || UNKNOWN,\n platformArchitecture: results.cpu.architecture || UNKNOWN,\n platformName: convertPlatformName(results.os.name) || UNKNOWN,\n platformVersion: results.os.version || UNKNOWN,\n platformFullVersion: results.os.version || UNKNOWN\n};\nmodule.exports = uaData;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nvar invariant = require(\"./invariant\");\n\nvar componentRegex = /\\./;\nvar orRegex = /\\|\\|/;\nvar rangeRegex = /\\s+\\-\\s+/;\nvar modifierRegex = /^(<=|<|=|>=|~>|~|>|)?\\s*(.+)/;\nvar numericRegex = /^(\\d*)(.*)/;\n/**\n * Splits input `range` on \"||\" and returns true if any subrange matches\n * `version`.\n *\n * @param {string} range\n * @param {string} version\n * @returns {boolean}\n */\n\nfunction checkOrExpression(range, version) {\n var expressions = range.split(orRegex);\n\n if (expressions.length > 1) {\n return expressions.some(function (range) {\n return VersionRange.contains(range, version);\n });\n } else {\n range = expressions[0].trim();\n return checkRangeExpression(range, version);\n }\n}\n/**\n * Splits input `range` on \" - \" (the surrounding whitespace is required) and\n * returns true if version falls between the two operands.\n *\n * @param {string} range\n * @param {string} version\n * @returns {boolean}\n */\n\n\nfunction checkRangeExpression(range, version) {\n var expressions = range.split(rangeRegex);\n !(expressions.length > 0 && expressions.length <= 2) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'the \"-\" operator expects exactly 2 operands') : invariant(false) : void 0;\n\n if (expressions.length === 1) {\n return checkSimpleExpression(expressions[0], version);\n } else {\n var startVersion = expressions[0],\n endVersion = expressions[1];\n !(isSimpleVersion(startVersion) && isSimpleVersion(endVersion)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'operands to the \"-\" operator must be simple (no modifiers)') : invariant(false) : void 0;\n return checkSimpleExpression('>=' + startVersion, version) && checkSimpleExpression('<=' + endVersion, version);\n }\n}\n/**\n * Checks if `range` matches `version`. `range` should be a \"simple\" range (ie.\n * not a compound range using the \" - \" or \"||\" operators).\n *\n * @param {string} range\n * @param {string} version\n * @returns {boolean}\n */\n\n\nfunction checkSimpleExpression(range, version) {\n range = range.trim();\n\n if (range === '') {\n return true;\n }\n\n var versionComponents = version.split(componentRegex);\n\n var _getModifierAndCompon = getModifierAndComponents(range),\n modifier = _getModifierAndCompon.modifier,\n rangeComponents = _getModifierAndCompon.rangeComponents;\n\n switch (modifier) {\n case '<':\n return checkLessThan(versionComponents, rangeComponents);\n\n case '<=':\n return checkLessThanOrEqual(versionComponents, rangeComponents);\n\n case '>=':\n return checkGreaterThanOrEqual(versionComponents, rangeComponents);\n\n case '>':\n return checkGreaterThan(versionComponents, rangeComponents);\n\n case '~':\n case '~>':\n return checkApproximateVersion(versionComponents, rangeComponents);\n\n default:\n return checkEqual(versionComponents, rangeComponents);\n }\n}\n/**\n * Checks whether `a` is less than `b`.\n *\n * @param {array} a\n * @param {array} b\n * @returns {boolean}\n */\n\n\nfunction checkLessThan(a, b) {\n return compareComponents(a, b) === -1;\n}\n/**\n * Checks whether `a` is less than or equal to `b`.\n *\n * @param {array} a\n * @param {array} b\n * @returns {boolean}\n */\n\n\nfunction checkLessThanOrEqual(a, b) {\n var result = compareComponents(a, b);\n return result === -1 || result === 0;\n}\n/**\n * Checks whether `a` is equal to `b`.\n *\n * @param {array} a\n * @param {array} b\n * @returns {boolean}\n */\n\n\nfunction checkEqual(a, b) {\n return compareComponents(a, b) === 0;\n}\n/**\n * Checks whether `a` is greater than or equal to `b`.\n *\n * @param {array} a\n * @param {array} b\n * @returns {boolean}\n */\n\n\nfunction checkGreaterThanOrEqual(a, b) {\n var result = compareComponents(a, b);\n return result === 1 || result === 0;\n}\n/**\n * Checks whether `a` is greater than `b`.\n *\n * @param {array} a\n * @param {array} b\n * @returns {boolean}\n */\n\n\nfunction checkGreaterThan(a, b) {\n return compareComponents(a, b) === 1;\n}\n/**\n * Checks whether `a` is \"reasonably close\" to `b` (as described in\n * https://www.npmjs.org/doc/misc/semver.html). For example, if `b` is \"1.3.1\"\n * then \"reasonably close\" is defined as \">= 1.3.1 and < 1.4\".\n *\n * @param {array} a\n * @param {array} b\n * @returns {boolean}\n */\n\n\nfunction checkApproximateVersion(a, b) {\n var lowerBound = b.slice();\n var upperBound = b.slice();\n\n if (upperBound.length > 1) {\n upperBound.pop();\n }\n\n var lastIndex = upperBound.length - 1;\n var numeric = parseInt(upperBound[lastIndex], 10);\n\n if (isNumber(numeric)) {\n upperBound[lastIndex] = numeric + 1 + '';\n }\n\n return checkGreaterThanOrEqual(a, lowerBound) && checkLessThan(a, upperBound);\n}\n/**\n * Extracts the optional modifier (<, <=, =, >=, >, ~, ~>) and version\n * components from `range`.\n *\n * For example, given `range` \">= 1.2.3\" returns an object with a `modifier` of\n * `\">=\"` and `components` of `[1, 2, 3]`.\n *\n * @param {string} range\n * @returns {object}\n */\n\n\nfunction getModifierAndComponents(range) {\n var rangeComponents = range.split(componentRegex);\n var matches = rangeComponents[0].match(modifierRegex);\n !matches ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'expected regex to match but it did not') : invariant(false) : void 0;\n return {\n modifier: matches[1],\n rangeComponents: [matches[2]].concat(rangeComponents.slice(1))\n };\n}\n/**\n * Determines if `number` is a number.\n *\n * @param {mixed} number\n * @returns {boolean}\n */\n\n\nfunction isNumber(number) {\n return !isNaN(number) && isFinite(number);\n}\n/**\n * Tests whether `range` is a \"simple\" version number without any modifiers\n * (\">\", \"~\" etc).\n *\n * @param {string} range\n * @returns {boolean}\n */\n\n\nfunction isSimpleVersion(range) {\n return !getModifierAndComponents(range).modifier;\n}\n/**\n * Zero-pads array `array` until it is at least `length` long.\n *\n * @param {array} array\n * @param {number} length\n */\n\n\nfunction zeroPad(array, length) {\n for (var i = array.length; i < length; i++) {\n array[i] = '0';\n }\n}\n/**\n * Normalizes `a` and `b` in preparation for comparison by doing the following:\n *\n * - zero-pads `a` and `b`\n * - marks any \"x\", \"X\" or \"*\" component in `b` as equivalent by zero-ing it out\n * in both `a` and `b`\n * - marks any final \"*\" component in `b` as a greedy wildcard by zero-ing it\n * and all of its successors in `a`\n *\n * @param {array} a\n * @param {array} b\n * @returns {array>}\n */\n\n\nfunction normalizeVersions(a, b) {\n a = a.slice();\n b = b.slice();\n zeroPad(a, b.length); // mark \"x\" and \"*\" components as equal\n\n for (var i = 0; i < b.length; i++) {\n var matches = b[i].match(/^[x*]$/i);\n\n if (matches) {\n b[i] = a[i] = '0'; // final \"*\" greedily zeros all remaining components\n\n if (matches[0] === '*' && i === b.length - 1) {\n for (var j = i; j < a.length; j++) {\n a[j] = '0';\n }\n }\n }\n }\n\n zeroPad(b, a.length);\n return [a, b];\n}\n/**\n * Returns the numerical -- not the lexicographical -- ordering of `a` and `b`.\n *\n * For example, `10-alpha` is greater than `2-beta`.\n *\n * @param {string} a\n * @param {string} b\n * @returns {number} -1, 0 or 1 to indicate whether `a` is less than, equal to,\n * or greater than `b`, respectively\n */\n\n\nfunction compareNumeric(a, b) {\n var aPrefix = a.match(numericRegex)[1];\n var bPrefix = b.match(numericRegex)[1];\n var aNumeric = parseInt(aPrefix, 10);\n var bNumeric = parseInt(bPrefix, 10);\n\n if (isNumber(aNumeric) && isNumber(bNumeric) && aNumeric !== bNumeric) {\n return compare(aNumeric, bNumeric);\n } else {\n return compare(a, b);\n }\n}\n/**\n * Returns the ordering of `a` and `b`.\n *\n * @param {string|number} a\n * @param {string|number} b\n * @returns {number} -1, 0 or 1 to indicate whether `a` is less than, equal to,\n * or greater than `b`, respectively\n */\n\n\nfunction compare(a, b) {\n !(typeof a === typeof b) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '\"a\" and \"b\" must be of the same type') : invariant(false) : void 0;\n\n if (a > b) {\n return 1;\n } else if (a < b) {\n return -1;\n } else {\n return 0;\n }\n}\n/**\n * Compares arrays of version components.\n *\n * @param {array} a\n * @param {array} b\n * @returns {number} -1, 0 or 1 to indicate whether `a` is less than, equal to,\n * or greater than `b`, respectively\n */\n\n\nfunction compareComponents(a, b) {\n var _normalizeVersions = normalizeVersions(a, b),\n aNormalized = _normalizeVersions[0],\n bNormalized = _normalizeVersions[1];\n\n for (var i = 0; i < bNormalized.length; i++) {\n var result = compareNumeric(aNormalized[i], bNormalized[i]);\n\n if (result) {\n return result;\n }\n }\n\n return 0;\n}\n\nvar VersionRange = {\n /**\n * Checks whether `version` satisfies the `range` specification.\n *\n * We support a subset of the expressions defined in\n * https://www.npmjs.org/doc/misc/semver.html:\n *\n * version Must match version exactly\n * =version Same as just version\n * >version Must be greater than version\n * >=version Must be greater than or equal to version\n * = 1.2.3 and < 1.3\"\n * ~>version Equivalent to ~version\n * 1.2.x Must match \"1.2.x\", where \"x\" is a wildcard that matches\n * anything\n * 1.2.* Similar to \"1.2.x\", but \"*\" in the trailing position is a\n * \"greedy\" wildcard, so will match any number of additional\n * components:\n * \"1.2.*\" will match \"1.2.1\", \"1.2.1.1\", \"1.2.1.1.1\" etc\n * * Any version\n * \"\" (Empty string) Same as *\n * v1 - v2 Equivalent to \">= v1 and <= v2\"\n * r1 || r2 Passes if either r1 or r2 are satisfied\n *\n * @param {string} range\n * @param {string} version\n * @returns {boolean}\n */\n contains: function contains(range, version) {\n return checkOrExpression(range.trim(), version.trim());\n }\n};\nmodule.exports = VersionRange;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks\n */\nvar _hyphenPattern = /-(.)/g;\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\n\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n}\n\nmodule.exports = camelize;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 */\nvar isTextNode = require(\"./isTextNode\");\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\n\n\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks\n */\nvar invariant = require(\"./invariant\");\n/**\n * Convert array-like objects to arrays.\n *\n * This API assumes the caller knows the contents of the data type. For less\n * well defined inputs use createArrayFromMixed.\n *\n * @param {object|function|filelist} obj\n * @return {array}\n */\n\n\nfunction toArray(obj) {\n var length = obj.length; // Some browsers builtin objects can report typeof 'function' (e.g. NodeList\n // in old versions of Safari).\n\n !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : void 0;\n !(typeof length === 'number') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : void 0;\n !(length === 0 || length - 1 in obj) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : void 0;\n !(typeof obj.callee !== 'function') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'toArray: Object can\\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : invariant(false) : void 0; // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n // without method will throw during the slice call and skip straight to the\n // fallback.\n\n if (obj.hasOwnProperty) {\n try {\n return Array.prototype.slice.call(obj);\n } catch (e) {// IE < 9 does not support Array#slice on collections objects\n }\n } // Fall back to copying key by key. This assumes all keys have a value,\n // so will not preserve sparsely populated inputs.\n\n\n var ret = Array(length);\n\n for (var ii = 0; ii < length; ii++) {\n ret[ii] = obj[ii];\n }\n\n return ret;\n}\n/**\n * Perform a heuristic test to determine if an object is \"array-like\".\n *\n * A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n * Joshu replied: \"Mu.\"\n *\n * This function determines if its argument has \"array nature\": it returns\n * true if the argument is an actual array, an `arguments' object, or an\n * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n *\n * It will return false for other array-like objects like Filelist.\n *\n * @param {*} obj\n * @return {boolean}\n */\n\n\nfunction hasArrayNature(obj) {\n return (// not null/false\n !!obj && ( // arrays are objects, NodeLists are functions in Safari\n typeof obj == 'object' || typeof obj == 'function') && // quacks like an array\n 'length' in obj && // not window\n !('setInterval' in obj) && // no DOM node should be considered an array-like\n // a 'select' element has 'length' and 'item' properties on IE8\n typeof obj.nodeType != 'number' && ( // a real array\n Array.isArray(obj) || // arguments\n 'callee' in obj || // HTMLCollection/NodeList\n 'item' in obj)\n );\n}\n/**\n * Ensure that the argument is an array by wrapping it in an array if it is not.\n * Creates a copy of the argument if it is already an array.\n *\n * This is mostly useful idiomatically:\n *\n * var createArrayFromMixed = require('createArrayFromMixed');\n *\n * function takesOneOrMoreThings(things) {\n * things = createArrayFromMixed(things);\n * ...\n * }\n *\n * This allows you to treat `things' as an array, but accept scalars in the API.\n *\n * If you need to convert an array-like object, like `arguments`, into an array\n * use toArray instead.\n *\n * @param {*} obj\n * @return {array}\n */\n\n\nfunction createArrayFromMixed(obj) {\n if (!hasArrayNature(obj)) {\n return [obj];\n } else if (Array.isArray(obj)) {\n return obj.slice();\n } else {\n return toArray(obj);\n }\n}\n\nmodule.exports = createArrayFromMixed;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n/**\n * This function is used to mark string literals representing CSS class names\n * so that they can be transformed statically. This allows for modularization\n * and minification of CSS class names.\n *\n * In static_upstream, this function is actually implemented, but it should\n * eventually be replaced with something more descriptive, and the transform\n * that is used in the main stack should be ported for use elsewhere.\n *\n * @param string|object className to modularize, or an object of key/values.\n * In the object case, the values are conditions that\n * determine if the className keys should be included.\n * @param [string ...] Variable list of classNames in the string case.\n * @return string Renderable space-separated CSS className.\n */\nfunction cx(classNames) {\n if (typeof classNames == 'object') {\n return Object.keys(classNames).filter(function (className) {\n return classNames[className];\n }).map(replace).join(' ');\n }\n\n return Array.prototype.map.call(arguments, replace).join(' ');\n}\n\nfunction replace(str) {\n return str.replace(/\\//g, '-');\n}\n\nmodule.exports = cx;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 */\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\n\n\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\n\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks\n */\n\n/* eslint-disable fb-www/typeof-undefined */\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n *\n * @param {?DOMDocument} doc Defaults to current document.\n * @return {?DOMElement}\n */\nfunction getActiveElement(doc)\n/*?DOMElement*/\n{\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n\n if (typeof doc === 'undefined') {\n return null;\n }\n\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n\nmodule.exports = getActiveElement;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks\n */\n'use strict';\n\nvar isWebkit = typeof navigator !== 'undefined' && navigator.userAgent.indexOf('AppleWebKit') > -1;\n/**\n * Gets the element with the document scroll properties such as `scrollLeft` and\n * `scrollHeight`. This may differ across different browsers.\n *\n * NOTE: The return value can be null if the DOM is not yet ready.\n *\n * @param {?DOMDocument} doc Defaults to current document.\n * @return {?DOMElement}\n */\n\nfunction getDocumentScrollElement(doc) {\n doc = doc || document;\n\n if (doc.scrollingElement) {\n return doc.scrollingElement;\n }\n\n return !isWebkit && doc.compatMode === 'CSS1Compat' ? doc.documentElement : doc.body;\n}\n\nmodule.exports = getDocumentScrollElement;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks\n */\nvar getElementRect = require(\"./getElementRect\");\n/**\n * Gets an element's position in pixels relative to the viewport. The returned\n * object represents the position of the element's top left corner.\n *\n * @param {DOMElement} element\n * @return {object}\n */\n\n\nfunction getElementPosition(element) {\n var rect = getElementRect(element);\n return {\n x: rect.left,\n y: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n}\n\nmodule.exports = getElementPosition;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks\n */\nvar containsNode = require(\"./containsNode\");\n/**\n * Gets an element's bounding rect in pixels relative to the viewport.\n *\n * @param {DOMElement} elem\n * @return {object}\n */\n\n\nfunction getElementRect(elem) {\n var docElem = elem.ownerDocument.documentElement; // FF 2, Safari 3 and Opera 9.5- do not support getBoundingClientRect().\n // IE9- will throw if the element is not in the document.\n\n if (!('getBoundingClientRect' in elem) || !containsNode(docElem, elem)) {\n return {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n } // Subtracts clientTop/Left because IE8- added a 2px border to the\n // element (see http://fburl.com/1493213). IE 7 in\n // Quicksmode does not report clientLeft/clientTop so there\n // will be an unaccounted offset of 2px when in quirksmode\n\n\n var rect = elem.getBoundingClientRect();\n return {\n left: Math.round(rect.left) - docElem.clientLeft,\n right: Math.round(rect.right) - docElem.clientLeft,\n top: Math.round(rect.top) - docElem.clientTop,\n bottom: Math.round(rect.bottom) - docElem.clientTop\n };\n}\n\nmodule.exports = getElementRect;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks\n */\n'use strict';\n\nvar getDocumentScrollElement = require(\"./getDocumentScrollElement\");\n\nvar getUnboundedScrollPosition = require(\"./getUnboundedScrollPosition\");\n/**\n * Gets the scroll position of the supplied element or window.\n *\n * The return values are bounded. This means that if the scroll position is\n * negative or exceeds the element boundaries (which is possible using inertial\n * scrolling), you will get zero or the maximum scroll position, respectively.\n *\n * If you need the unbound scroll position, use `getUnboundedScrollPosition`.\n *\n * @param {DOMWindow|DOMElement} scrollable\n * @return {object} Map with `x` and `y` keys.\n */\n\n\nfunction getScrollPosition(scrollable) {\n var documentScrollElement = getDocumentScrollElement(scrollable.ownerDocument || scrollable.document);\n\n if (scrollable.Window && scrollable instanceof scrollable.Window) {\n scrollable = documentScrollElement;\n }\n\n var scrollPosition = getUnboundedScrollPosition(scrollable);\n var viewport = scrollable === documentScrollElement ? scrollable.ownerDocument.documentElement : scrollable;\n var xMax = scrollable.scrollWidth - viewport.clientWidth;\n var yMax = scrollable.scrollHeight - viewport.clientHeight;\n scrollPosition.x = Math.max(0, Math.min(scrollPosition.x, xMax));\n scrollPosition.y = Math.max(0, Math.min(scrollPosition.y, yMax));\n return scrollPosition;\n}\n\nmodule.exports = getScrollPosition;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks\n */\nvar camelize = require(\"./camelize\");\n\nvar hyphenate = require(\"./hyphenate\");\n\nfunction asString(value)\n/*?string*/\n{\n return value == null ? value : String(value);\n}\n\nfunction getStyleProperty(\n/*DOMNode*/\nnode,\n/*string*/\nname)\n/*?string*/\n{\n var computedStyle; // W3C Standard\n\n if (window.getComputedStyle) {\n // In certain cases such as within an iframe in FF3, this returns null.\n computedStyle = window.getComputedStyle(node, null);\n\n if (computedStyle) {\n return asString(computedStyle.getPropertyValue(hyphenate(name)));\n }\n } // Safari\n\n\n if (document.defaultView && document.defaultView.getComputedStyle) {\n computedStyle = document.defaultView.getComputedStyle(node, null); // A Safari bug causes this to return null for `display: none` elements.\n\n if (computedStyle) {\n return asString(computedStyle.getPropertyValue(hyphenate(name)));\n }\n\n if (name === 'display') {\n return 'none';\n }\n } // Internet Explorer\n\n\n if (node.currentStyle) {\n if (name === 'float') {\n return asString(node.currentStyle.cssFloat || node.currentStyle.styleFloat);\n }\n\n return asString(node.currentStyle[camelize(name)]);\n }\n\n return asString(node.style && node.style[camelize(name)]);\n}\n\nmodule.exports = getStyleProperty;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks\n */\n'use strict';\n/**\n * Gets the scroll position of the supplied element or window.\n *\n * The return values are unbounded, unlike `getScrollPosition`. This means they\n * may be negative or exceed the element boundaries (which is possible using\n * inertial scrolling).\n *\n * @param {DOMWindow|DOMElement} scrollable\n * @return {object} Map with `x` and `y` keys.\n */\n\nfunction getUnboundedScrollPosition(scrollable) {\n if (scrollable.Window && scrollable instanceof scrollable.Window) {\n return {\n x: scrollable.pageXOffset || scrollable.document.documentElement.scrollLeft,\n y: scrollable.pageYOffset || scrollable.document.documentElement.scrollTop\n };\n }\n\n return {\n x: scrollable.scrollLeft,\n y: scrollable.scrollTop\n };\n}\n\nmodule.exports = getUnboundedScrollPosition;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks\n */\nfunction getViewportWidth() {\n var width;\n\n if (document.documentElement) {\n width = document.documentElement.clientWidth;\n }\n\n if (!width && document.body) {\n width = document.body.clientWidth;\n }\n\n return width || 0;\n}\n\nfunction getViewportHeight() {\n var height;\n\n if (document.documentElement) {\n height = document.documentElement.clientHeight;\n }\n\n if (!height && document.body) {\n height = document.body.clientHeight;\n }\n\n return height || 0;\n}\n/**\n * Gets the viewport dimensions including any scrollbars.\n */\n\n\nfunction getViewportDimensions() {\n return {\n width: window.innerWidth || getViewportWidth(),\n height: window.innerHeight || getViewportHeight()\n };\n}\n/**\n * Gets the viewport dimensions excluding any scrollbars.\n */\n\n\ngetViewportDimensions.withoutScrollbars = function () {\n return {\n width: getViewportWidth(),\n height: getViewportHeight()\n };\n};\n\nmodule.exports = getViewportDimensions;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks\n */\nvar _uppercasePattern = /([A-Z])/g;\n/**\n * Hyphenates a camelcased string, for example:\n *\n * > hyphenate('backgroundColor')\n * < \"background-color\"\n *\n * For CSS style names, use `hyphenateStyleName` instead which works properly\n * with all vendor prefixes, including `ms`.\n *\n * @param {string} string\n * @return {string}\n */\n\nfunction hyphenate(string) {\n return string.replace(_uppercasePattern, '-$1').toLowerCase();\n}\n\nmodule.exports = hyphenate;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 */\n'use strict';\n\nvar validateFormat = process.env.NODE_ENV !== \"production\" ? function (format) {\n if (format === undefined) {\n throw new Error('invariant(...): Second argument must be a string.');\n }\n} : function (format) {};\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments to provide\n * information about what broke and what you were expecting.\n *\n * The invariant message will be stripped in production, but the invariant will\n * remain to ensure logic does not differ in production.\n */\n\nfunction invariant(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n validateFormat(format);\n\n if (!condition) {\n var error;\n\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return String(args[argIndex++]);\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // Skip invariant's own stack frame.\n\n throw error;\n }\n}\n\nmodule.exports = invariant;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks\n */\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM node.\n */\nfunction isNode(object) {\n var doc = object ? object.ownerDocument || object : document;\n var defaultView = doc.defaultView || window;\n return !!(object && (typeof defaultView.Node === 'function' ? object instanceof defaultView.Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nmodule.exports = isNode;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks\n */\nvar isNode = require(\"./isNode\");\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM text node.\n */\n\n\nfunction isTextNode(object) {\n return isNode(object) && object.nodeType == 3;\n}\n\nmodule.exports = isTextNode;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks static-only\n */\n'use strict';\n/**\n * Combines multiple className strings into one.\n */\n\nfunction joinClasses(className) {\n var newClassName = className || '';\n var argLength = arguments.length;\n\n if (argLength > 1) {\n for (var index = 1; index < argLength; index++) {\n var nextClass = arguments[index];\n\n if (nextClass) {\n newClassName = (newClassName ? newClassName + ' ' : '') + nextClass;\n }\n }\n }\n\n return newClassName;\n}\n\nmodule.exports = joinClasses;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n/**\n * Executes the provided `callback` once for each enumerable own property in the\n * object and constructs a new object from the results. The `callback` is\n * invoked with three arguments:\n *\n * - the property value\n * - the property name\n * - the object being traversed\n *\n * Properties that are added after the call to `mapObject` will not be visited\n * by `callback`. If the values of existing properties are changed, the value\n * passed to `callback` will be the value at the time `mapObject` visits them.\n * Properties that are deleted before being visited are not visited.\n *\n * @grep function objectMap()\n * @grep function objMap()\n *\n * @param {?object} object\n * @param {function} callback\n * @param {*} context\n * @return {?object}\n */\n\nfunction mapObject(object, callback, context) {\n if (!object) {\n return null;\n }\n\n var result = {};\n\n for (var name in object) {\n if (hasOwnProperty.call(object, name)) {\n result[name] = callback.call(context, object[name], name, object);\n }\n }\n\n return result;\n}\n\nmodule.exports = mapObject;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 * @typechecks static-only\n */\n'use strict';\n/**\n * Memoizes the return value of a function that accepts one string argument.\n */\n\nfunction memoizeStringOnly(callback) {\n var cache = {};\n return function (string) {\n if (!cache.hasOwnProperty(string)) {\n cache[string] = callback.call(this, string);\n }\n\n return cache[string];\n };\n}\n\nmodule.exports = memoizeStringOnly;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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 */\nvar nullthrows = function nullthrows(x) {\n if (x != null) {\n return x;\n }\n\n throw new Error(\"Got unexpected null or undefined\");\n};\n\nmodule.exports = nullthrows;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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'; // setimmediate adds setImmediate to the global. We want to make sure we export\n// the actual function.\n\nrequire(\"setimmediate\");\n\nmodule.exports = global.setImmediate;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\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\nvar emptyFunction = require(\"./emptyFunction\");\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\n\nfunction printWarning(format) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n}\n\nvar warning = process.env.NODE_ENV !== \"production\" ? function (condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(void 0, [format].concat(args));\n }\n} : emptyFunction;\nmodule.exports = warning;","/**\n * Copyright (c) 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\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.Immutable = factory();\n}(this, function () { 'use strict';var SLICE$0 = Array.prototype.slice;\n\n function createClass(ctor, superClass) {\n if (superClass) {\n ctor.prototype = Object.create(superClass.prototype);\n }\n ctor.prototype.constructor = ctor;\n }\n\n function Iterable(value) {\n return isIterable(value) ? value : Seq(value);\n }\n\n\n createClass(KeyedIterable, Iterable);\n function KeyedIterable(value) {\n return isKeyed(value) ? value : KeyedSeq(value);\n }\n\n\n createClass(IndexedIterable, Iterable);\n function IndexedIterable(value) {\n return isIndexed(value) ? value : IndexedSeq(value);\n }\n\n\n createClass(SetIterable, Iterable);\n function SetIterable(value) {\n return isIterable(value) && !isAssociative(value) ? value : SetSeq(value);\n }\n\n\n\n function isIterable(maybeIterable) {\n return !!(maybeIterable && maybeIterable[IS_ITERABLE_SENTINEL]);\n }\n\n function isKeyed(maybeKeyed) {\n return !!(maybeKeyed && maybeKeyed[IS_KEYED_SENTINEL]);\n }\n\n function isIndexed(maybeIndexed) {\n return !!(maybeIndexed && maybeIndexed[IS_INDEXED_SENTINEL]);\n }\n\n function isAssociative(maybeAssociative) {\n return isKeyed(maybeAssociative) || isIndexed(maybeAssociative);\n }\n\n function isOrdered(maybeOrdered) {\n return !!(maybeOrdered && maybeOrdered[IS_ORDERED_SENTINEL]);\n }\n\n Iterable.isIterable = isIterable;\n Iterable.isKeyed = isKeyed;\n Iterable.isIndexed = isIndexed;\n Iterable.isAssociative = isAssociative;\n Iterable.isOrdered = isOrdered;\n\n Iterable.Keyed = KeyedIterable;\n Iterable.Indexed = IndexedIterable;\n Iterable.Set = SetIterable;\n\n\n var IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@';\n var IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@';\n var IS_INDEXED_SENTINEL = '@@__IMMUTABLE_INDEXED__@@';\n var IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@';\n\n // Used for setting prototype methods that IE8 chokes on.\n var DELETE = 'delete';\n\n // Constants describing the size of trie nodes.\n var SHIFT = 5; // Resulted in best performance after ______?\n var SIZE = 1 << SHIFT;\n var MASK = SIZE - 1;\n\n // A consistent shared value representing \"not set\" which equals nothing other\n // than itself, and nothing that could be provided externally.\n var NOT_SET = {};\n\n // Boolean references, Rough equivalent of `bool &`.\n var CHANGE_LENGTH = { value: false };\n var DID_ALTER = { value: false };\n\n function MakeRef(ref) {\n ref.value = false;\n return ref;\n }\n\n function SetRef(ref) {\n ref && (ref.value = true);\n }\n\n // A function which returns a value representing an \"owner\" for transient writes\n // to tries. The return value will only ever equal itself, and will not equal\n // the return of any subsequent call of this function.\n function OwnerID() {}\n\n // http://jsperf.com/copy-array-inline\n function arrCopy(arr, offset) {\n offset = offset || 0;\n var len = Math.max(0, arr.length - offset);\n var newArr = new Array(len);\n for (var ii = 0; ii < len; ii++) {\n newArr[ii] = arr[ii + offset];\n }\n return newArr;\n }\n\n function ensureSize(iter) {\n if (iter.size === undefined) {\n iter.size = iter.__iterate(returnTrue);\n }\n return iter.size;\n }\n\n function wrapIndex(iter, index) {\n // This implements \"is array index\" which the ECMAString spec defines as:\n //\n // A String property name P is an array index if and only if\n // ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal\n // to 2^32−1.\n //\n // http://www.ecma-international.org/ecma-262/6.0/#sec-array-exotic-objects\n if (typeof index !== 'number') {\n var uint32Index = index >>> 0; // N >>> 0 is shorthand for ToUint32\n if ('' + uint32Index !== index || uint32Index === 4294967295) {\n return NaN;\n }\n index = uint32Index;\n }\n return index < 0 ? ensureSize(iter) + index : index;\n }\n\n function returnTrue() {\n return true;\n }\n\n function wholeSlice(begin, end, size) {\n return (begin === 0 || (size !== undefined && begin <= -size)) &&\n (end === undefined || (size !== undefined && end >= size));\n }\n\n function resolveBegin(begin, size) {\n return resolveIndex(begin, size, 0);\n }\n\n function resolveEnd(end, size) {\n return resolveIndex(end, size, size);\n }\n\n function resolveIndex(index, size, defaultIndex) {\n return index === undefined ?\n defaultIndex :\n index < 0 ?\n Math.max(0, size + index) :\n size === undefined ?\n index :\n Math.min(size, index);\n }\n\n /* global Symbol */\n\n var ITERATE_KEYS = 0;\n var ITERATE_VALUES = 1;\n var ITERATE_ENTRIES = 2;\n\n var REAL_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator';\n\n var ITERATOR_SYMBOL = REAL_ITERATOR_SYMBOL || FAUX_ITERATOR_SYMBOL;\n\n\n function Iterator(next) {\n this.next = next;\n }\n\n Iterator.prototype.toString = function() {\n return '[Iterator]';\n };\n\n\n Iterator.KEYS = ITERATE_KEYS;\n Iterator.VALUES = ITERATE_VALUES;\n Iterator.ENTRIES = ITERATE_ENTRIES;\n\n Iterator.prototype.inspect =\n Iterator.prototype.toSource = function () { return this.toString(); }\n Iterator.prototype[ITERATOR_SYMBOL] = function () {\n return this;\n };\n\n\n function iteratorValue(type, k, v, iteratorResult) {\n var value = type === 0 ? k : type === 1 ? v : [k, v];\n iteratorResult ? (iteratorResult.value = value) : (iteratorResult = {\n value: value, done: false\n });\n return iteratorResult;\n }\n\n function iteratorDone() {\n return { value: undefined, done: true };\n }\n\n function hasIterator(maybeIterable) {\n return !!getIteratorFn(maybeIterable);\n }\n\n function isIterator(maybeIterator) {\n return maybeIterator && typeof maybeIterator.next === 'function';\n }\n\n function getIterator(iterable) {\n var iteratorFn = getIteratorFn(iterable);\n return iteratorFn && iteratorFn.call(iterable);\n }\n\n function getIteratorFn(iterable) {\n var iteratorFn = iterable && (\n (REAL_ITERATOR_SYMBOL && iterable[REAL_ITERATOR_SYMBOL]) ||\n iterable[FAUX_ITERATOR_SYMBOL]\n );\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n function isArrayLike(value) {\n return value && typeof value.length === 'number';\n }\n\n createClass(Seq, Iterable);\n function Seq(value) {\n return value === null || value === undefined ? emptySequence() :\n isIterable(value) ? value.toSeq() : seqFromValue(value);\n }\n\n Seq.of = function(/*...values*/) {\n return Seq(arguments);\n };\n\n Seq.prototype.toSeq = function() {\n return this;\n };\n\n Seq.prototype.toString = function() {\n return this.__toString('Seq {', '}');\n };\n\n Seq.prototype.cacheResult = function() {\n if (!this._cache && this.__iterateUncached) {\n this._cache = this.entrySeq().toArray();\n this.size = this._cache.length;\n }\n return this;\n };\n\n // abstract __iterateUncached(fn, reverse)\n\n Seq.prototype.__iterate = function(fn, reverse) {\n return seqIterate(this, fn, reverse, true);\n };\n\n // abstract __iteratorUncached(type, reverse)\n\n Seq.prototype.__iterator = function(type, reverse) {\n return seqIterator(this, type, reverse, true);\n };\n\n\n\n createClass(KeyedSeq, Seq);\n function KeyedSeq(value) {\n return value === null || value === undefined ?\n emptySequence().toKeyedSeq() :\n isIterable(value) ?\n (isKeyed(value) ? value.toSeq() : value.fromEntrySeq()) :\n keyedSeqFromValue(value);\n }\n\n KeyedSeq.prototype.toKeyedSeq = function() {\n return this;\n };\n\n\n\n createClass(IndexedSeq, Seq);\n function IndexedSeq(value) {\n return value === null || value === undefined ? emptySequence() :\n !isIterable(value) ? indexedSeqFromValue(value) :\n isKeyed(value) ? value.entrySeq() : value.toIndexedSeq();\n }\n\n IndexedSeq.of = function(/*...values*/) {\n return IndexedSeq(arguments);\n };\n\n IndexedSeq.prototype.toIndexedSeq = function() {\n return this;\n };\n\n IndexedSeq.prototype.toString = function() {\n return this.__toString('Seq [', ']');\n };\n\n IndexedSeq.prototype.__iterate = function(fn, reverse) {\n return seqIterate(this, fn, reverse, false);\n };\n\n IndexedSeq.prototype.__iterator = function(type, reverse) {\n return seqIterator(this, type, reverse, false);\n };\n\n\n\n createClass(SetSeq, Seq);\n function SetSeq(value) {\n return (\n value === null || value === undefined ? emptySequence() :\n !isIterable(value) ? indexedSeqFromValue(value) :\n isKeyed(value) ? value.entrySeq() : value\n ).toSetSeq();\n }\n\n SetSeq.of = function(/*...values*/) {\n return SetSeq(arguments);\n };\n\n SetSeq.prototype.toSetSeq = function() {\n return this;\n };\n\n\n\n Seq.isSeq = isSeq;\n Seq.Keyed = KeyedSeq;\n Seq.Set = SetSeq;\n Seq.Indexed = IndexedSeq;\n\n var IS_SEQ_SENTINEL = '@@__IMMUTABLE_SEQ__@@';\n\n Seq.prototype[IS_SEQ_SENTINEL] = true;\n\n\n\n createClass(ArraySeq, IndexedSeq);\n function ArraySeq(array) {\n this._array = array;\n this.size = array.length;\n }\n\n ArraySeq.prototype.get = function(index, notSetValue) {\n return this.has(index) ? this._array[wrapIndex(this, index)] : notSetValue;\n };\n\n ArraySeq.prototype.__iterate = function(fn, reverse) {\n var array = this._array;\n var maxIndex = array.length - 1;\n for (var ii = 0; ii <= maxIndex; ii++) {\n if (fn(array[reverse ? maxIndex - ii : ii], ii, this) === false) {\n return ii + 1;\n }\n }\n return ii;\n };\n\n ArraySeq.prototype.__iterator = function(type, reverse) {\n var array = this._array;\n var maxIndex = array.length - 1;\n var ii = 0;\n return new Iterator(function() \n {return ii > maxIndex ?\n iteratorDone() :\n iteratorValue(type, ii, array[reverse ? maxIndex - ii++ : ii++])}\n );\n };\n\n\n\n createClass(ObjectSeq, KeyedSeq);\n function ObjectSeq(object) {\n var keys = Object.keys(object);\n this._object = object;\n this._keys = keys;\n this.size = keys.length;\n }\n\n ObjectSeq.prototype.get = function(key, notSetValue) {\n if (notSetValue !== undefined && !this.has(key)) {\n return notSetValue;\n }\n return this._object[key];\n };\n\n ObjectSeq.prototype.has = function(key) {\n return this._object.hasOwnProperty(key);\n };\n\n ObjectSeq.prototype.__iterate = function(fn, reverse) {\n var object = this._object;\n var keys = this._keys;\n var maxIndex = keys.length - 1;\n for (var ii = 0; ii <= maxIndex; ii++) {\n var key = keys[reverse ? maxIndex - ii : ii];\n if (fn(object[key], key, this) === false) {\n return ii + 1;\n }\n }\n return ii;\n };\n\n ObjectSeq.prototype.__iterator = function(type, reverse) {\n var object = this._object;\n var keys = this._keys;\n var maxIndex = keys.length - 1;\n var ii = 0;\n return new Iterator(function() {\n var key = keys[reverse ? maxIndex - ii : ii];\n return ii++ > maxIndex ?\n iteratorDone() :\n iteratorValue(type, key, object[key]);\n });\n };\n\n ObjectSeq.prototype[IS_ORDERED_SENTINEL] = true;\n\n\n createClass(IterableSeq, IndexedSeq);\n function IterableSeq(iterable) {\n this._iterable = iterable;\n this.size = iterable.length || iterable.size;\n }\n\n IterableSeq.prototype.__iterateUncached = function(fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterable = this._iterable;\n var iterator = getIterator(iterable);\n var iterations = 0;\n if (isIterator(iterator)) {\n var step;\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\n }\n }\n return iterations;\n };\n\n IterableSeq.prototype.__iteratorUncached = function(type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterable = this._iterable;\n var iterator = getIterator(iterable);\n if (!isIterator(iterator)) {\n return new Iterator(iteratorDone);\n }\n var iterations = 0;\n return new Iterator(function() {\n var step = iterator.next();\n return step.done ? step : iteratorValue(type, iterations++, step.value);\n });\n };\n\n\n\n createClass(IteratorSeq, IndexedSeq);\n function IteratorSeq(iterator) {\n this._iterator = iterator;\n this._iteratorCache = [];\n }\n\n IteratorSeq.prototype.__iterateUncached = function(fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterator = this._iterator;\n var cache = this._iteratorCache;\n var iterations = 0;\n while (iterations < cache.length) {\n if (fn(cache[iterations], iterations++, this) === false) {\n return iterations;\n }\n }\n var step;\n while (!(step = iterator.next()).done) {\n var val = step.value;\n cache[iterations] = val;\n if (fn(val, iterations++, this) === false) {\n break;\n }\n }\n return iterations;\n };\n\n IteratorSeq.prototype.__iteratorUncached = function(type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = this._iterator;\n var cache = this._iteratorCache;\n var iterations = 0;\n return new Iterator(function() {\n if (iterations >= cache.length) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n cache[iterations] = step.value;\n }\n return iteratorValue(type, iterations, cache[iterations++]);\n });\n };\n\n\n\n\n // # pragma Helper functions\n\n function isSeq(maybeSeq) {\n return !!(maybeSeq && maybeSeq[IS_SEQ_SENTINEL]);\n }\n\n var EMPTY_SEQ;\n\n function emptySequence() {\n return EMPTY_SEQ || (EMPTY_SEQ = new ArraySeq([]));\n }\n\n function keyedSeqFromValue(value) {\n var seq =\n Array.isArray(value) ? new ArraySeq(value).fromEntrySeq() :\n isIterator(value) ? new IteratorSeq(value).fromEntrySeq() :\n hasIterator(value) ? new IterableSeq(value).fromEntrySeq() :\n typeof value === 'object' ? new ObjectSeq(value) :\n undefined;\n if (!seq) {\n throw new TypeError(\n 'Expected Array or iterable object of [k, v] entries, '+\n 'or keyed object: ' + value\n );\n }\n return seq;\n }\n\n function indexedSeqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (!seq) {\n throw new TypeError(\n 'Expected Array or iterable object of values: ' + value\n );\n }\n return seq;\n }\n\n function seqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value) ||\n (typeof value === 'object' && new ObjectSeq(value));\n if (!seq) {\n throw new TypeError(\n 'Expected Array or iterable object of values, or keyed object: ' + value\n );\n }\n return seq;\n }\n\n function maybeIndexedSeqFromValue(value) {\n return (\n isArrayLike(value) ? new ArraySeq(value) :\n isIterator(value) ? new IteratorSeq(value) :\n hasIterator(value) ? new IterableSeq(value) :\n undefined\n );\n }\n\n function seqIterate(seq, fn, reverse, useKeys) {\n var cache = seq._cache;\n if (cache) {\n var maxIndex = cache.length - 1;\n for (var ii = 0; ii <= maxIndex; ii++) {\n var entry = cache[reverse ? maxIndex - ii : ii];\n if (fn(entry[1], useKeys ? entry[0] : ii, seq) === false) {\n return ii + 1;\n }\n }\n return ii;\n }\n return seq.__iterateUncached(fn, reverse);\n }\n\n function seqIterator(seq, type, reverse, useKeys) {\n var cache = seq._cache;\n if (cache) {\n var maxIndex = cache.length - 1;\n var ii = 0;\n return new Iterator(function() {\n var entry = cache[reverse ? maxIndex - ii : ii];\n return ii++ > maxIndex ?\n iteratorDone() :\n iteratorValue(type, useKeys ? entry[0] : ii - 1, entry[1]);\n });\n }\n return seq.__iteratorUncached(type, reverse);\n }\n\n function fromJS(json, converter) {\n return converter ?\n fromJSWith(converter, json, '', {'': json}) :\n fromJSDefault(json);\n }\n\n function fromJSWith(converter, json, key, parentJSON) {\n if (Array.isArray(json)) {\n return converter.call(parentJSON, key, IndexedSeq(json).map(function(v, k) {return fromJSWith(converter, v, k, json)}));\n }\n if (isPlainObj(json)) {\n return converter.call(parentJSON, key, KeyedSeq(json).map(function(v, k) {return fromJSWith(converter, v, k, json)}));\n }\n return json;\n }\n\n function fromJSDefault(json) {\n if (Array.isArray(json)) {\n return IndexedSeq(json).map(fromJSDefault).toList();\n }\n if (isPlainObj(json)) {\n return KeyedSeq(json).map(fromJSDefault).toMap();\n }\n return json;\n }\n\n function isPlainObj(value) {\n return value && (value.constructor === Object || value.constructor === undefined);\n }\n\n /**\n * An extension of the \"same-value\" algorithm as [described for use by ES6 Map\n * and Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Key_equality)\n *\n * NaN is considered the same as NaN, however -0 and 0 are considered the same\n * value, which is different from the algorithm described by\n * [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is).\n *\n * This is extended further to allow Objects to describe the values they\n * represent, by way of `valueOf` or `equals` (and `hashCode`).\n *\n * Note: because of this extension, the key equality of Immutable.Map and the\n * value equality of Immutable.Set will differ from ES6 Map and Set.\n *\n * ### Defining custom values\n *\n * The easiest way to describe the value an object represents is by implementing\n * `valueOf`. For example, `Date` represents a value by returning a unix\n * timestamp for `valueOf`:\n *\n * var date1 = new Date(1234567890000); // Fri Feb 13 2009 ...\n * var date2 = new Date(1234567890000);\n * date1.valueOf(); // 1234567890000\n * assert( date1 !== date2 );\n * assert( Immutable.is( date1, date2 ) );\n *\n * Note: overriding `valueOf` may have other implications if you use this object\n * where JavaScript expects a primitive, such as implicit string coercion.\n *\n * For more complex types, especially collections, implementing `valueOf` may\n * not be performant. An alternative is to implement `equals` and `hashCode`.\n *\n * `equals` takes another object, presumably of similar type, and returns true\n * if the it is equal. Equality is symmetrical, so the same result should be\n * returned if this and the argument are flipped.\n *\n * assert( a.equals(b) === b.equals(a) );\n *\n * `hashCode` returns a 32bit integer number representing the object which will\n * be used to determine how to store the value object in a Map or Set. You must\n * provide both or neither methods, one must not exist without the other.\n *\n * Also, an important relationship between these methods must be upheld: if two\n * values are equal, they *must* return the same hashCode. If the values are not\n * equal, they might have the same hashCode; this is called a hash collision,\n * and while undesirable for performance reasons, it is acceptable.\n *\n * if (a.equals(b)) {\n * assert( a.hashCode() === b.hashCode() );\n * }\n *\n * All Immutable collections implement `equals` and `hashCode`.\n *\n */\n function is(valueA, valueB) {\n if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n return true;\n }\n if (!valueA || !valueB) {\n return false;\n }\n if (typeof valueA.valueOf === 'function' &&\n typeof valueB.valueOf === 'function') {\n valueA = valueA.valueOf();\n valueB = valueB.valueOf();\n if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n return true;\n }\n if (!valueA || !valueB) {\n return false;\n }\n }\n if (typeof valueA.equals === 'function' &&\n typeof valueB.equals === 'function' &&\n valueA.equals(valueB)) {\n return true;\n }\n return false;\n }\n\n function deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (\n !isIterable(b) ||\n a.size !== undefined && b.size !== undefined && a.size !== b.size ||\n a.__hash !== undefined && b.__hash !== undefined && a.__hash !== b.__hash ||\n isKeyed(a) !== isKeyed(b) ||\n isIndexed(a) !== isIndexed(b) ||\n isOrdered(a) !== isOrdered(b)\n ) {\n return false;\n }\n\n if (a.size === 0 && b.size === 0) {\n return true;\n }\n\n var notAssociative = !isAssociative(a);\n\n if (isOrdered(a)) {\n var entries = a.entries();\n return b.every(function(v, k) {\n var entry = entries.next().value;\n return entry && is(entry[1], v) && (notAssociative || is(entry[0], k));\n }) && entries.next().done;\n }\n\n var flipped = false;\n\n if (a.size === undefined) {\n if (b.size === undefined) {\n if (typeof a.cacheResult === 'function') {\n a.cacheResult();\n }\n } else {\n flipped = true;\n var _ = a;\n a = b;\n b = _;\n }\n }\n\n var allEqual = true;\n var bSize = b.__iterate(function(v, k) {\n if (notAssociative ? !a.has(v) :\n flipped ? !is(v, a.get(k, NOT_SET)) : !is(a.get(k, NOT_SET), v)) {\n allEqual = false;\n return false;\n }\n });\n\n return allEqual && a.size === bSize;\n }\n\n createClass(Repeat, IndexedSeq);\n\n function Repeat(value, times) {\n if (!(this instanceof Repeat)) {\n return new Repeat(value, times);\n }\n this._value = value;\n this.size = times === undefined ? Infinity : Math.max(0, times);\n if (this.size === 0) {\n if (EMPTY_REPEAT) {\n return EMPTY_REPEAT;\n }\n EMPTY_REPEAT = this;\n }\n }\n\n Repeat.prototype.toString = function() {\n if (this.size === 0) {\n return 'Repeat []';\n }\n return 'Repeat [ ' + this._value + ' ' + this.size + ' times ]';\n };\n\n Repeat.prototype.get = function(index, notSetValue) {\n return this.has(index) ? this._value : notSetValue;\n };\n\n Repeat.prototype.includes = function(searchValue) {\n return is(this._value, searchValue);\n };\n\n Repeat.prototype.slice = function(begin, end) {\n var size = this.size;\n return wholeSlice(begin, end, size) ? this :\n new Repeat(this._value, resolveEnd(end, size) - resolveBegin(begin, size));\n };\n\n Repeat.prototype.reverse = function() {\n return this;\n };\n\n Repeat.prototype.indexOf = function(searchValue) {\n if (is(this._value, searchValue)) {\n return 0;\n }\n return -1;\n };\n\n Repeat.prototype.lastIndexOf = function(searchValue) {\n if (is(this._value, searchValue)) {\n return this.size;\n }\n return -1;\n };\n\n Repeat.prototype.__iterate = function(fn, reverse) {\n for (var ii = 0; ii < this.size; ii++) {\n if (fn(this._value, ii, this) === false) {\n return ii + 1;\n }\n }\n return ii;\n };\n\n Repeat.prototype.__iterator = function(type, reverse) {var this$0 = this;\n var ii = 0;\n return new Iterator(function() \n {return ii < this$0.size ? iteratorValue(type, ii++, this$0._value) : iteratorDone()}\n );\n };\n\n Repeat.prototype.equals = function(other) {\n return other instanceof Repeat ?\n is(this._value, other._value) :\n deepEqual(other);\n };\n\n\n var EMPTY_REPEAT;\n\n function invariant(condition, error) {\n if (!condition) throw new Error(error);\n }\n\n createClass(Range, IndexedSeq);\n\n function Range(start, end, step) {\n if (!(this instanceof Range)) {\n return new Range(start, end, step);\n }\n invariant(step !== 0, 'Cannot step a Range by 0');\n start = start || 0;\n if (end === undefined) {\n end = Infinity;\n }\n step = step === undefined ? 1 : Math.abs(step);\n if (end < start) {\n step = -step;\n }\n this._start = start;\n this._end = end;\n this._step = step;\n this.size = Math.max(0, Math.ceil((end - start) / step - 1) + 1);\n if (this.size === 0) {\n if (EMPTY_RANGE) {\n return EMPTY_RANGE;\n }\n EMPTY_RANGE = this;\n }\n }\n\n Range.prototype.toString = function() {\n if (this.size === 0) {\n return 'Range []';\n }\n return 'Range [ ' +\n this._start + '...' + this._end +\n (this._step > 1 ? ' by ' + this._step : '') +\n ' ]';\n };\n\n Range.prototype.get = function(index, notSetValue) {\n return this.has(index) ?\n this._start + wrapIndex(this, index) * this._step :\n notSetValue;\n };\n\n Range.prototype.includes = function(searchValue) {\n var possibleIndex = (searchValue - this._start) / this._step;\n return possibleIndex >= 0 &&\n possibleIndex < this.size &&\n possibleIndex === Math.floor(possibleIndex);\n };\n\n Range.prototype.slice = function(begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n begin = resolveBegin(begin, this.size);\n end = resolveEnd(end, this.size);\n if (end <= begin) {\n return new Range(0, 0);\n }\n return new Range(this.get(begin, this._end), this.get(end, this._end), this._step);\n };\n\n Range.prototype.indexOf = function(searchValue) {\n var offsetValue = searchValue - this._start;\n if (offsetValue % this._step === 0) {\n var index = offsetValue / this._step;\n if (index >= 0 && index < this.size) {\n return index\n }\n }\n return -1;\n };\n\n Range.prototype.lastIndexOf = function(searchValue) {\n return this.indexOf(searchValue);\n };\n\n Range.prototype.__iterate = function(fn, reverse) {\n var maxIndex = this.size - 1;\n var step = this._step;\n var value = reverse ? this._start + maxIndex * step : this._start;\n for (var ii = 0; ii <= maxIndex; ii++) {\n if (fn(value, ii, this) === false) {\n return ii + 1;\n }\n value += reverse ? -step : step;\n }\n return ii;\n };\n\n Range.prototype.__iterator = function(type, reverse) {\n var maxIndex = this.size - 1;\n var step = this._step;\n var value = reverse ? this._start + maxIndex * step : this._start;\n var ii = 0;\n return new Iterator(function() {\n var v = value;\n value += reverse ? -step : step;\n return ii > maxIndex ? iteratorDone() : iteratorValue(type, ii++, v);\n });\n };\n\n Range.prototype.equals = function(other) {\n return other instanceof Range ?\n this._start === other._start &&\n this._end === other._end &&\n this._step === other._step :\n deepEqual(this, other);\n };\n\n\n var EMPTY_RANGE;\n\n createClass(Collection, Iterable);\n function Collection() {\n throw TypeError('Abstract');\n }\n\n\n createClass(KeyedCollection, Collection);function KeyedCollection() {}\n\n createClass(IndexedCollection, Collection);function IndexedCollection() {}\n\n createClass(SetCollection, Collection);function SetCollection() {}\n\n\n Collection.Keyed = KeyedCollection;\n Collection.Indexed = IndexedCollection;\n Collection.Set = SetCollection;\n\n var imul =\n typeof Math.imul === 'function' && Math.imul(0xffffffff, 2) === -2 ?\n Math.imul :\n function imul(a, b) {\n a = a | 0; // int\n b = b | 0; // int\n var c = a & 0xffff;\n var d = b & 0xffff;\n // Shift by 0 fixes the sign on the high part.\n return (c * d) + ((((a >>> 16) * d + c * (b >>> 16)) << 16) >>> 0) | 0; // int\n };\n\n // v8 has an optimization for storing 31-bit signed numbers.\n // Values which have either 00 or 11 as the high order bits qualify.\n // This function drops the highest order bit in a signed number, maintaining\n // the sign bit.\n function smi(i32) {\n return ((i32 >>> 1) & 0x40000000) | (i32 & 0xBFFFFFFF);\n }\n\n function hash(o) {\n if (o === false || o === null || o === undefined) {\n return 0;\n }\n if (typeof o.valueOf === 'function') {\n o = o.valueOf();\n if (o === false || o === null || o === undefined) {\n return 0;\n }\n }\n if (o === true) {\n return 1;\n }\n var type = typeof o;\n if (type === 'number') {\n var h = o | 0;\n if (h !== o) {\n h ^= o * 0xFFFFFFFF;\n }\n while (o > 0xFFFFFFFF) {\n o /= 0xFFFFFFFF;\n h ^= o;\n }\n return smi(h);\n }\n if (type === 'string') {\n return o.length > STRING_HASH_CACHE_MIN_STRLEN ? cachedHashString(o) : hashString(o);\n }\n if (typeof o.hashCode === 'function') {\n return o.hashCode();\n }\n if (type === 'object') {\n return hashJSObj(o);\n }\n if (typeof o.toString === 'function') {\n return hashString(o.toString());\n }\n throw new Error('Value type ' + type + ' cannot be hashed.');\n }\n\n function cachedHashString(string) {\n var hash = stringHashCache[string];\n if (hash === undefined) {\n hash = hashString(string);\n if (STRING_HASH_CACHE_SIZE === STRING_HASH_CACHE_MAX_SIZE) {\n STRING_HASH_CACHE_SIZE = 0;\n stringHashCache = {};\n }\n STRING_HASH_CACHE_SIZE++;\n stringHashCache[string] = hash;\n }\n return hash;\n }\n\n // http://jsperf.com/hashing-strings\n function hashString(string) {\n // This is the hash from JVM\n // The hash code for a string is computed as\n // s[0] * 31 ^ (n - 1) + s[1] * 31 ^ (n - 2) + ... + s[n - 1],\n // where s[i] is the ith character of the string and n is the length of\n // the string. We \"mod\" the result to make it between 0 (inclusive) and 2^31\n // (exclusive) by dropping high bits.\n var hash = 0;\n for (var ii = 0; ii < string.length; ii++) {\n hash = 31 * hash + string.charCodeAt(ii) | 0;\n }\n return smi(hash);\n }\n\n function hashJSObj(obj) {\n var hash;\n if (usingWeakMap) {\n hash = weakMap.get(obj);\n if (hash !== undefined) {\n return hash;\n }\n }\n\n hash = obj[UID_HASH_KEY];\n if (hash !== undefined) {\n return hash;\n }\n\n if (!canDefineProperty) {\n hash = obj.propertyIsEnumerable && obj.propertyIsEnumerable[UID_HASH_KEY];\n if (hash !== undefined) {\n return hash;\n }\n\n hash = getIENodeHash(obj);\n if (hash !== undefined) {\n return hash;\n }\n }\n\n hash = ++objHashUID;\n if (objHashUID & 0x40000000) {\n objHashUID = 0;\n }\n\n if (usingWeakMap) {\n weakMap.set(obj, hash);\n } else if (isExtensible !== undefined && isExtensible(obj) === false) {\n throw new Error('Non-extensible objects are not allowed as keys.');\n } else if (canDefineProperty) {\n Object.defineProperty(obj, UID_HASH_KEY, {\n 'enumerable': false,\n 'configurable': false,\n 'writable': false,\n 'value': hash\n });\n } else if (obj.propertyIsEnumerable !== undefined &&\n obj.propertyIsEnumerable === obj.constructor.prototype.propertyIsEnumerable) {\n // Since we can't define a non-enumerable property on the object\n // we'll hijack one of the less-used non-enumerable properties to\n // save our hash on it. Since this is a function it will not show up in\n // `JSON.stringify` which is what we want.\n obj.propertyIsEnumerable = function() {\n return this.constructor.prototype.propertyIsEnumerable.apply(this, arguments);\n };\n obj.propertyIsEnumerable[UID_HASH_KEY] = hash;\n } else if (obj.nodeType !== undefined) {\n // At this point we couldn't get the IE `uniqueID` to use as a hash\n // and we couldn't use a non-enumerable property to exploit the\n // dontEnum bug so we simply add the `UID_HASH_KEY` on the node\n // itself.\n obj[UID_HASH_KEY] = hash;\n } else {\n throw new Error('Unable to set a non-enumerable property on object.');\n }\n\n return hash;\n }\n\n // Get references to ES5 object methods.\n var isExtensible = Object.isExtensible;\n\n // True if Object.defineProperty works as expected. IE8 fails this test.\n var canDefineProperty = (function() {\n try {\n Object.defineProperty({}, '@', {});\n return true;\n } catch (e) {\n return false;\n }\n }());\n\n // IE has a `uniqueID` property on DOM nodes. We can construct the hash from it\n // and avoid memory leaks from the IE cloneNode bug.\n function getIENodeHash(node) {\n if (node && node.nodeType > 0) {\n switch (node.nodeType) {\n case 1: // Element\n return node.uniqueID;\n case 9: // Document\n return node.documentElement && node.documentElement.uniqueID;\n }\n }\n }\n\n // If possible, use a WeakMap.\n var usingWeakMap = typeof WeakMap === 'function';\n var weakMap;\n if (usingWeakMap) {\n weakMap = new WeakMap();\n }\n\n var objHashUID = 0;\n\n var UID_HASH_KEY = '__immutablehash__';\n if (typeof Symbol === 'function') {\n UID_HASH_KEY = Symbol(UID_HASH_KEY);\n }\n\n var STRING_HASH_CACHE_MIN_STRLEN = 16;\n var STRING_HASH_CACHE_MAX_SIZE = 255;\n var STRING_HASH_CACHE_SIZE = 0;\n var stringHashCache = {};\n\n function assertNotInfinite(size) {\n invariant(\n size !== Infinity,\n 'Cannot perform this action with an infinite size.'\n );\n }\n\n createClass(Map, KeyedCollection);\n\n // @pragma Construction\n\n function Map(value) {\n return value === null || value === undefined ? emptyMap() :\n isMap(value) && !isOrdered(value) ? value :\n emptyMap().withMutations(function(map ) {\n var iter = KeyedIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function(v, k) {return map.set(k, v)});\n });\n }\n\n Map.prototype.toString = function() {\n return this.__toString('Map {', '}');\n };\n\n // @pragma Access\n\n Map.prototype.get = function(k, notSetValue) {\n return this._root ?\n this._root.get(0, undefined, k, notSetValue) :\n notSetValue;\n };\n\n // @pragma Modification\n\n Map.prototype.set = function(k, v) {\n return updateMap(this, k, v);\n };\n\n Map.prototype.setIn = function(keyPath, v) {\n return this.updateIn(keyPath, NOT_SET, function() {return v});\n };\n\n Map.prototype.remove = function(k) {\n return updateMap(this, k, NOT_SET);\n };\n\n Map.prototype.deleteIn = function(keyPath) {\n return this.updateIn(keyPath, function() {return NOT_SET});\n };\n\n Map.prototype.update = function(k, notSetValue, updater) {\n return arguments.length === 1 ?\n k(this) :\n this.updateIn([k], notSetValue, updater);\n };\n\n Map.prototype.updateIn = function(keyPath, notSetValue, updater) {\n if (!updater) {\n updater = notSetValue;\n notSetValue = undefined;\n }\n var updatedValue = updateInDeepMap(\n this,\n forceIterator(keyPath),\n notSetValue,\n updater\n );\n return updatedValue === NOT_SET ? undefined : updatedValue;\n };\n\n Map.prototype.clear = function() {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._root = null;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyMap();\n };\n\n // @pragma Composition\n\n Map.prototype.merge = function(/*...iters*/) {\n return mergeIntoMapWith(this, undefined, arguments);\n };\n\n Map.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return mergeIntoMapWith(this, merger, iters);\n };\n\n Map.prototype.mergeIn = function(keyPath) {var iters = SLICE$0.call(arguments, 1);\n return this.updateIn(\n keyPath,\n emptyMap(),\n function(m ) {return typeof m.merge === 'function' ?\n m.merge.apply(m, iters) :\n iters[iters.length - 1]}\n );\n };\n\n Map.prototype.mergeDeep = function(/*...iters*/) {\n return mergeIntoMapWith(this, deepMerger, arguments);\n };\n\n Map.prototype.mergeDeepWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return mergeIntoMapWith(this, deepMergerWith(merger), iters);\n };\n\n Map.prototype.mergeDeepIn = function(keyPath) {var iters = SLICE$0.call(arguments, 1);\n return this.updateIn(\n keyPath,\n emptyMap(),\n function(m ) {return typeof m.mergeDeep === 'function' ?\n m.mergeDeep.apply(m, iters) :\n iters[iters.length - 1]}\n );\n };\n\n Map.prototype.sort = function(comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator));\n };\n\n Map.prototype.sortBy = function(mapper, comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator, mapper));\n };\n\n // @pragma Mutability\n\n Map.prototype.withMutations = function(fn) {\n var mutable = this.asMutable();\n fn(mutable);\n return mutable.wasAltered() ? mutable.__ensureOwner(this.__ownerID) : this;\n };\n\n Map.prototype.asMutable = function() {\n return this.__ownerID ? this : this.__ensureOwner(new OwnerID());\n };\n\n Map.prototype.asImmutable = function() {\n return this.__ensureOwner();\n };\n\n Map.prototype.wasAltered = function() {\n return this.__altered;\n };\n\n Map.prototype.__iterator = function(type, reverse) {\n return new MapIterator(this, type, reverse);\n };\n\n Map.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n var iterations = 0;\n this._root && this._root.iterate(function(entry ) {\n iterations++;\n return fn(entry[1], entry[0], this$0);\n }, reverse);\n return iterations;\n };\n\n Map.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeMap(this.size, this._root, ownerID, this.__hash);\n };\n\n\n function isMap(maybeMap) {\n return !!(maybeMap && maybeMap[IS_MAP_SENTINEL]);\n }\n\n Map.isMap = isMap;\n\n var IS_MAP_SENTINEL = '@@__IMMUTABLE_MAP__@@';\n\n var MapPrototype = Map.prototype;\n MapPrototype[IS_MAP_SENTINEL] = true;\n MapPrototype[DELETE] = MapPrototype.remove;\n MapPrototype.removeIn = MapPrototype.deleteIn;\n\n\n // #pragma Trie Nodes\n\n\n\n function ArrayMapNode(ownerID, entries) {\n this.ownerID = ownerID;\n this.entries = entries;\n }\n\n ArrayMapNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n var entries = this.entries;\n for (var ii = 0, len = entries.length; ii < len; ii++) {\n if (is(key, entries[ii][0])) {\n return entries[ii][1];\n }\n }\n return notSetValue;\n };\n\n ArrayMapNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n\n var entries = this.entries;\n var idx = 0;\n for (var len = entries.length; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\n }\n var exists = idx < len;\n\n if (exists ? entries[idx][1] === value : removed) {\n return this;\n }\n\n SetRef(didAlter);\n (removed || !exists) && SetRef(didChangeSize);\n\n if (removed && entries.length === 1) {\n return; // undefined\n }\n\n if (!exists && !removed && entries.length >= MAX_ARRAY_MAP_SIZE) {\n return createNodes(ownerID, entries, key, value);\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newEntries = isEditable ? entries : arrCopy(entries);\n\n if (exists) {\n if (removed) {\n idx === len - 1 ? newEntries.pop() : (newEntries[idx] = newEntries.pop());\n } else {\n newEntries[idx] = [key, value];\n }\n } else {\n newEntries.push([key, value]);\n }\n\n if (isEditable) {\n this.entries = newEntries;\n return this;\n }\n\n return new ArrayMapNode(ownerID, newEntries);\n };\n\n\n\n\n function BitmapIndexedNode(ownerID, bitmap, nodes) {\n this.ownerID = ownerID;\n this.bitmap = bitmap;\n this.nodes = nodes;\n }\n\n BitmapIndexedNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var bit = (1 << ((shift === 0 ? keyHash : keyHash >>> shift) & MASK));\n var bitmap = this.bitmap;\n return (bitmap & bit) === 0 ? notSetValue :\n this.nodes[popCount(bitmap & (bit - 1))].get(shift + SHIFT, keyHash, key, notSetValue);\n };\n\n BitmapIndexedNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var keyHashFrag = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var bit = 1 << keyHashFrag;\n var bitmap = this.bitmap;\n var exists = (bitmap & bit) !== 0;\n\n if (!exists && value === NOT_SET) {\n return this;\n }\n\n var idx = popCount(bitmap & (bit - 1));\n var nodes = this.nodes;\n var node = exists ? nodes[idx] : undefined;\n var newNode = updateNode(node, ownerID, shift + SHIFT, keyHash, key, value, didChangeSize, didAlter);\n\n if (newNode === node) {\n return this;\n }\n\n if (!exists && newNode && nodes.length >= MAX_BITMAP_INDEXED_SIZE) {\n return expandNodes(ownerID, nodes, bitmap, keyHashFrag, newNode);\n }\n\n if (exists && !newNode && nodes.length === 2 && isLeafNode(nodes[idx ^ 1])) {\n return nodes[idx ^ 1];\n }\n\n if (exists && newNode && nodes.length === 1 && isLeafNode(newNode)) {\n return newNode;\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newBitmap = exists ? newNode ? bitmap : bitmap ^ bit : bitmap | bit;\n var newNodes = exists ? newNode ?\n setIn(nodes, idx, newNode, isEditable) :\n spliceOut(nodes, idx, isEditable) :\n spliceIn(nodes, idx, newNode, isEditable);\n\n if (isEditable) {\n this.bitmap = newBitmap;\n this.nodes = newNodes;\n return this;\n }\n\n return new BitmapIndexedNode(ownerID, newBitmap, newNodes);\n };\n\n\n\n\n function HashArrayMapNode(ownerID, count, nodes) {\n this.ownerID = ownerID;\n this.count = count;\n this.nodes = nodes;\n }\n\n HashArrayMapNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var node = this.nodes[idx];\n return node ? node.get(shift + SHIFT, keyHash, key, notSetValue) : notSetValue;\n };\n\n HashArrayMapNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var removed = value === NOT_SET;\n var nodes = this.nodes;\n var node = nodes[idx];\n\n if (removed && !node) {\n return this;\n }\n\n var newNode = updateNode(node, ownerID, shift + SHIFT, keyHash, key, value, didChangeSize, didAlter);\n if (newNode === node) {\n return this;\n }\n\n var newCount = this.count;\n if (!node) {\n newCount++;\n } else if (!newNode) {\n newCount--;\n if (newCount < MIN_HASH_ARRAY_MAP_SIZE) {\n return packNodes(ownerID, nodes, newCount, idx);\n }\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newNodes = setIn(nodes, idx, newNode, isEditable);\n\n if (isEditable) {\n this.count = newCount;\n this.nodes = newNodes;\n return this;\n }\n\n return new HashArrayMapNode(ownerID, newCount, newNodes);\n };\n\n\n\n\n function HashCollisionNode(ownerID, keyHash, entries) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entries = entries;\n }\n\n HashCollisionNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n var entries = this.entries;\n for (var ii = 0, len = entries.length; ii < len; ii++) {\n if (is(key, entries[ii][0])) {\n return entries[ii][1];\n }\n }\n return notSetValue;\n };\n\n HashCollisionNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n\n var removed = value === NOT_SET;\n\n if (keyHash !== this.keyHash) {\n if (removed) {\n return this;\n }\n SetRef(didAlter);\n SetRef(didChangeSize);\n return mergeIntoNode(this, ownerID, shift, keyHash, [key, value]);\n }\n\n var entries = this.entries;\n var idx = 0;\n for (var len = entries.length; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\n }\n var exists = idx < len;\n\n if (exists ? entries[idx][1] === value : removed) {\n return this;\n }\n\n SetRef(didAlter);\n (removed || !exists) && SetRef(didChangeSize);\n\n if (removed && len === 2) {\n return new ValueNode(ownerID, this.keyHash, entries[idx ^ 1]);\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newEntries = isEditable ? entries : arrCopy(entries);\n\n if (exists) {\n if (removed) {\n idx === len - 1 ? newEntries.pop() : (newEntries[idx] = newEntries.pop());\n } else {\n newEntries[idx] = [key, value];\n }\n } else {\n newEntries.push([key, value]);\n }\n\n if (isEditable) {\n this.entries = newEntries;\n return this;\n }\n\n return new HashCollisionNode(ownerID, this.keyHash, newEntries);\n };\n\n\n\n\n function ValueNode(ownerID, keyHash, entry) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entry = entry;\n }\n\n ValueNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n return is(key, this.entry[0]) ? this.entry[1] : notSetValue;\n };\n\n ValueNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n var keyMatch = is(key, this.entry[0]);\n if (keyMatch ? value === this.entry[1] : removed) {\n return this;\n }\n\n SetRef(didAlter);\n\n if (removed) {\n SetRef(didChangeSize);\n return; // undefined\n }\n\n if (keyMatch) {\n if (ownerID && ownerID === this.ownerID) {\n this.entry[1] = value;\n return this;\n }\n return new ValueNode(ownerID, this.keyHash, [key, value]);\n }\n\n SetRef(didChangeSize);\n return mergeIntoNode(this, ownerID, shift, hash(key), [key, value]);\n };\n\n\n\n // #pragma Iterators\n\n ArrayMapNode.prototype.iterate =\n HashCollisionNode.prototype.iterate = function (fn, reverse) {\n var entries = this.entries;\n for (var ii = 0, maxIndex = entries.length - 1; ii <= maxIndex; ii++) {\n if (fn(entries[reverse ? maxIndex - ii : ii]) === false) {\n return false;\n }\n }\n }\n\n BitmapIndexedNode.prototype.iterate =\n HashArrayMapNode.prototype.iterate = function (fn, reverse) {\n var nodes = this.nodes;\n for (var ii = 0, maxIndex = nodes.length - 1; ii <= maxIndex; ii++) {\n var node = nodes[reverse ? maxIndex - ii : ii];\n if (node && node.iterate(fn, reverse) === false) {\n return false;\n }\n }\n }\n\n ValueNode.prototype.iterate = function (fn, reverse) {\n return fn(this.entry);\n }\n\n createClass(MapIterator, Iterator);\n\n function MapIterator(map, type, reverse) {\n this._type = type;\n this._reverse = reverse;\n this._stack = map._root && mapIteratorFrame(map._root);\n }\n\n MapIterator.prototype.next = function() {\n var type = this._type;\n var stack = this._stack;\n while (stack) {\n var node = stack.node;\n var index = stack.index++;\n var maxIndex;\n if (node.entry) {\n if (index === 0) {\n return mapIteratorValue(type, node.entry);\n }\n } else if (node.entries) {\n maxIndex = node.entries.length - 1;\n if (index <= maxIndex) {\n return mapIteratorValue(type, node.entries[this._reverse ? maxIndex - index : index]);\n }\n } else {\n maxIndex = node.nodes.length - 1;\n if (index <= maxIndex) {\n var subNode = node.nodes[this._reverse ? maxIndex - index : index];\n if (subNode) {\n if (subNode.entry) {\n return mapIteratorValue(type, subNode.entry);\n }\n stack = this._stack = mapIteratorFrame(subNode, stack);\n }\n continue;\n }\n }\n stack = this._stack = this._stack.__prev;\n }\n return iteratorDone();\n };\n\n\n function mapIteratorValue(type, entry) {\n return iteratorValue(type, entry[0], entry[1]);\n }\n\n function mapIteratorFrame(node, prev) {\n return {\n node: node,\n index: 0,\n __prev: prev\n };\n }\n\n function makeMap(size, root, ownerID, hash) {\n var map = Object.create(MapPrototype);\n map.size = size;\n map._root = root;\n map.__ownerID = ownerID;\n map.__hash = hash;\n map.__altered = false;\n return map;\n }\n\n var EMPTY_MAP;\n function emptyMap() {\n return EMPTY_MAP || (EMPTY_MAP = makeMap(0));\n }\n\n function updateMap(map, k, v) {\n var newRoot;\n var newSize;\n if (!map._root) {\n if (v === NOT_SET) {\n return map;\n }\n newSize = 1;\n newRoot = new ArrayMapNode(map.__ownerID, [[k, v]]);\n } else {\n var didChangeSize = MakeRef(CHANGE_LENGTH);\n var didAlter = MakeRef(DID_ALTER);\n newRoot = updateNode(map._root, map.__ownerID, 0, undefined, k, v, didChangeSize, didAlter);\n if (!didAlter.value) {\n return map;\n }\n newSize = map.size + (didChangeSize.value ? v === NOT_SET ? -1 : 1 : 0);\n }\n if (map.__ownerID) {\n map.size = newSize;\n map._root = newRoot;\n map.__hash = undefined;\n map.__altered = true;\n return map;\n }\n return newRoot ? makeMap(newSize, newRoot) : emptyMap();\n }\n\n function updateNode(node, ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (!node) {\n if (value === NOT_SET) {\n return node;\n }\n SetRef(didAlter);\n SetRef(didChangeSize);\n return new ValueNode(ownerID, keyHash, [key, value]);\n }\n return node.update(ownerID, shift, keyHash, key, value, didChangeSize, didAlter);\n }\n\n function isLeafNode(node) {\n return node.constructor === ValueNode || node.constructor === HashCollisionNode;\n }\n\n function mergeIntoNode(node, ownerID, shift, keyHash, entry) {\n if (node.keyHash === keyHash) {\n return new HashCollisionNode(ownerID, keyHash, [node.entry, entry]);\n }\n\n var idx1 = (shift === 0 ? node.keyHash : node.keyHash >>> shift) & MASK;\n var idx2 = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n\n var newNode;\n var nodes = idx1 === idx2 ?\n [mergeIntoNode(node, ownerID, shift + SHIFT, keyHash, entry)] :\n ((newNode = new ValueNode(ownerID, keyHash, entry)), idx1 < idx2 ? [node, newNode] : [newNode, node]);\n\n return new BitmapIndexedNode(ownerID, (1 << idx1) | (1 << idx2), nodes);\n }\n\n function createNodes(ownerID, entries, key, value) {\n if (!ownerID) {\n ownerID = new OwnerID();\n }\n var node = new ValueNode(ownerID, hash(key), [key, value]);\n for (var ii = 0; ii < entries.length; ii++) {\n var entry = entries[ii];\n node = node.update(ownerID, 0, undefined, entry[0], entry[1]);\n }\n return node;\n }\n\n function packNodes(ownerID, nodes, count, excluding) {\n var bitmap = 0;\n var packedII = 0;\n var packedNodes = new Array(count);\n for (var ii = 0, bit = 1, len = nodes.length; ii < len; ii++, bit <<= 1) {\n var node = nodes[ii];\n if (node !== undefined && ii !== excluding) {\n bitmap |= bit;\n packedNodes[packedII++] = node;\n }\n }\n return new BitmapIndexedNode(ownerID, bitmap, packedNodes);\n }\n\n function expandNodes(ownerID, nodes, bitmap, including, node) {\n var count = 0;\n var expandedNodes = new Array(SIZE);\n for (var ii = 0; bitmap !== 0; ii++, bitmap >>>= 1) {\n expandedNodes[ii] = bitmap & 1 ? nodes[count++] : undefined;\n }\n expandedNodes[including] = node;\n return new HashArrayMapNode(ownerID, count + 1, expandedNodes);\n }\n\n function mergeIntoMapWith(map, merger, iterables) {\n var iters = [];\n for (var ii = 0; ii < iterables.length; ii++) {\n var value = iterables[ii];\n var iter = KeyedIterable(value);\n if (!isIterable(value)) {\n iter = iter.map(function(v ) {return fromJS(v)});\n }\n iters.push(iter);\n }\n return mergeIntoCollectionWith(map, merger, iters);\n }\n\n function deepMerger(existing, value, key) {\n return existing && existing.mergeDeep && isIterable(value) ?\n existing.mergeDeep(value) :\n is(existing, value) ? existing : value;\n }\n\n function deepMergerWith(merger) {\n return function(existing, value, key) {\n if (existing && existing.mergeDeepWith && isIterable(value)) {\n return existing.mergeDeepWith(merger, value);\n }\n var nextValue = merger(existing, value, key);\n return is(existing, nextValue) ? existing : nextValue;\n };\n }\n\n function mergeIntoCollectionWith(collection, merger, iters) {\n iters = iters.filter(function(x ) {return x.size !== 0});\n if (iters.length === 0) {\n return collection;\n }\n if (collection.size === 0 && !collection.__ownerID && iters.length === 1) {\n return collection.constructor(iters[0]);\n }\n return collection.withMutations(function(collection ) {\n var mergeIntoMap = merger ?\n function(value, key) {\n collection.update(key, NOT_SET, function(existing )\n {return existing === NOT_SET ? value : merger(existing, value, key)}\n );\n } :\n function(value, key) {\n collection.set(key, value);\n }\n for (var ii = 0; ii < iters.length; ii++) {\n iters[ii].forEach(mergeIntoMap);\n }\n });\n }\n\n function updateInDeepMap(existing, keyPathIter, notSetValue, updater) {\n var isNotSet = existing === NOT_SET;\n var step = keyPathIter.next();\n if (step.done) {\n var existingValue = isNotSet ? notSetValue : existing;\n var newValue = updater(existingValue);\n return newValue === existingValue ? existing : newValue;\n }\n invariant(\n isNotSet || (existing && existing.set),\n 'invalid keyPath'\n );\n var key = step.value;\n var nextExisting = isNotSet ? NOT_SET : existing.get(key, NOT_SET);\n var nextUpdated = updateInDeepMap(\n nextExisting,\n keyPathIter,\n notSetValue,\n updater\n );\n return nextUpdated === nextExisting ? existing :\n nextUpdated === NOT_SET ? existing.remove(key) :\n (isNotSet ? emptyMap() : existing).set(key, nextUpdated);\n }\n\n function popCount(x) {\n x = x - ((x >> 1) & 0x55555555);\n x = (x & 0x33333333) + ((x >> 2) & 0x33333333);\n x = (x + (x >> 4)) & 0x0f0f0f0f;\n x = x + (x >> 8);\n x = x + (x >> 16);\n return x & 0x7f;\n }\n\n function setIn(array, idx, val, canEdit) {\n var newArray = canEdit ? array : arrCopy(array);\n newArray[idx] = val;\n return newArray;\n }\n\n function spliceIn(array, idx, val, canEdit) {\n var newLen = array.length + 1;\n if (canEdit && idx + 1 === newLen) {\n array[idx] = val;\n return array;\n }\n var newArray = new Array(newLen);\n var after = 0;\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n newArray[ii] = val;\n after = -1;\n } else {\n newArray[ii] = array[ii + after];\n }\n }\n return newArray;\n }\n\n function spliceOut(array, idx, canEdit) {\n var newLen = array.length - 1;\n if (canEdit && idx === newLen) {\n array.pop();\n return array;\n }\n var newArray = new Array(newLen);\n var after = 0;\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n after = 1;\n }\n newArray[ii] = array[ii + after];\n }\n return newArray;\n }\n\n var MAX_ARRAY_MAP_SIZE = SIZE / 4;\n var MAX_BITMAP_INDEXED_SIZE = SIZE / 2;\n var MIN_HASH_ARRAY_MAP_SIZE = SIZE / 4;\n\n createClass(List, IndexedCollection);\n\n // @pragma Construction\n\n function List(value) {\n var empty = emptyList();\n if (value === null || value === undefined) {\n return empty;\n }\n if (isList(value)) {\n return value;\n }\n var iter = IndexedIterable(value);\n var size = iter.size;\n if (size === 0) {\n return empty;\n }\n assertNotInfinite(size);\n if (size > 0 && size < SIZE) {\n return makeList(0, size, SHIFT, null, new VNode(iter.toArray()));\n }\n return empty.withMutations(function(list ) {\n list.setSize(size);\n iter.forEach(function(v, i) {return list.set(i, v)});\n });\n }\n\n List.of = function(/*...values*/) {\n return this(arguments);\n };\n\n List.prototype.toString = function() {\n return this.__toString('List [', ']');\n };\n\n // @pragma Access\n\n List.prototype.get = function(index, notSetValue) {\n index = wrapIndex(this, index);\n if (index >= 0 && index < this.size) {\n index += this._origin;\n var node = listNodeFor(this, index);\n return node && node.array[index & MASK];\n }\n return notSetValue;\n };\n\n // @pragma Modification\n\n List.prototype.set = function(index, value) {\n return updateList(this, index, value);\n };\n\n List.prototype.remove = function(index) {\n return !this.has(index) ? this :\n index === 0 ? this.shift() :\n index === this.size - 1 ? this.pop() :\n this.splice(index, 1);\n };\n\n List.prototype.insert = function(index, value) {\n return this.splice(index, 0, value);\n };\n\n List.prototype.clear = function() {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = this._origin = this._capacity = 0;\n this._level = SHIFT;\n this._root = this._tail = null;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyList();\n };\n\n List.prototype.push = function(/*...values*/) {\n var values = arguments;\n var oldSize = this.size;\n return this.withMutations(function(list ) {\n setListBounds(list, 0, oldSize + values.length);\n for (var ii = 0; ii < values.length; ii++) {\n list.set(oldSize + ii, values[ii]);\n }\n });\n };\n\n List.prototype.pop = function() {\n return setListBounds(this, 0, -1);\n };\n\n List.prototype.unshift = function(/*...values*/) {\n var values = arguments;\n return this.withMutations(function(list ) {\n setListBounds(list, -values.length);\n for (var ii = 0; ii < values.length; ii++) {\n list.set(ii, values[ii]);\n }\n });\n };\n\n List.prototype.shift = function() {\n return setListBounds(this, 1);\n };\n\n // @pragma Composition\n\n List.prototype.merge = function(/*...iters*/) {\n return mergeIntoListWith(this, undefined, arguments);\n };\n\n List.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return mergeIntoListWith(this, merger, iters);\n };\n\n List.prototype.mergeDeep = function(/*...iters*/) {\n return mergeIntoListWith(this, deepMerger, arguments);\n };\n\n List.prototype.mergeDeepWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return mergeIntoListWith(this, deepMergerWith(merger), iters);\n };\n\n List.prototype.setSize = function(size) {\n return setListBounds(this, 0, size);\n };\n\n // @pragma Iteration\n\n List.prototype.slice = function(begin, end) {\n var size = this.size;\n if (wholeSlice(begin, end, size)) {\n return this;\n }\n return setListBounds(\n this,\n resolveBegin(begin, size),\n resolveEnd(end, size)\n );\n };\n\n List.prototype.__iterator = function(type, reverse) {\n var index = 0;\n var values = iterateList(this, reverse);\n return new Iterator(function() {\n var value = values();\n return value === DONE ?\n iteratorDone() :\n iteratorValue(type, index++, value);\n });\n };\n\n List.prototype.__iterate = function(fn, reverse) {\n var index = 0;\n var values = iterateList(this, reverse);\n var value;\n while ((value = values()) !== DONE) {\n if (fn(value, index++, this) === false) {\n break;\n }\n }\n return index;\n };\n\n List.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n this.__ownerID = ownerID;\n return this;\n }\n return makeList(this._origin, this._capacity, this._level, this._root, this._tail, ownerID, this.__hash);\n };\n\n\n function isList(maybeList) {\n return !!(maybeList && maybeList[IS_LIST_SENTINEL]);\n }\n\n List.isList = isList;\n\n var IS_LIST_SENTINEL = '@@__IMMUTABLE_LIST__@@';\n\n var ListPrototype = List.prototype;\n ListPrototype[IS_LIST_SENTINEL] = true;\n ListPrototype[DELETE] = ListPrototype.remove;\n ListPrototype.setIn = MapPrototype.setIn;\n ListPrototype.deleteIn =\n ListPrototype.removeIn = MapPrototype.removeIn;\n ListPrototype.update = MapPrototype.update;\n ListPrototype.updateIn = MapPrototype.updateIn;\n ListPrototype.mergeIn = MapPrototype.mergeIn;\n ListPrototype.mergeDeepIn = MapPrototype.mergeDeepIn;\n ListPrototype.withMutations = MapPrototype.withMutations;\n ListPrototype.asMutable = MapPrototype.asMutable;\n ListPrototype.asImmutable = MapPrototype.asImmutable;\n ListPrototype.wasAltered = MapPrototype.wasAltered;\n\n\n\n function VNode(array, ownerID) {\n this.array = array;\n this.ownerID = ownerID;\n }\n\n // TODO: seems like these methods are very similar\n\n VNode.prototype.removeBefore = function(ownerID, level, index) {\n if (index === level ? 1 << level : 0 || this.array.length === 0) {\n return this;\n }\n var originIndex = (index >>> level) & MASK;\n if (originIndex >= this.array.length) {\n return new VNode([], ownerID);\n }\n var removingFirst = originIndex === 0;\n var newChild;\n if (level > 0) {\n var oldChild = this.array[originIndex];\n newChild = oldChild && oldChild.removeBefore(ownerID, level - SHIFT, index);\n if (newChild === oldChild && removingFirst) {\n return this;\n }\n }\n if (removingFirst && !newChild) {\n return this;\n }\n var editable = editableVNode(this, ownerID);\n if (!removingFirst) {\n for (var ii = 0; ii < originIndex; ii++) {\n editable.array[ii] = undefined;\n }\n }\n if (newChild) {\n editable.array[originIndex] = newChild;\n }\n return editable;\n };\n\n VNode.prototype.removeAfter = function(ownerID, level, index) {\n if (index === (level ? 1 << level : 0) || this.array.length === 0) {\n return this;\n }\n var sizeIndex = ((index - 1) >>> level) & MASK;\n if (sizeIndex >= this.array.length) {\n return this;\n }\n\n var newChild;\n if (level > 0) {\n var oldChild = this.array[sizeIndex];\n newChild = oldChild && oldChild.removeAfter(ownerID, level - SHIFT, index);\n if (newChild === oldChild && sizeIndex === this.array.length - 1) {\n return this;\n }\n }\n\n var editable = editableVNode(this, ownerID);\n editable.array.splice(sizeIndex + 1);\n if (newChild) {\n editable.array[sizeIndex] = newChild;\n }\n return editable;\n };\n\n\n\n var DONE = {};\n\n function iterateList(list, reverse) {\n var left = list._origin;\n var right = list._capacity;\n var tailPos = getTailOffset(right);\n var tail = list._tail;\n\n return iterateNodeOrLeaf(list._root, list._level, 0);\n\n function iterateNodeOrLeaf(node, level, offset) {\n return level === 0 ?\n iterateLeaf(node, offset) :\n iterateNode(node, level, offset);\n }\n\n function iterateLeaf(node, offset) {\n var array = offset === tailPos ? tail && tail.array : node && node.array;\n var from = offset > left ? 0 : left - offset;\n var to = right - offset;\n if (to > SIZE) {\n to = SIZE;\n }\n return function() {\n if (from === to) {\n return DONE;\n }\n var idx = reverse ? --to : from++;\n return array && array[idx];\n };\n }\n\n function iterateNode(node, level, offset) {\n var values;\n var array = node && node.array;\n var from = offset > left ? 0 : (left - offset) >> level;\n var to = ((right - offset) >> level) + 1;\n if (to > SIZE) {\n to = SIZE;\n }\n return function() {\n do {\n if (values) {\n var value = values();\n if (value !== DONE) {\n return value;\n }\n values = null;\n }\n if (from === to) {\n return DONE;\n }\n var idx = reverse ? --to : from++;\n values = iterateNodeOrLeaf(\n array && array[idx], level - SHIFT, offset + (idx << level)\n );\n } while (true);\n };\n }\n }\n\n function makeList(origin, capacity, level, root, tail, ownerID, hash) {\n var list = Object.create(ListPrototype);\n list.size = capacity - origin;\n list._origin = origin;\n list._capacity = capacity;\n list._level = level;\n list._root = root;\n list._tail = tail;\n list.__ownerID = ownerID;\n list.__hash = hash;\n list.__altered = false;\n return list;\n }\n\n var EMPTY_LIST;\n function emptyList() {\n return EMPTY_LIST || (EMPTY_LIST = makeList(0, 0, SHIFT));\n }\n\n function updateList(list, index, value) {\n index = wrapIndex(list, index);\n\n if (index !== index) {\n return list;\n }\n\n if (index >= list.size || index < 0) {\n return list.withMutations(function(list ) {\n index < 0 ?\n setListBounds(list, index).set(0, value) :\n setListBounds(list, 0, index + 1).set(index, value)\n });\n }\n\n index += list._origin;\n\n var newTail = list._tail;\n var newRoot = list._root;\n var didAlter = MakeRef(DID_ALTER);\n if (index >= getTailOffset(list._capacity)) {\n newTail = updateVNode(newTail, list.__ownerID, 0, index, value, didAlter);\n } else {\n newRoot = updateVNode(newRoot, list.__ownerID, list._level, index, value, didAlter);\n }\n\n if (!didAlter.value) {\n return list;\n }\n\n if (list.__ownerID) {\n list._root = newRoot;\n list._tail = newTail;\n list.__hash = undefined;\n list.__altered = true;\n return list;\n }\n return makeList(list._origin, list._capacity, list._level, newRoot, newTail);\n }\n\n function updateVNode(node, ownerID, level, index, value, didAlter) {\n var idx = (index >>> level) & MASK;\n var nodeHas = node && idx < node.array.length;\n if (!nodeHas && value === undefined) {\n return node;\n }\n\n var newNode;\n\n if (level > 0) {\n var lowerNode = node && node.array[idx];\n var newLowerNode = updateVNode(lowerNode, ownerID, level - SHIFT, index, value, didAlter);\n if (newLowerNode === lowerNode) {\n return node;\n }\n newNode = editableVNode(node, ownerID);\n newNode.array[idx] = newLowerNode;\n return newNode;\n }\n\n if (nodeHas && node.array[idx] === value) {\n return node;\n }\n\n SetRef(didAlter);\n\n newNode = editableVNode(node, ownerID);\n if (value === undefined && idx === newNode.array.length - 1) {\n newNode.array.pop();\n } else {\n newNode.array[idx] = value;\n }\n return newNode;\n }\n\n function editableVNode(node, ownerID) {\n if (ownerID && node && ownerID === node.ownerID) {\n return node;\n }\n return new VNode(node ? node.array.slice() : [], ownerID);\n }\n\n function listNodeFor(list, rawIndex) {\n if (rawIndex >= getTailOffset(list._capacity)) {\n return list._tail;\n }\n if (rawIndex < 1 << (list._level + SHIFT)) {\n var node = list._root;\n var level = list._level;\n while (node && level > 0) {\n node = node.array[(rawIndex >>> level) & MASK];\n level -= SHIFT;\n }\n return node;\n }\n }\n\n function setListBounds(list, begin, end) {\n // Sanitize begin & end using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n if (begin !== undefined) {\n begin = begin | 0;\n }\n if (end !== undefined) {\n end = end | 0;\n }\n var owner = list.__ownerID || new OwnerID();\n var oldOrigin = list._origin;\n var oldCapacity = list._capacity;\n var newOrigin = oldOrigin + begin;\n var newCapacity = end === undefined ? oldCapacity : end < 0 ? oldCapacity + end : oldOrigin + end;\n if (newOrigin === oldOrigin && newCapacity === oldCapacity) {\n return list;\n }\n\n // If it's going to end after it starts, it's empty.\n if (newOrigin >= newCapacity) {\n return list.clear();\n }\n\n var newLevel = list._level;\n var newRoot = list._root;\n\n // New origin might need creating a higher root.\n var offsetShift = 0;\n while (newOrigin + offsetShift < 0) {\n newRoot = new VNode(newRoot && newRoot.array.length ? [undefined, newRoot] : [], owner);\n newLevel += SHIFT;\n offsetShift += 1 << newLevel;\n }\n if (offsetShift) {\n newOrigin += offsetShift;\n oldOrigin += offsetShift;\n newCapacity += offsetShift;\n oldCapacity += offsetShift;\n }\n\n var oldTailOffset = getTailOffset(oldCapacity);\n var newTailOffset = getTailOffset(newCapacity);\n\n // New size might need creating a higher root.\n while (newTailOffset >= 1 << (newLevel + SHIFT)) {\n newRoot = new VNode(newRoot && newRoot.array.length ? [newRoot] : [], owner);\n newLevel += SHIFT;\n }\n\n // Locate or create the new tail.\n var oldTail = list._tail;\n var newTail = newTailOffset < oldTailOffset ?\n listNodeFor(list, newCapacity - 1) :\n newTailOffset > oldTailOffset ? new VNode([], owner) : oldTail;\n\n // Merge Tail into tree.\n if (oldTail && newTailOffset > oldTailOffset && newOrigin < oldCapacity && oldTail.array.length) {\n newRoot = editableVNode(newRoot, owner);\n var node = newRoot;\n for (var level = newLevel; level > SHIFT; level -= SHIFT) {\n var idx = (oldTailOffset >>> level) & MASK;\n node = node.array[idx] = editableVNode(node.array[idx], owner);\n }\n node.array[(oldTailOffset >>> SHIFT) & MASK] = oldTail;\n }\n\n // If the size has been reduced, there's a chance the tail needs to be trimmed.\n if (newCapacity < oldCapacity) {\n newTail = newTail && newTail.removeAfter(owner, 0, newCapacity);\n }\n\n // If the new origin is within the tail, then we do not need a root.\n if (newOrigin >= newTailOffset) {\n newOrigin -= newTailOffset;\n newCapacity -= newTailOffset;\n newLevel = SHIFT;\n newRoot = null;\n newTail = newTail && newTail.removeBefore(owner, 0, newOrigin);\n\n // Otherwise, if the root has been trimmed, garbage collect.\n } else if (newOrigin > oldOrigin || newTailOffset < oldTailOffset) {\n offsetShift = 0;\n\n // Identify the new top root node of the subtree of the old root.\n while (newRoot) {\n var beginIndex = (newOrigin >>> newLevel) & MASK;\n if (beginIndex !== (newTailOffset >>> newLevel) & MASK) {\n break;\n }\n if (beginIndex) {\n offsetShift += (1 << newLevel) * beginIndex;\n }\n newLevel -= SHIFT;\n newRoot = newRoot.array[beginIndex];\n }\n\n // Trim the new sides of the new root.\n if (newRoot && newOrigin > oldOrigin) {\n newRoot = newRoot.removeBefore(owner, newLevel, newOrigin - offsetShift);\n }\n if (newRoot && newTailOffset < oldTailOffset) {\n newRoot = newRoot.removeAfter(owner, newLevel, newTailOffset - offsetShift);\n }\n if (offsetShift) {\n newOrigin -= offsetShift;\n newCapacity -= offsetShift;\n }\n }\n\n if (list.__ownerID) {\n list.size = newCapacity - newOrigin;\n list._origin = newOrigin;\n list._capacity = newCapacity;\n list._level = newLevel;\n list._root = newRoot;\n list._tail = newTail;\n list.__hash = undefined;\n list.__altered = true;\n return list;\n }\n return makeList(newOrigin, newCapacity, newLevel, newRoot, newTail);\n }\n\n function mergeIntoListWith(list, merger, iterables) {\n var iters = [];\n var maxSize = 0;\n for (var ii = 0; ii < iterables.length; ii++) {\n var value = iterables[ii];\n var iter = IndexedIterable(value);\n if (iter.size > maxSize) {\n maxSize = iter.size;\n }\n if (!isIterable(value)) {\n iter = iter.map(function(v ) {return fromJS(v)});\n }\n iters.push(iter);\n }\n if (maxSize > list.size) {\n list = list.setSize(maxSize);\n }\n return mergeIntoCollectionWith(list, merger, iters);\n }\n\n function getTailOffset(size) {\n return size < SIZE ? 0 : (((size - 1) >>> SHIFT) << SHIFT);\n }\n\n createClass(OrderedMap, Map);\n\n // @pragma Construction\n\n function OrderedMap(value) {\n return value === null || value === undefined ? emptyOrderedMap() :\n isOrderedMap(value) ? value :\n emptyOrderedMap().withMutations(function(map ) {\n var iter = KeyedIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function(v, k) {return map.set(k, v)});\n });\n }\n\n OrderedMap.of = function(/*...values*/) {\n return this(arguments);\n };\n\n OrderedMap.prototype.toString = function() {\n return this.__toString('OrderedMap {', '}');\n };\n\n // @pragma Access\n\n OrderedMap.prototype.get = function(k, notSetValue) {\n var index = this._map.get(k);\n return index !== undefined ? this._list.get(index)[1] : notSetValue;\n };\n\n // @pragma Modification\n\n OrderedMap.prototype.clear = function() {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._map.clear();\n this._list.clear();\n return this;\n }\n return emptyOrderedMap();\n };\n\n OrderedMap.prototype.set = function(k, v) {\n return updateOrderedMap(this, k, v);\n };\n\n OrderedMap.prototype.remove = function(k) {\n return updateOrderedMap(this, k, NOT_SET);\n };\n\n OrderedMap.prototype.wasAltered = function() {\n return this._map.wasAltered() || this._list.wasAltered();\n };\n\n OrderedMap.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return this._list.__iterate(\n function(entry ) {return entry && fn(entry[1], entry[0], this$0)},\n reverse\n );\n };\n\n OrderedMap.prototype.__iterator = function(type, reverse) {\n return this._list.fromEntrySeq().__iterator(type, reverse);\n };\n\n OrderedMap.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map.__ensureOwner(ownerID);\n var newList = this._list.__ensureOwner(ownerID);\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._map = newMap;\n this._list = newList;\n return this;\n }\n return makeOrderedMap(newMap, newList, ownerID, this.__hash);\n };\n\n\n function isOrderedMap(maybeOrderedMap) {\n return isMap(maybeOrderedMap) && isOrdered(maybeOrderedMap);\n }\n\n OrderedMap.isOrderedMap = isOrderedMap;\n\n OrderedMap.prototype[IS_ORDERED_SENTINEL] = true;\n OrderedMap.prototype[DELETE] = OrderedMap.prototype.remove;\n\n\n\n function makeOrderedMap(map, list, ownerID, hash) {\n var omap = Object.create(OrderedMap.prototype);\n omap.size = map ? map.size : 0;\n omap._map = map;\n omap._list = list;\n omap.__ownerID = ownerID;\n omap.__hash = hash;\n return omap;\n }\n\n var EMPTY_ORDERED_MAP;\n function emptyOrderedMap() {\n return EMPTY_ORDERED_MAP || (EMPTY_ORDERED_MAP = makeOrderedMap(emptyMap(), emptyList()));\n }\n\n function updateOrderedMap(omap, k, v) {\n var map = omap._map;\n var list = omap._list;\n var i = map.get(k);\n var has = i !== undefined;\n var newMap;\n var newList;\n if (v === NOT_SET) { // removed\n if (!has) {\n return omap;\n }\n if (list.size >= SIZE && list.size >= map.size * 2) {\n newList = list.filter(function(entry, idx) {return entry !== undefined && i !== idx});\n newMap = newList.toKeyedSeq().map(function(entry ) {return entry[0]}).flip().toMap();\n if (omap.__ownerID) {\n newMap.__ownerID = newList.__ownerID = omap.__ownerID;\n }\n } else {\n newMap = map.remove(k);\n newList = i === list.size - 1 ? list.pop() : list.set(i, undefined);\n }\n } else {\n if (has) {\n if (v === list.get(i)[1]) {\n return omap;\n }\n newMap = map;\n newList = list.set(i, [k, v]);\n } else {\n newMap = map.set(k, list.size);\n newList = list.set(list.size, [k, v]);\n }\n }\n if (omap.__ownerID) {\n omap.size = newMap.size;\n omap._map = newMap;\n omap._list = newList;\n omap.__hash = undefined;\n return omap;\n }\n return makeOrderedMap(newMap, newList);\n }\n\n createClass(ToKeyedSequence, KeyedSeq);\n function ToKeyedSequence(indexed, useKeys) {\n this._iter = indexed;\n this._useKeys = useKeys;\n this.size = indexed.size;\n }\n\n ToKeyedSequence.prototype.get = function(key, notSetValue) {\n return this._iter.get(key, notSetValue);\n };\n\n ToKeyedSequence.prototype.has = function(key) {\n return this._iter.has(key);\n };\n\n ToKeyedSequence.prototype.valueSeq = function() {\n return this._iter.valueSeq();\n };\n\n ToKeyedSequence.prototype.reverse = function() {var this$0 = this;\n var reversedSequence = reverseFactory(this, true);\n if (!this._useKeys) {\n reversedSequence.valueSeq = function() {return this$0._iter.toSeq().reverse()};\n }\n return reversedSequence;\n };\n\n ToKeyedSequence.prototype.map = function(mapper, context) {var this$0 = this;\n var mappedSequence = mapFactory(this, mapper, context);\n if (!this._useKeys) {\n mappedSequence.valueSeq = function() {return this$0._iter.toSeq().map(mapper, context)};\n }\n return mappedSequence;\n };\n\n ToKeyedSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n var ii;\n return this._iter.__iterate(\n this._useKeys ?\n function(v, k) {return fn(v, k, this$0)} :\n ((ii = reverse ? resolveSize(this) : 0),\n function(v ) {return fn(v, reverse ? --ii : ii++, this$0)}),\n reverse\n );\n };\n\n ToKeyedSequence.prototype.__iterator = function(type, reverse) {\n if (this._useKeys) {\n return this._iter.__iterator(type, reverse);\n }\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n var ii = reverse ? resolveSize(this) : 0;\n return new Iterator(function() {\n var step = iterator.next();\n return step.done ? step :\n iteratorValue(type, reverse ? --ii : ii++, step.value, step);\n });\n };\n\n ToKeyedSequence.prototype[IS_ORDERED_SENTINEL] = true;\n\n\n createClass(ToIndexedSequence, IndexedSeq);\n function ToIndexedSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n ToIndexedSequence.prototype.includes = function(value) {\n return this._iter.includes(value);\n };\n\n ToIndexedSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n var iterations = 0;\n return this._iter.__iterate(function(v ) {return fn(v, iterations++, this$0)}, reverse);\n };\n\n ToIndexedSequence.prototype.__iterator = function(type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n var iterations = 0;\n return new Iterator(function() {\n var step = iterator.next();\n return step.done ? step :\n iteratorValue(type, iterations++, step.value, step)\n });\n };\n\n\n\n createClass(ToSetSequence, SetSeq);\n function ToSetSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n ToSetSequence.prototype.has = function(key) {\n return this._iter.includes(key);\n };\n\n ToSetSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return this._iter.__iterate(function(v ) {return fn(v, v, this$0)}, reverse);\n };\n\n ToSetSequence.prototype.__iterator = function(type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n return new Iterator(function() {\n var step = iterator.next();\n return step.done ? step :\n iteratorValue(type, step.value, step.value, step);\n });\n };\n\n\n\n createClass(FromEntriesSequence, KeyedSeq);\n function FromEntriesSequence(entries) {\n this._iter = entries;\n this.size = entries.size;\n }\n\n FromEntriesSequence.prototype.entrySeq = function() {\n return this._iter.toSeq();\n };\n\n FromEntriesSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return this._iter.__iterate(function(entry ) {\n // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n if (entry) {\n validateEntry(entry);\n var indexedIterable = isIterable(entry);\n return fn(\n indexedIterable ? entry.get(1) : entry[1],\n indexedIterable ? entry.get(0) : entry[0],\n this$0\n );\n }\n }, reverse);\n };\n\n FromEntriesSequence.prototype.__iterator = function(type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n return new Iterator(function() {\n while (true) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n if (entry) {\n validateEntry(entry);\n var indexedIterable = isIterable(entry);\n return iteratorValue(\n type,\n indexedIterable ? entry.get(0) : entry[0],\n indexedIterable ? entry.get(1) : entry[1],\n step\n );\n }\n }\n });\n };\n\n\n ToIndexedSequence.prototype.cacheResult =\n ToKeyedSequence.prototype.cacheResult =\n ToSetSequence.prototype.cacheResult =\n FromEntriesSequence.prototype.cacheResult =\n cacheResultThrough;\n\n\n function flipFactory(iterable) {\n var flipSequence = makeSequence(iterable);\n flipSequence._iter = iterable;\n flipSequence.size = iterable.size;\n flipSequence.flip = function() {return iterable};\n flipSequence.reverse = function () {\n var reversedSequence = iterable.reverse.apply(this); // super.reverse()\n reversedSequence.flip = function() {return iterable.reverse()};\n return reversedSequence;\n };\n flipSequence.has = function(key ) {return iterable.includes(key)};\n flipSequence.includes = function(key ) {return iterable.has(key)};\n flipSequence.cacheResult = cacheResultThrough;\n flipSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;\n return iterable.__iterate(function(v, k) {return fn(k, v, this$0) !== false}, reverse);\n }\n flipSequence.__iteratorUncached = function(type, reverse) {\n if (type === ITERATE_ENTRIES) {\n var iterator = iterable.__iterator(type, reverse);\n return new Iterator(function() {\n var step = iterator.next();\n if (!step.done) {\n var k = step.value[0];\n step.value[0] = step.value[1];\n step.value[1] = k;\n }\n return step;\n });\n }\n return iterable.__iterator(\n type === ITERATE_VALUES ? ITERATE_KEYS : ITERATE_VALUES,\n reverse\n );\n }\n return flipSequence;\n }\n\n\n function mapFactory(iterable, mapper, context) {\n var mappedSequence = makeSequence(iterable);\n mappedSequence.size = iterable.size;\n mappedSequence.has = function(key ) {return iterable.has(key)};\n mappedSequence.get = function(key, notSetValue) {\n var v = iterable.get(key, NOT_SET);\n return v === NOT_SET ?\n notSetValue :\n mapper.call(context, v, key, iterable);\n };\n mappedSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;\n return iterable.__iterate(\n function(v, k, c) {return fn(mapper.call(context, v, k, c), k, this$0) !== false},\n reverse\n );\n }\n mappedSequence.__iteratorUncached = function (type, reverse) {\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n return new Iterator(function() {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var key = entry[0];\n return iteratorValue(\n type,\n key,\n mapper.call(context, entry[1], key, iterable),\n step\n );\n });\n }\n return mappedSequence;\n }\n\n\n function reverseFactory(iterable, useKeys) {\n var reversedSequence = makeSequence(iterable);\n reversedSequence._iter = iterable;\n reversedSequence.size = iterable.size;\n reversedSequence.reverse = function() {return iterable};\n if (iterable.flip) {\n reversedSequence.flip = function () {\n var flipSequence = flipFactory(iterable);\n flipSequence.reverse = function() {return iterable.flip()};\n return flipSequence;\n };\n }\n reversedSequence.get = function(key, notSetValue) \n {return iterable.get(useKeys ? key : -1 - key, notSetValue)};\n reversedSequence.has = function(key )\n {return iterable.has(useKeys ? key : -1 - key)};\n reversedSequence.includes = function(value ) {return iterable.includes(value)};\n reversedSequence.cacheResult = cacheResultThrough;\n reversedSequence.__iterate = function (fn, reverse) {var this$0 = this;\n return iterable.__iterate(function(v, k) {return fn(v, k, this$0)}, !reverse);\n };\n reversedSequence.__iterator =\n function(type, reverse) {return iterable.__iterator(type, !reverse)};\n return reversedSequence;\n }\n\n\n function filterFactory(iterable, predicate, context, useKeys) {\n var filterSequence = makeSequence(iterable);\n if (useKeys) {\n filterSequence.has = function(key ) {\n var v = iterable.get(key, NOT_SET);\n return v !== NOT_SET && !!predicate.call(context, v, key, iterable);\n };\n filterSequence.get = function(key, notSetValue) {\n var v = iterable.get(key, NOT_SET);\n return v !== NOT_SET && predicate.call(context, v, key, iterable) ?\n v : notSetValue;\n };\n }\n filterSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;\n var iterations = 0;\n iterable.__iterate(function(v, k, c) {\n if (predicate.call(context, v, k, c)) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$0);\n }\n }, reverse);\n return iterations;\n };\n filterSequence.__iteratorUncached = function (type, reverse) {\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n var iterations = 0;\n return new Iterator(function() {\n while (true) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var key = entry[0];\n var value = entry[1];\n if (predicate.call(context, value, key, iterable)) {\n return iteratorValue(type, useKeys ? key : iterations++, value, step);\n }\n }\n });\n }\n return filterSequence;\n }\n\n\n function countByFactory(iterable, grouper, context) {\n var groups = Map().asMutable();\n iterable.__iterate(function(v, k) {\n groups.update(\n grouper.call(context, v, k, iterable),\n 0,\n function(a ) {return a + 1}\n );\n });\n return groups.asImmutable();\n }\n\n\n function groupByFactory(iterable, grouper, context) {\n var isKeyedIter = isKeyed(iterable);\n var groups = (isOrdered(iterable) ? OrderedMap() : Map()).asMutable();\n iterable.__iterate(function(v, k) {\n groups.update(\n grouper.call(context, v, k, iterable),\n function(a ) {return (a = a || [], a.push(isKeyedIter ? [k, v] : v), a)}\n );\n });\n var coerce = iterableClass(iterable);\n return groups.map(function(arr ) {return reify(iterable, coerce(arr))});\n }\n\n\n function sliceFactory(iterable, begin, end, useKeys) {\n var originalSize = iterable.size;\n\n // Sanitize begin & end using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n if (begin !== undefined) {\n begin = begin | 0;\n }\n if (end !== undefined) {\n end = end | 0;\n }\n\n if (wholeSlice(begin, end, originalSize)) {\n return iterable;\n }\n\n var resolvedBegin = resolveBegin(begin, originalSize);\n var resolvedEnd = resolveEnd(end, originalSize);\n\n // begin or end will be NaN if they were provided as negative numbers and\n // this iterable's size is unknown. In that case, cache first so there is\n // a known size and these do not resolve to NaN.\n if (resolvedBegin !== resolvedBegin || resolvedEnd !== resolvedEnd) {\n return sliceFactory(iterable.toSeq().cacheResult(), begin, end, useKeys);\n }\n\n // Note: resolvedEnd is undefined when the original sequence's length is\n // unknown and this slice did not supply an end and should contain all\n // elements after resolvedBegin.\n // In that case, resolvedSize will be NaN and sliceSize will remain undefined.\n var resolvedSize = resolvedEnd - resolvedBegin;\n var sliceSize;\n if (resolvedSize === resolvedSize) {\n sliceSize = resolvedSize < 0 ? 0 : resolvedSize;\n }\n\n var sliceSeq = makeSequence(iterable);\n\n // If iterable.size is undefined, the size of the realized sliceSeq is\n // unknown at this point unless the number of items to slice is 0\n sliceSeq.size = sliceSize === 0 ? sliceSize : iterable.size && sliceSize || undefined;\n\n if (!useKeys && isSeq(iterable) && sliceSize >= 0) {\n sliceSeq.get = function (index, notSetValue) {\n index = wrapIndex(this, index);\n return index >= 0 && index < sliceSize ?\n iterable.get(index + resolvedBegin, notSetValue) :\n notSetValue;\n }\n }\n\n sliceSeq.__iterateUncached = function(fn, reverse) {var this$0 = this;\n if (sliceSize === 0) {\n return 0;\n }\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var skipped = 0;\n var isSkipping = true;\n var iterations = 0;\n iterable.__iterate(function(v, k) {\n if (!(isSkipping && (isSkipping = skipped++ < resolvedBegin))) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$0) !== false &&\n iterations !== sliceSize;\n }\n });\n return iterations;\n };\n\n sliceSeq.__iteratorUncached = function(type, reverse) {\n if (sliceSize !== 0 && reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n // Don't bother instantiating parent iterator if taking 0.\n var iterator = sliceSize !== 0 && iterable.__iterator(type, reverse);\n var skipped = 0;\n var iterations = 0;\n return new Iterator(function() {\n while (skipped++ < resolvedBegin) {\n iterator.next();\n }\n if (++iterations > sliceSize) {\n return iteratorDone();\n }\n var step = iterator.next();\n if (useKeys || type === ITERATE_VALUES) {\n return step;\n } else if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations - 1, undefined, step);\n } else {\n return iteratorValue(type, iterations - 1, step.value[1], step);\n }\n });\n }\n\n return sliceSeq;\n }\n\n\n function takeWhileFactory(iterable, predicate, context) {\n var takeSequence = makeSequence(iterable);\n takeSequence.__iterateUncached = function(fn, reverse) {var this$0 = this;\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterations = 0;\n iterable.__iterate(function(v, k, c) \n {return predicate.call(context, v, k, c) && ++iterations && fn(v, k, this$0)}\n );\n return iterations;\n };\n takeSequence.__iteratorUncached = function(type, reverse) {var this$0 = this;\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n var iterating = true;\n return new Iterator(function() {\n if (!iterating) {\n return iteratorDone();\n }\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var k = entry[0];\n var v = entry[1];\n if (!predicate.call(context, v, k, this$0)) {\n iterating = false;\n return iteratorDone();\n }\n return type === ITERATE_ENTRIES ? step :\n iteratorValue(type, k, v, step);\n });\n };\n return takeSequence;\n }\n\n\n function skipWhileFactory(iterable, predicate, context, useKeys) {\n var skipSequence = makeSequence(iterable);\n skipSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var isSkipping = true;\n var iterations = 0;\n iterable.__iterate(function(v, k, c) {\n if (!(isSkipping && (isSkipping = predicate.call(context, v, k, c)))) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$0);\n }\n });\n return iterations;\n };\n skipSequence.__iteratorUncached = function(type, reverse) {var this$0 = this;\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n var skipping = true;\n var iterations = 0;\n return new Iterator(function() {\n var step, k, v;\n do {\n step = iterator.next();\n if (step.done) {\n if (useKeys || type === ITERATE_VALUES) {\n return step;\n } else if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations++, undefined, step);\n } else {\n return iteratorValue(type, iterations++, step.value[1], step);\n }\n }\n var entry = step.value;\n k = entry[0];\n v = entry[1];\n skipping && (skipping = predicate.call(context, v, k, this$0));\n } while (skipping);\n return type === ITERATE_ENTRIES ? step :\n iteratorValue(type, k, v, step);\n });\n };\n return skipSequence;\n }\n\n\n function concatFactory(iterable, values) {\n var isKeyedIterable = isKeyed(iterable);\n var iters = [iterable].concat(values).map(function(v ) {\n if (!isIterable(v)) {\n v = isKeyedIterable ?\n keyedSeqFromValue(v) :\n indexedSeqFromValue(Array.isArray(v) ? v : [v]);\n } else if (isKeyedIterable) {\n v = KeyedIterable(v);\n }\n return v;\n }).filter(function(v ) {return v.size !== 0});\n\n if (iters.length === 0) {\n return iterable;\n }\n\n if (iters.length === 1) {\n var singleton = iters[0];\n if (singleton === iterable ||\n isKeyedIterable && isKeyed(singleton) ||\n isIndexed(iterable) && isIndexed(singleton)) {\n return singleton;\n }\n }\n\n var concatSeq = new ArraySeq(iters);\n if (isKeyedIterable) {\n concatSeq = concatSeq.toKeyedSeq();\n } else if (!isIndexed(iterable)) {\n concatSeq = concatSeq.toSetSeq();\n }\n concatSeq = concatSeq.flatten(true);\n concatSeq.size = iters.reduce(\n function(sum, seq) {\n if (sum !== undefined) {\n var size = seq.size;\n if (size !== undefined) {\n return sum + size;\n }\n }\n },\n 0\n );\n return concatSeq;\n }\n\n\n function flattenFactory(iterable, depth, useKeys) {\n var flatSequence = makeSequence(iterable);\n flatSequence.__iterateUncached = function(fn, reverse) {\n var iterations = 0;\n var stopped = false;\n function flatDeep(iter, currentDepth) {var this$0 = this;\n iter.__iterate(function(v, k) {\n if ((!depth || currentDepth < depth) && isIterable(v)) {\n flatDeep(v, currentDepth + 1);\n } else if (fn(v, useKeys ? k : iterations++, this$0) === false) {\n stopped = true;\n }\n return !stopped;\n }, reverse);\n }\n flatDeep(iterable, 0);\n return iterations;\n }\n flatSequence.__iteratorUncached = function(type, reverse) {\n var iterator = iterable.__iterator(type, reverse);\n var stack = [];\n var iterations = 0;\n return new Iterator(function() {\n while (iterator) {\n var step = iterator.next();\n if (step.done !== false) {\n iterator = stack.pop();\n continue;\n }\n var v = step.value;\n if (type === ITERATE_ENTRIES) {\n v = v[1];\n }\n if ((!depth || stack.length < depth) && isIterable(v)) {\n stack.push(iterator);\n iterator = v.__iterator(type, reverse);\n } else {\n return useKeys ? step : iteratorValue(type, iterations++, v, step);\n }\n }\n return iteratorDone();\n });\n }\n return flatSequence;\n }\n\n\n function flatMapFactory(iterable, mapper, context) {\n var coerce = iterableClass(iterable);\n return iterable.toSeq().map(\n function(v, k) {return coerce(mapper.call(context, v, k, iterable))}\n ).flatten(true);\n }\n\n\n function interposeFactory(iterable, separator) {\n var interposedSequence = makeSequence(iterable);\n interposedSequence.size = iterable.size && iterable.size * 2 -1;\n interposedSequence.__iterateUncached = function(fn, reverse) {var this$0 = this;\n var iterations = 0;\n iterable.__iterate(function(v, k) \n {return (!iterations || fn(separator, iterations++, this$0) !== false) &&\n fn(v, iterations++, this$0) !== false},\n reverse\n );\n return iterations;\n };\n interposedSequence.__iteratorUncached = function(type, reverse) {\n var iterator = iterable.__iterator(ITERATE_VALUES, reverse);\n var iterations = 0;\n var step;\n return new Iterator(function() {\n if (!step || iterations % 2) {\n step = iterator.next();\n if (step.done) {\n return step;\n }\n }\n return iterations % 2 ?\n iteratorValue(type, iterations++, separator) :\n iteratorValue(type, iterations++, step.value, step);\n });\n };\n return interposedSequence;\n }\n\n\n function sortFactory(iterable, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n var isKeyedIterable = isKeyed(iterable);\n var index = 0;\n var entries = iterable.toSeq().map(\n function(v, k) {return [k, v, index++, mapper ? mapper(v, k, iterable) : v]}\n ).toArray();\n entries.sort(function(a, b) {return comparator(a[3], b[3]) || a[2] - b[2]}).forEach(\n isKeyedIterable ?\n function(v, i) { entries[i].length = 2; } :\n function(v, i) { entries[i] = v[1]; }\n );\n return isKeyedIterable ? KeyedSeq(entries) :\n isIndexed(iterable) ? IndexedSeq(entries) :\n SetSeq(entries);\n }\n\n\n function maxFactory(iterable, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n if (mapper) {\n var entry = iterable.toSeq()\n .map(function(v, k) {return [v, mapper(v, k, iterable)]})\n .reduce(function(a, b) {return maxCompare(comparator, a[1], b[1]) ? b : a});\n return entry && entry[0];\n } else {\n return iterable.reduce(function(a, b) {return maxCompare(comparator, a, b) ? b : a});\n }\n }\n\n function maxCompare(comparator, a, b) {\n var comp = comparator(b, a);\n // b is considered the new max if the comparator declares them equal, but\n // they are not equal and b is in fact a nullish value.\n return (comp === 0 && b !== a && (b === undefined || b === null || b !== b)) || comp > 0;\n }\n\n\n function zipWithFactory(keyIter, zipper, iters) {\n var zipSequence = makeSequence(keyIter);\n zipSequence.size = new ArraySeq(iters).map(function(i ) {return i.size}).min();\n // Note: this a generic base implementation of __iterate in terms of\n // __iterator which may be more generically useful in the future.\n zipSequence.__iterate = function(fn, reverse) {\n /* generic:\n var iterator = this.__iterator(ITERATE_ENTRIES, reverse);\n var step;\n var iterations = 0;\n while (!(step = iterator.next()).done) {\n iterations++;\n if (fn(step.value[1], step.value[0], this) === false) {\n break;\n }\n }\n return iterations;\n */\n // indexed:\n var iterator = this.__iterator(ITERATE_VALUES, reverse);\n var step;\n var iterations = 0;\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\n }\n return iterations;\n };\n zipSequence.__iteratorUncached = function(type, reverse) {\n var iterators = iters.map(function(i )\n {return (i = Iterable(i), getIterator(reverse ? i.reverse() : i))}\n );\n var iterations = 0;\n var isDone = false;\n return new Iterator(function() {\n var steps;\n if (!isDone) {\n steps = iterators.map(function(i ) {return i.next()});\n isDone = steps.some(function(s ) {return s.done});\n }\n if (isDone) {\n return iteratorDone();\n }\n return iteratorValue(\n type,\n iterations++,\n zipper.apply(null, steps.map(function(s ) {return s.value}))\n );\n });\n };\n return zipSequence\n }\n\n\n // #pragma Helper Functions\n\n function reify(iter, seq) {\n return isSeq(iter) ? seq : iter.constructor(seq);\n }\n\n function validateEntry(entry) {\n if (entry !== Object(entry)) {\n throw new TypeError('Expected [K, V] tuple: ' + entry);\n }\n }\n\n function resolveSize(iter) {\n assertNotInfinite(iter.size);\n return ensureSize(iter);\n }\n\n function iterableClass(iterable) {\n return isKeyed(iterable) ? KeyedIterable :\n isIndexed(iterable) ? IndexedIterable :\n SetIterable;\n }\n\n function makeSequence(iterable) {\n return Object.create(\n (\n isKeyed(iterable) ? KeyedSeq :\n isIndexed(iterable) ? IndexedSeq :\n SetSeq\n ).prototype\n );\n }\n\n function cacheResultThrough() {\n if (this._iter.cacheResult) {\n this._iter.cacheResult();\n this.size = this._iter.size;\n return this;\n } else {\n return Seq.prototype.cacheResult.call(this);\n }\n }\n\n function defaultComparator(a, b) {\n return a > b ? 1 : a < b ? -1 : 0;\n }\n\n function forceIterator(keyPath) {\n var iter = getIterator(keyPath);\n if (!iter) {\n // Array might not be iterable in this environment, so we need a fallback\n // to our wrapped type.\n if (!isArrayLike(keyPath)) {\n throw new TypeError('Expected iterable or array-like: ' + keyPath);\n }\n iter = getIterator(Iterable(keyPath));\n }\n return iter;\n }\n\n createClass(Record, KeyedCollection);\n\n function Record(defaultValues, name) {\n var hasInitialized;\n\n var RecordType = function Record(values) {\n if (values instanceof RecordType) {\n return values;\n }\n if (!(this instanceof RecordType)) {\n return new RecordType(values);\n }\n if (!hasInitialized) {\n hasInitialized = true;\n var keys = Object.keys(defaultValues);\n setProps(RecordTypePrototype, keys);\n RecordTypePrototype.size = keys.length;\n RecordTypePrototype._name = name;\n RecordTypePrototype._keys = keys;\n RecordTypePrototype._defaultValues = defaultValues;\n }\n this._map = Map(values);\n };\n\n var RecordTypePrototype = RecordType.prototype = Object.create(RecordPrototype);\n RecordTypePrototype.constructor = RecordType;\n\n return RecordType;\n }\n\n Record.prototype.toString = function() {\n return this.__toString(recordName(this) + ' {', '}');\n };\n\n // @pragma Access\n\n Record.prototype.has = function(k) {\n return this._defaultValues.hasOwnProperty(k);\n };\n\n Record.prototype.get = function(k, notSetValue) {\n if (!this.has(k)) {\n return notSetValue;\n }\n var defaultVal = this._defaultValues[k];\n return this._map ? this._map.get(k, defaultVal) : defaultVal;\n };\n\n // @pragma Modification\n\n Record.prototype.clear = function() {\n if (this.__ownerID) {\n this._map && this._map.clear();\n return this;\n }\n var RecordType = this.constructor;\n return RecordType._empty || (RecordType._empty = makeRecord(this, emptyMap()));\n };\n\n Record.prototype.set = function(k, v) {\n if (!this.has(k)) {\n throw new Error('Cannot set unknown key \"' + k + '\" on ' + recordName(this));\n }\n var newMap = this._map && this._map.set(k, v);\n if (this.__ownerID || newMap === this._map) {\n return this;\n }\n return makeRecord(this, newMap);\n };\n\n Record.prototype.remove = function(k) {\n if (!this.has(k)) {\n return this;\n }\n var newMap = this._map && this._map.remove(k);\n if (this.__ownerID || newMap === this._map) {\n return this;\n }\n return makeRecord(this, newMap);\n };\n\n Record.prototype.wasAltered = function() {\n return this._map.wasAltered();\n };\n\n Record.prototype.__iterator = function(type, reverse) {var this$0 = this;\n return KeyedIterable(this._defaultValues).map(function(_, k) {return this$0.get(k)}).__iterator(type, reverse);\n };\n\n Record.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return KeyedIterable(this._defaultValues).map(function(_, k) {return this$0.get(k)}).__iterate(fn, reverse);\n };\n\n Record.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map && this._map.__ensureOwner(ownerID);\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._map = newMap;\n return this;\n }\n return makeRecord(this, newMap, ownerID);\n };\n\n\n var RecordPrototype = Record.prototype;\n RecordPrototype[DELETE] = RecordPrototype.remove;\n RecordPrototype.deleteIn =\n RecordPrototype.removeIn = MapPrototype.removeIn;\n RecordPrototype.merge = MapPrototype.merge;\n RecordPrototype.mergeWith = MapPrototype.mergeWith;\n RecordPrototype.mergeIn = MapPrototype.mergeIn;\n RecordPrototype.mergeDeep = MapPrototype.mergeDeep;\n RecordPrototype.mergeDeepWith = MapPrototype.mergeDeepWith;\n RecordPrototype.mergeDeepIn = MapPrototype.mergeDeepIn;\n RecordPrototype.setIn = MapPrototype.setIn;\n RecordPrototype.update = MapPrototype.update;\n RecordPrototype.updateIn = MapPrototype.updateIn;\n RecordPrototype.withMutations = MapPrototype.withMutations;\n RecordPrototype.asMutable = MapPrototype.asMutable;\n RecordPrototype.asImmutable = MapPrototype.asImmutable;\n\n\n function makeRecord(likeRecord, map, ownerID) {\n var record = Object.create(Object.getPrototypeOf(likeRecord));\n record._map = map;\n record.__ownerID = ownerID;\n return record;\n }\n\n function recordName(record) {\n return record._name || record.constructor.name || 'Record';\n }\n\n function setProps(prototype, names) {\n try {\n names.forEach(setProp.bind(undefined, prototype));\n } catch (error) {\n // Object.defineProperty failed. Probably IE8.\n }\n }\n\n function setProp(prototype, name) {\n Object.defineProperty(prototype, name, {\n get: function() {\n return this.get(name);\n },\n set: function(value) {\n invariant(this.__ownerID, 'Cannot set on an immutable record.');\n this.set(name, value);\n }\n });\n }\n\n createClass(Set, SetCollection);\n\n // @pragma Construction\n\n function Set(value) {\n return value === null || value === undefined ? emptySet() :\n isSet(value) && !isOrdered(value) ? value :\n emptySet().withMutations(function(set ) {\n var iter = SetIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function(v ) {return set.add(v)});\n });\n }\n\n Set.of = function(/*...values*/) {\n return this(arguments);\n };\n\n Set.fromKeys = function(value) {\n return this(KeyedIterable(value).keySeq());\n };\n\n Set.prototype.toString = function() {\n return this.__toString('Set {', '}');\n };\n\n // @pragma Access\n\n Set.prototype.has = function(value) {\n return this._map.has(value);\n };\n\n // @pragma Modification\n\n Set.prototype.add = function(value) {\n return updateSet(this, this._map.set(value, true));\n };\n\n Set.prototype.remove = function(value) {\n return updateSet(this, this._map.remove(value));\n };\n\n Set.prototype.clear = function() {\n return updateSet(this, this._map.clear());\n };\n\n // @pragma Composition\n\n Set.prototype.union = function() {var iters = SLICE$0.call(arguments, 0);\n iters = iters.filter(function(x ) {return x.size !== 0});\n if (iters.length === 0) {\n return this;\n }\n if (this.size === 0 && !this.__ownerID && iters.length === 1) {\n return this.constructor(iters[0]);\n }\n return this.withMutations(function(set ) {\n for (var ii = 0; ii < iters.length; ii++) {\n SetIterable(iters[ii]).forEach(function(value ) {return set.add(value)});\n }\n });\n };\n\n Set.prototype.intersect = function() {var iters = SLICE$0.call(arguments, 0);\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function(iter ) {return SetIterable(iter)});\n var originalSet = this;\n return this.withMutations(function(set ) {\n originalSet.forEach(function(value ) {\n if (!iters.every(function(iter ) {return iter.includes(value)})) {\n set.remove(value);\n }\n });\n });\n };\n\n Set.prototype.subtract = function() {var iters = SLICE$0.call(arguments, 0);\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function(iter ) {return SetIterable(iter)});\n var originalSet = this;\n return this.withMutations(function(set ) {\n originalSet.forEach(function(value ) {\n if (iters.some(function(iter ) {return iter.includes(value)})) {\n set.remove(value);\n }\n });\n });\n };\n\n Set.prototype.merge = function() {\n return this.union.apply(this, arguments);\n };\n\n Set.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return this.union.apply(this, iters);\n };\n\n Set.prototype.sort = function(comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator));\n };\n\n Set.prototype.sortBy = function(mapper, comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator, mapper));\n };\n\n Set.prototype.wasAltered = function() {\n return this._map.wasAltered();\n };\n\n Set.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return this._map.__iterate(function(_, k) {return fn(k, k, this$0)}, reverse);\n };\n\n Set.prototype.__iterator = function(type, reverse) {\n return this._map.map(function(_, k) {return k}).__iterator(type, reverse);\n };\n\n Set.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map.__ensureOwner(ownerID);\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._map = newMap;\n return this;\n }\n return this.__make(newMap, ownerID);\n };\n\n\n function isSet(maybeSet) {\n return !!(maybeSet && maybeSet[IS_SET_SENTINEL]);\n }\n\n Set.isSet = isSet;\n\n var IS_SET_SENTINEL = '@@__IMMUTABLE_SET__@@';\n\n var SetPrototype = Set.prototype;\n SetPrototype[IS_SET_SENTINEL] = true;\n SetPrototype[DELETE] = SetPrototype.remove;\n SetPrototype.mergeDeep = SetPrototype.merge;\n SetPrototype.mergeDeepWith = SetPrototype.mergeWith;\n SetPrototype.withMutations = MapPrototype.withMutations;\n SetPrototype.asMutable = MapPrototype.asMutable;\n SetPrototype.asImmutable = MapPrototype.asImmutable;\n\n SetPrototype.__empty = emptySet;\n SetPrototype.__make = makeSet;\n\n function updateSet(set, newMap) {\n if (set.__ownerID) {\n set.size = newMap.size;\n set._map = newMap;\n return set;\n }\n return newMap === set._map ? set :\n newMap.size === 0 ? set.__empty() :\n set.__make(newMap);\n }\n\n function makeSet(map, ownerID) {\n var set = Object.create(SetPrototype);\n set.size = map ? map.size : 0;\n set._map = map;\n set.__ownerID = ownerID;\n return set;\n }\n\n var EMPTY_SET;\n function emptySet() {\n return EMPTY_SET || (EMPTY_SET = makeSet(emptyMap()));\n }\n\n createClass(OrderedSet, Set);\n\n // @pragma Construction\n\n function OrderedSet(value) {\n return value === null || value === undefined ? emptyOrderedSet() :\n isOrderedSet(value) ? value :\n emptyOrderedSet().withMutations(function(set ) {\n var iter = SetIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function(v ) {return set.add(v)});\n });\n }\n\n OrderedSet.of = function(/*...values*/) {\n return this(arguments);\n };\n\n OrderedSet.fromKeys = function(value) {\n return this(KeyedIterable(value).keySeq());\n };\n\n OrderedSet.prototype.toString = function() {\n return this.__toString('OrderedSet {', '}');\n };\n\n\n function isOrderedSet(maybeOrderedSet) {\n return isSet(maybeOrderedSet) && isOrdered(maybeOrderedSet);\n }\n\n OrderedSet.isOrderedSet = isOrderedSet;\n\n var OrderedSetPrototype = OrderedSet.prototype;\n OrderedSetPrototype[IS_ORDERED_SENTINEL] = true;\n\n OrderedSetPrototype.__empty = emptyOrderedSet;\n OrderedSetPrototype.__make = makeOrderedSet;\n\n function makeOrderedSet(map, ownerID) {\n var set = Object.create(OrderedSetPrototype);\n set.size = map ? map.size : 0;\n set._map = map;\n set.__ownerID = ownerID;\n return set;\n }\n\n var EMPTY_ORDERED_SET;\n function emptyOrderedSet() {\n return EMPTY_ORDERED_SET || (EMPTY_ORDERED_SET = makeOrderedSet(emptyOrderedMap()));\n }\n\n createClass(Stack, IndexedCollection);\n\n // @pragma Construction\n\n function Stack(value) {\n return value === null || value === undefined ? emptyStack() :\n isStack(value) ? value :\n emptyStack().unshiftAll(value);\n }\n\n Stack.of = function(/*...values*/) {\n return this(arguments);\n };\n\n Stack.prototype.toString = function() {\n return this.__toString('Stack [', ']');\n };\n\n // @pragma Access\n\n Stack.prototype.get = function(index, notSetValue) {\n var head = this._head;\n index = wrapIndex(this, index);\n while (head && index--) {\n head = head.next;\n }\n return head ? head.value : notSetValue;\n };\n\n Stack.prototype.peek = function() {\n return this._head && this._head.value;\n };\n\n // @pragma Modification\n\n Stack.prototype.push = function(/*...values*/) {\n if (arguments.length === 0) {\n return this;\n }\n var newSize = this.size + arguments.length;\n var head = this._head;\n for (var ii = arguments.length - 1; ii >= 0; ii--) {\n head = {\n value: arguments[ii],\n next: head\n };\n }\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pushAll = function(iter) {\n iter = IndexedIterable(iter);\n if (iter.size === 0) {\n return this;\n }\n assertNotInfinite(iter.size);\n var newSize = this.size;\n var head = this._head;\n iter.reverse().forEach(function(value ) {\n newSize++;\n head = {\n value: value,\n next: head\n };\n });\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pop = function() {\n return this.slice(1);\n };\n\n Stack.prototype.unshift = function(/*...values*/) {\n return this.push.apply(this, arguments);\n };\n\n Stack.prototype.unshiftAll = function(iter) {\n return this.pushAll(iter);\n };\n\n Stack.prototype.shift = function() {\n return this.pop.apply(this, arguments);\n };\n\n Stack.prototype.clear = function() {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._head = undefined;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyStack();\n };\n\n Stack.prototype.slice = function(begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n var resolvedBegin = resolveBegin(begin, this.size);\n var resolvedEnd = resolveEnd(end, this.size);\n if (resolvedEnd !== this.size) {\n // super.slice(begin, end);\n return IndexedCollection.prototype.slice.call(this, begin, end);\n }\n var newSize = this.size - resolvedBegin;\n var head = this._head;\n while (resolvedBegin--) {\n head = head.next;\n }\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n // @pragma Mutability\n\n Stack.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeStack(this.size, this._head, ownerID, this.__hash);\n };\n\n // @pragma Iteration\n\n Stack.prototype.__iterate = function(fn, reverse) {\n if (reverse) {\n return this.reverse().__iterate(fn);\n }\n var iterations = 0;\n var node = this._head;\n while (node) {\n if (fn(node.value, iterations++, this) === false) {\n break;\n }\n node = node.next;\n }\n return iterations;\n };\n\n Stack.prototype.__iterator = function(type, reverse) {\n if (reverse) {\n return this.reverse().__iterator(type);\n }\n var iterations = 0;\n var node = this._head;\n return new Iterator(function() {\n if (node) {\n var value = node.value;\n node = node.next;\n return iteratorValue(type, iterations++, value);\n }\n return iteratorDone();\n });\n };\n\n\n function isStack(maybeStack) {\n return !!(maybeStack && maybeStack[IS_STACK_SENTINEL]);\n }\n\n Stack.isStack = isStack;\n\n var IS_STACK_SENTINEL = '@@__IMMUTABLE_STACK__@@';\n\n var StackPrototype = Stack.prototype;\n StackPrototype[IS_STACK_SENTINEL] = true;\n StackPrototype.withMutations = MapPrototype.withMutations;\n StackPrototype.asMutable = MapPrototype.asMutable;\n StackPrototype.asImmutable = MapPrototype.asImmutable;\n StackPrototype.wasAltered = MapPrototype.wasAltered;\n\n\n function makeStack(size, head, ownerID, hash) {\n var map = Object.create(StackPrototype);\n map.size = size;\n map._head = head;\n map.__ownerID = ownerID;\n map.__hash = hash;\n map.__altered = false;\n return map;\n }\n\n var EMPTY_STACK;\n function emptyStack() {\n return EMPTY_STACK || (EMPTY_STACK = makeStack(0));\n }\n\n /**\n * Contributes additional methods to a constructor\n */\n function mixin(ctor, methods) {\n var keyCopier = function(key ) { ctor.prototype[key] = methods[key]; };\n Object.keys(methods).forEach(keyCopier);\n Object.getOwnPropertySymbols &&\n Object.getOwnPropertySymbols(methods).forEach(keyCopier);\n return ctor;\n }\n\n Iterable.Iterator = Iterator;\n\n mixin(Iterable, {\n\n // ### Conversion to other types\n\n toArray: function() {\n assertNotInfinite(this.size);\n var array = new Array(this.size || 0);\n this.valueSeq().__iterate(function(v, i) { array[i] = v; });\n return array;\n },\n\n toIndexedSeq: function() {\n return new ToIndexedSequence(this);\n },\n\n toJS: function() {\n return this.toSeq().map(\n function(value ) {return value && typeof value.toJS === 'function' ? value.toJS() : value}\n ).__toJS();\n },\n\n toJSON: function() {\n return this.toSeq().map(\n function(value ) {return value && typeof value.toJSON === 'function' ? value.toJSON() : value}\n ).__toJS();\n },\n\n toKeyedSeq: function() {\n return new ToKeyedSequence(this, true);\n },\n\n toMap: function() {\n // Use Late Binding here to solve the circular dependency.\n return Map(this.toKeyedSeq());\n },\n\n toObject: function() {\n assertNotInfinite(this.size);\n var object = {};\n this.__iterate(function(v, k) { object[k] = v; });\n return object;\n },\n\n toOrderedMap: function() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedMap(this.toKeyedSeq());\n },\n\n toOrderedSet: function() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedSet(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSet: function() {\n // Use Late Binding here to solve the circular dependency.\n return Set(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSetSeq: function() {\n return new ToSetSequence(this);\n },\n\n toSeq: function() {\n return isIndexed(this) ? this.toIndexedSeq() :\n isKeyed(this) ? this.toKeyedSeq() :\n this.toSetSeq();\n },\n\n toStack: function() {\n // Use Late Binding here to solve the circular dependency.\n return Stack(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toList: function() {\n // Use Late Binding here to solve the circular dependency.\n return List(isKeyed(this) ? this.valueSeq() : this);\n },\n\n\n // ### Common JavaScript methods and properties\n\n toString: function() {\n return '[Iterable]';\n },\n\n __toString: function(head, tail) {\n if (this.size === 0) {\n return head + tail;\n }\n return head + ' ' + this.toSeq().map(this.__toStringMapper).join(', ') + ' ' + tail;\n },\n\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n concat: function() {var values = SLICE$0.call(arguments, 0);\n return reify(this, concatFactory(this, values));\n },\n\n includes: function(searchValue) {\n return this.some(function(value ) {return is(value, searchValue)});\n },\n\n entries: function() {\n return this.__iterator(ITERATE_ENTRIES);\n },\n\n every: function(predicate, context) {\n assertNotInfinite(this.size);\n var returnValue = true;\n this.__iterate(function(v, k, c) {\n if (!predicate.call(context, v, k, c)) {\n returnValue = false;\n return false;\n }\n });\n return returnValue;\n },\n\n filter: function(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, true));\n },\n\n find: function(predicate, context, notSetValue) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[1] : notSetValue;\n },\n\n findEntry: function(predicate, context) {\n var found;\n this.__iterate(function(v, k, c) {\n if (predicate.call(context, v, k, c)) {\n found = [k, v];\n return false;\n }\n });\n return found;\n },\n\n findLastEntry: function(predicate, context) {\n return this.toSeq().reverse().findEntry(predicate, context);\n },\n\n forEach: function(sideEffect, context) {\n assertNotInfinite(this.size);\n return this.__iterate(context ? sideEffect.bind(context) : sideEffect);\n },\n\n join: function(separator) {\n assertNotInfinite(this.size);\n separator = separator !== undefined ? '' + separator : ',';\n var joined = '';\n var isFirst = true;\n this.__iterate(function(v ) {\n isFirst ? (isFirst = false) : (joined += separator);\n joined += v !== null && v !== undefined ? v.toString() : '';\n });\n return joined;\n },\n\n keys: function() {\n return this.__iterator(ITERATE_KEYS);\n },\n\n map: function(mapper, context) {\n return reify(this, mapFactory(this, mapper, context));\n },\n\n reduce: function(reducer, initialReduction, context) {\n assertNotInfinite(this.size);\n var reduction;\n var useFirst;\n if (arguments.length < 2) {\n useFirst = true;\n } else {\n reduction = initialReduction;\n }\n this.__iterate(function(v, k, c) {\n if (useFirst) {\n useFirst = false;\n reduction = v;\n } else {\n reduction = reducer.call(context, reduction, v, k, c);\n }\n });\n return reduction;\n },\n\n reduceRight: function(reducer, initialReduction, context) {\n var reversed = this.toKeyedSeq().reverse();\n return reversed.reduce.apply(reversed, arguments);\n },\n\n reverse: function() {\n return reify(this, reverseFactory(this, true));\n },\n\n slice: function(begin, end) {\n return reify(this, sliceFactory(this, begin, end, true));\n },\n\n some: function(predicate, context) {\n return !this.every(not(predicate), context);\n },\n\n sort: function(comparator) {\n return reify(this, sortFactory(this, comparator));\n },\n\n values: function() {\n return this.__iterator(ITERATE_VALUES);\n },\n\n\n // ### More sequential methods\n\n butLast: function() {\n return this.slice(0, -1);\n },\n\n isEmpty: function() {\n return this.size !== undefined ? this.size === 0 : !this.some(function() {return true});\n },\n\n count: function(predicate, context) {\n return ensureSize(\n predicate ? this.toSeq().filter(predicate, context) : this\n );\n },\n\n countBy: function(grouper, context) {\n return countByFactory(this, grouper, context);\n },\n\n equals: function(other) {\n return deepEqual(this, other);\n },\n\n entrySeq: function() {\n var iterable = this;\n if (iterable._cache) {\n // We cache as an entries array, so we can just return the cache!\n return new ArraySeq(iterable._cache);\n }\n var entriesSequence = iterable.toSeq().map(entryMapper).toIndexedSeq();\n entriesSequence.fromEntrySeq = function() {return iterable.toSeq()};\n return entriesSequence;\n },\n\n filterNot: function(predicate, context) {\n return this.filter(not(predicate), context);\n },\n\n findLast: function(predicate, context, notSetValue) {\n return this.toKeyedSeq().reverse().find(predicate, context, notSetValue);\n },\n\n first: function() {\n return this.find(returnTrue);\n },\n\n flatMap: function(mapper, context) {\n return reify(this, flatMapFactory(this, mapper, context));\n },\n\n flatten: function(depth) {\n return reify(this, flattenFactory(this, depth, true));\n },\n\n fromEntrySeq: function() {\n return new FromEntriesSequence(this);\n },\n\n get: function(searchKey, notSetValue) {\n return this.find(function(_, key) {return is(key, searchKey)}, undefined, notSetValue);\n },\n\n getIn: function(searchKeyPath, notSetValue) {\n var nested = this;\n // Note: in an ES6 environment, we would prefer:\n // for (var key of searchKeyPath) {\n var iter = forceIterator(searchKeyPath);\n var step;\n while (!(step = iter.next()).done) {\n var key = step.value;\n nested = nested && nested.get ? nested.get(key, NOT_SET) : NOT_SET;\n if (nested === NOT_SET) {\n return notSetValue;\n }\n }\n return nested;\n },\n\n groupBy: function(grouper, context) {\n return groupByFactory(this, grouper, context);\n },\n\n has: function(searchKey) {\n return this.get(searchKey, NOT_SET) !== NOT_SET;\n },\n\n hasIn: function(searchKeyPath) {\n return this.getIn(searchKeyPath, NOT_SET) !== NOT_SET;\n },\n\n isSubset: function(iter) {\n iter = typeof iter.includes === 'function' ? iter : Iterable(iter);\n return this.every(function(value ) {return iter.includes(value)});\n },\n\n isSuperset: function(iter) {\n iter = typeof iter.isSubset === 'function' ? iter : Iterable(iter);\n return iter.isSubset(this);\n },\n\n keySeq: function() {\n return this.toSeq().map(keyMapper).toIndexedSeq();\n },\n\n last: function() {\n return this.toSeq().reverse().first();\n },\n\n max: function(comparator) {\n return maxFactory(this, comparator);\n },\n\n maxBy: function(mapper, comparator) {\n return maxFactory(this, comparator, mapper);\n },\n\n min: function(comparator) {\n return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator);\n },\n\n minBy: function(mapper, comparator) {\n return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator, mapper);\n },\n\n rest: function() {\n return this.slice(1);\n },\n\n skip: function(amount) {\n return this.slice(Math.max(0, amount));\n },\n\n skipLast: function(amount) {\n return reify(this, this.toSeq().reverse().skip(amount).reverse());\n },\n\n skipWhile: function(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, true));\n },\n\n skipUntil: function(predicate, context) {\n return this.skipWhile(not(predicate), context);\n },\n\n sortBy: function(mapper, comparator) {\n return reify(this, sortFactory(this, comparator, mapper));\n },\n\n take: function(amount) {\n return this.slice(0, Math.max(0, amount));\n },\n\n takeLast: function(amount) {\n return reify(this, this.toSeq().reverse().take(amount).reverse());\n },\n\n takeWhile: function(predicate, context) {\n return reify(this, takeWhileFactory(this, predicate, context));\n },\n\n takeUntil: function(predicate, context) {\n return this.takeWhile(not(predicate), context);\n },\n\n valueSeq: function() {\n return this.toIndexedSeq();\n },\n\n\n // ### Hashable Object\n\n hashCode: function() {\n return this.__hash || (this.__hash = hashIterable(this));\n }\n\n\n // ### Internal\n\n // abstract __iterate(fn, reverse)\n\n // abstract __iterator(type, reverse)\n });\n\n // var IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@';\n // var IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@';\n // var IS_INDEXED_SENTINEL = '@@__IMMUTABLE_INDEXED__@@';\n // var IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@';\n\n var IterablePrototype = Iterable.prototype;\n IterablePrototype[IS_ITERABLE_SENTINEL] = true;\n IterablePrototype[ITERATOR_SYMBOL] = IterablePrototype.values;\n IterablePrototype.__toJS = IterablePrototype.toArray;\n IterablePrototype.__toStringMapper = quoteString;\n IterablePrototype.inspect =\n IterablePrototype.toSource = function() { return this.toString(); };\n IterablePrototype.chain = IterablePrototype.flatMap;\n IterablePrototype.contains = IterablePrototype.includes;\n\n // Temporary warning about using length\n (function () {\n try {\n Object.defineProperty(IterablePrototype, 'length', {\n get: function () {\n if (!Iterable.noLengthWarning) {\n var stack;\n try {\n throw new Error();\n } catch (error) {\n stack = error.stack;\n }\n if (stack.indexOf('_wrapObject') === -1) {\n console && console.warn && console.warn(\n 'iterable.length has been deprecated, '+\n 'use iterable.size or iterable.count(). '+\n 'This warning will become a silent error in a future version. ' +\n stack\n );\n return this.size;\n }\n }\n }\n });\n } catch (e) {}\n })();\n\n\n\n mixin(KeyedIterable, {\n\n // ### More sequential methods\n\n flip: function() {\n return reify(this, flipFactory(this));\n },\n\n findKey: function(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry && entry[0];\n },\n\n findLastKey: function(predicate, context) {\n return this.toSeq().reverse().findKey(predicate, context);\n },\n\n keyOf: function(searchValue) {\n return this.findKey(function(value ) {return is(value, searchValue)});\n },\n\n lastKeyOf: function(searchValue) {\n return this.findLastKey(function(value ) {return is(value, searchValue)});\n },\n\n mapEntries: function(mapper, context) {var this$0 = this;\n var iterations = 0;\n return reify(this,\n this.toSeq().map(\n function(v, k) {return mapper.call(context, [k, v], iterations++, this$0)}\n ).fromEntrySeq()\n );\n },\n\n mapKeys: function(mapper, context) {var this$0 = this;\n return reify(this,\n this.toSeq().flip().map(\n function(k, v) {return mapper.call(context, k, v, this$0)}\n ).flip()\n );\n }\n\n });\n\n var KeyedIterablePrototype = KeyedIterable.prototype;\n KeyedIterablePrototype[IS_KEYED_SENTINEL] = true;\n KeyedIterablePrototype[ITERATOR_SYMBOL] = IterablePrototype.entries;\n KeyedIterablePrototype.__toJS = IterablePrototype.toObject;\n KeyedIterablePrototype.__toStringMapper = function(v, k) {return JSON.stringify(k) + ': ' + quoteString(v)};\n\n\n\n mixin(IndexedIterable, {\n\n // ### Conversion to other types\n\n toKeyedSeq: function() {\n return new ToKeyedSequence(this, false);\n },\n\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n filter: function(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, false));\n },\n\n findIndex: function(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n\n indexOf: function(searchValue) {\n var key = this.toKeyedSeq().keyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n\n lastIndexOf: function(searchValue) {\n var key = this.toKeyedSeq().reverse().keyOf(searchValue);\n return key === undefined ? -1 : key;\n\n // var index =\n // return this.toSeq().reverse().indexOf(searchValue);\n },\n\n reverse: function() {\n return reify(this, reverseFactory(this, false));\n },\n\n slice: function(begin, end) {\n return reify(this, sliceFactory(this, begin, end, false));\n },\n\n splice: function(index, removeNum /*, ...values*/) {\n var numArgs = arguments.length;\n removeNum = Math.max(removeNum | 0, 0);\n if (numArgs === 0 || (numArgs === 2 && !removeNum)) {\n return this;\n }\n // If index is negative, it should resolve relative to the size of the\n // collection. However size may be expensive to compute if not cached, so\n // only call count() if the number is in fact negative.\n index = resolveBegin(index, index < 0 ? this.count() : this.size);\n var spliced = this.slice(0, index);\n return reify(\n this,\n numArgs === 1 ?\n spliced :\n spliced.concat(arrCopy(arguments, 2), this.slice(index + removeNum))\n );\n },\n\n\n // ### More collection methods\n\n findLastIndex: function(predicate, context) {\n var key = this.toKeyedSeq().findLastKey(predicate, context);\n return key === undefined ? -1 : key;\n },\n\n first: function() {\n return this.get(0);\n },\n\n flatten: function(depth) {\n return reify(this, flattenFactory(this, depth, false));\n },\n\n get: function(index, notSetValue) {\n index = wrapIndex(this, index);\n return (index < 0 || (this.size === Infinity ||\n (this.size !== undefined && index > this.size))) ?\n notSetValue :\n this.find(function(_, key) {return key === index}, undefined, notSetValue);\n },\n\n has: function(index) {\n index = wrapIndex(this, index);\n return index >= 0 && (this.size !== undefined ?\n this.size === Infinity || index < this.size :\n this.indexOf(index) !== -1\n );\n },\n\n interpose: function(separator) {\n return reify(this, interposeFactory(this, separator));\n },\n\n interleave: function(/*...iterables*/) {\n var iterables = [this].concat(arrCopy(arguments));\n var zipped = zipWithFactory(this.toSeq(), IndexedSeq.of, iterables);\n var interleaved = zipped.flatten(true);\n if (zipped.size) {\n interleaved.size = zipped.size * iterables.length;\n }\n return reify(this, interleaved);\n },\n\n last: function() {\n return this.get(-1);\n },\n\n skipWhile: function(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, false));\n },\n\n zip: function(/*, ...iterables */) {\n var iterables = [this].concat(arrCopy(arguments));\n return reify(this, zipWithFactory(this, defaultZipper, iterables));\n },\n\n zipWith: function(zipper/*, ...iterables */) {\n var iterables = arrCopy(arguments);\n iterables[0] = this;\n return reify(this, zipWithFactory(this, zipper, iterables));\n }\n\n });\n\n IndexedIterable.prototype[IS_INDEXED_SENTINEL] = true;\n IndexedIterable.prototype[IS_ORDERED_SENTINEL] = true;\n\n\n\n mixin(SetIterable, {\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n get: function(value, notSetValue) {\n return this.has(value) ? value : notSetValue;\n },\n\n includes: function(value) {\n return this.has(value);\n },\n\n\n // ### More sequential methods\n\n keySeq: function() {\n return this.valueSeq();\n }\n\n });\n\n SetIterable.prototype.has = IterablePrototype.includes;\n\n\n // Mixin subclasses\n\n mixin(KeyedSeq, KeyedIterable.prototype);\n mixin(IndexedSeq, IndexedIterable.prototype);\n mixin(SetSeq, SetIterable.prototype);\n\n mixin(KeyedCollection, KeyedIterable.prototype);\n mixin(IndexedCollection, IndexedIterable.prototype);\n mixin(SetCollection, SetIterable.prototype);\n\n\n // #pragma Helper functions\n\n function keyMapper(v, k) {\n return k;\n }\n\n function entryMapper(v, k) {\n return [k, v];\n }\n\n function not(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n }\n }\n\n function neg(predicate) {\n return function() {\n return -predicate.apply(this, arguments);\n }\n }\n\n function quoteString(value) {\n return typeof value === 'string' ? JSON.stringify(value) : value;\n }\n\n function defaultZipper() {\n return arrCopy(arguments);\n }\n\n function defaultNegComparator(a, b) {\n return a < b ? 1 : a > b ? -1 : 0;\n }\n\n function hashIterable(iterable) {\n if (iterable.size === Infinity) {\n return 0;\n }\n var ordered = isOrdered(iterable);\n var keyed = isKeyed(iterable);\n var h = ordered ? 1 : 0;\n var size = iterable.__iterate(\n keyed ?\n ordered ?\n function(v, k) { h = 31 * h + hashMerge(hash(v), hash(k)) | 0; } :\n function(v, k) { h = h + hashMerge(hash(v), hash(k)) | 0; } :\n ordered ?\n function(v ) { h = 31 * h + hash(v) | 0; } :\n function(v ) { h = h + hash(v) | 0; }\n );\n return murmurHashOfSize(size, h);\n }\n\n function murmurHashOfSize(size, h) {\n h = imul(h, 0xCC9E2D51);\n h = imul(h << 15 | h >>> -15, 0x1B873593);\n h = imul(h << 13 | h >>> -13, 5);\n h = (h + 0xE6546B64 | 0) ^ size;\n h = imul(h ^ h >>> 16, 0x85EBCA6B);\n h = imul(h ^ h >>> 13, 0xC2B2AE35);\n h = smi(h ^ h >>> 16);\n return h;\n }\n\n function hashMerge(a, b) {\n return a ^ b + 0x9E3779B9 + (a << 6) + (a >> 2) | 0; // int\n }\n\n var Immutable = {\n\n Iterable: Iterable,\n\n Seq: Seq,\n Collection: Collection,\n Map: Map,\n OrderedMap: OrderedMap,\n List: List,\n Stack: Stack,\n Set: Set,\n OrderedSet: OrderedSet,\n\n Record: Record,\n Range: Range,\n Repeat: Repeat,\n\n is: is,\n fromJS: fromJS\n\n };\n\n return Immutable;\n\n}));","'use strict';\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Helpers\n\n// Merge objects\n//\nfunction assign(obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n\n sources.forEach(function (source) {\n if (!source) { return; }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key];\n });\n });\n\n return obj;\n}\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\nfunction isString(obj) { return _class(obj) === '[object String]'; }\nfunction isObject(obj) { return _class(obj) === '[object Object]'; }\nfunction isRegExp(obj) { return _class(obj) === '[object RegExp]'; }\nfunction isFunction(obj) { return _class(obj) === '[object Function]'; }\n\n\nfunction escapeRE(str) { return str.replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&'); }\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nvar defaultOptions = {\n fuzzyLink: true,\n fuzzyEmail: true,\n fuzzyIP: false\n};\n\n\nfunction isOptionsObj(obj) {\n return Object.keys(obj || {}).reduce(function (acc, k) {\n return acc || defaultOptions.hasOwnProperty(k);\n }, false);\n}\n\n\nvar defaultSchemas = {\n 'http:': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.http = new RegExp(\n '^\\\\/\\\\/' + self.re.src_auth + self.re.src_host_port_strict + self.re.src_path, 'i'\n );\n }\n if (self.re.http.test(tail)) {\n return tail.match(self.re.http)[0].length;\n }\n return 0;\n }\n },\n 'https:': 'http:',\n 'ftp:': 'http:',\n '//': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.no_http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.no_http = new RegExp(\n '^' +\n self.re.src_auth +\n // Don't allow single-level domains, because of false positives like '//test'\n // with code comments\n '(?:localhost|(?:(?:' + self.re.src_domain + ')\\\\.)+' + self.re.src_domain_root + ')' +\n self.re.src_port +\n self.re.src_host_terminator +\n self.re.src_path,\n\n 'i'\n );\n }\n\n if (self.re.no_http.test(tail)) {\n // should not be `://` & `///`, that protects from errors in protocol name\n if (pos >= 3 && text[pos - 3] === ':') { return 0; }\n if (pos >= 3 && text[pos - 3] === '/') { return 0; }\n return tail.match(self.re.no_http)[0].length;\n }\n return 0;\n }\n },\n 'mailto:': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.mailto) {\n self.re.mailto = new RegExp(\n '^' + self.re.src_email_name + '@' + self.re.src_host_strict, 'i'\n );\n }\n if (self.re.mailto.test(tail)) {\n return tail.match(self.re.mailto)[0].length;\n }\n return 0;\n }\n }\n};\n\n/*eslint-disable max-len*/\n\n// RE pattern for 2-character tlds (autogenerated by ./support/tlds_2char_gen.js)\nvar tlds_2ch_src_re = 'a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]';\n\n// DON'T try to make PRs with changes. Extend TLDs with LinkifyIt.tlds() instead\nvar tlds_default = 'biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф'.split('|');\n\n/*eslint-enable max-len*/\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction resetScanCache(self) {\n self.__index__ = -1;\n self.__text_cache__ = '';\n}\n\nfunction createValidator(re) {\n return function (text, pos) {\n var tail = text.slice(pos);\n\n if (re.test(tail)) {\n return tail.match(re)[0].length;\n }\n return 0;\n };\n}\n\nfunction createNormalizer() {\n return function (match, self) {\n self.normalize(match);\n };\n}\n\n// Schemas compiler. Build regexps.\n//\nfunction compile(self) {\n\n // Load & clone RE patterns.\n var re = self.re = require('./lib/re')(self.__opts__);\n\n // Define dynamic patterns\n var tlds = self.__tlds__.slice();\n\n self.onCompile();\n\n if (!self.__tlds_replaced__) {\n tlds.push(tlds_2ch_src_re);\n }\n tlds.push(re.src_xn);\n\n re.src_tlds = tlds.join('|');\n\n function untpl(tpl) { return tpl.replace('%TLDS%', re.src_tlds); }\n\n re.email_fuzzy = RegExp(untpl(re.tpl_email_fuzzy), 'i');\n re.link_fuzzy = RegExp(untpl(re.tpl_link_fuzzy), 'i');\n re.link_no_ip_fuzzy = RegExp(untpl(re.tpl_link_no_ip_fuzzy), 'i');\n re.host_fuzzy_test = RegExp(untpl(re.tpl_host_fuzzy_test), 'i');\n\n //\n // Compile each schema\n //\n\n var aliases = [];\n\n self.__compiled__ = {}; // Reset compiled data\n\n function schemaError(name, val) {\n throw new Error('(LinkifyIt) Invalid schema \"' + name + '\": ' + val);\n }\n\n Object.keys(self.__schemas__).forEach(function (name) {\n var val = self.__schemas__[name];\n\n // skip disabled methods\n if (val === null) { return; }\n\n var compiled = { validate: null, link: null };\n\n self.__compiled__[name] = compiled;\n\n if (isObject(val)) {\n if (isRegExp(val.validate)) {\n compiled.validate = createValidator(val.validate);\n } else if (isFunction(val.validate)) {\n compiled.validate = val.validate;\n } else {\n schemaError(name, val);\n }\n\n if (isFunction(val.normalize)) {\n compiled.normalize = val.normalize;\n } else if (!val.normalize) {\n compiled.normalize = createNormalizer();\n } else {\n schemaError(name, val);\n }\n\n return;\n }\n\n if (isString(val)) {\n aliases.push(name);\n return;\n }\n\n schemaError(name, val);\n });\n\n //\n // Compile postponed aliases\n //\n\n aliases.forEach(function (alias) {\n if (!self.__compiled__[self.__schemas__[alias]]) {\n // Silently fail on missed schemas to avoid errons on disable.\n // schemaError(alias, self.__schemas__[alias]);\n return;\n }\n\n self.__compiled__[alias].validate =\n self.__compiled__[self.__schemas__[alias]].validate;\n self.__compiled__[alias].normalize =\n self.__compiled__[self.__schemas__[alias]].normalize;\n });\n\n //\n // Fake record for guessed links\n //\n self.__compiled__[''] = { validate: null, normalize: createNormalizer() };\n\n //\n // Build schema condition\n //\n var slist = Object.keys(self.__compiled__)\n .filter(function (name) {\n // Filter disabled & fake schemas\n return name.length > 0 && self.__compiled__[name];\n })\n .map(escapeRE)\n .join('|');\n // (?!_) cause 1.5x slowdown\n self.re.schema_test = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'i');\n self.re.schema_search = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'ig');\n\n self.re.pretest = RegExp(\n '(' + self.re.schema_test.source + ')|(' + self.re.host_fuzzy_test.source + ')|@',\n 'i'\n );\n\n //\n // Cleanup\n //\n\n resetScanCache(self);\n}\n\n/**\n * class Match\n *\n * Match result. Single element of array, returned by [[LinkifyIt#match]]\n **/\nfunction Match(self, shift) {\n var start = self.__index__,\n end = self.__last_index__,\n text = self.__text_cache__.slice(start, end);\n\n /**\n * Match#schema -> String\n *\n * Prefix (protocol) for matched string.\n **/\n this.schema = self.__schema__.toLowerCase();\n /**\n * Match#index -> Number\n *\n * First position of matched string.\n **/\n this.index = start + shift;\n /**\n * Match#lastIndex -> Number\n *\n * Next position after matched string.\n **/\n this.lastIndex = end + shift;\n /**\n * Match#raw -> String\n *\n * Matched string.\n **/\n this.raw = text;\n /**\n * Match#text -> String\n *\n * Notmalized text of matched string.\n **/\n this.text = text;\n /**\n * Match#url -> String\n *\n * Normalized url of matched string.\n **/\n this.url = text;\n}\n\nfunction createMatch(self, shift) {\n var match = new Match(self, shift);\n\n self.__compiled__[match.schema].normalize(match, self);\n\n return match;\n}\n\n\n/**\n * class LinkifyIt\n **/\n\n/**\n * new LinkifyIt(schemas, options)\n * - schemas (Object): Optional. Additional schemas to validate (prefix/validator)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Creates new linkifier instance with optional additional schemas.\n * Can be called without `new` keyword for convenience.\n *\n * By default understands:\n *\n * - `http(s)://...` , `ftp://...`, `mailto:...` & `//...` links\n * - \"fuzzy\" links and emails (example.com, foo@bar.com).\n *\n * `schemas` is an object, where each key/value describes protocol/rule:\n *\n * - __key__ - link prefix (usually, protocol name with `:` at the end, `skype:`\n * for example). `linkify-it` makes shure that prefix is not preceeded with\n * alphanumeric char and symbols. Only whitespaces and punctuation allowed.\n * - __value__ - rule to check tail after link prefix\n * - _String_ - just alias to existing rule\n * - _Object_\n * - _validate_ - validator function (should return matched length on success),\n * or `RegExp`.\n * - _normalize_ - optional function to normalize text & url of matched result\n * (for example, for @twitter mentions).\n *\n * `options`:\n *\n * - __fuzzyLink__ - recognige URL-s without `http(s):` prefix. Default `true`.\n * - __fuzzyIP__ - allow IPs in fuzzy links above. Can conflict with some texts\n * like version numbers. Default `false`.\n * - __fuzzyEmail__ - recognize emails without `mailto:` prefix.\n *\n **/\nfunction LinkifyIt(schemas, options) {\n if (!(this instanceof LinkifyIt)) {\n return new LinkifyIt(schemas, options);\n }\n\n if (!options) {\n if (isOptionsObj(schemas)) {\n options = schemas;\n schemas = {};\n }\n }\n\n this.__opts__ = assign({}, defaultOptions, options);\n\n // Cache last tested result. Used to skip repeating steps on next `match` call.\n this.__index__ = -1;\n this.__last_index__ = -1; // Next scan position\n this.__schema__ = '';\n this.__text_cache__ = '';\n\n this.__schemas__ = assign({}, defaultSchemas, schemas);\n this.__compiled__ = {};\n\n this.__tlds__ = tlds_default;\n this.__tlds_replaced__ = false;\n\n this.re = {};\n\n compile(this);\n}\n\n\n/** chainable\n * LinkifyIt#add(schema, definition)\n * - schema (String): rule name (fixed pattern prefix)\n * - definition (String|RegExp|Object): schema definition\n *\n * Add new rule definition. See constructor description for details.\n **/\nLinkifyIt.prototype.add = function add(schema, definition) {\n this.__schemas__[schema] = definition;\n compile(this);\n return this;\n};\n\n\n/** chainable\n * LinkifyIt#set(options)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Set recognition options for links without schema.\n **/\nLinkifyIt.prototype.set = function set(options) {\n this.__opts__ = assign(this.__opts__, options);\n return this;\n};\n\n\n/**\n * LinkifyIt#test(text) -> Boolean\n *\n * Searches linkifiable pattern and returns `true` on success or `false` on fail.\n **/\nLinkifyIt.prototype.test = function test(text) {\n // Reset scan cache\n this.__text_cache__ = text;\n this.__index__ = -1;\n\n if (!text.length) { return false; }\n\n var m, ml, me, len, shift, next, re, tld_pos, at_pos;\n\n // try to scan for link with schema - that's the most simple rule\n if (this.re.schema_test.test(text)) {\n re = this.re.schema_search;\n re.lastIndex = 0;\n while ((m = re.exec(text)) !== null) {\n len = this.testSchemaAt(text, m[2], re.lastIndex);\n if (len) {\n this.__schema__ = m[2];\n this.__index__ = m.index + m[1].length;\n this.__last_index__ = m.index + m[0].length + len;\n break;\n }\n }\n }\n\n if (this.__opts__.fuzzyLink && this.__compiled__['http:']) {\n // guess schemaless links\n tld_pos = text.search(this.re.host_fuzzy_test);\n if (tld_pos >= 0) {\n // if tld is located after found link - no need to check fuzzy pattern\n if (this.__index__ < 0 || tld_pos < this.__index__) {\n if ((ml = text.match(this.__opts__.fuzzyIP ? this.re.link_fuzzy : this.re.link_no_ip_fuzzy)) !== null) {\n\n shift = ml.index + ml[1].length;\n\n if (this.__index__ < 0 || shift < this.__index__) {\n this.__schema__ = '';\n this.__index__ = shift;\n this.__last_index__ = ml.index + ml[0].length;\n }\n }\n }\n }\n }\n\n if (this.__opts__.fuzzyEmail && this.__compiled__['mailto:']) {\n // guess schemaless emails\n at_pos = text.indexOf('@');\n if (at_pos >= 0) {\n // We can't skip this check, because this cases are possible:\n // 192.168.1.1@gmail.com, my.in@example.com\n if ((me = text.match(this.re.email_fuzzy)) !== null) {\n\n shift = me.index + me[1].length;\n next = me.index + me[0].length;\n\n if (this.__index__ < 0 || shift < this.__index__ ||\n (shift === this.__index__ && next > this.__last_index__)) {\n this.__schema__ = 'mailto:';\n this.__index__ = shift;\n this.__last_index__ = next;\n }\n }\n }\n }\n\n return this.__index__ >= 0;\n};\n\n\n/**\n * LinkifyIt#pretest(text) -> Boolean\n *\n * Very quick check, that can give false positives. Returns true if link MAY BE\n * can exists. Can be used for speed optimization, when you need to check that\n * link NOT exists.\n **/\nLinkifyIt.prototype.pretest = function pretest(text) {\n return this.re.pretest.test(text);\n};\n\n\n/**\n * LinkifyIt#testSchemaAt(text, name, position) -> Number\n * - text (String): text to scan\n * - name (String): rule (schema) name\n * - position (Number): text offset to check from\n *\n * Similar to [[LinkifyIt#test]] but checks only specific protocol tail exactly\n * at given position. Returns length of found pattern (0 on fail).\n **/\nLinkifyIt.prototype.testSchemaAt = function testSchemaAt(text, schema, pos) {\n // If not supported schema check requested - terminate\n if (!this.__compiled__[schema.toLowerCase()]) {\n return 0;\n }\n return this.__compiled__[schema.toLowerCase()].validate(text, pos, this);\n};\n\n\n/**\n * LinkifyIt#match(text) -> Array|null\n *\n * Returns array of found link descriptions or `null` on fail. We strongly\n * recommend to use [[LinkifyIt#test]] first, for best speed.\n *\n * ##### Result match description\n *\n * - __schema__ - link schema, can be empty for fuzzy links, or `//` for\n * protocol-neutral links.\n * - __index__ - offset of matched text\n * - __lastIndex__ - index of next char after mathch end\n * - __raw__ - matched text\n * - __text__ - normalized text\n * - __url__ - link, generated from matched text\n **/\nLinkifyIt.prototype.match = function match(text) {\n var shift = 0, result = [];\n\n // Try to take previous element from cache, if .test() called before\n if (this.__index__ >= 0 && this.__text_cache__ === text) {\n result.push(createMatch(this, shift));\n shift = this.__last_index__;\n }\n\n // Cut head if cache was used\n var tail = shift ? text.slice(shift) : text;\n\n // Scan string until end reached\n while (this.test(tail)) {\n result.push(createMatch(this, shift));\n\n tail = tail.slice(this.__last_index__);\n shift += this.__last_index__;\n }\n\n if (result.length) {\n return result;\n }\n\n return null;\n};\n\n\n/** chainable\n * LinkifyIt#tlds(list [, keepOld]) -> this\n * - list (Array): list of tlds\n * - keepOld (Boolean): merge with current list if `true` (`false` by default)\n *\n * Load (or merge) new tlds list. Those are user for fuzzy links (without prefix)\n * to avoid false positives. By default this algorythm used:\n *\n * - hostname with any 2-letter root zones are ok.\n * - biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф\n * are ok.\n * - encoded (`xn--...`) root zones are ok.\n *\n * If list is replaced, then exact match for 2-chars root zones will be checked.\n **/\nLinkifyIt.prototype.tlds = function tlds(list, keepOld) {\n list = Array.isArray(list) ? list : [ list ];\n\n if (!keepOld) {\n this.__tlds__ = list.slice();\n this.__tlds_replaced__ = true;\n compile(this);\n return this;\n }\n\n this.__tlds__ = this.__tlds__.concat(list)\n .sort()\n .filter(function (el, idx, arr) {\n return el !== arr[idx - 1];\n })\n .reverse();\n\n compile(this);\n return this;\n};\n\n/**\n * LinkifyIt#normalize(match)\n *\n * Default normalizer (if schema does not define it's own).\n **/\nLinkifyIt.prototype.normalize = function normalize(match) {\n\n // Do minimal possible changes by default. Need to collect feedback prior\n // to move forward https://github.com/markdown-it/linkify-it/issues/1\n\n if (!match.schema) { match.url = 'http://' + match.url; }\n\n if (match.schema === 'mailto:' && !/^mailto:/i.test(match.url)) {\n match.url = 'mailto:' + match.url;\n }\n};\n\n\n/**\n * LinkifyIt#onCompile()\n *\n * Override to modify basic RegExp-s.\n **/\nLinkifyIt.prototype.onCompile = function onCompile() {\n};\n\n\nmodule.exports = LinkifyIt;\n","'use strict';\n\n\nmodule.exports = function (opts) {\n var re = {};\n\n // Use direct extract instead of `regenerate` to reduse browserified size\n re.src_Any = require('uc.micro/properties/Any/regex').source;\n re.src_Cc = require('uc.micro/categories/Cc/regex').source;\n re.src_Z = require('uc.micro/categories/Z/regex').source;\n re.src_P = require('uc.micro/categories/P/regex').source;\n\n // \\p{\\Z\\P\\Cc\\CF} (white spaces + control + format + punctuation)\n re.src_ZPCc = [ re.src_Z, re.src_P, re.src_Cc ].join('|');\n\n // \\p{\\Z\\Cc} (white spaces + control)\n re.src_ZCc = [ re.src_Z, re.src_Cc ].join('|');\n\n // Experimental. List of chars, completely prohibited in links\n // because can separate it from other part of text\n var text_separators = '[><\\uff5c]';\n\n // All possible word characters (everything without punctuation, spaces & controls)\n // Defined via punctuation & spaces to save space\n // Should be something like \\p{\\L\\N\\S\\M} (\\w but without `_`)\n re.src_pseudo_letter = '(?:(?!' + text_separators + '|' + re.src_ZPCc + ')' + re.src_Any + ')';\n // The same as abothe but without [0-9]\n // var src_pseudo_letter_non_d = '(?:(?![0-9]|' + src_ZPCc + ')' + src_Any + ')';\n\n ////////////////////////////////////////////////////////////////////////////////\n\n re.src_ip4 =\n\n '(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)';\n\n // Prohibit any of \"@/[]()\" in user/pass to avoid wrong domain fetch.\n re.src_auth = '(?:(?:(?!' + re.src_ZCc + '|[@/\\\\[\\\\]()]).)+@)?';\n\n re.src_port =\n\n '(?::(?:6(?:[0-4]\\\\d{3}|5(?:[0-4]\\\\d{2}|5(?:[0-2]\\\\d|3[0-5])))|[1-5]?\\\\d{1,4}))?';\n\n re.src_host_terminator =\n\n '(?=$|' + text_separators + '|' + re.src_ZPCc + ')(?!-|_|:\\\\d|\\\\.-|\\\\.(?!$|' + re.src_ZPCc + '))';\n\n re.src_path =\n\n '(?:' +\n '[/?#]' +\n '(?:' +\n '(?!' + re.src_ZCc + '|' + text_separators + '|[()[\\\\]{}.,\"\\'?!\\\\-;]).|' +\n '\\\\[(?:(?!' + re.src_ZCc + '|\\\\]).)*\\\\]|' +\n '\\\\((?:(?!' + re.src_ZCc + '|[)]).)*\\\\)|' +\n '\\\\{(?:(?!' + re.src_ZCc + '|[}]).)*\\\\}|' +\n '\\\\\"(?:(?!' + re.src_ZCc + '|[\"]).)+\\\\\"|' +\n \"\\\\'(?:(?!\" + re.src_ZCc + \"|[']).)+\\\\'|\" +\n \"\\\\'(?=\" + re.src_pseudo_letter + '|[-]).|' + // allow `I'm_king` if no pair found\n '\\\\.{2,}[a-zA-Z0-9%/&]|' + // google has many dots in \"google search\" links (#66, #81).\n // github has ... in commit range links,\n // Restrict to\n // - english\n // - percent-encoded\n // - parts of file path\n // - params separator\n // until more examples found.\n '\\\\.(?!' + re.src_ZCc + '|[.]).|' +\n (opts && opts['---'] ?\n '\\\\-(?!--(?:[^-]|$))(?:-*)|' // `---` => long dash, terminate\n :\n '\\\\-+|'\n ) +\n ',(?!' + re.src_ZCc + ').|' + // allow `,,,` in paths\n ';(?!' + re.src_ZCc + ').|' + // allow `;` if not followed by space-like char\n '\\\\!+(?!' + re.src_ZCc + '|[!]).|' + // allow `!!!` in paths, but not at the end\n '\\\\?(?!' + re.src_ZCc + '|[?]).' +\n ')+' +\n '|\\\\/' +\n ')?';\n\n // Allow anything in markdown spec, forbid quote (\") at the first position\n // because emails enclosed in quotes are far more common\n re.src_email_name =\n\n '[\\\\-;:&=\\\\+\\\\$,\\\\.a-zA-Z0-9_][\\\\-;:&=\\\\+\\\\$,\\\\\"\\\\.a-zA-Z0-9_]*';\n\n re.src_xn =\n\n 'xn--[a-z0-9\\\\-]{1,59}';\n\n // More to read about domain names\n // http://serverfault.com/questions/638260/\n\n re.src_domain_root =\n\n // Allow letters & digits (http://test1)\n '(?:' +\n re.src_xn +\n '|' +\n re.src_pseudo_letter + '{1,63}' +\n ')';\n\n re.src_domain =\n\n '(?:' +\n re.src_xn +\n '|' +\n '(?:' + re.src_pseudo_letter + ')' +\n '|' +\n '(?:' + re.src_pseudo_letter + '(?:-|' + re.src_pseudo_letter + '){0,61}' + re.src_pseudo_letter + ')' +\n ')';\n\n re.src_host =\n\n '(?:' +\n // Don't need IP check, because digits are already allowed in normal domain names\n // src_ip4 +\n // '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)*' + re.src_domain/*_root*/ + ')' +\n ')';\n\n re.tpl_host_fuzzy =\n\n '(?:' +\n re.src_ip4 +\n '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))' +\n ')';\n\n re.tpl_host_no_ip_fuzzy =\n\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))';\n\n re.src_host_strict =\n\n re.src_host + re.src_host_terminator;\n\n re.tpl_host_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_host_terminator;\n\n re.src_host_port_strict =\n\n re.src_host + re.src_port + re.src_host_terminator;\n\n re.tpl_host_port_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_port + re.src_host_terminator;\n\n re.tpl_host_port_no_ip_fuzzy_strict =\n\n re.tpl_host_no_ip_fuzzy + re.src_port + re.src_host_terminator;\n\n\n ////////////////////////////////////////////////////////////////////////////////\n // Main rules\n\n // Rude test fuzzy links by host, for quick deny\n re.tpl_host_fuzzy_test =\n\n 'localhost|www\\\\.|\\\\.\\\\d{1,3}\\\\.|(?:\\\\.(?:%TLDS%)(?:' + re.src_ZPCc + '|>|$))';\n\n re.tpl_email_fuzzy =\n\n '(^|' + text_separators + '|\"|\\\\(|' + re.src_ZCc + ')' +\n '(' + re.src_email_name + '@' + re.tpl_host_fuzzy_strict + ')';\n\n re.tpl_link_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_fuzzy_strict + re.src_path + ')';\n\n re.tpl_link_no_ip_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_no_ip_fuzzy_strict + re.src_path + ')';\n\n return re;\n};\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\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'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\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'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a